Paretje's blog

Raspberry Pi voorbereiden

Eerst een stukje inleiding. Het gebeurt niet elke dag dat ik hier iets vertel van niet-technische aard, maar het zal later wat verduidelijken en het ligt op mijn lever. Het zit zo dat er vorige week problemen waren met het slot van de voordeur op mijn kot. Hierdoor stond de deur tijdens de week op een kier. Mijn fiets doe ik normaal op de gang op slot met het ringslot, niet zozeer uit wantrouwen voor mijn kotgenoten dat ze mijn fiets zouden stelen, maar omdat ze zo gedwongen worden toch iets voorzichtiger te zijn. Voorheen heb ik dat een periode niet gedaan, met als resultaat dat 's ochtends steeds mijn ketting er af was, en ik niet meteen (en niet zonder zwarte vingers) kon vertrekken, vandaar ... Nu doe ik dit 's middags meestal niet, omdat hij er dan niet zo lang staat, er ook heel wat minder fietsen staan, en zo kan ik sneller vertrekken. Vrijdag was ik even in de war, had wat pijn aan mijn been (was opgezwollen door een ongeval een week eerder) en ik heb hem niet op slot gedaan. U raadt het al: maandag was mijn fiets weg! Nu ben ik geen grote moraalfilosoof, maar waar gaan we naartoe! Fietsen stelen, tot daaraan toe, het lijkt een zeer populaire misdaad, maar om gewoonweg een huis binnen te stappen, en leuk met een van de fietsen op de gang terug naar buiten gaan, dat slaat echt alles!!

Enfin, er moest dus een oplossing komen, en thuis reed ik rond met de fiets waar mijn vader mee reed tijdens zijn studententijd in Limburg. Omdat ik nogal gehecht ben aan de luxe van de fiets, wilde ik dan ook zo nel mogelijk een vervangfiets, en dat was de ideale oplossing. Vandaag moest mijn moeder toch in Gent zijn, en dus ben ik na de les vandaag naar het UZ geweest, en de fiets opgehaald. Deze morgen was er echter een pakketje uit "China" mee, en mijn moeder had dat voor mij reeds meegebracht.

En zo komt het dat ik vandaag al even bezig kon zijn met mijn bestelling uit Hong Kong, bestaande uit 2 pakjes elektrische draden, waarvan eentje besteld wegens mogelijk nuttig in de toekomst (kost 1 euro, en als ik het nodig heb zou ik terug zolang moeten wachten). Deze draadjes dienen om de GPIO van de Raspberry Pi te gebruiken, met als doel er een infrarood-ontvanger op aan te sluiten. Die heb ik besteld bij conrad, maar staat al van eind februari genoteerd als klaar om te verzenden. Zal straks nog maar eens een vriendelijk mailtje sturen, en anders morgen maar eens bellen, want mijn geduld raakt op.

Maar, als ik die ontvanger dan eindelijk heb kan ik mijn Raspberry Pi dan omtoveren tot een uiterst flexibele Media Speler/Center. Het is een Speler in die zin dat slechts een beperkt aantal formaten kan afspelen (de processor zelf is niet krachtig genoeg om wat dan ook af te spelen, en het is dan ook volledig afhankelijk van de video-chip), maar anderzijds heb je wel de vrijheid van een Media Center, inclusief de mogelijkheid om er via USB evt DVB-T of zo mee te bekijken, want ik ook zal proberen. Wordt vervolgd ...


Xfce4 Screenshooter

Gisterenavond heb ik nog even voor het slapengaan gekeken om iets op te lossen waar ik me al lang aan ergerde. Het is namelijk zo dat het screenshot programma van Xfce4 de gewone datum van de huidige locale gebruikt om het datum-gedeelte bij de bestandsnaam gebruikt. Dat zorgt ervoor dat screenshots helemaal door elkaar komen te staan, aangezien de alfabetische volgorde dus niets meer zegt over de volgorde in het aanmaken van de screenshot.

Dus heb ik snel de broncode gedownload:
apt-get source xfce4-screenshooter

Vervolgens heb ik het probleem gelokaliseerd tot lib/screenshooter-utils.c. Vervolgens heb ik het volgende gedaan in de gedownloade map:

quilt new 02_make-date-locale-independend.patch
quilt add lib/screenshooter-utils.c
# pas het bestand aan
quilt refresh
quilt header -e

Vervolgens ben ik naar de debian map gegaan en daar het volgende commando uitgevoerd:
DEBEMAIL=info@Online-Urbanus.be DEBFULLNAME=Paretje EDITOR=nano dch -v 1.8.1-1-paretje1 package xfce4-screenshooter

