你好,樓主:
1、配置.config文件,將你要編譯的配置XXX_config准備好,使用make XXX_config來進行配置;
2、這時你就可以在內核根目錄下進行make menuconfig來使用圖形界面配置內核選項,配置後保存即可;
3、最後只需要使用make或者make uImage生成相應的鏡像即可。
注意問題多在config這里,如果配置時報錯,可嘗試make clobber來清除原來的依賴關系。
2. ubuntu內核編譯中遇到的問題
一般編譯完內核後是要重新再把驅動也編譯一次的
或者說你的X-Server伺服器啟動沒有.
//你去玩下LFS,不過我英語不好,那次中途就退出了.
3. 怎麼改Linux內核
圖形界面本身不屬於內核范疇。你如果要去掉圖形界面只需要把啟動運行級別從5改成3。至於你所說的內核定製,必須先弄清楚各內核選項的含義以及你自己機器的硬體配置。 參考資料只有內核源碼和文檔,或者你看看LFS?
4. 嵌入式linux系統一般選擇什麼版本的linux進行裁剪和移植比較好
如果你想把RedHat,Ubuntu這些桌面系統裁剪到100MB的話,真的是挺難的,而且沒有什麼意義~~~
建議你從網上下載Android或者Meego的代碼,這兩個系統是目前基於Linux比較成功的開源移動終端OS了。做出來的鏡像,大小基本可以接受,而且最關鍵的是性能很好。裡面很多組件都是針對移動設備做了特殊優化的,比拿桌面OS裁剪,要好的多。
如果你決定用Android或者Meego的話,主要的工作量,就在於內核的裁剪了。這部分,可以講的東西太多了。建議你補充一些內核的基礎知識,並且多在PC上配置、更新內核,多練練,自己就清楚了。
如果純粹是拿著玩的話,你還可以自己做文件系統,裡面加上Busybox,就可以支持很多常見的命令了。然後,你還可以慢慢加用戶登錄程序,圖形界面等。當然,這是從零到繁的思路了。跟你問的正好相反。
有問題,請追問。
5. Linux的內核代碼如何編譯
1、安裝內核
如果內核已經安裝(/usr/src/目錄有linux子目錄),跳過
如果沒有安裝,在光碟機中放入linux安裝光碟,找到kernel-source-2.xx.xx.rpm文件(xx代表數字,表示內核的版本號),
比如RedHat linux的RPMS目錄是/RedHat/RPMS/目錄,然後使用命令rpm -ivh kernel-source-2.xx.xx.rpm安裝內核
如果沒有安裝盤,可以去各linux廠家站點或者www.kernel.org下載。
2、清除從前編譯內核時殘留的.o 文件和不必要的關聯
cd /usr/src/linux
make mrproper
3、配置內核,修改相關參數,請參考其他資料
在圖形界面下,make xconfig;字元界面下,make menuconfig
在內核配置菜單中正確設置個內核選項,保存退出
4、正確設置關聯文件
make dep
5、編譯內核
對於大內核(比如需要SCSI支持),make bzImage
對於小內核,make zImage
6. linux內核編譯
首先到www.kernel.org網站去下載一個2.6以上版本的內核。因為舊版本在編譯時的指令與2.6版本有些不同。用tar zxvf 或 jxvf 結壓。解壓後進入文件夾,輸入 make menuconfig 後可以看到一個圖形界面,用於對內核進行配置。具體的配置項請參考《linux 2.6 內核配置》,該文章可以從網路文庫中下載。配置完成後,記住一定要保存到.config系統文件中。最後輸入make,進行編譯。編譯完成後在boot文件夾下會自動生成zImage文件,這就是新內核的鏡像文件。編譯一般需要兩個小時。
7. 三、內核&文件系統編譯
一、編譯官方提供的內核源碼
1、解壓官方提供的內核源碼包
2、根據官方提供的配置文件對內核進行配置,方式如下
make ARCH=arm xxxxx_defult_config
cp arch/arm/xxxxx_config .config
3、打開圖形界面對內核進行配置,根據需要增加或者刪除模塊和其他內容
4、對內核進行編譯
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- uImage -j6
或者編輯Makefile文件,對其中的ARCH變數和CROSS_COMPILE變數進行修改,然後執行make uImage
5、在編譯編譯的時候回出現mkimage命令缺失,這個命令是UBootr提供的,在編譯的UBoot路徑下面找到這個命令,即可直接使用
6、編譯的時候各個方面需要一致性,
1、編譯的內核的交叉編譯工具鏈如果支持硬體浮點數運算那麼在配置內核的時候也需要添加硬體浮點數的支持
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
2、在編譯的內核的時候注意保持不要做太多的修改,否則會出問題
7、編譯內核模塊
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- moles -j6
8、安裝內核模塊到指定的目錄中去
make moles_install ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- INSTALL_MOD_PATH=/home/fu/hisi/kernel/build
9、不要採用內核模塊安裝的命令來安裝內核,因為內核不需要安裝,在arch/arm/boot/uImage就是所需要的內核文件
二、編譯官方提供的busybox來構建根文件系統
1、解壓需要編譯的busybox源碼
2、進入源碼中對busybox進行配置,主要是配置交叉編譯工具鏈
Busybox Settings --->Build Options ---> 下面有關於busybox是否配置為採用共享庫的模式,還有添加交叉編譯工具鏈的前綴
3、配置需要的文件和命令進行添加或者刪除
4、然後執行命令make -jn && make install
5、創建根文件系統需要的其他的文件和目錄,在一個空白的目錄中首先拷貝busybox/_install下面的bin、sbin、usr目錄到空白目錄中,在空白目錄中創建其餘的所需要的目錄文件 bin dev etc home lib linuxrc mnt opt proc sbin sys tmp usr var等以上目錄
6、接下來在lib目錄中復制內核模塊,在編譯內核的時候模塊安裝在了指定的地方,直接拷貝過來就行。
6、創建文件系統所需要的其他文件,配置文件(最簡單的辦法就是直接復制busybox文件下面的example文件夾裡面的東西)
1、/etc/inittab 填寫或者 一下是最基本的,還有其他的需要填寫
# /etc/inittab
::sysinit:/etc/init.d/rcS //指定初始化腳本
::askfirst:-/bin/sh //指定第一次輸入回車後打開的shell
::ctrlaltdel:/sbin/reboot //指定這三個按鍵按下後的反應
::shutdown:/bin/umount -a -r //指定關機是進行的操作
2、/etc/init.d/rcS //這個就沒有詳細額硬性規定了,寫入需要初始化的東西即可
#!/bin/sh
mount -a
3、/etc/fstab //寫入mount -a是要自動掛載的文件系統
# device mount-point type options mp fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
7、拷貝需要用到的庫文件,在交叉編譯工具鏈下面存放
arm-linux-xxxxxx-gcc/lib
海思的開發板是在和tahet/lib下面,切記。