20240919在友善之臂的NanoPC-T6开发板上使用Rockchip原厂的Buildroot时打开CONFIG_USB_NET_RNDIS_HOST宏
2024/9/19 18:20
缘起,大毛PK二毛战况激烈,穿越机大卖!我司拆同行的图传作品。
发现:
主控:飞凌OK3588-C核心板
图传模块:宸芯的数传模块CX6602N
于是费了老鼻子劲,联系上了宸芯。
技术支持需要派工单,经过多方协调,终于和上海的软件FAE对接上了。
宸芯的数传模块CX6602N支持三频段:800M、1.4GHZ、2.4GHZ。
支持USB接口(PIN69的DP和PIN70的DM)和HSIC接口(PIN2的HSIS_DATA,PIN4的HSIC_STROBE)
USB接口可以直接以虚拟以太网卡的形式接友善之臂的NanoPC-T6开发板。
HSIC接口接LAN9730转【百兆】以太网RJ45之后,接下位机!
2. 上位机配置
2.1 添加 rndis 和 gserial 主机驱动
进入 kernel 目录 make menuconfig,1.添加配置 CONFIG_USB_NET_RNDIS_HOST=m:
很容易发现:Z:\repo_RK3588_Buildroot20240508\kernel\.config
找不到CONFIG_USB_NET_RNDIS_HOST宏。
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$ ll .config
-rwx------ 1 viewpro viewpro 198027 9月 11 19:54 .config*
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$ make ARHC=arm64 menuconfig
【第一级,使用向下的箭头拉到下一页/最后】
[ ] Hidden networking configuration needed for GKI
[ ] Hidden PHY configuration needed for GKI
[ ] Hidden MM configuration needed for GKI
[ ] Hidden DMA configuration needed for GKI
[ ] Hidden Ethernet configuration needed for GKI
[ ] GKI Dummy config options
Executable file formats --->
Memory Management options --->
[*] Networking support --->
Device Drivers --->
File systems --->
Security options --->
-*- Cryptographic API --->
Library routines --->
Kernel hacking --->
【第二级】
[ ] EISA support (NEW) ----
[*] PCI support --->
< > PCCard (PCMCIA/CardBus) support ----
< > RapidIO support ----
Generic Driver Options --->
Bus devices --->
<*> Connector - unified userspace <-> kernelspace linker --->
< > GNSS receiver support ----
<*> Memory Technology Device (MTD) support --->
[*] Device Tree and Open Firmware support --->
< > Parallel port support ----
[*] Block devices --->
NVME Support --->
Misc devices --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) (NEW) ----
SCSI device support --->
<*> Serial ATA and Parallel ATA drivers (libata) --->
[*] Multiple devices driver support (RAID and LVM) --->
< > Generic Target Core Mod (TCM) and ConfigFS Infrastructure ----
[ ] Fusion MPT device support ----
IEEE 1394 (FireWire) support --->
[ ] Macintosh device drivers (NEW) ----
[*] Network device support --->
Input device support --->
Character devices --->
I2C support --->
< > I3C support ----
[*] SPI support --->
< > SPMI support ----
< > HSI support ----
-*- PPS support --->
【第三级】
--- Network device support
[*] Network core driver support
< > Bonding driver support
< > Dummy net driver support
< > WireGuard secure network tunnel
< > EQL (serial line load balancing) support
[ ] Fibre Channel driver support
< > Ethernet team driver support ----
< > MAC-VLAN support
< > IP-VLAN support
< > Virtual eXtensible Local Area Network (VXLAN)
< > Generic Network Virtualization Encapsulation
< > Bare UDP Encapsulation
< > GPRS Tunneling Protocol datapath (GTP-U)
< > IEEE 802.1AE MAC-level encryption (MACsec)
< > Network console logging support
< > Universal TUN/TAP device driver support
[ ] Support for cross-endian vnet headers on little-endian kernels
<*> Virtual ethernet pair device
<*> Virtio network driver
<*> Virtual netlink monitoring device
< > ARCnet support ----
Distributed Switch Architecture drivers ----
[*] Ethernet driver support --->
< > FDDI driver support
[ ] HIPPI driver support
-*- PHY Device support and infrastructure --->
< > Micrel KS8995MA 5-ports 10/100 managed Ethernet switch
-*- MDIO bus device drivers --->
PCS device drivers --->
< > PPP (point-to-point protocol) support
【拉到最后】
< > IP-VLAN support
< > Virtual eXtensible Local Area Network (VXLAN)
< > Generic Network Virtualization Encapsulation
< > Bare UDP Encapsulation
< > GPRS Tunneling Protocol datapath (GTP-U)
< > IEEE 802.1AE MAC-level encryption (MACsec)
< > Network console logging support
< > Universal TUN/TAP device driver support
[ ] Support for cross-endian vnet headers on little-endian kernels
<*> Virtual ethernet pair device
<*> Virtio network driver
<*> Virtual netlink monitoring device
< > ARCnet support ----
Distributed Switch Architecture drivers ----
[*] Ethernet driver support --->
< > FDDI driver support
[ ] HIPPI driver support
-*- PHY Device support and infrastructure --->
< > Micrel KS8995MA 5-ports 10/100 managed Ethernet switch
-*- MDIO bus device drivers --->
PCS device drivers --->
< > PPP (point-to-point protocol) support
< > SLIP (serial line) support
<*> USB Network Adapters --->
[*] Wireless LAN --->
*** Enable WiMAX (Networking options) to see the WiMAX drivers **
[ ] Wan interfaces support ----
< > VMware VMXNET3 ethernet driver
< > Simulated networking device
-*- Failover driver
[ ] ISDN support ----
【第4级】
--- USB Network Adapters
< > USB CATC NetMate-based Ethernet device support
< > USB KLSI KL5USB101-based ethernet device support
< > USB Pegasus/Pegasus-II based ethernet device support
<*> USB RTL8150 based ethernet device support
<*> Realtek RTL8152/RTL8153 Based USB Ethernet Adapters
< > Microchip LAN78XX Based USB Ethernet Adapters
< > Multi-purpose USB Networking Framework
< > Option USB High Speed Mobile Devices
< > Apple iPhone USB Ethernet driver
--- USB Network Adapters
< > USB CATC NetMate-based Ethernet device support
< > USB KLSI KL5USB101-based ethernet device support
< > USB Pegasus/Pegasus-II based ethernet device support
<*> USB RTL8150 based ethernet device support
<*> Realtek RTL8152/RTL8153 Based USB Ethernet Adapters
< > Microchip LAN78XX Based USB Ethernet Adapters
<*> Multi-purpose USB Networking Framework
<*> ASIX AX88xxx Based USB 2.0 Ethernet Adapters (NEW)
<*> ASIX AX88179/178A USB 3.0/2.0 to Gigabit Ethernet (NEW)
-*- CDC Ethernet support (smart devices such as cable modems)
< > CDC EEM support (NEW)
<*> CDC NCM support (NEW)
< > Huawei NCM embedded AT channel support (NEW)
< > CDC MBIM support (NEW)
< > Davicom DM96xx based USB 10/100 ethernet devices (NEW)
< > CoreChip-sz SR9700 based USB 1.1 10/100 ethernet devices (NEW)
< > CoreChip-sz SR9800 based USB 2.0 10/100 ethernet devices (NEW)
< > SMSC LAN75XX based USB 2.0 gigabit ethernet devices (NEW)
< > SMSC LAN95XX based USB 2.0 10/100 ethernet devices (NEW)
< > GeneSys GL620USB-A based cables (NEW)
<*> NetChip 1080 based cables (Laplink, ...) (NEW)
< > Prolific PL-2301/2302/25A1/27A1 based cables (NEW)
< > MosChip MCS7830 based Ethernet adapters (NEW)
<*> Host for RNDIS and ActiveSync devices
<*> Simple USB Network Links (CDC Ethernet subset) (NEW)
[ ] ALi M5632 based 'USB 2.0 Data Link' cables (NEW)
[ ] AnchorChips 2720 based cables (Xircom PGUNET, ...) (NEW)
[*] eTEK based host-to-host cables (Advance, Belkin, ...) (NEW)
[*] Embedded ARM Linux links (iPaq, ...) (NEW)
[ ] Epson 2888 based firmware (DEVELOPMENT) (NEW)
经过比对,很容易知道需要打开上一级的USB接口的以太网的宏。
Z:\repo_RK3588_Buildroot20240508\kernel\.config
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
# 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_NET_CDC_NCM=y
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SR9700 is not set
# CONFIG_USB_NET_SR9800 is not set
# CONFIG_USB_NET_SMSC75XX is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=y
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_HSO is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_USB_NET_AQC111 is not set
CONFIG_WLAN=y
# CONFIG_WIRELESS_WDS is not set
CONFIG_WLAN_VENDOR_ADMTEK=y
# CONFIG_ADM8211 is not set
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_RK630_PHY=y
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
CONFIG_AP6XXX=m
搜索:/rndis
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$ ll .config
-rwx------ 1 viewpro viewpro 198027 9月 11 19:54 .config*
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$ make ARHC=arm64 menuconfig
UPD scripts/kconfig/mconf-cfg
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTLD scripts/kconfig/mconf
configuration written to .config
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$ make ARHC=arm64 menuconfig
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel$