用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统
环境介绍
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挂载根文件系统相关推荐
- QEMU 模拟Arm A9开发板
一.在Deepin 中编译Qemu4, 1.下载Qemu4源码 wget https://download.qemu.org/qemu-4.0.0.tar.xz 2.解压缩 tar xvJf qemu ...
- 用QEMU模拟ARM开发板,搭建Linux kernel运行环境
前言 有的时候我们想调试linux kernel或者linux应用程序,但是又没有硬件环境,这个时候可以选择用模拟器的方法,模拟出一个硬件环境. Android emulator Android系统的 ...
- 使用Qemu模拟vexpress-a9搭建模拟开发板
目录 1. 环境介绍: 2. 下载Linux内核 3. 安装arm的交叉编译工具链 4.编译Linux内核 5. 下载qemu 6. 制作根文件系统 1. 根文件系统的内容 2. 根文件系统放在哪里 ...
- linux系统移植篇(四)—— 根文件系统使用介绍
linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...
- 为 QEMU ARM 仿真器编译 Linux 内核:QEMU 模拟 ARM 环境
QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛.简单来说,QEMU 是一个虚拟机,与常见的 Vm ...
- 嵌入式开发模拟器:qemu使用,仿真多种方式启动内核kernel (超详细,tftp/nfs等方式)
适用于: 想学习嵌入式开发,但又没有购买开发板的情况 开发测试阶段避免繁琐耗时下载到主板 便于调试驱动及内核 与外设关联不大时 环 境: vmare 15 pro ubuntu 18.04 qemu ...
- qemu模拟A9/A15运行Linux4.2.3
根据http://www.linuxidc.com/Linux/2012-07/65478p2.htm修改 主机运行操作系统,deepin2015 http://www.deepin.org/ 1.安 ...
- Ubuntu 16.04 利用qemu模拟ARM开发板
QEMU目前可以模拟vexpress Cortex A9四核处理器开发板. 环境配置:Ubuntu 16.04,Kernel 4.4.1 内容参考了: http://blog.csdn.net/lin ...
- 在qemu模拟的aarch32上使用kgtp
KGTP 介绍 KGTP 是一个能在产品系统上实时分析 Linux 内核和应用程序(包括 Android)问题的全面动态跟踪器. 使用 KGTP 不需要 在 Linux 内核上打 PATCH 或者重新 ...
最新文章
- 制药行业的GxP代表什么?
- JavaScript核心参考手册.chm
- 微软的最高市值是多少?
- mpvue小程序架构搭建详细介绍
- MVC5管道处理模型
- 怎样将Embedding融入传统机器学习框架?
- 华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...
- HitPaw Watermark Remover for mac(视频图片去水印)
- 关于jq22.com网站访问不了的问题
- react 打电话+阻止冒泡
- php判断运营商,php识别手机号码运营商简单示例
- 微光集市-商品及其商品信息的显示(版本1.0)
- 解读如何打造支撑万亿规模的K8s集群?
- java ico图标_javaweb中如何给自己的网站更改ico图标
- word方案基本结构格式记录
- 如来昔在然灯是和所时_TGB
- 区块链/solidity-address payable和address
- LightGBM Python 软件包的基本演练.
- 深入浅出C语言程序设计pdf
- html+css实现点击图片缩小或放大
热门文章
- 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 spfa (存多条边示例)
- [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
- 【ORACLE 高可用】使用GOLDENGATE 配置Oracle-MySQL的异构复制
- 抗震求灾捐款,我们公司总额为:14222
- Android SDK目录结构介绍
- gradle的插件包
- Android Java和JavaScript互调
- 友盟分享快速集成--学习记录
- 京东AI研究院何晓冬:将先进的技术和模型落地到产业
- Pandas库(3):DataFrame的条件过滤用法