Free Driver for Ralink RT2790?

40 respostas [Última entrada]
wpurcell
Desconectado
Joined: 11/07/2009

I just purchased a EEE PC B202 which has a Ralink RT2790 wireless card. Does anyone know if there are free drivers for this card? I'm running a stock Trisquel 6.01 system. I guess the alternative will be a USB dongle.
Thanks for your time.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

The Debian page[1] for the driver talks of them removing the firmware
from their kernel, so presumably it's non-free.

[1] https://wiki.debian.org/rt2860sta

wpurcell
Desconectado
Joined: 11/07/2009

Thank you leny2010. I just noticed that the sound is not working either. Perhaps I should have done my homework!

lembas
Desconectado
Joined: 05/13/2010

Check all mixers to make sure it's not muted. E.g. alsamixer from the command line. (m to un/mute a channel) If memory serves double clicking or was it right clicking the gnome sound volume applet takes you to a pulse audio GUI mixer.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

Note that Asus are not in the Chris gives [1] as known to anti-feature their BIOSes to stop you replacing the WiFi card. So finding a YouTube video on how to open yours are replacing the WiFi PCIe card (might be half height?) with one from ebay or somewhere similar would seem to be a good idea. Dongle's are great but they can get caught or be forgotten when you're moving the laptop about.

I've done it on one of my machines and the PCIe card only cost 8GBP, which generally means it would cost the same number of Euros or Dollars elsewhere in the world.

[1] https://trisquel.info/en/forum/do-msi-drm-their-wifi-anyone-using-msi-u135dx

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

Oo, look like the other Ralink device on the forum today - it is all licensed under the GPL

http://www.mediatek.com/en/downloads/rt2860pcimpcicbpciert2760rt2790rt2860rt2890/

Just it seems you need to get reverse engineering so we can have the source to the firmware. I've seen comments in the Linux Libre cleanup scripts which drop GPL firmware we haven't yet RE'd the source to. Absence of the source means it is not GNU FSDG and therefore can't be included in Trisquel.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

I'd better poiint out the above is 'Shenzen humour' which is endemic among hardware design engineers. Don't do without an attourney.

Legimet
Desconectado
Joined: 12/10/2013

Warning: These links contain nonfree firmware, just for listing the GPL violations.

All (nonfree) Ralink firmware images can be found here. The files are rt*.bin.

RT2501PCI/ mPCI/ CB(RT61:RT2561/ RT2561S/ RT2661)
For some reason they have .bin files but the firmware images are also included as hex arrays in the GPL-licensed Module/rtmp_init.c (see the really huge hex arrays?) This gives us rt2561.bin, rt2561s.bin, and rt2661.bin, the first 3 in linux-firmware.git.

RT2860PCI/ mPCI/ CB/ PCIe(RT2760/ RT2790/ RT2860/ RT2890)
Included as hex array in include/firmware.h. This gives us rt2860.bin and rt3090.bin, which is just a symbolic link to rt2860.bin in linux-firmware.git.

RT2870USB(RT2870/ RT2770)
Included as hex array in include/firmware.h. This gives us rt2870.bin and rt3070.bin, which is just a symbolic link to rt2870.bin in linux-firmware.git.

RT3290 PCIe
Included as hex array in include/firmware.h. This gives us rt3290.bin.

RT2501USB (RT73:RT2571W/ RT2573/ RT2671)
Firmware image is included as hex array in the GPL-licensed Module/rtmp_init.c. This gives us rt73.bin.

I have no idea about rt3071.bin.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

It's pretty hard for a dev to comply with a license in a language they don't understand for a legal code they have no idea about. Best ask FSFLA's Linux-libre team if they report GPL violations like this which they find in deblobbing to the FSF licensing team or similar?

Legimet
Desconectado
Joined: 12/10/2013

Yeah, I was thinking of asking someone more knowledgeable on this topic before contacting Mediatek. Mediatek doesn't seem too good with GPL compliance (just search "mediatek gpl") Of course, nonfree code in a kernel module is a GPL violation, and there's a lot of companies (nvidia comes to my mind) which distribute nonfree kernel modules.

