首先要下載 Linux kernel source tree
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
然後進去該目錄,並且切換到 vivid branch (這邊使用的是 Ubuntu 14.04 當中 LTS Enablement Stacks 當中的 vivid)
$ git checkout -b vivid origin/lts-backport-vivid
快速產生目標的 .config
$ cat debian.vivid/config/config.common.ubuntu debian.vivid/config/amd64/config.common.amd64 debian.vivid/config/amd64/config.flavour.generic > .config
執行一些設定腳本
$ make oldconfig && make prepare && make scripts
設定環境變數 (接下來會使用到)
$ export KDIR=$PWD
複製 Module.symvers (如果要編譯的 Linux kernel 跟系統所使用的剛好相同)
$ cp -v /lib/modules/$(uname -r)/build/Module.symvers Module.symvers
不然就需要至少編譯整個 Linux kernel 一遍才行 (-j? 可以參考 /proc/cpuinfo 的數量來決定)
$ make -j8
切換到該 module 的目錄底下,不過 Ubuntu 的 Linux kernel 目前有兩份不同的 i915 module,一份放在 drivers/gpu/drm/i915 底下,另一份放在 ubuntu/i915 底下。
$ cd drivers/gpu/drm/i915
或是
$ cd ubuntu/i915
然後開始編譯 (J=? 可以參考 /proc/cpuinfo 的數量來決定)
$ make -C $KDIR M=$PWD J=8
參考資料:Kernel/BuildYourOwnKernel - Ubuntu Wiki 跟 Documentation/kbuild/modules.txt
沒有留言:
張貼留言