Issue #669

Installation instructions lack explicit hints about proprietary firmware

Added by Daniel Kulesz about 7 years ago. Updated almost 6 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


New users to replicant might start just installing the distribution on their phones by downloading the latest image and flashing it by following the installation instructions. They end up with a system, where hitting the "on" button for wifi would just do nothing, giving no feedback to the user why it does not work and no hints how this can be overcome. Novices might get the impression that there is an awful bug in replicant and the functionality is simply broken.

Also, there is no explicit hint that these things (like wifi, blueooth for the nexus s) will NOT WORK unless the proprietary firmware files are flashed. Unfortunately, after flashing replicant the firmware files are gone, so users would either have to download them somewhere else, extract them from the official factory images (where available) or first flash back to the previous distruction, pull them from there via adb (instructions for this are only anecdotal!) and then flash replicant again and install these firmware files.

I would highly suggest to place an explicit hint in the installation guides, so users wishing to have a "useable" device will now that they need to extract these firmwares beforehand plus maybe some hints on how to do that.


Updated by Paul Kocialkowski about 7 years ago

  • Status changed from New to Rejected
  • Resolution set to invalid

Replicant is a free software project, hence, we don't give instructions on how to install non-free software. These firmwares are non-free software, hence, we don't give instructions on how to install these firmwares. Clear enough?

If some of you decide to install firmwares, that's their own decision and thus, they cannot expect any documentation or support from our project.

Also, there is no explicit hint that these things (like wifi, blueooth for the nexus s) will NOT WORK unless the proprietary firmware files are flashed.

Sorry, you are wrong. There are very explicit informations about this behavior on the ReplicantStatus page of our wiki. I don't see how things could be more explicit.


Updated by Daniel Kulesz about 7 years ago

Alright, I get your point about not providing instructions for installing non-free software.

Regarding the explicit information: Yes, it is explicit on the status page, but the installation instructions could point there too, informing the reader that there could be additional steps needed (which you don't support) in order to get more of the hardware pieces working.

Unfortunately you did not comment on my last suggestion, Replicant behaving more use-friendly when the firmwares are not present. For instance, it could show a small popup with something like "Sorry, this function is currently not supported because the vendor refuses to provide the source code for the necessary drivers and there is no free driver available yet". You don't agree that this would be better than just behaving like this feature is defunct?


Updated by Paul Kocialkowski about 7 years ago

No, it is not relevant to put that information in the installation instructions, obviously.
There is a difference between being informative about what works and what doesn't and advising the user that there are further steps to have their phone fully working. One is clearly a way of encouraging the use of non-free software, the other one is not. If your goal is to get the as many hardware pieces as possible to work, then Replicant is probably not for you. Installing proprietary firmwares is not a step further regarding to software freedom, it's a step backwards, so I see no reason why we would even mention it: our project is about software freedom, not about supporting hardware in the most efficient way. You may have misunderstood our motivations.

Replicant behaving more use-friendly when the firmwares are not present

Oh you have no idea how user friendly it is thanks to dedicated work. Before that, enabling WiFi would crash the phone, now it does nothing, which is a huge improvement. This is the most adapted behavior IMO. And if you take a look at the Replicant Status page, which is something every user should do before installing Replicant obviously, the fact that WiFi doesn't work won't seem to come out of the blue.

Your suggestion is acceptable though, but we really have a lot of more useful and interesting things to do ;)

Sorry, this function is currently not supported because the vendor refuses to provide the source code for the necessary drivers and there is no free driver available yet

This is not about drivers but firmwares, which are very different things.


Updated by Daniel Kulesz about 7 years ago

Regarding the "encouragement": I think there are two types of open source users: those who want "free and only free" software and use distros like i.e. Fedora or debian without "non-free", and there are users who just "prefer" free software over non-free in case there are alternatives. The latter group would i.e. use Ubuntu or buy a raspberry pi (which requires prorietary firmware) because it "just works" while the first one would not simply for principal reasons.

In some ways, your project seems to be a slight mixture of both: you seem to somehow "accept" non-free bootloaders because it's impossible to get the devices to working without them (at least currently), but on the other hand you refuse to provide hints on how to get other stuff (like wifi or bluetooth) working.

Of course I appreciate all your previous efforts and that the phone does not crash when trying to turn of wifi without having the firmware, but still I think that being more use-friendly and less "rtfmish" might attract more users and in the end more developers. But this is a purely political issue which is imho OT in this ticket.


Updated by Paul Kocialkowski about 7 years ago

Our project is not a mixture of both. We are free software people, not open source people. Non-free bootloaders and the firmwares we deal with are pre-installed on the device and are not part of Replicant. What you're saying is the same as saying that Trisquel is not really about free software since it runs on computers with non-free BIOSes. Trisquel itself is fully free. The fact that many people use it with a non-free BIOS and devices with non-free firmwares inside (any WiFi chip except ath9k_htc and a couple broadcom devices that have free firmwares) doesn't make Trisquel any less fully free. Hence, I see no contradiction in what we do and our approach to non-free firmwares. As long as the non-free firmwares have to be shipped with the system, we cannot distribute them, and instructions to install them is recommending the use of non-free software, so we don't do it. On the other hand with pre-installed firmwares, we don't have to deal with any of these aspects and just implement a protocol or such on our side, even though we know the other side of the hardware is a non-free firmware running. In that letter case, we do not advise the use of non-free software, we blindly implement a protocol regardless of what's on the other end, which is IMO the right thing to do. Same for the bootloader: our kernel boots regardless of what software chainloaded it and its license.

Then we never claimed Replicant will make your phone 100% free software, we are just saying it's a fully free system, which is true. Same as Trisquel people will never claim their system will make your computer fully free.
What firmwares and non-free bootloaders/BIOS are pre-installed is out of our concern, even though we can be informative about it.

Nobody is saying that the situation is currently perfect, I don't know of any computer that can run with all of its software being fully free. This however doesn't mean that fully free software projects like Replicant or Trisquel are useless, irrelevant or have any less validity as fully free software projects.


Updated by Daniel Kulesz about 7 years ago

Okay, sorry - the term "mixture" was probably not the right one. If you see it as an interface like you do, you are perfectly right about it. But I never said that such projects were useless or irrelevant?

Still I think that there are project which ship 100% free software but advice the installation of non-free software to make the system more useful. But I have understood now that you are not doing that and that you value freeing the software much higher than providing users a useful system which can be used as a "daily driver" (most smartphone people probably want wifi and bluetooth working).

This discussion raises another question about non-free interfaces for me: You have put the point "The kernel must not be signed: the bootloader must not check the kernel signature" as a minimal requirement for a target device. For some Motorola devices, the XDA and Cyanogenmod people have found ways how to bypass the bootloader and even load custom kernels, although the bootloader is still locked and checks kernel signatures. So why do you refuse to evaluate such devices as targets? The non-free elements that came there with the device would remain there, still you could ship a replicant distribution containing only free software? I always thought that argument for not supporting the devices was that you would not free them from the non-free bootloader.


Updated by Paul Kocialkowski almost 6 years ago

  • Target version changed from 21 to Any version

Also available in: Atom PDF