Linux镜像USB转网口驱动模块配置
最近在調試USB轉網口,涉及到Linux內核編譯配置文件的更改,記錄一下調試過程。
首先需要了解USB設備接入后系統的識別信息,打印內核日志:
root@MyDevice:/# dmesg | tail -20
[ 5364.325642] usb 1-1.1: new high-speed USB device number 5 using xhci-hcd
[ 5364.426138] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=8152
[ 5364.426145] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5364.426148] usb 1-1.1: Product: USB 10/100 LAN
[ 5364.426152] usb 1-1.1: Manufacturer: Realtek
[ 5364.426155] usb 1-1.1: SerialNumber: 00E04C3607A9
注意idProduct和Manufacturer內容,我用的這款USB轉網口設備嵌入的是瑞昱的8152網口芯片。
進入Linux內核源碼的kernel目錄執行
make menuconfig
進入到圖形化配置界面,依次鍵選[Device Drivers -> Network device support -> USB Network Adapters]
找到 Realtek RTL8152/RTL8153 Based USB Ethernet Adapters選項使能即可。
以上選項信息參考博文:ARM平臺嵌入式Linux下網口擴展 - 與非網
然而,編譯出的內核版本驗證未成功,進入menuconfig圖形界面發現勾選已失效(無法正常保存勾選),因此在內核源碼目錄下尋找config文件進行手動更改配置項
.../configs/.../normal_kernel.config
查看代碼
...
CONFIG_USB_NET_DRIVERS=y
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
#CONFIG_USB_RTL8150 is not set
#CONFIG_USB_RTL8152 is not set
# CONFIG_USB_LAN78XX is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
...
將CONFIG_USB_RTL8150和CONFIG_USB_RTL8152設為使能,進入menuconfig查看相應配置項,已更新為勾選。
制作內核版本,燒寫至設備后上電啟動,dmesg查看USB接口信息:
[ 471.409739] usb 1-1.1: new high-speed USB device number 4 using xhci-hcd
[ 471.510346] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=8152
[ 471.510353] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 471.510357] usb 1-1.1: Product: USB 10/100 LAN
[ 471.510360] usb 1-1.1: Manufacturer: Realtek
[ 471.510364] usb 1-1.1: SerialNumber: 00E04C3607A9
[ 471.701309] usb 1-1.1: reset high-speed USB device number 4 using xhci-hcd
[ 471.882926] r8152 1-1.1:1.0 eth1: v1.09.9
可以發現,多出了一行識別信息,r8152被識別為eth1(此時ifconfig發現新的網卡,但是沒有IP等信息),使用udhcpc命令為eth1分配動態ip地址:
udhcpc -i eth1
ifconfig查看網絡配置情況:
root@MyDevice:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0D:0D:D6:B6:21inet6 addr: fe80::20d:dff:fed6:b621/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:367 errors:0 dropped:0 overruns:0 frame:0TX packets:525 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:92887 (90.7 KiB) TX bytes:74001 (72.2 KiB)Interrupt:30eth0.10 Link encap:Ethernet HWaddr 00:0D:0D:D6:B6:21inet addr:10.16.7.122 Bcast:10.16.7.255 Mask:255.255.255.0inet6 addr: 2001:10:16:8::60/64 Scope:Globalinet6 addr: fe80::20d:dff:fed6:b621/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:97 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:18767 (18.3 KiB)eth1 Link encap:Ethernet HWaddr 00:E0:4C:36:07:A9inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:20 errors:0 dropped:0 overruns:0 frame:0TX packets:13 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:4679 (4.5 KiB) TX bytes:2086 (2.0 KiB)lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:201 errors:0 dropped:0 overruns:0 frame:0TX packets:201 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:22516 (21.9 KiB) TX bytes:22516 (21.9 KiB
發現eth1的IP地址生效,且與eth0.30在同一局域網,接著驗證eth1的網絡性能,發現無法ping通局域網中的其他設備。
route add default gw 192.168.1.1 eth1
進一步設置eth1的默認網關,再ping成功。t802:~# route add default gw 192.168.1.1 eth1
總結
以上是生活随笔為你收集整理的Linux镜像USB转网口驱动模块配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工授精成功后最早症状
- 下一篇: 《听歌六绝句·离别难》第一句是什么