https://www.gnu.org/licenses/gpl-faq.html#NonfreeDriverKernelLinux

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

A big IANAL here. We're coming at this from different angles. Yes non-free drivers are a GPL violation. However, these drivers and firmware (or at least the ones I've tried) are click-through licensed by Mediatek under the GPL and you seem to idicate some of the source confirms that too. So looking here:

https://www.gnu.org/licenses/gpl-faq.html#DeveloperViolate

a developer can't violate the GPL. Thus the code such as it is, even without the blob source, is probably technically GPL if e.g. click through licensing works where you are. Therefore you have the four freedoms including to study, modify and create derivative versions. So logically a reverse complied version would just be a derivative of their binary original. The Linux-libre deblobbing script says pretty much this of some blobs it removes.

There's a chance it's a blob for exactly the same reason jxself's linux-libre debs are Bring Your Own Firmware and the latest Atheros firmware was a special packaging effort for Ruben. That is compiling firmware to microcontroller object code is not integrated into the standard Linux compile process. But don't bet on it.

With SoCs, the chip design components for the internal devices are licensed from a variety of sources complete with driver. So they'll only have binary drivers for some devices in them to start with. As with another SoC mfr it might be Team A builds a distinct type of SoC and does GPL compliance one way, and Team B builds a different type and doesn't do GPL at all. All the web shows you is Team B perhaps.

