WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(五)——其他辅助优化功能

虚拟开发板连接互联网

        在实际开发嵌入式Linux操作系统的过程中,交换文件数据不仅仅局限于主机和开发板之间,很多时候需要开发板直接访问外网。然而在前几个章节的介绍中,开发板只能与主机通信,极大限制了开发者在网络方面的应用,因此本小节将带读者探讨如何使Qemu搭建的虚拟开发板顺利访问互联网。

修改rootfs根文件系统

        开发板在操作系统初始化过程中,需要对连接互联网进行基本配置,包括指定DNS服务器、开启网卡混杂模式、配置静态路由等操作。

进入根文件系统目录

cd /home/workspace/objects/rootfs-arm32

开发板指定DNS服务器

touch etc/resolv.conf
chmod 777 etc/resolv.conf
vim etc/resolv.conf

# 在resolv.conf文件内添加以下内容
nameserver 114.114.114.114

开发板初始化规则配置

vim etc/init.d/rcS

# 在rcS文件末尾添加以下内容
ifconfig eth0 172.16.16.20 promisc up
route add default gw 172.16.16.10 dev eth0

将修改后的根文件系统拷贝到/sync/rootfs内

cd /home/workspace/objects/rootfs-arm32
sudo cp -rf * /sync/rootfs/
sudo chmod 777 -R /sync/rootfs

修改主机配置

        虚拟开发板访问互联网,不仅需要修改开发板相关配置文件,同时也需要对主机进行进一步操作,包括开启IP转发、配置静态路由、配置iptable规则等。

主机开启IP转发

vim /etc/sysctl.conf

# 将sysctl.conf中的net.ipv4.ip_forward置为1
net.ipv4.ip_forward=1

# !!!注意:修改后需重启操作系统完成配置!!!

主机配置TAP虚拟网卡

# 每次重启操作系统,tap0都会消失,需要重新配置,因此建议将这段代码直接写进qemu-start-uboot-arm32.sh脚本中
sudo tunctl -u root -t tap0 #创建虚拟网卡
sudo ifconfig tap0 172.16.16.10 promisc up
sudo route add -net 172.16.0.0 netmask 255.255.0.0 dev tap0
sudo iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o eth0 -j MASQUERADE
sudo netfilter-persistent save

运行qemu-start-uboot-arm32.sh脚本

cd /home/workspace/objects
./qemu-start-uboot-arm32.sh

此时,虚拟开发板已可以连接互联网

内核及根文件系统更新脚本

        在进行Linux内核裁剪修改的过程中,经常会遇到内核、设备树以及根文件系统被修改后重新编译的情况,此时需要将新的文件放入tftp服务器以及nfs服务器内,编写install_arm32.sh脚本更方便操作。

cd /home/workspace/objects
vim install_arm32.sh

# 在install_arm32.sh内添加以下内容
sudo cp vexpress-v2p-ca9/arch/arm/boot/dts/vexpress-v2p-ca9.dtb /sync/tftp/
sudo cp vexpress-v2p-ca9/arch/arm/boot/uImage /sync/tftp/
sudo rm -rf /sync/rootfs/*
sudo cp -rf rootfs-arm32/* /sync/rootfs
sudo chmod -R 777 /sync/rootfs

        往后修改完内核、设备树以及根文件系统后,直接运行上述脚本,即可开启qemu进行验证,提高编码效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值