[Assist] wireless drivers
Denis 'GNUtoo' Carikli
GNUtoo at no-log.org
Sat Jan 3 10:07:14 GMT 2015
On Mon, 29 Dec 2014 09:08:25 +0000
Binh-Khoi Nguyen <khoi at member.fsf.org> wrote:
> I already use a USB one, I was just wondering whether I could replace
> the Wifi card. I'll do my own research then :)
If you're very good technically you may be able to do it.
There are two approaches:
1) Flashing a patched BIOS: This is very risky: Often the flashing
utilities are non-free, and they differ from flashrom in what they
do. So the risk of bricking the laptop is very high.
Once bricked you have to dissemble most of the laptop, and reflash
the BIOS chip with an external programmer, you need another
computer, the flasher, and something like a pomona clip.
Of course you'd have to look if the requirement above match your
case, some laptop have different chips formats.
I tried this approach on my x60 in order to be able to keep using
my ath9k with the BIOS: I needed it to spot some differences
between coreboot and the BIOS. It ended up with a brick because
the proprietary flashing tool was assembling BIOS pieces together,
and instead I used flashrom's as-is. I recovered from it of course.
2) Making the wifi card give PCI ids that are in the whitelist.
I looked rapidly at it for someone else's laptop.
On the internet, many people reported some success with this, but
with intel wifi chips(sic).
Now we don't care about intel wifi chips, instead we want to
use the atheros ones.
Now I didn't find a way to do it from GNU/Linux.
Example with a pc-card ath5k that I have available right now:
> # ethtool -e wlan3
> Cannot get EEPROM data: Operation not supported
I can't even read the eeprom data, because the kernel driver doesn't
support that. Reading and writing the eeprom trough ethtool does work
with some other wifi drivers. Here what the driver needs:
static const struct ethtool_ops foo_ethtool_ops = {
[...]
.get_eeprom_len = foo_ethtool_get_eeprom_len,
.get_eeprom = foo_ethtool_get_eeprom, // probably for reading
.set_eeprom = foo_ethtool_set_eeprom, // probably for writing
};
On the 3.18 (retrivied with git grep inside drivers/net/wireless):
Wifi drivers having the set_eeprom: ipw2200
Wifi driver having the get_eeprom: ipw2200 ath9k libertas
Now I didn't investigate other means:
2a) I didn't look if some specific eeprom driver was used or could be
used to do that.
2b) I didn't try dumping the eeprom, modifying it and writing it
back with an external flasher.
3b) Using other internal connectors than the usual mini-pcie
connector reserved for the wifi card. Maybe extra mini-pci connector
or internal usb connector could be used to avoid the BIOS whitelist
issue.
However you should also consider the antenna: if you succeed
to connect to the antennas that are in the screen, you should be
good.
Since having an internal wifi card is very convenient, it may be worth
investigating it more.
Advantages/disadvantages of internal(PCI) and external(USB) cards:
------------------------------------------------------------------
USB wifi cards have more probability to break:
* You may forget it on the laptop and it can break during
transportation.
* If the card is big and that you move with the laptop around in
buildings or outside, it may break due to a collision with
something stripping it out of the USB port, and breaking or the
card, the USB port or both.
Internal cards takes no space outside and usually have a very good
range.
With USB cards:
-> or you choose a small one and it doesn't have a good signal
-> or you choose a big one with a good antenna and you do look strange
with a big antenna:
For instance when you are at a bus stop, with a wifi cards and a
huge antenna, using the shell when trying to download and compile
some software, and that you listen to some electronic music, people
look at you very strangely, trying to figure out what you are doing.
However with an USB card, you can know for sure that the wifi is off by
removing the card, it also produces no heat inside the laptop.
Denis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.parabola.nu/pipermail/assist/attachments/20150103/b329e49b/attachment.bin>
More information about the Assist
mailing list