linux qemu arm,qemu armlinux折腾笔记
arm linux qemu折腾笔记
最近几天折腾qemu,涉及到了u-boot,nfs,mini2440等信息,新手,没有经验,遇到问题到网上未必能搜到,所以花了不少时间,现在把心得整理一下,本文只是描述可能遇到的问题,并不是完整的可跟随的记录。
qemu
我用的archlinux中的qemu已经是当时最新版本(1.4),但是如果需要定制等,可能还要自己编译,比如如果你在之后的运行中出现:
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
audio: Failed to create voice `lmxxx.out'
错误的话,这里就需要$./configure --audio-drv-list=alsa 之后重新编译。
在以后的运行过程中可能还需要设置环境变量:export QEMU_AUDIO_DRV=alsa
这个是在别人的博客中无意发现的,感谢原作者。
我编译的一个例子,第一个参数参考别人的做法,自己加入了 后两个参数
./configure --target-list=arm-softmmu --audio-drv-list=alsa --python=/usr/bin/python2.7
遇到错误:
GEN qemu-doc.html
./qemu-options.texi:1521: unknown command `list'
./qemu-options.texi:1521: table requires an argument: the formatter for @item
./qemu-options.texi:1521: warning: @table has text but no @item
make: *** [qemu-doc.html] Error 1
在邮件列表中找到解决办法,手动运行。
LC_ALL=C makeinfo --no-headers --no-split --number-sections --html qemu-doc.texi -o qemu-doc.html
还有错误,原来是make -j8 出现问题,改为单线程make正常
如果编译时提示缺少 Lxxx 就是缺少对应的库,用自己的linux发行版本的包管理工具搜索libxxx或者xxx,archlinux下也可以用pkgfile,来查找xx命令等在哪个包中
-M制定machine,默认的一般没有mini2440,需要自己编译,搜索mini2440 qemu就可发现,很详细。
关于网卡权限的问题,我在archlinux下,用mini2440版的qemu,执行,按照网上说的方法,加上sudo,系统就崩溃了,ubuntu下也是,黑屏无反应,强制关电源。
源里自带的qemu倒是没这个问题,只是不支持mini2440,当然还有一个办法,可以试试,在archlinux中可以不用sudo qemu...... 实现网络连接,ubuntu中还不能,还没有仔细研究
sudo tunctl -u $(whoami) -t tap1
sudo ifconfig tap1 192.168.1.1
sudo route add -net 192.168.1.0 netmask 255.255.255.0 dev tap1
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
提示缺少tunctl等,自己搜索安装对应的软件包就好了,archlinux下可以用pkgfile,如果不了解包管理器的搜索办法,可以到google中搜索,关键字+发行版。
启动qemu
qemu-system-arm -m 64M -nographic -M versatilepb -kernel zImage\
-append "console=ttyAMA0 root=/dev/nfs rw nfsroot=192.168.1.1:/srv/nfs4/ ip=192.168.1.101"\
-net nic -net tap,ifname=tap1,script=no
versatilepb可以改成对应的其他
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
