星期二, 9月 29, 2009

外行人升級Linux核心 2.4->2.6

因為在下希望把某台"很舊"的Linux伺服器換到新的硬體,所以也很貪心的希望能把2.4版的kernel更新到2.6版。

中間無數的套件需要更新就不說了,glibc更新可能會發生非常嚴重的後果,由於伺服器上面有某個商用軟體並沒有提供source code,因此不敢冒險升glibc,所幸並沒有套件顯示需要更新glibc。

經過無數次的安裝後,才發現kernel 2.4.x需要gcc 2.95.3,kernel 2.6.x 需要gcc 3.4 以上;所以我很貪心地安裝gcc 4.4.1後,又乖乖地裝回gcc 2.95.3。

gcc 4.4.1編譯kernel 2.6.31沒問題,但是在make install時又發生問題了;原來是modprobe等工具程式和kernel版本有相依性,參考post-halloween-2.6.txt。所以若要安裝2.6版kernel時要用gcc 4.4.1搭配module-init-tools;要安裝2.4版kernel時得用gcc 2.95.3搭配modutils v2.4(我想應該只到2.4.27,不會再更新了)
設定值 ./configure --prefix=""

所以像我兩個版本的kernel在切換,必須把module-init-toolsmodutils都留下來,切換前再make install,否則切到另一個版本時所有動態載入的module都會失效呀...

參考資料:
Linux 核心編譯與管理

沒有留言: