Using Vim as editor in PowerShell

If you are used to using Vim or Vi as your editor, you might miss it when using powershell. Good news is, theres a way to get it. Download and install Vim for windows, create a profile.ps1 file in this path: (for me at least) c:\users\%username%\documents\WindowsPowerShell\ and type in the following:

$VIMPATH    = “C:\Program Files (x86)\Vim\vim74\vim.exe”

Set-Alias vi   $VIMPATH
Set-Alias vim  $VIMPATH

# for editing your PowerShell profile
Function Edit-Profile
{
vim $profile
}

# for editing your Vim settings
Function Edit-Vimrc
{
vim $home\_vimrc
}

Remember to change the $VIMPATH to your installation.

Now you have a fully functional vim from powershell.

/Kasper

Team Fortress 2 on Steam in 64 bit systems

Hi all.

I just tried to install Team Fortress 2 in Steam on my Ubuntu 15.04 64bit system, and I got this error message:

You are missing the following 32-bit libraries, and Steam may not run: libc.so.6

I asked google, and I found an article suggesting to do this: apt-get install lib6* – this will install a hell of a lot of software that you probably don’t need.

So instead of just following the suggestion I did an apt-search libc6, and found this package: libc6-i386, I installed it, and now I was able to install Team Fortress 2 in steam.

/Kasper

Forbinde til en VM i KVM med virsh console

En nem måde at forbinde til en KVM VM er ved brug af kommandoen virsh console ‘vm-name’. Man forbinder direkte til konsollen, og på den måde er man uafhængig af netværk. Mon ikke de fleste har prøvet at rive sig selv i håret, når man opdager at man har lukket sig selv ude fra SSH.

Når man først er inde skal man jo også ud igen, hvis man er vant til at arbejde med SSH skriver man naturligt exit når man vil ud, men så ender man bare i login prompten, stadig på den samme maskine. Når man logger ind kommer et fint lille hint der fortæller at “Escape character is ^]”, og hvad betyder så det? Jo, det må være noget med “Ctrl+AltGr+9”, jeg kan afsløre med det samme at det virker ikke. På min maskine med dansk tastatur layout er det “Ctrl+5”, det er jo dejligt nemt, når man først har brugt ½-1 time på at finde ud af det 🙂

Alt i alt en nem og hurtig måde at logge ind på de enkelte virtuelle maskine og måske endnu vigtigere en god backup, hvis man har dummet sig med netværket.

Installer MPEG-2 licens på Raspberry Pi

Raspberry Pi er lavet med henblik på at den skal kunne købes af alle, derfor er der sparet alle steder hvor det er muligt. En af de steder der er sparet er i CPU’ens mulighed for at decode visse codecs, istedet for bare at ligge en licens ind fra starten, der ville forhøje prisen for alle, har man valgt en model hvor man selv køber en licens, hvis man vil bruge raspberry pi som mediecenter og har brug forat afspille disse codecs.

For mit vedkommende gælder det primært de optagelser jeg laver med min mythtv server, de ligger tit i MPEG-2 format og dem kan jeg så ikke uden videre afspille på min OpenElec installation på raspberry pi.

Løsningen er at købe en licens her: http://www.raspberrypi.com/mpeg-2-license-key/

Omregnet koster den ca. 25 dkr, det er lige til at overkomme, men hvordan får man den så installeret?

Inden man bestiller skal man lige hav fundet serienummeret på sin CPU, det gøres således:

SSH til din raspberry pi. På en Openelec er std. kodeord openelec, og brugernavnet er root. Fra windows kan man bruge Putty, på Linux kan man bruge terminalen og skriv:

ssh -l root ip-adresse-på-raspberry-pi

Når man er logget ind kører man kommandoen:

cat /proc/cpuinfo

Det ser sådan her ud:

root@stuen’s password:
##############################################
# OpenELEC – The living room PC for everyone #
# …… visit http://www.openelec.tv …… #
##############################################

OpenELEC (official) Version: 4.0.6
Stuen:~ # cat /proc/cpuinfo
processor    : 0
model name    : ARMv6-compatible processor rev 7 (v6l)
Features    : swp half thumb fastmult vfp edsp java tls
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xb76
CPU revision    : 7

Hardware    : BCM2708
Revision    : 000f
Serial        : 0000000002529fb3
Stuen:~ #

Min raspberry hedder Stuen, bare for at undgå misforsatåelser 🙂

Når man har fået fat i serienummeret kan man bestille sin licens.

