Difference between revisions of "Raspberry Pi"

From JogampWiki
Jump to navigation Jump to search
(Raspberry Pi pullrequest: Merged - Renamed to Open .. Pullrequests)
(Refine Raspberry Pi armv6hf setup)
Line 88: Line 88:
 
|}
 
|}
  
== Raspberry Pi armv6hf Mesa DRM/GBM from console test setup: ==
+
== Raspberry Pi armv6hf setup: ==
 
Minimal system setup:
 
Minimal system setup:
 
# Raspbian Buster Lite
 
# Raspbian Buster Lite
#* https://www.raspberrypi.org/downloads/raspbian/
+
#* 2019-09-26-raspbian-buster-lite.img from https://www.raspberrypi.org/downloads/raspbian/
# apt install openjdk-11-jre-headless libdrm2 libgbm1 libgles2 libgles1 libegl1 libgl1-mesa-dri libxrandr2 libxcursor1
+
# Updating Raspbian
 +
#* apt update
 +
#* apt dist-upgrade
 +
#* apt autoremove
 +
# Installing OpenJDK, OpenGL libraries etc
 +
#* apt install openjdk-11-jre-headless openjdk-11-jdk-headless ant libdrm2 libgbm1 libgles2 libgles1 libegl1 libgl1-mesa-dri libxrandr2 libxcursor1 mesa-utils-extra
 +
 
 +
Then enable ssh, rsync or any other means to transfer the JogAmp cross-build to the target platform.
 +
 
 +
=== Raspberry Pi armv6hf Mesa DRM/GBM from console test setup: ===
 +
Ready
  
 
== Raspberry Pi armv6hf Mesa X11 test setup: ==
 
== Raspberry Pi armv6hf Mesa X11 test setup: ==
Minimal system setup:
+
Additional packages:
# Raspbian Buster Lite
+
# apt install xinit
#* https://www.raspberrypi.org/downloads/raspbian/
 
# apt install openjdk-11-jre-headless libdrm2 libgbm1 libgles2 libgles1 libegl1 libgl1-mesa-dri libxrandr2 libxcursor1 xinit
 
 
# startx
 
# startx
 +
 +
Ready
 +
 
== Open Raspberry Pi Pullrequest ==
 
== Open Raspberry Pi Pullrequest ==
  

Revision as of 17:34, 4 December 2019

Raspberry Pi compatibility

Raspberry Pi contains support for rendering on using eight configurations:

  1. armv6hf Broadcom DispmanX (*)
  2. armv6hf Broadcom DispmanX overlay on top of X11 (+)
  3. armv6hf Mesa DRM/GBM using full KMS (+) Unstable Driver
  4. armv6hf Mesa DRM/GBM using fake KMS (*)
  5. armv6hf Mesa X11 (*)
  6. aarch64 Mesa DRM/GBM using full KMS (+) Unstable Driver
  7. aarch64 Mesa DRM/GBM using fake KMS (*)
  8. aarch64 Mesa X11 (*)

(*) full support by JogAmp WIP

(+) code available by JogAmp w/o full support

NS = Not Supported

WIP = Work in Progress

armv6hf rasbian Broadcom DispmanX Mesa DRM/GBM Console
Console (*) X11 Overlay (+) True KMS w/o BCM (+) Fake KMS w/ BCM (*) Mesa X11 (*)
RAM usage for running TestGearsES2NEWT 42Mb 56Mb + 36Mb (xorg) 82Mb 82Mb + 43Mb (xorg)
Raspberry Pi 4 NS by BCM driver NS by BCM driver Unstable Driver Working WIP Working, well tested
Raspberry Pi 3a 3b 3b+ Working, well tested Working Unstable Driver Working WIP Available (??)
Raspberry Pi 2a 2b 2b+ Default, well tested Default Unstable Driver Available Available (??)
Raspberry Pi 1 Zero W Default, well tested Default Unstable Driver Available, not recommended,
heavy on CPU
Available, not recommended,
low RAM and heavy on CPU


aarch64 debian Mesa DRM/GBM Console
True KMS w/o BCM (+) Fake KMS w/ BCM (*) Mesa X11 (*)
Raspberry Pi 4 Unstable Driver Working WIP Default, well tested
Raspberry Pi 3b 3b+ Unstable Driver Working WIP Default, well tested

Raspberry Pi armv6hf setup:

Minimal system setup:

  1. Raspbian Buster Lite
  2. Updating Raspbian
    • apt update
    • apt dist-upgrade
    • apt autoremove
  3. Installing OpenJDK, OpenGL libraries etc
    • apt install openjdk-11-jre-headless openjdk-11-jdk-headless ant libdrm2 libgbm1 libgles2 libgles1 libegl1 libgl1-mesa-dri libxrandr2 libxcursor1 mesa-utils-extra

Then enable ssh, rsync or any other means to transfer the JogAmp cross-build to the target platform.

Raspberry Pi armv6hf Mesa DRM/GBM from console test setup:

Ready

Raspberry Pi armv6hf Mesa X11 test setup:

Additional packages:

  1. apt install xinit
  2. startx

Ready

Open Raspberry Pi Pullrequest

Raspberry Pi troubleshooting

Enable Mesa DRM/GBM from console or Mesa X11 for: Raspberry Pi 3a 3b 3b+ 2a 2b 2b+

  • Edit /boot/config.txt . At the end of the file uncomment the dtoverlay=vc4-fkms-v3d line, to look like this:
[all]
dtoverlay=vc4-fkms-v3d

Enable Mesa DRM/GBM from console or Mesa X11 for: Raspberry Pi 1 Zero W

  • Edit /boot/config.txt . At the end of the file add dtoverlay=vc4-kms-v3d,cma-128 line, to look like this:
[all]
dtoverlay=vc4-kms-v3d,cma-128

System freeze during bootup

JogAmp have noticed that some microsd cards can cause the Raspberry Pi system to suddenly stop, especially during bootup, when the Pi is switching the sdcard transfer mode from PIO to DMA. An effective workaround for stability is to instruct the Raspberry Pi system to stay in PIO mode by adding the following lines to /boot/config.txt

# Tunes the bcm2835-sdhost SD/MMC driver
dtoverlay=sdtweak,force_pio=1
dtparam=sd_force_pio=on

Raspberry Pi 1 Zero W: Server VM is only supported on ARMv7+ VFP

Raspbian OpenJDK 11 only supports Raspberry Pi 2 and later CPUs. However, you can still use openjdk-8 that supports the Pi 1 Zero W CPU:

apt install openjdk-8-jre-headless
/usr/lib/jvm/java-8-openjdk-armhf/bin/java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1+rpi1-b01)
OpenJDK Client VM (build 25.212-b01, mixed mode)