Category: Linux

64 bit

26/06/2013:
Eindelijk is het zover, en ben ik voor mijn computer thuis (mijn EeePC is een oude Celeron, die ondersteunt enkel 32 bit, en de pc op mijn kot heb ik nog geen reden gehad) overgeschakeld op 64 bit. Ik had hier steeds mee gewacht omdat Ubuntu dit om de een of andere reden afraadt. Ik vermoed dat dit komt omdat ze, zo blijkt, niet zo negatief staan tegenover non-free software, en er zelfs een actief beleid rond voeren. En dan nog, met multiarch en dergelijke moet dit ook perfect lukken voor binaries die enkel beschikbaar zijn voor 32 bit.

08/07/2013:
Maar soit, 64 bit dus, en dat biedt een aantal voordelen. Naast het feit van de (kleine?) snelheidswinst die kan geboekt worden door het de grotere integers, daarnaast past Debian standaard meer optimalisaties toe, wegens een hoger aantal gemeenschappelijke uitbreidingen van de instructieset tussen de verschillende x86_64 processors die deze optimalisaties toelaten. Daarnaast was mijn computer op verschillende manieren "vertraagd", mogelijk dor resten van de "recommends", of door een gebrek aan bepaalde pakketten, al lijkt dat laatste me eerder onwaarschijnlijk. Maar misschien ook (vervuilde?) configuraties, of zelfs "corrupte" pakketten zouden hier de oorzaak van kunnen zijn.

Nu, deze keer heb ik terug mijn cleane manier van Debian installeren zonder ooit één recommend (automatisch) te installeren. Het probleem met de recommends is waarschijnlijk ook voor een stuk het feit dat je om den duur de recommends van de recommends van de recommends installeert, en daarbij zaken installeert die echt niet meer "nodig" of aan te raden zijn voor een volledige en optimale werking van het te installeren programma. Blijkt het toch wenselijk, kan het nog altijd handmatig geïnstalleerd worden.

Nu leverde de nieuwe installatie me niet zo veel grote problemen op, behalve dat, net zoals op mijn EeePC trouwens, in gcalctool, en op mijn desktop ook gedit, bepaalde icoontjes ontbraken. Nu blijkt tussen de recommends van gcalctool gnome-icon-theme-symbolic te staan, en dat lost het "probleem" inderdaad op. Vreemd genoeg staat die niet bij de recommends van gcalctool, en dit moet ik misschien toch maar eens melden?

Verder had ik wel problemen met het installeren van Avidemux. Die laatste gebruik ik voor het coderen van video's opgenomen met mijn analoge videokaart. Ik had die vroeger geïnstalleerd vanaf de repo van Deb(ian) Multimedia, maar ik wens die repo niet langer te gebruiken, aangezien het zowat het hele Debian multimedia-arsenaal vervangt, en ik toch meer vertrouwen hecht aan Debian zelf. Daarnaast heb ik zo mijn twijfels over de redenen voor het repackagen van die pakketten.

Nu zou ik dit kunnen oplossen door de repo toe te voegen met een lage prioriteit, maar dan kom ik nog steeds in de problemen, aangezien dan sommige pakketten de deb-multimedia versie vereisen. De oplossing was dus de nodige pakketten te downloaden, een paar aanpassingen te maken aan de dependencies, en die nieuwe pakketten dan toe te voegen aan mijn repo, voor zowel i386 als x86_64.

En als laatste had ik nog een probleem met SMPlayer. Die heeft als dependecy mplayer of mplayer2, en die laatste werd geïnstalleerd. Echter, hiermee ging het automatisch selecteren van de nodige codec nooit goed, en moest ik zelf de gebruikte codec selecteren in SMPlayer. Rechtstreeks met mplayer2 lukte het trouwens wel, wat me dus laat vermoeden dat het om een compatibiliteitsprobleem gaat tussen de mogelijkheid een codec te selecteren in SMPlayer en mplayer2. Door mplayer echter handmatig te installeren in de plaats van mplayer2 was het probleem echter opgelost.


PolicyKit

