


Linux培训
达内IT学院
400-996-5531
以下所有步骤都是在Ubuntu 14.04系统上进行的,全部通过验证。
本文的搭建过程都是基于vexpress A9开发板进行的,这号称是qemu模拟得最好的arm开发板。
1.下载Linux内核
方法一:使用git
git clonegit://#/pub/scm/linux/kernel/git/torvalds/linux.git
方法二:直接下载3.17源代码包
wget #/pub/linux/kernel/v3.x/linux-3.17.tar.xz
2.安装arm的交叉编译工具链
sudo apt-get install gcc-arm-linux-gnueabi
3.编译Linux内核
生成vexpress开发板子的config文件:
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
然后编译:
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm
生成的内核镱像位于arch/arm/boot/zImage, 后续qemu启动时需要使用该镜像。
4.下载和安装qemu模拟器
sudo apt-get install qemu
默认安装2.0.0的qemu。使用qemu-system-arm --version来确认版本号。
再运行qemu-system-arm -M ?来确认支持vexpress-a9。
5.交叉编译arm版的busybox
下载最新的busybox:
wget #/downloads/busybox-1.26.0.tar.bz2
make defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install
在busybox的根目录下会生成一个_install目录。
6.利用busybox制作根文件系统
1)创建rootfs目录(根目录),并拷贝busybox命令到根目录下
sudo mkdir rootfs
sudo cp busybox-1.26.0/_install/* -r rootfs/
2)生成其它必要的目录
sudo mkdir rootfs/{dev,etc,lib,mnt,proc,var,tmp,sys,root,init.d}
3)从工具链中拷贝运行库到lib目录下
sudo cp -Pr /usr/arm-linux-gnueabi/lib/* rootfs/lib/
4)创建4个tty端终设备
sudo mknod rootfs/dev/tty1 c 4 1
sudo mknod rootfs/dev/tty2 c 4 2
sudo mknod rootfs/dev/tty3 c 4 3
sudo mknod rootfs/dev/tty4 c 4 4
5)创建 inittab 文件
进入 rootfs/etc 目录,建立 inittab 文件,文件内容:
#this is first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS
#/bin/sh invocations on selected ttys
#Start an "askfirst" shell on the console(whatever that may be)
::askfirst:-/bin/sh
#Stuff to do when restarting the init process
::restart:/sbin/init
#Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
6)创建 fstab 文件
进入 root/etc 下面,创建 fstab 文件,添加如下内容
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
7)创建 init.d/rcS
进入 rootfs/etc 下创建 init.d/rcS文件,添加如下内容
#!/bin/sh
#This is the first script called by init process
/bin/mount -a
别忘了设置rcS的可执行权限:
sudo chmod 755 etc/init.d/rcS
8)创建 profile 文件
进入 rootfs/etc 下创建 profile 文件,添加如下内容:
#!/bin/sh
export HOSTNAME=x200
export USER=root
export HOME=root
cd root
export PS1="[$USER@HOSTNAME \W]\#"
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
7.制作根文件系统镜像
1)生成32M大小的镜像
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
2)格式化成ext3文件系统
mkfs.ext3 a9rootfs.ext3
3)将文件拷贝到镜像中
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/* tmpfs/
sudo umount tmpfs
8.系统启动运行
完成上述所有步骤之后,就可以启动qemu来模拟vexpress开发板了,命令参数如下:
qemu-system-arm -M vexpress-a9 -m 512M -kernel /change_to_your_kernel_source_path/zImage -nographic -append "root=/dev/mmcblk0 init=/linuxrc console=ttyAMA0" -sd a9rootfs.ext3
最后的显示界面如下图所示:
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有