So given the chances of someone from a free software distro writing to them before is limited, do as you suggest write. But all you can do is ask for the source for the blobs (perhaps saying its to save you reverse compiling them as they've allowed under GPl). It's perhaps best to bear in mind the Chinese have a social taboo against admitting they got something wrong 'losing face.' So you probably shouldn't tell them they have, e.g. the one which the source says is an unpublished work, perhaps say something like the server has a bug and is serving their pre-release code. Even if you send your email to one of their Western offices if it gets any attention they could well forward it to someone Chinese perhaps even to the team who will be in China.

Lastly hardware companies tend to be like Mick Jagger and not get out of bed for less than a million(units). So assuming your request gets translated and put in the right team's inbox likely you'll be at the bottom of the list after all the paying customers for support attention.

Legimet
Desconectado
Joined: 12/10/2013

Yeah, I don't think we can get it. Also they might not be legally allowed to release the firmware code. (but why did they GPL-license it in some places?)

On the other hand, the Ralink firmware blobs are the smallest in the whole linux-firmware.git tree. And a developer of rt2x00 said

"One of the things I like about the Ralink hardware is that almost everything that really matters is handled in software. Only the things that are very timing-specific are handled in the hardware/firmware. I am not encouraging reverse engineering, and I see no point in doing this for the Ralink firmware, since the most interesting features for the hardware can simply be implemented in the driver software itself." [0]

So this might be easier to reverse engineer than other blobs. Of course, reverse engineering is not easy, but it might be possible.

[0] http://archive09.linux.com/feature/132701

Legimet
Desconectado
Joined: 12/10/2013

Lol, I have rt3090 and I always found that funny (RT3090 firmware is same as RT2860)

Also: http://www.mediatek.com/en/downloads/rt3090pcie/
and: http://git.savannah.gnu.org/cgit/linux-libre-fw.git/tree/rt2x00-fw/README (this is exactly what you were just talking about)

And in the driver, there's a firmware.h which contains the firmware as a header. That's a GPL incompatibility. I wonder if we could use that to get them to release the source to the firmware. Save the driver source code just in case they change it to hide their mistake.

EDIT: And I hate how they want an email address before you download. I just put some junk like name at domain.

Also note that the drivers with firmware.h are the legacy drivers. Linux no longer uses those drivers, but uses the ones from the rt2x00 project, which do not violate the GPL. It's good that Mediatek still makes the legacy drivers available on their website.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I think the way we're phrasing this is off.

Quite a bit of GPL licensed code violates the principles of the GPL and free software movement. This is something that distinguishes the free software movement from the "open source" movement. "open source" proponent have no problem with non-free pieces as the goal is purely to code more efficiently (code reuse where its beneficial and non-free code where it isn't). CodeWeaver's CrossOver Linux is a good example of a piece of software that is "open source". It is based off of mostly free software, but has a non-free user interface that runs on top of the free software piece (WINE) to make it easier to configure/use MS Windows software (keep in mind some MS Windows-only software is 100% free, but only runs on the non-free platform, and therefore needs WINE).

Ralink and most companies developing GPL licensed drivers are doing something similar although in a reverse fashion. Instead of making the interference proprietary they make the core proprietary. This is worse because now the software is totally useless. Unlike with WINE / CrossOver Linux it is at least possible to utilize the software without the non-free parts. That is not the case with drives that depend on non-free firmware.

Ralink and most other companies developing drivers dependent on firmware have not released the code because the "open source" community isn't demanding it. Unfortunately Linus Torvalds (the lead kernel developer) has taken a stance that he doesn't care. This has lead to an undesirable situation where companies are less cooperative than they probably otherwise would be. It's so bad in many cases that even Linus has gotten upset and yelled out at times. Personally I think it is in part his own doing in his support of the "open source" movement. While it can be argued that the "open source" movement is the reason we have many of the drivers that we do it can also be argued it's why we have many of the problems we do.

In any event Ralink has been uncooperative in the full release of source. While the driver is under a GNU GPL license it's not free software as the source consists of a binary-only (and thus not free despite it being under the GNU GPL) component. That violates the spirit of the GNU GPL license.

What you should take from all this is that GNU GPL licensed work is not sufficient to make something free software in its entirety. While in many cases the free software community gains some benefit from partly free software it gains nothing in other cases (as it is in this case, with drivers).

In most cases the GNU GPL licensed driver has separate firmware, but in other cases, like the Ralink drivers that firmware is non-free and embedded within the free code and thus not really free (and particularly not in any useful way).

Legimet
Desconectado
Joined: 12/10/2013

"In most cases the GNU GPL licensed driver has separate firmware, but in other cases, like the Ralink drivers that firmware is non-free and embedded within the free code and thus not really free (and particularly not in any useful way)."

The drivers on Mediatek website are the old drivers that have the firmware embedded. The rt2x00 drivers, which were made with the help of Ralink and are of higher quality, use a separate firmware blob.

I read a quote from a rt2x00 dev who said that, in the case of Ralink, most things are actually done in the driver, and the firmware only handles what is really needed. So I guess the situation is better than other chips that require nonfree firmware, and I think the driver could give some details about the hardware.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I was thinking about the ones originally released rather than derivative works in relation to the binary being embedded in a GNU GPL'd driver and thus not really being 100% free. This mainly due to the fact people are linking to these GNU GPL'd drivers, investigating the source, not finding any firmware, and concluding it's 100% free, or even just assuming because it is under the GNU GPL driver it must be 100% free.

I'll make a 2nd comment on my thoughts on the size of the non-free component. I don't feel this is acceptable either. Separate or not, big or small, a non-free component is still non-free.

That said in my mind the whole movement is about freeing as much code as possible. Doing that and enabling people to get to that point is key. Actually achieving a situation where everything is 100% free is unlikely at the moment. That doesn't mean we shouldn't shoot for that.

Legimet
Desconectado
Joined: 12/10/2013

rt2x00 isn't a derivative work, and even to people who don't care about nonfree blobs, the drivers on the site are misleading because rt2x00 is already integrated in Linux.

My remark about the size of the nonfree blob was more about reverse engineering and writing a replacement, and the fact that this firmware is probably less complicated than others such as b43 (which was reverse engineered) and ath9k_htc (which was freed last year). Although I have little experience in reverse engineering, I've started looking at the driver and firmware.

Michał Masłowski

I am a member!

I am a translator!

Desconectado
Joined: 05/15/2010

rt2x00 has 2KiB to 8KiB of 8051 code. ath9k_htc uses 52KiB to 72KiB of
Xtensa code. Old Broadcom cards (reverse engineered) had a custom
instruction set and ~96 KiB firmware (?), new ones are 200-600 KiB of
ARM code. Intel is 148KiB to 692KiB, probably custom ISA. Marvell
Libertas has 120 KiB in one of the firmwares (others implement more
functionality on chip instead of doing it in the kernel).

Ralink firmware should be easiest to replace via reverse engineering.
It probably doesn't have a third-party RTOS and its code can be easily
disassembled: these were problems for Libertas firmware replacement.
Kernel drivers might provide some useful information on what the
hardware does (memory map, register documentation, load address for the
firmware, or how to debug the firmware).

Legimet
Desconectado
Joined: 12/10/2013

Thanks, that's exactly what I was trying to say! :-)
I have access to 2 ralink chips, the rt3090, which uses rt2860.bin (8kb) and the rt73, which uses rt73.bin (2kb).

And the rt2x00 drivers do provide useful documentation.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

Anybody interested in hacking on a free replacement firmware should get in touch with me. We can help fund it (parts, bounty, etc).

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

I think you've missed that I've been discussing this in the manner of
a Medical Examiner dictating the details of the corpse she's
dissecting. Like many Brit's I leave editorial to peoples' own
intelligence, they can easily presume from me being an Associate
Member here and FSF I am committed to free software ideals.

While I'm in agreement with the broad sweep of what you say, and
specifically that non-free blobs are not to be used (I'm using
Trisquel so that's obvious) and simply GPLing the code that uses it
is a wrongness, it simply is the case that the drivers with GPL
licensed blobs are legally free. Just a poorer kind of free which
requires reverse engineering work to turn into a good type of free.
But then we are a free software community, so as RMS has said let's
not limit ourselves to picking low hanging fruit, rather let's
encourage someone with one of these card to RE the firmware. Which
is where I came in in one of these RALink threads. Until it is REd
and we have source then Trisquel will not include it because it is
merely a technical kind of free and I endorsed that policy.

The terms free and non-free seem to lead people into the known human
psychological weakness of dichotomous thinking. Aka black and white
thinking. Complete software freedom being possible on ones desktop,
laptop and some routers helps this along a bit. We should remember
that the objective is absolute software freedom, where it is mandated
by law globally. Until that day (which we won't live to see) then
best practice is to maximise ones software freedom in _all_ devices,
which means its shades of grey and personal judgements - not a
duality. So yes we can judge if something is fully free and always
seek that, but regrettably at present like these blobs there are
cases which are a different grade of free.

Note that here in the EU it is illegal to RE to replace (but not to
inter-operate). However, a GPL blob should logically be REable
because it's simply changing the form of something which is already
free and so the licensing explicitly allows that (IANAL). So there
is potential benefit in GPL blobs over non-free license blobs even
though both are an unpleasant and unnecessary hindrance.

I haven't done any RE since my 8-bit days, but with my ISP replacing
my router for free in preparation for fibre this last contract
renewal I have my old one set aside to practice on and have bought a
cheap USB JTAG for the job. Obviously I've lot a to catch up on
because I've not done that much coding in the past decade and no
embedded since 1998. My memory of 8-bit RE is that it was more
laborious and time consuming than properly difficult. As RMS once
said there are few things software which actually qualify as
difficult (c/w some math, physics, & medicine e.g.).

Leny

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I don't see how you can call something free if the code is not available. While I'd agree with the general tone of shades, I wouldn't call something free or legally free even just because it was under the GNU GPL license. If I were to say it were mostly free that's a more accurate statement. If it were not useful without the non-free code its certainly less free than something that is useful without the non-free pieces. Any time something is dependent on non-free parts I would not say it was free in any practical way.

A few examples of how I'd probably word things that are of different shades of grey:

CodeWeavers CrossOver [GNU/]Linux: it's almost entirely free software except for the UI, it's mostly free, and useful without the non-free parts

Ralink 802.11n drivers/ATI graphics drivers: it's partly free, but not in any way useful as you need non-free software still

Ubuntu: It's mostly free software, and is useful without the non-free parts

It can be difficult to clearly talk about free software and I find myself being unsure sometimes if I'm accurately educating users and potential customers who are less aware of free software to the extent of ThinkPenguin's product line up. That is to say almost all our products are 100% free software friendly, but some (like laptops) are merely 100% free OS friendly without the need for blobs for any major chipsets. And then I'd go into how there are components within (like the BIOS) which are non-free and potentially other small bits of code nobody is even thinking about. In any event, it's as good as most people can expect to get right now give or take particular priorities (freedom-wise and otherwise).

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

I'm not sure if we're just having a combination glass half full/half
empty and semantics argument. However, I'll explain why I affected
the nonce term 'legally free.'

GNU FSDG rightly excludes both blobs and obfuscated code under free
licenses because they interfere with users' meaningful use of the
freedoms. Which is perfectly true in the case of all users.
However, if it's under the GPL then in the special case of users with
the right skills they can make meaningful use of those freedoms i.e.
turn a blob into proper source, deobfuscate the source. So it seems
to me over the blob you're echoing Solomon Burke's 'none of us is
free until we're all free' whereas I'm saying 'someone is free and
can free us all.' What term we use for this is a matter of
semantics. I just picked something out of the air.

It being GPL also prevents lots of kinds of proprietary license blob
impediments e.g. patents we can't license, supposed trade secrets we
can't publish and ATI/AMD's prohibition of reverse engineering. ATI
graphics drivers are therefore IMO in a worse position than the GPL
blob RaLink drivers - we can't get out of AMD/ATI's trap.

I think of the others you mention as 'open source community stuff,'
which covers things like the garnishing with proprietary code gratis
or not, the habit of copyright holders also selling the code under a
proprietary license, etc. You know, all the ways the users freedoms
and rights are treated as less important than money, number of users,
shiny thing features or whatever. :-)

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I'm not a lawyer so I'm definitely going to refrain from commenting on the legal aspect. I think what I was trying to say is the legalities shouldn't excuse or determine what we think.

I understand your points in any event. I don't know if they translate into the real world or not. I can imagine a lawyer making that argument in court though and it may legally excuse certain types of reverse engineering work that would otherwise be illegal.

Usually reverse engineering requires a 'clean room' environment. It may be acceptable given the license for a dirty reverse engineering project to take place under the circumstances and be totally within the law due to the license.

Legimet
Desconectado
Joined: 12/10/2013

I'm not sure about the legality of disassembling that blob, because although it should be GPL (and the website says it's GPL) there's no source code which is a requirement of the GPL. And if you open the zip file with the firmware, there's a nonfree license.

Anyway, I compiled the rt2x00 drivers with debugging support and installed on my system. So far all I've figured out is a few details about the format of the firmware blob. The last 2 bytes contain a CRC16 checksum of the rest of the file, and the second-last 2 bytes contain the version. The blob seems to be in 2 parts. The first half contains some code, and after that is filled with 0xFF's. The second half contains some code, and after that is filled with 0x00's (except for those last 4 bytes). After removing the whole second half of the blob, it still connects fine, but outputs some warnings.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

Best go to email.

Michał Masłowski

I am a member!

I am a translator!

Desconectado
Joined: 05/15/2010

Disassembling is allowed in the EU in specific cases, these might be
enough to write a free driver. I don't know how it's done in other
jurisdictions. People who reverse engineer firmware for other devices
do disassemble it. All firmware with free replacements has nonfree
licenses, it's not sourceless GPLed code: it's possible to do it and
have it included in distros without getting sued.

I haven't found more information on firmware format except for it being
8051 code loaded at addresses specified in the driver sources, probably
some initial bytes are a header and the code follows. If you can load
custom firmware and get some output from it, you might be able to find
other useful details from the bootrom or experiments with your firmware.

Legimet
Desconectado
Joined: 12/10/2013

Just to make it clear for other people, we're talking about rt2860.bin, which is the firmware used in some PCI ralink cards including 2790, 3090 (which I have), and 2860.

I was trying to find the architecture, so thanks for the information. After looking online, I see that you're right about 8051.

The other detail about the format that I forgot to say was that the firmware has to be exactly 8192 bytes. I got the details about the format and the last 4 bytes by just looking at the firmware loading functions in the driver.

Also: good news, radare2 supports 8051. And this is a good reference for the 8051 instruction set.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I'm going to provide a bit of information on what chipsets are free software friendly and contain no non-free parts (embedded or otherwise) in most cases:

RTL8187L/RTL8187B/RTL8187 - USB G wireless Adapters
AR9271/AR9170/AR7010+AR9280 - USB N Wireless Adapters
AR9280/AR9281/AR9285/AR9287 - PCI/PCI Express Wireless N Cards (desktop and laptop cards)

All newer Atheros chipsets are dependent on non-free firmware (All PCI/PCI Express Cards) at this time. ath6kl which supports Atheros AR600x 802.11n series chipsets are dependent on a non-free firmware component.

Other things to note: The chipset info in and of itself isn't really enough to go on. It can be useful to identifying hardware that is free software friendly. However some components may have a different ID number thats not included in the driver and thus not compatible. Other things you can come across are adapters/hardware where the design is based on a given chipset, but there are significant deviations which make the kernel driver incompatible with the hardware. In other cases there are more than one chipset on a card and one of those chipsets depends on a non-free driver. Don't get confused. Just because your wifi card works doesn't mean it's totally free. In other cases you may get confused because the firmware was loaded by your non-free MS Windows OS, Ubuntu, or similar. While the device worked in Trisquel/Parabola GNU/Linux/etc it was only because you accidentally loaded the non-free firmware.

Model numbers don't equal chipsets. When someone says model XYZ of something utilizes a free chipset that doesn't make it so. What they should have said is that at least one version of the model utilizes a free chipset. In many instances there are dozens of different chipsets used in the product that have the same model number depending on when it was manufactured. That means totally different driver/firmware/etc are needed and in many cases this also means non-free software or even no driver exists for GNU/Linux at all (free or otherwise).

In many cases where a chipset is advertised the product actually contains something else. What happened was the company which manufactured it included the info in the advertising somewhere. That was copied to a sellers product information page. The manufacturer then changed the chipset(s) in the product and failed to update the site, or the seller didn't get told that the product changed. As the model number remains the same you have no idea what your actually getting even in cases where you think you do because the information's been specified.

Another big thing to concern yourself with is digital restrictions in laptops. Particularly on the Mini PCI/e slot where the wifi card goes. As an example even if you can 'free' (and we'll be talking specifically about some or all of the BIOS here and not other bits of non-free code found elsewhere) a laptop your still promoting a company that enables this bad practice. Not good. Specifically the companies that do this I'll call out here: Lenovo/IBM, HP, Dell, Sony, Apple, and Toshiba. Don't buy from them. That's my thought on this. There may be other issues with other companies, but at least those companies aren't implementing digital restrictions. The last thing I want to see are companies that go out of the way to do an intolerable disservice like this to their customers promoted.

One last thing about the Lenovo laptops. Not only do we know Lenovo uses digital restrictions (and was the first to start using them) there is yet another reason to avoid Lenovo. A member of the free software community who I bump into regularly and know well has identified code in Lenovo laptops which communicates (via encrypted means) information about its user. Simply flashing libreboot is not enough to eliminate this spyware. While we don't know exactly what information is being communicated at this time it's another reason we should be avoiding Lenovo/IBM laptops altogether rather than working on freeing them. Reverse engineering is a good idea in some cases. However when it involves doing so to a line of laptops from a company that is hindering free software adoption I feel it should be avoided. There is no good reason in my mind for further entrenching said company's reputation in the eyes of other users. A 100% free laptop which is recognizable (even if you cover up the logo) is still promoting a bad company. It's furthering the brand recognition and that is bad. No, I'd say it's intolerable.

Michał Masłowski

I am a member!

I am a translator!

Desconectado
Joined: 05/15/2010

Where is that Lenovo spyware located: in BIOS or firmware of another
chip? I know two related issues: spyware in their BIOS (replaced by
coreboot/libreboot) and ME firmware in all models since X61 (while only
X60 is supported by libreboot), this one is different.

Avoiding laptop manufacturers that are "hindering free software
adoption" requires using nonfree software (which cannot be replaced for
e.g. post-GM45 Intel chipsets) or buying old computers without much hope
for future products, it's not a clearly superior solution.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I'm not sure. Lenovo systems though have a number of different firmware pieces. Simply flashing LibreBoot doesn't fix it. That much I know. You might be able to write over it or something similar. It doesn't solve the problem that it exists in the first place though.

I think your missing something in what I'm saying. We have two options and we're taking the least desirable path right now.

Option 1: Free laptops from companies hostile to free software adoption like Lenovo and Apple

Option 2: Free laptops from companies that have not been hostile to free software adoption (at a minimum are not implementing digital restrictions or other spyware)

Your drawing a conclusion that I'm saying adoption of hardware dependent on non-free software is superior to that of one not. I'm pretty sure that isn't what I wrote. I think flashing a free BIOS on a Lenovo laptop (for example) is more of a wash than anything. While its better than a non-free BIOS it's not moving us any further along.

Michał Masłowski

I am a member!

I am a translator!

Desconectado
Joined: 05/15/2010

Unless we want free boot firmware, we should choose option 2, boycott
Apple and Lenovo. If we want free boot firmware, we need laptops
similar to ones for which hard reverse engineering work was done, like
Lenovo X60 or the Apple laptop using similar chips.

A modified Lenovo laptop being the only FSF-endorsed one isn't good. I
think it will motivate people to get X60 for use with the proprietary
BIOS (and wifi whitelist) or newer Lenovo laptops with proprietary BIOS
and AMT. Users already buy AMD systems after reading the FSF page on
how Intel opposes free boot firmware (and get the usual graphics issues
due to missing blobs).

Currently no solution is much better than others, much work is needed to
change this, probably via reverse engineering for non-Intel systems.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

Yea- ultimately the best solution is neither of the above. The best solution is to move away from x86. I think we would need a more coordinated effort to do that. We need 1. people with reverse engineering skills, 2. people with some development background/packaging skills (Rubén a.k.a. quidam is a good example), 3. demand, 4. financial resources, 5. hardware engineers, 6. companies that are actually designing the chipsets cooperation, and 7. cooperation from a company capable of doing the actual manufacturing. I think we could probably muster up 1, 2, 5, possibly 6, and 7. 3,4 might be more challenging. I don't think there is going to be enough user demand. People are just too particular and want something very specific. That's just not going to be what they get. They're going to get whatever the most desired feature set is/and or what we're actually capable of doing given the above resources.

An example of what a system might look like:

13.3-14" screen
1336x768 resolution graphics
a 1-2Ghz ARM chip
3d accelerated graphics (reverse engineered)
4-16gb ram
and a price tag around $1000-1200 USD

ohh and a pre-order including the total cost of the device and a 3-6 month wait (maybe longer) delay in receiving the unit...

There may also be quality control issues. China's a difficult place to do business.

The great thing about this system is it wouldn't be dependent on a non-free BIOS, have ever contributed $$ to Microsoft, or promoted a company thats taking away our freedoms :)

Problems that would (probably) be left unsolved: hard disk controller's firmware (we might be able to get around this somehow, but the results may be less than ideal/unreliable) and possibly keyboard or other bits I can't even think of at the moment.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

IMO wrong order Chris

#1 financial resources

All the others are reliant on them. Always has been the case.
That's why I buy from you when you have the sort of thing I need,
take out appropriate Associate Memberships, sponsor fundraisers etc.
Software freedom won't happen on the sector economy we have so far .

Leny

Legimet
Desconectado
Joined: 12/10/2013

Maybe crowdfunding would be a good idea?

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

"Maybe crowdfunding would be a good idea?"

It is, but we also need things like a huge raft of small free
software businesses using all the different business models in
April's document on them. Amongst my friends in proprietary stuff
students being 'Linux(sic) until graduation' is a joke. In the UK
for most young people it's internships at best, but usually
unemployment or government training courses until age 25 or so which
is when employers think you're fit to be a sariman. Well with a
laptop or PC with Trisquel installed you've got all you need to start
a whole range of IT small businesses from your bedroom. And if you
make enough take out a Corporate Associated Membership with Trisquel.

And this isn't 'Oh the youth of today.' I'm disabled, I've spent the
last 13 years being very busy 'not dying.' Science has improved so I'm
recovering well now, from where I am a one person free software
business looks like what I'll be doing in two or three years time
because almost nobody actually employs disabled people. I want more
than a few months crap part time here and there as soon as I can.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

So make the above specific to this topic. The REing of the firware should be appearing as a charged line item 'Making existng laptops compatible' in one of these small businesses invoices when they're up and running. The driver devs would probably do it for them for a 1-2K bounty which in a lot of cases will be cheaper than new laptops across a client company.

Chris

I am a member!

Desconectado
Joined: 04/23/2011

$1-2k to reverse engineer the firmware? I think not. If it were that cheap we'd have done it a long time ago. If you think you can reverse engineer the firmware on ath10k or another 802.11ac or 802.11ad device for that amount let me know. Heck- I'm wiling to shell out thousands of dollars (USD) if you can provide me with working replacement firmware under a free software license. ath10k would be a good candidate, but it's not critical which it is at this point.

Atheros is a good choice mostly because they've been more cooperative than others in the past. However the lack of cooperation now seems to be sufficient justification to me to look elsewhere if we have to reverse engineer something anyway.

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

Not generic firmware, this particular firmware. 1-2K GBP is sort of
what a geenrous boss might offer in kind to an employee to 'rescue'
that amount on their own time when the source has been lost. Yes, if
you're actually paying commercial rate for it - no way. I guessed,
perhaps wrongly, you might attract a hobbyist developer for a bounty
at that price.

Further the bounty rates I've seen like Squirrelmail[1] aren't even
mid-90s UK commerical rates, and it'd cost you more just to issue an
invoice than people were offering Trisquel for somethings. So unless
I'm wrong about bounties rather than actually hiring someone to do
it, which would be a huge amount more in the UK, you should start a
side line in 'running your own free software business' courses. :-)

[1] http://squirrelmail.org/donations.php#smbounty

leny2010

I am a member!

I am a translator!

Desconectado
Joined: 09/15/2011

Or to put it another way... More Rubéns, More Chrises

Chris

I am a member!

Desconectado
Joined: 04/23/2011

I agree the financial situation has to be figured out first to make any of it work (ie why I said ultimately).

We've been getting places slowly. Every two steps forward tends to include one step back.

In any event some of these things may eventually lead to improving the financial outlook. Lately we've been doing the conference circuit. Won't make much of a difference in the financial realm even though its a little bit of marketing, but we're definitely getting something from it. Like we just hired a new employee, tweaked some potential plans with a larger entity that might move us somewhere if it works out, learned about another privacy vulnerability in a particular model and probably series of machine (not that it impacts us directly, but always good to know), etc.

Here's a picture of us at HOPE X in NYC. I took the picture. Our CTO is the one in it. You may recognize him from other events and pictures I've posted on the forums. This picture was taken before the event began just after we setup on Friday morning.