sundarnagarajan / rdp-xl200c-linux

Linux on the RDP XL-200C Mini PC
GNU General Public License v3.0
0 stars 0 forks source link

Quick steps (to be done by RDP) #7

Open sundarnagarajan opened 6 years ago

sundarnagarajan commented 6 years ago

If you have Ubuntu (either 16.04 or 18.04 - the one where WiFi does NOT work) INSTALLED on your XL-200C device, can you try the following quickly:

Copy this file from the OEM 'driver' under /lib/firmware/brcm (as root):

brcmfmac43430-sdio.txt

Now edit that file and change the line that says:

macaddr=00:90:4c:c5:12:38

to change the part after the mcaddr= to be the MAC address of your Wifi card. You should probably be able to find that on a sticker at the bottom of the device (at least that is always the case here in the US).

After doing that, reboot.

I got this idea from here.

If you do not have an installed version, just boot into the pre-created remastered Ubuntu 18.04 ISO and do the following:

Copy this file from the OEM 'driver' under /lib/firmware/brcm (as root):

brcmfmac43430-sdio.txt

You may need to connect using the Ethernet port or transfer the file using a USB drive.

Now edit that file and change the line that says:

macaddr=00:90:4c:c5:12:38

to change the part after the mcaddr= to be the MAC address of your Wifi card. You should probably be able to find that on a sticker at the bottom of the device (at least that is always the case here in the US).

After doing that, do the following two steps:

sudo modprobe -r brcmfmac sudo modprobe brcmfmac

I got this idea from here.

Either way, let me know answer to ALL the following questions:

  1. Are Wifi interfaces detected and shown in the desktop GUI?
  2. What is the output of the config sudo ifconfig -a?
  3. If Wifi interfaces are detected and shown, can you try to connect using Wifi? Are local access points shown?
  4. Does the connection appear to 'succeed'?
  5. Is the connection unstable, or does the connection drop after a while?

If the Wifi interfaces are not detected at all, send me the output of the following commands (collected AFTER the reboot or reload of brcmfmac driver):

dmesg

journalctl -k

sundarnagarajan commented 6 years ago

The above method may not work, and probably the quick way should be as described in this post:

# The next command gets the NAME of the NVRAM file
# If there are none or more than 1, this method will not work
# The output is just an example from linked post
ls /sys/firmware/efi/efivars | grep nvram
nvram-74b00bd9-805a-4d61-b51f-43268123d113

# Next command finds firmload error in dmesg - line in dmesg will also
# contain filename that the driver is expecting
# Again the output is just an example from post linked above
dmesg | grep sdio | grep brcmfmac | grep 'firmware load' | grep 'failed'
[ 16.525790] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43241b4-sdio.txt failed with error -2

# Now put the NVRAM file under /lib/firmware/brcm with the filename expected by the driver
# Again the command is just an example from the post linked above
sudo cp nvram-74b00bd9-805a-4d61-b51f-43268123d113 /lib/firmware/brcm/brcmfmac43241b4-sdio.txt

Following is the text from the email exchange on spinics.net linked in the post linked above:

the nvram (calibration data, probably the MAC address and related device specific data) is stored in your mainboard's firmware - and exposed to userspace (under linux) via /sys/firmware/efi/efivars/. You just need to identify the correct file and copy it to a place where linux expects to find it (/lib/firmware/brcm/brcmfmac43340-sdio.txt).

Once this is done, you eed to reload the brcmfmac module

sudo modprobe -r brcmfmac sudo modprobe brcmfmac