Quick howto - ArchLinux ARM (ALARM) on Odroid XU4 X11 Mate Installation Guide
This guide is the quickest way I have found to get the XU4 running with a lightweight responsive Linux Distro.
This guide will not provide hardware acceleration in Chromium
This guide provides hardware acceleration in Firefox
This guide will help you get a Citrix connection working.
Guide is currently broken after a recent archlinuxarm upgrade, lightdm seems to be the issue
As of 23 Feb this guide should work again. $ uname -a
Linux alarm 4.14.94-1-ARCH #1 SMP PREEMPT Thu Jan 24 01:44:17 UTC 2019 armv7l GNU/Linux
1. Install ArchLinux ARM (ALARM) as described on the website https://archlinuxarm.org/platforms/armv7/samsung/odroid-xu4
2. su to root user, Install the odroid-xu3-libgl-x11 package - based on r17p0-1 (full package name is Packages (1) odroid-xu3-libgl-x11-r17p0-1)
su - Password: pacman -S odroid-xu3-libgl-x11 |
3. Install XWindows base packages
pacman -S xorg xorg-server xorg-xinit |
4. Install Mate (pronounced ma-tay) and Lightdm
pacman -S mate mate-extra lightdm lightdm-gtk-greeter |
systemctl enable lightdm |
pacman -S pulseaudio alsa-utils |
7. Install popular packages
pacman -S cheese firefox vlc inkscape hexchat pidgin thunderbird chromium libreoffice |
8. To install further (optional) packages, continue, or you are done, the XU4 is ready to browse the internet and use as desktop!
9. Install base devel package (this is for installation of packages from the AUR)
pacman -S base-devel wget git openssl |
10. Exit su (root) shell
exit |
11. You should be logged in as a non-root user (alarm is the default non-root user)
cd ~ |
git clone https://aur.archlinux.org/icaclient.git |
cd icaclient nano PKGBUILD |
# Maintainer: Eric Liu <This email address is being protected from spambots. You need JavaScript enabled to view it.> # former Maintainer: Daniele Vazzola <This email address is being protected from spambots. You need JavaScript enabled to view it.> # Contributor: Ciarán Coffey <This email address is being protected from spambots. You need JavaScript enabled to view it.> # Contributor: Matthew Gyurgyik <This email address is being protected from spambots. You need JavaScript enabled to view it.> pkgname=icaclient pkgver=13.9.1 pkgrel=1 pkgdesc="Citrix Receiver for x86_64 (64bit) & armv7h Linux (ICAClient)" arch=('x86_64' 'i686' 'armv7h') url="https://www.citrix.com/products/receiver/" license=('custom:Citrix') depends=('alsa-lib' 'libvorbis' 'curl' 'gtk2' 'libpng12' 'libxaw' 'libxp' 'speex' 'libjpeg6-turbo' 'libsoup' 'gst-plugins-base-libs') makedepends=('automake' 'autoconf' 'wget') optdepends=( 'xerces-c: gtk2 configuration manager' 'webkitgtk2: gtk2 selfservice/storefront ui') conflicts=('bin32-citrix-client' 'citrix-client') options=(!strip) backup=("opt/Citrix/ICAClient/config/appsrv.ini" "opt/Citrix/ICAClient/config/wfclient.ini" "opt/Citrix/ICAClient/config/module.ini") source_url32="http:$(curl -L -silent 'http://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html' | awk -F 'rel=\"' '/linuxx86-/ {print $2}'| awk -F'"' '{print $1}'| sed '/^$/d' |uniq)" source_url64="http:$(curl -L -silent 'http://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html' | awk -F 'rel=\"' '/linuxx64-/ {print $2}'| awk -F'"' '{print $1}'| sed '/^$/d' |uniq)" source_urlarmhf="http:$(curl -L -silent 'http://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html' | awk -F 'rel=\"' '/linuxarmhf-/ {print $2}'| awk -F'"' '{print $1}'| sed '/^$/d' |uniq)" source=('configmgr.desktop' 'conncenter.desktop' 'selfservice.desktop' 'wfica.desktop' 'wfica.sh' 'wfica_assoc.sh') source_i686=($pkgname-x86-$pkgver.tar.gz::$source_url32) source_x86_64=($pkgname-x64-$pkgver.tar.gz::$source_url64) source_armv7h=($pkgname-armhf-$pkgver.tar.gz::$source_urlarmhf) md5sums=('71aca6257f259996ac59729604f32978' 'a38c3f844a0fefe8017a25bee213b843' '0e92c33b3fcc99b04269787da2984809' '1f214f6f456f59afd1a3275580f4240e' '59f8e50cc0e0c399d47eb7ace1df5a32' 'dca5a1f51449ef35f1441b900d622276') sha256sums_x86_64=('A9A9157CE8C287E8AA11447A0E3C3AB7C227330E9D8882C6F7B938A4DD5925BC') sha256sums_i686=('A93E9770FD10FDD3586A2D47448559EA037265717A7000B9BD2B1DCCE7B0A483') sha256sums_armv7h=('b224d894c980e29298398e1d6c1d837ad67ce201fa9ffea7d283fa3d368f23b7') install=citrix-client.install package() { cd "${srcdir}" ICAROOT=/opt/Citrix/ICAClient if [[ $CARCH == 'i686' ]] then ICADIR="$srcdir/linuxx86/linuxx86.cor" elif [[ $CARCH == 'x86_64' ]] then ICADIR="$srcdir/linuxx64/linuxx64.cor" elif [[ $CARCH == 'armv7h' ]] then ICADIR="$srcdir/linuxarmhf/linuxarmhf.cor" fi mkdir -p "${pkgdir}$ICAROOT" cd "$ICADIR" install -m755 wfica *.so *.DLL AuthManagerDaemon PrimaryAuthManager ServiceRecord selfservice "${pkgdir}$ICAROOT" # copy directories cp -r ./config/ "${pkgdir}$ICAROOT" cp -r ./gtk/ "${pkgdir}$ICAROOT" cp -r ./help/ "${pkgdir}$ICAROOT" cp -r ./keyboard/ "${pkgdir}$ICAROOT" cp -r ./keystore/ "${pkgdir}$ICAROOT" cp -r ./lib/ "${pkgdir}$ICAROOT" cp -r ./icons/ "${pkgdir}$ICAROOT" cp -r ./nls/ "${pkgdir}$ICAROOT" cp -r ./site/ "${pkgdir}$ICAROOT" cp -r ./usb/ "${pkgdir}$ICAROOT" cp -r ./util/ "${pkgdir}$ICAROOT" # Install License install -m644 -D nls/en.UTF-8/eula.txt \ "${pkgdir}$ICAROOT/eula.txt" # create /config/.server to enable user customization using ~/.ICACLient/ overrides. Thanks Tomek touch "${pkgdir}$ICAROOT/config/.server" # Extract system ca-certificates and install in the Citrix cacerts directory cp /etc/ca-certificates/extracted/tls-ca-bundle.pem "${pkgdir}$ICAROOT/keystore/cacerts/" cd "${pkgdir}$ICAROOT/keystore/cacerts/" awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < tls-ca-bundle.pem # The following 32-bit library causes false namcap errors # rm util/libgstflatstm.32.so # Install wrapper script install -m755 "${srcdir}/wfica.sh" "${pkgdir}$ICAROOT/wfica.sh" # Dirty Hack # wfica expects {module,wfclient,apssrv}.ini in $ICAROOT/config # sadly these configs differ slightly by locale lang=${LANG%%_*} if [[ ! -d "${pkgdir}/$ICAROOT/nls/$lang" ]]; then lang='en' fi cp "${pkgdir}$ICAROOT/nls/$lang/module.ini" "${pkgdir}/$ICAROOT/config/" cp "${pkgdir}$ICAROOT/nls/$lang/appsrv.template" "${pkgdir}/$ICAROOT/config/appsrv.ini" cp "${pkgdir}$ICAROOT/nls/$lang/wfclient.template" "${pkgdir}/$ICAROOT/config/wfclient.ini" # Copy Firefox plugin into plugin directory mkdir -p "${pkgdir}/usr/lib/mozilla/plugins" ln -s "$ICAROOT/npica.so" "${pkgdir}"/usr/lib/mozilla/plugins/npica.so cd "${srcdir}" # install freedesktop.org files install -Dm644 wfica.desktop "${pkgdir}/usr/share/applications/wfica.desktop" install -Dm644 conncenter.desktop "${pkgdir}/usr/share/applications/conncentre.desktop" install -Dm644 configmgr.desktop "${pkgdir}/usr/share/applications/configmgr.desktop" install -Dm644 selfservice.desktop "${pkgdir}/usr/share/applications/wfcmgr.desktop" # install scripts install -Dm755 wfica.sh "${pkgdir}$ICAROOT" install -Dm755 wfica_assoc.sh "${pkgdir}$ICAROOT" # make certificates available ln -s /usr/share/ca-certificates/trust-source/* "${pkgdir}/opt/Citrix/ICAClient/keystore/cacerts/" c_rehash "${pkgdir}/opt/Citrix/ICAClient/keystore/cacerts/" } |
makepkg |
# Perl c_rehash script, scan all files in a directory # and add symbolic links to their hash values. my $dir = "/etc/ssl"; my $prefix = "/usr"; |
pacman -U icaclient-13.9.1-1-armv7h.pkg.tar.xz |
17. You might want build the optional packages webkitgtk2 from the AUR to get the GUI working correctly as well. Build and then. Install the package with pacman, It takes a long time to compile about 28hrs on the XU4.
cd ~ | |
git clone https://aur.archlinux.org/webkitgtk.git | |
cd webkitgtk | |
makepkg | |
pacman -U webkitgtk-2.4.11-12-armv7h.pkg.tar.xz | |
pacman -U webkitgtk2-2.4.11-12-armv7h.pkg.tar.xz |