Vorig weekend heb ik de computer op de kamer van mijn ouders opnieuw geïnstalleerd. Er stond nog Ubuntu 10.04 LTS op, en die is nu vervangen door Debian 7.1. Én 64 bit (zoals ik ook sinds eind juni, maar daar volgt nog een artikel over)!

Er was echter nog een groot probleem: enkel root kon de computer uitschakelen, wat dus wel een vervelende situatie was. Wanneer men probeerde af te sluiten dan kreeg met een venster voor het invoeren van een wachtwoord, maar nog het root-wachtwoord, nog het wachtwoord van de gebruiker bleken van toepassing te zijn. Wanneer na een poging af te sluiten gekeken werd in het .xsession-error bestand, vond ik dit:

** (xfce4-session:2872): WARNING **: 'CanStop' method failed : GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files

** (xfce4-session:2872): WARNING **: 'CheckAuthorization' failed : The name org.freedesktop.PolicyKit1 was not provided by any .service files

Na wat zoeken bleek policykit-1 niet geïnstalleerd te zijn. Toen ik het pakket (gesimuleerd) probeerde te verwijderen van mijn computer, dan bleek dit meegeïnstalleerd te zijn met network-manager-gnome. Die laatste acht ik echter niet nodig op deze computer, aangezien er geen gebruik gemaakt wordt van VPN, WiFi, GSM, modem of wat dan ook waar een dergelijke dynamische manier van werken voordeel biedt, en dus heb ik hier nu manueel het pakket policykit-1 geïnstalleerd.


Digitaliseren

De oude videospeler was al een hele tijd kapot. Daarom kocht ik in 2010 een Daewoo SV-230, maar ik had op dat moment weinig tijd, en moest uiteindelijk tot de conclusie komen dat het geen storing was in de cassette, maar dat de videospeler gewoon na een tijdje de synchronisatie verloor, en er bleek niets te doen om dit op te lossen.

Om die reden werd er op het einde van vorig jaar een Funai D50Y-100M aangekocht in promotie bij de Eldi. De bedoeling was, en is, om de VHS collectie eindelijk eens te gaan digitaliseren. Er waren echter een paar problemen met de kwaliteit. Er verschenen geregeld groene banden in het scherm. Daar had ik een oplossing voor proberen te vinden met filters bij het coderen, maar dat lukte toch niet helemaal. Uiteindelijk besloot ik om eens te kijken wat het verschil is met wanneer ik de oude JVC, die ik in Gent gebruik voor mijn Raspberry Pi, te gebruiken om het SCART signaal van de nieuwe videospeler om te zetten in een antenne-signaal.

En dat bleek heel veel beter. Echter, waarschijnlijk ligt de oorzaak elders, en dan wel in het afstellen van de frequentie. Zo zou, volgens de West-Europese standaard (volgens scantv), kanaal 37, waar ik de video nu op gezet heb (zonder een inkomend antenne-signaal wel te verstaan, anders lukt het niet) op frequetie 558.25 Mhz. Echter, als ik mijn TV laat zoeken, dan geeft hij 559 Mhz (TV geeft geen getal na de komma, dat is finetuning), en dat komt dan weer overeen met de Oost-Europese standaard van 559.25 Mhz. En dan heb ik heel weinig storing. Als ik hier echter 559.50 Mhz van maak, dan heb ik perfect beeld, of toch zo perfect als het ooit zal worden met een VHS band. Met andere woorden, het is zeer goed mogelijk dat finetunen van de frequentie het probleem bij de Daewoo ook had gelukt. Misschien dat, als ik ooit tijd te veel heb, het eens test.

Maar, ergens hoop ik nu ook dat de Daewoo minder last zal hebben van storing op zijn videokanaal (die ik dus gebruik om een AV-kanaal te hebben voor mijn Raspberry Pi) door mijn computerscherm dan de oude JVC. De JVC heeft bijvoorbeeld ook erg veel last van statische elektriciteit, waardoor er nogal wat fijne stofdeeltjes aanhangen en een zwarte laag vormen. Dat zou nu misschien wel beter kunnen zijn. We zullen zien. Het digitaliseren kan in ieder geval beginnen.

