前提:ubuntu 12.04 LTS x64用的內核版本為3.5的,同時,我的電腦今天聲音總是沒有,最后就想了想,編譯內核吧,都使用linux這么長時間了,怕啥呢?由於不敢跨版本太多,最后就選了3.6.10的內核,並且下載了相應的補丁.
--------------------------------
下文寫的有一些混亂,有些地方有錯誤,現已經在另外一個地方進行了修正。下面是鏈接:
-----------------------------------------------------------
對<< ubuntu 12.04編譯安裝linux-3.6.10內核筆記>>的修正
2013/08/25 修
-----------------------------------------------------------
先構建編譯環境,下載編譯工具吧:
sudo apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fakeroot module-init-tools patch diff sudo apt-get install libqt3-headers libqt3-mt-dev sudo apt-get install libqt3-compat-headers
從這里下載內核以及對應版本的補丁
linux-3.6.10.tar.gz
patch-3.6.gz
ftp://ftp.kernel.org/pub/linux/kernel/v3.x/
這兩個文件下載后放入/usr/src目錄:
sudo cp ~/Download/linux-3.6.10.tar.gz /usr/src sudo cp ~/Download/path-3.6.gz
解壓,並打補丁,補丁可以通過不同方式制定,那么打的時候就用不同的命令,一般常見的是 patch,但自己今天這個是diff:
cd /usr/src tar -xvf linux-3.6.10.tar.gz gzip -d patch-3.6.gz sudo cp patch-3.6 ./linux-3.6.10 cd linux-3.6.10
file patch-3.6 sudo diff -rN patch-3.6 ./
如果patch文件是patch做成的,那么就相應的用:
patch -p1 < patch-3.6.patch
接下來就該配置內核了,但是自己對於內核配置可不是那么熟練什么的,那就用原來系統中存在的配置文件吧。原來系統中的配置文件,位置有兩種情況:一是放在/boot下面的,一個是放在/usr/src/linux-xxx/下面的,而我自己的就是放在/usr/src/linux-headers-3.5.32-xx/下面的
cp ../linux-headers-3.5.32-xxx/.config ./
清理一下各種問題:
make mrproper
開始配置,那么配置的時候先導入內核中已經存在的配置文件.config 也就是自己剛才從原系統拷貝過來的文件.
make menuconfig ---------------------------- ps: load xxx 你的修改 save xxx
如果沒有修改的話,就直接進入load 當前配置文件,然后再保存推出,我自己在某些地方稍做修改了,就是聲卡驅動上。
接下來就是開始make了,make的時候,默認情況下是單線程編譯,這個似乎有點慢。如果自己的機器處理器還可以的話,想加快速度的話,可以選在多線程。我選的是4,然后1個小時左右吧。以前曾經試過16,但我懷疑ubunut會不會因此而掛掉。我在13.04的時候有這個經歷。
make -j4
待結束后,開始編譯模塊。有這么一個說法,可以在編譯內核的時候,同時編譯模塊,互相不影響,這里自己由於心疼本本,沒有試過。
make modules
安裝模塊
make modules_install
創建創建initrd 文件
mkinitramfs -o /boot/initrd.img-linux-3.6.10
安裝內核
make install
按說,這個時候,內核安裝完畢,grub2會自動更新的,如果不放心,可以選擇:
update-grub2
如果對grub熟悉的人就知道,會在開機的引導界面出現很多選項的,這個時候有的同學就可能開始要去弄grub和刪除多余的內核什么的。其實,這個時候最好不要去弄這個,應該是先重啟一下機器,看看內核安裝的結構如何,失敗沒,一旦失敗了就可以從舊的內核啟動。
reboot //
如果沒有其它問題,那么就會在引導界面出現ubuntu 3.6.10的選項了
<當然,這個引導界面可不是自己想要的,可能需要自己美化一下>
進入系統,首先刪除多余的內核。
按道理說,在刪除舊的內核時,應該不影響系統中軟件的存在,但是今天自己在刪除的時候,發現少量的軟件確實被刪除了,好像它們有什么依賴關系,但影響不大,可以忽略。
uname -r //保留你當前所用的內核 dpkg --get-selections|grep linux-header
apt-get remove xxxxx
注意刪除舊內核的時候,可別將當前內核也刪除了。否則,你的系統就跪了;如果你是在真機上的雙系統的話,那估計你自己也就跪了。
刪除完畢后,grub響應一次吧,其實沒必要。
update-grub2
然后就是開始修改grub的配置文件,讓引導界面不是那么亂糟糟的。說是修改,也就只是注釋掉一些選項。它是用shell語言,但和C語言相差無幾,同樣有函數和變量什么的,仔細點就行。個人不推薦直接刪除那些選項的原因是,一旦系統掛掉,自己可以在引導界面進入grub的配置文件,打開ubuntu的救援模式或者其他的,然后就可以啟動。
sudo vim /boot/grub/grub.conf
注意這個文件修改后,需要強制保存。
一切OK后,就再次重啟下吧~~
---
另外自己因為要弄一下聲音的問題,於是按照谷妹的辦法:
su passwd
xxx
xxx
su
xxx
xxx
這個上面就是說切換到root的時候,第一次似乎都要先更新下root的密碼,然后才可以登入
下面就是自己弄聲音的一個命令了
gnome-control-center sound
會彈出一個對話框,里面有設備的,調整下就OK了,我的筆記本聲音也就出來了
--------------------------------------------------------------------
以上學習谷妹所提供的資料鏈接如下,非常感謝這些人們的分享。同時,資料里也寫的非常詳盡了。
http://www.linuxidc.com/Linux/2012-03/57303.htm //內核編譯 http://qing.blog.sina.com.cn/tj/9c5a7cf5330020uz.html//內核編譯 http://forum.ubuntu.org.cn/viewtopic.php?t=23255//內核刪除 http://forum.ubuntu.org.cn/viewtopic.php?f=49&t=363069//聲音問題
over