Xillinux banner

Based upon Lubuntu 16.04, Xillinux 2.0-beta is now available for download. In most respects, it’s a drop-in replacement for Xillinux-1.3, with a Linux kernel v4.4 and a recent set of software packages and libraries.

To download Xillinux 2.0’s SD card image file, click here.

It has currently no known issues, but should be treated as a beta release. It's recommended in particular for those who need to install software that depends on recent libraries. Xillinux-2.0 will become the primary distribution after this beta phase.

Installing from scratch

  • The setup process for Xillinux-2.0 is the same as Xillinux-1.3: Section 3 in the “Getting started with Xillinux” guide should be followed. Except for a few minor differences (listed in the Release Notes below), it’s the same routine.
  • The boot partition kits available at the moment (i.e. -2.0c) work with Xillinux-1.3 as well as Xillinux-2.0.
  • Previous boot partition kits (e.g. -2.0a) should not be used with Xillinux-2.0.

Upgrading from Xillinux-1.3

  • Write the image for Xillinux-2.0 into the SD card, following section 3.6 in the “Getting started with Xillinux” guide.
  • If your existing boot partition is based upon a boot partition kit earlier than 2.0c, download an updated boot partition bundle (for the targeted board, e.g. xillinux-eval-zedboard-2.0c.zip for Zedboard). Use the devicetree.dtb file (found under bootfiles/) instead of the existing one. This DTB file is suitable for Xillinux-1.3 as well as Xillinux-2.0.
  • boot.bin and xillydemo.bit from Xillinux-1.3 can be used with Xillinux-2.0 with no changes.
  • The uImage file in the boot partition contains the Linux kernel, and belongs to the SD card image. Do not copy this file from one distribution to another.
  • Note: Attempting to use a devicetree.dtb file from Xillinux-1.3 with Xillinux-2.0 will result in the kernel failing to boot (with a early kernel panic saying “clkc: failed to get resource”).

Release notes

  • Xillinux-2.0 requires an SD card with at least 4 GB (and not 2 GB, as with older Xillinux distributions).
  • An ssh server is already installed, however a root password needs to be set, or logging in as root will be rejected. This is slightly different from what is described in the Getting started guide, section 4.4.2.
  • The partition of the SD card image is different from Xillinux-1.3. Hence the example session’s numbers in the Getting started’s section 4.4.1 guide don’t match, however the procedure is the same. In particular, the second partition now starts at sector 32768 and not 32130 (for a better experience with recent fdisk utilities).
  • Unlike common Lubuntu distributions, Pulseaudio is activated and is the only audio device present. It’s kicked off by virtue of xillinux_sound.service and xillinux_pulseaudio.service systemd services. Firefox, Mplayer and other common audio-related Linux applications work normally (even though they may not on other Lubuntu distributions).

Obtaining kernel related sources for Xillinux-2.0

The source for the Linux kernel used in Xillinux-2.0 (including the drivers for Xillybus, Xillybus Lite and the VGA framebuffer) can be downloaded from Github:


To replicate this kernel’s build, check out “xillinux-2.0″ from this repository. Point at the cross compiler with something like

$ export CROSS_COMPILE=/path/to/crosscompiler/arm-xilinx-linux-gnueabi-

and compile:

$ make ARCH=arm xillinux_defconfig
$ make ARCH=arm -j 8 uImage modules LOADADDR=0x8000

In order to build the Device Tree Blobs:

$ export CROSS_COMPILE=/path/to/crosscompiler/arm-xilinx-linux-gnueabi-
$ make ARCH=arm xillinux_defconfig
$ make ARCH=arm dtbs
[ ... ]
  DTC     arch/arm/boot/dts/xillinux-microzed.dtb
  DTC     arch/arm/boot/dts/xillinux-zedboard.dtb
  DTC     arch/arm/boot/dts/xillinux-zybo.dtb

After this, the DTB files can be found as arch/arm/boot/dts/xillinux-*.dtb

the distribution’s /boot partition is not populated, since all information can be obtained as shown above. Note that the exact .config file is obtained by virtue of the xillinux_defconfig make target shown above. Regardless, it can be read from /proc/config.gz on a running Xillinux system.

Some gory details

  • Black screen after screensaver with X desktop: If the /root directory has been cleared, if a new user is using the desktop, or if the power saving settings have been changed, the desktop may not recover from screensaver mode, leaving a black screen when attempting to resume. Fix: On the XFCE desktop, go to the Power Manager, and set Display > “Put to sleep after” to “Never” and Display > “Put to sleep after” to “Never”, and also Display > “Switch off after” to “Never”. Also Security > “Automatically lock the session” to “Never”. This problem should not occur on a fresh Xillinux distribution, since these settings have been made for the root user.
  • Zedboard OLED applet as well as audio initialization are kicked off by systemd, based upon existence of files in /dev. Note that these are not udev rules.
  • Even though there have been changes in the Linux GPIO driver since kernel 3.12, the old GPIO driver is used in Xillinux-2.0. This retains the behavior and numbering of Xillinux-1.3. In order to use the new GPIO driver, replace the device tree entry with compatible = “xlnx,ps7-gpio-1.00.a” with compatible = “xlnx,zynq-gpio-1.0″.
  • The Quad SPI flash is accessed by the Linux kernel only with a one bit wide bus, even though the driver supports a quad bit interface. The relevant device tree entry can be changed for enabling the quad bit interface, however this will prevent the device tree from being compatible with kernel 3.12 (used in Xillinux-1.3).