Analog Devices Kuiper Linux is a distribution based on Raspberry Pi OS for the Raspberry Pi. It incorporates thousands of Linux device drivers for ADI products, and is created with ease of use in mind. The reasoning for creating this distribution is to minimize the barriers to integrating ADI hardware devices into an embedded Linux system. ADI Kuiper Linux also includes a host of additional applications, software libraries, and utilities including for rapid prototyping and development:
ADI Kuiper Linux supports many platforms and development kits containing AMD(Xilinx) and Intel(Altera) FPGAs, as well as Raspberry Pi systems. Please click here for a complete list of supported development kits and hardware projects.
If you are planning on imaging your own SD card, depending if you are using Linux or Windows, follow these instructions to write the image file to your SD card.
The default user is the “analog” user, the password for this user is “analog”. The password for the “root” account is “analog” as well.
The SD card includes several folders in the root directory of the
BOOT partition. In order to configure the SD card to work with a specific FPGA board and ADI hardware, several files must be copied onto the root directory. Using the host PC, drag and drop the required files onto the
BOOT partition, and use the EJECT function when removing the SD card from the reader.
For the zynq projects copy these files to the root of the BOOT FAT32 partition:
For the zynqmp projects copy these files to the root of the BOOT FAT32 partition:
For the versal projects copy these files to the root of the BOOT FAT32 partition:
For Arria10 SOC projects copy these files to the root of the BOOT FAT32 partition:
(e.g. “dd if=u-boot-splx4.sfp of=/dev/mmcblk0p3”)
For Cyclone5 projects copy these files to the root of the BOOT FAT32 partition:
(e.g. “dd if=u-boot-with-spl.bin of=/dev/mmcblk0p3”)
The system will need to be configured according to what devices are connected to the Raspberry Pi. The most straightforward way to do this for Raspberry Pi is to edit the config.txt file, which is located in the boot partition. Any text editor can be used, including the Mousepad editor that is included with Kuiper Linux. Using the Raspberry Pi itself also avoids problems with USB encryption, often present on company computers.
Connect a keyboard, mouse, and monitor to the Raspberry Pi and connect power. The ADI Kuiper Linux desktop should appear. Before editing, it is a good idea to make a backup of the original file, just in case something goes wrong (which it won't, but still…) Open a terminal and enter the following command (noting that “analog@analog:~ $” is the prompt, and does not need to be typed):
analog@analog:~ $ sudo cp /boot/config.txt /boot/config.backup analog@analog:~ $ sudo mousepad /boot/config.txt
This will bring up the text editor. At this point, the appropriate device tree overlays can be included, for example, add the following line to enable the ADXL345 3-axis SPI accelerometer, noting that the lirc-rpi lines are shown for reference, and any line beginning with “#” is ignored:
# Uncomment this to enable the lirc-rpi module #dtoverlay=lirc-rpi dtoverlay=rpi-adxl345
Many ADI hardware overlays are included with Kuiper Linux, for evaluation boards and reference designs. For a complete list of overlays for available hardware, please visit the project list.
After editing config.txt, reboot for changes to take effect.
analog@analog:~ $ reboot
There are two things to check when making sure your system is setup properly.
The example boot messages may change based on your specific platform, but when connected to UART via a serial terminal session from your host PC, your terminal should read similar to the the log provided below. Make sure when creating a serial connection, you are using the baud rate of 115200 and you are connected BEFORE you power up your platform.
When the platform running Kuiper Linux is powered up, any IIO devices present and enabled in the configuration file, will be displayed in the terminal window by running the iio_info command, this is a good way to verify that the hardware and device drivers loaded properly.
Here's an example output:
analog@analog:~ $ iio_info Library version: 0.21 (git tag: 1c0781b) Compiled with backends: local xml ip IIO context created with local backend. Backend version: 0.21 (git tag: 1c0781b) Backend description string: Linux analog 4.19.86-v7l+ #3 SMP Tue Sep 1 19:43:06 UTC 2020 armv7l IIO context has 2 attributes: local,kernel: 4.19.86-v7l+ uri: local: IIO context has 5 devices: iio:device0: ad7127-8 (buffer capable) 8 channels found: voltage0-voltage1: (input, index: 0, format: be:u24/32>>0) 6 channel-specific attributes found: attr 0: filter_low_pass_3db_frequency value: 3 attr 1: offset value: 0 ... ...
So if your setup is running Kuiper Linux and you can see the device drivers from your hardware, then you are all set and ready to use the setup!!
Even thought this is Linux, this is a persistent file systems. You have to take care not to corrupt the file system -- please shut down things, don't just turn off the power switch. Using the desktop shutdown feature is the easiest way, but depending on your monitor, the standard power off button could be hiding. You can also do this from the terminal window as well with:
sudo shutdown -h now