Efter et par dage dumper der en mail ind, med en specifik genereret kode der passer til din raspberry pi, nu skal den så installeres, det gøres som følger:

Log ind på din raspberry med ssh igen, i mappen /flash skal der være en config.txt fil, måske findes den allerede, ellers skal den laves. Men inden vi gør noget skal vi lige sikre os at vi kan skrive i /flash mappen, den er nemlig mounted “read only”, vi remounter den lige med “read write”. Gør dette fra root folderen (cd /)

mount /flash -o remount,rw

Nu kan vi skrive i mappen og enten editere den fil der allerede ligger der, eller lave en ny. Filen skal indeholde en linie med “decode_MPG2=den-kode-du-fiki-din-mail”

vi /flash config.txt

tryk på “i” for at skrive i filen

tryk :wq for at gemme (kolon efterfulgt af w og q write/quit)

Vi er en editor der kan virke lidt besværlig til at begynde med, men lær dig selv de mest basale kommandoer, den findes stort set på alle Unix/Linux systemer

Når du har gemt filen skriver du reboot i konsollen, systemet genstarter og du kan nu se MPEG2 filer 🙂

Langsom opstart af citrix sessioner på linux.

Jeg har tit undret mig over at mine Citrix xendesktop sessioner der startes op via et webinterfcae på en citrix access gateway, starter langsommere op på linux maskiner end på windows, i dag fandt jeg så en løsning (og en forklaring).

Vi starter med løsningen:

sudo ln -sf /dev/urandom /dev/random

Forklaringen må i få en anden dag 🙂

Og den kommer nu….

Både /dev/random og /dev/urandom bruges til at lave tilfældig data på et linux system. Begge filer opbygges ved at opsamle tilfældige data på systemet f.eks. når man arbejder med et program der placerer data i hukommelsen. Forskellen er at /dev/random stopper med at producere data når der ikke længere produceres data på maskinen, det er derfor man kan starte Citrix sessionen hurtigere op ved at køre musen rundt på skærmen, eller ved at åbne andre programmer mens man venter. /dev/urandom stopper derimod ikke med at producere tilfældig data, den genbruger den data der allerede er opsamlet, og bygger videre med eksisterende data.

Derfor er det også anbefalingen at bruge /dev/random når den tilfældige data skal bruges til at lave kryptering, da der teoretisk er en mulighed for at forudsige den tilfældige data.

Citrix gør altså hvad de skal, men det tager bare så lang tid 🙁

Hvordan gøres dette på Windows? Her starter sessionen også med det samme, ligesom hvis man bruger /dev/urandom på linux.

Fejl i Citrix Receiver for Linux amd64 (x86_64)

Den for tiden nyeste Citrix Receiver for Linux der er frigivet d. 23 April 2012 kan downloades i en 64bit deb pakke fra Citrix’ download område. Men der er et problem med pakken der gør at man får en irriterende fejl under installationen.

Jeg have hentet pakken og forsøgte at installere den på min Ubuntu 12.10 med kommandoen:

sudo dpkg -i icaclient_12.1.0_amd64.deb

Ovenstående resulterer i denne fejl:

E: Sub-process /usr/bin/dpkg returned an error code (1)

Fejlen skyldes at der under installationen laves at arkitektur check der fejler og derfor ikke kan finde den korrekte arkitektur for systemet. Dette rettes ved at finde denne fil:

/var/lib/dpkg/info/icaclient.postinst

Her skal følgende rettes:

echo $Arch|grep “i[0-9]86” >/dev/null
if [ $? -ne 0 ]; then
NotIntel=1
fi

Til:

echo $Arch|grep -E “i[0-9]86|x86_64” >/dev/null
if [ $? -ne 0 ]; then
NotIntel=1
fi

Nu finder scriptet arkitekturen og kører igennem uden fejl. Koden der skal rettes begynder i linie 2648.

Citrix Receiver for Linux, SSL error 61

Citrix leverer af en eller anden grund ikke SSL certifikater fra de dominerende udbydere med i deres installation af receiver klienten. Det betyder at man får denne fejl når man forsøger at logge på f.eks. en VDI maskine:

Citrix receiver error messageLøsningen er at kopiere det nødvendige certifikat fra udbyderen man bruger ind i cacerts mappen der ligger under: /opt/Citrix/ICAClient/keystore/

Den hurtige løsning er at tage de certifikater der følger med firefox installationen (hvis man har den installeret) og kopiere dem ind:

