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

Toolchain

  • To enable X-server add: Target Packages —> Graphic libraries and applications (graphic/text) —>
  • X.org X Window System —>

X window system

X Window System server type —>

  • X window System server version (1.20.9)
  • Modular X.org

X-server

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

Applications

X11R7 Drivers ->

  • xf86-input-keyboard
  • xf86-input-mouse
  • xf86-video-cirrus
  • xf86-video-fbdev
  • xf86-video-i28
  • xf86-video-nv
  • xf86-video-vesa Drivers

X11R7 other data ->

  • xbitmaps Other data

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

SDL 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:-

  1. 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 :-

X-server

X-server1

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-

  1. In 'X11R7 Drivers' section, for best compatibility, enable all the drivers in this category.
  2. In the 'other important packages' section, include only the xterm package.
  3. 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-

  1. 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.)

  1. 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