编译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有点问题。

 

 

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