08-30-2017, 10:43 AM
(08-30-2017, 12:27 AM)MarkHaysHarris777 Wrote:OK, I'm working with Theologeek to see about getting involved in porting to the A64. My problem is I'm good on C, C++, and asm, but for embedded systems and Windows. Not much experience at all with Linux (part of the reason for becoming interested in the Pinebook.) I'll need someone to work with to understand the low level glue stuff like support files and configuration issues. Also, I have no idea at the moment where to get the open source cross compiler and project management software to run under Windows 10.(08-30-2017, 12:12 AM)Siliconserf Wrote: I'd like to install this application, but my first attempt gave an error concerning not being a correct binary image. What considerations do you need to take in looking for applications that run on Linux?
Binary executable codes "compiled linked object files" (blobs) must be compiled for the processor that they are going to be running on primarily ( what we call the target processor ) and secondarily must be coded for the target operating system architecture.
In the case of the Pinebook that means that the target processor is an A64 SoC designed and manufactured by Allwinner. It is a 64bit SoC containing four A53 Arm cores capable of running both 32bit and 64bit code; if the operating system was compiled for the aarch64 target ( 64bit ) then both 32bit and 64bit codes will run provided that they were compiled for the target processor A64 (and provided the 32bit libraries are present). If on the other hand the operating system was compiled for the armhf target ( 32bit ) then only 32 bit codes will run on the processor provided that the codes were compiled for the armhf target as well !
If you try to run codes for an Intel x86 style processor on the A64 SoC, they will not run; the x86 codes will only run on an x86 processor or in an x86 emulator. If you try to run 64bit codes on a 32bit system ( even if they were compiled for the target SoC) they will not run either.
Having said all of that; this is one of the many reasons why free software ( and open source ) are important ! If you have the sources for the app you want to install you can build the app for the target processor ( A53 core A64 SoC ), and the target Arm version ( in our case, either aarch64 or armhf ) and they will run great regardless the machine architecture the codes were developed on !
Note: Some software will not run on a given linux distribution ( distro ) because the scripts and configuration files required by the app do not match the configuration of the distro; Usually these can be made to work given some time to port the changes assuming that the source is available or that the configuration files are all human readable text files.
"Get your facts straight first, then distort them as you wish." -- Mark Twain