Firefly开源社区

开发板模拟 USB 网卡

127

积分

0

威望

0

贡献

技术小白

积分
127
发表于 2019-8-29 15:00:24     
本帖最后由 Negro旋 于 2019-9-26 09:16 编辑

本文主要讲述的是用开发板模拟成USB网卡,通过流量转发实现PC机上网。

第一步:内核配置

进入内核配置菜单选项中,选择以下选项:

1. Device Drivers -> USB Support -> USB Gadget Support,然后在 USB Gadget Driver 选项中选择到 Ethernet Gadget (with CDC Ethernet support)。
2. 选择到 RNDIS support 选项。

```
            ...
<*>   USB Gadget Drivers (Ethernet Gadget (with CDC Ethernet support))  --->
        Ethernet Gadget (with CDC Ethernet support)       RNDIS support (NEW)
            ...
```

然后编译内核,并将内核烧录到开发板中。


第二步:IP 地址设置

在开发板上:
    1. 网线连接开发板,使开发板可以上网。对应的网卡是eth0, IP 地址是 168.168.100.48。
    2. ifconfig -a 可以查看到 usb0 网卡,这个是模拟出来的网卡。设置它的 IP 地址: ifconfig usb0 192.168.1.100。
    (注意 eth0 和 usb0 的网段不可以相同)

在 PC 机上:
    1. 用数据线连接开发板的 OTG 接口和 电脑的 USB 接口,然后执行 lsusb 可以看到 USB 网卡设备:Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget
    2. 设置 USB 网卡 IP 地址,网段和开发板 usb0 的要一致,这里设置为 192.168.1.101。
    3. 设置开发板的 usb0 为默认网关:sudo route add default gw 192.168.1.100。


第三步:开发板设置转发规则

在开发板上:
    1. 允许 IP 转发: echo 1 > /proc/sys/net/ipv4/ip_forward
    2. 添加转发规则: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 168.168.100.48

此时 PC 机就可以通过开发板模拟的 USB 网卡上网了。(如果 PC 机可以 ping 通开发板的 usb0 和 eth0 却无法上网,请将 PC 机上 USB 网卡的 DNS 设置为开发板 eth0 的 DNS 一致或者设置为 8.8.8.8或其他可用的 DNS)

更多的 Ubuntu 应用教程,可以参考 Firefly-RK3399 的 wiki。

http://wiki.t-firefly.com/zh_CN/ ... buntu_support.html#
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表