
Blobless Linux on Raspberry Pi - christina_b
http://crna.cc/b/11
======
rektide
Sadists.

The Pi's choice of picking one of the most egregiously unsupported and anti-
open source CPU cores was absurd. The people doing the absurdly hard work of
taking up the slack that the Raspberry Pi Foundation created from this pick
AND the RPI Foundations complete unconcern about the situation and open source
at large is to me beyond belief. For a thing that purported to be an
educational platform, this situation ought never have happened. At the time at
least the low price of the decrepit old core was a good useful competitive
advantage, I can acknowledge that, but it remains revolting to me that the #1
cheap Linux system is the spawn of some ancient horror Broadcom dropped with
ghastly documentation and unsupportable drivers.

But congratulations. For some reason people have kept the march of progress
going on this beast. The RPI3 is rated for 24GFLOPS which is 1 more than a PS3
cell processor. It's been an unbelievable amount of work to get anywhere near
unlocking the unique video core to get anywhere near there, but people keep
pushing, so good on them. I still think it's a mistake for volunteers to work
so ridiculously hard to build drivers for a core whose maker has contributed
so little, spent so long releasing even basic docs, and who implemented so
many really weird abnormal subsystems, especially when it was originally atop
such an ancient core.

But I am sincerely impressed and it has been amazing work slowly wrangling
this abomination into order.

~~~
rtpg
Are there SoCs at a comparable price/speed that are more open?

I can understand being disappointed at this choice, but if no other options
exist, then either you're sacrificing price or performance to get more open-
ness. My impression has been that this has mostly been about giving a cheap,
easy to use software platform, and they've succeeded at that because of the
price/performance balance.

That was then, though. Now that this platform is more established, I imagine
they can apply _some_ pressure to get things like the video core to be more
open.

~~~
makomk
The Orange Pi PC is $15, roughly comparable to the Pi 3 performance wise, and
doesn't require any of this hilarity to boot with open source code.

~~~
bostand
Not sure why this is downvoted.

The OPi chip maybe for not cone from a "respected" western company but it is
in all regards a more open chip.

While the datasheet is almost as thin as that of Broadcom it is mostly because
they use _standard_ components where the full datasheet is available from arm.

There are also far less magic blobs and crazy boot gymnastics in there.

~~~
justabystander
> The OPi chip maybe for not cone from a "respected" western company

This isn't some petty nationalist agenda like you're claiming. AllWinner's
lack of respect stems from their pathological refusal to cooperate with the
Linux kernel and their many GPL license violations. They throw out new
hardware cores very frequently, but the hardware is impossible to keep updated
(and is thus insecure and hard to use) because AllWinner won't release
hardware documentation or source code. I've got a few AllWinner devices, and
they're poorly suited as general-purpose computing devices if you need both
graphics and a recent kernel. They collect dust with my other nigh-unusable
hardware.

