本帖最后由 wandersky 于 2020-4-9 15:35 编辑
目的: imx6ull通过USB驱动4G模块,用来上公网, 同时imx6ull也有本地网卡eth0 eth1,, 要求笔记本连接到imx6ull它的本地网口可以共享imx6ull的4G模块来上网。
过程是坎坷的,
结果是满意的。
遇到了几个问题,
1,nfs挂载失败,这个也成了一个小绊脚石,有点意外的。我实现了N个NFS服务器了。在我的虚拟机上建立了一个NFS服务器,在虚拟机上顺利的自己挂载上了自己。但是从嵌入式MX6ULL挂载虚拟机的NFS目录时,却不成功。一直提示
:mount.nfs: an incorrect mount option was specified
解决过程序,
*& 在imx6ull里也添加了nfs-server 服务,网上是这么说的,
*& mount -o nolock,nfsvers=3 -t nfs 192.168.111.104:/home/willow/linux/imx6ull/nfs /mnt 使用这个命令挂载。
我不知道到底是哪个措施起作用了,因为我之前一直使用下面这个命令。
mount -o nolock -t nfs 192.168.111.104:/home/willow/linux/imx6ull/nfs /mnt
2 ME909 4G模块在IMX6ULL上的移植,这个简单,我用的阿尔法的开发板,发现自带的内核就可以驱动ME909,直接就能看到CDC_ETHER驱动起来了,输入ifocnfig, 也可以看到了usb0网卡,那我就不客气了,直接拨号:
echo "AT^NDISDUP=1,1">/dev/ttyUSB0
然后再查看ifconfig, 顺利的就看到了usb0获得到的IP地址。然后也可以ping 通百度了
3 其实这个工作最大的困难是NAT在内核中的配置。
#!/bin/bash
# 0. 设定你的参数值
EXIF='usb0' # 这个是对外的网卡接口, 可能是'ppp0'等
EXNET='192.168.0.1/24' # 这个是对内的网段
# 底下如无需要, 请不要改动了!
# 1. 启动routing等
echo 1 > /proc/sys/net/ipv4/ip_forward
/usr/sbin/iptables -F
/usr/sbin/iptables -X
/usr/sbin/iptables -Z
/usr/sbin/iptables -F -t nat
/usr/sbin/iptables -X -t nat
/usr/sbin/iptables -Z -t nat
/usr/sbin/iptables -P INPUT ACCEPT
/usr/sbin/iptables -P OUTPUT ACCEPT
/usr/sbin/iptables -P FORWARD ACCEPT
/usr/sbin/iptables -t nat -P PREROUTING ACCEPT
/usr/sbin/iptables -t nat -P POSTROUTING ACCEPT
/usr/sbin/iptables -t nat -P OUTPUT ACCEPT
# 2. 载入模组
/sbin/modprobe ip_tables 2> /dev/null
/sbin/modprobe ip_nat_ftp 2> /dev/null
/sbin/modprobe ip_nat_irc 2> /dev/null
/sbin/modprobe ip_conntrack 2> /dev/null
/sbin/modprobe ip_conntrack_ftp 2> /dev/null
/sbin/modprobe ip_conntrack_irc 2> /dev/null
# 3. 启动ip伪装
/usr/sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE
执行上面的脚本,一直提示 iptables 没有安装,于是配置内核安装IPTABLES, 安装完iptables之后,执行/usr/sbin/iptables -F -t nat命令,一直提示没有NAT表,
为了添加NAT表,费了我很大的时间,j明知道NAT相关的配置CONFIG_IP_NF_NAT 就在这下面,但是就是打不开,因为内核的配置很多的是相关联的,与之相关联的没有使能,CONFIG_IP_NF_NAT 这项配置根本就看不到,
Networking support -->
Networking option--->
Network packet filtering framework(netfilter)-->
core netfilter configuration-->
IP: netfilter configuration-->
主要就配置这里,但是如果在core netfilter configuration里面没有把相关联的配置使能的话,IPV4 NAT是出不来的。费了我一下午时间表,还算弄好了,通过笔记本连接imx6ull的有线网口,笔记本网关设置为imx6ull的本地网口的IP地址,就可以在笔记本上ping通知公网IP地址了, 221.6.4.66了, 但是ping不通域名,这个没有解决,应该是NAT没有转发DNS数据包的问题吧。
|