Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211836
  • 博文数量: 93
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 978
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-10 15:46
个人简介

青春无悔

文章分类

全部博文(93)

文章存档

2015年(16)

2014年(77)

我的朋友

分类: 嵌入式

2014-11-10 16:45:28

nfs boot
ubuntu@ubuntu-virtual-machine:~/Evan/002.s3c2440/release$ qemu-sysytem-arm -M mini2440 -serial stdio -mtdblock nand.bin -kernel uImage -net nic -net tap,ifname=tap0,script=no,downscript=no

MINI2440 # setenv bootargs root=/dev/nfs rw nfsroot=192.168.20.129:/srv/nfsroot/ ip=192.168.20.199
MINI2440 # bootm




在嵌入式开发阶段,通常我们会操作一个挂载在NFS上的系统,这样更加方便,快捷,无需每次都烧写NANDNOR文件。接下来我们用NFS启动系统:

之前在~/buildroot-2012.05/output/images/  这个目录里,除了生成rootfs.jffs2文件外,还生成了rootfs.tar文件,是根文件系统的压缩文件包。我们在/srv 文件夹下新建一个nfsroot文件夹以储存解压的根文件系统:

$ sudo mkdir /srv/nfsroot/

$ cd /srv/nfsroot/

$ sudo tar xvf ~/buildroot-2012.05/output/images/rootfs.tar

接着需要在/etc/exportfs 文件里增加以下一行,使NFS能认识/srv/nfsroot/这个目录:(129为server ip)

/srv/nfsroot/ 192.168.20.129/24(rw,sync,no_root_squash,no_subtree_check)

使其生效:

$ sudo exportfs -r

然后,我们生成并配置一个 tap0 接口:

sudo tunctl -u $USER -t tap0

sudo ifconfig tap0 192.168.20.200

此时ifconfig发现多了一块网卡。

(当启动qemu使用了-net nic -nettap,ifname=tap0参数时,报错warning: could not configure /dev/net/tun: no virtual network emulationCould not initialize device 'tap',就需要按照上面方法配置一下网卡,这才是正解,网上给出的答案又麻烦又无效;但是记住,经过此设置后,ubuntu是无法连接外网的,此设置重启后无效)


ubuntu@ubuntu-virtual-machine:~/Evan/002.s3c2440/release$ ls
nand.bin  readme  u-boot.bin  uImage

Ok,我们启动QEMU+NFS

$ qemu-sysytem-arm -M mini2440 -serial stdio -mtdblock nand.bin -kernel uImage -net nic -net tap,ifname=tap0,script=no,downscript=no

MINI2440 # setenv bootargs root=/dev/nfs rw nfsroot=192.168.20.129:/srv/nfsroot/ ip=192.168.20.199

MINI2440 # bootm

输入Buildroot的密码,默认是root, 此时系统启动了,可以看到QEMU的窗口和可爱的Linux小企鹅。

阅读(620) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~