This script is designed to build the latest Kernel, Mesa and XServer packages, along with their dependencies from Git. After compilation the generated files are injected into a current Raspbian image, to be tested on a Raspberry Pi or Raspberry Pi 2.
- Download the latest Raspbian and put it onto a SD or microSD card, depending on which version of the Raspberry Pi you want this to run on
- In the initial setup screen (
raspi-config) make sure to enlarge the filesystem, set the correct keyboard layout (the default is a British one), and enable the SSH server - Clone this repository onto your Pi by running
git clone https://github.com/gohai/vc4-buildbot.git - Run the script by executing
sudo ./BuildRaspbianVc4.py
To also create and upload an image file to a remote server make sure to:
- Modify at least
UPLOAD_HOST,UPLOAD_USER,UPLOAD_KEY,UPLOAD_PATHinPackageRaspbianVc4.py - Provide a private key file for use with the host you want to upload the file to (e.g.
sukzessiv-net.pem, not part of the repository) - Make sure that your host is in the
known_hostsfile of the root user. This can be accomplished by runningsudo sshto connect to your host. - Install either screen and run the script by launching screen and then executing
sudo ./PackageRaspbianVc4.pyor consider setting up a cron job like this:00 21 * * * root /home/pi/vc4-buildbot/PackageRaspbianVc4.py
*-image.zip: a zipped Raspbian image file, equivalent to the ones available from raspberrypi.org*-issue.json: a JSON encoded array containing information about all the packages used for the build, including the commit they were at when building (useful for bisecting). This file is also available at/boot/issue.json.*-overlay.tar.bz2: a tarball of files that can be added to a vanilla Raspbian image or installation. Make sure to run sudo ldconfig after initial bootup.*-processing.tar.bz2: a tarball of a recent build of Processing for ARM (alpha)*-successs.log.bz2or*-error.log.bz2: build log
Moreover, the kernel configuration used is available as /boot/kernel.img-config (Raspberry Pi), and /boot/kernel7.img-config (Raspberry Pi 2). The script does modify /boot/config.txt if needed.
- Make sure to resize the root partition (first item in the menu that comes up upon first boot, or
raspi-config) - Run
startx -- /usr/local/bin/Xorg(booting the custom image one can also use plainstartxas the compiled X Server is set as default) - For troubleshooting, take a look at
dmesgand/usr/local/var/log/Xorg.0.log.
To see why the X server unexpectedly crashes, run startx as root (sudo startx -- /usr/local/bin/Xorg). This will produce a file named core in the current directory after a crash.
Fire up the debugger with sudo gdb /usr/local/bin/Xorg core. The GDB command where shows the location of the crash, while info frame lists the captured variables, arguments and registers in the current frame.