博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统
阅读量:5942 次
发布时间:2019-06-19

本文共 3039 字,大约阅读时间需要 10 分钟。

 

环境介绍

Win7 64 + Vmware 11 + ubuntu14.04 32

u-boot 版本:u-boot-2015-04

Linux kernel版本:linux-3.16.y

busybox版本:1_24_stable

交叉编译工具链:arm-linux-gnueabi-

qemu版本:stable-2.4

 

目的

这篇博文的目的是实现NFS根文件系统的挂载。具体步骤如下。

 

步骤

1、参照博文,以保证Qemu的网络是可以用的。

2、配置u-boot的环境变量bootargs

setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.11.20:/nfs_rootfs/rootfs init=/linuxrc console=ttyAMA0 ip=192.168.11.5'

 

3、配置kernel

配置内核,使其支持nfs挂载根文件系统

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16/ menuconfig

配置:

File systems  --->

    [*] Network File Systems  --->

        <*>   NFS client support

        <*>     NFS client support for NFS version 3

        [*]       NFS client support for the NFSv3 ACL protocol extension

        [*]   Root file system on NFS

 

然后重新编译内核

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=./out_vexpress_3_16 LOADADDR=0x60003000 uImage -j2

将生成的uImage拷贝到/tftpboot下

4、启动

qemu-system-arm -M vexpress-a9 \     -kernel /root/tq2440_work/u-boot/u-boot/u-boot \     -nographic \     -m 512M \     -net nic,vlan=0 -net tap,vlan=0,ifname=tap0     -sd /root/tq2440_work/busybox_study/a9rootfs.ext3

注:这里的-sd参数此时可以不用设置。

启动信息:

VFS: Mounted root (nfs filesystem) on device 0:12.Freeing unused kernel memory: 236K (805c2000 - 805fd000)Please press Enter to activate this console. [root@vexpress ]# [root@vexpress ]# [root@vexpress ]# [root@vexpress ]# mountrootfs on / type rootfs (rw)192.168.11.20:/nfs_rootfs/rootfs on / type nfs (rw,relatime,vers=2,rsize=4096,wsize=4096,namlen=255,hard,nolock,proto=udp,timeo=11,retrans=3,sec=sys,mountaddr=192.168.11.20,mountvers=1,mountproto=udp,local_lock=all,addr=192.168.11.20)proc on /proc type proc (rw,relatime)tmpfs on /tmp type tmpfs (rw,relatime)sysfs on /sys type sysfs (rw,relatime)tmpfs on /dev type tmpfs (rw,relatime)devpts on /dev/pts type devpts (rw,relatime,mode=600)

 

此时我们由于指定了-sd参数,所以我们还可以访问原来的根文件系统,方法如下:

[root@vexpress ]# ls /dev/mmcblk0  -lhbrw-rw----    1 0        0         179,   0 Dec  6 08:47 /dev/mmcblk0[root@vexpress ]# df -hFilesystem                Size      Used Available Use% Mounted on192.168.11.20:/nfs_rootfs/rootfs                         15.6G      5.1G      9.7G  34% /tmpfs                   250.7M         0    250.7M   0% /tmptmpfs                   250.7M         0    250.7M   0% /dev[root@vexpress ]# mount -t ext3 /dev/mmcblk0 /mnt/tmp random: nonblocking pool is initializedkjournald starting.  Commit interval 5 secondsEXT3-fs (mmcblk0): using internal journalEXT3-fs (mmcblk0): mounted filesystem with writeback data mode[root@vexpress ]# ls /mnt/tmp/bin         etc         linuxrc     mnt         root        sys         usrdev         lib         lost+found  proc        sbin        tmp         var[root@vexpress ]#

 

5、开启图形界面

  • 修改u-boot参数
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.11.20:/nfs_rootfs/rootfs init=/linuxrc console=ttyAMA0 console=tty0 ip=192.168.11.5'
  • 执行命令
qemu-system-arm -M vexpress-a9 \     -kernel /root/tq2440_work/u-boot/u-boot/u-boot \     -serial stdio \     -m 512M \     -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \     -sd /root/tq2440_work/busybox_study/a9rootfs.ext3

 

截图:

 

未完待续。

转载地址:http://akqtx.baihongyu.com/

你可能感兴趣的文章
算法导论——所有点对最短路径:稀疏图Johnson算法
查看>>
我的友情链接
查看>>
linux下安装监控网络流量工具Iptraf
查看>>
Oracle之分页查询
查看>>
Docker镜像
查看>>
打印HotSpot VM采用自动优化参数
查看>>
install mysql with source code
查看>>
OC语言的代码保护
查看>>
IBM磁带库中更换磁带的步骤
查看>>
tomcat启动报错
查看>>
mybatis3单表增删改查(二)——注解方式
查看>>
【Linux基础】作业二
查看>>
SQL0332N 不支持从源代码页 "XXXX" 到目标代码页 "XXXX"
查看>>
【存储过程】从数据库中读取数据保存到文件中
查看>>
购华为第1书,写书评赢大奖
查看>>
Linux系统程序包管理工具 RPM
查看>>
朱翊:从鼎级云珍冰箱看卡萨帝的百年品牌逻辑
查看>>
进军“手机照相馆”:京东要和3C厂商干什么?
查看>>
多数大数据项目都以失败而告终的原因
查看>>
再谈MySQL JSON数据类型
查看>>