UHU-Linux 1.1 telepítése ASUS L3D laptopra

A HupWiki-ből...

Tartalomjegyzék

Telepítés előtt

A telepítő CD indítása előtt érdemes meggyőződni róla, hogy a laptop BIOS-a legalább 0115a. Az én példányom 0113a-val érkezett, ami hideg állapotból indítva a laptopot, nem kapcsolja be a ventillátort, és így a laptop túlmelegedését okozhatja (ami esetemben csak azonnali leállást jelentett, a thermal modul betöltésével, a 103 oC elérve egy syslog bejegyzés és lefagyás a következménye).

BIOS frissítés

Ezért az ASUS webhelyéről érdemes letölteni a BIOS frissítést (jelen pillanatban 0115), (a legfrissebb itt) valamint a DOS-os flash-selő programot, ami szintén a fenti lapon található aflash2.zip néven. Ekkor már csak egy DOS-os indítólemezre van szükség (vagy win98-as telepítő CD-re). Miután a floppyra a BIOS ram-ot és az aflash2.exe -t felírtuk, indítsunk egy DOS -t, és futtassuk az aflash2.exe-t. Válasszuk az Update BIOS menüpontot, ekkor bekéri az új ROM file nevét, ellenőrizzük, hogy az új BIOS adatai csak verziószámban térjenek el az eredetiétől. Engedélyezzük a flash felülírását. (http://www.asus.com.tw/inside/flash_mb.htm)

Telepítés

Az UHU-Linux 1.1 telepítése gond nélkül lefut, megismeri, és jól kezeli a touchpad-ot, USB-s optikai egeret, hangkártyát, hálózati kártyát, ps/2-es billenyűzetet...

Viszont indításkor a video vezérlőnek válasszuk a vesa -t, különben meglepő kép tarulhat elénk.

Sajnos a grafikus chip-et a 4.3.0.1-es XFree86 SiS drivere nem kezeli megfelelően. Így telepítéskor az egyébként helyesen felismert beállítással meg nem megyünk sokra.

Grafika

XFree86

* TV-out működik, de akkor az LCD-t nem lehet használni
* VGA-out függetlenül képes működni az LCD-től
* XV egyszerre csak egy eszközön müködik, addig a másik a kep helyét meghatározott szinnel (általában kék) színezi ki.

Szerencsére a http://www.winischhofer.net/linuxsisvga.shtml oldalon több, mint kielégítő tanácsot, drivert, kezelő programot tölthetünk le laptopunkhoz.

Kezelőprogram: http://www.winischhofer.net/sis/sisctrl-0.0.20040306.tar.gz

UHU-Linux esetén telepíteni kell hozzá:

Többek között:

 * gtk2-dev
 * atk-dev
 * glib2-dev
 * pango-dev

A /etc/X11/XF86Config-ba a következő sornak kell állnia a device részbe:

Option "EnableSiSCtrl" "true"

Driver: http://www.winischhofer.net/sis/sis_drv_src_060304-1.tar.gz

A fordítás után kapott sis_drv.o-t le kell cserélni egyszerűen az eredetivel, és már megy is.

Framebuffer

Bevallom ezzel a résszel meg nem foglalkoztam. De a fenti oldalon erről is van bőven leírás.

2.6.x kernel forgatás

A jobb energiatakarékos funkciók használatához érdemes fordítani egy 2.6.x-es kernelt.

Úgy vettem észre, hogy a Local APIC -ot nem szereti a suspend mód. :-(

Egy példa a .config -ra kernel forgatáshoz:

Az USB-nél kellett egy kicsit átírni a /etc/rc.boot/12-detect-et az USB eszközök keresése résznél:

probemod ohci-hcd
probemod usbmouse

sorokat kell beírni.

Továbbá érdemes még a fordítás után kibővíteni:

echo "További modulok betöltése..."
probemod ide-scsi
probemod sd_mod
probemod sr_mod
probemod serial
probemod 8250_pci
probemod 8250_acpi
probemod lp
probemod floppy
probemod cpufreq_powersave

valamint:

echo "ACPI modulok betöltése..."
probemod ac
probemod asus_acpi
probemod battery
probemod button
probemod fan
probemod processor
probemod thermal
probemod powernow-k7

itt a ténylegesen fontos új sor a powernow-k7. Ezzel a modullal lehetővé válik a /sys filerendszeren keresztüli processzor sebesség változtatás futás időben.

Frissítés 2004.10.19. A megjelent 2.6.9-es kernelben van egy cpufreq/scaling_governor amit ondemand-nak ( bõvebben a HUP cikkében ) hívnak és valós idõben a számítógép teljesítmény igényéhez igazítja a processzor órajelét. Ezt az

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

paranccsal állíthatjuk be. A kernelben a

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

konfigurációs paraméter tartozik hozzá.

Frissítés 2004.10.22 Sajnos a 2.6.9-es kernelben annyira jól sikerült a hibernálás, hogy ébredéskor az óra továbbra is az utolsó ébren töltött idõt mutatja, ugyhogy mindenképpen ajánlatos root-ként egy

hwclock --hctosys

parancsot kiadni (a hardver órához igazítja az oprendszer óráját), vagy egy

ntpdate time.szerver.dn

ha internet kapcsolattal rendelkezünk.

IDE vezérlő

SiS5513 chipset support

Hálózati kártya

A hálózati kártya valamivel stabilabbnak tűnik 2.6.3-as kernellel, mint a 2.4.24-essel.

SiS 900/7016 PCI Fast Ethernet Adapter support

Hangkártya

PCI-Alsa...

Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

Energiagazdálkodás

Kis script amivel a cpu sebességet, altatást, hibernálást el lehet végezni

http://linux.oregpreshaz.hu/cucc/asus/power

Extra funkcióbillentyűk

A kernelbe be kell fordítani az ASUS ldaptop támogatást az ACPI-nél:

ASUS/Medion Laptop Extras

A http://sourceforge.net/projects/acpi4asus/ oldalról letölthető a kezelő daemon.

Bár nem ay acpi4asus-hoz kötődik, de leírom az észrevételeimet, ha valaki mást tapasztalt, vagy tudja a megoldast, írja be ide :-)

Sleep gomb (Fn+Zz)

Figyelem 2.6.x-es kernellel próbálva!

/etc/acpi/event/sleepbtn


event=button[ /]sleep
action=/etc/acpi/sleepbtn.sh

/etc/acpi/sleepbtn.sh


#!/bin/bash
# 2004.03.18. by szimszonb .at. freemail . hu
# Copyright: http://www.gnu.org/licenses/gpl.txt

SYS_DIR="/sys/devices/system/cpu/cpu0/cpufreq"
ACPI_DIR="/proc/acpi"
POWERSAVE_GOV="powersave"
ALSZOM="/tmp/alszom"

function log {
  logger -t "ACPI_EVENT[$$]" "$1"
}
function hiba {
  if [ $1 -eq 0 ]; then
    log "$2"
  else
    log "ERROR/Hiba: $2"
    rm "$ALSZOM"
    exit 1
  fi
}
if [ -f "$ALSZOM" ]; then
  log "SLEEP button: Laptop felebresztes"
  rm "$ALSZOM"
  exit 0
else
  echo "$$" > "$ALSZOM"
  log "SLEEP button: Laptop altatas"
fi

echo "$POWERSAVE_GOV" > "$SYS_DIR/scaling_governor"
hiba $? "CPU freq: $POWERSAVE_GOV"
sleep 2
if ps ax | grep artsd | grep -v grep > /dev/null ; then
  killall artsd
  hiba $? "artsd leallitasa"
fi
log "Sleep..."
echo 1 > "$ACPI_DIR/sleep"

Ki kell javítani a /etc/acpi/powerbtn.sh -t (forrás Debian Woody):


#!/bin/sh
# /etc/acpi/poweroff.sh
# Initiates a shutdown when the power putton has been
# pressed.
if ! [ -f /tmp/alszom ]; then
  logger -t PWBTN "Shutdown."
  /sbin/init 0
else
  rm "/tmp/alszom"
  logger -t PWBTN "Only wake up."
fi

Megjegyzés: Úgy vettem észre, hogy az első altatás után semmilyen HOTKEY nem működik (a /proc/acpi/event -be sem érkezik semmi), de egy újbóli altatás/ébreszés után helyreáll a rend.

Egyetlen kivétel a LID gomb, ami jelzi, hogy be van-e csukva a laptop, vagy nincs. Nekem ez a kapcsoló csak egyszer működik minden egyes bekapcsolás után :-(

Nem tudom, hogy a fent leírtak a BIOS vagy az Linux-os acpi implementáció hibái, bár az elsőre tippelnék.

HOTKEY52 (Szürke gomb legfelül, jobbról a második) SWSuspend-nek

/etc/acpi/events/hkb52


event=hotkey[ ]HOTK[ ]00000052[ ]
action=/etc/acpi/swsuspend

Frissítve: 2005.06.01. /etc/acpi/swsuspend

Hibernate/Suspend to Disk 2.6.x-es kernel

A kernelbe bele kell fordítani a Software Suspend-et, nekem a Suspend-to-Disk Support nem működik.

A swap partíciónk legyen nagyobb, mint a fizikai memóriánk duplája, hogy a kiírt memória elférjen a swappen.

Ha megvan, akkor egy

 echo 4 > /proc/acpi/sleep

parancs kiadásával sikeresen hibernálni lehet a laptopot, és egy boot paraméterrel resume=/dev/swappartició újra lehet éleszteni.

'Figyelem' érdemes az artsd daemont leállítani hibernálás és altatás előtt, mert az újraindítás után D státuszba kerül és meg a killall -9 artsd-vel sem lehet megállítani, és ujra nem leszünk képesek hibernálni vagy altatni a laptopot.

killall artsd

Valamint amit még észrevettem, az usb a hibernálásból követő újraindítás után nem éled fel :(

A megoldás:

rmmod ehci-hcd; rmmod ohci-hcd

kiadása rendszergazdaként, és

modprobe ehci-hcd; modprobe ohci-hcd

Bár az ohci-hcd nekem automatikusan visszakerült a memóriába, amint kivettem onnan, és mûködött...

Netstat probléma nem a hibernáláshoz kötõdik, úgy tûnik. :(


Frissítve 2004.04.30. Figyelem! A hibernálás nem bírja az agpgart modult. Ha agp gyorsítás be van töltve, a visszaállításnál double fault után lefagy az egész gép!

Frissítve 2004.04.30. Figyelem! A hibernálás elõtt, ha valaki slmodemet használ, a kernel térbõl ki kell venni az slarm modult,

rmmod slarm

mert miután elindítjuk a gépet, nem kap tárcsahangot, és egyáltalán nem hajlandó dolgozni. (Még nem teszteltem, de mûködhet:)

Altatás / sleep

Altatás előtt érdemes minimálisra visszavenni a processzor sebességét a

echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

paranccsal, különben a laptop felfűti magát, majd a kritikus hőmérékleten lekapcsol. (Meg nem volt időm kipróbálni, hogy mennyi időt nyerek vele, de 1800MHz elég gyorsan (20perc-40perc?) elfűti magát :( )

Úgy vettem észre, hogy powersave módban olyan 50-55oC -on megáll a melegedés. Azért érdemes odafigyelni rá!

'Figyelem' érdemes az artsd daemont leállítani hibernálás és altatás előtt, mert az újraindítás után D státuszba kerül és meg a killall -9 artsd -vel sem lehet megállítani, és ujra nem leszünk képesek hibernálni vagy altatni a laptopot.

killall artsd

Érdemes az acpid daemont lekapcsolni, vagy a /etc/acpi/events/default fileban kikommentezni a mindent :)), különben az alvásból visszatérés egyből init 0 -ba csap át és leáll a laptop.

És akkor altassuk el:

echo 1 > /proc/acpi/sleep

Altatásból a bekapcsoló gomb megnyomásával fel lehet ébreszteni. (2.6.3-as kernel)

Bármely billentyű használható (2.4.24-es kernel)

Touchpad

Synaptics TouchPad

Modem

Sokat még nem foglalkoztam vele, de ami úgy tűnik, hogy működik, az az slmodem

http://www.smlink.com/

A 2.9.6-os slmodem még nem támogatja (a driver újraírás alatt áll, és az új kódba még nem került bele a fax és a voice funkció, de ígérik) sem a voice, sem a fax class1 funkciót, sajnos, csak adat forgalomra jó, bár azt még nem tudtam kipróbálni.

Frissítve 2004.03.22 A mai napon láttam megjelenni a ftp://ftp.smlink.com/linux/unsupported/snapshots/slmodem-2.9.6-21Mar2004.tar.gz drivert, ami már hajlandó volt hívást kezdeményezni (az eredeti 2.9.6-os verzió nem volt hajlandó tárcsázni), és a Changelog szerint a voice funkció is implementálva lett.

Frissítve 2004.05.24 A tegnapi napon jelent meg a ftp://ftp.smlink.com/linux/unsupported/snapshots/slmodem-2.9.7-18May2004.tar.gz, amiben már a FaxClass1 is mûködik (még nem teszteletm).

Helyesbítés a 2.9.6-os verzió is hajlandó a tárcsázásra, csak a hibernációtól halt le. :( Valószínûleg, ha kikerül a kernelbõl a modul mielõtt hibernálva lesz, akkor elindítás után visszatöltve is mûködni fog. Tesztelve, OK.

Frissítve 2004.10.19 A letöltött 2.9.10-es verziójú driverrel (http://www.smlink.com/main/down/slmodem-2.9.10.tar.gz) sikerült elõször fax-ot helyesen fogadnom. A 2.9.9-el csak küldeni tudtam, a megérkezett fax (amit nekem küldtek) használhatatlan lett. A 2.9.10-essel már tiszta képet kaptam.

Frissítve 2005.03.11 A 2.6.10-es kerneltől kezdve, ahhoz, hogy le tudjuk fordítani a modem modulját (mivel egyes eljárások csak a GPL-es modulok számára elérhetők ezután a kernelben) szükség van egy kis patch-re: http://www.datiku.com/documents/files/slmodem-2.9.10-abby.diff

Frissítve 2005.11.25 A 2.6.13-as kerneltől kezdve újabb cselhez kell folyamodni, most talaltam a http://linmodems.technion.ac.il/packages/smartlink/ linken egy újabb meghajtót (http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20051101.tar.gz) amit le kell tölteni és telepíteni...

Frissítve 2006.05.11 Úgy látszik a modem elég hányattatott sorsú, mivel mindíg bütykölnek valamit a kernelen, hogy ne lehessen lefordítani... A 2.6.16.x.y kernelekhez most éppen az utolsó driverbe (ld. fentebb) kell egy sort kijavítani:

drivers/st7554.c fájlban a 1153-as sort ki kell kommentezni:

static struct usb_driver st7554_usb_driver = {
//      .owner =       THIS_MODULE,
        .name =        "ST7554 USB Modem", 

és már fordíthatjuk is. Ez azért kell, mert az usb alrendszer ?struktúrájából? kikerült a .owner mező...

Frissítve 2006.08.30 Újabb modul: http://linmodems.technion.ac.il/packages/smartlink/slmodem-20060727.tar.gz

Frissítve 2006.11.03 http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-dialup/slmodem/files/ -bol a slmodem-2.9.11-kernel-2.6.18.patch, slmodem-2.9.11-makefile.patch alkalmazhato az slmodem-20060727.tar.gz, es akkor lefordul a 2.6.18-as Linux kernelhez is.

Frissítve 2006.12.04 a 2.6.19-es kernelben eltűnt a config.h és helyette az autoconf.h jön létre fordításnál. A drivers/amrmo_init.c-ben a 46-os sort ki kell cserélni erre:

> #include <linux/config.h>
< #include <linux/autoconf.h>

Frissítve 2007.06.28. Jelenleg 2.6.21-es kernelt használok és úgy tűnik, hogy végre eltűnt a kernelmodul mizéria, amikor legutóbb az slamr modult fordítottam és probáltam használni az alábbi üzenet fogadott a dmesg szerint:

slamr: module license 'Smart Link Ltd.' taints kernel.
slamr: SmartLink AMRMO modem.
slamr: device 1039:7013 is grabbed by another driver

Hosszú googlizás után megtaláltam, hogy az eszközt a snd-intel8x0m modul használja, és ez így jól is van. Debian Etch rendszeren egyszerűen a démont kell telepíteni:

apt-get install sl-modem-daemon

és már használhatjuk is a modemet (a működést eddig nem teszteltem).

IrDA

A minap szereztem egy SonyEricsson Z600-as telefont (bövebben: SonyEricsson Z600-as kezelése IrDA porton), amit sikeresen össze tudatam kapcsolni a laptop irda portjával:

Modulok

irport
ircomm
irtty_sir
sir_dev
irda
crc_ccitt
...

Program

irattach /dev/ttyS1 -s

Amivel a laptop irda portjat hozzá kötöm a COM2 porthoz. (konfig: /etc/irda.conf)

multisync (http://multisync.sourceforge.net/download.shtml)

Amivel Ximian Evolution-be, "biztonsági mentés könyvtárba" tudom szinkronizálni a naptárat, feladatokat, címlistát, és természetesen vissza :)

Figyelem A hibernációt nem birják az IrDA és soros porti modulok, így a hibernáció után szükség van a kernelbõl való eltávolításukra és visszatöltésükre, a megfelelõ müködéshez.

Irtam egy kis bash scriptet, ami ha nincs az IrDA bekapcsolva akkor bekapcsolja, ha be van kapcsolva, akkor kikapcsolja; mindezt a szükséges modulok ki-, és betöltésével: http://linux.oregpreshaz.hu/cucc/asus/irda (v.0.2a - 2004.10.19.), amit a /etc/acpi/irda néven kell elmenteni.

Az innen letölthetõ programot én rádefiniáltam, a laptop bal szélsõ, szürke funkcióbillentyûjére:

/etc/acpi/events/hkb5c:


event=hotkey[ ]HOTK[ ]0000005c[ ]
action=/etc/acpi/irda

A script minden mûveletét syslog-ba naplózza. Amennyiben sikeresen vegrehajtotta a kapcsolást, akkor a laptop wlan ledje (/proc/acpi/asus/wled) elõl az állapotnak megfelelõen vagy világít vagy elalszik.

openobex-apps (http://sourceforge.net/projects/openobex/)

Fényképek letöltésére jól használható:

obex_test (maga a program)
  • megjelenõ parancssorba: s
  • telefonon kép küldés irda-n
  • két eszköz egymás mellé helyezése (hogy lássák egymást)
  • alap esetben a képet a /tmp könyvtárba menti
  • stb...
irxfer (mint az obex_test csak egyszerûbb)

vagy

ircp

Egyéb: http://nix.fulhack.nu/z600/

Külső hivatkozások

Személyes eszközök