Are Raspberry Pies free?
- Inicie sesión o regístrese para enviar comentarios
If I buy the most powerful Raspberry Pie (which is it btw?) am I a free man, or im still running proprietary blobs?
Can I run Bitcoin full node on a Linux distro for Raspberry Pi?, which distro would you recommend? maybe this is all I need and I don't need to bother with flashing laptops.
Unfortunately not, the raspberry pi still requires a blob to even start.
https://www.fsf.org/resources/hw/single-board-computers
The work to free it is here:
https://github.com/librerpi/rpi-open-firmware
> The work to free it is here:
> https://github.com/librerpi/rpi-open-firmware
Unfortunately, it's not even sufficient for headless systems (at least it didn't use to be). I did, however, successfully use it to run bare-metal code on the PI to make an ARM MMU demo for a university project in 2019.
But there do exist similar ARM computers that can run 100% free. A good place to start looking might be the FreedomBox supported hardware list:
https://wiki.debian.org/FreedomBox/Hardware
As to distro, I am writing this from RockPro64 (one of those ARM boards) with Devuan (only main repo enabled + Jxself's kernel). However, Trisquel 10 is going to support ARM, so you might prefer to choose that. Other ethical distros to consider are Parabola and GuixSD. They both work on ARM, but my personal experience is that Parabola is not stable enough for my needs and Guix has too little substitutes for ARM which leads to builds being performed on the machine and (in case of programs like browsers and GCC) eating all 4G of RAM :/
How is your experience with the RockPro? What's the maximum amount of ram you can have with it? Is the RockPro powerful enough to be a laptop replacement for you, or too underpowered?
I am generally happy with it, although there are a few issues (more on that below). Max RAM is 4GB. Actually, with its 6 ARM cores, it is the strongest libre SBC that I know of. If I knew of a better one, I'd probably choose that.
My (now retired) librebooted ThinkPad also has 4G RAM and both devices seem to be similarly capable with regard to my everyday tasks. While I'd like to have something more powerful (to be able to for example easily build GCC and web browsers from GUIX), I'm not complaining about what I have.
The laptop, of course, used to be more convenient (back when it was in a good state) because I could take it everywhere and it has built-in WiFi. With RockPro mere plugging of the keyboard, mouse, monitor, etc. takes a few minutes... But there are some benefits from it, too! If a need ever arises to use UART or SPI, I'll just need to open my RockPro's case to be able to use its GPIO pins - no more need for additional devices :)
My first actual issue was with the purchase. It is impossible to order from Pine without nonfree js (their site's own scripts may be free, but stripe.js payment processor they use isn't). The customer support was terrible in this case - when I asked about the nonfree js issue, I was not even understood. I ended up buying the RockPro from a reseller (who also rely on nonfree js for their online store but allowed me to make the order through email).
I eventually got the board + NAS case, power supply, PCIe SATA controller, fan and an SD card that I also ordered. Everything together was more than 1000PLN - for that much someone else could buy a way more powerful nonfree laptop which feels quite sad ;_;
I wanted to make my new device boot straight from an SSD, without an SD card in it. That led me to patching U-Boot source. It was nothing hard - just copying some changes over from one U-Boot branch to another one. I do realize, however, that some people would not be willing to do that and would have to live with default images from the net that boot the device from an SD card :/
After I succeeded, I noticed GRUB does not see the keyboard. In the end, this didn't seem to be a big issue, so I am just living with it :d
After spending quite a bit of time getting the board to boot without an SD card, I spent even more troubleshooting sound which did not work initially. It turned out I've been needlessly looking into the kernel and trying to understand that FDT stuff. As it turned out, changing some ALSA configuration in the OS was the actual thing needed to get audio output. Unfortunately, I didn't manage to get audio input work :c I instead got a USB audio adapter that I use now.
As to distros and web browsers, the choice is somewhat limited. Trisquel ARM port was not yet being talked about back then. Guix builds would run out of RAM. I don't remember how much swap I did set up for it, but my experience is that allowing builds to use too much swap makes them take ages, so it doesn't help anyway... Perhaps it is possible to work around this by somehow configuring Guix not to use all cores in the build? Idk.
I ended up using Devuan + Ungoogled Chromium (which provides Debian aarch64 .debs). Later on, I also set up a Parabola chroot with 2 Firefox-based browsers for testing my WebExtension (Parabola is otherwise not stable enough for me to use as a main driver).
Although it might look like I am saying many bad things about the platform, I am actually happy with it. With blobless U-Boot and no EC it is even more libre than ThinkPad ^^
It's helpful to know that the RockPro64 can be used with my kernel builds. This would seem to indicate that the hardware doesn't require out of tree patches, unlike Allwinner - https://linux-sunxi.org/Linux_mainlining_effort
Which reseller did you use?
You mentioned that you spent "quite a bit of time getting the board to boot without an SD card." Is that a reference only to the U-Boot modifications or was other work needed in addition? If additional things were needed, what were they? It seems that it would be helpful to share everything you needed to do somewhere for others to be able to replicate. Have you considered submitting your U-Boot changes to upstream U-Boot for inclusion?
It would also seem helpful for Guix to start cross-compiling packages for 64-bit ARM from the more powerful computers in their build farm so as to make it easier for people to use Guix on such computers.
> Which reseller did you use?
botland.com.pl
They were quite nice and even asked me if I could give examples of online stores that don't have this problem.
Even though it's not realistic to hope for them to redesign the entire website over 1 geek's problems with JS, it's nice to see they're not ignorant about it.
> Is that a reference only to the U-Boot modifications or was other work needed in addition?
I'd say modifying, configuring, making a boot script for, compiling *and* dd'ing U-Boot was the most time-consuming part. I also had to find out the right command to install GRUB on the EFI partition but I only did compilation from source in case of U-Boot.
> It seems that it would be helpful to share everything you needed to do somewhere for others to be able to replicate.
At some point I'll have to dig up those U-Boot sources anyway. Once time comes for that, I'll keep in mind to also make an article about the procedure. It might not be soon, though.
> Have you considered submitting your U-Boot changes to upstream U-Boot for inclusion?
I didn't, since I assumed whoever authored those changes would do that.
Also, now that I think about it, I can't seem to recall what exactly made me copy changes between branches. Perhaps I was not 100% right saying meddling with code was strictly necessary. Or perhaps it really was but now I just don't remember what my problem was...
> It would also seem helpful for Guix to start cross-compiling packages for 64-bit ARM from the more powerful computers in their build farm so as to make it easier for people to use Guix on such computers.
True. Anyway, my experience is from maybe 9 months ago. I cannot claim to know what is the current state of affairs
Makes me wonder if the Pinebook Pro could be u-booted. Same basic chip I think. Use an Atheros wifi dongle and it could be a fairly freedom respecting little laptop.
I believe Pinebook Pro uses blobless U-Boot by default. Coreboot/Libreboot should also be easy to port (for someone who knows this stuff, not myself), but I doubt anyone is interested in doing that.
And right, it has the same chip as RockPro. As to Atheros wifi, a dongle is one option. I was also thinking about using the unpopulated PCIe slot inside it for an Atheros card. Unfortunately:
1. PINE64 support was helpless in hinting me on whether it is possible (I lost patience trying to express my questions in a way they would understand what I meas...).
2. The reseller I used does not have Pinebook (Pro) in the offer.
Unfortunately, besides wifi there are 2 other nonfree parts in this laptop. Keyboard and touchpad controllers[1]. The first one, being ~35KB of hex code, should be relatively easy to RE (but instead of reconstructing the entire firmware source, PINE64 is patching the nonfree hex files and redistributing that...). The second one is similarly small, but I am not sure it is even known what instruction set it uses :/
There actually exists another libre ARM laptop without such keyboard issues (but with nonfree builtin wifi, so an Atheros dongle would still be needed). It's Olimex' TERES I[2]. Although it seems quite freedom-friendly, it has much weaker secs (quad-core Allwinner, 2G RAM). And even though Olimex support, when asked about its store's JS issue, cared enough to suggest some resellers, none of them had a freedom-respecting online store either.
[1] https://github.com/dragan-simic/pinebook-pro-keyboard-updater/tree/master/firmware
[2] https://www.olimex.com/Products/DIY-Laptop/KITS/TERES-A64-BLACK/open-source-hardware
>"Everything together was more than 1000PLN - for that much someone else could buy a way more powerful nonfree laptop which feels quite sad ;_;"
Maybe in Poland. In the US, that would be about $250, and there's nothing new that's good at that price. You could possibly get a decent used laptop for cheaper. I think the chief competitor would be Pine's own Pinebook at that price, and they are very rarely available.
You should write an extensive how-to with step-by-step instructions. Especially with Trisquel ARM coming available, this could be an extremely effective way to get a libre hardware setup. Many other Trisquel users could benefit greatly from all that you've learned.
I'll consider doing that (I am myself interested in trying out Trisquel ARM). Unfortunately, I can't make it my priority rn...
Wow I thought RP was pretty free. So those blobs are I imagine worse than Coreboot blobs, they could lead to actual exploits?
Yes. Although some Coreboot blobs like Intel ME can also lead to actual exploits.
It seems RPi is somewhat better because there is no cryptographic signature verification upon running the nonfree firmware (unlike in case of Intel ME or AMD PSP). This means it should be actually possible to develop a functional free replacement. Unfortunately, the efforts towards that stagnated years ago. So, right now I'd consider it just as bad
"the work to free it" - librerpi works just fine, but HDMI isn't working yet. you can get a VGA666 adapter and just use a VGA monitor (or VGA to HDMI adapter, if you wish). composite video output also works
HDMI support is pretty much the only thing missing on librerpi
NOTE: according to the author, rpi4 and newer isn't compatible yet in librerpi, but that could change in the future
> HDMI support is pretty much the only thing missing on librerpi
So you say USB and Ethernet are already there and it's just the README that hasn't been updated to reflect that? Good to know, I must try it out
There is a status page: https://librerpi.github.io/0-status.html
which seems to mirror this README: https://github.com/librerpi/lk-overlay
which was updated at some point today.
It says: "booting linux on pi2".
I thought there was once information how to run it with only free software.
Aka, the original raspberry pi.
Not sure about the other versions of raspberry pi though.
Maybe that info was either taken down, or is incomplete.
The RPI Open Firmware used to support PI 2 and 3. Not sure about other ones. PI 4 came out later and is not supported.
I figured the 4th one was not supported, I am actually surprised the 2nd and third are supported...
Thought it was only the first one. ;)
The FSF's information is out of date.
Yes, rpi can be booted fully libre up to rpi3 now. see:
HDMI not working, but VGA666 adapter works fine, if you want a video display. It's based on christina's earlier work.
I've seen others spout the same link from FSF all this week. I'm just going to contact them myself and tell them to update their information.
https://github.com/librerpi/rpi-open-firmware says
You can boot a very minimal version of Linux without the firmware and get it to work with UART and eMMC. Support for USB, DMA, and Ethernet are in the works, which will be sufficient for certain headless systems.
Is support of ethernet and USB still for the future?
clever doesn't seem good at documentation; better to ask him directly. more things work than is said on that repo at present
btw: there is a proper site now: https://librerpi.github.io/
vitali64 is helping clever build that site. hopefully some nice documnetation will be there soon
Very cool. I have a rpi 4 though so I can't use it.
- Inicie sesión o regístrese para enviar comentarios