[Replicant] Support for Tehnoetic's USB Wifi Dongle in Replicant 6.0

Wolfgang Wiedmeyer wreg at wiedmeyer.de
Thu Jan 19 21:41:08 UTC 2017


A few updates from my side regarding this. I tried to get it working
with Replicant 6.0. Searching for networks works, but connecting to a
network fails. I will have to do more debugging, but it would be helpful
if someone else could test it, too.

Because the funny thing is that it didn't work at all when I tested it with
Tiberiu's Replicant 4.2 build[1] and Fil's scripts[2]. It fails to
create the wlan0 interface. I didn't bother investigating this because I
had already spent a lot of time trying to get it working with Replicant
6.0. And debugging it on Replicant 4.2 will be quite annoying for me
because Replicant completely crashes every time when I remove the otg
cable and reconnect the usb cable to my PC. I also noticed an exception
in dmesg when using Replicant 6.0, but there were no crashes so far. I'm
using a regular otg cable and the TP-Link TL-WN722N, so it's not quite
the same hardware you guys are using. That's why it would be helpful if
you could test it on Replicant 6.0.

I pushed an ath9k branch with all the changes[3] I did. This is only for
the Galaxy S2 for now, but it should also work on the Galaxy S3 if you do
the same changes to the i9300 kernel config. I can also upload a Galaxy
S2 image for testing if you prefer. Please note that insmod is not
necessary as I didn't build the driver as a module.

So why is all of this so difficult? The main problem on the kernel side is
that the kernel resembles more the 3.4 kernel than the original 3.0
kernel in the network stack. The reason is that CyanogenMod did a lot of
backports over the last years. It's not fully clear to me if all of
these changes were made to get more recent driver versions for the
internal wifi working or if these changes were also needed to be
compatible with more recent Android versions. Tiberiu reverted a big
part of these changes and removed some code that is not in the mainline
kernel before he enabled the ath9k driver[4].

A few years have now passed since Paul got the kernel ready for
Replicant 4.2 and a lot more changes have been added, so there is a huge
chunk that needs to be reverted now. It's pretty clear that this will
render the internal wifi unusable. One could now argue that this doesn't
matter because the internal wifi needs proprietary firmware to be loaded
and the firmware is not present on the device. Thus, the firmware needs
to be shipped with Replicant and Replicant won't ship proprietary
software. But some of these changes could also turn out to be useful for
an external wifi dongle.

I can think of two options that wouldn't make it necessary to get rid of
a lot of improvements to the kernel:
1. Adapt mac80211 and the ath driver to be compatible with the 3.4
kernel wifi interface
2. Backport mac80211 and ath from the 3.4 kernel

I tried both of these options. Both lead to the same results described
in the beginning so it could also be a problem in userspace. The ath9k
branch[4] contains the backport approach. I will try to spend more time
on debugging this in the future but I will leave it at this for now
because I already spent a lot of time on this.

Best regards,
Wolfgang

[1]  http://tehnoetic.com/download/replicant-4.2-i9100-nonofficial-tehnoetic.zip
[2]  https://redmine.replicant.us/boards/9/topics/13932?r=13946#message-13946
[3]  https://code.fossencdi.org/kernel_samsung_smdk4412.git/log/?h=ath9k
[4]  https://git.replicant.us/tehnoetic/kernel_samsung_smdk4412/commits/ath9k_htc

-- 
Website: https://fossencdi.org
OpenPGP: 0F30 D1A0 2F73 F70A 6FEE  048E 5816 A24C 1075 7FC4
Key download: https://wiedmeyer.de/keys/ww.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/replicant/attachments/20170119/d1043696/attachment.asc>


More information about the Replicant mailing list