(Added details on Bluetooth) |
|||
Line 2: | Line 2: | ||
=== Enabling GuruPlug Server Marvell Libertas 8688 SDIO 802.11b/g WiFi === | === Enabling GuruPlug Server Marvell Libertas 8688 SDIO 802.11b/g WiFi === | ||
− | Enable the following Kernel modules and recompile: | + | The GuruPlug Server Plus incorporates an [http://www.azurewave.com/ AzureWave] AW-GH381 IEEE 802.11 b/g Wireless LAN & Bluetooth 3.0 module IC, functionally equivalent to the [http://www.marvell.com/wireless/assets/8688.pdf Marvell 88W8688] |
+ | |||
+ | == WiFi == | ||
+ | |||
+ | Enable the following Kernel modules and recompile your kernel: | ||
<PRE> | <PRE> | ||
Line 32: | Line 36: | ||
libertas_sdio mmc0:0001:1 (unregistered net_device): 00:24:23:1f:b3:e9, fw 10.38.1p25, cap 0x00000303 | libertas_sdio mmc0:0001:1 (unregistered net_device): 00:24:23:1f:b3:e9, fw 10.38.1p25, cap 0x00000303 | ||
libertas_sdio mmc0:0001:1 wlan0: Marvell WLAN 802.11 adapter | libertas_sdio mmc0:0001:1 wlan0: Marvell WLAN 802.11 adapter | ||
+ | </PRE> | ||
+ | |||
+ | == Bluetooth == | ||
+ | |||
+ | Enable the following Linux kernel modules and recompile your kernel. These modules will want to load firmware from the root filesystem that is not available until mounted. This will result in an initial error loading firmware, but the kernel will retry later and should succeed. To mitigate this issue, I choose to compile these as loadable modules rather than built-in. | ||
+ | |||
+ | <PRE> | ||
+ | Networking Support -> Bluetooth subsystem support | ||
+ | Networking Support -> Bluetooth subsystem support -> Bluetooth device drivers | ||
+ | Marvell Bluetooth driver support | ||
+ | Marvell BT-over-SDIO driver | ||
+ | </PRE> | ||
+ | |||
+ | The WLAN/Bluetooth SoC has an ARMv5TE core that runs closed firmware. Download the Binary BLOBs (firmware) to /lib/firmware/mrvl/: | ||
+ | |||
+ | <PRE> | ||
+ | mkdir /lib/firmware /lib/firmware/mrvl | ||
+ | cd /lib/firmware/mrvl | ||
+ | wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688_helper.bin | ||
+ | wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688.bin | ||
+ | </PRE> | ||
+ | |||
+ | Upon reboot, you should now see the following kernel message as the module loads: | ||
+ | |||
+ | <PRE> | ||
+ | Bluetooth: vendor=0x2df, device=0x9105, class=255, fn=2 | ||
+ | </PRE> | ||
+ | |||
+ | and be greeted with a Bluetooth hci device: | ||
+ | |||
+ | <PRE> | ||
+ | # hciconfig | ||
+ | hci0: Type: BR/EDR Bus: SDIO | ||
+ | BD Address: 00:24:23:1F:B3:EA ACL MTU: 1021:7 SCO MTU: 240:3 | ||
+ | DOWN | ||
+ | RX bytes:647 acl:0 sco:0 events:22 errors:0 | ||
+ | TX bytes:442 acl:0 sco:0 commands:22 errors:0 | ||
</PRE> | </PRE> |
The GuruPlug Server Plus incorporates an AzureWave AW-GH381 IEEE 802.11 b/g Wireless LAN & Bluetooth 3.0 module IC, functionally equivalent to the Marvell 88W8688
Enable the following Kernel modules and recompile your kernel:
Device Drivers > Network device support > Wireless LAN Marvell 8xxx Libertas WLAN driver support Marvell Libertas 8385/8686/8688 SDIO 802.11b/g cards
Download Binary BLOBs to /lib/firmware:
mkdir /lib/firmware cd /lib/firmware wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688_helper.bin wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688.bin
And reboot. Upon boot, the kernel should try to load the firmware before the rootfs is available and fail.
mmc0: new high speed SDIO card at address 0001 libertas_sdio mmc0:0001:1: Direct firmware load failed with error -2 libertas_sdio mmc0:0001:1: Falling back to user helper
It should then retry after rootfs is available and report something similar to:
libertas_sdio mmc0:0001:1 (unregistered net_device): 00:24:23:1f:b3:e9, fw 10.38.1p25, cap 0x00000303 libertas_sdio mmc0:0001:1 wlan0: Marvell WLAN 802.11 adapter
Enable the following Linux kernel modules and recompile your kernel. These modules will want to load firmware from the root filesystem that is not available until mounted. This will result in an initial error loading firmware, but the kernel will retry later and should succeed. To mitigate this issue, I choose to compile these as loadable modules rather than built-in.
Networking Support -> Bluetooth subsystem support Networking Support -> Bluetooth subsystem support -> Bluetooth device drivers Marvell Bluetooth driver support Marvell BT-over-SDIO driver
The WLAN/Bluetooth SoC has an ARMv5TE core that runs closed firmware. Download the Binary BLOBs (firmware) to /lib/firmware/mrvl/:
mkdir /lib/firmware /lib/firmware/mrvl cd /lib/firmware/mrvl wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688_helper.bin wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mrvl/sd8688.bin
Upon reboot, you should now see the following kernel message as the module loads:
Bluetooth: vendor=0x2df, device=0x9105, class=255, fn=2
and be greeted with a Bluetooth hci device:
# hciconfig hci0: Type: BR/EDR Bus: SDIO BD Address: 00:24:23:1F:B3:EA ACL MTU: 1021:7 SCO MTU: 240:3 DOWN RX bytes:647 acl:0 sco:0 events:22 errors:0 TX bytes:442 acl:0 sco:0 commands:22 errors:0