Verder heb ik na wat testen gevonden dat 47 de ideale waarde is voor de saturatie. Op die waarde komen de kleuren van de video overeen met de opgenomen kleuren wanneer ik die afspeel op mijn TV. We krijgen dus in /etc/rc.local:
v4l2-ctl -c saturation=47

24/06/2013, 23:00:
Bij nog wat verder testen bleek toch de oude instelling beter, en gaf bij hij een nagenoeg perfect beeld op:

v4l2-ctl -c saturation=50
v4l2-ctl -c hue=-15

network-manager

Vorig weekend (het weekend van de 15de) heb ik mijn EeePC opnieuw geïnstalleerd met Debian Wheezy in het Engels. Om dit te doen ben ik begonnen met het installeren van een Debian basissysteem zonder grafische omgeving. Die heb ik pas geïnstalleerd nadat ik de recommends gedeactiveerd had. Nu, hierbij ben ik tot de constatatie gekomen dat network-manager-gnome geen WPA-wachtwoord zal vragen wanneer gnome-keyring niet geïnstalleerd is. Op zich werkt het wel, je moet het enkel vooraf ingeven in de instellingen. Nu is dat wel vervelend wanneer je even snel een verbinding wil maken met een nieuw WiFi-netwerk, en dus heb ik alsnog gnome-keyring, al is het een beetje tegen mijn goesting, geïnstalleerd.

Verder heb ik voor het gebruiken van mijn Vodafone-dongle om in het weekend gratis gebruik te maken van het 3G-netwerk van Proximus het pakket modemmanager nodig.


locales

Al van in het begin toen ik de eerste virtuele server had geïnstalleerd was er een probleem met de locales. Vaak resulteerde dit in een reeks warnings. Ooit had ik het gevonden, maar nooit niet hier geplaatst, en toen ik het later terug nodig had, wist ik het niet meer, en sindsdien heb ik er eigenlijk geen aandacht meer aan besteed. Tijdens de examens kwam ik het per toeval tegen toen ik zocht hoe de taal van mijn netbook te veranderen. Ik had die 2-3 jaar geleden immers toch nog in het Nederlands geïnstalleerd. Nu, ik heb hem nooit effectief veranderd, want ik heb hem opnieuw geïnstalleerd, en dit gedaan via een omweg met een commandline installatie, in plaats van meteen een grafische desktop. Daarna recommends uitgeschakeld, gecontroleerd wat er nog nodig was, zoals openssh-blacklist, en daarna de desktop geïnstalleerd.

Nu, de volgende commando's zullen respectievelijk de huidige environment variabelen tonen, de instellingen op uw computer aanpassen en een nieuwe locale genereren op uw computer:

locale
dpkg-reconfigure locales
locale-gen nl_BE.UTF-8

chronic

Aan het begin van de examens vond ik op een avond op mijn netbook, ik weet niet meer wat ik exact aan het zoeken was, maar ik vond het pakket moreutils. Dit bevat een aantal extra commando's, waaronder chronic, die enkel de output van een commando toont wanneer de exit code niet 0 was, of dus als er iets fout gelopen was.

Nu is dat exact wat ik een tijdje geleden geregeld heb om minder emails te krijgen, bijvoorbeeld van alle backups:
rsync ... > /home/kevin/.cronjobs/log/rsync-games-previous 2>&1 ; if [ $? -ne 0 ] ; then cat /home/kevin/.cronjobs/log/rsync-games-previous ; fi

Dit gebruikte ik sinds enkele maanden om hetzelfde te bereiken als chronic. Nu waren er hier en daar toch problemen met mijn aanpak, en het is op zijn zachts nogal lang. Daarom had ik graag beginnen overschakelen op chronic. Nu draait mijn server, voorlopig, nog Ubuntu 10.04, het is de bedoeling dat dit Debian Wheezy wordt. Maar, zover zijn we nog niet, en ik was bezig met het aanpassen van mijn crontab file voor de opnames, en wou dit meteen eens uittesten. Echter, toen ik moreutils installeerde bleek dit niet voldoende. Toen ik op de Ubuntu package pagina keek, wist ik ook waarom, de versie die gebruikt werd bevatte nog geen chronic. De enige versieafhankelijke dependency is libc6, en bij 0.45 van Ubuntu 12.04, en die heb ik dan ook toegevoegd aan mijn repo. Ondertussen is het trouwens al geïnstalleerd, en nu kunnen we verder.


