You are hereMonthly archive / Oktober 2009

Oktober 2009


Netbook partitioneren

Dit is het vervolg op het installeren van Crunchbang. In dit tweede deel leg ik uit hoe ik de netbook gepartitioneerd heb.

  • Tijdens de installatie

    Tijdens de installatie heb ik gekozen voor een aangepaste partitionering:
    /dev/mmcblk0   /home   ext4   7948 MB
    /dev/sda1      /       ext4   6497 MB
    /dev/sda2      swap           1571 MB
    /home staat dus op een SDHC-kaartje.
    Swap is net iets groter dan het geheugen, om achteraf eventueel suspend-to-disk te kunnen doen.
    Voor de reden waarom ik ext4 op SSD kies ipv ext2, zie http://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime.
  • Partities labelen

    Alvorens te herstarten, ga ik eerst de partities labelen:
    crunchbang@crunchbang:~$ sudo e2label /dev/sda1 root
    crunchbang@crunchbang:~$ sudo e2label /dev/mmcblk0 home
    crunchbang@crunchbang:~$ sudo swapoff -a
    crunchbang@crunchbang:~$ sudo mkswap -L swap /dev/sda2
    Setting up swapspace version 1, size = 1534200 KiB
    LABEL=swap, UUID=90bee9f3-aa1f-481f-b336-6682bd29e43c
    crunchbang@crunchbang:~$ sudo swapon -a
  • /etc/fstab aanpassen

    Nog steeds zonder te herstarten, mount ik eerst het filesystem van de netbook en pas ik /etc/fstab als volgt aan:
    Mounten:
    sudo mount /dev/sda1 /mnt
    sudo cp /mnt/etc/fstab /mnt/etc/fstab.original
    sudo nano /mnt/etc/fstab
    Inhoud van /etcfstab:
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults              
    LABEL=root      /               ext4    noatime,errors=remount-ro       1
    LABEL=home      /home           ext4    noatime               2
    LABEL=swap      none            swap    sw                    
    tmpfs           /tmp            tmpfs   defaults              
    tmpfs           /var/tmp        tmpfs   defaults              
    tmpfs           /var/cache/apt/archives tmpfs  defaults      
    Een beetje uitleg hierbij:
    • Ik hou niet zo van cryptische UUID's. Waarschijnlijk zijn er héél goede argumenten om ze te gebruiken, maar ik verkies LABELs in mijn /etc/fstab. Als ik ooit mijn SDHC-kaartje vervang, dan moet ik dat gewoon home labelen, en het werkt direct zonder dat /etc/fstab aangepast moet worden.
    • EDIT: In een eerdere versie van deze blogpost stond dat ik / en /home gebruikte als labels. Ik heb dit veranderd naar root> en <code>home (dus zonder slashen) na een vervelende ervaring bij de upgrade naar Karmic Koala (Ubuntu 9.10). Meer informatie in deze blogpost.
    • relatime is aangepast naar noatime om slijtage van de SSD te verminderen.
    • /tmp, /var/tmp en /var/cache/apt/archives worden als tmpfs gemount, ook weer om slijtage van de SSD te verminderen.
    • Omdat /var/cache/apt/archives op een tmpfs staat, moet /var/cache/apt/archives/partial iedere keer opnieuw aangemaakt worden bij het booten. Daarom zet ik het volgende in (/mnt)/etc/rc.local, vlak boven exit 0:
      mkdir -p /var/cache/apt/archives/partial
  • /boot/grub/menu.lst aanpassen

    Ook in grub heb ik liever een label. Daarvoor moet (/mnt)/boot/grub/menu.lst aangepast worden:
    ## default kernel options
    ## default kernel options for automagic boot options
    ## If you want special options for specific kernels use kopt_x_y_z
    ## where x.y.z is kernel version. Minor versions can be omitted.
    ## e.g. kopt=root=/dev/hda1 ro
    ##      kopt_2_6_8=root=/dev/hdc1 ro
    ##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
    ## kopt=root=UUID=c621ef63-d3d4-4eb0-9e0a-d9aec203d36e ro
    # kopt=root=LABEL=root ro

    ## default grub root device
    ## e.g. groot=(hd0,0)
    ## groot=c621ef63-d3d4-4eb0-9e0a-d9aec203d36e
    # groot=(hd0,0)
    Ik moet nog update-grub draaien, maar dan wel binnen de geïnstalleerde omgeving:
    $ sudo chroot /mnt /bin/bash
    $ update-grub
    $ exit
    Nu is het eindelijk tijd om te rebooten.
  • netbook-todo

    1. Aangepaste kernel

      "Sickboy" heeft een aangepaste kernel gemaakt, geoptimaliseerd voor de Acer Aspire One 110. Zijn kernel werd ook opgepikt door Kuki, een Ubuntu-afgeleide toegespitst op de Acer Aspire One. Meer info over zijn kernel op http://www.aspireonekernel.com/

      Installatie gaat als volgt:

      $ cd downloads/
      $ wget http://www.aspireonekernel.com/releases/linux-image-2.6.29.1.20090414.si...
      $ wget http://www.aspireonekernel.com/releases/linux-headers-2.6.29.1.20090414....
      $ sudo dpkg --install linux-image-2.6.29.1.20090414.sickboy_2.6.29.1.sickboy.20090414_i386.deb
      $ sudo dpkg --install linux-headers-2.6.29.1.20090414.sickboy_2.6.29.1.sickboy.20090414_i386.deb
      gevolgd door een reboot.

      Helaas, deze kernel werkt toch niet zo goed. Zo wordt het SD-kaartje aan de linkerkant niet meer herkend, met als gevolg dat /home niet gemount wordt. Dus vliegt die kernel er weer af:

      $ sudo aptitude purge linux-image-2.6.29.1.20090414.sickboy linux-headers-2.6.29.1.20090414.sickboy
      Wordt vervolgd...

    Crunchbang installeren

    Graag deel ik met mijn schaarse bezoekers mijn installatie-ervaringen met Crunchbang.
    1. Crunchbang downloaden

      http://crunchbanglinux.org/wiki/downloads
      Ik heb de 32bit Lite Edition genomen (.iso van 427MB)
    2. Installer op usb-stick zetten

      Maak gebruik van UNetbootin: http://crunchbanglinux.org/wiki/howto/aspireone#installation
      Opmerking: als je dit doet vanuit een bestaande Ubuntu-installatie, installeer dan UNetbootin via synaptic of aptitude in plaats van handmatig te downloaden.
      Opmerking2: het voordeel van UNetbootin, is dat je de usb-stick dan ook nog voor andere zaken kan gebruiken. Zo staan er bij mij bijvoorbeeld ook nog mijn PortableApps op (voor Windows).
    3. Crunchbang installeren

      Usb-stick insteken, netbook opstarten, F12, usb kiezen om van te booten.
      Het installeren op zich duurde ongeveer 11 minuten. Vrij snel, dus.
      In een volgende blogpost beschrijf ik het partitioneren.

    Google Wave

    Google Wave is nu blijkbaar dé hype in Twitter- en blogland. Ik heb eigenlijk geen idee wat het is, maar ik heb enkele maanden geleden ook de rest van de lemmings gevolgd en m'n emailadres achtergelaten bij Google om een invite te krijgen.

    Voor alle duidelijkheid: ik heb op dit moment nog géén invite gekregen voor Google Wave. Het heeft dus géén zin om mij via Twitter of Facebook om een invite te vragen. Ik ga er van uit dat er binnenkort ferm mee zal geleurd worden, net zoals met Google Mail indertijd.

    Wat ik wel wil doen, dat is een lijstje geven van mensen die van mij een invite zullen krijgen van zodra ik er zelf een gekregen heb, en ook waarom. Ik weet niet hoeveel invites ik zal kunnen uitdelen, ik gok een stuk of 10.
    In willekeurige volgorde:

    1. Mijn vrouwke. Uiteraard, wat had je gedacht. "Voor zijn Annette alles" waren ooit de gevleugelde woorden van mijn vader. Luv ya, bebeh!
    2. @koenvervloesem, omdat hij de eerste was die de ironie inzag van een tweet van mij over Google Wave.
    3. Bart. Neen, je kent hem waarschijnlijk niet, hij zit niet in de twittosfeer of de blogosfeer, maar het is wel door zijn schuld dat ik me ooit ben gaan interesseren voor "kompjoeters".
    4. @peterdedecker, omdat hij medebeheerder is van http://foutparkeerders.be. En omdat wij met ons tweeën het kartel verderzetten in 't klein.
    5. @ritco. Dank zij hem heb ik in 1995 mijn allereerste website ooit gemaakt.
    6. @lievetje. Een van de weinige vrouwen die ik als een echte vriendin beschouw. Sorry Jimmy geen invite voor jou, ga er maar een aflutsen bij je vrouw. Wink Nose
    7. Jeroen. Net zoals Lieve een vriend die ik heb overgehouden aan m'n regentaat, en al bijna een zo harde geek als ik.
    8. Michel en
    9. Vincent. Peppie en Kokkie van de avondschool. Grapje, gasten!
    10. @pieterjanvl
    11. @ctfTijG
    12. Deze is voor de persoon die de origineelste commentaar achterlaat op mijn blog. Lekker subjectief, ik weet het. Wie het mij via mail, Twitter of Facebook vraagt, wordt al op voorhand uitgesloten. Mag ik ook effe wat traffiek naar mijn blog omleiden ja? Dankuwel! Wink Nose

    Ubuntu upgraden naar Karmic Koala Beta

    Wie niet kan wachten op de release van Ubunu 9.10 Karmic Koala einde deze maand, nu al de beta wil installeren, maar geen cd wil downloaden & branden, die hoeft niet te wanhopen.

    Open uw terminalvenster en typ het volgende in:

    sudo do-release-upgrade -d

    do-release-upgrade is normaal alleen voor wanneer er een nieuwe release is, maar met -d wordt er ook gekeken naar de huidige development versie.

    Je moet wel geduld hebben, want afhankelijk van het aantal geïnstalleerde pakketten, kan dit gemakkelijk een uur of langer duren.

    WAARSCHUWING: Wat je zeker NIET moet doen, is in /etc/apt/sources.list overal jaunty door karmic vervangen en dan een sudo aptitude update && sudo aptitude full-upgrade draaien, want dan loop je ferm risico dat de upgrade de mist in loopt. Tussen verschillende Ubuntu release wil het installatieprofiel namelijk al eens veranderen, en aptitude is niet gemaakt om daar rekening mee te houden, maar do-release-upgrade wel.

    Mobile Vikings call history in Excel

    Op de website van Mobile Vikings is het niet zo gemakkelijk om in één keer een overzicht te krijgen voor je call history voor een periode van langer dan 1 dag.
    Een export naar XML of CSV of XLS voorzien ze ook niet.

    Toch is het vrij eenvoudig om uw call history binnen te trekken in uw favoriete spreadsheet.

    Microsoft Excel 2003

    Ga naar File -> Open (Bestand -> Openen) en geef de volgende bestandsnaam in:
    https://mobilevikings.com/api/1.0/rest/mobilevikings/call_history.xml?from_date=2009-09-01T00:00:00&page_size=1000

    Een beetje uitleg:

    from_date=2009-09-01T00:00:00
    is de startdatum van de call log, in dit voorbeeld 2009-09-01.

    page_size=1000
    is het aantal items per pagina. De default waarde is 25, maar omdat ik alles op één pagina wil, geef ik een voldoende groot getal in.
    EDIT: gewijzigd naar 1000 na een van onderstaande comments. Het is niet de bedoeling dat ik de server van Mobile Vikings laat crashen.

    Volgens de API documentatie van Mobile Vikings kan je ook nog een einddatum meegeven:

    until_date=2009-10-01T00:00:00

    Excel komt eerst vragen om uw Mobile Vikings login en wachtwoord.

    Daarna vraagt Excel hoe het XML-bestand geopend moet worden. Kies daar Als een XML lijst.

    Klik op OK bij de melding dat er geen schema is.

    Je krijgt dan je call history. Ik vind het wel handig om dan te kunnen filteren op is_data of op is_sms.

    OpenOffice.org Calc

    Om een of andere reden wil OOo Calc het XML-bestand niet rechtstreeks van de URL openen (getest met Portable OpenOffice.org 3.0).
    Ik heb het ook geprobeerd met Insert -> Link to External Data, maar dat lukt ook niet.
    En als ik de URL eerst open in een browser en dan lokaal opsla, dan opent OpenOffice.org het bestand met Writer ipv met Calc, dwz je ziet dan de raw XML. Daar valt dus weinig mee aan te vangen.

    Als iemand weet hoe ik het aan de praat krijg voor OpenOffice, smijt het aub in de comments. Dankuwel!

    Mobile Vikings call history sucks

    Mobile Vikings call history sucks

    Op de website van Mobile Vikings is het niet zo gemakkelijk om in één keer een overzicht te krijgen voor je call history voor een periode van langer dan 1 dag.
    Een export naar XML of CSV of XLS voorzien ze ook niet.

    API van Mobile Vikings misbruiken

    API van Mobile Vikings misbruiken

    De url is https://mobilevikings.com/api/1.0/rest/mobilevikings/call_history.xml?from_date=2009-09-01T00:00:00&page_size=10000
    Ineens 10.000 records tegelijk proberen opvragen, dat zullen ze wel aankunnen zeker? Wink Nose

    Mijn sources.list voor Jaunty

    Mijn /etc/apt/sources.list ziet er als volgt uit:
    deb http://ftp.belnet.be/mirror/ubuntu.com/ubuntu/ jaunty          main restricted universe multiverse
    deb http://ftp.belnet.be/mirror/ubuntu.com/ubuntu/ jaunty-updates  main restricted universe multiverse
    deb http://ftp.belnet.be/mirror/ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
    deb http://ftp.belnet.be/mirror/ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
    deb http://archive.canonical.com/ubuntu            jaunty          partner

    Meer zet ik er niet in. Proper, nietwaar?

    Third-party repositories zet ik consequent in een .list-bestand in /etc/apt/sources.list.d/.

    Voor het automatisch importeren van keys voor PPA-repositories heb ik een handig scriptje.

    Niet te vergeten, na iedere aanpassing van de sources moet het volgende gebeuren:
    $ sudo aptitude update
    $ sudo aptitude safe-upgrade

    Automatisch importeren van PPA signatures

    Af en toe voeg ik repositories toe van de Launchpad PPA's. Om niet steeds foutmeldingen te krijgen in verband met het ontbreken van signatures, automatiseer ik het toevoegen van de signatures. Meer info is te vinden op Er zijn verschillende scripts in omloop (in Bash, Perl en waarschijnlijk ook in Python) maar ik heb gekozen voor de versie van Ubuntu developer Dominic Evans.
    $ sudo aptitude install bzr
    $ bzr branch lp:~oldman/+junk/launchpad-update ~/downloads/launchpad-update
    $ sudo cp /home/amedee/downloads/launchpad-update/launchpad-update /usr/local/bin/
    $ sudo chmod 775 /usr/local/bin/launchpad-update
    Wanneer er nu een nieuwe PPA toegevoegd is, moet ik alleen maar het volgende ingeven om de key binnen te halen:
    $ sudo launchpad-update
    $ sudo aptitude update
    Merk op dat dit alleen werkt voor bijkomende repositories die op Launchpad zitten.

    Blueman

    De standaard bluetooth software in Ubuntu zuigt harder dan een Dyson, ik heb liever blueman. Gelukkig zit die vanaf 9.10 (Karmic Koala) standaard in Ubuntu, maar in Jaunty dus nog niet. Dus voeg ik eerst de ppa toe.
    $ sudo tee -a /etc/apt/sources.list.d/ppa.list
    deb http://ppa.launchpad.net/blueman/ppa/ubuntu jaunty main
    ^C
    $ sudo launchpad-update
    $ sudo aptitude update
    $ sudo aptitude install blueman
    Voor wie het de eerste keer gemist heeft: launchpad-update is een handig scriptje om automatisch de signatures van Launchpad ppa's binnen te trekken.

    Daarna moet er in ~/.config/openbox/autostart.sh nog volgende aangepast worden worden om de blueman applet te starten:

    # Start Bluetooth applet
    #bluetooth-applet &
    blueman-applet &
    Knap: ik zat beneden met de netbook, de gsm lag boven op de slaapkaper, en er was bluetooth verbinding.

    Stillere netbook

    De ventilator van mijn netbook maakt net iets te veel geruis naar mijn goesting. Dat kan stiller, zoals beschreven op https://help.ubuntu.com/community/AspireOne110L#Fan%20Control
    $ sudo aptitude install dmidecode
    $ cd ~/download
    $ wget http://aceracpi.googlecode.com/svn/trunk/acer_ec/acer_ec.pl
    $ wget http://electronpusher.org/~rachel/acerfand
    $ chmod a+x acerfand
    $ sudo cp acer_ec.pl acerfand /usr/local/bin/
    Omdat ik bios versie 0.3309 heb, moet er nog een kleine aanpassing gemaakt worden in /usr/local/bin/acerfand:
    BIOS_VERSION_3109="v0.3109"
    BIOS_VERSION_3114="v0.3114"
    BIOS_VERSION_3304="v0.3304"
    BIOS_VERSION_3305="v0.3305"
    BIOS_VERSION_3309="v0.3309"
    BIOS_VERSION_3310="v0.3310"

    ...

    case "$BIOS_VERSION" in
            "${BIOS_VERSION_3309}" | "${BIOS_VERSION_3310}")
                    #change: handle 3309 seperate 0xAF -> 0x21
                    R_FAN=55
                    R_TEMP=58
                    FAN_CMD_OFF=21
                    FAN_CMD_AUTO=00
                    RAW_FAN_STATE_OFF="0x21"
                    ;;
    Nu moet /usr/local/bin/acerfand alleen nog toegevoegd worden onderaan in /etc/rc.local, vlak boven exit 0.

    Ik heb ook nog een bestandje /etc/acerfand.conf aangemaakt, hoewel dat strikt genomen niet echt nodig is:

    INTERVAL=5
    FANOFF=60
    FANAUTO=70

    Kleiner lettertype

    Ik vind het lettertype op mijn netbook een beetje te groot. Oplossing: DPI wijzigen naar 96. Hoe? Door het aanpassen van /etc/X11/xorg.conf, zie https://help.ubuntu.com/community/AspireOne110L#Fonts
    Section "Device"
            Identifier      "Configured Video Device"
            Option          "NoDDC"
    EndSection

    Section "Monitor"
            Identifier      "Configured Monitor"
            DisplaySize     195 113
    EndSection
    Ook voor de console wil ik een kleiner font. Oplossing: de framebuffer VGA-mode instellen. Zie ook Eerst kijken welke modes mijn scherm aan kan:
    $ sudo aptitude install hwinfo
    $ sudo hwinfo --framebuffer | grep "Mode 0x"
      Mode 0x0312: 640x480 (+2560), 24 bits
      Mode 0x0314: 800x600 (+1600), 16 bits
      Mode 0x0315: 800x600 (+3200), 24 bits
      Mode 0x0301: 640x480 (+640), 8 bits
      Mode 0x0303: 800x600 (+832), 8 bits
      Mode 0x0311: 640x480 (+1280), 16 bits
    De hoogst mogelijke resolutie is dus 800x600, 24 bits, mode 0x0315. Dit hexadecimale getal moet nog omgezet worden naar decimaal:
    $ sudo aptitude install gbase
    $ gbase -h 315 | grep Dec
    Dec: 789
    Nu /boot/grub/menu.lst aanpassen:
    ## additional options to use with the default boot option, but not with the
    ## alternatives
    ## e.g. defoptions=vga=791 resume=/dev/hda5
    # defoptions=quiet splash vga=789
    evenals /etc/usplash.conf (om de splash screen te centreren):
    # Usplash configuration file
    # These parameters will only apply after running update-initramfs.

    #xres=1024
    #yres=600
    xres=800
    yres=600
    Tenslotte grub en initramfs bijwerken:
    $ sudo update-grub
    $ sudo update-initramfs -k all -u
    Daarna nog eens rebooten om te testen.

    WiFi LED

    Out-of-the-box werken de WiFi-LED en de WiFi-schakelaar van de Acer Aspire One niet op Ubuntu, maar die kunnen wel geactiveerd worden. Gevonden op https://help.ubuntu.com/community/AA1/Fixes
    $ sudo aptitude install linux-backports-modules-jaunty
    Rebooten om te testen.

    Nederlandstalige interface voor Crunchbang

    De interface van Crunchbang staat in het Engels. Omschakelen naar Nederlands doe ik met
    $ sudo aptitude install language-pack-nl
    $ sudo aptitude purge language-pack-en
    Daarna moet /var/lib/locales/supported.d/local aangepast worden, zodat alleen NL blijft staan (de rest in commentaar). Vervolgens alle locales verwijderen en opnieuw genereren:
    $ sudo locale-gen --purge

    Plaats vrijmaken op de SSD van de netbook

    Mijn netbook heeft een solid state schijf van maar 8 GiB. Dat is echt niet veel, en daarom heb ik /home op een apart SDHC-kaartje gezet.
    Maar er zijn nog veel meer manieren om plaats te besparen.
    1. Localepurge

      $ sudo aptitude install localepurge
      In de configuratie laat ik alleen nl_BE, nl_BE.UTF-8 en NL_BE@euro geselecteerd staan.
      De eerstvolgende keer dat ik sudo aptitude safe-upgrade draai, was dit de plaatsbesparing:
      localepurge: Disk space freed in /usr/share/locale: 33504K
      localepurge: Disk space freed in /usr/share/man: 3144K

      Total disk space freed by localepurge: 36648K
      Dus een kleine 36 MiB werd vrijgemaakt.
    2. Overbodige software verwijderen

      Het verwijderen van volgende (voor mij) overbodige pakketten leverde nog eens een plaatsbesparing van 144 MiB OP:
      $ sudo aptitude purge bsd-mailx casper cowsay dmsetup ~exim4 fglrx-modaliases figlet \
             gparted gworldclock irssi jfsutils linux-image-2.6.28-13-generic \
             linux-restricted-modules-2.6.28-13-generic mailx moc moc-ffmpeg-plugin mutt naim \
             newsbeuter ~ntfs ~nvidia parted reiserfsprogs remastersys-crunchbang-desktop-lite \
             ~ubiquity ufw usplash-theme-ubuntu wodim xfsprogs xserver-xorg-video-apm \
             xserver-xorg-video-ark xserver-xorg-video-ati xserver-xorg-video-chips \
             xserver-xorg-video-cirrus xserver-xorg-video-geode xserver-xorg-video-i128 \
             xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic \
             xserver-xorg-video-nv xserver-xorg-video-openchrome xserver-xorg-video-r128 \
             xserver-xorg-video-radeon xserver-xorg-video-rendition xserver-xorg-video-s3 \
             xserver-xorg-video-s3virge xserver-xorg-video-savage \
             xserver-xorg-video-siliconmotion xserver-xorg-video-sis xserver-xorg-video-sisusb \
             xserver-xorg-video-tdfx xserver-xorg-video-trident xserver-xorg-video-tseng \
             xserver-xorg-video-vmware xserver-xorg-video-voodoo

    Tesamen is daarmee 180 MiB vrijgemaakt. Mooi, maar toch niet echt spectaculair veel.
    In een van de volgende blogposts beschrijf ik een manier om volledig /usr van op een compressed filesystem te draaien.

    Wie nog andere suggesties heeft om plaats te besparen, mag dat altijd laten weten in de comments.

    Onmisbare console software

    In een vorige blogpost heb ik geschreven over software die ik van mijn netbook gesmeten heb, om plaats te besparen.

    Anderzijds zijn er enkele commandline tools die ik absoluut niet kan missen, en die ik altijd als eerste installeer op iedere Ubuntu- of Debian-installatie:

    $ sudo aptitude install curl di elinks htop less mc nano ncdu nmap patch rsync screen ssh telnet
    Welke console software is voor jou onmisbaar, en wordt standaard niet geïnstalleerd door jouw Linux distributie? Laat het weten in de comments!

    Java development: Eclipse

    Ik wil mijn netbook gebruiken voor Java development (voor avondschool) dus vliegt er nog een deftige ontwikkel-omgeving op: Eclipse.
    $ sudo aptitude install sun-java6-jdk sun-java6-doc
    $ sudo aptitude install eclipse
    Helaas, het blijkt dat dit de hopeloos verouderde Eclipse versie 3.2 is. Dan zit er niets anders op dan nog een paar repositories bij te installeren:
    $ sudo tee -a /etc/apt/sources.list.d/ppa.list
    deb http://ppa.launchpad.net/eclipse-team/ppa/ubuntu intrepid main
    deb http://ppa.launchpad.net/eclipse-team/ppa/ubuntu jaunty main
    deb http://ppa.launchpad.net/yogarine/eclipse/ubuntu jaunty main
    ^C
    $ sudo launchpad-update
    $ sudo aptitude update
    $ sudo aptitude safe-upgrade
    (meer uitleg over launchpad-update)

    Pfft... dan geeft Eclipse vieze foutmeldingen bij het opstarten. Foert, ik disable de extra repo's en uninstall Eclipse:

    $ sudo aptitude purge eclipse
    $ sudo aptitude update
    Daarna download en installeer ik de versie van de website. Om eens speciaal te doen, deze keer geen http-download maar een torrent. Om aan te tonen dat dit ook bruikbaar is voor legale downloads. :-p
    $ cd ~/downloads
    $ rtorrent http://build.eclipse.org/technology/phoenix/torrents/java/eclipse-java-galileo-linux-gtk.tar.gz.torrent
    $ tar -xvf eclipse-java-galileo-linux-gtk.tar.gz
    $ mv eclipse ~
    $ touch ~/bin/eclipse
    $ chmod 755 ~/bin/eclipse
    ~/bin/eclipse is een dummy script dat ~/eclipse/eclipse opstart:
    #!/bin/bash
    exec ~/eclipse/eclipse
    exit

    Nu ga ik ook nog Eclipse instellen om JavaDocs te gebruiken. Zie ook http://edwin-chain.blogspot.com/2009/04/install-javadocs-and-setup-in-ec...
    Het juiste pad in mijn geval is /usr/lib/jvm/java-6-sun-1.6.0.14/docs/api/

    Bij de start van Eclipse wordt er gevraagd waar de workspace gezet moet worden. Ik heb die gezet in mijn Dropbox-directory, zodat de workspace automatisch gesynchroniseerd wordt.

    Mindmapping tool: freemind

    Om snel nota's te structureren tijdens de les, gebruik ik graag mindmapping. Freemind is daar een handig programma voor.

    Eerst moet er een repository toegevoegd worden om de laatste versie van Freemind binnen te trekken. Dit staat in /etc/apt/sources.list.d/freemind.list:

    Helaas heb ik nog geen key gevonden voor deze repository, dus gaat die security waarschuwingen blijven geven. Als iemand daarvoor een oplossing weet? Laat maar weten in de comments. Dank bij voorbaat!

    Daarna installatie van freemind en de freemind-plugins:

    $ sudo aptitude update
    $ sudo aptitude install freemind freemind-plugin-? javahelp2
    Meer uitleg over de installatie op de website van Freemind.

    Dropbox zonder Nautilus

    Dropbox is een handige manier om mijn documenten op verschillende computers te synchroniseren. Één klein probleempje: Dropbox houdt nogal van Nautilus, de file manager van Gnome, en in Crunchbang is Nautilus niet geïnstalleerd. Maar daar is wel een workaround voor, zie http://crunchbanglinux.org/wiki/howto/howto_setup_dropbox
    $ cd ~/downloads
    $ wget http://www.getdropbox.com/download?plat=lnx.x86
    $ tar -xvf dropbox-lnx.x86-0.6.557.tar.gz
    $ mv .dropbox-dist ~
    $ touch ~/bin/nautilus
    $ chmod +x ~/bin/nautilus
    $ nano ~/bin/nautilus
    De inhoud van ~/bin/nautilus:
    #!/bin/bash
    exec pcmanfm $@
    exit
    Volgende regels toevoegen onderaan ~/.config/openbox/autostart.sh:
    gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false &
    gconftool-2 -s -t bool /desktop/gnome/background/draw_background false &
    gconftool-2 -s -t bool /apps/nautilus/preferences/always_use_browser false &
    gconftool-2 -s -t bool /apps/nautilus/preferences/show_advanced_permissions true &
    (sleep 60s && ~/.dropbox-dist/dropboxd) &
    De gconf-aanpassingen zijn voor het geval dat een andere toepassing Nautilus aanroept, om eventuele gevolgen te beperken.

    Deze methode werkt niet goed bij mij: het dropbox-icoontje verschijnt enkele seconden, en dan sluit dropboxd weer af. Er zijn nog verdere stappen nodig.
    Een andere manier staat beschreven op http://wiki.getdropbox.com/TipsAndTricks/AlmostText-BasedLinuxInstall

    $ cd ~/bin
    $ wget https://dl.getdropbox.com/u/43645/dbcli.py
    $ sudo aptitude install tofrodos
    $ dos2unix dbcli.py
    $ chmod 755 dbcli.py
    $ ./dbcli.py install x86
    Daarna begon de Dropbox-wizard, en werden de bestanden gesynchroniseerd. En fantastisch: wat ik in het eerste deel ingesteld had, werkt nu ook. Blijkbaar is de uitleg op de Crunchbang-wiki dus niet compleet.

    Mocht de applet niet van de eerste keer opstarten, dan werkte dit bij mij wel:

    • Netwerkkabel uittrekken
    • Dropbox daemon opstarten
    • Naar de preferences gaan
    • Netwerkkabel terug insteken
    • Accountgegevens invoeren

    Mocht iemand geïnteresseerd zijn in een gratis Dropbox account (2 GiB), dan bent u welkom via deze link: https://www.getdropbox.com/referrals/NTI4MzUwOQ

    Conky

    Conky is een desktop applet die oa een aantal systeem monitors kan tonen. De configuratie gaat via een vrij eenvoudig te begrijpen tekstbestand.
    Ik gebruik daar een paar speciale fonts voor, om symbolen te tonen. Zoek daarvoor op Google naar Conky fonts. http://youfont.com is ook een goede plaats om fonts te zoeken.
    Voor de installatie, zie http://www.ubuntumini.com/2008/12/install-ttf-font-microsoft-core-fonts....
    $ unzip ~/downloads/Conky\ Fonts.zip
    $ cp ~/downloads/Conky\ Fonts/*.zip ~/.fonts
    $ sudo fc-cache -f -v
    Met fc-cache wordt de cache met geïnstalleerde lettertypen opnieuw aangemaakt. De Conky fonts zijn lokaal geïnstalleerd in ~/.fonts.

    Daarna moet Conky geconfigureerd worden. Dit is de inhoud van mijn ~/.conkyrc:

    # set to yes if you want Conky to be forked in the background
    background no

    cpu_avg_samples 2
    net_avg_samples 2

    out_to_console no

    # X font when Xft is disabled, you can pick one with program xfontsel
    #font 7x12
    #font 6x10
    #font 7x13
    #font 8x13
    #font 7x12
    #font *mintsmild.se*
    #font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
    #font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1

    # Use Xft?
    use_xft yes

    # Xft font when Xft is enabled
    xftfont Bitstream Vera Sans Mono:size=8

    own_window_transparent no
    own_window_colour hotpink
    # Text alpha when using Xft
    xftalpha 0.8

    on_bottom yes

    # mail spool
    mail_spool $MAIL

    # Update interval in seconds
    update_interval 2
    # Create own window instead of using desktop (required in nautilus)
    own_window no

    # Use double buffering (reduces flicker, may not work for everyone)
    double_buffer yes

    # Minimum size of text area
    #minimum_size 280 5
    #maximum_width 150

    # Draw shades?
    draw_shades no

    # Draw outlines?
    draw_outline no

    # Draw borders around text
    draw_borders no

    # Stippled borders?
    stippled_borders 10

    # border margins
    border_margin 4

    # border width
    border_width 1

    # Default colors and also border colors
    default_color white
    default_shade_color white
    default_outline_color white

    # Text alignment, other possible values are commented
    alignment top_left
    #minimum_size 10 10
    gap_x 13
    gap_y 13
    #alignment top_right
    #alignment bottom_left
    #alignment bottom_right

    # Gap between borders of screen and text

    # Add spaces to keep things from moving about?  This only affects certain objects.
    use_spacer no

    # Subtract file system buffers from used memory?
    no_buffers yes

    # set to yes if you want all text to be in uppercase
    uppercase no

    # boinc (seti) dir
    # seti_dir /opt/seti

    # Possible variables to be used:
    #
    #      Variable         Arguments                  Description                
    #  acpiacadapter                     ACPI ac adapter state.                  
    #  acpifan                           ACPI fan state                          
    #  acpitemp                          ACPI temperature.                        
    #  adt746xcpu                        CPU temperature from therm_adt746x      
    #  adt746xfan                        Fan speed from therm_adt746x            
    #  battery           (num)           Remaining capasity in ACPI or APM        
    #                                    battery. ACPI battery number can be      
    #                                    given as argument (default is BAT0).    
    #  buffers                           Amount of memory buffered                
    #  cached                            Amount of memory cached                  
    #  color             (color)         Change drawing color to color            
    #  cpu                               CPU usage in percents                    
    #  cpubar            (height)        Bar that shows CPU usage, height is      
    #                                    bar's height in pixels                  
    #  downspeed         net             Download speed in kilobytes              
    #  downspeedf        net             Download speed in kilobytes with one    
    #                                    decimal                                  
    #  exec              shell command   Executes a shell command and displays    
    #                                    the output in torsmo. warning: this      
    #                                    takes a lot more resources than other    
    #                                    variables. I'd recommend coding wanted  
    #                                    behaviour in C and posting a patch :-).  
    #  execi             interval, shell Same as exec but with specific interval.
    #                    command         Interval can't be less than              
    #                                    update_interval in configuration.        
    #  fs_bar            (height), (fs)  Bar that shows how much space is used on
    #                                    a file system. height is the height in  
    #                                    pixels. fs is any file on that file      
    #                                    system.                                  
    #  fs_free           (fs)            Free space on a file system available    
    #                                    for users.                              
    #  fs_free_perc      (fs)            Free percentage of space on a file      
    #                                    system available for users.              
    #  fs_size           (fs)            File system size                        
    #  fs_used           (fs)            File system used space                  
    #  hr                (height)        Horizontal line, height is the height in
    #                                    pixels                                  
    #  i2c               (dev), type, n  I2C sensor from sysfs (Linux 2.6). dev  
    #                                    may be omitted if you have only one I2C  
    #                                    device. type is either in (or vol)      
    #                                    meaning voltage, fan meaning fan or temp
    #                                    meaning temperature. n is number of the  
    #                                    sensor. See /sys/bus/i2c/devices/ on    
    #                                    your local computer.                    
    #  kernel                            Kernel version                          
    #  loadavg           (1), (2), (3)   System load average, 1 is for past 1    
    #                                    minute, 2 for past 5 minutes and 3 for  
    #                                    past 15 minutes.                        
    #  machine                           Machine, i686 for example                
    #  mails                             Mail count in mail spool. You can use    
    #                                    program like fetchmail to get mails from
    #                                    some server using your favourite        
    #                                    protocol. See also new_mails.            
    #  mem                               Amount of memory in use                  
    #  membar            (height)        Bar that shows amount of memory in use  
    #  memmax                            Total amount of memory                  
    #  memperc                           Percentage of memory in use              
    #  new_mails                         Unread mail count in mail spool.        
    #  nodename                          Hostname                                
    #  outlinecolor      (color)         Change outline color                    
    #  pre_exec          shell command   Executes a shell command one time before
    #                                    torsmo displays anything and puts output
    #                                    as text.                                
    #  processes                         Total processes (sleeping and running)  
    #  running_processes                 Running processes (not sleeping),        
    #                                    requires Linux 2.6                      
    #  shadecolor        (color)         Change shading color                    
    #  stippled_hr       (space),        Stippled (dashed) horizontal line        
    #                    (height)        
    #  swapbar           (height)        Bar that shows amount of swap in use    
    #  swap                              Amount of swap in use                    
    #  swapmax                           Total amount of swap                    
    #  swapperc                          Percentage of swap in use                
    #  sysname                           System name, Linux for example          
    #  time              (format)        Local time, see man strftime to get more
    #                                    information about format                
    #  totaldown         net             Total download, overflows at 4 GB on    
    #                                    Linux with 32-bit arch and there doesn't
    #                                    seem to be a way to know how many times  
    #                                    it has already done that before torsmo  
    #                                    has started.                            
    #  totalup           net             Total upload, this one too, may overflow
    #  updates                           Number of updates (for debugging)        
    #  upspeed           net             Upload speed in kilobytes                
    #  upspeedf          net             Upload speed in kilobytes with one      
    #                                    decimal                                  
    #  uptime                            Uptime                                  
    #  uptime_short                      Uptime in a shorter format              
    #
    #  seti_prog                         Seti@home current progress
    #  seti_progbar      (height)        Seti@home current progress bar
    #  seti_credit                       Seti@hoome total user credit


    # variable is given either in format $variable or in ${variable}. Latter
    # allows characters right after the variable and must be used in network
    # stuff because of an argument
    #${font Dungeon:style=Bold:pixelsize=10}I can change the font as well
    #${font Verdana:size=10}as many times as I choose
    #${font Perry:size=10}Including UTF-8,
    #${font Luxi Mono:size=10}justo como este texto que o google traduz fêz o português
    # stuff after 'TEXT' will be formatted on screen
    #${font Grunge:size=12}${time %a  %b  %d}${alignr -25}${time %k:%M}

    TEXT
    $nodename - $sysname $kernel on $machine
    $stippled_hr
    ${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
    ${color lightgrey}CPU Usage:${color #5000a0} ${cpu}% ${cpubar}
    ${color black}${cpugraph 000000 5000a0}
    ${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% $membar
    ${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
    ${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
    $color$stippled_hr
    ${color lightgrey}Networking:
    ${color lightgrey}  eth0 Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed eth0} k/s
    ${color lightgrey} wlan0 Down:${color #8844ee} ${downspeed wlan0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed wlan0} k/s
    ${color lightgrey}  ppp0 Down:${color #8844ee} ${downspeed ppp0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed ppp0} k/s
    ${color black}${downspeedgraph eth0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph eth0 24,150 0000ff ff0000}
    ${color black}${downspeedgraph wlan0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph wlan0 24,150 0000ff ff0000}
    ${color black}${downspeedgraph ppp0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph ppp0 24,150 0000ff ff0000}
    ${color lightgrey}File systems:
    ${color lightgrey} /     $color${fs_used /}/${fs_size /} ${fs_bar /}
    ${color lightgrey} /home $color${fs_used /home}/${fs_size /home} ${fs_bar /home}
    ${color lightgrey}Temperatures:
     CPU:$color ${i2c temp 2}C${color grey} - MB:$color ${i2c temp 1}C
    ${font Dungeon:style=Bold:pixelsize=12}${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title
    ${color #88aadd}$mpd_bar
    ${color #88aadd}${alignc}$mpd_status
    ${color}Name              PID     CPU%   MEM%
    ${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
    ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
    ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
    ${color}Mem usage
    ${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
    ${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
    ${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
    De desktop van mijn netbook ziet er nu als volgt uit:

    Meer uitleg over Conky op http://linuxowns.wordpress.com/2008/04/04/create-a-custum-conky-setup/
    Meer configuratievoorbeelden op http://crunchbanglinux.org/forums/topic/59/my-conky-config/

    Muziek met MPD

    Music Player Daemon is een programma dat muziek afspeelt op basis van een client-server model. De server luistert naar verzoeken van clients en speelt de muziek, de client (die ook op een andere pc kan staan) zegt tegen de server welke muziek gespeeld moet worden. Handig aan MPD is dat het zonder X kan draaien, er zijn dus geen zware GUI's nodig.
    De installatie:
    $ sudo aptitude install mpd mpc
    In /etc/mpd.conf moet nu ingesteld worden waar de muziek te vinden is:
    ######################## REQUIRED PATHS ########################
    # You can put symlinks in here, if you like. Make sure that
    # the user that mpd runs as (see the 'user' config parameter)
    # can read the files in this directory.
    #music_directory                "/var/lib/mpd/music"
    music_directory         "/home/amedee/music"
    playlist_directory      "/var/lib/mpd/playlists"
    db_file                 "/var/lib/mpd/tag_cache"
    log_file                "/var/log/mpd/mpd.log"
    error_file              "/var/log/mpd/errors.log"
    ################################################################
    De rest van het configuratiebestand moet niet aangepast worden.

    De volgende stap is om wat muziekbestanden te plaatsen in /home/amedee/music. Ik heb er voorlopig al de mixtapes van Leesa gezet.

    Nu nog de muziekdatabase aanmaken en de mpd-server herstarten:

    $ sudo mpd --create-db
    added Leesa/Leesa_July2009_mixtape.mp3
    added Leesa/Leesa_April2009_mixtape.mp3
    added Leesa/Leesa_-_Here_I_Am.mp3
    added Leesa/Leesa_-_Here_I_Go.mp3
    $ sudo /etc/init.d/mpd restart
     * Stopping Music Player Daemon mpd         [ OK ]
     * Starting Music Player Daemon mpd
    No "audio_output" defined in config file
    Attempt to detect audio output device
    Attempting to detect a alsa audio device
    Successfully detected a alsa audio device
                                                [ OK ]
    De melding in verband met audio_output mag genegeerd worden, mpd detecteert dit toch automatisch.

    De muziek kan nu afgespeeld worden:

    $ mpc play
    Als leuk extraatje worden titel en uitvoerder ook getoond op de desktop, met Conky.

    Het viel me wel op dat Leesa niet vermeld staat als uitvoerder bij 3 van haar 4 mixtapes, omdat bepaalde id3-gegevens ontbreken. Die heb ik dan maar zelf toegevoegd.

    $ sudo aptitude install eyed3
    $ eyeD3 -a "Leesa" -G 52 -Y 2009 --comment=::"http://www.leesa.be" music/Leesa/Leesa_*
    $ eyeD3 -t "Here I Am" music/Leesa/Leesa_-_Here_I_Am.mp3
    $ eyeD3 -t "Here I Go" music/Leesa/Leesa_-_Here_I_Go.mp3
    $ eyeD3 -t "April Mixtape 2009" music/Leesa/Leesa_April2009_mixtape.mp3
    $ eyeD3 --to-v2.4 music/Leesa/Leesa_*
    $ sudo mpd --create-db
    $ sudo /etc/init.d/mpd restart
    Een aangename verrassing: bij het herstarten van mpd, wordt de muziek een fractie van een seconde onderbroken, en gaat daarna gewoon weer verder. En Conky toont nu ook de juiste titel en uitvoerder.

    Nokia amr files omzetten naar flac/ogg

    Ik heb mijn gsm (Nokia 6680) al een aantal jaar, maar ik heb er nog lang niet alle functies van gebruikt. Zo heb ik onlangs gevonden dat ik er geluidsopnames mee kan maken, dus een soort van dictafoon-functie. Leuk, ware het niet dat de geluidsfragmenten worden opgeslagen in een mij tot nu toe onbekend formaat, AMR (Adaptive multi-rate compression).

    Om AMR-bestanden te kunnen omzetten naar een ander formaat, moet ffmpeg opnieuw gecompileerd worden met ondersteuning voor AMR. Hiervoor heb ik volgende resources geraadpleegd:

    Toegepast op mijn systeem geeft de volledige installatie het volgende:

    $ sudo aptitude install build-essential automake checkinstall git-core subversion nasm yasm
    $ sudo aptitude install zlib1g-dev libx264-dev amrnb amrwb faad libfaad-dev faac \
                            libfaac-dev libmp3lame-dev libtheora-dev libxvidcore4-dev \
                            liba52-0.7.4 liba52-0.7.4-dev libdts-dev libavdevice52 \
                            libavformat52 libpostproc51 libswscale0 libgsm1-dev libvorbis-dev
    $ cd downloads

    $ git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr
    $ cd opencore-amr
    $ ./configure
    $ make
    $ sudo checkinstall
    $ cd ..

    $ wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20091011-2245.tar.bz2
    $ tar -xvjf x264-snapshot-20091011-2245.tar.bz2
    $ cd x264-snapshot-20091011-2245
    $ ./configure --enable-shared
    $ make
    $ sudo checkinstall
    $ sudo ldconfig
    $ sudo aptitude purge x264 libx264-dev
    $ cd ..

    $ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-svn
    $ cd ffmpeg-svn
    $ ./configure --disable-debug --enable-gpl --enable-pthreads --enable-shared \
                  --enable-nonfree --enable-version3 --enable-libx264 \
                  --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac \
                  --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libxvid \
                  --enable-libvorbis --enable-libgsm
    $ make
    $ sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg \
                        --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default

    Sinds ik een nieuwe pc heb, heb ik eindelijk ook een kaartlezer voor het geheugenkaartje van mijn gsm. Dus niet meer door hoepels springen met usb-kabels of bluetooth, gewoon kaartje insteken, kopiëren en klaar.

    Het omzetten en afspelen van de geluidsbestanden doe ik dan als volgt:

    $ ffmpeg -i Geluidsclip.amr   dries01.flac
    $ ffmpeg -i Geluidsclip\(01\) dries02.flac
    $ dir2ogg dries*.flac
    $ play dries*.ogg

    Het resultaat zit in de bijlagen. Het is een lichtjes kinderachtige conversatie met 1 van onze katten. Mijn stem klinkt vervormd door de audiocompressie, maar ik spreek ook met een hogere stem dan normaal tegen mijn katten. 't Zijn ons "kleine mannen" voor iets he. ;-)

    Geen previews meer

    Beste bezoeker,

    Mocht het je nog niet opgevallen zijn: vanaf heden maak ik geen gebruik meer van previews. Je krijgt nu onmiddelijk mijn volledige brainfarts te zien. Alleen voor de commentaarders moet er nog doorgeklikt worden.

    Ik denk/hoop dat jullie deze aanpassing wel zullen waarderen.

    Groetjes,
    Amedee

    tar.lz driver voor backup2l

    Iedereen heeft zijn favoriete backupsysteem, en voor mij is dat backup2l. Op Debian en Ubuntu beschikbaar via
    $ sudo aptitude install backup2l
    Deze twee artikels beschrijven hoe je backup2l kan configureren na installatie:

    Het is trouwens via de tweede link dat ik backup2l heb leren kennen, van toen mijn server gehost was bij Hetzner. Ik gebruik ook de hotcopy-scripts die ze daar geven.

    Backup2l voorziet zelf in een aantal courante backupformaten (tar.gz, tar.bz2,...), en het is ook mogelijk om zelf een eigen backupformaat te maken. Een nieuwe backupdriver bestaat uit een bash functie genaamd "DRIVER_drivernaam" die -test, -suffix, -create, -toc, en -extract implementeert.
    Ik heb een backupdriver gemaakt die gebruik maakt van lzip, gebaseerd op het LZMA-compressiealgoritme. Dit comprimeert beter dan gzip of bzip2, maar gebruikt wel meer geheugen en is een beetje trager.
    De driver moet toegevoegd worden onderaan in /etc/backup2l.conf, en dan moeten zowel CREATE_DRIVER als USER_DRIVER_LIST aangepast worden naar "DRIVER_MY_TAR_LZ".

    DRIVER_MY_TAR_LZ ()
    {
        case $1 in
            -test)
                require_tools tar lzip
                echo "ok"
                ;;
            -suffix)
                echo "tar.lz"
                ;;
            -create)        # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
                tar -c -T $4 --no-recursion | lzip --best -c > $3 2>&1 \
                    | grep -v 'tar: Removing leading .* from .*'
                ;;
            -toc)           # Arguments: $2 = BID, $3 = archive file name
                lzip -d $3 -c | tar t | sed 's#^#/#'
                ;;
            -extract)       # Arguments: $2 = BID, $3 = archive file name, $4 = file list file
                lzip -d $3 -c | tar -x --same-permission --same-owner -T $4 2>&1
                ;;
        esac
    }
    Uiteraard moet lzip wel geïnstalleerd zijn, anders werkt deze driver niet.
    $ sudo aptitude install lzip

    Het eiland Waasland, bis

    Ik heb eerder al eens geblogd over het eiland Waasland.
    Vandaag staat er in De Standaard een mooi kaartje van het eiland Waasland.

    Bron: http://www.standaard.be/Artikel/Detail.aspx?artikelId=DMA19102009_001

    Zoals Luc terecht schreef op Twitter:
    5 a 6 meter zeestijging en we zijn van heel die lange wapper discussie ook vanaf.

    Als ik een suggestie mag geven aan de toekomstige beleidsmakers: de 6m-lijn in het Waasland komt overeen met de scheiding tussen de bolle akkers en de polders. Het komt ook ongeveer overeen met de route van de Expressweg E34/N49. De Expressweg ligt nu toch al verhoogd, dus als we dan tóch land moeten opofferen aan de zee, maak dan van de Expressweg ineens een dijk van een kustweg.

    Linux liposuctie: Crunchbang in minder dan 1 gigabyte op de Acer Aspire One

    Deze blogpost is een bewerking van http://po-ru.com/diary/linux-liposuction-or-xubuntu-in-under-a-gig-on-th.... Daar wordt er (X)Ubuntu Intrepid (8.10) gebruikt, terwijl mijn versie gericht is op Jaunty (9.04) en Karmic (9.10), meer bepaald de Crunchbang-variant met OpenBox desktop.

    In een vorige blogpost heb ik 180 MiB vrijgemaakt door overbodige software en overbodige locales te verwijderen.

    Ik heb di en du gebruikt om te achterhalen waar het meeste schijfruimte wordt verbruikt:

    $ di -hm /
    Filesystem         Mount               Megs     Used    Avail %Used fs Type
    /dev/sda1          /                 6099.6   1887.6   4212.0  31%  ext4  
    $ sudo du -cms /* 2>/dev/null | column -tc 2 | grep -v "^0 " | sort -nr | head -n 11
    2649  total
    1396  /usr
    900   /home
    192   /var
    124   /lib
    16    /boot
    8     /sbin
    8     /etc
    6     /bin
    1     /tmp
    1     /srv
    Het meeste plaats wordt ingenomen door /usr: 1396 MiB. Dit kan verkleind worden, met een combinatie van squashfs en unionfs.

    squashfs laat je een filesystem comprimeren, maar het is read-only. unionfs laat je toe om er een schrijfbaar filesystem bovenop te leggen, zodat je gegevens kan wijzigen. Uiteraard, hoe meer data je wijzigt, hoe meer schijfruimte er gebruikt wordt, maar het is altijd mogelijk om opnieuw te comprimeren en de schijfruimte te herwinnen.

    Eerst moet squashfs geinstalleerd worden. unionfs zit al standaard in de kernel bij Jaunty en Karmic, en moet dus niet meer geïnstalleerd worden.

    $ sudo aptitude install squashfs-tools
    Dan moet er een plaats voorzien worden voor het gecomprimeerde filesystem en de overlay:
    $ sudo mkdir -p /.filesystems/usr/overlay
    Comprimeer het filesystem:
    $ sudo mksquashfs /usr /.filesystems/usr/usr.sqfs
    Voeg deze regels toe aan /etc/modules:
    unionfs
    squashfs
    loop
    en deze regels aan /etc/fstab:
    /.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev
    unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
    Sluit alle programma's af, ga naar runlevel 1 (of reboot en ga in de rescue mode) en zet de oude /usr-directory opzij:
    $ sudo init 1
    $ mv /usr /usr.old
    $ mkdir /usr
    $ mount -a
    $ init 3
    Werkt alles OK, ook na een reboot, dan mag /usr.old verwijderd worden.

    Het schijfgebruik is nu:

    $ di -hm /
    Filesystem         Mount               Megs     Used    Avail %Used fs Type
    /dev/sda1          /                 6099.6    954.9   4834.9  21%  ext4  
    Er is dus 932,7 MiB vrijgekomen. Dat komt overeen met het verschil in grootte tussen /usr en  :
    $ sudo du -ms /usr /.filesystems/usr
    1396    /usr
    464     /.filesystems/usr

    Opmerking: bij mij deed readahead een beetje lastig tijdens het booten. Dit probleem staat ook beschreven in deze forumtopic. Aangezien readahead alleen maar zinvol is bij een harde schijf maar niet bij een SSD, heb ik readahead ineens verwijderd:

    $ sudo aptitude purge readahead

    Reclame... ;-)

    Met dank aan
    • Jasmina
    • Celine
    • Pieter
    • Jeff
    • Hans
    • Jurgen
    • Jurgen
    • Marijke
    • Amedee
    • Erik
    • Danny
    • Sofie
    • Lars
    • Christophe
    • Peter
    • Jeroen
    • Jurgen
    om mij een gratis herlading twv €15 te bezorgen!

    Waar ben ik?