This worked perfectly for me. Thanks again for the quick support!
Any chance we could get an update for RM1 on this? I’d hate to be stuck on FW 1.5 if I wanted wifi on it! You must be busy with Comet Q development right now though (which I pre-ordered) but I’m still holding my hopes up for my trusty original one.
I checked the RK's built-in driver that I deleted is for supporting Broadcom chips. I'm not entirely sure what the issue is, and I don't have this Wi-Fi card on hand for testing, so I can't provide the firmware for you.
I had some time for testing today, here are my findings.
v1.9.0 RM1 does not include any firmware:
bash-4.4# ls -l /lib/firmware/
total 0
drwxr-xr-x 2 root root 3 Apr 27 2026 rtlbt
comparison with 1.5.0 RM1 firmware:
bash-4.4# ls -l /lib/firmware/
total 45
drwxr-xr-x 2 root root 40 Sep 1 2025 ath9k_htc
-rw-r--r-- 1 root root 45412 Sep 1 2025 mt7601u.bin
drwxr-xr-x 2 root root 3 Sep 1 2025 rtlbt
I then copied the firmware from FW 1.5.0 with
mkdir -p /mnt/usb
mount /dev/sda1 /mnt/usb
cp -v /lib/firmware/mt7601u.bin /mnt/usb/mt7601u.bin
sync
umount /mnt/usb
and back to FW 1.9.0 with
mkdir -p /mnt/usb
mount /dev/sda1 /mnt/usb
mkdir -p /lib/firmware
cp -v /mnt/usb/mt7601u.bin /lib/firmware/mt7601u.bin
chmod 644 /lib/firmware/mt7601u.bin
sync
umount /mnt/usb
Now if I run ip link set wlan0 up, I get
RTNETLINK answers: Operation not possible due to RF-kill
I then run
for f in /sys/class/rfkill/rfkill*/state; do
echo 1 > "$f"
done
ip link set wlan0 up now shows a working connection
I then edited the wifimon.sh script to include the rfkill command above:
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Error: No arguments provided."
echo "Usage: $0 wlan0 INIT"
exit 1
fi
PID_FILE="/var/run/udhcpc.$1.pid"
LOG_FILE="/var/log/wifi-$1.log"
exec > >(tee -a "$LOG_FILE") 2>&1
case "$2" in
INIT)
echo "$(date): $0 - wpa_supplicant init..."
killall wpa_supplicant 2>/dev/null
killall wpa_cli 2>/dev/null
rm -f "/var/run/wpa_supplicant/$1"
echo "$(date): $0 - unblocking rfkill..."
for i in $(seq 1 30); do
for f in /sys/class/rfkill/rfkill*/state; do
[ -e "$f" ] || continue
echo 1 > "$f" 2>/dev/null
done
RFKILL_STATE="$(cat /sys/class/rfkill/rfkill*/state 2>/dev/null | tr -d '\n')"
echo "$(date): $0 - rfkill state: $RFKILL_STATE"
if echo "$RFKILL_STATE" | grep -q 1; then
echo "$(date): $0 - rfkill unblocked"
break
fi
sleep 1
done
if cat /sys/class/rfkill/rfkill*/state 2>/dev/null | grep -q '^0$'; then
echo "$(date): $0 - ERROR: rfkill still blocked, aborting"
exit 1
fi
echo "$(date): $0 - waiting for interface $1..."
for i in $(seq 1 20); do
if ip link show "$1" >/dev/null 2>&1; then
break
fi
sleep 1
done
echo "$(date): $0 - bringing $1 up..."
ip link set "$1" up
echo "$(date): $0 - starting wpa_supplicant..."
wpa_supplicant -B -i "$1" -D nl80211 -c /etc/kvmd/user/wpa_supplicant.conf
echo "$(date): $0 - wpa_supplicant init done!"
echo "$(date): $0 - wpa_cli init..."
wpa_cli -B -i "$1" -a /etc/kvmd/user/scripts/wifimon.sh
echo "$(date): $0 - wpa_cli init done!"
;;
CONNECTED)
echo "$(date): $0 - wpa_supplicant: $1 connected to $WPA_ID_STR ($WPA_ID)"
[ -f "$PID_FILE" ] && pkill -F "$PID_FILE"
echo "$(date): $0 - udhcpc init..."
udhcpc -R -n -p "$PID_FILE" -i "$1"
echo "$(date): $0 - udhcpc init done!"
;;
DISCONNECTED)
echo "$(date): $0 - wpa_supplicant: $1 disconnected from $WPA_ID_STR ($WPA_ID)"
[ -f "$PID_FILE" ] && pkill -F "$PID_FILE"
;;
esac
But then on reboot the script does not run. Manually calling it makes it work:
/etc/kvmd/user/scripts/wifimon.sh wlan0 INIT
Any ideas? I’ve reached my limits of troubleshooting here but it feels like I’m really close. The user script doesn’t seem to want to run at boot.
The issue lies with these two firmware —one is for MediaTek chipsets, and the other is for Qualcomm chipsets. They are not for Realtek chipset products. You might have been looking in the wrong place from the start.
I don’t really follow what you’re saying. I proved that the mt7601u bin file exists in FW 1.5.0 but is absent in FW 1.9.0. I described step by step what I had to do to make it work, but can't make it survive a reboot.
Edit to clarify - I initially asked whether Realtek drivers could be installed but then I ended up purchasing the adapter from the OPs post so ignore the Realtek post.
connmanctl enable wifi
ifconfig wlan0 up
vim /etc/wpa_supplicant.conf
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
udhcpc -i wlan0
Maybe you can try this one. The whole network system was controlled by Connman, so you need to enable it Command first.
You mentioned that the WiFi firmware is missing on the RM1. I checked and indeed it is. It will be resolved in the next version; we might have encountered some issues during compilation.
If I run connmanctl enable wifi and then run /etc/kvmd/user/scripts/wifimon.sh wlan0 INIT that works, however it does not survive a reboot as the script doesn’t seem to run at start.
The wpa_supplicant command you linked in the etc folder does not initialise because of the below. If I don’t install the OPs scripts the wifi adapter isn’t seen by connman.
bash-4.4# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
Successfully initialized wpa_supplicant
ctrl_iface exists and seems to be in use - cannot override it
Delete '/var/run/wpa_supplicant/wlan0' manually if it is not used anymore
Failed to initialize control interface '/var/run/wpa_supplicant'.
You may have another wpa_supplicant process already running or the file was
left by an unclean termination of wpa_supplicant in which case you will need
to manually remove this file before starting wpa_supplicant again.
nl80211: deinit ifname=wlan0 disabled_11b_rates=0