Fonts

Eergisteren ben ik begonnen met het aanpassen van mijn stylesheets, en Verdana, die meestal geen alternatief had, te vervangen door sans-serif. Nu, toen ik vandaag dit ook wou doen op het forum en de site (blog en uploads waren reeds gebeurd) vroeg ik me af hoe men aan het Sans font komt onder Debian. Dit is een soort voorstelling van het standaard sans-serif font. Dit wordt geconfigureerd in /etc/fonts/conf.avail/60-latin.conf, waar in principe Bitstream Vera Sans als eerste staat, maar tegenwoordig wordt dit niet meer geïnstalleerd, en wordt dus de 2de in de rij gebruikt, DejaVu Sans, welke eigenlijk een doorontwikkeling is van de Bitstream font. Nu, dit is volledig conform mijn vermoedens.

Nu, de reden dat ik Verdana overal wou veranderen is gedeeltelijk uit principe, om de gebruiker de vrije keus te laten wat voor font te gebruiken, maar ook ingegeven door het feit dat ik al een tijdje, op Citrix voor Athena na (en het BIOS), alle non-free software verwijderd heb van mijn Eee PC, al was het niet veel, enkel unrar, flash en de MS fonts. Nu, de fontconfig op mijn Eee PC blijkt niet geüpdatet te zijn bij de upgrade naar Wheezy, want op mijn desktop wordt er automatisch een andere sans-serif gebruikt.

Nu, er zijn ook een aantal aliassen gemaakt in 30-metric-aliases.conf, maar niet voor Verdana. Nochtans, DejaVu Sans kan zeker als vervanger voor Verdana dienen, al gebeurt dit dus op zich automatisch, aangezien dat het standaard sans-serif font is. Echter, MyBB definieert bijvoorbeeld als alternatief voor Verdana Arial, die heeft wel een alias. Hierdoor bestaat Arial dus plots, en wordt "Arial" gebruikt. Nu, ik zou liever hebben dat dit netjes Verdana is, en dus moet ik de code, of toch zeker die van het MS font naar het vrije alternatief (het omgekeerde staat er ook in, maar is dus hier zeker niet nodig), kopiëren naar .fonts.conf in mijn home directory. Als ik die code dan aanpas voor het gewenste effect bekom ik het volgende:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<alias binding="same">
	  <family>Verdana</family>
	  <accept>
	  <family>DejaVu Sans</family>
	  </accept>
	</alias>
</fontconfig>

Citrix Cerftificaat

Al een tijdje kon ik niet meer inloggen op Athenax, de Athena-site waarvoor geen VPN-verbinding vereist is. Ik kreeg met name een SSL error 61 met verdere info over welk certificaat tekort was. Uiteindelijk vond ik dat de Citrix certificaten worden opgeslagen in /opt/Citrix/ICAClient/keystore/cacerts, en daar blijken dan slechts 5 certificaten in te staan. Her en der op het internet vind je tips om van die map een symlink te maken naar /usr/lib/ssl/certs, maar dat lijkt me niet verstandig. Wanneer je dan een nieuwe versie van Citrix installeert zal je er dan eerst aan moeten denken om die link ongedaan te maken, want anders kan Citrix onbedoeld een aantal certificaten toevoegen, verwijderen of wijzigen, en dat met effect op het gehele systeem. Dus, heb ik gewoon het betreffende certificaat gekopieerd naar de de Citrix-map, waardoor het probleem is opgelost.

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


Dropbox alternatief

Het is al een hele tijd dat ik de intentie heb om Dropbox te vervangen, en wel door een open-source alternatief, en liefst gebruik makend van ssh, zodat het onder eigen beheer kan functioneren, zonder speciale services, en dan valt, volgens mij, zo ongeveer alles af. Dat wil dus zeggen dat we zelf voor een oplossing zullen moeten zorgen. Het liefst natuurlijk zonder zelf algoritmen voor synchronisatie gaan schrijven, want die zijn er al in overvloed. We moeten dus op zoek naar een goede commandline synchronizer, die goed (en automatisch!) bestanden tussen een lokale en bvb een ssh-source synchroniseert.

