LTSP over WLAN -ohjeet, alpha-versio 0.6
Tämän ohjeen tarkoitus on mahdollistaa päätteeksi boottaaminen langattoman verkon yli siten, että paikalliselta medialta ladataan vain kernel ja initrd. Ohje koskee Ubuntun versiota 8.10.
Palvelimelle tehdään muutoksia muutaman chroottiin asennettavan paketin lisäksi vain chrootin
/usr/share/initramfs-tools -hakemistoon. Eli voit kannettavaa varten rakennettavan initrd.img:n rakentamisen jälkeen palauttaa tuon hakemiston sisällön ennalleen varmuuskopiosta niin ei ainakaan mikään mene rikki seuraavia kernel-päivityksiä asennettaessa. Ja jos palvelinta käytetään myös langallisille päätteille niin muutokset eivät pääse sotkemaan niiden toimivuutta millään tavalla, vaikka initrd.img päivittyisikin päivitysten johdosta. Sen jälkeen kun modifioitu initrd.img on rakennettu ja siirretty kannettavalle,
täysin oletusasetuksissa oleva ltsp-palvelin toimii langattoman clientin palvelimena.* Kytke LTSP-palvelin ja WLAN-tukiasema samaan verkkoon (ei NATia välissä)
* Varmista esimerkiksi live-cd:n avulla, että verkkokorttisi toimii ja että tukiasema on oikein konfiguroitu. Käytä WPA/AES-salausta. (TKIP on testaamatta)
* Tarkista langattoman verkkokortin laitenimi esim. ifconfig-komennolla (laitenimiä esimerkiksi wlan0 tai ath0)
* Käynnistä live-cd uudelleen, mutta jätä langaton verkkokortti irti/pois päältä
* Tarkista mitä moduuleita wlan-kortti käyttää. (HUOM! Tämä kohta on kriittinen onnistumisen suhteen. En ole vielä keksinyt miten tarkistaa yhtä helposti moduulit koneessa, jossa sisäistä wlania ei saa kytkettyä pois päältä bootissa. Silloin täytynee vain päätellä mitkä moduulit ovat wlanin käytössä.)
Esimerkiksi näin:
Verkkokortti irti (ei siis ollut paikallaan ollenkaan tämän bootin aikana)
$ lsmod > without_wlan
Sitten kortti paikalleen ja yhteys verkkoon.
$ lsmod > with_wlan
$ diff without_wlan with_wlan > wlan_modules
*Nyt wlan_modules -tiedostossa on tieto käytetävistä moduuleista. Tietoa tarvitaan myöhemmin.
*Siirry palvelimella chroot-ympäristöön
$ sudo mount --bind /dev /opt/ltsp/i386/dev
$ sudo mount -t proc none /opt/ltsp/i386/proc
$ sudo chroot /opt/ltsp/i386
#
*Asenna tarvittavia paketteja
# apt-get install wpasupplicant nano powernowd cpufrequtils
*Ota varmuuskopio initramfs-tools -asetuksista
# cd /usr/share
# cp -r initramfs-tools initramfs-tools_backup
# cd initramfs-tools
*Muokkaa tiedostoa
init*Etsi rivi:
export resume_offset=*Lisää sen alle seuraavat rivit
export wlandevice=
export serverip=
export essid=
export passwd=
*Etsi rivit:
blacklist=${x#blacklist=}
;;*Lisää alle rivit:
wlandevice=*)
wlandevice=${x#wlandevice=}
;;
serverip=*)
serverip=${x#serverip=}
;;
essid=*)
essid=${x#essid=}
;;
passwd=*)
passwd=${x#passwd=}
;;
*Muokkaa tiedostoa
scripts/ltsp_nbd*Etsi rivi:
modprobe -q af_packet*Lisää alle rivit:
if [ -n "$wlandevice" ]; then
DEVICE=$wlandevice
fi
. /scripts/wpa
*Etsi rivi:
. /tmp/net-${DEVICE}.conf*Lisää alle rivit:
if [ -n "$serverip" ]; then
ROOTSERVER=$serverip
fi
*Luo tiedosto:
scripts/wpa*Lisää rivit:
cat > /etc/wpa_supplicant.conf <<- EOF
ctrl_interface=/var/run/wpa_supplicant
# Only WPA-PSK is used. Any valid cipher combination is accepted.
network={
ssid="$essid"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=$passwd
priority=2
}
EOF
sleep 5
/sbin/wpa_supplicant -B -qq -Dwext -i$wlandevice -c/etc/wpa_supplicant.conf
sleep 5
*Lisää tiedostolle suoritusoikeudet
# chmod +x /usr/share/initramfs-tools/scripts/wpa
*Luo tiedosto:
hooks/wltools*Lisää rivit:
#!/bin/sh
# We don't have any prerequirements
case $1 in
prereqs)
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/wpa_action /sbin
copy_exec /sbin/wpa_cli /sbin
copy_exec /sbin/wpa_supplicant /sbin
*Lisää suoritusoikeudet:
# chmod +x /usr/share/initramfs-tools/hooks/wltools
*Luo tiedosto
hooks/wlanmodules*Lisää rivit:
#!/bin/sh
# We don't have any prerequirements
case $1 in
prereqs)
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
*Rivien alle tulee sitten ajurimoduulien nimet, jotka tallensit wlan_modules-tiedostoon.
*Tässä ensin lista niistä, joista suurin osa yleensä tarvitaan aina.
#Yleiset usb ja pcmcia-moduulit:
manual_add_modules pcmcia
manual_add_modules pcmcia_core
manual_add_modules usbcore
manual_add_modules ehci_hcd
manual_add_modules uhci_hcd
manual_add_modules yenta_socket
manual_add_modules rsrc_nonstatic
#Yleiset salaus ym. moduulit
manual_add_modules aes_i586
manual_add_modules aes_generic
manual_add_modules crypto_blkcipher
manual_add_modules ieee80211_crypt_tkip
manual_add_modules af_packet
manual_add_modules arc4
manual_add_modules ecb
manual_add_modules mac80211
manual_add_modules cfg80211
* Esimerkissäni on moduulilistat kolmelle piirisarjalle: Broadcom, ZD1211 ja Atheros sekä Windows-ajurien mahdollisuus ndiswrapperin avulla. Moduulien nimien lisäksi tähän kohti voidaan laittaa firmwareja kopioitavaksi.
Esim. 1: Broadcom (pcmcia)
* Esitoimet:
* Asenna chroot-ympäristöön Broadcomin firmware:
http://ubuntu.cafuego.net/dists/intrepid-cafuego/broadcom/## Broadcom
mkdir -p "${DESTDIR}/lib/firmware/b43"
mkdir -p "${DESTDIR}/lib/firmware/b43legacy"
cp -r /lib/firmware/b43 ${DESTDIR}/lib/firmware
cp -r /lib/firmware/b43legacy ${DESTDIR}/lib/firmware
manual_add_modules rfkill_input
manual_add_modules b43
manual_add_modules rfkill
manual_add_modules led_class
manual_add_modules input_polldev
manual_add_modules ssb
manual_add_modules evdev
Esim. 2: zd1211 (Alink usb)
mkdir -p "${DESTDIR}/lib/firmware/zd1211"
cp -r /lib/firmware/zd1211 ${DESTDIR}/lib/firmware
manual_add_modules zd1211rw
Esim. 3: Atheros ja Madwifi (koneen sisäinen kortti)
* Esitoimet:
* Asenna chroot-ympäristöön Madwifi
# apt-get install linux-restricted-modules
## Madwifi
manual_add_modules wlan_scan_sta
manual_add_modules ath_rate_sample
manual_add_modules ath_pci
manual_add_modules wlan
manual_add_modules ath_hal
manual_add_modules wlan_ccmp
manual_add_modules wlan_tkip
manual_add_modules wlan_wep
Esim. 4: Ndiswrapper
* Esitoimet:
* Asenna chroot-ympäristöön ndiswrapper
# apt-get install ndiswrapper-common ndiswrapper-utils-1.9
* Lataa ja pura Windows-ajuri
* Asenna ajuri ndiswrapperiin
# ndiswrapper -i ajuri.inf
*Lisää wlanmodules-tiedostoon allaolevat komennot yleisten moduulien lisäksi:
## ndiswrapper
cp -r /etc/ndiswrapper ${DESTDIR}/etc
mkdir -p ${DESTDIR}/usr/sbin
copy_exec /usr/sbin/ndiswrapper-1.9 /usr/sbin
copy_exec /usr/sbin/ndiswrapper /usr/sbin
copy_exec /sbin/loadndisdriver /sbin
copy_exec /sbin/loadndisdriver-1.9 /sbin
ln -s ${DESTDIR}/usr/sbin/ndiswrapper-1.9 ${DESTDIR}/sbin/ndiswrapper-1.9
ln -s ${DESTDIR}/usr/sbin/ndiswrapper ${DESTDIR}/sbin/ndiswrapper
force_load ndiswrapper
### Acer-koneet
* Jos Acer-koneessa on ohjelmallisesti käynnistettävä sisäinen WLAN-kortti niin tämä auttanee:
* Lisää listan ylimmäksi rivi:
## Acer-wlan
force_load acer_wmi wireless=1
*Lisää suoritusoikeudet
# chmod +x /usr/share/initramfs-tools/hooks/wlanmodules
*Edelleen chroot-ympäristössä:
# cp /boot/initrd.img-2.6.27-7-generic /boot/initrd.img-2.6.27-7-generic_original
# update-initramfs -u
*Kun chroot-ympäristöön ei tehdä enää muutoksia, voidaan päivittää muutokset imageen. Ei pakollinen, koska ainoastaan kannettavassa oleva initrd.img on merkityksellinen.
$ sudo ltsp-update-image
*Normaaliympäristössä tuo chrootin /boot löytyy hakemistosta /opt/ltsp/i386/boot
*Kopioi
/opt/ltsp/i386/boot/vmlinuz-2.6.27-7-generic ja
/opt/ltsp/i386/boot/initrd.img-2.6.27-7-generic kannettavan paikalliselle medialle.
*Boottaa esimerkiksi seuraavasti ja huomaa vaihtaa parametrit vastaamaan omaa verkkoasi ja verkkokorttiasi. HUOM! Jos livecd näyttää langattoman laitenimeksi esimerkiksi wlan1 niin silti se saattaa tunnistua wlan0:ksi wlan-bootissa.
kernel /vmlinuz-2.6.27-7-generic ro quiet splash wlandevice=wlan0 serverip=192.168.1.1 essid=mywlan passwd="sER4geS4g"
initrd /initrd.img-2.6.27-7-generic
* Ongelmatilanteissa tarkista vielä kertaalleen, että kaikki tarvittavat moduulit on lisättynä. Kokeile eri laitenimiä wlan0, wlan1, wlan2, jne.. Boottaa ilman 'ro quiet splash' -parametreja niin näet mahdolliset virheilmoitukset. Jos et saa tiettyä korttia toimimaan tietyssä koneessa, kokeile vaihtaa korttia tai konetta. Kaikki ei vaan toimi kaikkien kanssa jostakin syystä. Jos kortti on liitetty/tunnistuu sellaisen väylän kautta, joka tarvitsee erilliset ajurit, niin ne on luonnollisesti lisättävä.
* * * * * * * * * * * * * * *
*Jos haluat bootata usb-tikulta niin luonnollisesti sinne pitää asentaa myös boottilatain. Se menee kutakuinkin näin:
$ sudo apt-get install syslinux mtools
$ sudo fdisk -l (tarkista tulosteesta usb-tikun laitenimi)
*Tarkista, ettei tikku ole mountattuna ja anna komento:
VÄÄRÄ LAITENIMI VOI TUHOTA TIETOJA LEVYLTÄSI!
$ sudo syslinux /dev/sdX1 (missä sdX1 on laitenimi, esimerkiksi sda1)
*Luo tikulle boottitiedot sisältävä tiedosto syslinux.cfg
Esim:
DEFAULT linux
LABEL linux
SAY Now booting the kernel from SYSLINUX...
KERNEL vmlinuz
APPEND initrd=initrd.img ro quiet splash wlandevice=wlan0 serverip=192.168.1.1 essid=mywlan passwd="sER4geS4g"
Lykkyä tykö!
