I tried the USB dongle with mm8108.
How to build the driver
The Ubuntu PC kernel I used the
iot@iot:/linux/morse-linux$ git remote -v
origin https://github.com/MorseMicro/linux.git (fetch)
origin https://github.com/MorseMicro/linux.git (push)
iot@iot:/linux/morse-linux$ git branch
* (HEAD detached at origin/mm/linux-5.4.83/1.17.x)
mm/linux-6.12.21/1.16.x
export KERNEL_SRC=/lib/modules/uname -r/build
make CONFIG_WLAN_VENDOR_MORSE=m CONFIG_MORSE_USB=y CONFIG_MORSE_USER_ACCESS=y CONFIG_MORSE_VENDOR_COMMAND=y CONFIG_MAC80211_MESH=y CONFIG_ANDROID=n CONFIG_MORSE_MONITOR=n
The logs
[15822.054755] Morse Micro Dot11ah driver registration. Version 0-rel_1_16_4_2025_Sep_18
[15826.010329] morse micro driver registration. Version 0-rel_1_16_4_2025_Sep_18
[15826.010351] morse_usb 1-1:1.0: USB Morse device now attached to Morse driver (minor=-1)
[15826.013702] morse_usb 1-1:1.0: Loaded firmware from morse/mm8108b2-rl.bin, size 456924, crc32 0xe4799c8d
[15826.013720] morse_usb 1-1:1.0: Loaded BCF from morse/bcf_default.bin, size 2081, crc32 0xa80ae47b
[15827.188016] morse_usb 1-1:1.0: Driver loaded with kernel module parameters
[15827.188026] morse_usb 1-1:1.0: slow_clock_mode : 0
[15827.188033] morse_usb 1-1:1.0: enable_1mhz_probes : Y
[15827.188039] morse_usb 1-1:1.0: enable_sched_scan : Y
[15827.188043] morse_usb 1-1:1.0: enable_hw_scan : Y
[15827.188049] morse_usb 1-1:1.0: enable_pv1 : N
[15827.188054] morse_usb 1-1:1.0: enable_page_slicing : N
[15827.188059] morse_usb 1-1:1.0: log_modparams_on_boot : Y
[15827.188064] morse_usb 1-1:1.0: enable_mcast_rate_control : N
[15827.188069] morse_usb 1-1:1.0: enable_mcast_whitelist : Y
[15827.188074] morse_usb 1-1:1.0: ocs_type : 1
[15827.188079] morse_usb 1-1:1.0: enable_wiphy : N
[15827.188085] morse_usb 1-1:1.0: enable_auto_mpsw : Y
[15827.188091] morse_usb 1-1:1.0: duty_cycle_probe_retry_threshold : 2500
[15827.188096] morse_usb 1-1:1.0: duty_cycle_mode : 0
[15827.188101] morse_usb 1-1:1.0: enable_auto_duty_cycle : Y
[15827.188107] morse_usb 1-1:1.0: dhcpc_lease_update_script : /morse/scripts/dhcpc_update.sh
[15827.188113] morse_usb 1-1:1.0: enable_ibss_probe_filtering : Y
[15827.188118] morse_usb 1-1:1.0: enable_dhcpc_offload : N
[15827.188122] morse_usb 1-1:1.0: enable_arp_offload : N
[15827.188128] morse_usb 1-1:1.0: enable_bcn_change_seq_monitor : N
[15827.188134] morse_usb 1-1:1.0: enable_cac : N
[15827.188140] morse_usb 1-1:1.0: max_mc_frames : 10
[15827.188147] morse_usb 1-1:1.0: tx_max_power_mbm : 2200
[15827.188152] morse_usb 1-1:1.0: enable_twt : Y
[15827.188158] morse_usb 1-1:1.0: enable_mac80211_connection_monitor : N
[15827.188162] morse_usb 1-1:1.0: enable_airtime_fairness : N
[15827.188167] morse_usb 1-1:1.0: enable_raw : Y
[15827.188172] morse_usb 1-1:1.0: max_aggregation_count : 0
[15827.188177] morse_usb 1-1:1.0: max_rate_tries : 1
[15827.188184] morse_usb 1-1:1.0: max_rates : 4
[15827.188188] morse_usb 1-1:1.0: enable_watchdog_reset : N
[15827.188194] morse_usb 1-1:1.0: watchdog_interval_secs : 30
[15827.188200] morse_usb 1-1:1.0: enable_watchdog : Y
[15827.188206] morse_usb 1-1:1.0: country : AU
[15827.188211] morse_usb 1-1:1.0: enable_cts_to_self : N
[15827.188216] morse_usb 1-1:1.0: enable_rts_8mhz : N
[15827.188221] morse_usb 1-1:1.0: enable_trav_pilot : Y
[15827.188226] morse_usb 1-1:1.0: enable_sgi_rc : Y
[15827.188232] morse_usb 1-1:1.0: enable_mbssid_ie : N
[15827.188237] morse_usb 1-1:1.0: virtual_sta_max : 0
[15827.188242] morse_usb 1-1:1.0: thin_lmac : N
[15827.188248] morse_usb 1-1:1.0: enable_dynamic_ps_offload : Y
[15827.188254] morse_usb 1-1:1.0: enable_ps : 2
[15827.188259] morse_usb 1-1:1.0: enable_subbands : 2
[15827.188263] morse_usb 1-1:1.0: enable_survey : Y
[15827.188268] morse_usb 1-1:1.0: mcs10_mode : 0
[15827.188274] morse_usb 1-1:1.0: mcs_mask : 1023
[15827.188280] morse_usb 1-1:1.0: no_hwcrypt : N
[15827.188286] morse_usb 1-1:1.0: enable_ext_xtal_init : N
[15827.188290] morse_usb 1-1:1.0: enable_otp_check : Y
[15827.188296] morse_usb 1-1:1.0: bcf :
[15827.188302] morse_usb 1-1:1.0: serial : default
[15827.188306] morse_usb 1-1:1.0: debug_mask : 8
[15827.188312] morse_usb 1-1:1.0: tx_status_lifetime_ms : 15000
[15827.188317] morse_usb 1-1:1.0: tx_queued_lifetime_ms : 1000
[15827.188323] morse_usb 1-1:1.0: max_txq_len : 32
[15827.188329] morse_usb 1-1:1.0: default_cmd_timeout_ms : 600
[15827.188334] morse_usb 1-1:1.0: reattach_hw : N
[15827.188339] morse_usb 1-1:1.0: hw_reload_after_stop : 5
[15827.188344] morse_usb 1-1:1.0: enable_short_bcn_as_dtim_override : -1
[15827.188349] morse_usb 1-1:1.0: fw_bin_file :
[15827.188354] morse_usb 1-1:1.0: sdio_reset_time : 400
[15827.188359] morse_usb 1-1:1.0: macaddr_suffix : 00:00:00
[15827.188365] morse_usb 1-1:1.0: macaddr_octet : 255
[15827.188370] morse_usb 1-1:1.0: max_total_vendor_ie_bytes : 514
[15827.188376] morse_usb 1-1:1.0: coredump_include : 1
[15827.188381] morse_usb 1-1:1.0: coredump_method : 1
[15827.188386] morse_usb 1-1:1.0: enable_coredump : Y
[15827.188391] morse_usb 1-1:1.0: enable_mm_vendor_ie : Y
[15827.188397] morse_usb 1-1:1.0: fixed_guard : 0
[15827.188402] morse_usb 1-1:1.0: fixed_ss : 1
[15827.188408] morse_usb 1-1:1.0: fixed_bw : 2
[15827.188414] morse_usb 1-1:1.0: fixed_mcs : 4
[15827.188419] morse_usb 1-1:1.0: enable_fixed_rate : N
[15827.188428] uaccess char driver major number is 241
[15827.188646] morse_io: Device node '/dev/morse_io' created successfully
[15827.188734] usbcore: registered new interface driver morse_usb
[15827.190825] ================================================================================
[15827.193030] UBSAN: Undefined behaviour in ./arch/x86/include/asm/bitops.h:207:8
[15827.195006] load of address 0000000089779970 with insufficient space
[15827.196986] for an object of type 'u32'
[15827.198840] CPU: 0 PID: 13818 Comm: kworker/u8:1 Tainted: G OE 5.4.83+ #1
[15827.198844] Hardware name: ASUSTeK COMPUTER INC. K501LB/K501LB, BIOS K501LB.201 03/24/2015
[15827.198866] Workqueue: MorseChipIfWorkQ morse_usb_irq_work [morse]
[15827.198868] Call Trace:
[15827.198875] dump_stack+0x6d/0x9a
[15827.198879] ubsan_epilogue+0x9/0x26
[15827.198884] ubsan_type_mismatch_common.cold+0xc9/0xce
[15827.198889] __ubsan_handle_type_mismatch_v1+0x34/0x40
[15827.198905] yaps_irq_handler+0x24/0x9f [morse]
[15827.198920] morse_hw_irq_handle+0x69/0x161 [morse]
[15827.198932] morse_usb_irq_work+0x4c/0x64 [morse]
[15827.198936] process_one_work+0x1ed/0x3e0
[15827.198939] worker_thread+0x4d/0x400
[15827.198942] kthread+0x120/0x140
[15827.198945] ? process_one_work+0x3e0/0x3e0
[15827.198948] ? kthread_create_worker_on_cpu+0x70/0x70
[15827.198951] ret_from_fork+0x35/0x40
[15827.198953] ================================================================================
[15827.200920] ================================================================================
[15827.202805] UBSAN: Undefined behaviour in ./arch/x86/include/asm/bitops.h:207:8
[15827.204834] load of address 0000000089779970 with insufficient space
[15827.206890] for an object of type 'u32'
[15827.208923] CPU: 0 PID: 13818 Comm: kworker/u8:1 Tainted: G OE 5.4.83+ #1
[15827.208925] Hardware name: ASUSTeK COMPUTER INC. K501LB/K501LB, BIOS K501LB.201 03/24/2015
[15827.208943] Workqueue: MorseChipIfWorkQ morse_usb_irq_work [morse]
[15827.208948] Call Trace:
[15827.208957] dump_stack+0x6d/0x9a
[15827.208961] ubsan_epilogue+0x9/0x26
[15827.208964] ubsan_type_mismatch_common.cold+0xc9/0xce
[15827.208967] __ubsan_handle_type_mismatch_v1+0x34/0x40
[15827.208980] yaps_irq_handler+0x4b/0x9f [morse]
[15827.208994] morse_hw_irq_handle+0x69/0x161 [morse]
[15827.209007] morse_usb_irq_work+0x4c/0x64 [morse]
[15827.209013] process_one_work+0x1ed/0x3e0
[15827.209019] worker_thread+0x4d/0x400
[15827.209022] kthread+0x120/0x140
[15827.209025] ? process_one_work+0x3e0/0x3e0
[15827.209027] ? kthread_create_worker_on_cpu+0x70/0x70
[15827.209030] ret_from_fork+0x35/0x40
And I can see the wlan0 interface.
But I cannot start the hostapd.
hostapd_s1g /etc/wifi/hostapd_s1g.conf
morse_ap_configure_channelization: channelization scheme 1 country AU
morse_set_channelization_scheme: scheme=1
s1g mapped ht channel 155
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211 driver initialization failed.
wlan0: interface state UNINITIALIZED->DISABLED
wlan0: AP-DISABLED
wlan0: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlan0 wasn't started
# ./morse_cli -v
No transports supported
morsectrl -v
No transports supported
And I can start the STA mode.
insmod morse.ko enable_wiphy=Y
It can associate withe Halow AP.