Vervolgens kon ik het pakket aanmaken:
debuild -i -us -uc -b

Vervolgens heb ik het pakket op mijn repo geplaatst. Vervolgens heb ik ook een paar verouderde pakketten van wheezy verwijderd.


Creative WebCam PD1001

21/12/12:
Enkele dagen geleden wou ik op mijn kot mijn oude webcam die ik eens meegenomen had om te experimenteren testen. We hebben er twee, en deze webcam had de minste kwaliteit, en had indertijd geen standaard-drivers in Linux. Er was wel een third-party driver die je zelf moest compileren, maar dat was echt de eerste weken/maanden dat ik Linux gebruikte, en durfde dat niet aan, later bleek onterecht, maar enfin.

Nu, al die jaren later was ik wel een beetje curieus, en stopte het kabeltje in de USB-poort. Het lichtje ging aan, en dat leek al een reden tot feesten, maar in cheese bleek er helemaal geen webcam te zijn. Na wat opzoekwerk vond ik dat er wel eens wat problemen waren met cheese, en probeerde guvcview. Maar het was duidelijk, dit stuk antiek werd ook nu niet standaard ondersteund.

Dan maar eens gezocht naar een driver, en vond de epcam driver. Maar, spijtig genoeg wilde die niet meteen compileren. De driver werd voor het laatst gewijzigd in 2010, en sindsdien is het nodige veranderd in de kernel. Zo is de kernel_lock functionaliteit terug verdwenen/vervangen, en zitten ze nu met v4l2. Deze laatste bestond toen al, maar had nog compabiliteits-functies.

Al bij al moest ik de nodige dependencies installeren, aangepaste videodev.h (ik weet niet meer waar ik het origineel eerst vond) in /usr/src/linux-headers-3.2.0-4-common/include/linux/videodev.h plaatsen, de oude manier van locking die de driver gebruikte voor kernels ouder dan 2.28 ook voor kernels vanaf 2.39 gebruiken, en de macro die werd gebruikt wanneer niet in compatibiliteits-modus van v4l gekopieerd in de driver-source. In de videodev.h moest ik enkel #include <stdint.h> verwijderen, omdat dit compiler-errors gaf. Op die manier waren alle problemen opgelost, en kon de driver compileren en installeren.

Maar, misschien mede door de driver, maar de kwaliteit is er zeker niet op vooruit gegaan, maar ik durf echt niet meer zeggen of het vroeger ook zo was, maar er zijn in ieder geval een aantal plaatsen die geen correcte kleur hebben, maar kan net zo goed een defect aan de sensor zijn natuurlijk, en hij was nieuw verder zeker niet beter, maar weet niet of dat er zo was.

Maar, mijn doel is bereikt, ik kreeg de PD1001 aan de praat met Linux 3.2.0. Hier is de source-code, en zal het misschien even vermelden op het Raspberry Pi forum, want er was daar iemand die hem ook aan de praat wou krijgen. Dat is dan het nadeel van in het Nederlands te schrijven, ik zal niet simpelweg naar hier kunnen verwijzen, maar zal dus het verhaal moeten samenvatten in het Engels.

Voor echt gebruik als webcam is dit natuurlijk niet geschikt, maar mocht ik dat willen kon ik ook gewoon de pd1030 gebruiken, die wel standaard werkt en een veel betere kwaliteit heeft. Maar, misschien kan ik het bijvoorbeeld wel gebruiken als een soort camera-bewaking op mijn kot.


WD TV Live Update

Tijdens de examens was er plots terug een update voor de WD TV Live, en ik heb die geïnstalleerd, maar wat een vergissing was dat: ik moest nu zowat een halve minuut wachten voor een video in beweging kwam, YouTube was in hogere resolutie waardoor het niet meer lukte met mijn internet-verbinding, en daarnaast was de vernieuwde YouTube-interface enkel voorzien op een scherm aangesloten op HDMI, want met analoge tulp lag een heel stuk van de interface gewoon buiten het scherm.

Als ik zo kijk naar de thread over de update op het WD-forum ben ik duidelijk niet de enige! Gelukkig wordt er wel een downgrade aangeboden. Heb dit gedownload, uitgepakt op stick, stick in de WD TV Live, upgrade-procedure doorlopen, en hij werkt terug als vanouds, zonder nodeloze ergernissen!


NFS problemen

Tijdens de examens vorig jaar had ik het probleem dat mijn NFS schijven niet meer automatisch gemount werden bij het opstarten van mijn computer. Uiteindelijk bleek de afwezigheid van ifupdown de oorzaak te zijn, en de oplossing van mijn probleem.

