全志F1C上测试一下USB-Gadget-Ethernet功能
内核配置

驱动加载
- 此项功能依赖于 u_ether.ko usb_f_rndis.ko usb_f_fs.ko g_ether.ko,直接使用modprobe g_ether.ko即可
- 查看板子输出,会多出一个叫usb0的网卡
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39[ 2734.604498] using random self ethernet address
[ 2734.609106] using random host ethernet address
[ 2734.614621] usb0: HOST MAC 06:d6:3f:f1:88:be
[ 2734.619126] usb0: MAC 82:5a:d5:83:b9:da
[ 2734.623035] using random self ethernet address
[ 2734.627555] using random host ethernet address
[ 2734.632127] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[ 2734.638824] g_ether gadget: g_ether ready
# [ 2735.352830] g_ether gadget: high-speed config #2: RNDIS
ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
usb0 Link encap:Ethernet HWaddr 82:5A:D5:83:B9:DA
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr AC:35:EE:BD:12:FF
inet addr:192.168.43.136 Bcast:192.168.43.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1162 errors:0 dropped:366 overruns:0 frame:0
TX packets:148 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:336477 (328.5 KiB) TX bytes:19524 (19.0 KiB)
wlan1 Link encap:Ethernet HWaddr AE:35:EE:BD:12:FF
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:760 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
脚本加载驱动
- 除了上边加载驱动外,还可以通过脚本来开机加载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50#!/bin/sh
#
# Start RNDIS....
#
start() {
printf "Starting RNDIS: \n"
mount none /sys/kernel/config -t configfs
modprobe libcomposite.ko
modprobe u_ether.ko
modprobe usb_f_rndis.ko
sleep 1
cd /sys/kernel/config/usb_gadget/
mkdir g1
cd g1
echo "0x0502" > idVendor
echo "0x3235" > idProduct
mkdir functions/rndis.rn0
mkdir configs/c1.1
ln -s functions/rndis.rn0/ configs/c1.1/
sleep 1
ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g1/UDC
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
stop() {
printf "Stopping RNDIS: \n"
echo > /sys/kernel/config/usb_gadget/g1/UDC
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
sleep 1
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $? - 将文件保存到/etc/init.d/S97rndis这里即可开机加载驱动,效果是一样的
配置网卡
- 板子上执行
#ifconfig usb0 192.168.8.190 netmask 255.255.255.0
2. Linux电脑此时也会多出一个类似这个名称enp0s20f0u4的网卡
1 | sudo ifconfig enp0s20f0u4 192.168.8.195 netmask 255.255.255.0 |
- 板子上ping一下是否畅通,这里的ip可以随便配置,我只是为了挂载NFS目录
- mount -t nfs -o nolock 192.168.8.195:/home/xfdr/nfs /mnt
- 这样就实现了通过USB来挂载NFS文件夹了,这样做比WIFI速度快不少,使用非常方便
注意:在win10上(build 1909)会被识别为串口,需要使用另外的驱动才能成功识别
kindle_rndis_inf_amd64-v1_0_0_1.zip
rndis.cab
评论