rpi_hal from https://github.com/rudiratlos/rpi-hal is an incredible rich and uptodate unit for Freepascal to use the I/O of the Raspberry.
From Freepascal programs all works as expected when run as root. Otherwise accessing /dev/mem is causing real problems.
The unit can be used from Lazarus also (avoid the test procedures with writeln’ 😉 ) but also require root access and setting cthreads in the program heading.
For X apps running as root is not possible with just sudo.
Seems I found a solution here: https://wiki.archlinux.org/index.php/Running_GUI_applications_as_root
I applied method 2:
sudo nano /etc/profile
and added this line as last line
Now i can do
$ sudo ./testinit (my simple test program with only the init line of rpi_hal)
and this worked without error, init succeeded.
If you want debugging the app in Lazarus, start Lazarus as root (and ignore all the warnings)
Original text from https://wiki.archlinux.org/index.php/Running_GUI_applications_as_root
Method 2: Globally in /etc/profile
Add the following line to /etc/profile:
This will permanently allow root to connect to a non-root user’s X server.
Or, merely specify a particular app:
where appname is the name of the particular app. (e.g. kwrite