Acer Aspire One

Upgrade naar Karmic Koala breekt squashfs

Dit weekend heb ik mijn Crunchbang-installatie op de netbook bijgewerkt naar Karmic Koala. De upgrade zelf ging vlotjes. Ik heb er niet heel de tijd op zitten kijken.

Enkele fragmentjes uit het upgradeproces:

12 pakketten zullen verwijderd worden. 142 nieuwe pakketten zullen geïnstalleerd worden. 741 pakketten zullen een upgrade krijgen.
U moet in totaal 436M downloaden. Deze download duurt met uw verbinding ongeveer 9 minuten.
Het upgraden kan enkele uren in beslag nemen en kan tussentijds niet worden afgebroken.
real    430m39.408s
user      16m4.808s
sys        8m3.086s
Real is zo hoog omdat ik het laten draaien heb terwijl ik naar een film keek.

Helaas, na het rebooten bleek dat ik met een onbruikbaar systeem zit.

General error mounting filesystems.
A maintenance shell will now be started.
CONTROL-D will terminate this shell and re-try.
*gil*
OK, regel 1: DON'T PANIC. Control+D heeft geen enkele zin, want er wordt naar een root wachtwoord gevraagd en zoals we allemaal weten, heeft Ubuntu geen root wachtwoord.

Stap 2: rebooten, op Escape drukken in het Grub-menu, en 'e' om te bewerken. De regel met de kernel vul ik aan zodat er een init bij staat:

kernel  /boot/vmlinuz-2.6.31-14-generic root=LABEL=/ rw init=/bin/bash
Wanneer ik daarmee boot, krijg ik het volgende:
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
bash: groups: command not found
root@(none):/#
Nu heb ik tenminste een werkende root shell waarmee ik kan uitvissen wat er aan de hand is.

Ik weet al dat er een probleem is met het mounten van een filesystem, maar welk? Het handmatig proberen mounten van alle filesystems gaf meteen het antwoord:

root@(none):/# mount -a
mount: special device LABEL=/home does not exist
[  282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher
[  282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
 
mount: unknown filesystem type 'unionfs'
Aha! Eerst eventjes doen wat er in de foutmelding staat:
root@(none):/ dmesg
[  282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher
[  282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
Het probleem is dus duidelijk: bij de overgang van Jaunty naar Karmic, is Squashfs van versie 3.1 naar 4.0 gegaan, en de nieuwe versie is niet backwards compatibel met de oude versie.

Er zit nu niets anders op dan het gesquashte filesystem te unsquashen met de oude versie, en eventueel daarna opnieuw te squashen met de nieuwe versie. Maar hoe? Ik zit met een gebroken systeem.

Gelukkig komt daar weer mijn trouwe usb-stick de redding brengen. Daar stond nog altijd Crunchbang op, van toen ik het geïnstalleerd heb. Maar in principe kan om het even welke andere 9.04 Ubuntu ISO gedownload worden. Die moet dan op de usb-stick gezet worden met unetbootin.

Wanneer Ubuntu 9.04 geboot is vanaf de usb-stick, geef ik volgende commando's:

sudo -i
aptitude install squashfs-tools
modprobe squashfs
modprobe unionfs
mount /dev/sda1 /mnt
mkdir /mnt/usr.old
mount -t squashfs -o ro,loop,nodev /mnt/.filesystems/usr/usr.sqfs /mnt/usr.old
mount -t unionfs -o nodev,noatime,dirs=/mnt/.filesystems/usr/overlay=rw:/mnt/usr.old=ro unionfs /mnt/usr.old
time rsync -av /mnt/usr.old/ /mnt/usr
Het kopiëren nam wel een minuutje of 20 in beslag:
sent 1466696143 bytes  received 1438136 bytes  1256426.43 bytes/sec
total size is 1461396353  speedup is 1.00
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5]
 
real	19m28.192s
user	0m51.755s
sys	2m10.544s
Wat die melding over vanished files wil zeggen, weet ik nog niet, maar ik ga er mij ook geen zorgen over maken. Wanneer ik rsync nog eens uitvoer, krijg ik dit:
sending incremental file list
file has vanished: "/mnt/usr.old/lib/graphviz/config4"
 
sent 2434876 bytes  received 9508 bytes  212555.13 bytes/sec
total size is 1461396353  speedup is 597.86
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5]
 
real	0m10.500s
user	0m2.820s
sys	0m9.461s
In het slechtste geval is er dus iets mis met graphviz. Niets dat een herinstallatie van het pakket niet kan oplossen.

In /mnt/etc/fstab moeten ook nog (tijdelijk) 2 regels in commentaar gezet worden:

#/.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev  0       0
#unionfs         /usr            unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro 0 0
Op die manier gaat Ubuntu niet meer proberen om het squashfs-filesystem te mounten.

Nu is het tijd voor een reboot. Werkt het nu? Neen... *gil*
Ok, opnieuw: DON'T PANIC. Wat is het probleem?

One or more of the mounts listed in /etc/fstab cannot yet be mounted:
(ESC for recovery shell)
/: waiting for /dev/disk/by-label/\134x2f
/home: waiting for /dev/disk/by-label/\x2fhome
Mijn eerste reactie is: onze Koala kan niet overweg met disklabels waar een / in staat. Dat heb ik oorspronkelijk wel gedaan bij het partitioneren. Het gemakkelijkste om de disklabels te hernoemen, is om opnieuw te booten met de usb-stick.
sudo e2label /dev/sda1 root
sudo e2label /dev/mmcblk0 home
/etc/fstab moet ook nog overeenkomstig aangepast worden. Let op: de /etc/fstab op /dev/sda1, dus eerst mounten op /mnt en dan /mnt/etc/fstab aanpassen. De nieuwe versie van /etc/fstab is nu:
# <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        
 
# /.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev  
# unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
Ook in /boot/grub/menu.lst moet nog aangepast worden dat het root device nu niet / maar root heet. This is left as an excercise to the reader...

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

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/

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.

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.

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.

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

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.

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.
  • Crunchbang Linux

    Sinds enkele dagen staat er Crunchbang Linux op mijn netbook (Acer Aspire One). En ik moet zeggen, het bevalt me wel.
    Crunchbang is gebaseerd op Ubuntu (het maakt dus gebruik van dezelfde repositories) maar in plaats van Gnome of KDE, wordt er Openbox gebruikt als desktop. Ik vind het sober en stijlvol. Een leuk detail is Conky: een desktop applet die het actuele gebruik van resources toont (harde schijf, memory, cpu), maar daaronder ook een lijst met handige toetsencombinaties voor de meest gebruikte programma's. Super+w = Webbrowser; Super+t = Terminal; Super+f = File manager, enzovoort. De Super-toets blijkt trouwens de knop met het huisje te zijn op de Acer Aspire One. Fijn, want onder Gnome had die eigenlijk nooit een functie.

    Maar het mooiste van al: Crunchbang is snelllll! Zo ga ik bijvoorbeeld van grub naar een functionele desktop in 14 seconden (gemeten met bootchart). Met een standaard Ubuntu Netbook Remix (met Gnome) was dat 21 seconden, dus Cruncbang is 1/3 sneller opgestart dan Gnome! Wow... ik overweeg zelfs om Crunchbang op de desktop te zetten.

    Inhoud syndiceren