Tag Archives: archlinux

Vivado Lab 2016.2 on Arch Linux

To bring my Digilent Arty board to life I had to install “Vivado Lab 2016.2”, a software to program Xilinx FPGA’s. Specifically I used to follow the SiFive Freedom U500 Arty FPGA Getting Started Guide. While installing Vivado Lab succeeded, I had some trouble running it on my Arch Linux. The Shortcut did not show anything, but when running it from console I could see the following error:

$ /opt/Xilinx/Vivado_Lab/2016.2/bin/vivado_lab
application-specific initialization failed: couldn't load file "librdi_commontasks.so": libncurses.so.5: cannot open shared object file: No such file or directory

It turned out that just linking the new ncurses library makes it working

$ sudo ln -s /usr/lib/libncursesw.so /usr/lib/libncurses.so.5

Cross compile Linux for ARM using LLVM/clang on Arch Linux

LLVMLinux project logo

LLVMLinux project logo

The LLVMLinux team made quite some progress in enabling LLVM/clang to build the Linux kernel. There has also been a talk at the Collaboration Summit 2015 in Santa Rosa (slides). So I thought, give it a try and compile a kernel for my ARM based board of choice. The upstream kernel.org Linux kernel is not yet ready to be built using LLVM/clang, some patches are still required. Therefor I used the kernel from the LLVMLinux git server.

The nice thing about LLVM/clang is that it supports multiple targets. The binaries provided by the Arch repositories support several ARM targets:

$ pacman -S clang
$ llc --version
LLVM (http://llvm.org/):
 LLVM version 3.5.1
 Optimized build.
 Built Jan 14 2015 (03:18:15).
 Default target: x86_64-unknown-linux-gnu
 Host CPU: core-avx-i

 Registered Targets:
 aarch64 - AArch64 (little endian)
 aarch64_be - AArch64 (big endian)
 arm - ARM
 arm64 - AArch64 (little endian)
 arm64_be - AArch64 (big endian)
 armeb - ARM (big endian)

Read more »

Online resize root filesystem on a GPT partition

This short tutorial shows how to resize a ext4 root filesystem online. Most people use gparted from a recovery system for this task, and I also recommend that for if you are not familiar with the tools used in this guide. Also, make sure you have a backup of the data (I did this myself on a system I just installed, so I would not mind if anything goes wrong). Generally this is not different from doing a manual MBR/fdisk resize, except that we need to treat the unique partition GUID specially since we should maintain it (for boot loaders/boot managers).

So, here is how I resized my ext4 root partition (sda2) using gdisk and resize2fs: Read more »

Canon PowerShot S100 on Arch Linux

My digital camera Canon PowerShot S100 was not detected by Arch Linux automatically despite i’ve installed the required libgphoto2 package. Googling around I found a fix: It looks like GPhoto2 tries to load the wrong driver due to the ambiguous camera name (Canon released two cameras with the same name). The easiest way fixing this is disabling the old driver:

# mkdir /usr/lib/libgphoto2/2.5.2/disabled/
# mv /usr/lib/libgphoto2/2.5.2/canon* /usr/lib/libgphoto2/2.5.2/disabled/

Read more »

Arch Linux on BeagleBone Black from USB-Stick

This guide shows how to install Arch Linux using a USB-Stick. A running U-Boot installation is required, in my case this was U-Boot 2013.04 which came with the original image. Next, I created a memory stick. I followed the documentation of Arch Linux ARM, I just used a USB stick instead of a Micro SD-Card. Now, plug the USB stick into your Beagle Bone Black and press a key to get the U-Boot prompt. U-Boot has the ability to boot from a USB stick, but some custom commands are required. First you need to scan the USB bus system.

U-Boot# usb reset
(Re)start USB...
USB0: scanning bus 0 for devices... 1 USB Device(s) found
 scanning usb for storage devices... 1 Storage Device(s) found

Read more »

Linaro on Arch Linux

In order to use the Linaro ARM cross-toolchain on Arch Linux, some 32-Bit Libraries need to be available. Arch Linux supports multiarch too, just enable the packages in your /etc/pacman.conf:

Include = /etc/pacman.d/mirrorlist

Update your packages

pacman -Sy
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib 104.5 KiB 148K/s 00:01 [##################################] 100%

Unlike in Debian based distribution the GNU C Library package is called lib32-glibc. Additionally needed libraries by GCC (such as libstdc++6) are included in the package lib32-gcc-libs.

pacman -S lib32-glibc lib32-gcc-libs lib32-zlib