7 ms·
Wow, looking at the history of the ARM generation the original versions of the Raspberry Pi uses, it’s hard to believe it’s so old! When the Raspberry Pi B+ was
by stephen_g 3y ago
Wow, looking at the history of the ARM generation the original versions of the Raspberry Pi uses, it’s hard to believe it’s so old! When the Raspberry Pi B+ was released (2014), the ARM core it used was already 11 years old (using the ARM1176 core from 2003). So it’s not unbelievable that you might need to start supplying an arch flag to produce compatible code building on a different platform (like the newer Raspberry Pi the article says they first built on).
As others have said, it does seem like a misconfiguration (perhaps in the defaults shipped by their distribution) that the correct arch is not picked by default when building on the Raspberry Pi B+ itself.
- yjftsjthsd-h 3y ago> When the Raspberry Pi B+ was released (2014), the ARM core it used was already 11 years old (using the ARM1176 core from 2003). IIRC the original Pi used leftover chips from a TV box, which is the kind of product that IME never ships more compute than they have to, for price reasons.
- einr 3y agoTV boxes IME usually ship with less compute than they have to [in order to provide reasonable UX] ;)
- yjftsjthsd-h 3y agoEh, the result may suck, but I don't think it's usually a hardware problem.
- adhesive_wombat 3y agoAnything to satisfy whichever law it is that says "lagginess remains constant".
- actionfromafar 3y ago"Huh, this CPU is kind of snappy running native code now. What should we do?" "Let's move application development to Python then, I suppose." "Thanks, that fixed it." Probably what happened in my 55" smart TV dev team.
- xnzakg 3y agoI would bet that instead of python it's JavaScript and a webapp pretending to be a native application.
- bitwize 3y agoDefinitely happened on the OLPC. What's worse, they made a "throbber" effect by string substituting a different color into an SVG, and then reparsing the SVG, for each color it fades through. That's the kind of coding quality the OLPC project had. That's why it failed, and it probably also factored into why they disabled the view source button.
- adhesive_wombat 3y agoIn modern GTK you also have to string-substitute or otherwise construct CSS, pass in as a string and have it reparsed to change element styles. But at least it is native!
- actionfromafar 3y ago
- jeffparsons 3y agoAnd kiosks, like the McDonald's ordering kiosks. I wouldn't be surprised if they spend more on installation than on building the device itself!
- b112 3y agoI haven't interacted with these much, but in all such things, eg TVs, others, I get peeved at the thought process. Typical dev time for a new UI from scratch is years. And price drop on parts and their availability will be different down the road. I wonder of people are running all tests, DEV work in KVM or other emulation stacks for DEV, but then not accurately locking clock rate, and limiting RAM during testing. Because I'd quit as a DEV, if I saw the fruits of my labours, turning out as complete crap and a laughing stock. I wouldn't want my name associated with laggy, crashy, frustrating junk. I'd want no part of it, no part of everyone hating my work. And further, how the hell does laggy crap get past the CTO? CEO? I've seen lag just trying to change the channel! I mean, outside of caring about customers every buying anything with your name again, there's the laughing stock factor. "Hi, I'm CEO of crappy corp" "Wow, you must be really proud of yourself, dumbass" I just don't get it. CEO bonuses aside, saving 10 cents on a part, over 10M units is still only $1M extra profit, and the CEO might see a tiny fraction, as a bonus, of that extra profit. I don't grok.
- mschuster91 3y ago> I mean, outside of caring about customers every buying anything with your name again, there's the laughing stock factor. The problem is, there is no competition, everyone sucks and only builds to "it works somewhat" quality. Hence, no incentive for anyone to invest more money.
- LtWorf 3y agoMost developers suck.
- rowanG077 3y agoEven if it were true that is not the problem. Even sucky devs can crank out code that runs reasonably fast. It just depends on whether the company sees it as a required feature.
- Narishma 3y agoNo, they're just bad at software.
- RantyDave 3y agoPhones, not TV's, but that's pretty much the idea. Even better, the ARM core was tacked on as a sort of "dammit, I supposed we'll have to run applications" kinda thing and isn't even necessarily initialised during boot. Raspberry Pi's actually boot on a really fringe processor called a VideoCore. Arguably the GPU bootstraps the CPU, which makes my brain hurt.
- phendrenad2 3y agoI guess technically a CPU core within the GPU ASIC block loads code into the main CPU. What a weird design. Feels like the kinda of things that Wozniak would come up with to shave cost from the Apple Macintosh.
- codedokode 3y agoCould it be a protection of IP? This way program on main CPU cannot access initialization code and the user cannot learn how to do it.
- dezgeg 3y agoDoesn't really help when the VC firmware is loaded from the SD card anyways
- djmips 3y agoAFAIK Woz only really worked on Apple II and Apple /// but his Apple II disk drive controller lived on and was included in the Mac.
- Findecanor 3y agoWoz also designed Apple Desktop Bus for keyboards and mice. First used on the Apple IIGS, and then on Macs from Macintosh II onwards up until it was replaced by USB.
- namibj 3y agoEhhh, video core is basically just a (iirc multi-core/-thread) vector processor. Funnily enough, this also makes these rather cheap number crunching hard real time chips with the high-bandwidth IO (for hard-real-time) of a Pi. Notably, it's camera/display interfaces.
- wmf 3y agonever ships more compute than they have to ARM keeps releasing newer slow cores that support the latest instructions; for example the Cortex-A5 was available and the RPi 1 really should have used that.
- kazinator 3y agoShe's not building on the B+, though. Quote: I started trying to take binaries from my "build host" (a much faster Pi 4B) to run them on this original beast. It throws an illegal instruction. This is like building something with the latest MSVC on Windows 11 and trying to run the .EXE on an old PC running Windows XP. :) I suspect the entire Pi distro she's running on the Pi 4B itself won't run on the B+, since all of it is probably compiled the same way, possibly down to the kernel.
- mid-kid 3y agoShe was building on the B+ in the later example of the blog.
- kazinator 3y agoAh I see that now. The interesting question there is why does the clang binary itself run on the old hardware? It must be that the distro build uses a different compiler configuration for itself from the configuration imbued into the installed clang. Maybe it even builds clang twice: once to produce a clang that runs on the machine that builds the distro, which then compiles the packages, including the clang to run on the Pi.
- actionfromafar 3y agoOr the build system uses GCC.
- kelnos 3y agoBut at the end, she puts together a new SD card for the B+, boots it, and tries to compile an empty program on the B+ itself. "It can compile something it can't even run", she says.
- deleted 3y ago[deleted]
- vkaku 3y agoIt was meant to be a low price computer.