作者hyhjcjy (翊玥)
看板Linux
標題Re: [問題] 編譯核心問題
時間Thu May 23 15:20:20 2013
各位前輩好,
最近在研究核心編譯,使用的是Ubuntu 10.04, 現在核心版本為2.6.32.47
我想要先嘗試整個編譯、安裝到開機都沒問題,再來研究核心的細部選項。所以沒有修改
.config檔的選項,直接make和install,但開機後都只有tty1終端機介面,沒有圖形介面
。
我在網路上看了許多資料,不知道到底哪裡弄錯了
我做的事基本上就和這篇文一樣,先下載核心原始碼2.6.32版後解壓縮
# sudo apt-get install linux-source-2.6.32
# sudo tar xjvf linux-source-2.6.32.tar.bz2
然後複製現用版本的.config檔到此資料夾底下
# sudo cp /usr/src/linux-headers-2.6.32-47-generic/.config
/usr/src/linux-source-2.6.32
# make menuconfig,不做任何修改只改Local version後,直接存檔
# make
# make modules_install ,在/lib/modules產生module資料夾。
# make install ,產生config-xxx、System.map-xxx、vmlinuz-xxx到 /boot 裡面,
但不會產生 initrd 檔案。
# update-initramfs -k 2.6.32.60-test -c ,產生 initrd 檔案。
# update-grub
# reboot
看到開機選單多了我新編譯的核心,但選擇進入後就是tty1終端機模式,沒有圖形介面。
請問為什麼會這樣呢?我少了哪個步驟嗎?
※ 引述《artf08 (大珍奶,珍奶大)》之銘言:
: 在下新手獻曝,其實也只不過是一些股溝來的步驟(ubuntu10.04,10.10,mint皆測過)
: 但至少我確定下面這些步驟,我自己試過從rc3~rc5都沒問題
: 提供想自己編譯kernel玩玩的人參考
: 我只知道這樣做OK,對於步驟有問題的話請各位高人幫忙解答
: 1.下載最新的內核 www.kernel.org
: (目前最新是kernel 2.6.38),保存到主目錄(/home/user/ 或~/)
: 2.解壓軟件包:
: tar xvf linux-2.6.38-rc6.tar.bz2
: 3.使用默認的(你原本用OK的).config 文件:
: sudo cp /boot/config-2.6.xx-xx-generic ~/linux-2.6.38-rc6
: ^^ ^^
: xx-xx這邊改成你系統正在用的版本即可
: 4.make & install:
: cd linux-2.6.38-rc6
: sudo make menuconfig
: (參考完鳥哥的舊資料後,看懂得部分就自訂,不懂得就預設)
: (這邊會出現警告,因為少了編譯需求的某lib,補齊即可)
: sudo make
: (靜待3小時,1.5G的舊電腦,近期的應該也要1小時左右吧,我猜)
: sudo make modules_install
: sudo make install
: 5.創建 initrd:
: sudo update-initramfs -k 2.6.38-rc6 -c
: 6.升級grub:
: sudo update-grub
: 7.重啟就變成新kernel了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.61.242.39
1F:推 johnjohnlin:GPU driver? 如果沒有 dkms 好像會有問題 05/23 18:07
2F:推 AceIan:直接抓 git://kernel.ubuntu.com/ubuntu/ubuntu-precise 05/23 19:28
3F:→ AceIan:git tree 回來編 把 precise 換成你的版本 05/23 19:28
4F:→ AceIan:fakeroot debian/rules clean binary-generic binary-heade 05/23 19:29
5F:→ AceIan:bin-headers 05/23 19:29
6F:→ AceIan:binary-headers # orz 05/23 19:29
7F:→ AceIan:這樣就可以編出跟你安裝時一模一樣的 kernel 了 05/23 19:30
8F:→ AceIan:要修改 config 得要直接到 debian/config 目錄底下改 05/23 19:31
對不起AceIan大,我看不懂您的意思,不曉得指令要怎麼下@@
※ 編輯: hyhjcjy 來自: 61.61.240.17 (05/24 09:23)
9F:推 Bencrie:git clone 二樓的網址 05/24 09:27
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-2.6.32-47-generic
git clone git://kernel.ubuntu.com/ubuntu/2.6.32-47-generic
git clone git://kernel.ubuntu.com/ubuntu/linux-2.6.32-47-generic
git clone git://kernel.ubuntu.com/ubuntu/linux-source-2.6.32
都不對,訊息像這樣:
Cloning into 'linux-2.6.32-47-generic'...
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
※ 編輯: hyhjcjy 來自: 61.61.240.17 (05/24 09:47)
※ 編輯: hyhjcjy 來自: 61.61.240.17 (05/24 09:50)
10F:推 Bencrie:git://kernel.ubuntu.com/ubuntu/ubuntu-precise.git 05/24 10:40
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-2.6.32-47-generic.git
git clone git://kernel.ubuntu.com/ubuntu/2.6.32-47-generic.git
git clone git://kernel.ubuntu.com/ubuntu/linux-2.6.32-47-generic.git
git clone git://kernel.ubuntu.com/ubuntu/linux-source-2.6.32.git
還是都不行,我不知道precise要輸入什麼好 冏
※ 編輯: hyhjcjy 來自: 61.61.242.39 (05/24 12:11)
11F:推 Bencrie:我剛才測過可以抓啊 ... 我不知道你說 precise 要輸入什麼 05/24 12:40
12F:→ Bencrie:是什麼意思?我給那個網址就是說照打啊 @@ 05/24 12:41
13F:推 Bencrie:另外原 po 的顯卡是 NV/AMD/Intel ? 05/24 12:45
14F:→ Bencrie:如果是 nouveau 不支援的 NV 卡,那就得另外裝 driver 05/24 12:46
歐!原來如此,因為A大說 "git tree 回來編 把 precise 換成你的版本"
我以為要改掉precise的名字...
現在開始receive object了!大概要等好一陣子,晚點有什麼再回報
謝謝B大^___^
顯卡:00:0d.0 VGA compatible controller: nVidia Corporation C61 [GeForce 7025 /
nForce 630a] (rev a2)
※ 編輯: hyhjcjy 來自: 61.61.242.39 (05/24 15:08)
15F:推 trashprince:我覺得是顯卡問題 因為nv是動態的 重新安裝nv驅動就可 05/27 00:23
16F:推 AceIan:我指的版本是把 precise 換成 quantal 或是 raring 啊 (doh 05/30 14:36
對不起我其實看不懂A大您寫的@@; 網路上查了一下和您給的指令相關的文章,看得有點頭昏
眼花,最近太忙了又暫時沒時間研究,謝謝您還跑回來關注這主題!
請問如果是顯卡的問題那該怎麼做呢?
※ 編輯: hyhjcjy 來自: 61.61.242.33 (05/31 11:08)
17F:→ hyhjcjy:經過半年回來補完這篇,後來發現是.config檔選不對。 12/30 14:50
18F:→ hyhjcjy:我不應該到/usr/src/linux-headers-x.x.x-generic下複製 12/30 14:51
19F:→ hyhjcjy:.config檔而是應該跟原文一樣用/boot/config-x.x.x才對 12/30 14:52
20F:→ hyhjcjy:第1篇看的時候用的config檔錯誤,我就一直粗心沒看到不同 12/30 14:53
21F:→ hyhjcjy:文件所選的config檔路徑不同。 從/usr/src/linux-headers- 12/30 14:54
22F:→ hyhjcjy:選的config檔應該是不完整選項(所以才以"header"為名),少 12/30 14:55
23F:→ hyhjcjy:了很多該有的module才會無圖形介面 12/30 14:56