Noob dev question but I was curious about this. With the introduction of the Pi 4 one of the cool things is that its backward compatible with previous Pi versions so software that ran on the Pi 2 (A53) for example with run on the Pi 3 (A53) and Pi 4 (A72). With Amlogic the S905, S905X2 and S912 all have A53 chips and the S922X has an A72 yet when there is a software build there is generally a different build for each one. Why wont software created for the S905 just work on the S922X and vice versa the same way that software on a Pi 2 will work on a Pi 4 and vice versa?
Because these are systems-on-a-chip and not just cores (a53, a72, etc.). So while they may share a similar core, there’s plenty left on the chip itself that isn’t shared—and that needs to be accounted for. Also, backwards compatibility often comes at the cost of performance, and a chip manufacturer aimed at performance may not want that trade off.
Thanks @zang74 so the new Pi 4 for example has a different CPU, nic, ram, onboard gfx etc from previous models but is still compatible, are you saying that it is possible to build software that would work on all Amlogic devices but at the cost of some performance? I assume its not a case of having to build for the lowest common denominator?
We have a different build for the S922X because the vendor kernel is based on v4.9, while the kernel for the S905/S912 chips was based on v3.14.
If/When we manage to port the old chips to the v4.9 kernel, we should be able to have a single build for all devices.
I agree and normally with these Amlogic chips their backwards compatiblity is really only at the Android Level. Amlogic has no interest in seeing whether or if Linux runs on their associated devices and various SoC’s. So from their point they are backward compatible if you run them on Android the way they intended.
Linux is something none of them ever promoted or helped get running and i think at times the public forgets about that because of the way just enough linux types of operating systems are being marketed which i think just makes the average person think these are just like normal computers where the hardware really is more OS Neutral.
The only reason Linux works is because of the efforts of the public community and people helping others do what it is they want.
I think people take that for granted sometimes. Linux has had its battles with PC hardware over the years and come out ahead. By brute force and popularity Linux has come to support most PC hardware.
Initially PC hardware makers were intent on protecting their IP (intellectual property) and revenue by using proprietary systems that keep the hood locked. Linux being open source and free goes against that business model. Linux had to wait in the wings until makers relented.
Android and the ARM platform are the new kids and producers want to keep their revenue secure. Once those products become mature we’ll probably see the same thing happen (support for open source), but then there will probably be some new platform and OS re-igniting the flame.
Ya i would agree with ya.
As one of the original internet service providers in my area back in the 90’s at a time when there was no graphical browsers i learned a valuable lesson with Linux when Linus 1st released it back in 91 and the 1st Slackware distribution came into reality, even then at that stage it was so reliable it allowed me to dump all my server os’s as i was running my dns servers and terminal box machines on Winblows NT3 which really blows when it comes to multiusers and it was a daily part of my routine to run to the office and reset all the terminal servers to release all the hung modems (over 200 9600baud of them… lol) but that was the way it was.
Linux had a bit of learning curve but being a low level assembly coder at the time at least helped but i never looked back from that point and to this day have at least a dozen linux servers/workstations in my home lab and varely rarely even bother to touch a windows machine for anything other then needing some graphix package that i can’t get for Linux. Being a Apple guy from their beginnings i tend to hate Android as a part of history but really more so because i have always understood the value of meta data and what its worth and can’t stand the way Android tracks way more then they need to which is why for a company that until later in their life never ever produced anything other then some database and search engine crap that made them richer then alot of other companies that actually produced tangable devices or software… anyways that a whole nother rant… lol…
Arm on the other hand is just another IP giant that produces and sells cores and i blame those issues on linux to companies like Amlogic and the rest that should have used other GPU cores and not subjected the public to the crap thats going on. Arm’s not going to give anything away based on its business model and Amlogic knew what they were getting into but decided to go down the rabbit hole anyways.
I truly am of the believe that for the purposes of these types of boards and devices that if people truly knew how much more efficient and safe running linux was on them that the market would dictate companies like Amlogic to find solutions that they themselves would come realize that they would not loose out on anything… the chromebook and other things they are into is a different story but for this stuff Android is actually holding things back… Its just companies like Amlogic get a canned version of Android and push it downstream to all the manufacturers they sell their SoC’s to which almost totally relieves Amlogic from any real financial investments in the Operating system used that enables their product for the downstream manufacturers.
Linux is king in my book because as a hacker-developer of both software and hardware pretty much everything i have learned on it over the many years is transferable to whatever you want to do and if i wasn’t comfortable with writing drivers or firmware i would have never wasted the time creating fixes for the gpu issues years ago and just moved onto hacking something else.
My experience is not as deep of a level as yours, but I go back far enough to have some opinions about the evolution of the PC. My first experience with Linux was early Slackware, think it was still in the point versions then. Eventually I settled on Debian. Though I never broke away from Windows, I’m using a Windows laptop right now.
There were plenty of times I wanted to use Linux exclusively and ditch Windows, but I never did mainly because of hardware support and to a lesser extent software availability. Linux was a real battle with hardware back then and open source software tended to be buggy and incomplete.
Using Linux on the desktop is not a problem at all now, but it has fallen out of favor with me. I’ve had some professional experience with proprietary Unix (SCO, Solaris, ect) over the years and that’s where my preference lies. When Linux broke away from a traditional Unix approach markedly by the change to systemd I was done with it, at least on the desktop.
Now I’m a FreeBSD guy. It’s pure as Unix gets being a direct descendant of the original AT&T Unix. Though it’s thrown me back to a point using early Linux with a lower level of hardware and software support. Still FreeBSD on the desktop is do-able and I hope to go that route exclusively at some point.
Of course I’m using CoreELEC, but that’s a TV box which is not the same thing. I’m not using it much other than at the Kodi interface and don’t see the command line very often. I can put up with it being Linux for the rest of CoreELEC’s awesomeness.
Ya i prefer the old startup scripts and till the last couple of years kinda held back trying to maintain the old ways as i was never a fan of the boxed versions that started to get outta hand after Red Hat came along and almost started proprietarizing things.
Actually after buying a RockPro64 awhile back i put together a Slackware system for the Rock board but then got busy with the Dreambox project and the Rock’s been sitting on my bench doing nothing since then.
To be honest tho and as much as i luv linux the old way will admit that if your going to learn hardware to software coding the newer styles are much easier to work with and the Device Tree mechanism is much more usable as far as forward porting goes, so there are some good perks i quess with the newer distributions. The other good thing about the newer distro’s is the package management tools have come along way compared to the old stuff.
In some ways its kinda funny how one can whip up a live installer nowadays and do everything in one shot and away you go compared to the old way were ya had to pick all the packages you wanted and then if you were lucky enough the system would reboot and start up without having to recompile a proper working kernel for the machine your playing with…
oh man i gotta stop, as now i am really dating myself…
I had no problem with the old way of installing Linux. It was easy to script an install. You should see how fast I can do a FreeBSD install with all apps ready to roll. It takes an amount of time to author a script and put files in place, but once it’s done you have it. I just basically pop in a USB, boot off it, fire off a script. It runs for a few minutes and it’s done. Reboot, startx, and use the web browser.
I really like the low level of control you have with Unix, it’s refreshing to me. Though most people want things to be more automated out of the box in terms of installation. In other words more like Windows. But for those of us that like to open the hood and get our hands dirty, Unix is wonderful for that.
I probably have over a dozen puters in my workstation cluster and only one has Winblows left on it and thats only because the Adobe and Orcad and some high end pcb software which i don’t use all that often.
For anyone including at a hobbiest level is just so much more usuable then any thing MS can come up with, Originally i used to mess with the Licenced Unix versions but creating drivers back then relied to much on the boxed Unix vendors which were always slow or in some cases not interested which kept me going back to old Win NT for server software…
Linux once it was out was the cat’s arse for any serious hacker and it stuck as there was no real reason to go back to anything else, and being a original Apple guy i was really happy to see when they dumped the Motorola platform and went Intel (not because i prefer Intel) to a more unix style of OS as it makes moving between Linux and MacOSX not all that difficult.
I like the FreeBSD as well just not really used it for awhile… i kinda got onto the Debian/Ubuntu thing not that i think its really that much better but package management kinda makes things nice and simple on those distro’s.
When i started Hardware was my thing and learning the programming end of things wasn’t really my thing till i got into reverse engineering and then it was a no-brainer as usually doing RE work requires building alot of specialized hardware and software tools and linux was the way to go as there were very little around in the way of tools that were affordable and thats if they even existed.
The only real thing i miss being on Linux all the time is IDA Pro which is by far the best program for ripping apart firmware and pretty much any other type of code, i just never found a real good running version of Ida on linux and trying to run it under Wine don’t work worth a crap.
I like the package system in FreeBSD. Don’t know the last you tried it, but in version 10 some years ago they went to a utility called pkg to handle binary package installs. I actually liked Debian’s package manager a lot (dselect/apt) because of the low level of control it offered. FreeBSD’s package manager is all command line where the Debian one has a nice console ansi interface. Still FreeBSD’s package manager can provide all the information you might want. It does a good job.
The big difference in software handling is FreeBSD gives you the option of ports or packages. Ports being the source you build yourself and packages being the binary distributions. You don’t see that in Linux. You can get source and build packages in Linux, but there’s no convenient way of handling it. Linux is mainly a binary distribution where FreeBSD is a source distribution with the ability to handle binary packages. I think that’s one of the main aspects that differentiates them.
I generally use packages since building ports can be time consuming. But it’s nice to know ports are conveniently there if I ever need to do something custom. It’s also a lot easier to build a kernel in FreeBSD and the kernel module system is a lot easier to manage.
Interesting… i might just take alook at it as its been quite awhile. . . i’ve been working on my own embedded distro off and on while pursuing other projects and am interested in all things package related to handle the distro i am building… I am trying to put together a distro specifically for embedded sbc’s thats setup up more as a local development platform on the embedded platform itself. Its been a project in the works for awhile now as i am using it to learn yockto.
That sounds really cool. Embedded stuff is generally fun to work with, I’ve done a little here and there, but more on the electronics side with micro-controllers and assembly.
Of course I’d love to see something similar to CoreELEC with FreeBSD at its base. Though it would be quite a project. FreeBSD does support ARM v6/v7. It would have to be on an RPi or some other Broadcom based SBC. Even then I’ve read support is not as good. FreeBSD is kind of AMD64 centric. It’s really what it does best being used quite a bit on the server side of things.
Now if someone could come up with a cheap AMD64 SBC that might be a fun thing to do with FreeBSD, though I can’t imagine the words cheap and AMD64 ever going together.
Actually i am a hardware guy and started way back before the PC even existed so learning to work at Assembly level was really the only way to do anything. We kinda put Atmel on the map when we released the original AVR hack for the nagra based dvb system’s here in North America… the demand for the old 8515’s were so bad Atmels world stock was gone for months… lol… Atmels i did a lot of coding and hardware based projects but eventually outgrew them as by the time i wanted to move up off 8 and 16 bit controllers Arm was becoming more of a IP core used by some of the other companies chips i was playing with from ST and TI. ST and TI are pretty good about getting samples from and TI’s support library and guys are extremely helpful so their kinda a natural progression to move up to.
I’m not that much different then most around here as i always had a regular job and all of this was just a learning thing for fun and i like hacking stuff… my normal job puts me out in the service field where i spent allmost all of my time in other peoples facilities so i have a huge base of experience on seeing how things are actually make… one of them was working in and around clean rooms so having access to fab tools let me really learn alot. I am more about ripping stuff apart to find out what makes it work and then get bored and move on but the satellite thing kept my attention for along time and as a result pretty much anything that had to do with media and streaming kept me going when it became not safe to play with the satellite system here in North America.
The idea of SoC’s were 1st exposed to me when i started pulling the wafers out of smart cards trying to see how the 8 bit processors were coupled to specialized hardware logic to handle secure streams and a bunch of other stuff but that was kinda the beginning of the SoC idea moving more into the mainstream till its gotten to the point it currently is. The only thing different probably between me and alot of the others around places like this is i am to the extreme and never quite till i figure it out and will go to whatever ends and means it takes to see how things work… ive decapped SoC’s trying to learn and understand and even actually software model the S812 core in Ida Pro as a method of tracing and reversing what was needed so we could actually create real working drivers for the Mali 400/450’s, moving forward thats why a few of us have known the real issues behind the GPU issues and started harassing AML years ago for the way things were done. Based on social crap and the way people become on a open project (learned from other public projects) we just decided to do our own thing and keep things amongst ourselves.
Anyways thats enough about me, but to get back to what were talking about i agree and if it wasn’t for Linux there is no way i would have ever went down any of those roads as Dos or Windows or even OS2 back then even had the tools to do what some of us were doing, linux really didnt either but it at least made things easier to learn to create those tools and hardware.
The Linux from Scratch thing is a interesting framework to learn about embedded os’s go and yocto is kinda interesting as well… they really ease or help with the whole cross-compiling issues… i predate both and its only been in the last while i started to spend time on them… everything i do is the old way and its a mess when it comes to cross-compiling and keeping librarys and crap straight and wished i would have taken the time to learn them along time ago.
Ya i am kinda surprised as well about the cheap AMD64 thing as well and have a sneeky suspision its probably a gpu thing… embedded gpu’s that actually are properly supported are costly and the current way of embedding them on the main SoC has driven the cost down but at the cost of almost total lack of real support. Being a hardware guy i was always about published specs and shit for years till i started actually do the real work and look and came to release that like most marketing bullshit the specs are pretty much all fantasy based on lab condiions and squeewed results trying to hype their products. In real world conditions most of them live nowhere near to what gets published. Way to many people get caught up into believing performance crap thats pretty much fantasy in a lot of cases.
The whole current level of SBC’s is really a bit of a shit show as everyones debating which is the best and what they each supposedly do performance wise and it keeps the market under control and really its a total waste of time as 100’s of peep’s argue over hypothetical performance specs using software platforms that in pretty much ALL cases are NOT using their respective SoC’s and resources to the full extent because the core makers like AML and others are not really providing FULL support, these tactics have kept things like licencing fee’s and software costs down below where i think a real AMD64 SBC could compete price wise.
Actually i had almost totally forgot about FreeBSD till you brought it up… lol… but i went and forked it and am going to take alook at it… years ago i would have never attempted to create a linux distro as there were to many things i really never fully understood but now things are a bit different and as much as i really like the idea of these Just Enough Linux types of builds i find the whole busy-box core to be a bit to constraining and i really don’t like the feel of some of the already existing real linux builds currently out there. I got about as far as throwing together a Slackware version on the RockPro64 and actually am using it to control a 4 color 3d printer i am prototyping. works ok but made me realize i now just want to do my own thing instead, I’m glad you brought up the whole FreeBSD thing and am going to look at it.
A couple of us are thinking of maybe starting a new project much along the lines of CE but built strickly from the perspective of total install and no android… that way the ones that just want something like CE and are willing to dump Android can have something… things like LE and CE are trully great but for any of them trying to ensure that Android still isn’t being touched in a way that makes them responsible for bricking someones box is like working with handcuffs on.
Ever since i started with the Android boxes i have seen it grow not really because people like Andoid but more so because people want media streaming using things like Kodi and over the years a large part of the users have come to realize that solving a lot of the issues with Kodi on Android on these boxes performance wise can be solved by using a Linux driven version of Kodi and we all know what that means.
Its not that i don’t like Android but lets face it Android is a touchscreen driven OS that really has no place on a physically driven remote control to work and its always been a compromise from the beginning. They needed a OS to put on the box and company’s like Amlogic were already in other areas of the market using Android so they just stuck it on the box’s and said kiss my ass to running anything else on them pretty much ever since.
Now with the SBC market growing i think its a good time to revisit the issue and seeing as your finding similar SoC’s in both the box market and the SBC’s i think it may be time to look at a CE styled OS thats more about not worring about Android for the ones willing to go that way…
Man you’ve got quite a bit of experience over the years on the hardware side of things, I envy you. I dabble mostly as a hobbyist though I do have an EE degree so I’m pretty comfortable with most aspects of electronics like working with chips and designing PCBs. The software side I’m not so well versed in. Most of this stuff with SoC boards and operating systems is sort of above my pay grade.
I have my opinions about new tech in terms of embedded systems and operating software. Though I lack a lot of experience with the stuff. I was never very impressed by Android. The one time I tried using it on a tablet I was pretty underwhelmed. Gave me a little more respect for Microsoft, not that I had much to begin with.
I have some experience with Busybox, actually built a base system with it some years ago to run Linux off a CD drive before that kind of thing became standardized. It definitely had some big limitations at that time, but it’s been a while now and I image it’s been expanded quite a bit. May not need something like that for a trimmed down FreeBSD system. I don’t think it has as many dependencies so stuff can stand alone more easily. It’s not something I’ve tried so I’d have to look into it to say for sure.
In terms of cheap boards for Intel/AMD, there is that Odroid-H2 that might fit the bill. Still would need some stuff over and above driving up the cost somewhat. Still a lot cheaper that a Desktop system. Though I’m thinking of using an AMD APU to build my next FreeBSD box. Support for AMD’s Radeon Vega is starting to get nailed down in FreeBSD. An AMD APU like the R5 2400G would make for a powerful and fairly inexpensive desktop system. Really good deal with those, great bang for the buck.
This is the longest Post I have ever seen
Yeah that Buzzmarshall is never short for words, but I read it all. He writes well at least.
Not complaining here I noticed long replies before. But this one must be record worthy.
OK enough with my offtopic jokes
ya that would be me… thats why i hate posting as it takes me forever as i always try to put perspective to my comments making them unbarable at times… lol.