編譯linux3內核,與busybox,用qemu模擬運行

晚上稍微有點空,開始編譯內核和busybox,我下的內核,原來是寫的2.6,但下下來後看到了是3,算了,就先用着吧。

編譯內核:

  1. make ARCH=arm versatile_defconfig 
  2. make ARCH=arm menuconfig  //將Kernel Featurer中的EABI選上,不知道做什麼用的? 
  3. make ARCH=arm CROSS_COMPILE=arm-linux- all 
  4. 然後在arch/arm/boot中找到zImage,拷貝出來 

編譯busybox,這個主要是用busybox建一個文件系統:

  1. make ARCH=arm CROSS_COMPILE=arm-linux- defconfig 
  2. make ARCH=arm CROSS_COMPILE=arm-linux- install 

製作文件系統:

  1. $cd busybox/_install 
  2. $mkdir proc sys dev etc etc/init.d 
  3. $vim etc/init.d/rcS 
  4. #!/bin/sh 
  5. mount -t proc none /proc 
  6. mount -t sysfs none /sys 
  7. /sbin/mdev -s 
  8. 然後將arm-linux-gcc中的armVFP/lib拷貝到_install中,這個是因爲編譯完的busybox是沒有共享鏈接庫的 
  9. $ cd _install 
  10. $ find . | cpio -o --format=newc > ../rootfs.img 
  11. $ cd .. 
  12. $ gzip -c rootfs.img > rootfs.img.gz 

測試一把:

qemu-system-arm -M versatilepb -m 128M -kernel zImage -initrd rootfs2.img.gz -nographic -append "root=/dev/ram rdinit=/sbin/init console=ttyAMA0"
成功!

這裏我必須加上-nographic和console=ttyAMA0否則通過telnet的方式,什麼都不顯示,不知是否是我的qemu有點問題。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章