内核配置

驱动加载

  1. 此项功能依赖于 u_ether.ko usb_f_rndis.ko usb_f_fs.ko g_ether.ko,直接使用modprobe g_ether.ko即可
  2. 查看板子输出,会多出一个叫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. 除了上边加载驱动外,还可以通过脚本来开机加载
    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 $?

  2. 将文件保存到/etc/init.d/S97rndis这里即可开机加载驱动,效果是一样的

配置网卡

  1. 板子上执行

#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
  1. 板子上ping一下是否畅通,这里的ip可以随便配置,我只是为了挂载NFS目录
  2. mount -t nfs -o nolock 192.168.8.195:/home/xfdr/nfs /mnt
  3. 这样就实现了通过USB来挂载NFS文件夹了,这样做比WIFI速度快不少,使用非常方便

注意:在win10上(build 1909)会被识别为串口,需要使用另外的驱动才能成功识别
kindle_rndis_inf_amd64-v1_0_0_1.zip
rndis.cab