最近學習linux這門課,做實驗要編譯系統核心,然後。。五一沒事就搗鼓了一上午,還好成功了,下面就寫下過程吧。
注意:下面過程的有些make 這類的命令 可能要擷取許可權
1.開始時可以查一下自己現在系統的版本: uname -a ; 我的是 3.2.0.-23
2.然後在 http://www.kernel.org/下載一個和你自己版本高一點的核心;我下的是 3.4.88
3.安裝編譯所要的工具:
sudo apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fakeroot module-init-tools patchsudo apt-get install libqt3-headers libqt3-mt-devsudo apt-get install libqt3-compat-headers
我上午是裝了這三個就可以了。。。
4.然後就是解壓下載的那個核心了 //貌似可以直接在下載的目錄下解壓 不用拷貝到src目錄下
4.1. 將原始碼拷到 /usr/src/ 目錄下, cp linux-3.4.88.tar.xz /usr/src/; 這裡注意我下的格式是 .tar.xz
4.2. 進入/usr/src/ 目錄 cd /usr/src/ ;
4.3. 解壓。tar Jvfx linux-3.4.88.tar.xz ;注意是大寫的 J
5.進入到解壓後的原始碼所在目錄 :cd linux-3.4.88
6.清理以前編譯留下的臨時檔案。make mrproper
7. 使用make localmodconfig自動精簡核心配置。make localmodconfig,所有的選項,如果你不確定,就按斷行符號鍵,選擇預設配置。//看到其他資料用 make menuconfig 也可以。。。不過有點麻煩
8、配置完成以後,開始編譯核心,在終端輸入make命令即可。
還有一種比較麻煩的方法,在終端依次輸入以下命令:(前面加上sudo吧 如果沒有許可權的話)
make dep ;可能系統提示不需要,沒事 直接下個命令make clean ;貌似我當時用的是這個。。。 sudo make-kpkg cleanmake bzlmage ;這裡注意bz後面的I 是大寫的make modules
上面貌似花費了幾十分鐘。。。。。。。。 其實以上命令可以用一個代替 make -j2 //j2 代表雙線程處理 //有的又說是雙核。。。。
9.編譯完核心之後就是要安裝核心模組了
sudo make modules_install
sudo make install
10、將產生的bzImage檔案和System.map檔案拷貝到/boot/目錄下,命令如下: //也不知道這步弄沒弄。。。 估計到9步就可以重啟了
cp /usr/src/linux-3.4.88/arch/x86/boot/bzImage /boot/
cp /usr/src/linux-3.4.88/System.map /boot/
12、在終端輸入命令:
mkinitramfs 3.4.88 -o /boot/initrd/img-3.4.88 來建立鏡像檔案
然後輸入命令:
update-initramfs -c -k 3.4.88
再輸入命令:
update-grub2 //
13.最後重啟 查看下自己的核心版本吧。
附圖: