IMPORTANT: VC4 driver released as part of Raspbian
Before trying to use this script, give Raspbian release February 2016 a try. More information
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.
Modifying a local Raspbian installation
- 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
Generating/uploading a Raspbian image
To also create and upload an image file to a remote server make sure to:
- Modify at least
- 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 running
sudo 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
*-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)
*-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.
Testing on a Raspberry Pi
- Make sure to resize the root partition (first item in the menu that comes up upon first boot, or
startx -- /usr/local/bin/Xorg(booting the custom image one can also use plain
startxas the compiled X Server is set as default)
- For troubleshooting, take a look at
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.