Het is de bedoeling een vergelijkbare ervaring als Dropbox te bieden. Bijvoorbeeld, wanneer voor de (voltooiing van) een synchronisatie een bestand lokaal gewijzigd wordt, dan moet het oudere bestand genomen worden. Dat is zeker! Want, ik gebruik dit vooral voor het synchroon houden van programma-files. Ik wil mijn werk aan een project tijdens de week niet verliezen door Eclipse te vroeg op te starten in het weekend ... Ik vraag me af of er wel een situatie is waar je het nieuwste bestand zou willen. Volgens mij enkel als je tegelijkertijd aan een bestand werkt, dan eventueel, maar dat is zoiezo geen goed idee, want dat is de taak voor een systeem als SVN. Liefst wordt er van het bestand wel een backup gemaakt.

Als eerste was er dan de kwestie van welke synchronizer te gebruiken. Hierbij is de keuze gevallen op Unison, omdat het duidelijk en gemakkelijk via argumenten op de commandolijn aan te sturen valt, en ongeveer exact doet wat ik verlang, en wel met het volgende commando:
unison server local -batch -prefer server

Dit voldoet voldoet volledig aan mijn beschrijving van daarnet, behalve de backup. Dat kan wel, maar dan backupt hij alles. Dat wil ik nog kunnen beperken. Waarschijnlijk zal dit gebeuren door een extra script te schrijven dat alle backups verwijderd, behalve de conflicten. Omdat, zeker in het begin, de keuze voor Unison redelijk absoluut was, werd mijn nieuwe synchronizer de naam Unisister mee.

Nu heb ik inmiddels eens verder gekeken naar csync, wat gebruikt wordt bij ownCloud (de client daarvan is niet geschikt, want ownCloud gebruikt WebDAV, en daar heb ik geen zin in), en die heeft in ieder geval veel minder opties via de commandline. Als de basis van Unisister af is zal ik waarschijnlijk eens kijken naar hoe csync geïmplementeerd is in de ownCloud client. Gebruikt men config-files, of opties die geen weerslag hebben in de man-files? Dat zullen we dan zien. De mogelijkheid dat er zo wel gemakkelijk met backups van conflicten gewerkt zou kunnen worden is wel aanlokkelijk. Daarnaast is er geen actieve development van Unison meer, en worden er enkel nog bugfixes meer uitgebracht, aldus Wikipedia. Daarnaast ondersteunt Unison ENKEL ssh, waardoor het moeilijk wordt voor Windows gebruikers, maar dit is in de eerste plaats een programma die IK nodig heb, en van Windows heb ik geen last :P Maar blijkbaar is het niet zo vanzelfsprekend om ssh aan de praat te krijgen onder Windows, maar uiteindelijk: dit is geen programma die, zonder dat iemand zich er mee bezighoudt, gemakkelijk geinstalleerd kan worden onder Windows. Onder Linux is iets helemaal anders, vermits de dependenties gewoon geïnstalleerd kunnen worden door de package manager.

Nu, naast de (primaire) synchronizer-backend, is er natuurlijk nog een belangrijke keuze: de taal en de GUI. De keuze van de taal was redelijk snel gemaakt. C was hier niet echt van toepassing, vermits het uiteindelijk om een GUI om een bestaand commando gaat. Java is absoluut geen optie, is een belachelijke taal als je kijkt naar het geheugengebruik. Daarnaast had ik hier toch enkel ervaring met Swing, en dat is al helemaal geen optie. Het werd eigenlijk bijna onmiddellijk Python, en de voorgaande motivatie kwam achteraf. Een moeilijker keuze is die van de GUI. Omdat ik het enigszins cross-platform wou, en vooral naar andere toekomstige programma's toe, koos ik voor wxPython. Maar, ik was in eerste instantie wel vergeten dat dit een C++ library is, en ik heb toch eerder de neiging te kiezen voor C, wanneer ik moet kiezen tussen die twee. Maar, een ander argument om voor wxPython te kiezen was dat PyGTK niet meer verder ontwikkeld wordt naar GTK 3 toe, en vermits dit toch ooit waarschijnlijk de norm wordt, leek het voor mezelf redelijk zinloos om nu PyGTK te leren gebruiken.