Most of the AllWinner support in the kernel has been added despite the
company's deplorable position, and the major community repository of
information is highly critical of them ([http://linux-
sunxi.org/Allwinner](http://linux-sunxi.org/Allwinner)). It's sad for a
company when your major users and developers think so poorly of you.

Broadcom also acted like this for many years, and was similarly hated. The
Raspberry Pi has been a bit of a paradigm shift in corporate policy which has
earned them a lot more respect. And it's still been a rather slow journey.

If AllWinner wants respect, they can earn it by making their hardware easy to
use for the hobbyist and non-commercial developers they're courting with all
the cheap knockoffs they're releasing (e.g. Orange Pi, Banana Pi, etc which
try and profit off brand name similarity). Blaming it on Western propaganda is
just pitiful self-deception.

~~~
bostand
> This isn't some petty nationalist agenda like you're claiming

That's not what I am saying. I'm saying Broadcom is getting a pass because
they are a household name.

------
milesf
I confess. I'm completely ignorant about the Raspberry Pi even though I have a
3rd generation I bought recently. So I don't really understand what the
significance of "Blobless Linux" is.

Is the Raspberry Pi an open-source software and hardware platform? If not,
what is? What should I have bought if not the Pi3?

~~~
superflyguy
There is no sane reason which would explain why you should not have bought a
Pi. Open or not it would not make any difference to more than a small room
full of people. A bunch of people spent years designing hardware and
negotiating with people to get the Pi built at a low cost and it's become the
best selling UK computer ever with over 10,000,000 sales. It's succeeded at
what it was supposed to do; provide an educational platform for kids.

~~~
paulmd
It's really doubtful that more than a tiny fraction of RPi sales have gone to
kids. Be honest here, whatever the RPi Foundation's marketing, the
overwhelming majority have gone to hobbyists.

The RPi is uniquely unsuited to an educational environment anyway. The SD
cards are unreliable, especially in combination with the RPi's poor power
filtering and the cheapo phone adapters it's usually paired with. Anyone who
has used a RPi has had to deal with filesystem corruption and SD card
failures, intermittent USB bus brownouts, etc, and I can only imagine the
nightmare of having to maintain a lab with 50 of the things. You can't PXE
boot them (let alone remote-manage them) because they have no BIOS, just a
blob on a physical card that needs to be swapped out.

The Pi should have had eMMC day one, and shipped with a proper power adapter
and better power filtering. But much like their choice of Broadcom SoCs - they
made a _political_ decision that they were going to market primarily around
the $35 price point, and so they cheaped out on $5-10 worth of hardware and
ended up with a device that was entirely unsuitable for their stated purpose.

And the terrible thing is - the PC is not the sole component in the system
anyway. The Pi still needs a case, a a monitor, keyboard, switches, etc, and
if you are trying to stand up a lab for the first time it's not like you have
50 monitors or keyboards laying around for free, you need to buy those. So you
are looking at more like $150 per system anyway, and the $10 you save on
cheaping out on the hardware becomes a meaningless fraction of the total cost.
Just buy the right hardware the first time. An ECS Liva is only like $75
anyway, it comes with a case, onboard eMMC, AC adapter, and wifi, you've made
up the difference in cost in accessories included in the box.

There were many other terrible design decisions as well - such as the choice
of USB as a system bus, which is again entirely unsuitable, especially when
you are running on a low-power processor where running the USB bus full-tilt
eats a significant fraction of your CPU cycles. It's like that shitty Mac
Performa x200 road-apple design with the split half-width left-hand/right-hand
busses which couldn't talk to each other, it eats up all your cycles by just
using your disk or network. Even if the processor on other boards is no faster
in synthetic benchmarks - they have a proper system architecture with SATA and
often USB 3.0 and gigabit ethernet that makes an enormous difference in real-
world performance.

[http://lowendmac.com/2014/power-mac-and-
performa-x200-road-a...](http://lowendmac.com/2014/power-mac-and-
performa-x200-road-apples/)

Furthermore - the Pi was plagued by driver problems with its USB stack for
years. It would randomly drop USB frames when operated at USB 2.0 speeds, and
it took upwards of 2 years after launch for the Pi foundation to get around to
pushing a fix (again, because they chose a processor for which they could not
release documentation, and they did not employ enough staff to actually fix
their issues). How on earth are you supposed to do education on it when they
can't even get their system bus to be stable?

[https://www.raspberrypi.org/forums/viewtopic.php?t=5249](https://www.raspberrypi.org/forums/viewtopic.php?t=5249)

[https://github.com/raspberrypi/firmware/issues/19](https://github.com/raspberrypi/firmware/issues/19)

[https://github.com/raspberrypi/firmware/issues/9](https://github.com/raspberrypi/firmware/issues/9)

You know what I would do if I was running an actual lab? ECS Liva Xs, or other
cheapo x86 PCs running a standard stack. Or go down to your university surplus
store and pick up as many generic Dell boxes as you need for $50 apiece, out
the door, ready to work. The Pi is good for embedded hobbyist work (the i2c
interface is very powerful), but it totally fails as a machine for teaching
programming compared to Ye Olde White Box.

I tried to run a pair of RPis as my fileservers for about a year and a half,
and I finally just gave up and sold them. They aren't good for the "mini Linux
PC" application at all, compared to properly-designed hardware that you can
buy for only a little bit more money (or sometimes even less money, especially
when you work out the total system cost).

(note: Pi3s can _finally_ PXE boot without a SD card, which is like the bare
minimum requirement for running an educational PC lab without going insane)

~~~
technion

        SD card failures
    

I'd love someone knowledgeable to explain why this happens. According to
general opinion on the RPi forums, it's because SD card manufacturers cheap
out all the time.

I'd have something like a dozen SD cards running things like cameras over the
years, and probably a hundred booting ESXi servers. And I've never seen a
failure.

Across three RPis, I've bought about seven SD cards, and from everything RPi
users tell me, that's a totally normal failure rate.

Edit: In regards to cheap whiteboxes, no such options allow access to GPIO
ports. I've learn plenty of interesting things about soldering circuits by
having these, without considering the Pi a PC learning tool.

~~~
paulmd
> Across three RPis, I've bought about seven SD cards, and from everything RPi
> users tell me, that's a totally normal failure rate.

Sounds about right. I went through maybe 4-6 cards on 2 Raspberry Pis in a
year and a half.

> I'd love someone knowledgeable to explain why this happens. According to
> general opinion on the RPi forums, it's because SD card manufacturers cheap
> out all the time

SD cards are basically uniquely ill-suited to be used in a Raspberry Pi.

First off, cheap SD cards have no wear levelling. The flash controllers are
super primitive. They are designed to be written sequentially until full, and
erased, like you would use a camera. A regular Linux operating system is not
designed to moderate its writes, it will happily do all kinds of work and
logging on /var and other places, doing tons of heavy random writes that put
tons of wear on the card (write amplification/etc), and there is no levelling
taking place. The flash cells just burn out.

Real mobile OSs are much smarter about what they write to flash, and they have
eMMC that usually has at least a slightly smarter controller optimized for
more random-ish loads, and/or is totally under the CPU's control with a
filesystem designed to work with flash.

Next, flash doesn't like to be powered off during erases or writes. In some
cases it can actually corrupt operations that were _successfully completed_.
The flash cells do not get as much charge as they should and can decay
prematurely.

Nor does flash like operating under questionable power conditions either. The
flash can _think_ it's successfully completed the operation, the processor
will keep on trucking, but if the voltage drooped too much, the write doesn't
persist. In some cases, this can cause the flash to get trapped in a "bricked"
state that needs a hard reset to clear properly (which can't be done with a SD
card).

[http://superuser.com/questions/290060/can-flash-memory-be-
ph...](http://superuser.com/questions/290060/can-flash-memory-be-physically-
damaged-if-power-is-interrupted-while-writing)

The Pi also has no/very little power filtering. Your phone doesn't _ever_ run
off the charger. It uses the adapter to charge the battery and/or feed the
regulator circuit, the key being there is a regulator circuit here. The Pi
does not have one.

In short - the Pi is an absolute worst case in terms of power. Your average
camera or phone has a battery, so the power is clean, full-on power faults are
quite uncommon, and the device can monitor voltage and stop doing writes
before things get critical. Not only is it really, really easy to accidentally
or purposefully unplug the Pi, or flip the power strip off, but the shit-tier
phone chargers that get used with it have terrible power filtering and tend to
have wildly insufficient power delivery capacity. Under load, the voltage
droops and the noise on the power line gets pretty intense.

With the first-gen Pis, there was an additional physical issue with the SD
cards. The cards are just made of plastic, they are meant to go into a slot in
a camera or phone that physically supports them, they are not intended to just
hang off into space. The Pi does actually get fairly warm, especially if you
have it in a case, and hot plastic warps. The card loses contact half-way
through a write and there goes your file system.

[http://likemagicappears.com/2014/03/11/sd_card_issues/](http://likemagicappears.com/2014/03/11/sd_card_issues/)

[https://www.raspberrypi.org/forums/viewtopic.php?t=39843&p=3...](https://www.raspberrypi.org/forums/viewtopic.php?t=39843&p=327342)

[https://bigdanzblog.wordpress.com/2015/01/27/raspberry-pi-
fa...](https://bigdanzblog.wordpress.com/2015/01/27/raspberry-pi-fails-to-
boot-red-light-only-due-to-warped-sd-card/)

Adding a "UPS" board that can command a soft-poweroff, a decent microSD card
(Samsung EVO are reputedly the most reliable on a Pi), and a "low-profile"
microSD adapter that doesn't hang off into space quite as much reportedly make
a pretty big difference in reliability, as does using a purpose-built adapter
from a reputable vendor like Adafruit or something. Not running it in a case
probably helps too.

Again though, once you spend the money to fix the flaws, you could just buy
something that just includes what you need to boot up right in the box.

I really can't emphasize enough how much all of this is actually the result of
poor design. If the Pi Foundation would have chucked a 2 GB eMMC chip on there
and added a barrel connector and a decent power supply, these issues would be
essentially eliminated. And IMO the issues are pretty much show-stoppers for
any chance of reliable operation.

> In regards to cheap whiteboxes, no such options allow access to GPIO ports.
> I've learn plenty of interesting things about soldering circuits by having
> these, without considering the Pi a PC learning tool.

That's definitely true, but you can also buy a Bus Pirate that will be capable
of adapting most simple embedded units to any PC.

You really only need the Pi's GPIOs when you are doing something that involves
really high throughput or really low latency. The examples I've heard are
video streams and using a GPS board as a reference for an NTP server - they
exist, but for your every day "talk SPI/I2C to a sensor" or "count freqency
counts from a sensor" the Bus Pirate does very well.

~~~
foldr
>it uses the adapter to charge the battery and/or feed the regulator circuit,
the key being there is a regulator circuit here. The Pi does not have one.

Wait, what? Of course the RPi has voltage regulators. Do you think the
Broadcom chip runs at 5V? There's a LP2980-N and NCP1117 shown in the
schematic.

~~~
mschuster91
Yeah, and microSD cards run at 3V3. The problem is that a phone usually has
better filtering capacitors, which the Pi lacks and thus any noise from the
power line directly goes from 5V down to 3V3. Oh, and people usually buy the
2-5$ range of power adaptors from Amazon, I'm amazed that no one has managed
to burn down their house with this stuff.

~~~
foldr
>Yeah, and microSD cards run at 3V3.

Err, yes. Hence the LDO regulators.

>The problem is that a phone usually has better filtering capacitors, which
the Pi lacks and thus any noise from the power line directly goes from 5V down
to 3V3.

The RPi has filtering capacitors. In general filtering capacitors are regular
cheap X5R or X7R caps. They don't need to be anything special. Look at any LDO
regulator datasheet.

> Oh, and people usually buy the 2-5$ range of power adaptors from Amazon

What does that have to do with the designers of the RPi? They don't have any
control over which power supplies people buy.

~~~
paulmd
> The RPi has filtering capacitors

It's hard to specifically assign blame to noise since it's such a personal and
transient problem, but as a general statement power quality is one of the
biggest problems with the Raspberry Pi and I strongly suspect that the Pi is
not really equipped to tolerate 270mv swings as are seen on cheap USB
adapters. Phones deal with this quite fine, but the Pi has less filtering and
if anything is doing things that are much more sensitive to noise due to its
OS.

[http://www.crazy-audio.com/2013/09/raspberry-pi-power-
supply...](http://www.crazy-audio.com/2013/09/raspberry-pi-power-supply-noise-
on-the-5v-rails/)

> What does that have to do with the designers of the RPi? They don't have any
> control over which power supplies people buy.

 _You shouldn 't have to buy a power supply at all_. The norm is that when you
buy a piece of hardware it comes with an appropriate power supply. When I buy
a $15 gigabit-ethernet switch from D-Link, it comes with a power adapter.

Again, the Pi Foundation wanted to hit their price target so they could put "A
computer for $35!!!" in their advertising, so they cheaped out on something
that probably costs $2 when you are buying a million of them. At quantity 500,
you are already down to $4 when sourcing them from Mouser.

They also pretty much openly encouraged you to use whatever crappy USB charger
you had lying around. The reality is most knockoff chargers are total crap,
their current ratings are dramatically overinflated, and they certainly won't
be delivering _clean_ power anywhere near their current ratings, which again
amplifies the problems with the Pi's lack of filtering.

All of this has been well-known for ages. Check out Ken Shirriff's excellent
series of teardowns on cheapo USB chargers and his comparison to a genuine
Apple charger. This was not news even at the time.

[http://www.righto.com/2012/03/inside-cheap-phone-charger-
and...](http://www.righto.com/2012/03/inside-cheap-phone-charger-and-why-
you.html)

[http://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-
ap...](http://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-
is.html)

[http://www.righto.com/2012/05/apple-iphone-charger-
teardown-...](http://www.righto.com/2012/05/apple-iphone-charger-teardown-
quality.html)

~~~
foldr
>but as a general statement power quality is one of the biggest problems with
the Raspberry Pi and I strongly suspect that the Pi is not really equipped to
tolerate 270mv swings as are seen on cheap USB adapters. Phones deal with this
quite fine, but the Pi has less filtering

What is your source for all these statements? How do the voltage regulation
circuits in phones differ? If anything the phones ought to have more noise,
since they're using switching regulators rather than linear regulators.

>Again, the Pi Foundation wanted to hit their price target

Yes, you got it. There's 1001 improvements that could be made to the RPi. If
you made all of those improvements, it would not be affordable.

>They also pretty much openly encouraged you to use whatever crappy USB
charger you had lying around.

They say to use a charger that's rated for at least 2.5A. That does not
include most crappy phone chargers. They also sell an official RPi power
supply which anyone is free to buy if they're concerned about this issue.

~~~
paulmd
> What is your source for all these statements? How do the voltage regulation
> circuits in phones differ? If anything the phones ought to have more noise,
> since they're using switching regulators rather than linear regulators.

It's pretty self-evident that the circuits are different. The phone normally
operates from its battery, the amount of ripple present from a battery is
zero. I'm not sure what source exactly you want me to provide to cite the fact
that a phone has a battery, anyone knows that.

Also, typically a phone will use a buck converter (or perhaps buck-boost) to
drop its voltage, rather than a switching regulator.

Some phones do have problems operating while plugged into crappy adapters (the
power does pass through), the most common being that the touchscreens stop
working.

> Yes, you got it. There's 1001 improvements that could be made to the RPi. If
> you made all of those improvements, it would not be affordable.

And yet any network switch you buy off the shelf for $15 comes with a workable
power supply.

But yes, that is my point, the parent was asking for reasons why you wouldn't
buy a Raspberry Pi, and the fact that it's got a shitty power system that
tends to result in SD card corrupt is a major reason you should not purchase a
Pi and prefer a properly engineered product. I think we're in agreement.

The Pi Foundation themselves cite the cost of the switching-mode power
supplies on their alpha boards as adding $2 to the bill-of-materials cost,
leading to their decision to remove them from production boards. Terrible
anti-consumer move, how much have you spent on burned-out SD cards so that
they could hit their $35 price point?

[https://www.raspberrypi.org/blog/power-supply-confirmed-
as-5...](https://www.raspberrypi.org/blog/power-supply-confirmed-as-5v-micro-
usb/)

Anyway, any random piece of electronics comes with a power supply. A $15
network switch comes with a power supply, or a drive enclosure (those are even
quite beefy ones!). Competing products like the ECS Liva come with their own
power supplies too, and the total cost of the system is the same as the Pi.

> They say to use a charger that's rated for at least 2.5A. That does not
> include most crappy phone chargers.

They've backpedaled on this since the launch after problems started appearing.
The official spec at launch was that the Pi pulled 700ma for Model B and 300ma
for Model A, and pretty much any random charger meets that spec. Anyway, most
chargers are significantly overstating the amount of _clean_ power they can
provide, because they expect the phone to be using them for charging, not for
operating.

You can see the original statement from the Pi Foundation here:
[https://www.raspberrypi.org/blog/power-supply-confirmed-
as-5...](https://www.raspberrypi.org/blog/power-supply-confirmed-as-5v-micro-
usb/)

And then after launch they started realizing they had problems:
[https://www.raspberrypi.org/forums/viewtopic.php?f=2&t=5420](https://www.raspberrypi.org/forums/viewtopic.php?f=2&t=5420)

> I'll be testing PSUs soon as well, although maybe not as thoroughly. It
> certainly seems that the Foundation may have been wrong in assuming that USB
> chargers produce the current they say they do and that all USB cables are
> reasonably constructed.

The fact that $1.99 adapters you get off eBay were built like shit wasn't a
shocker to anyone, even at the time. That's a hilariously naieve assumption
for them to make.

> They also sell an official RPi power supply which anyone is free to buy if
> they're concerned about this issue.

This only launched within the last year. Good on them for finally doing it,
but it should be included with the device, and should have been included from
day 1.

[http://www.electronicspecifier.com/power/stontronics-
manufac...](http://www.electronicspecifier.com/power/stontronics-manufactures-
dedicated-power-supply-for-raspberry-pi-3)

~~~
foldr
> The phone normally operates from its battery, the amount of ripple present
> from a battery is zero. I'm not sure what source exactly you want me to
> provide to cite the fact that a phone has a battery, anyone knows that.

I was asking for a cite on the claim that the phone has a better voltage
regulation circuit. AFAIK both the RPi and phones are using jellybean
switching regulator ICs to convert and regulate the voltage. Even an expensive
switching regulator is going to have a hard time competing with the PI's
linear regulators in terms of output noise. (The Pi, of course, can afford to
waste a bit of power, whereas the phone needs to juice all of the battery
capacity.)

>Also, typically a phone will use a buck converter (or perhaps buck-boost) to
drop its voltage, rather than a switching regulator.

Erm, a buck converter is a kind of switching regulator (one that drops rather
than increases the voltage). See for example the buck/boost/etc. options under
'Topology' in Mouser's switching regulator category, or the Wikipedia
definition:

[http://www.mouser.co.uk/search/refine.aspx?N=10368713](http://www.mouser.co.uk/search/refine.aspx?N=10368713)

[https://en.wikipedia.org/wiki/Buck_converter](https://en.wikipedia.org/wiki/Buck_converter)

>Some phones do have problems operating while plugged into crappy adapters
(the power does pass through), the most common being that the touchscreens
stop working.

This undermines your point that phones somehow have better voltage regulation
circuitry than the RPi. Many that will run directly off USB power have exactly
the same issues.

>Good on them for finally doing it, but it should be included with the device,
and should have been included from day 1.

But why are you _still_ advising people not to buy the Pi because of power
supply issues? I bought my first Pi a few months ago and made sure to get an
adequate power supply (not difficult). I haven't had any problems.

------
owenversteeg
Stupid question: does this now mean that you can boot a RPi to Linux with zero
blobs involved?

Additional question: does anyone have a list of devices that you can boot
without any blobs involved? E.x. if someone wants to go "full Stallman" what
are the options to do that?

------
znpy
I wish the RPi could net-boot without an SD card inside...

~~~
mentose
I think you can: [https://www.raspberrypi.org/blog/pi-3-booting-part-ii-
ethern...](https://www.raspberrypi.org/blog/pi-3-booting-part-ii-ethernet-all-
the-awesome/)

------
BuuQu9hu
It would be nice to add RPi support to the u-boot bootloader.

~~~
christina_b
We have considered it, however, because there's still a need for a firmware,
the first stage bootloader and the firmware itself are using a common driver
framework, it just makes things easier. Besides, the firmware will later run
an RTOS (for example LittleKernel) and Uboot doesn't provide RTOS-like
services.

~~~
floatboth
Would be nice to chainload U-Boot from your firmware/loader though, because
FreeBSD boots via U-Boot.

------
BlytheSchuma
Any news on the Amber Chip? Hopefully it'll ready for prime time on the
Raspberry Pi some time this century.

