2016-05-13 10:53:13 |
Paolo Pisati |
description |
As part of the RaspberryPI BSP we got this commit:
https://github.com/raspberrypi/linux/commit/9ee31007a5032a3afe2fcb20c36b34f0ad57df56
-----------------------------------------------------------------------------------------------------------------------------------------
Add non-mainline source for rtl8192cu wireless driver version v4.0.2_…
…9000 as this is widely used. Disabled older rtlwifi driver
8192cu needs old wireless extensions
The obsolete WIRELESS_EXT configuration is used
by the old Realtek code and is needed for AP support.
8192cu: CONFIG_AP_MODE hardcoded in autoconf.h
-----------------------------------------------------------------------------------------------------------------------------------------
that disables the Realtek driver in drivers/net/wireless/realtek/rtlwifi from building, and instead pull in its own proprietary version in drivers/net/wireless/realtek/rtl8192cu.
This result in a difference in the number or rtl8192 drivers shipped with generic:
drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192ce
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192cu
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192de
drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192ee
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rtl8192ee.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192se
drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.ko
versus the only 8192 driver that we ship in linux-raspi2 due to the commit above:
drivers/net/wireless/realtek/rtl8192cu
drivers/net/wireless/realtek/rtl8192cu/8192cu.ko
Feature wise is not yet clear which of the two is preferable (and why), plus the raspi3 is shipping with a wifi chip and we should be careful not to break support for it. |
SRU justification:
Impact: as part of the RaspberryPI BSP we got an out of tree Realtek driver that predates the upstream rtlwifi driver:
commit 352ad803b031478b4f5ae55835225a699afa5ed3
Author: popcornmix <popcornmix@gmail.com>
Date: Mon Sep 3 17:10:23 2012 +0100
Add non-mainline source for rtl8192cu wireless driver version v4.0.2_9000 as this is widely used. Disabled older rtlwifi dri
ver
8192cu needs old wireless extensions
The obsolete WIRELESS_EXT configuration is used
by the old Realtek code and is needed for AP support.
8192cu: CONFIG_AP_MODE hardcoded in autoconf.h
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index f9f9422..cfb2280 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -278,7 +278,8 @@ source "drivers/net/wireless/orinoco/Kconfig"
source "drivers/net/wireless/p54/Kconfig"
source "drivers/net/wireless/rt2x00/Kconfig"
source "drivers/net/wireless/mediatek/Kconfig"
-source "drivers/net/wireless/realtek/rtlwifi/Kconfig"
+#source "drivers/net/wireless/realtek/rtlwifi/Kconfig"
+source "drivers/net/wireless/realtek/rtl8192cu/Kconfig"
source "drivers/net/wireless/realtek/rtl8xxxu/Kconfig"
source "drivers/net/wireless/ti/Kconfig"
source "drivers/net/wireless/zd1211rw/Kconfig"
...
This driver not only predates Linux's rtlwifi driver, but it behaves differently too (the 'iw phy' commands doesn't work, AP is not working for some adapter, etc), it's stale (it's the same exact driver that was imported into the RaspberryPI BSP around Linux 3.2 and got no updates since then - https://www.raspberrypi.org/forums/viewtopic.php?p=81358#p81358), and is not widely used as rtlwifi is - every other big Linux distribution uses rtlwifi - Ubuntu, CentOS / RH, Debian, Gentoo, Arch, OpenWRT, etc except for the RaspberrPI kernel / Raspbian.
I've tried to convince upstream to remove this driver and revert to rtlwifi, but my suggestion was met with resistance:
https://github.com/raspberrypi/linux/pull/1468
Since we successfully use rtlwifi in every other architecture / branches, i'm proposing to drop this out-of-tree driver and bring the raspi2 kernel closer to the other Ubuntu kernels.
If we ever feel the need for an out of tree driver for this chipset, the driver should probably be imported into master and propagated from there to all the branches.
Fix: Revert the Realtek driver, and add back RTLWIFI to the build
Test:
check for the presence of the 8192cu.ko module:
$ find /lib/modules/`uname -r` -name 8192cu.ko
if it's present you have the out-of-tree driver,
while if it's missing and you have the rtl819cu.ko, you're running the upstream driver:
$ find /lib/modules/`uname -r` -name rtl8192cu.ko
---
As part of the RaspberryPI BSP we got this commit:
https://github.com/raspberrypi/linux/commit/9ee31007a5032a3afe2fcb20c36b34f0ad57df56
-----------------------------------------------------------------------------------------------------------------------------------------
Add non-mainline source for rtl8192cu wireless driver version v4.0.2_…
…9000 as this is widely used. Disabled older rtlwifi driver
8192cu needs old wireless extensions
The obsolete WIRELESS_EXT configuration is used
by the old Realtek code and is needed for AP support.
8192cu: CONFIG_AP_MODE hardcoded in autoconf.h
-----------------------------------------------------------------------------------------------------------------------------------------
that disables the Realtek driver in drivers/net/wireless/realtek/rtlwifi from building, and instead pull in its own proprietary version in drivers/net/wireless/realtek/rtl8192cu.
This result in a difference in the number or rtl8192 drivers shipped with generic:
drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192ce
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192cu
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192de
drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192ee
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/rtl8192ee.ko
drivers/net/wireless/realtek/rtlwifi/rtl8192se
drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.ko
versus the only 8192 driver that we ship in linux-raspi2 due to the commit above:
drivers/net/wireless/realtek/rtl8192cu
drivers/net/wireless/realtek/rtl8192cu/8192cu.ko
Feature wise is not yet clear which of the two is preferable (and why), plus the raspi3 is shipping with a wifi chip and we should be careful not to break support for it. |
|