Maar, ik heb ondertussen alweer een tijdje dit probleem. Als tijdelijke oplossing heb ik gewoon bij al mijn computers mount -a toegevoegd aan de rc.local. Maar, op een avond heb ik op de computer beneden die ik geprepareerd heb voor mijn zuster, waarover later meer, toch even uitgezocht wat het probleem is. Ik kon het terugbrengen tot een if statement die altijd false oplevert. Waarschijnlijk heeft dit als oorzaak dat er ergens een extra pakket nodig is.

Het heeft te maken met de controle of er een verbinding is, alleen faalt die dus altijd. Verwijderen werkt perfect eens de computer werd opgestart, maar levert natuurlijk problemen op als ik later de computer opnieuw wil starten, want dan zal hij vastlopen op het moment dat hij probeert een verbinding te maken, nog voor er een werkende verbinding is. Ik moet dus eens uitzoeken waar de waarde bepaald wordt die er getest wordt, en hoe het dus komt dat die waarde bij mij niet bepaald is. Dat zal dus meteen de oplossing zijn voor mijn probleem.


IRC chat

Rond de periode van de examens wou ik er voor zorgen dat ik meer meldingen kreeg van activiteit op de IRC chat met Pidgin. Het is namelijk zo dat ik met behulp van een private IRC server een mogelijkheid tot chatten wil verzorgen met het thuisfront. Maar, ik wou daarbij meer een melding krijgen, zodat het meer zou opvallen als er een bericht werd gepost op de chat als ik bezig was. Nu heb ik daarvoor uiteindelijk libnotify plugin voor pidgin gebruikt, die u echter niet meer in de Debian repos voor Wheezy zitten. In mijn draft voor dit bericht stond enkel het volgende:
libindicate libnotify
Maar wat libindicate daarmee te maken heeft???

Maar, nu ik even terug keek in de repos, zag ik het pakket pidgin-guifications. Dat blijkt een nog vollediger pakket aan te beiden. Het standaard thema is dan wel 0 aan waarde, vermits zelfs de melding wordt afgebroken, maar er bestaan bijvoorbeeld ook gewoon thema's die de libnotify-meldingen nabootsen, dus ...

Maar, ondertussen heb ik naar een manier gezocht om vanuit Gent gemakkelijk een verbinding te maken met de IRC server op mijn netwerk in Eggewaarts. Tot noch toe maakte ik daar telkens een nieuw ssh-tunnel voor. Ik heb nu daarvoor gebruik gemaakt van autossh op mijn Raspberry Pi (waarover later meer;)). autossh biedt alle ssh functionaliteit aan, maar maakt automatisch een nieuwe verbinding als de huidige verbroken wordt. Dat laatste is zeer belangrijk, den maar aan een verandering van IP-adres, maar ook als de verbinding om wat voor reden even verbroken wordt, moet die terug hersteld worden. Door autossh te straten met start-stop-daemon in /etc/rc.local heb ik dus altijd, als mijn Pi aanstaat, een IRC verbinding. Als ik er dan voor zorg dat de tunnel terug over het LAN geopend wordt, dan kan ik dus terug altijd een IRC verbinding aangaan op mijn computer.

Het exacte commando zal ik later een posten, heb het nu niet bij de hand ...

20/02/2013, 20:06:
Zoals beloofd:
sudo -u user2 start-stop-daemon background start exec /usr/bin/autossh -T -C -N -g -L port1:lokaal:port2 user@server


ATI drivers

Voor de examens was er het project voor Scriptingtalen. Voor het project werd gebruik gemaakt van de Pyhton-bindings van Blender. Nu had ik dus zeker mijn grafische kaart nodig, en net dan waren er problemen met de ATI drivers die niet compatibel waren met de nieuwe X-server, en ik geloof dat het niet lukte met de open-source drivers, of niet goed genoeg en dus ben ik maar snel achter een Geforce 210 geweest. Niet sneller dan de ingebouwde ATI chip, maar toch drivers die dus beter onderhouden worden. Er zijn zeker een paar minpuntjes ook aan de nvidia drivers, maar toch is het terug een beetje bevestigd dat je zekerder bent bij Nvidia voor Linux drivers. Als bijkomend voordeel geld dat de video-versnelling van Nvidia veel gemakkelijker aan de praat te krijgen is dan die van ATI.

Nu moest ik natuurlijk nog er voor zorgen dat ook effectief gebruik werd gemaakt van de Nvidia kaart, en niet van de ingebouwde chip, en dat dit correct gebruikmaakte van de Nvidia drivers. Daarvoor vond ik het volgende commando:
X -configure

Zo leert mij de bash geschiedenis van root mij tenminste, want zelf wist ik het niet meer exact, en heb ik het volgende gebruikt voor de configuratie van een oude computer voor beneden aan de TV (waarover later meer):
Xorg -configure

