rpi-open-firmware: open-source VPU side bootloader for Raspberry Pi
github.com
github.com
Also, what does this closed-off lower level hinder or prevent?
Broadcom. Much of the Raspberry pi lower level software has been closed since its inception as Broadcom will not publicly release specs.
Otherwise you're bound to get quite a bit of confusion from people who stumble across your work.
https://github.com/librerpi/rpi-open-firmware/blob/master/do...
I read this complaint about the RPi firmware so often on HN but I have never read how it actually is being used to stop RPi owners from doing what they want with their RPi. It is theoretically a problem but in practice what has actually happened. There has been an enormous amount of tinkering with RPis, people are using them for all sorts of things, and are able to build on the work of others. DRM is important but viewing copyrighted works is not the only use for a computer.
There is no perfect computer but the RPi for its OS-versatilty is arguably better than many others who fail miserably on that point.
There are certainly better dev boards from a spec standpoint, but if it cannot boot off external media and is only intended to run a single OS, I think it is missing some "freedoms" that the RPi provides.
However, the lack of open hardware for the Rpi means that it is not possible to replicate one at all. You basically can't make a Rpi-compatible board to suit your own needs.
It isn't the fault of the Rpi fundation, it's the sorry lack of openness in electronics hardware that is to blame. Chip manufacturers license lots of IP from each other and I doubt we'll ever see a truly open microprocessor/controller that would have all its features accessible without restriction.
We can hope that one day a RISC V implementation could be open, but then the GPU, controllers, etc would also need to be unencumbered.
Of course, it would be possible for chip manufacturers to allow this licensing -maybe to the detriment of the cost of the chip- but it would need to really be profitable for them to go through the 'hassle'.
After all, the die doesn't need to be open, we only need open access to all the functionalities of the chip.
> a China knockoff version of R-Pi camera board
> It's happened to the company I work with, they were marketing a cheap copy of our consumer electronics device under our brand name and even our customer service phone #.
the DRM in the camera, is to ensure only an authentic camera can function work the firmware based drivers, where all the support is offered
any un-supported camera must be driven from linux, and doesnt get full support from RPF, it must instead be supported by the community
https://mobile.twitter.com/EbenUpton/status/1088440503622909...
I've personally no problem with them protecting their investment this way.
my theory is that its only there to protect the non-rpi customers, now that the hmac-sha1 layer has been cracked
The bigger problem is that the pi is a solution waiting for a problem, and until it sees more purchase outside everyones desk drawer there is very little impetus to clean up the ARM/Microsoft dumpster fire that virtualizes a guest OS on the device. The only people pedaling it are FAANG, war-drumming furiously for kids to learn to code for the love of god so they can stop paying programmers a reasonable wage.
everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino (and as a benefit, learn some electrical theory as well.)
The VPU does not operate as a hypervisor for the OS running on the ARM cores. Its role is equivalent to a hybrid of platform management (like Intel ME/AMD PSP/POWER SBE) and video processing.
The dumpster fire here is entirely Broadcom's responsibility. Microsoft is only indirectly involved in the VPU firmware by way of acquiring ThreadX many years after the RPi project started. Had Microsoft actually been involved in the project, the RPi would likely meet the ARM SBSA and boot via standard UEFI+ACPI than its Broadcom weirdness.
I really don't think you can drive nearly a decade of all that just from people buying one and tossing it in a desk drawer. I think maybe your perception of the Pi's popularity and real-world usage doesn't reflect reality.
Since January 1 we have deployed around 600 new devices.
It's all about getting them deployed effortlessly for us, and treating them as first class citizens in terms of management. Most of the devices like this you can pivot to another hardware platform if you wanted or needed.
It gets much more complicated when you start doing video (especially if you try to containerize your application, but it is possible to do while remaining performant.)
I think about 60% of our use cases boil down to "put chromium on the screen" though.
There's then a bunch of other stuff you want to do like turning down log levels, and only logging super important stuff to the SD card, which will drastically improve the lifetime of your storage.
I'm thinking of going to NixOS. The filesystem will still be mutating, but in a much more atomic way. And if a host does die, I can easily rebuild an image from another host and pave over its whole sd card.
The most robust way would be the embedded approach of two static flash partitions (update each one alternately), a separate partition for config, and another for mutable state. Alas that's more development work than I want to do for personal projects.
Just to let you know, this is the approach that balenaOS takes. Applications are containerized and deployed using Docker. The OS uses read-only system partitions to store the engine, kernel, firmware, etc, and has an A/B partition layout for resiliency and atomic updates. Applications are downloaded and stored on a separate data partition, and mutable configs are stored on another. The partition layout and a lot of how the OS functions is also well documented and public. [0]
Additionally, the first ten devices are free and fully featured, and the same people that help create the product, including (but not limited to) engineers, monitor the forums to help users. I'm one of those engineers. :)
[0]: https://www.balena.io/docs/learn/more/masterclasses/host-os-...
Neat project, but this implies some sort of ongoing third party dependency/control that the devices would have, making it a non-starter for my use. The main reason I am using RPis as security cameras (for one use) is to avoid these type of security vulnerabilities.
There's OpenBalena for hosting your own device deployment and management server. https://www.balena.io/open/
It's self-hosted, which is a double-edged sword. You have to setup and maintain your own infrastructure, but you don't depend on a third party. For personal projects, it's probably the way to go.
Additionally, devices can be moved between servers easily. If you decide to use the cloud hosted platform in the future, or move devices from cloud hosted to self-hosted, it's easy to do.
Really? Maybe FAANG do peddle it for that reason, but I think it's an entirely reasonable class of device for those who want to give their kids a learning environment. As a 90s kid from a household who definitely could not afford computer(s) for me to just fuck up, I'm forever grateful to my dad for bringing home obsolete computer equipment from work for me to screw around with. While I'm not a professional programmer, that exposure is for sure the reason for my overall interest in technology, and the reason I consider myself a competent programmer. To me, this is priceless. If I ever have children, I'd want to give them that opportunity too. And while maybe I can affort more of a luxury in this department, I want everyone to have this access. The Pi and similar devices provide that! Fantastic!
While the Pi has a lot of problems with a lack of openness, its existence spawned a whole market for disposable computers that kids can run wild with. I think that's wonderful. It brought back the playful early days! If that means that FAANG will have an easier access to programmers in the future, so be it. It also helps equip people deal with the modern world. Great!
> everything the pi is touted to do, you can either accomplish with existing general computing
Yes you can. But not for the price of a few cups of coffee, and in a form factor that can be easily stowed away when not needed.
> or something like an arduino (and as a benefit, learn some electrical theory as well.)
That barrier is far higher. You know that. And how great isn't it that we have both? The low-barrier-to-entry Pi (and similar, more open, devices), and the somewhat higher barrier Arduino? The more, the merrier!
I find it easier to control SPI/i2c devices using Ruby or Rust on an rpi than to use C on an atmel chip.
Its also nice to be able to SSH in to it and deploy new code without having to plug it in to my computer.
Arduinos and Raspberry Pis have very different I/O and signalling characteristics. They serve different market segments.
That the rest of the world decided it was better to buy PIs instead of BeagleBoards, that is another matter.
Personally I am found of boards with bare metal language runtimes like Arduino, or alternative OSes like the ESP32, so whatever happens to Raspeberry is irrelevant.
So, he started buying one Rpi every month or so (I think with his own money). And got one of his undergrad students to spend a summer putting them together into a cluster.
Which is exactly one of the points of Rpi. Cheap compute power.
I don't fully agree, sure you could repurpose things like old routers to get a cheap headless linux board but you were often left with limited ram and flash (even for the time), limited IO and you had to jump though hoops to even get things like DD-WRT/OpenWRT on a router (The easier to flash routers with more flash/ram/io often demanded a premuim). The martket was ripe for a cheap linux SMB which the hardest part of flashing the OS for your avg Windows user being having to use Win32DiskImager.
When the Pi was first released us geeks were not its target market either. They were aiming to improve the accessability of affordable computers kids could program on. The founders had grew up in a world where every home computer started into a programming language interpreter (such as the BASIC prompt you got when powering up your Spectrum) and they were running in to college kids(16-18 year old education) wanting to do programming but had little to no programming experience. So they wanted to create something cheap so it was not the end of the world if the kid killed it, Something they could plug into their bedroom TV's and start to code.
From the Gen History of the RPI on elinux wiki (there is a full write up of the history some where on the RPI site, but searching their archives suck :-P) - https://elinux.org/RPi_General_History
> From a situation in the 1990s where most of the kids applying were coming to interview as experienced hobbyist programmers, the landscape in the 2000s was very different; a typical applicant might only have done a little web design.
> Something had changed the way kids were interacting with computers. A number of problems were identified: the colonisation of the ICT curriculum with lessons on using Word and Excel, or writing webpages; the end of the dot-com boom; and the rise of the home PC and games console to replace the Amigas, BBC Micros, Spectrum ZX and Commodore 64 machines that people of an earlier generation learned to program on.
I can back up the ICT curriculum claim. When I was in secondary school most people in my higher ICT class GCSE coursework was based around using spreadsheets (and the vast number of computers in the school were Acorn Achimedes so they were not even using Excel, I was the outsider who wanted to program something). Thankfully the ICT curriculum has improved since.
It wasn't until the Pi was announced, we saw it and thought Dam, a cheap linux SBC and we eat up their inital production run.
> everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino.
At the time of the Pi's launch having a networked arduino was a pain in the ass and expensive (I know because I was using them) and existing general computing was either too expensive, hard to get started with and as I said above often offered limited IO/Flash/Ram (I know the first Pi only had 256/512meg of ram, but compared to the other inexpensive options of the time that was a fuck ton).
The Pi launched at a $35 price point (Ok you needed a display/keyboard/mouse but SD Card/keyboard/mouse were also cheap and many kids already had a TV compatible with the Pi (or another computer) which did bump the inital setup cost a bit) where an offical arduino Uno/Original was also around the $35 price point back then, heck the offical Uno is still selling for €20 today. So for only a little more you could get something that would be able to program on the device you were wanting to program and you were not tying up the family computer (The lockdown has shown that many kids in a household are having to share computers to do remote learning).
Sure us geeks might have a few Pi's lying around in our desks as toys but they are still used for meaningful projects. I these them for Octoprint, Home Assisant, a departure board (https://ukdepartureboards.co.uk/) and a systems display monitor. I also keep one around for basically for usbprog alone without the need of having to use usb as I can use the onboard IO.
So while you see the Pi as a solution waiting for a problem, I saw it more as a solution for problems we didn't realise we had until the solution became affordable to the point it was considered throwaway / a solution that lowered the cost of entry to fixing problems that we didn't want to throw more expensive hardware onto.
Wait are we talking about the arduino uno/nano/pro? Because those are far slower then the raspi zero w, with a magnitude less memory.
or you can do baremetal VPU and skip the firmware entirely 500mhz dual-core VPU 128kb of L2 cache for both code and data if you want dram, you need the ram drivers (only present for the VC4 line, pi0-pi3) you could optionally rely on 1 closed stage to bring ram up, and do baremetal VPU from the start(4).elf to avoid the dram init sequence
and if you build upon rpi-open-firmware, you could get all 6 cores baremetal, running custom code
> everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino (and as a benefit, learn some electrical theory as well.)
This may be true, but was it true when the Pi was released?
For me, the Pi sits in an uncomfortable position where it's not really the best at anything it does. It's promoted at being for education, but arguably there are better solutions, and almost certainly the overwhelming majority of Pis purchased are by individuals and businesses, so this is a kind of misleading advertising.
They included a chip for media decoding (including 4K HEVC), which is a dead giveaway that much of the draw isn't the education market, but it's shockingly limited. For instance, despite support for HDR being advertised with the release of the Pi 4, as far as I know it still doesn't work at all. High bitrate media often fails to decode in real time. So if it's a HTPC type use, you'd be much better served by an Nvidia Shield or something like that.
The emphasis on netboot support suggests that they envision enterprise use cases, but it took them forever after the Pi was released to have this working fully.
They include hardware design files that suggest it's designed for the hobbyist hardware market, but yet it's not truly open hardware at all, and in fact they've been drifting further away from that ideal over time.
If anything, the niche is probably tinkering with hardware (given the number of add-on products), without having to jump in all the way with an arduino, but how many people who buy a Pi actually end up doing any of that? In the end, I suspect a lot of people bought them for the novelty of a $35 Linux computer.
I say all that, but naturally I own 3 of them myself. :-)
Can you provide a source where "open hardware" was touted as an ideal for the Raspberry Pi Foundation.
It's a cheap education platform built on Broadcom hardware. I don't think there was ever much chance the Broadcom h/w was going to be open. And that's maybe sad for some people but it won't stop the Foundation achieving its actual goals. Open hardware enthusiasts can vote with their wallet, for all the impact it'll have. It must be one of the best selling novelty products of all time.
Indeed it is. As I mentioned in my comment, I own three of these novelty products. My post wasn't really intended as a knock of the RPI foundation, despite the fact that it's been read that way.
> Can you provide a source where "open hardware" was touted as an ideal for the Raspberry Pi Foundation.
I never presented it as an ideal for the RPI foundation. It's the ideal for hardware tinkerers, and the fact that RPI isn't really friendly to that market undermines the idea that hardware tinkering is the Pi's niche. That's the overall point of my comment: the Raspberry Pi doesn't really have a niche.
That said, they did brag on their blog back in 2012 that "the BCM2835 used in the Raspberry Pi is the first ARM-based multimedia SoC with fully-functional, vendor-provided (as opposed to partial, reverse engineered) fully open-source drivers, and that Broadcom is the first vendor to open their mobile GPU drivers up in this way." I think it's fair to say that this seemed like more of a priority in the past, and many of the geeky people who initially jumped on the Raspberry train were hoping to see it move more in that direction. (I was one of them: I was spamming the refresh button when the Pi was released to try to get one.)
There's also, I suspect, a bit of frustration from the open source hardware community towards RPI for capitalizing / cannibalizing that market. For example, this Ars article [1] refers to "the open source nature of Raspberry Pi (even the schematics are online!)", which we all know is untrue, of course.
Anyway, I guess I was just airing a few frustrations here. The Raspberry Pi is fun to play with, and the community is great (if you stay far away from the official forums). It's just that it's a bit of a jack of all trades, and isn't really ideal for any of the purposes I'd think to use it for.
[1] https://arstechnica.com/gadgets/2019/07/raspberry-pi-4-uses-...