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.
- 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_PATH
inPackageRaspbianVc4.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_hosts
file of the root user. This can be accomplished by runningsudo ssh
to connect to your host. - Install either screen and run the script by launching screen and then executing
sudo ./PackageRaspbianVc4.py
or 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.bz2
or*-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 plainstartx
as the compiled X Server is set as default) - For troubleshooting, take a look at
dmesg
and/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.