sudo cp /usr/share/ca-certificates/mozilla/*.crt /opt/Citrix/ICAClient/keystore/cacerts/

Ovenstående kommando løser problemet i de tilfælde hvor man bruger en leverandør som er med i de certifikater firefox installerer. (De fleste jeg har prøvet)

Ifconfig, send IP adressen automatisk

Forleden skulle vi have lavet ændringer i vores IP adresser i et lokale i kælderen på mit job hvor jeg har en lille test maskine stående. Maskinen kører DHCP og da jeg er doven og gerne ville slippe for at gå ned og finde den nye adresse efter de havde lavet ændringerne, biksede jeg dette sammen og lavede et CRON job der kørte på et tidspunkt hvor jeg viste de ville være færdige med ændringerne.

ifconfig | grep -v 127. | perl -nE ‘/dr:([^ ]+)/ && say$1’ | mail -s “Min nye adresse:” { min@mail_adresse.dk}

Nu fik jeg en mail med den nye IP adresse og slap altså for at gå en tur i kælderen 🙂

I eksemplet grepper jeg med -v som er IKKE, jeg vil altså ikke have interfacet der starter med 127. Duskal måske tilpasse dette til dit eget setup.

Nu står det her altså til en anden god gang.

/Kasper

Citrix receiver til Linux med flere skærme.

Der sker desværre ikke så meget i udviklingen af citrix klienten til Linux kaldet “Citrix Receiver for Linux”. Windows og Mac versionerne er en del foran når det kommer til brugervenlighed på klienten. Med brugervenlighed mener jeg at man i de andre klienter super nemt kan konfigurere brugen af USB, HDX og brugen af flere skærme, det skal selvfølgelig være super svært og nørdet i Linux klienten. Jeg vil herunder komme med et eksempel fra det virkelige liv (mit) for at understrege forskellighederne.

Hvis man på en windows maskine vil have sin citrix session til at strække sig over flere skærme gør man følgende:

  1. Start en session op og sørg for at den kører i “window” mode. (altså ikke maximeret)
  2. Træk vinduet ind midt på de to skærme, så halvdelen af vinduet med citrix sessionen er på hver skærm.
  3. Maximer vinduet.

Nu kører du i en session der strækker sig over to skærme.

På en linux klient skal man gøre følgende:

  1. Brug adskellige timer, måske dage på at søge i diverse forummer og i dokumentation fra citrix.
  2. Find ud af at wfica programmet i /usr/lib/ICAClient/ mappen understøtter en række attributter.
  3. Prøv at køre programmet med -span attributten og modtag følgende fejlmeddelelse:
    kasper@laptop:/usr/lib/ICAClient$ ./wfica -span h
    Error: 12 (E_MISSING_INI_ENTRY)
    Please refer to the documentation.
    Error in configuration file.
    Section “ApplicationServers” must contain an entry “”.
    kasper@laptop:/usr/lib/ICAClient$ ./wfica -span o
    Error: 12 (E_MISSING_INI_ENTRY)
    Please refer to the documentation.
    Error in configuration file.
    Section “ApplicationServers” must contain an entry “”.
    kasper@laptop:/usr/lib/ICAClient$ ./wfica -span a
    Error: 12 (E_MISSING_INI_ENTRY)
    Please refer to the documentation.
    Error in configuration file.
    Section “ApplicationServers” must contain an entry “”.
    kasper@laptop:/usr/lib/ICAClient$
  4. Find på ubeskrivelig vis frem til at der skal stå “-span 1,2” og forsøg nu at finde ud af hvordan man sørger for at denne attribut bliver kørt når man vil starte en virtuel desktop fra citrix webinterfacet.
  5. Find ud af at attributten skal sættes ind som en environment variabel.

Kommandoen “wfica -span h” burde returnere en liste med de skærme man kan angive som aktive, og som man gerne vil have strukket sessionen ud over, jeg aner ikke hvorfor jeg får ovenstående fejl.

Altså: for at citrix sessionen skal strække sig over 2 eller flere skærme skal man definere environment variablen WFICA_OPTS. Det gøres sådan her:

export WFICA_OPTS=”-span 1,2″

Dette kan f.eks. sættes ind i /$HOME$/.bash_profile eller en anden fil der køres når maskinen starter op.

Nu skulle det gerne virke 🙂

Jeg siger ikke at alle er ligeså tungnemme som mig, og skal bruge både halve og hele dage på at finde ud af ovenstående, men min påstand er altså at det er langt nemmere på windows platformen. Og det irriterer mig grænseløst når man tænker på at hele virtualiserings cirkusset (for Vmware og Citrix’ vedkommende) er bygget på Linux.