Azimout's Linux weblog

Citrix on Linux

leave a comment »

In order to connect to the EP VDI system using Citrix on Ubuntu Linux, I’ve had to manually download and install the following certificate:

It needs to be copied into the following folder:


Otherwise I get an error about not being able to connect to

Written by azimout

17/03/2020 at 21:09

Posted in Uncategorized


leave a comment »

sudo lspci -vnn |grep VGA -A 10
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
Subsystem: Hewlett-Packard Company Device [103c:7008]
Flags: bus master, fast devsel, latency 0, IRQ 46
Memory at d0000000 (64-bit, non-prefetchable) [size=4M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 5050 [size=8]
Expansion ROM at [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915

sudo glmark2
glmark2 2014.03
OpenGL Information
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) Ironlake Mobile
GL_VERSION: 2.1 Mesa 10.3.2
[build] use-vbo=false: FPS: 115 FrameTime: 8.696 ms
[build] use-vbo=true: FPS: 261 FrameTime: 3.831 ms
[texture] texture-filter=nearest: FPS: 423 FrameTime: 2.364 ms
[texture] texture-filter=linear: FPS: 428 FrameTime: 2.336 ms
[texture] texture-filter=mipmap: FPS: 422 FrameTime: 2.370 ms
[shading] shading=gouraud: FPS: 276 FrameTime: 3.623 ms
[shading] shading=blinn-phong-inf: FPS: 315 FrameTime: 3.175 ms
[shading] shading=phong: FPS: 240 FrameTime: 4.167 ms
[shading] shading=cel: FPS: 219 FrameTime: 4.566 ms
[bump] bump-render=high-poly: FPS: 165 FrameTime: 6.061 ms
[bump] bump-render=normals: FPS: 437 FrameTime: 2.288 ms
[bump] bump-render=height: FPS: 338 FrameTime: 2.959 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 252 FrameTime: 3.968 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 100 FrameTime: 10.000 ms
[pulsar] light=false:quads=5:texture=false: FPS: 375 FrameTime: 2.667 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 140 FrameTime: 7.143 ms
[desktop] effect=shadow:windows=4: FPS: 238 FrameTime: 4.202 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 61 FrameTime: 16.393 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 47 FrameTime: 21.277 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 60 FrameTime: 16.667 ms
[ideas] speed=duration: FPS: 191 FrameTime: 5.236 ms
[jellyfish] : FPS: 209 FrameTime: 4.785 ms
[terrain] : FPS: 19 FrameTime: 52.632 ms
[shadow] : FPS: 198 FrameTime: 5.051 ms
[refract] : FPS: 39 FrameTime: 25.641 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 450 FrameTime: 2.222 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 366 FrameTime: 2.732 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 464 FrameTime: 2.155 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 465 FrameTime: 2.151 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 401 FrameTime: 2.494 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 450 FrameTime: 2.222 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 450 FrameTime: 2.222 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 311 FrameTime: 3.215 ms
glmark2 Score: 270

Written by azimout

01/03/2015 at 21:57

Posted in Uncategorized

Connect to WPA2 wifi from Linux server

leave a comment »

If you have a terminal-only, no-GUI linux server that you need to connect to a WPA2 PSK network, here’s what you need to add to /etc/network/interfaces:

auto wlan0

iface wlan0 inet dhcp

wpa-ssid {myssid}

wpa-psk {mywpapsk}


To calculate your 256-bit WPA PSK from your ASCII passphrase, run the following command:

wpa_passphrase ssid passphrase

Be warned, the result is 32 characters long.

Written by azimout

28/01/2015 at 20:20

Posted in Howto

Script to automatically remove all but latest Linux kernel

leave a comment »

Here’s a bash script I wrote to automatically remove all but the latest installed Linux kernel.

I run it daily in a cron job.


# find all vmlinuz files in /boot
# replace "/boot/vmlinuz" with "linux-image"
# sort and remove the last line
x=$(find /boot -name vmlinuz* -print | sed 's/\/boot\/vmlinuz/linux-image/' | sort | head -n -1)

# if there's more than one Linux kernel installed, remove all but the latest one
if [ ${#x} -ne 0 ]; then
 echo "removing" $x
 sudo apt-get purge $x

Written by azimout

02/11/2014 at 19:10

Posted in Uncategorized

Android Wear

leave a comment »

I got a Moto 360 for my birthday. Here’s my non-exhaustive review after wearing it for 2 days.

The display is gorgeous. The watch wakes up automatically when you turn it to look at it (excellent work on the 3D accelerometer), so IMHO the ambient mode is not really necessary. This way I charge it every night and end the day with 30-35% of battery left.

The step counter is pretty neat; it remains to be seen whether it will change my behaviour or not. The heart rate monitor can’t find my pulse half the time.

My phone sends me all sorts of notifications to the watch, like weather forecasts, emails, messages, etc. I can delete, archive, dismiss the notification. I can even try to answer by voice dictation, but it’s not yet accurate enough for that.

I can use it to control the music playback. I also get navigation instructions when navigating on the phone, which is not really useful in the car.

The voice search works pretty well, but half the time it claims to be offline, ie not connected to my phone. I still need to figure this one out.

I can use it to set a timer, start a stopwatch or set an alarm.

But the most useful feature for me is the reminders for upcoming appointments in my calendar.

Written by azimout

01/11/2014 at 11:23

Posted in Uncategorized

Migrating from one Google account to another

leave a comment »

Here’s the steps I followed and difficulties I recently encountered while migrating from one Google account to another:


You need to enable POP3 on the source account and then have the target account import them. This can take several hours days if (like me) you have accumulated many thousands of emails over several years. It will import all past email and then continue to import email arriving at the source account in the future.

One issue is that you lose the labels structure you had assigned to emails in the source Gmail account.

If you have enabled 2-step authentication on the source account (as you should), you’ll need to create an “application specific password” to give to the target Gmail account.

You’ll then have to change all your newsletter and mailing list subscriptions to point to the new address, and let all your contacts know that they should from now on contact you at your new address.


This one is totally straightforward; you export to a CSV file and import on the new account. All info is maintained, including groups.


Export all calendars into a ZIP file containing one iCal file per calendar. Create calendars on target account, import iCal files one-by one.

If you shared any of them with other users, you’ll need to share them again; in that case, tell the other users to remove the old instance of each shared calendar, otherwise they’ll see duplicate events.

If other users shared calendars with you, they’ll need to share them again.


Unfortunately, the only way seems to be to download everything, and then upload it again on the target account.


Profile: you’ll need to re-introduce this.

Photos: use Google Takeout to download them, then upload them again

Circles/People: Use Google Takeout, as described here

Posts: I haven’t found a way to migrate those.


Re-introduce your starred places manually.


Video Uploads: if you no longer have the originals, download each from Video Manager. Then upload each video anew.

Subscriptions: there seems to be no way to export your subscriptions. Just subscribe again, one-by-one.

Playlists, liked/favourite videos: Lists have to be public or unlisted, not private. Share them with yourself via email, then save them in your new profile.

Chrome Sync

Just sign out of the old account and sign into the new one. Bookmarks, passwords etc will remain in the browser when you sign out of the old account, and will then be imported into the new account when you sign into it.

Play Store

It is not possible to transfer purchased apps to another account.


You’ll need to reintroduce each note. You can email  to yourself the larger ones

Written by azimout

21/10/2014 at 18:05

Posted in Howto

Google Spreadsheet formula for calculating someone’s age

leave a comment »

=datedif(B2, today(), "Y") & " yrs, " & datedif(B2, today(), "YM") & " mnths, " & datedif(B2, today(), "MD") & " days"

(B2 is the birthdate)

Written by azimout

09/09/2014 at 09:38

Posted in Uncategorized

Installing Epson Stylus SX424W under Linux

leave a comment »

Out of the box, if you tell Ubuntu to add a network printer, it will find it (give it 5-10 seconds to search) and recognise its make and model. However, if you press proceed, it will get stuck searching for the driver.

The solution is to go to and search not for SX424W, but for SX420. Then download the correct driver for your system (.rpm or .deb, x86 or x64) and install it. There’s one driver for the printer and another one for the scanner.

After that, repeat the “add network printer” wizard.

Written by azimout

29/08/2014 at 07:39

Posted in Howto

Upgrade to CM11

leave a comment »

After freeing my Android a year ago, I decided to upgrade to a more up-to-date version of Android/CyanogenMod.

At first I upgraded from CM 10.1 to 10.2; however, many Google apps gave me a “cannot contact Google servers” error (mainly GMail, Google Calendar and Google Play; Maps worked fine).

I tried reinstalling the gapps .apk, I tried clearing the cache, I tried a factory reset and reinstalling CM. Nothing seemed to work. In the end, thanks to some forum thread I realized that maybe it does not work when you have 2-step authentication for your Google account (the authentication itself seemed to succeed on the phone, but then the sync services failed).

So, eventually I decided to try to upgrade to CM 11 nightly. The new problem was that the disk image would fail to install (some error about a get_metadata_recursive method). After some googling I realized that I needed a newer version of the ClockworkMod recovery, just wouldn’t cut it. So I downloaded and heimdall and tried flashing it, which also didn’t work (error message: no recovery partition found).

The solution was to install Rommanager and upgrade the CWM recovery from there. After that, I could install CM 11 and the corresponding Gapps, and now everything seems to work fine.

Written by azimout

02/03/2014 at 08:41

Posted in Problems

Rotate videos from the command line

leave a comment »

To rotate a video from the command line, use avconv (contained in the libav-tools package), which used to be called ffmpeg.

For a single file, type:

avconv -i original.mp4 -vf "transpose=1" rotated.mp4

Written by azimout

10/02/2014 at 09:45

Posted in Howto