I am using this usb wifi device on Debian running on my DE10-Nano board.
Looking at the product details, it seems like this uses the RT5370 chipset which is included in the RT2800USB driver. I have enabled this in the kernel as shown in the screenshot below:
However, the wifi device doesn't work unless I install the firmware also with the following command:
sudo apt install firmware-ralink
My question is - what does the firmware have to do with the driver? Shouldn't the wifi device already have the necessary firmware? What exactly is going on here?
I'm new to kernel drivers and devices so trying to understand the magic going on here. My understanding is that to use a device, I just need to make sure the relevant driver is either compiled into the kernel or available as a module that you can load in later.
Here is the dmesg output when I run ifup wlan0. The firmware file rt2870.bin is provided by the package firmware-ralink.
[ 78.302351] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 78.311413] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36
[ 80.175252] wlan0: authenticate with 30:23:03:41:73:67
[ 80.206023] wlan0: send auth to 30:23:03:41:73:67 (try 1/3)
[ 80.220665] wlan0: authenticated
[ 80.232966] wlan0: associate with 30:23:03:41:73:67 (try 1/3)
[ 80.257518] wlan0: RX AssocResp from 30:23:03:41:73:67 (capab=0x411 status=0 aid=5)
[ 80.270065] wlan0: associated
[ 80.503705] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
