USB Module ESWIN 6600U

Hello together,

i got with my VisionFive 2 an separete USB Module name ESWIN 6600U. Anyone knows what is that ?

Best regrads
Damian

I’m going to guess a WIFi6 USB dongle, maybe ? When you plug it in, what does lsusb or dmesg show for it’s VID:PID (VendorID:ProductID
e.g. “ID 1d50:6108” would be a Myriad-RF LimeSDR, where the VendorID (1d50) is OpenMoko, Inc. and the ProductID (6108) is Myriad-RF LimeSDR.

1 Like

Hello mzs,

i think it is an wifi dongle but i dont know which driver is the correct one ?

[214767.263948] usb 3-7: new high-speed USB device number 16 using xhci_hcd
[214767.390622] usb 3-7: New USB device found, idVendor=3452, idProduct=6600, bcdDevice= 0.01
[214767.390633] usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[214767.390637] usb 3-7: Product: 6600U
[214767.390639] usb 3-7: Manufacturer: ESWIN
[214767.390641] usb 3-7: SerialNumber: 6600U
[214776.85

VendorID: 3452 looks to be brand new and has not been listed as allocated to anyone yet, at least not in any of the usual places I would check.

So it is probably a totally new product for which I can not find a website. I have no idea where you can get drivers or more information about it, my search engine skills are exhausted.

The only information I could find online about the ESWIN 6600U might possibly this from eswincomputing, I’m not even fully sure I’m right: “ECR6600U series - The ECR6600U series is a single-frequency 2.4 GHz Wi-Fi 6 chip series, which is used in high-speed transparent transmission scenarios such as black home appliances, network cameras, and scanning pens.”, but it sounds about right to me. And if it is right it looks like the WiFi6 chip has a 160MHz RISC CPU inside it!

EDIT: Looks like the RISC chip is probably an ARM CPU from the firmware:

$ /usr/local/bin/binwalk -Y /lib/firmware/ECR6600U_transport.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------

107094        0x1A256         ARM executable code, 16-bit (Thumb), big endian, at least 517 valid instructions

EDIT: It might be RISC-V either, I tested binwalk against a known RISC-V firmware (Tools/recovery/jh7110-recovery-20221205.bin) and it incorrectly detected it as “ARM executable code, 16-bit (Thumb), little endian”

Maybe this ?

EDIT: Looks like a perfect match on the VID and PID:

Hello mzs

many thanks. But i cant build it from the source.
I got many errors.

Is there an out of the box wifi dongle available ?
where works after plug in

Damian

This WiFi dongle is supposed to work without extra drivers.
Update #9 WiFi Dongle Purchase Link Update
I also found it on Alibaba. Xeme wifi6 dongle RISC-V drive-free
But maybe “driver free” only means Windows 10.
Addendum: The dongle is also supposed to be Linux compatible.

I have a full cross compile build environment setup from a few days ago (Setup using the “VisionFive 2 SDK Quick Start Guide”). So even though I do not have the VisionFive2 board nor the ESWIN 6600U module (yet).
I was able to do a quick cross compile of the kernel module (you will need to change the paths to match your environment and exact setup), but it works for me (I suspect, no actual test using real hardware, but the build went well):
There is definitely a cleaner way to do what I did the right way, but the below command was just a quick test. I would expect it to work on the actual VisionFive 2 board with the correct prerequisite software installed:

$ git clone https://github.com/eswincomputing/eswin_6600u
$ cd eswin_6600u
$ make ARCH=riscv CROSS_COMPILE=/home/mzs/src/risc-v/jh7110/VisionFive2/work/buildroot_rootfs/host/bin/riscv64-buildroot-linux-gnu- KERNELDIR=/home/mzs/src/risc-v/jh7110/VisionFive2/work/buildroot_rootfs/target/lib/modules/5.15.0/build KBUILDDIR=/home/mzs/src/risc-v/jh7110/VisionFive2/work/buildroot_rootfs/target/lib/modules/5.15.0/build product=6600u

More verbose output can be found at: https://paste.ee/p/4EOPg#mbjWMJewHBv3B5JfZtfDjej320LumQRR

2 Likes

Hello,

Great many thanks. I found my error in building the module.

Now i can build the module. I will try.

Best regards
Damian

2 Likes

Hi Damian,

Did you succeed ? Could you share the built module ?

Thanks
Manux

After I mount my NVMe as /, so I have a lot of fast storage space. I already rebuild my kernel from inside the VisionFive2 itself. The new kernel from v2.6.0 GitHub - starfive-tech/VisionFive2 already include the driver for ESWIN 6600U.

3 Likes

Hello together,

you will find a new kernel for visionfive 2 with the 6600U Wifi Module here GitHub - dtometzki/starfive

  • linux*.deb
    and in folder firmware the firmware for the wifi module. Copy to /lib/firmware

Best regards
Damian

1 Like

Hi Damian,

I installed your kernel and the firmware blob. The build date is 6 January

Dmesg lists the device but it is not connected in the network manager.

Also there are no loaded modukes. Is this intentional ?

Thanks for the assist.

Best

Hello Manux,

do a depmod -a and then try to load the driver with modprobe wlan_ecr6600u_usb to load the module.
Here are a description how do you add a Wifi Adapter to the networ manager:
https://www.makeuseof.com/connect-to-wifi-with-nmcli/

Ohhh I just see I forgot to enable the module in the kernel config. I will update the kernel package sorry.

UPDATA: Kernel is updated and uploaded. Please do an update.

Damian

1 Like

Thanks

Somehow now i get this error. This was not the case with the last install i think:

dpkg -i linux-image-5.15.0-starfive_5.15.0-starfive-10_riscv64.deb
(Reading database … 128970 files and directories currently installed.)
Preparing to unpack linux-image-5.15.0-starfive_5.15.0-starfive-10_riscv64.deb …
Unpacking linux-image-5.15.0-starfive (5.15.0-starfive-10) over (5.15.0-starfive-9) …
dpkg: error processing archive linux-image-5.15.0-starfive_5.15.0-starfive-10_riscv64.deb (–install):
unable to make backup link of ‘./boot/System.map-5.15.0-starfive’ before installing new version: Operation not permitted
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
P: Checking for EXTLINUX directory… found.
P: Writing config for vmlinuz-5.15.0-starfive…
P: Checking for EXTLINUX directory… found.
P: Writing config for vmlinuz-5.15.0-starfive…
Errors were encountered while processing:
linux-image-5.15.0-starfive_5.15.0-starfive-10_riscv64.deb

My feeling is that the kernel is not installed.

Hello Manux,

that is the issue with the vfat filesystem for /boot. After i migrated it to ext4 is all ok.
The kernel isnt installed. You have to unpack the deb files and replace it manually.

Best regards
Damian

Hi everyone,

I’m also having issues with the 6600U… Has anyone managed to have it work reliably?
I got the kernel module compiled and loaded, but still no function as an AP.
Hostapd starts without errors, but after a second or so the board hangs until it is reset by the watchdog.

The dmesg output is the following when the stick is plugged in:

[  166.914940] usb 1-1.3: new high-speed USB device number 4 using xhci_hcd
[  167.261830] [ecrnx] ecrnx_mod_init() enter, line:4476
[  167.261849] wlan_ecr6600u_usb-ECR6600U_V1.1.0B03P06-build:2023-01-14 16:59:05 CST
[  167.474906] [ecrnx]  eswin_core_create exit!!
[  167.475290] [ecrnx] eswin_core_register entry!!
[  167.475355] usbcore: registered new interface driver eswin_usb
[  167.494958] [ecrnx] eswin_core_register_work entry, dl_fw = 1!!
[  167.495004] [ecrnx] eswin_fw_file_chech,kernel fw download, Checking firmware... (ECR6600U_transport.bin)
[  167.500160] [ecrnx] eswin_fw_file_chech, request fw OK and size is 146952
[  167.500232] [ecrnx] fw_check_head,firmware build time: 2022-12-02 02:50:36
[  167.500268] [ecrnx] fw_check_head,firmware information: (ECR6600U_V1.1.0B05P02)
[  167.500293] [ecrnx] eswin_core_register_work entry, start fw download!!
[  167.500460] [ecrnx] dl-fw >> sync, ret: 0
[  167.500909] [ecrnx] dl-fw >> sync, ret: 0
[  167.501678] [ecrnx] firmware downloading 1% 
...
[  167.538301] [ecrnx] firmware downloading 100% 
[  167.538526] [ecrnx] fimeware download successfully! 
[  167.538603] [ecrnx] eswin_core_register_work entry, finish and stop fw download!!
[  168.564927] [ecrnx] eswin_core_register_work entry, dl_fw = 0!!
[  168.564967] [ecrnx] eswin_core_register_work entry, amt_mode = 0!!
[  168.565970] [ecrnx] ecrnx_cfg80211_init() enter, line:4185
[  168.566324] [ecrnx] parse amt.cfg delta gain fail
[  168.566354] [ecrnx] parse amt.cfg cfo fail
[  168.566375] [ecrnx] parse amt.cfg mac fail
[  168.566506] [ecrnx] MAC Address is:00:00:00:00:00:00
[  168.566539] [ecrnx] host driver log ecrnx_printk_mask is:0x10800f 
[  168.566572] [ecrnx] ECRNX_PRINTK_MASK_ERR is set; 
[  168.566596] [ecrnx] ECRNX_PRINTK_MASK_WARN is set; 
[  168.566620] [ecrnx] ECRNX_PRINTK_MASK_INIT is set; 
[  168.566643] [ecrnx] ECRNX_PRINTK_MASK_EXIT is set; 
[  168.566668] [ecrnx] ECRNX_PRINTK_MASK_CFG80211 is set; 
[  168.566693] [ecrnx] ECRNX_PRINTK_MASK_FW_DOWNLOAD is set; 
[  168.566720] [ecrnx] firmware log level is:2 
[  168.566743] [ecrnx] firmware log level type:0 (print to chip's uart) 
[  168.566819] [ecrnx] ecrnx_ipc_init() enter, line:385
[  168.566918] [ecrnx] ecrnx_usb_init() enter, line:413
[  168.567755] [ecrnx] ecrnx_set_vers() enter, line:4097
[  168.567799] ieee80211 phy1: PHY features: [NSS=1][CHBW=40][VHT][HE][BFMEE][MUMIMORX]
[  168.567823] ieee80211 phy1: FW features: [BCN][AUTOBCN][HWSCAN][CMON][MROLE][AMPDU][CHNL_CTXT][REORD][P2P][P2P_GO][UMAC][HE][BFMEE][MFP][MU_MIMO_RX]
[  168.567865] ieee80211 phy1: HT supp 1, VHT supp 0, HE supp 1
[  168.578489] ieee80211 phy1: New interface create p2p0
[  168.578890] [ecrnx] eswin_core_register_work exit!!
[  168.597884] eswin_usb 1-1.3:1.0 wlp1s0u1u3: renamed from wlan0

Here is my hostapd.conf:

# Primary AP
interface=wlp1s0u1u3
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd_wlp1s0u1u3
ctrl_interface_group=0
ssid=****
country_code=FR
ieee80211d=1
hw_mode=g
channel=11
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=-1
fragm_threshold=-1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
ieee80211n=1
ieee80211ac=1
eapol_version=2
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1
wpa=2
wpa_passphrase=****
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

The same configuration file works fine with a 88x2bu adapter, so I guess it should be ok.

Another thing that is strange is that according to iw list, only the 2.4 GHz band is supported:

Wiphy phy0
        wiphy index: 0
        max # scan SSIDs: 4
        max scan IEs length: 200 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports AP-side u-APSD.
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
                * CMAC (00-0f-ac:6)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * P2P-client
                 * P2P-GO
        Band 1:
                Capabilities: 0x162
                        HT20/HT40
                        Static SM Power Save
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 16 usec (0x07)
                HT Max RX data rate: 150 Mbps
                HT TX/RX MCS rate indexes supported: 0-7, 32
                HE Iftypes: managed, AP
                        HE MAC Capabilities (0x000000020000):
                                All Ack
                        HE PHY Capabilities: (0x004022580dc0c30402b000):
                                HE SU PPDU with 1x HE-LTF and 0.8us GI
                                NDP with 4x HE-LTF and 3.2us GI
                                Doppler Rx
                                DCM Max Constellation Rx: 3
                                Rx HE MU PPDU from Non-AP STA
                                SU Beamformee
                                Beamformee STS <= 80Mhz: 3
                                Ng = 16 SU Feedback
                                Ng = 16 MU Feedback
                                Codebook Size SU Feedback
                                Codebook Size MU Feedback
                                Partial Bandwidth DL MU-MIMO
                                PPE Threshold Present
                                HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
                                20MHz in 40MHz HE PPDU 2.4GHz
                                RX Full BW SU Using HE MU PPDU with Compression SIGB
                                RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
                        PPE Threshold 0x08 0x1c 
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps (short preamble supported)
                        * 5.5 Mbps (short preamble supported)
                        * 11.0 Mbps (short preamble supported)
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (no IR)
                        * 2472 MHz [13] (20.0 dBm) (no IR)
                        * 2484 MHz [14] (20.0 dBm) (no IR)
        Supported commands:
                 * new_interface
                 * set_interface
                 * new_key
                 * start_ap
                 * new_station
                 * set_bss
                 * remain_on_channel
                 * frame
                 * set_channel
                 * probe_client
                 * register_beacons
                 * start_p2p_device
                 * connect
                 * disconnect
                 * channel_switch
                 * update_ft_ies
        software interface modes (can always be added):
        valid interface combinations:
                 * #{ managed, AP } <= 3,
                   total <= 3, #channels <= 3
        Device supports TX status socket option.
        Device supports SAE with AUTHENTICATE command
        Device supports scan flush.
        Device supports per-vif TX power setting
        Device supports active monitor (which will ACK incoming frames)
        Driver/device bandwidth changes during BSS lifetime (AP/GO mode)
        Device supports TDLS channel switching
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported TX frame types:
                 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
        Supported RX frame types:
                 * managed: 0x40 0xb0 0xd0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * mesh point: 0xb0 0xc0 0xd0
                 * P2P-client: 0x40 0xd0
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * P2P-device: 0x40 0xd0
        Supported extended features:

Regards,
Lambert

Hello,

yes that is correct it is only a 2.4 Ghz Wifi Adapter.

Hi Damian,

Thanks for pointing it out, I missed that bit of information.

But there’s still no explanation about why the AP mode crashes the board. I will try connecting my serial adapter later, to see if there is any crash log.

Regards,
Lambert

So indeed the kernel panics:

[   22.279672] Oops [#1]
[   22.281991] Modules linked in: wlan_ecr6600u_usb(O) cfg80211 starfive_mailbox
[   22.289207] CPU: 2 PID: 919 Comm: rx_comp Tainted: G           O      5.15.0-dirty #1
[   22.297094] Hardware name: StarFive VisionFive V2 (DT)
[   22.302265] epc : memcmp+0x12/0x2c
[   22.305704]  ra : ecrnx_rx_mgmt_any+0x6e/0xc2 [wlan_ecr6600u_usb]
[   22.312286] epc : ffffffff803b21c6 ra : ffffffff01562c0c sp : ffffffd0043ebc80
[   22.319557]  gp : ffffffff812e9640 tp : ffffffe0c28e5a00 t0 : ffffffff80c024e8
[   22.326827]  t1 : 0000000000000002 t2 : 000000000000001f s0 : ffffffd0043ebc90
[   22.334097]  s1 : ffffffffffffffff a0 : 0000000000000010 a1 : ffffffe0c4638e98
[   22.341365]  a2 : 0000000000000016 a3 : ffffffe0c4638e50 a4 : 0000000000000000
[   22.348634]  a5 : 0000000000000010 a6 : ffffffe0c4c8ec40 a7 : 0000000000000000
[   22.355903]  s2 : ffffffe0c2876500 s3 : 0000000000001000 s4 : ffffffe0c4638e50
[   22.363173]  s5 : ffffffe0c4638e88 s6 : ffffffe0c47b0948 s7 : 0000000000000038
[   22.370443]  s8 : ffffffe0c47b88a0 s9 : 0000000000000000 s10: ffffffff80026cc0
[   22.377713]  s11: ffffffe0c4638e50 t3 : 00000000000002cc t4 : 00000000f5257d14
[   22.384983]  t5 : 0000000200000000 t6 : 00000000f5257d14
[   22.390318] status: 0000000200000120 badaddr: 0000000000000010 cause: 000000000000000d
[   22.398286] [<ffffffff803b21c6>] memcmp+0x12/0x2c
[   22.403055] ---[ end trace ff8cdfd0bc8cb699 ]---
[   22.407707] Kernel panic - not syncing: Fatal exception in interrupt
[   22.414067] SMP: stopping secondary CPUs
[   22.418001] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---

I guess there’s a bug in the driver…

1 Like