-
Notifications
You must be signed in to change notification settings - Fork 269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error compiling project in Raspberry Pi 3 with Alpine Linux aarch64 #43
Comments
Thanks for reporting. I have not actually tested the Arm-v8a path at all, I do not have a 64-bit Raspberry Pi OS installation on any of my dev boards yet. Does the compilation error occur if you remove The erroring directives come from this line Line 49 in 7df6ec3
gcc --version )?
Try removing the erroring directives from that line. Does that let the build pass? That line exists to aggressively optimize for performance with the compiler, so not needed for a particular feature in code. Perhaps I'll need to gate those four out depending on GCC version, or something similar. |
Hi, thanks for the response. GCC version:
I tried commenting out the line you suggested, and these errors related to assembler appeared:
|
Ah darn, it looks like the assembler code is not 64-bit AArch/ARMv8A capable. This does make me suspect if 64-bit ARM OSes will work at all. The handwritten assembly code in the driver repository is not mandatory, there asm algorithms are geared for Pi Zero (when UPDATE_FRAMES_WITHOUT_DIFFING or UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF options are used). On multicore Pis neither of those algorithms is generally used. Pushed a patch in above commit to remove the assembly code if those options are not actually used. If you are still experimenting, check out how that code behaves. Now that I think about it, it may be that 64-bit OS can run into some address space layout related issues at runtime, it may be that the peripheral addresses are located differently. |
@juj thank you for the response. I did update my working copy and the assembler errors disappeared; however the full compile didn't build as it stopped at <bcm_host.h> not found. Thanks again! |
Thanks for the info. Fbcp-ili9341 uses
The question is then perhaps how to avoid the DispmanX GPU API ( |
@juj thanks for the interesting explanation. I'm not sure you need to avoid "the DispmanX GPU API" given that your goal with this driver is speed. I don't know what the fbtft drivers are doing, and I don't mean to compare your approach to the one from that project, but I proved the drivers provided by Alpine Linux 64 bits actually work with my LCD device so at some point and given the lack of the VC4 stuff in that same kernel, their approach is not dependent on that piece of software. Another thing also working is Xfce once I installed/configured the drm_vc4_mesa package, also available for 64 bit OS |
I ran into this same exact issue.. I was able to wkr around it by: apt-get install libraspberrypi-dev Hope this helps someone else. |
Has anyone tried this on the Pi OS 64-bit beta (as opposed to Alpine)? |
fbcp-ili9341 currently has a hardcoded understanding of the register address space being laid out according to the 32-bit layout, and uses fixed 32-bit pointers. (At the time of writing, a 64-bit Pi OS did not exist) I have not since taken a peek at how it would work on a 64-bit OS.. it might work out of the box if the 32-bit portion of the address space for GPIO/SPI/DMA hardware registers etc. is the same, though I'm not quite sure. I briefly recall reading some Pi Foundation PDF about the 64-bit address space, but it's been quite some time, and cannot remember exactly what my conclusion from that was. Probably a "Hack away at will" kind of scenario to make it work :) |
From my research so far:
|
A 32-bit fbcp-ili9341 runs perfectly fine with a 64-bit kernel. I don't see much of a reason beyond convenience to use a 64-bit fbcp-ili9341, so this is a viable workaround. |
Any chance to get it in 64Bit? Rpi 5 is coming, and it would be fine... |
The Raspberry Pi 5 makes major changes to the peripherals. I don't think 64-bit support for BCM283x will impact much either way. |
I've installed Alpine Linux 3.8.1 aarch64 in Raspberry PI 3. I cloned the project with git, and want to build it natively with gcc 6.4.0 so I configured with command:
but when I do make, these errors appear:
The text was updated successfully, but these errors were encountered: