环境介绍

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 ]# mount
rootfs 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  -lh
brw-rw----    1 0        0         179,   0 Dec  6 08:47 /dev/mmcblk0
[root@vexpress ]# df -h
Filesystem                Size      Used Available Use% Mounted on
192.168.11.20:/nfs_rootfs/rootfs15.6G      5.1G      9.7G  34% /
tmpfs                   250.7M         0    250.7M   0% /tmp
tmpfs                   250.7M         0    250.7M   0% /dev
[root@vexpress ]# mount -t ext3 /dev/mmcblk0 /mnt/tmp
random: nonblocking pool is initialized
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0): using internal journal
EXT3-fs (mmcblk0): mounted filesystem with writeback data mode
[root@vexpress ]# ls /mnt/tmp/
bin         etc         linuxrc     mnt         root        sys         usr
dev         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

截图:

未完待续。

转载于:https://www.cnblogs.com/pengdonglin137/p/5023875.html

用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统相关推荐

  1. QEMU 模拟Arm A9开发板

    一.在Deepin 中编译Qemu4, 1.下载Qemu4源码 wget https://download.qemu.org/qemu-4.0.0.tar.xz 2.解压缩 tar xvJf qemu ...

  2. 用QEMU模拟ARM开发板,搭建Linux kernel运行环境

    前言 有的时候我们想调试linux kernel或者linux应用程序,但是又没有硬件环境,这个时候可以选择用模拟器的方法,模拟出一个硬件环境. Android emulator Android系统的 ...

  3. 使用Qemu模拟vexpress-a9搭建模拟开发板

    目录 1. 环境介绍: 2. 下载Linux内核 3. 安装arm的交叉编译工具链 4.编译Linux内核 5. 下载qemu 6. 制作根文件系统 1. 根文件系统的内容 2. 根文件系统放在哪里 ...

  4. linux系统移植篇(四)—— 根文件系统使用介绍

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  5. 为 QEMU ARM 仿真器编译 Linux 内核:QEMU 模拟 ARM 环境

    QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛.简单来说,QEMU 是一个虚拟机,与常见的 Vm ...

  6. 嵌入式开发模拟器:qemu使用,仿真多种方式启动内核kernel (超详细,tftp/nfs等方式)

    适用于: 想学习嵌入式开发,但又没有购买开发板的情况 开发测试阶段避免繁琐耗时下载到主板 便于调试驱动及内核 与外设关联不大时 环 境: vmare 15 pro ubuntu 18.04 qemu ...

  7. qemu模拟A9/A15运行Linux4.2.3

    根据http://www.linuxidc.com/Linux/2012-07/65478p2.htm修改 主机运行操作系统,deepin2015 http://www.deepin.org/ 1.安 ...

  8. Ubuntu 16.04 利用qemu模拟ARM开发板

    QEMU目前可以模拟vexpress Cortex A9四核处理器开发板. 环境配置:Ubuntu 16.04,Kernel 4.4.1 内容参考了: http://blog.csdn.net/lin ...

  9. 在qemu模拟的aarch32上使用kgtp

    KGTP 介绍 KGTP 是一个能在产品系统上实时分析 Linux 内核和应用程序(包括 Android)问题的全面动态跟踪器. 使用 KGTP 不需要 在 Linux 内核上打 PATCH 或者重新 ...

最新文章

  1. 制药行业的GxP代表什么?
  2. JavaScript核心参考手册.chm
  3. 微软的最高市值是多少?
  4. mpvue小程序架构搭建详细介绍
  5. MVC5管道处理模型
  6. 怎样将Embedding融入传统机器学习框架?
  7. 华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...
  8. HitPaw Watermark Remover for mac(视频图片去水印)
  9. 关于jq22.com网站访问不了的问题
  10. react 打电话+阻止冒泡
  11. php判断运营商,php识别手机号码运营商简单示例
  12. 微光集市-商品及其商品信息的显示(版本1.0)
  13. 解读如何打造支撑万亿规模的K8s集群?
  14. java ico图标_javaweb中如何给自己的网站更改ico图标
  15. word方案基本结构格式记录
  16. 如来昔在然灯是和所时_TGB
  17. 区块链/solidity-address payable和address
  18. LightGBM Python 软件包的基本演练.
  19. 深入浅出C语言程序设计pdf
  20. html+css实现点击图片缩小或放大

热门文章

  1. 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 spfa (存多条边示例)
  2. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
  3. 【ORACLE 高可用】使用GOLDENGATE 配置Oracle-MySQL的异构复制
  4. 抗震求灾捐款,我们公司总额为:14222
  5. Android SDK目录结构介绍
  6. gradle的插件包
  7. Android Java和JavaScript互调
  8. 友盟分享快速集成--学习记录
  9. 京东AI研究院何晓冬:将先进的技术和模型落地到产业
  10. Pandas库(3):DataFrame的条件过滤用法