Raspberry Pi X11 Support - cu-ecen-aeld/buildroot-assignments-base GitHub Wiki
X-CLIENT REQUIREMENTS:
To add X-client and X-apps to Raspberry pi one needs to follow the following steps:-These steps help you add headless applications that can be accessed from X-Server
- In sshd_config file in /etc/sshd_config you need to enable X11-port forwarding, change X11DisplayOffset to 10 and allow X11 local host
#X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
- To add x-apps,make menuconfig in buildroot and include X-applications from target packages ->graphic libraries->X.org Windows system->X11R7 Applications and include applications like xeyes, xediit, xclock, xterm.
- Different applications have different dependencies. Xedit and Xterm application need graphic support in X-server for bitmaps. so make sure you include xbitmaps located in target packages ->graphic libraries->X.org Windows system->X11R7 other data.
X-SERVER REQUIREMENTS:
To add X-server to buildroot for raspberry pi one needs to add different packages and include graphic libraries as follows:-
- make sure you have the latest buildroot which supports x11 packages and protocol
In your buildroot directory in terminal after doing make menuconfig follow the steps below:-
Toolchain —>
- Enable WCHAR support
- Enable C++ support
- To enable X-server add: Target Packages —> Graphic libraries and applications (graphic/text) —>
- X.org X Window System —>
X Window System server type —>
- X window System server version (1.20.9)
- Modular X.org
X11 Libraries the default work fine for minimal purpose
You can add any applications you want You can get more info on what each application does at https://packages.gentoo.org/categories/x11-apps
X11R7 Applications ->
- bitmap
- editres
- rgb
- sessreg
- setxkbmap
- showfont
- twm
- xauth
X11R7 Drivers ->
- xf86-input-keyboard
- xf86-input-mouse
- xf86-video-cirrus
- xf86-video-fbdev
- xf86-video-i28
- xf86-video-nv
- xf86-video-vesa
X11R7 other data ->
- xbitmaps
To add support for different fonts include package LIBERATION which can be found in
Target Packages ->fonts, cursors ,icons ,sounds and themes -> LIBERATION(free fonts)
Other important packages to be added are:-
Target Packages ->
- SDL
- SDL framebuffer console video driver
- xterm
TO include graphic drivers in kernel on raspberry pi use
$ make linux-menuconfig
Device Drivers ->Graphics support ->Frame buffer support->
- [X]Support for frame buffer devices
- [X]BCM2708 frame buffer support
- [X]Solomon SSD1307 frame buffer support
- [X]Raspberry pi Sense HAT frame buffer
These are really important things that we need for running xserver.
After enabling these and building the system you might have to delete two files from /etc/init.d that would be:-
- S40xorgsupport. 2)S90xdm.
At the end the config file in buildroot should see something like this :- https://github.com/cu-ecen-5013/final-project-Maitreyee2095/blob/main/base_external/configs/aesd_rpi_defconfig
Final Output :-
BeagleBoneBlack X11 support
defconfig name: beaglebone_qt5_defconfig. (Use this defconfig in the shared.sh file.)
Following the same steps as mentioned above for Raspberry Pi will work for BeagleBoneBlack. Some deviations-
- In 'X11R7 Drivers' section, for best compatibility, enable all the drivers in this category.
- In the 'other important packages' section, include only the xterm package.
- Skip the 'graphic drivers' section entirely. beaglebone_qt5_defconfig will include the necessary graphic/framebuffer drivers.
The hdmi display may go to sleep if inactive for a long time. To disable sleep, do the following-
- Go to /etc/X11/xorg.conf.d/ and create a new file named 10-time.conf
(Sometimes xorg.conf.d directory might be present in /usr/share/X11/ directory.)
- Paste the below contents in that file and re-run startx.
Section "ServerLayout"
Identifier "ServerLayout0"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection