Category Archives: Raspberry Pi - Page 2

Owncloud client on Raspbian

I found that Raspbian comes with a very old version (1.2 something) of the Owncloud client. I found no prebuilt more up to date versions, so I built one myself:

$ sudo apt-get install cmake qt4-dev-tools build-essential
$ sudo apt-get install libneon27 libneon27-dev qtkeychain-dev
$ sudo apt-get install sqlite3 libsqlite3-dev libsqlite3-0
$ tar -xjf mirall-1.6.1rc1.tar.bz2
$ mkdir mirall-build
$ cd mirall-build/
$ cmake ../mirall-1.6.1rc1

The owncloud client is now in the bin folder.

Note: I took the commands above from my history, so there is a slight risk of a mistake. Also, I might have installed other packages before, that I am not aware of are not required for owncloud. Feel free to give feedback!

It is quite useful to put a Raspberry Pi with a USB-drive in someone elses home, and let it syncronize your files. That way, you have an off-site backup for worst case scenarios.

Installing Citrix Receiver on Raspberry Pi (Raspbian)

Update 20150222:The new RPi2 has an ARMv7 processor. It should run standard officially supported Citrix Receivers. I have not tested this myself.

It is obviously tempting to try to use a Raspberry Pi as a thin client. Often, that means a Citrix client, that requires Citrix Receiver (a closed source program available from Citrix in binary form only).

The problem
Raspbian is very much a normal Debian system. Citrix Receiver usually works nicely on Debian, and Citrix provides ARM binaries. But that would be too easy.

There are two ARM binaries available from Citrix (Receiver 13.0, the current)

  1. ARMEL – for ARM cpus without floating point support
  2. ARMHF – for ARM cpus with floating point support AND at least ARMv7

The Raspberry Pi is based on an ARMv6 WITH floating point support. This means that the ARMHF binary can never run, since ARMv6 lacks instructions required by ARMv7. But it also means that the ARMEL version can not run on Raspbian (although it could work on a Raspberry Pi with another OS).

There are different strategies to this problem: fixing the OS, or fixing the Citrix client.

RPi Thin Client Project
There is a nice effort called RPi Thin Client Project. The version from 2013-11-28 runs everything in ARMEL (without Hardware Float). The good thing is that it actually runs Citrix Receiver on a Raspberry Pi, and the performance of the Receiver itself is quite decent. However, it is based on Debian Unstable, and as I started updating and installing packages it did not work very well. Also, the RPi is not very fast even with Hard Float working, and without Hard Float everything except the Citrix client is very slow.

I see there is now a new Hard Float release of the RPi Thin Client project (2014-06-10), but as far as I can see it does not include Citrix Receiver (feel free to correct or update me!).

Unofficial Citrix Client
On a blog hosted by Citrix, there is an unofficial Citrix Receiver available for download. Obviously Muhammad Dawood has access to the real Receiver source code and he is allowed to compile it and distribute unofficial binaries. If you follow his instructions (install Raspbian as usual, then install Citrix Receiver with his special setup-script) you will get a Hard Float Citrix Receiver on a normal Raspbian system. Very nice! I am running it and it works very well, and I am much looking forward to an official/supported version.

The setup script modifies /boot/config.txt, mostly to overclock the RPi to maximize performance. My RPi did not accept it and refused to start. The good thing is that you can remove the SD card from the RPi and edit the config file with another computer. I only have ONE active line in my /boot/config.txt:

gpu_mem=128

…and you can probably change/remove that line too. I have an old 1280×1024
LCD display, that I connect via an Apple HDMI->DVI adapter, and a DVI-DVI cable. The display is comes up at correct resolution (although lxrandr can not run).

Other ideas
I was thinking about decompiling/recompiling one of the official ARM binaries. After reading a bit about it I gave up without thinking about trying. It probably violates any license agreement too.

Perhaps it could be possible to run some official binary (ARMEL, ARMHF or even x86) using QEMU user mode. Probably the performance would be completely unacceptable.

On Raspbian pages I read that theoretically it is possible to run ARMEL applications on Raspbian using Linux/Debian multi-arch, but there seems to be some hacks made in Raspbian, and this multi-arch probably practically unrealistic.

Conclusion
I recommend go with the inofficial/unsupported binaries from Citrix for now. Lets hope Citrix embraces this some day.

Raspberry Pi findings

I have had the opportunity to play around a bit with a Raspberry Pi lately. Here follows a few findings that perhaps can be helpful to someone.

Composite Video
The Raspberry Pi supports Composite Video. I failed to make the installer display anything at all using Composite Video, for Rasbian and Noobs. With Noobs, I know that it started and did something (becuase the SD card partitions were changed), but I dont know exactly what. With Rasbian, I dont know if I just failed to produce a bootable SD card.

Raspbmc worked perfectly over Composite Video though! So even if Raspbmc was not my first choice, it ended up being what I first played on with.

HDMI Video
I tried the Raspberry Pi Thin Client Project. Works perfectly on HDMI->DVI@1600×1200. So I guess most DVI displays can work fine with an HDMI->DVI-cable.

Raspbmc

  • You can disable XMBC editing startup conditions in /etc/init/xbmc.conf
  • Raspbmc comes with a firewall setting that blocks incoming traffic from outside its own subnet. You can fix this with iptables -F, or for more persistant change, edit /etc/???
  • Static IP is easiest configured via XBMC… /etc/network/interfaces does not seem to work properly, but perhaps my mistake

Raspberry Pi Think Client Project
Where I work, the Citrix Receiver (12.2.3) that comes with RPi-TC, does not work. Applications crashes (The X Request 62.0 caused error:…) quickly. However, I installed 13.0 from Citrix, and opened the Citrix Applications via the web browser – that works fine. But wfcmgr seems missing from 13.0 – I havnt found out what replaces it.

RPi-TC is slow – at the point of being unusuable for anything real. Except for the Citrix client and Remoted desktop client – those work quite fine, and that was the point anyway! Iceweasel is slow. I thought about installing Chromium, but no immediate success with that. Perhaps it is my memory card that is slow.

Noobs / Raspbian
When creating a memory card for Noobs in Linux:

  • fdisk: create one big partition with partition type “c”
  • mkfs.vfat: no need to use any arguments/flags except /dev/mmcblk0p1 (or whatever is your memory card)

With an HDMI cable Noobs and Raspbian works well. Now that I have seen Noobs that is what I recommend anyone to try first. And Raspbian seems fine.

For use as a desktop computer, the Raspberry Pi is in need of an accelerated X server – which will come, perhaps not in the form of an X server at all, but Wayland/Weston. You can try Weston in the latest/current Raspbian, but you can only run a terminal application (unless I have failed to understand something here). It looks very promising, but not useful for anything real at the moment. There is an fb-turbo-Xserver that is now standard, and it is a bit better than the old fb-Xserver that I used when this post was originally written.