这就需要建立主机的eth8(我的虚拟机的网络接口为eth8),到or1ksim的eth0(or1ksim运行linux之后的网络接口为eth0)的虚拟网络通路。
整体结构如下:
or1ksim.cfg:
section ethernet enabled = 1 baseaddr = 0x92000000 /* dma = 0 */ irq = 4 rtx_type = "tap" tap_dev = "tap0" /* tx_channel = 0 */ /* rx_channel = 1 */ rxfile = "eth0.rx" txfile = "eth0.tx" sockif = "eth0" end
所以,我们需要建立一个网桥(bridge),建立eth8的虚拟访问端口(tap0),一旦建立了tap0,or1ksim就可以通过访问tap0,来实现对eth8的访问,也就实现了对主机文件的访问。
了解了其工作机制之后,我们就需要搭建eth8到or1ksim之间的网桥了,步骤如下:
sudo apt-get install openvpn
sudo apt-get install bridge-utils
在安装完上面两个tool之后,我们就可以创建or1ksim访问的tap0了,这一步or1ksim提供了两个shell脚本,一个用来创建,一个用来结束。
创建:
Usage: ./brstart-static.sh <username> <groupname> <bridge> <eth> <tap>
sudo ./brstart-static.sh openrisc openrisc bridge_rill eth8 tap0
sudo ifconfig eth8 192.168.1.120
Usage: ./brend-static.sh <bridge> <eth> <tap>
sudo ./brend-static bridge_rill eth8 tap0
在创建好tap0之后,我们还需要使能nfs server,以便or1ksim访问。
这一步我们大家比较熟悉了,如有疑问,请参考:http://blog.csdn.net/rill_zhen/article/details/8700937
一切准备就绪,我们就可以运行linux了,命令如下:
sim -f ~/soc-design/linux/arch/openrisc/or1ksim.cfg ~/soc-design/linux/vmlinux
在linux启动之后,我们就可以挂载上面我们使能的nfs server了。
mkdir nfs mount -t nfs -o nolock 192.168.1.120:/home/openrisc/nfs nfs
如果一切顺利,我们可以看到,我们已经可以挂载主机的nfs,并可以访问主机上的文件了。
如下图所示:
本小节通过建立eth8到or1ksim之间的虚拟网桥,实现了simulator和host的数据交换,这样,如果向or1ksim中添加模块,编写对应的linux驱动并编译成ko文件之后,我们就可以通过这种方式访问并加载ko文件来测试添加的模块了。
Enjoy!
http://download.csdn.net/detail/rill_zhen/6924635
OpenRisc-65-关于or1ksim模拟运行linux时如何访问本地文件的问题的分析与解决
原文:http://blog.csdn.net/rill_zhen/article/details/19238825