23 lis 2008

Acer Aspire One i debian

Od jakiegoś czasu jestem szczęśliwym posiadaczem netbooka Acer Aspire One. Ten model dość mi pasuje – waga około kilograma, 9-calowy wyświetlacz (działający w rozdzielczości 1024x600) i dość wygodna klawiatura (wydaje się, że większa niż w EeePC Asusa).

1. Acer Aspire One


Co dostajemy „w środku”? Procesor Atom 1.6GHz. W zależności od opcji 512MB lub 1GB RAMu. Kartę ethernet 100Mbit, WiFi, 3 porty USB, 2 czytniki kart (jeden używany jako „storage extension”), wyjście VGA do monitora oraz wyjście na miktofon i słuchawki. Poza tym – wbudowany głośnik, mikrofon i kamerkę.
Dysk twardy – znów, zależnie od wybranej opcji, 8GB SSD lub tradycyjny dysk, rzędu 120GB.
W porównaniu z Eee PC 901 brakuje mu Bluetootha. Jestem w stanie to strawić, choć nie próbowałem korzystać z telefonu jako modemu – wówczas pewnie by się przydał BT.
Ja mam wersję z 512MB ramu (wersja 1GB jest sporo droższa – zaś do AAO możemy dołożyć kość pamięci 1GB, rozszerzając pamięć do maksymalnej wielkości – 1,5G. Kość kosztuje obecnie ~50 zł, założenie wymaga jedynie śrubokrętu i rozkręcenia laptopa – można zobaczyć, jak wygląda proces zakładania baterii np. tutaj: http://pl.youtube.com/watch?v=-EfzckyZMTk).
Dysk – SSD. Szybszy niż tradycyjny, poza tym odchodzi sporo elementów ruchomych, co stanowi dużą zaletę przy komputerze, którego główną cechą jest przenośność.
Z tego powodu w opisywanych tu działaniach skupię się przede wszystkim na tym, co ja robiłem z moim modelem.

2. System, z którym przyszedł


AAO sprzedawany jest w dwóch wersjach, z preinstalowanym Win XP i preinstalowanym Linuksem. Mój był ten drugi.
Ogólnie – śmieszny system. Widać, że zrobiony tak, żeby maksymalnie uprościć korzystanie z komputera osobom nieobeznanym z czymkolwiek innym niż Windows. Główny ekran to 4 „bloki”, w których pogrupowane są najczęściej (zdaniem twórców) używane aplikacje – przeglądarka, klient poczty, Office, gry, aplikacje do łączenia się z siecią...
Ja jednak postanowiłem, korzystając z całej masy HOWTOs dostępnej w sieci, zainstalować na nim Debiana.

3. Instalacja Debiana


Prosta sprawa – potrzebujemy pendrive'a lub karty pamięci i czytnika, albo napędu CD na usb – czegokolwiek, z czego można będzie zbootować nasz komputer. Na ten napęd, zgodnie z instrukcjami na stronie wiki.debian.org - http://wiki.debian.org/DebianAcerOne – wrzucamy boot.img.gz i obraz iso „płytki” instalacyjnej netinst – ważne, żeby oba były stworzone dla tej samej wersji kernela.
Proces instalacji powinien przebiegać jak zawsze. Postarajmy się tylko o kabelek ethernetowy, jako że obecna wersja testing nie widzi na etapie instalacji wifi...
W moim przypadku instalacja nie zakończyła się sukcesem – wyskakiwały jakieś błędy (nie zrobiłem fotki, niestety) na etapie instalacji pakietów. Na szczęście wyjście z instalatora, chroot /target pod konsolą i instalacja tam czego potrzeba (przede wszystkim – aptitude install grub i konfiguracja gruba tak, żeby komputer uruchomił się z dysku) pomogło. Po restarcie i zainstalowaniu reszty systemu musiałem tylko podmienić /sbin/start-stop-daemon – na jego miejsce wrzucić wersję /sbin/start-stop-daemon.REAL. Ten pierwszy jest takim oszukańczym na czas instalacji.
Zaraz potem warto zainstalować dalsze pakiety, zresztą w większości wymienione na http://wiki.debian.org/DebianAcerOne. W szeczególności przyda się moduł madwifi do jądra, dający nam dostęp do wifi. Ja zainstalowałem go przez module-assistanta, jak opisali na powyższej stronie.

4. Tweaks


System, zaraz po zainstalowaniu, choć działa, może dzialać lepiej. To co ja chciałem osiągnąć to:
zmniejszenie obciążenia dysku SSD
Ogólnie chcę uzyskać mniejsze obciążenie zapisem dysku SSD (mimo, że według tego artykułu mój dysk powinien wytrzymać minimum 8 lat). W tym celu zrobiłem kilka rzeczy:
  • do linijki kernel w pliku konfiguracyjnym gruba (/boot/grub/menu.lst) dopisalem elevator=noop
  • do opcji montowania dysku w /etc/fstab dodałem noatime,nodiratime
  • partycje /var/log, /var/tmp i /tmp są montowane jako ramdyski (linijki w /etc/fstab: tmpfs /tmp tmpfs defaults 0 0)
    • miejsce, gdzie trafiają pakiety przy instalacji też wrzucam na ramdisk, ale już nie osobny. po prostu zrobiłem symlinka /var/cache/apt/archives -> /tmp (komendą rm -r /var/cache/apt/archives/ ; mkdir -p /tmp/partial/ ; ln -s /tmp/ /var/cache/apt/archives/). Że mi zaśmiecają /tmp? co z tego? (nawet jeśli będzie używany swap, nie powinno to zwiększyć ilości zapisów na dysku).
    • żeby wszystko działało jak należy, do pliku /etc/rc.local dopisałem tworzenie katalogów na tym ramdyskach (/var/log/apt, /var/log/gdm, /var/log/news, /tmp/partial)

      Zawartość mojego pliku /etc/rc.local po zmianach wygląda mniej więcej tak:

      if [ ! -d /var/log/apt ]
      then
        mkdir -p /var/log/apt
      fi
      if [ ! -d /var/log/gdm ]
      then
        mkdir -p /var/log/gdm
      fi
      if [ ! -d /tmp/partial ]
      then
        mkdir -p /tmp/partial
      fi



  • /var/run i /var/lock to też RAMDISKI - w pliku /etc/default/rcS ustawiam RAMRUN=yes i RAMLOCK=yes

konfiguracja X-ów

Jest kilka spraw, którymi należy się zająć: ustawienie odpowiedniej wielkości czcionek dla wyświetlacza, modyfikacja działania touchpada i ogólne poprawienie działania Xów.
  • z domyślnymi ustawieniami czcionki w niektórych programach będą wielkie. Naprawdę wielkie, prawie takie jak Wszechświat. Aby to naprawić, wystarczy do /etc/X11/xorg.conf dopisać:


    • w sekcji Device linię Option "NoDDC"
    • w sekcji Monitor - DisplaySize 195 113


  • dodatkowe opcje dla touchpada




    • musimy powiedzieć xorg, żeby używały sterownika Synaptics. Poniżej cała moja sekcja InputDevice dla myszki:


      Section "InputDevice"
      Identifier "Synaptics Touchpad"
      Option "SHMConfig" "on"
      Driver "synaptics"
      Option "SendCoreEvents" "true"
      Option "Device" "/dev/psaux"
      Option "Protocol" "auto-dev"
      Option "HorizScrollDelta" "0
      EndSection


    • syndaemon pozwala na zablokowanie działania touchpada gdy klawiatura jest używana. Powinno to zmniejszyć ilość przypadkowych kliknięć / przesunięć kursora myszy gdy piszemy. a więc: aptitude install syndaemon. Następnie musimy odpalić syndeamona w naszym skrypcie startowym X-ów, na przykład: syndaemon -d -i 0.8 -k.


  • aby poprawić wydajność karty graficznej w X-ach wystarczy dodać do sekcji Device pliku /etc/X11/xorg.conf następujące linie:


    Driver "intel"
    Option "AccelMethod" "exa"
    Option "MigrationHeuristic" "greedy"


dźwięk

Aby mieć sensowny dźwięk, trzeba zainstalować alsę (pakiety alsa-base i alsa-utils się przydadzą). Następnie do pliku /etc/modprobe.d/alsa-base dodać linijkę options snd-hda-intel model=acer. Niestety, nie udało mi się sprawić, żeby dźwięk działał po suspendzie. Jeśli ktoś wie, jak do tego dojść, proszę o info. (Niektórzy radzą, żeby używać model=toshiba, wówczas może nie działać wbudowany mikrofon, ale być może dźwięk po obudzeniu owszem - u mnie po obudzeniu dźwięk był, ale tak cichy, że i tak musiałem rebootować).

dobrze działający, wygodny na nietypowym ekranie Firefox

Ekran ma rozdzielczość 1024x600, więc ilość punktów w poziomie jest prawie dwa razy większa niż w pionie. Bardzo szeroka panorama. Wobec tego w Firefoksie chciałem usunąć jak najwięcej rzeczy zajmujących miejsce w pionie. Udało mi się dojść do takiego stanu:

  • Zwinięcie całego menu do małego przycisku, pod którym są wszystkie opcje to zaleta addonu Tiny Menu: https://addons.mozilla.org/en-US/firefox/addon/1455. Następnie, przy użyciu menu customizacji przeniosłem wszystkie potrzebne ikony (back, forward i home – zamiast stop używam Esc, zamiast reload – ctrl+r), pasek adresu i wyszukiwania na pasek menu, oraz ukryłem Navigation Toolbar.
  • Są addony umieszczające zakładki po boku ekranu – celem oszczędzenia miejsca z jeszcze jednego paska – ale to już by była przesada. Chyba straciłbym więcej miejsca w efekcie niż zyskał (tym bardziej, że większość stron tworzona jest na określoną szerokość, nie wysokość okna).
  • Jest też addon autoHideStatusbar - pozwala ukrywać Status Bar (to to coś na dole okna) poza sytuacjami, gdy jest potrzebny (np. najeżdżamy na linka i chcielibyśmy wiedzieć, dokąd nas zaprowadzi). Niestety, mam z tym addonem problem przy przenoszeniu okienka FF na inny pulpit - statusbar zostaje na starym. Być może to wina mojego winmanagera, whatever... Ten dodatek jest w fazie eksperymentalnej, będę monitorować jego status.
Jeśli jesteśmy już przy Firefoksie – warto się wysilić i przenieść cache przeglądarki do katalogu na ramdysku - jeśli nie chcemy z niego korzystać między bootami. Pozwoli to bardziej zmniejszyć obciążenie dysku SSD. Aby to zrobić, należy otworzyć stronę about:config i dodać zmienną typu String o nazwie browser.cache.disk.parent_directory, o wartości wskazującej na katalog, w którym umieszczony będzie cache (w moim przypadku - /tmp/firefox).

dodatkowe klawisze

Po pierwsze: klawiatura Aspire One daje nam trochę dodatkowych klawiszy. Jako, że nie używam go z zewnętrznymi monitorami, nie bawiłem się w konfiguracje klawisza Fn+F5. Przyciemnianie/pojaśnianie wyświetlacza (Fn+left/right) działa bez żadnej dodatkowej konfiguracji. Interesowała mnie przede wszystkim kontrola nad dźwiękiem z klawiatury (Fn+F8 włącza/wyłącza dźwięk, Fn+up/down pogłaśnia i przycisza).
Dodatkową "sztuczką" związaną z klawiaturą było użycie kombinacji klawiszy Shift+Menu jako symulacji kliknięcia środkowym klawiszem. Jakoś nie wychodziło mi to dobrze z touchpada.
Zainstalowałem: xmodmap i xbindkeys. Mój plik .Xmodmaprc wygląda tak:

keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 223 = XF86Standby
Plik .xbindkeysrc:
"middleclick"
Shift + Menu
"amixer set Master toggle"
m:0x0 + c:160
"amixer set Master 2dB+ unmute"
m:0x0 + c:176
"amixer set Master 2dB- unmute"
m:0x0 + c:174
"sudo pm-suspend"
XF86Standby
middleclick jest skryptem symulującym środkowe kliknięcie myszy (u mnie w /usr/local/bin/middleclick):
#!/bin/sh
xevent -b 2 2
Wykorzystuję program xevent (niestety, niedostępny w Debianie jako pakiet, skompilowałem ze źródeł - xevent).