第一天 linux源碼下載編譯

1.源碼下載

    源碼版本爲linux-2.6.34。下載路徑爲百度網盤:http://pan.baidu.com/s/1pJJZpkZ
    將源碼放在自己的工作目錄執行tar xf  linux-2.6.34.tar.bz2 解壓後生成linux-2.6.34文件名。

2.編譯內核

    提供源碼,就可以自己做裁剪配置,推薦使用圖形界面配置。
    基於ncurse庫編寫的圖形界面工具:make menuconfig;
    或者基於GTK的:make gconfig;
    用默認的配置:make defconfig;
    驗證和更新配置:make oldconfig 建議在編譯內核前都執行這個命令;
    配置完後執行make;
    同時多個編譯任務:make -jn n爲任務數,一般每個處理器可以衍生一個或者兩個任務作業。
    只看錯誤信息和警告的編譯方法:make > /dev/null 將編譯打印信息重定向到不會返回結果的黑洞中。

3.可能遇到的問題

問題1.make menuconfig報錯

    *** Unable to find the ncurses libraries or the  *** required header files. 
     *** 'make menuconfig' requires the ncurses libraries.  *** 
     *** Install ncurses (ncurses-devel) and try again.  *** 
     make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1 
     make: *** [menuconfig] 錯誤 2  
解決方法: 
    根據錯誤的提示進行如下的安裝過程: 
    1.sudo apt-get install ncurses 
    如果安裝失敗,軟件包ncurses還沒有可供安裝的候選者.就先安裝libncurses* 
    2.sudo apt-get install libncurses*  

問題2.make bzImage或make或make modules提示如下錯誤(這個錯誤不是每個人都會遇到的,可以用gcc--help查看你的gcc版本,如果你的版本是    4.6或者4.6之後的應該會有下面的問題,如果比4.6的早就不會出現這個問題): 

    gcc: 錯誤: elf_i386:沒有那個文件或目錄 
    make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 錯誤 1 
    make[1]: *** [arch/x86/vdso] 錯誤 2 
    make: *** [arch/x86] 錯誤 2 
解決方法: 
這個問題是由於 gcc 4.6 不再支持 linker-style 架構。將 arch/x86/vdso/Makefile 中, 以 VDSO_LDFLAGS_vdso.lds 開頭所在行的 "-m elf_x86_64" 替換爲 "-m64"。 以 VDSO_LDFLAGS_vdso32.lds 開頭所在行的 "-m elf_x86" 替換爲 "-m32"。需要將原有的空格去掉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章