1. 程式人生 > >Ubuntu 12.04 編譯核心步驟 + Fedora 10 編譯核心步驟(圖)

Ubuntu 12.04 編譯核心步驟 + Fedora 10 編譯核心步驟(圖)



MPlayer-1.0rc4.tar.gz
http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.gz

all-20110131.tar.bz2
http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20110131.tar.bz2

windows-essential-20071007.zip
http://www.mplayerhq.hu/MPlayer/releases/codecs/windows-essential-20071007.zip

Blue-1.8.tar.bz2
http://www.mplayerhq.hu/MPlayer/skins/Blue-1.8.tar.bz2


首先

#./configure --codecsdir=/usr/local/lib/codecs   --enable-gui  --enable-largefiles --enable-menu --language=zh_CN,en --charset=utf8

出現錯誤:

Error: The GUI requires libavcodec with PNG support (needs zlib)

解決繼續:

# sudo apt-get install zlib1g-dev

出現錯誤:

Unknown parameter: --win32codecsdir=/usr/lib/wincodecs/

解決繼續:

出現錯誤:

Error: X11 support required for GUI compilation.

解決繼續:

sudo apt-get install libgtk2.0-dev

最終:

./configure --codecsdir=/usr/local/lib/codecs   --enable-gui  --enable-largefiles --enable-menu --language=zh_CN,en --charset=utf8

./configure –prefix=/usr/local/mplayer –enable-gui –enable-freetype –codecsdir=/usr/lib/codecs/ –win32codecsdir=/usr/lib/win32/

  -enalbe-largefiles -enable-menu -language=zh_CN  –enable-libmp3lame –enable-libogg –enable-libvorbis –enable-libtheora –enable-libfaac

–enable-libfaad
–enable-liba52 –enable-libx264 \
–enable-libxvid
–enable-libamr-nb
–enable-libamr-wb
–enable-gpl
–enable-pp
–enable-pthreads
–disable-debug
–enable-shared

解釋一下引數 


--enable-gui 是開啟圖形介面 這個我想一般都需要
--enalbe-largefiles 允許播放超過2g的大檔案
--enable-menu 允許選單
--prefix=/usr 如果加上此句,mplayer,gmplayer放到/usr/bin/目錄下,沒有此句,則在安裝目錄/bin下
--confdir=/usr/local/mplayer 這個是mplayer的安裝目錄
此外,還有幾個引數也介紹一下,也許有用。
--disable-gcc-checking 不檢查gcc的版本。此處不用,MPlayer-1.0rc1就是需要gcc4.1而CentOS 5就是gcc4.1
--language=zh_CN安裝中文介面。

最終的config:

./configure --prefix=/usr/local/mplayer --enable-gui --enable-freetype --codecsdir=/usr/lib/codecs/ --enable-largefiles --enable-menu --language=zh_CN

--win32codecsdir=/usr/lib/win32/


----------------------------------------------------------------------------------------------------------------------------
Ubuntu 下的驅動裝不上去,很是搞人啊,CX25821提供的Linux驅動,說明文件都是在Fedora 10 下面舉例的,只好先裝個Fedora 10 試試了。


不出所料,Fedora 10 下CX25821驅動也是編譯錯誤,缺少檔案,只能再試試手動更新個核心試試了。。。。。殘念

手上2個系統Ubuntu 12.04  (核心3.x) 和  Fedora 10(核心2.6x)

網上教程很扯淡,總是把簡單的事情搞複雜了,Ubuntu一個大佬說,把核心安裝包放在任何地方都可以,教程那些CP啊,mv 啊,具是扯蛋,浪費我N多時間,我在中文目錄下一樣也裝成功了。真正按照步驟來,1個小時完全可以搞定一切。

值得一提的是裝完新核心後VM Tools要重新安裝,所以,事先把所有檔案拷到桌面上去。
--------------------------------------------------------------------------------------------------------
ubuntu 12.04 更新核心步驟  +  Fedora 10 更新核心步驟
 

到官方 http://kernel.org/ 下載,得到 3.3.6 或者更加新的版本。

先安裝 ncurses 工具,這是字元版配置工具所依賴的:
$ apt-get install libncurses5 libncurses5-dev  #(Ubuntu 環境)
$ sudo yum install ncurses ncurses-devel      #(Fedora 環境)
 
然後輸入命令:
make mrproper
make clean
make menuconfig     #(注意視窗拉大點,否則影象顯示不下會報錯。直接save,不用改)


make -j6                                    #(CPU是4核就寫4,我是6。速度是會快些,加了後20分鐘make完成,不加要近1小時)                    
sudo make modules_install
sudo make install

上面的命令會把編譯資料夾裡面的“arch/x86/boot/bzImage”檔案複製到“/boot”,同時還會複製 config 和 System.map 檔案,最終在“/boot”會多出如下3個檔案:
/boot/config-3.3.6
/boot/System.map-3.3.6
/boot/vmlinuz-3.3.6

注意檢視是否有這3個檔案生成,沒有的話,或者差某1個的話進行以下步驟,差那個就做那個步驟:

1.將編譯核心時生成的核心映象bzImage拷貝到/boot目錄下,並將這個映象命名為vmlinuz-3.3.6。如果使用x86的cpu,則該映象位於arch/x86/boot/目錄下(處於正在編譯的核心原始碼下)。

2.將~/linux-3.3.6/目錄下的System.map拷貝到/boot/目錄下,重新命名為System.map-3.3.6。該檔案中存放了核心的符號表。

3.將~/linux-3.3.6/目錄下的.config拷貝到/boot/目錄下,重新命名為config-3.3.6。


是不是發現缺少了一個 initrd.img 檔案(初始ram磁碟檔案)?使用下面命令建立一個即可:
$ sudo mkinitramfs 3.3.6 -o /boot/initrd.img-3.3.6    #(Ubuntu 環境)
$ sudo mkinitrd initramfs-3.3.6.img 3.03.6   #(Fedora 環境)


ok,到這裡就算編譯完成了,再就需要做一個事情,選擇哪個核心啟動

修改 GRUB 啟動選單,增加使用新核心啟動的專案
這一步可以使用 GRUB2 的自動生成工具完成
$ sudo update-grub2    #(Ubuntu 環境)
$ sudo grub2-mkconfig   #(Fedora 環境)  在Ubuntu成功了,Fedora 10 不成功,沒法只能手動改了。

位置在      /boot/grub/      需要改動2個地方

,注意不要刪東西,啟動改為3.3.6那個,改為0,時間改為10好了,儲存重啟。


重啟,


 

檢視核心版本號命令    uname -a   更新到3.3.6了。



弄完了重新安裝VM Tools,
一路回車即可
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ok 既然更新了核心,繼續開始搞 CX25821的驅動吧。。。

結果出現找不到 smp_lock.h檔案的錯誤,編譯中止。google了一下,原因是新的2.6.39以後的核心,已經木有這個檔案了。

悲催啊,尼瑪剛剛更新的3.3.6核心啊啊啊啊啊。。








蛋定,蛋定,心平氣和,慢慢搞定 CX25821。。。。。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
error "Unknown RCU implementation specified to kernel configuration"
層出不窮哦,繼續。。。。。。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------