Project

General

Profile

Issue #1836

Galaxy Note 2 Wi-Fi; Seemingly open source drivers exist but are not included in Replicant?

Added by Nichlas Severinsen about 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Category:
Wi-Fi
Target version:
Start date:
09/19/2017
Due date:
% Done:

0%

Estimated time:
Resolution:
invalid
Device:
Galaxy Note 2 (N7100)

Description

I'm very new to all this, so feel free to yell at me if I get this wrong. There's a huge possibility this is a duplicate issue.

The Galaxy Note 2 has a Wi-Fi chipset called Broadcom BCM4334, but Replicant does not include drivers to operate this chipset.
Thus, there is no Wi-Fi with Replicant on the Galaxy Note 2.

The way around this issue has been to use an external Wi-Fi adapter (the N150, based on the Atheros AR9271) together with RepWifi by Filippo "Fil" Bergamo.
While this solution works, it is not - in my opinion - an optimal solution.

I tried searching for drivers for the BCM4334 and found this; https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211
I'm unsure what this page is actually saying so correct me if I'm wrong,
but that link seems to state there are libre drivers for the BCM4334 as of Linux kernel 3.6+; "Supported in 3.6+"

Running uname -a on my own Note 2 with Replicant 6.0 0002 shows kernel version 3.0.101-replicant, which would in theory be too old.

-

So now to the issue; Is it true that the drivers in Linux 3.6+, that seemingly would operate BCM4334, are libre?
And how much work would it be to pull in these drivers? Could simply updating the kernel from 3.0 to 3.6+ be a solution?

History

#1

Updated by Garman Hed about 2 years ago

So now to the issue; Is it true that the drivers in Linux 3.6+, that seemingly would operate BCM4334, are libre?
And how much work would it be to pull in these drivers? Could simply updating the kernel from 3.0 to 3.6+ be a solution?

Reading from the link you provided and how I understand it, it should be possible to run it libre "Completely open source host drivers, no binary object files." (you need the binary blobs to make it work at the moment).
Wolfgang Wiedmeyer wrote about getting a newer kernel to work for android on his blog, it seems to be rather hard if not impossible under the given circumstances, https://blog.fossencdi.org/newer-kernel-galaxys3.html.

#2

Updated by Nichlas Severinsen about 2 years ago

Garman Hed wrote:

Reading from the link you provided and how I understand it, it should be possible to run it libre "Completely open source host drivers, no binary object files." (you need the binary blobs to make it work at the moment).

That's great, that was my interpretation as well.

Wolfgang Wiedmeyer wrote about getting a newer kernel to work for android on his blog, it seems to be rather hard if not impossible under the given circumstances, https://blog.fossencdi.org/newer-kernel-galaxys3.html.

That sucks. I checked the released source for the Note 2 and Samsung did the same thing there.

Wolfgang Wiedmeyer wrote:

The goal should be to have an easily maintainable kernel that makes future kernel updates possible. In the next post, I will explain why going mainline is the only solution and how far I've got with getting the mainline kernel working.

This sounds optimistic and I'll be impatiently awaiting the next blogpost.

-

If we cannot upgrade the kernel, is there a possibility we could backport the specific driver added in 3.6 to 3.0?

Also, seems I forgot to tag this with device as "Galaxy Note 2", and the Wi-Fi tag.

#3

Updated by Fil Bergamo about 2 years ago

  • Category set to Wi-Fi
  • Device set to Galaxy Note 2 (N7100)
#4

Updated by Denis 'GNUtoo' Carikli about 2 years ago

The Galaxy Note 2 has a Wi-Fi chipset called Broadcom BCM4334, but Replicant does not include drivers to operate this chipset.
Thus, there is no Wi-Fi with Replicant on the Galaxy Note 2.

On all Replicant supported (and partially supported/work in progress) devices the integrated WiFi doesn't work. This is not because of drivers issues, but because theses free software drivers do require a non-free firmware to work, which Replicant doesn't redistribute because they are non-free.
Since Replicant keeps the free software WiFi drivers, the WiFi fails when it tries to load the WiFi firmware and doesn't find them.

WiFi chips and cards that do not require non-free firmware do exists, but they are used not in smartphones (with the exception of the Neo Freerunner, which hasn't enough RAM to run Replicant).

I also don't know for sure if any tablets that has WiFi chips that don't require non-free firmware do exists.
Some have an ESP8266 chip, that might be worth investigating.

I tried searching for drivers for the BCM4334 and found this; https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211
I'm unsure what this page is actually saying so correct me if I'm wrong,
but that link seems to state there are libre drivers for the BCM4334 as of Linux kernel 3.6+; "Supported in 3.6+" 
Running uname -a on my own Note 2 with Replicant 6.0 0002 shows kernel version 3.0.101-replicant, which would in theory be too old.

Not necessarly, see compat-wireless here: https://wireless.wiki.kernel.org/en/users/download/hacking
#5

Updated by Wolfgang Wiedmeyer almost 2 years ago

  • Status changed from New to Closed
  • Assignee set to Wolfgang Wiedmeyer
  • Resolution set to invalid

As Denis already wrote, the issue is not a missing driver but the non-free firmware that needs to be loaded to the Wi-Fi chip. So I'm closing this issue.

Nichlas Severinsen wrote:

Wolfgang Wiedmeyer wrote about getting a newer kernel to work for android on his blog, it seems to be rather hard if not impossible under the given circumstances, https://blog.fossencdi.org/newer-kernel-galaxys3.html.

That sucks. I checked the released source for the Note 2 and Samsung did the same thing there.

Yes, the kernel sources are almost identical. That's why in LineageOS and Replicant, common kernel sources (called smdk4412) are used.

Wolfgang Wiedmeyer wrote:

The goal should be to have an easily maintainable kernel that makes future kernel updates possible. In the next post, I will explain why going mainline is the only solution and how far I've got with getting the mainline kernel working.

This sounds optimistic and I'll be impatiently awaiting the next blogpost.

Unfortunately, you'll likely be waiting for a long time as I'm currently lacking time to work on this. But others like Simon Shields did some further work, either directly based on mainline (which is preferable) or based on kernels that are based on newer mainline versions, like the common Android kernel or the Tizen kernel that Samsung published for the S3.

If we cannot upgrade the kernel, is there a possibility we could backport the specific driver added in 3.6 to 3.0?

Why doing that? There is already a Wi-Fi driver for the chipset in the kernel. "Supported in 3.6+" here means that support for the chipset was added in the mainline kernel version 3.6. Google and Samsung added a huge amount of code to the 3.0 mainline kernel, so called out-of-tree code. This code already includes the Wi-Fi driver. Otherwise, Wi-Fi wouldn't work with LineageOS either.

Also available in: Atom PDF