Ondertussen heb ik gezien dat het helemaal niet zo absurd is om GTK+ 3 te gebruiken in Python dmv PyGOobject. Daar bestaat een goede turorial voor, maar zo'n boel, ik heb geen zin om dat allemaal te gaan lezen op de PC. Veel handiger vind ik het om dit op papier te hebben, maar 140 pagina's daar begin ik niet zo graag aan. Toen dacht ik aan die persoonlijke drukdiensten waar ik ooit over las in de PCActive (dacht ik ...), en al snel vond ik inderdaad lulu, wat me bekend in de oren klonk. Enfin, ik had goesting om dat te bestellen, zeker toen ik keek naar de prijs op economy-paper. Maar, ik was de verzendkosten vergeten, maar ook: de economy optie laat enkel Digest en US Letter toe al papierformaat. Nu is het simpel, de ene is te klein, de andere te groot. Ik heb niet graag een boek vast (is toch groteorde 150) dat zo groot is, en Digest is te klein voor 80 karakters aan code. Nu is dit toch het minimum, er onder wordt het al snel absurd.

Nu, de bestaande turorial was zoiezo niet aangepast aan een limiet van 80 karakters. Dus, heb ik de broncode gedownload:
git clone https://github.com/sebp/PyGObject-Tutorial.git

Vervolgens heb ik deze aanpassingen aangebracht, en gecompileerd naar LaTeX met volgende commando:
make latexpdf PAPER=letter

Nu, spijtig genoeg lukte het niet om hier al de papiersoort aan te passen, ook niet door dit gewoon toe te voegen in de Makefile. Dus had ik ook enkele aanpassingen nodig aan de gegenereerde LaTeX-code. En, zo heb ik het boek aangemaakt. Nu nog geld overschrijven op PayPal. Het boek is well (nog) niet publiekelijk toegankelijk, maar je kan het zo ook gewoon zelf bestellen. Je moet enkel een front-cover verzorgen en je kan zo ook bijvoorbeeld kiezen om bijvoorbeeld toch Economy op US Letter te drukken, en toch gemakkelijk 2,50 euro besparen. Mocht er vraag naar zijn, of ik heb er goesting in, wil ik het wel openbaar maken. Ik zal wel proberen om er eens tijd voor te maken om de wijzigingen door te geven aan de oorspronkelijke auteur/project.

Maar enfin, ik zou het misschien lezen tijdens de examens, en dan kan ik het programma aanpassen naar native GTK. De reden is vooral omdat ik toch gemerkt heb dat het niet altijd optimaal is met wxWidgetrs om bijvoorbeeld theme-support te hebben. Ik zal daar toch echt serieus voor moeten zoeken voor specifieke iconen die wel in de icon-set zitten (de programma-iconen), maar niet in de standaard acties zitten. Ik vermoed dat dat veel gemakkelijk zal zijn met GTK. We zullen dan wel zien.


NFS met Raspbmc

Nu, met de Raspdebian, en nu ook met Raspbmc wil de sfs nfs-server niet meteen werken wanneer je die installeert. Na wat zoekwerk vond ik de volgende oplossing. Ik had die toen niet meteen hier gepost, en je ziet het, ik moest opnieuw zoeken:

apt-get remove rpcbind nfs-common
apt-get install rpcbind nfs-common nfs-kernel-server

Nog zo'n gevalletje was trouwens hoe de Pi kan ingesteld worden op PAL voor de analoge uitgang. Het antwoord is simpel: voeg de volgende regel toe in de /boot/config.txt (in Raspbmc kan dit via de instellingen, en waarschijnlijk is dat een betere optie voor wanneer de config opnieuw gegenereerd moet worden, zodat het dan niet opnieuw moet worden toegevoegd:
sdtv_mode=2