Waarschijnlijk is er geen verschil, heb het niet nagekeken, maar toch het vermelden waard, aangezien het aantoont dat als wel iets hebt horen luiden, maar de klepel niet meer weet hangen, je toch tot een iets andere oplossing kan komen. Nu, in dit geval nu niet zo zeer, maar toch.


Terug?

Het is al een hele tijd geleden dat ik hier nog eens een nieuw artikel heb toegevoegd, en dat is nochtans niet omdat ik geen stof had voor schrijven, maar heb deze zomer nooit geen tijd gehad om de artikels die voortvloeiden uit de examenperiode in juni effectief uit te werken en te "redden" voor het nageslacht, en vooral voor mezelf :P

Ik zal vandaag een aantal posts toevoegen, waarvan enkele dus gaan over zaken uit een ver verleden en een vorig jaar. Maar, de info is wel nog up-to-date, of wordt gewoon meteen gecombineerd met de nodige extra informatie, met hoe dit geëvolueerd is tot de huidige situatie. Ik vind het belangrijk dit hier te posten, omdat je na een tijdje sms terug tegen hetzelfde probleem aanloopt, en het anders soms moeilijk is om de oplossing voor de geest te halen, en soms voor een stuk opnieuw de oplossing gezocht moet worden, weliswaar met een sneller resultaat vanwege het feit dat je nog wel een globaal beeld hebt, laar het is nog handiger gewoon alle details te hebben, en die eenvoudig te kunnen doorzoeken. En wie weet is er iemand anders nog mee gebaat?


Repo opgeschoond

Ik heb vandaag de repo eens opgeschoond. Voortaan zijn er enkel nog pakketten voor Ubuntu Lucid (10.04) en Debian Squeeze en Wheezy. Hardy, Karmic en Lucid zijn niet meer beschikbaar, wat trouwens heel wat later is dan de officiële ondersteuning. Ik heb het altijd uitgesteld omdat ik niet wist of ik bv. Jaunty thuis nog nodig had, maar nu weet ik wat nodig is, vermits enkel mijn server en mijn moeder Ubuntu Lucid draaien, mijn computers en mijn broers Wheezy, en mijn eeePC Squeeze.

Deze opschoning kwam er naar aanleiding van het toevoegen van Blender 2.63 aan mijn repo, om zo problemen te vermijden bij het Scriptingtalen-project. Het is de bedoeling dat ik eens kijk om OpenJDK 7 toe te voegen aan de Squeeze backports, maar dat is voor later.


Uw vuilniszakken buiten zetten?!

Tja, geregeld moet je eens je vuilnis buiten zetten, maar het gebeurt af en toe dat je het (bijna) vergeet. Handig zou zijn mocht je dit in je gesofisticeerde GSM stoppen, helaas is dat zo een post waar ik het liefst op bezuinig, en dus heb ik een simpel Nokia-model. Geen sprake dus van herhalende gebeurtenissen, en week per week instellen, tja als je ze vergeet buiten te zetten, zal je ze ook wel vergeten instellen he. Daarom wou ik het wel eens gaan regelen met behulp van libnotify.

Je kan dit systeem ook vanuit de commandline aanspreken met behulp van het commando notify-send, waardoor ik tot het volgende commando kom:
notify-send -u 'critical' -i '/usr/share/icons/Tango/scalable/places/user-trash.svg' 'Donderdag, vuildag!' 'Vergeet uw vuilzakken niet buiten te zetten, he!'

Maar, dat is nog niet voldoende om het te laten werken vanuit een cronjob, want daar heb je geen rechtstreeks toegang tot de X-server. Al snel kwam ik de suggesties met DISPLAY en DEBUS_SESSION_ADDRESS tegen, maar dat hielp niet. Maar op een gegeven moment vond ik een blog waar sudo -u werd gesugereerd, en inderdaad in combinatie met de DISPLAY werkt dit:
export DISPLAY=:0.0; sudo -u kevin notify-send -u 'critical' -i '/usr/share/icons/Tango/scalable/places/user-trash.svg' 'Donderdag, vuildag!' 'Vergeet uw vuilzakken niet buiten te zetten, he!'

Maar, blijkbaar kan het nog korter en mag je dus met omgevingsvariabelen gewoon DISPLAY definiëren en zonder beëindiging van het commando notify starten, en wordt DISPLAY meteen doorgegeven:
DISPLAY=:0.0 sudo -u kevin notify-send -u 'critical' -i '/usr/share/icons/Tango/scalable/places/user-trash.svg' 'Donderdag, vuildag!' 'Vergeet uw vuilzakken niet buiten te zetten, he!'