NetHubQuickBringup:修订间差异
小 Unify tone and terminology across NetHub docs (2026-04-24) |
小 Restore FAQ and add AP/STA host-interface FAQ (2026-04-24) |
||
| 第185行: | 第185行: | ||
For other chips, <code>examples/wifi/nethub/defconfig</code> automatically turns <code>CONFIG_NETHUB_LOWPOWER_ENABLE</code> off. In practice, you normally keep this option enabled only for <code>BL618DG</code> builds. | For other chips, <code>examples/wifi/nethub/defconfig</code> automatically turns <code>CONFIG_NETHUB_LOWPOWER_ENABLE</code> off. In practice, you normally keep this option enabled only for <code>BL618DG</code> builds. | ||
== 9. Where to Go Next == | == 9. Common Questions == | ||
=== 9.1 <code>bflbwifid</code> Fails to Start === | |||
This question is relevant only when you use the optional host control stack. | |||
Check first: | |||
* whether the device and host control backends match | |||
* whether <code>/dev/ttyAT0</code> exists | |||
* whether <code>mr_sdio.ko</code> has been loaded successfully | |||
* whether the SDIO hardware link is working properly | |||
=== 9.2 <code>connect_ap</code> Succeeds but the Host Has No Network Access === | |||
Check first: | |||
* whether <code>status</code> has reached <code>GOTIP</code> | |||
* whether <code>mr_eth0</code> has an address | |||
* whether services such as <code>NetworkManager</code> or <code>dhcpcd</code> override the NetHub configuration | |||
Notes: | |||
* <code>build.sh</code> builds userspace with <code>ENABLE_NETIF_AUTO_CONFIG=1</code> by default | |||
* after the device reports <code>GOTIP</code>, the host automatically configures the IP, gateway, and DNS of <code>mr_eth0</code> | |||
=== 9.3 <code>build.sh unload</code> Reports That the Module Is Busy === | |||
Check first: | |||
* whether <code>bflbwifid</code> is still running | |||
* whether <code>nethub_vchan_app</code> is still running | |||
=== 9.4 How Do I Change the Host-Side Virtual Interface Name <code>mr_eth0</code>? === | |||
The default host-side virtual network interface name comes from: | |||
* <code>bsp/common/msg_router/linux_host/kernel/netdev/mr_netdev.c</code> | |||
The macro is: | |||
<syntaxhighlight lang="c"> | |||
#define ETH_DRV_NAME "mr_eth%d" | |||
</syntaxhighlight> | |||
The first created interface therefore appears as <code>mr_eth0</code>. | |||
To change the interface name, update <code>ETH_DRV_NAME</code> to the pattern you want. For example: | |||
<syntaxhighlight lang="c"> | |||
#define ETH_DRV_NAME "nethub%d" | |||
</syntaxhighlight> | |||
Notes: | |||
* keep <code>%d</code> if you want Linux to allocate names such as <code>nethub0</code>, <code>nethub1</code>, and so on | |||
* rebuild the host software after the change and reload the host-side kernel module | |||
* if any local scripts or service configuration still refer to <code>mr_eth0</code>, update them accordingly | |||
=== 9.5 Can the Host Expose <code>AP</code> and <code>STA</code> at the Same Time? === | |||
No. Due to the current software implementation, this is not supported yet. | |||
Current behavior: | |||
* the host side exposes only one virtual interface at a time | |||
* the default active Wi-Fi channel is <code>STA</code> | |||
If you need to switch between <code>AP</code> and <code>STA</code>, call <code>nethub_set_active_wifi_channel()</code> directly: | |||
* use <code>NETHUB_CHANNEL_WIFI_AP</code> to switch to <code>AP</code> | |||
* use <code>NETHUB_CHANNEL_WIFI_STA</code> to switch to <code>STA</code> | |||
* the default value is <code>NETHUB_CHANNEL_WIFI_STA</code> | |||
== 10. Where to Go Next == | |||
* overall entry: [[NetHub|NetHub.md]] | * overall entry: [[NetHub|NetHub.md]] | ||
* architecture: [[NetHubArchitecture|NetHubArchitecture.md]] | * architecture: [[NetHubArchitecture|NetHubArchitecture.md]] | ||
* USER virtual channel: [[NetHubVirtualChannel|NetHubVirtualChannel.md]] | * USER virtual channel: [[NetHubVirtualChannel|NetHubVirtualChannel.md]] | ||
2026年4月24日 (五) 14:37的版本
NetHub Quick Start
This document is for customers using NetHub for the first time. The goal is to get you to the current default interface as quickly as possible.
1. Current Support Matrix
| Item | Current status |
|---|---|
| Default interface | SDIO
|
| USB interface | device-side backend implemented with USB ECM + USB ACM
|
| SPI interface | not implemented |
| USER virtual channel | default interface is SDIO
|
| Optional AT control solution | available, but not mandatory |
| Low power | currently BL618DG only
|
Read this table literally:
- if you want the shortest successful path today, choose
SDIO - if you are evaluating the USB interface, focus on the device-side backend and USB descriptors first
- do not plan on
SPIbring-up yet
2. Main Configuration Switches
For most users, the main configuration changes are these:
CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE =y
CONFIG_NETHUB_LOWPOWER_ENABLE =y
CONFIG_NETHUB_PROFILE_USB =n
CONFIG_NETHUB_PROFILE_SDIO =y
Notes:
- the config symbol names still use
PROFILE, but they select the active host interface - set
CONFIG_NETHUB_PROFILE_SDIO=yfor the current default interface - set
CONFIG_NETHUB_PROFILE_USB=yonly when you want to evaluate the USB interface CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=nmeansATModulewill not participate in the buildCONFIG_NETHUB_LOWPOWER_ENABLE=yis currently meaningful only onBL618DG
Additional current default facts in examples/wifi/nethub/defconfig:
CONFIG_MR_VIRTUALCHAN=yCONFIG_NETHUB_AT_USE_VCHAN=nCONFIG_MR_TTY=n
3. Wi-Fi Backend Selection
Default configuration:
CONFIG_WL80211disabledfhostselected
If you want wl80211, enable this in examples/wifi/nethub/defconfig:
CONFIG_WL80211=y
Notes:
fhostandwl80211are mutually exclusive- current NetHub supports both device-side Wi-Fi backends
4. Device Build and Flash
Build:
cd examples/wifi/nethub
# BL616
make CHIP=bl616 BOARD=bl616dk
# BL616CL
make CHIP=bl616cl BOARD=bl616cldk
# BL618DG
make CHIP=bl618dg BOARD=bl618dgdk CPU_ID=ap
Flash example:
cd examples/wifi/nethub
make flash CHIP=bl618dg COMX=/dev/ttyUSB0
5. Hardware Interface Pins
The pin tables below are the current default mappings used by the in-tree BSP board helpers.
Reference sources in the repository:
bsp/board/bl616dk/board_gpio.cbsp/board/bl616cldk/board_gpio.cbsp/board/bl618dgdk/board_gpio.c
5.1 Default SDIO Pins
These are the current board_sdh_gpio_init() mappings used by the BSP.
| Pin Function | BL616 / BL618 (bl616dk) |
BL618DG (bl618dgdk) |
BL616CL (bl616cldk)
|
|---|---|---|---|
SDIO_DAT2 |
GPIO10 |
GPIO43 |
GPIO6
|
SDIO_DAT3 |
GPIO11 |
GPIO44 |
GPIO7
|
SDIO_CMD |
GPIO12 |
GPIO45 |
GPIO8
|
SDIO_CLK |
GPIO13 |
GPIO46 |
GPIO9
|
SDIO_DAT0 |
GPIO14 |
GPIO47 |
GPIO10
|
SDIO_DAT1 |
GPIO15 |
GPIO48 |
GPIO11
|
Notes:
- this table shows the current default 4-bit SDIO wiring used by the NetHub SDIO data-path
- 1-line mode is also supported; if you use 1-line mode, keep
CMD,CLK, andDAT0first - the BSP configures these pins with
GPIO_FUNC_SDH | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1
5.2 Default USB Pins
The current USB interface uses the board's default USB differential pair.
| Chip / Board family | Default USB pins in current BSP | Current BSP behavior | Notes |
|---|---|---|---|
BL616 / BL618 (bl616dk) |
board default USB port path | current BSP enables USB clock in board.c, but does not expose a dedicated board_usb_gpio_init() helper |
treat this as the board's fixed default USB routing in the current example |
BL616CL (bl616cldk) |
GPIO32, GPIO33 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
BL618DG (bl618dgdk) |
GPIO40, GPIO41 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
Notes:
- for
BL616CLandBL618DG, the BSP helper only tells us the USB pair used by the board, not which pin isD+and which pin isD- - if you are wiring a custom board and need explicit
DP/DMpolarity, confirm it from the board schematic or chip or package documentation
6. Host Bring-Up Guidance
For the current in-tree host Linux stack, use:
bsp/common/msg_router/linux_host/userspace/nethub/README.md
Today that host stack follows the default SDIO interface.
For USB projects, keep expectations aligned with current code status:
- device-side
ECM + ACMbackend exists - host-side transport flattening into the same
nethub_vchanbehavior as SDIO is not fully documented or aligned in-tree yet
7. USER Virtual Channel
If you need private application messages between host and device, read:
Current implementation:
- the current in-tree end-to-end USER virtual channel follows the default
SDIOinterface - the public device API is transport-neutral by design
- the in-tree implementation behind it is still SDIO-backed today
8. Low-Power Note
Low power is currently supported only on BL618DG.
For other chips, examples/wifi/nethub/defconfig automatically turns CONFIG_NETHUB_LOWPOWER_ENABLE off. In practice, you normally keep this option enabled only for BL618DG builds.
9. Common Questions
9.1 bflbwifid Fails to Start
This question is relevant only when you use the optional host control stack.
Check first:
- whether the device and host control backends match
- whether
/dev/ttyAT0exists - whether
mr_sdio.kohas been loaded successfully - whether the SDIO hardware link is working properly
9.2 connect_ap Succeeds but the Host Has No Network Access
Check first:
- whether
statushas reachedGOTIP - whether
mr_eth0has an address - whether services such as
NetworkManagerordhcpcdoverride the NetHub configuration
Notes:
build.shbuilds userspace withENABLE_NETIF_AUTO_CONFIG=1by default- after the device reports
GOTIP, the host automatically configures the IP, gateway, and DNS ofmr_eth0
9.3 build.sh unload Reports That the Module Is Busy
Check first:
- whether
bflbwifidis still running - whether
nethub_vchan_appis still running
9.4 How Do I Change the Host-Side Virtual Interface Name mr_eth0?
The default host-side virtual network interface name comes from:
bsp/common/msg_router/linux_host/kernel/netdev/mr_netdev.c
The macro is:
#define ETH_DRV_NAME "mr_eth%d"
The first created interface therefore appears as mr_eth0.
To change the interface name, update ETH_DRV_NAME to the pattern you want. For example:
#define ETH_DRV_NAME "nethub%d"
Notes:
- keep
%dif you want Linux to allocate names such asnethub0,nethub1, and so on - rebuild the host software after the change and reload the host-side kernel module
- if any local scripts or service configuration still refer to
mr_eth0, update them accordingly
9.5 Can the Host Expose AP and STA at the Same Time?
No. Due to the current software implementation, this is not supported yet.
Current behavior:
- the host side exposes only one virtual interface at a time
- the default active Wi-Fi channel is
STA
If you need to switch between AP and STA, call nethub_set_active_wifi_channel() directly:
- use
NETHUB_CHANNEL_WIFI_APto switch toAP - use
NETHUB_CHANNEL_WIFI_STAto switch toSTA - the default value is
NETHUB_CHANNEL_WIFI_STA
10. Where to Go Next
- overall entry: NetHub.md
- architecture: NetHubArchitecture.md
- USER virtual channel: NetHubVirtualChannel.md
