查看Linux环境开发指南的源代码
←
Linux环境开发指南
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
你刚才请求的操作只对属于该用户组的用户开放:
用户
您可以查看并复制此页面的源代码:
==搭建 SylixOS Linux 仿真环境== ===编译 qemu-mini2440=== ---- *下载 qemu-mini2440 源代码 :输入如下命令下载 qemu-mini2440 的源代码到 /home/user/sylixos_workspace/qemu-mini2440-src 目录: cd /home/user/sylixos_workspace git clone https://github.com/SylixOS/qemu-mini2440.git qemu-mini2440-src *配置 qemu-mini2440 :输入如下命令配置 qemu-mini2440: cd qemu-mini2440-src ./configure --target-list=arm-softmmu :如果出现如下提示: Error: zlib check failed Make sure to have the zlib libs and headers installed. :那么输入如下命令安装 zlib 开发包: sudo apt-get install zlib1g-dev :同样,如果出现如下提示: Error: sdl check failed :则输入如下命令安装 sdl1.2 开发包: sudo apt-get install libsdl1.2-dev *编译 qemu-mini2440 :输入如下命令编译: make :正确编译之后,会在 arm-softmmu 子目录下生成 qemu-system-arm 文件。 :输入如下命令将其复制到 /home/user/sylixos_workspace/qemu-mini2440 目录: cp ./arm-softmmu/qemu-system-arm /home/user/sylixos_workspace/qemu-mini2440 ===配置 qemu 的网络功能=== ---- :qemu 支持多种网络链接方式,其中最常用的就是桥接(bridge)。 这需要依赖内核的 tun/tap 模块的支持。 *输入如下命令安装必要的工具包: sudo apt-get install uml-utilities sudo apt-get install bridge-utils *输入如下命令查看 /dev/net/tun 文件: ls -l /dev/net/tun crw-rw-rwT 1 root root 10, 200 Apr 15 02:23 /dev/net/tun :如果该文件存在,这表明内核已经支持开启了 tun 支持,在 ubuntu-12.04 中,这个功能默认已经开启。 :如果该文件不存在,则需要加载 tun 模块,并创建 /dev/net/tun 文件。 *修改 /etc/network/interfaces 文件,笔者的文件内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录): # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #NetworkManager#iface eth0 inet dhcp auto br0 iface br0 inet dhcp bridge_ports eth0 *添加 /etc/qemu-ifup 和 /etc/qemu-ifdown 脚本。 :默认情况下,当 qemu 使用 tap 设备时,会执行 /etc/qemu-ifup 和 /etc/qemu-ifdown 这两个脚本。 :我们需要创建这两个脚本,然后为它们加上可执行权限(使用chmod +x)。 :创建 /etc/qemu-ifup 脚本,内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录): #!/bin/sh echo sudo tunctl -u $(id -un) -t $1 sudo tunctl -u $(id -un) -t $1 echo sudo ifconfig $1 0.0.0.0 promisc up sudo ifconfig $1 0.0.0.0 promisc up echo sudo brctl addif br0 $1 sudo brctl addif br0 $1 echo brctl show brctl show sudo ifconfig br0 192.168.7.20 :创建 /etc/qemu-ifdown 脚本,内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录): #!/bin/sh echo sudo brctl delif br0 $1 sudo brctl delif br0 $1 echo sudo tunctl -d $1 sudo tunctl -d $1 echo brctl show brctl show :输入如下命令为 /etc/qemu-ifup 和 /etc/qemu-ifdown 脚本加上可执行权限: chmod +x /etc/qemu-ifup chmod +x /etc/qemu-ifdown *最后需要重启计算机,使新的 /etc/network/interfaces 配置文件生效。 === 运行 qemu-mini2440 虚拟机 === :进入 /home/user/sylixos_workspace/qemu-mini2440 目录: cd /home/user/sylixos_workspace/qemu-mini2440 :输入如下命令执行 nandCreator.sh 脚本: chmod +x nandCreator.sh ./nandCreator.sh :执行完成后,会在当前目录生成一个名为 nand.bin 的 Nand Flash 镜像文件。 :输入如下命令执行 mini2440_run.sh 脚本: chmod +x mini2440_run.sh ./mini2440_run.sh :mini2440_run.sh 脚本的内容如下: ./qemu-system-arm -M mini2440 -show-cursor -kernel ../bspmini2440/Debug/bspmini2440.bin -serial stdio -mtdblock nand.bin -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 :如果出现如下信息: warning: could not configure /dev/net/tun: no virtual network emulation Could not initialize device 'tap' :那么先手动执行如下命令: /etc/qemu-ifup tap0 :注意:不可使用 sudo 执行上一条命令,每次启动 ubuntu 后都需要手动执行一次上一条命令。
返回
Linux环境开发指南
。
个人工具
登录
名字空间
页面
讨论
变种
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
最近更改
随机页面
工具
链入页面
相关更改
特殊页面