Title: L
1Lähiverkot -erikoistyökurssi
- Tutustuminen Debian GNU/Linux käyttöjärjestelmään
- Tietoliikenteen laboratorio 6218
- 13.11.2006 / Ari Happonen
2Harjoituksen aiheet
- Linux kernelin kääntäminen
- Ohjelmien asentaminen
- Harjoitustöiden tarkempi ohjeistus
- Debian jakelun työkaluihin tutustuminen
3Debian yleistä
- Virtuaaliterminaalit (terminaalin vaihto
näppäinyhdistelmällä alt F?) - VT1 VT6
- Tekstikonsoleita
- VT7
- Tyypillisesti X ikkunointijärjestelmän käytössä
(graafinen käyttöliittymä) - Kernelin kääntövaiheen aikana käytämme toista /
toisia virtuaaliterminaaleja muiden harjoitusten
tekemiseen
46218 luokan tietokoneista
- Koneiden nimeämiskäytäntö
- Dell koneet
- officeX, missä X on koneen numero (office1
demo-asennuskone, office5 nurkassa lähellä sohvaa
(Delln kone)) - raid (Suurin mustakoteloinen kone, nurkassa
lähellä sohvaa (ISO koteloinen kone) ) - dmzX (beige koteloiset koneet, 1 takanurkan kone
(kytkinlaitteiden vieressä), juokseva numerointi
pitkin ikkunaseinää) - SpyBox, kone ilman nimeä
- Käyttäjätunnukset
- Pääkäyttäjän (root) tunnus kerrotaan
harjoituksissa - Lisäksi käytössä käyttäjätunnus lahi
5Debian asennus / Kernel kääntöharjoitus
- aptitude on debian levityspaketin mukana tuleva
ohjelmistojen asennuspakettien
hallintaohjelmisto - Tulet tarvitsemaan aptitude komentoa myöhemmin
omassa linux työssäsi, joten tutustu siihen jo
nyt mahdollisimman hyvin - Käytetään joko komentoriviltä käsin tai
tekstipohjaisen käyttöliittymän kautta - Harjoittelemme oman Linux ydin version
kääntämistä ja käyttöön ottoa - Prosessikuvaus
- Ytimen lähdekoodin hakeminen ja gzip -paukkauksen
purkaminen - Voidaan yhtä hyvin käyttää aptituden kaltaisia
työkaluja, kuin hakea ytimen lähdekoodi käsin - Ytimen konfigurointi (valitaan ladattavat ajurit
ja tapa, jolla ne ladataan osaksi ydintä) - Ytimen kääntäminen
- Ytimen vieminen sopivaan paikkaan
hakemistorakenteessa, sekä käynnistyksessä ytimen
lataavan boot loaderin uudelleen konfigurointi - Kiintolevyn boot lohkon päivittäminen uudella
boot loader koodilla
6Debian asennus / Kernel -kääntöharjoitus
- Lähdekoodin etsiminen aptitudella
- aptitude search kernel
- aptitude search kernel-source
- aptitude show kernel-source-2.6.8
- aptitude install kernel-source-2.6.8 (tehty
valmiiksi harjoitusten nopeuttamiseksi) - Kuten kernel-source-2.6.8 paketin kuvauksessa
luki on kyseessä pelkästään ytimen lähdekoodi,
joka sisältää debian distribuutiokohtaiset
muutokset
7Debian asennus / Kernel -kääntöharjoitus
- Aptitudella asennettaessa lataa aptitude ko.
paketin /usr/src kansioon - Paketin kokoluokka on noin 35 Mt, joten
lataaminen voi viedä hetken. Purettuna kernel
paketti on hieman yli 200 Mt. - Lataaminen on tehty valmiiksi harjoitusten
nopeuttamiseksi - Seuraavaksi puramme ko. paketin
- cd /usr/src
- ls
- tar -xvvjf kernel-source-2.6.8.tar.bz2
- ls
8Käännösohjeita
- Muokataan ytimen kuvausta niin että se erottuu
standardi ytimistä - editoi Makefile -tiedostoa (/usr/src/kernel-source
-2.6.8/Makefile) esimerkiksi nano editorilla - nano Makefile
- EXTRAVERSIONcustom
- Aloita kernelin konfigurointi komennolla
- make menuconfig
- gt saat virheilmoituksen Unable to find the
Ncurses libraries - Tarkasta mitä kernel-source-2.6.8 paketin
kuvauksessa luki - aptitude show kernel-source-2.6.8
- Eli käytännössä sinulta puuttuu ncurses -paketit
9Käännösohjeita
- Etsitään ncurses paketit
- aptitude search ncurses
- Tarkistetaan libncurses5-dev paketin kuvaus
- aptitude show libncurses5-dev
- Asennetaan libncurses5-dev
- aptitude install libncurses5-dev
- Ajetaan interaktiivinen kernelin
konfigurointiohjelma uudestaan (make menuconfig)
ja aloitetaan kernelin asetusten muokkaaminen
10Käännösohjeita
- Aloita kernelin konfigurointi komennolla (ajetaan
/usr/src/kernel-source-2.6.8 hakemistossa) - make menuconfig
- Lisää IDE-tuki suoraan kerneliin (built-in)
- Device Drivers ---gt ATA/ATAPI/MFM/RLL support
---gt alipuu - ATA/ATAPI/MFM/RLL support
- Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy
support - Include IDE/ATA-2 DISK support
- generic/default IDE chipset support
- Lisää ecx2 ja ext3 tuki suoraan kerneliin
(built-in) - File systems ---gt Second extended fs support
- File systems ---gt Ext3 journalling file system
support - konfiguroi sysrq ja kernel hacking päälle
- Kernel hacking ---gt Kernel debugging
- Kernel hacking ---gt Magic SysRq key
11Käännösohjeita
- Lisää kernel konfigurointia
- Jätä File systems ---gt osioon vain seuraavat
kohdat valituiksi - Second extended fs support ( kaikki tämän alta)
- Ext3 journalling file system support ( kaikki
tämän alta) - ROM file system support (rakenna kernelin
sisälle) - Kernel automounter version 4 support (also
supports v3) (rakenna kernelin sisälle) - CD-ROM/DVD Filesystems ---gt (älä muuta täältä
mitään) - Pseudo filesystems ---gt (älä muuta täältä
mitään) - Miscellaneous filesystems ---gt (älä muuta täältä
mitään) - Network File Systems ---gt (älä muuta täältä
mitään) - Native Language Support ---gt (älä muuta täältä
mitään) - Edellisiin alivalikoihin palataan tarkemmin
seuraavilla sivuilla
12Käännösohjeita
- Lisää kernel konfigurointia
- Code maturity level options ---gt Valitaan kaikki
käännettäväksi kernelin sisälle (built-in) - General setup ---gt tänne ei tehdä muutoksia
- Loadable module support ---gt tänne ei tehdä
muutoksia - Processor type and features ---gt kohdasta
seuraavat muutokset - HPET Timer Support (päälle)
- Symmetric multi-processing support (päälle)
- check for P4 thermal throttling interrupt (pois
päältä) - Toshiba Laptop support (pois päältä)
- Dell laptop support (pois päältä)
- /dev/cpu/microcode - Intel IA32 CPU microcode
support (pois päältä)
13Käännösohjeita
- Lisää kernel konfigurointia
- Power management options (ACPI, APM) ---gt APM
(Advanced Power Management) BIOS Support ---gt
kohdasta poista kaikki valinnat - Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---gt
kohdasta poista seuraavat valinnat - ISA support
- NatSemi SCx200 support
- PCI Hotplug Support ---gt
- Executable file formats ---gt tänne ei tehdä
muutoksia
14Käännösohjeita
- Lisää kernel konfigurointia
- Device Drivers ---gt kohdasta poista kaikki
valinnat seuraavien alipuiden alta - Memory Technology Devices (MTD) ---gt
- Parallel port support
- Multi-device support (RAID and LVM) ---gt
- Fusion MPT device support ---gt
- IEEE 1394 (FireWire) support ---gt
- I2O device support ---gt
- ISDN subsystem ---gt
- Telephony Support ---gt
- Dallas's 1-wire bus ---gt
- Misc devices ---gt
- Sound ---gt
15Käännösohjeita
- Lisää kernel konfigurointia
- Device Drivers ---gt Networking support ---gt
kohdasta poista valinnat - Amateur Radio support ---gt
- IrDA (infrared) subsystem support ---gt
- Bluetooth subsystem support ---gt
- Bonding driver support
- EQL (serial line load balancing) support
- FDDI driver support
- HIPPI driver support (EXPERIMENTAL)
- PPP (point-to-point protocol) support
- SLIP (serial line) support
- Fibre Channel driver support
- Seuraavista Device Drivers ---gt Networking
support ---gt alla olevista alipuista poista
kaikki valinnat - ARCnet devices ---gt
- Ethernet (10000 Mbit) ---gt
- Token Ring devices ---gt
- Wireless LAN (non-hamradio) ---gt
- Wan interfaces ---gt
- ATM Drivers ---gt
16Käännösohjeita
- Lisää kernel konfigurointia
- Device Drivers ---gt Multimedia devices ---gt
kohdasta poista kaikki valinnat - Tarkasta myös kaikki alipuut!!
- Security options ---gt kohdasta poista kaikki
valinnat - Cryptographic options ---gt tänne ei tehdä
muutoksia - Library routines ---gt tänne ei tehdä muutoksia
17Käännösohjeita
- Lisää kernel konfigurointia
- Lisäämme kerneliin tarvittavat osat, jotta
kernelimme pystyy käynnistymään USB
-kiintolevyltä - Device Drivers ---gt SCSI device support ---gt
kohdasta sisällytä kerneliin - SCSI device support
- SCSI disk support
- Device Drivers ---gt USB support ---gt kohdasta
sisällytä kerneliin - Support for Host-side USB
- EHCI HCD (USB 2.0) support
- OHCI HCD support
- UHCI HCD (most Intel and VIA) support
- USB Mass Storage support
18Käännösohjeita
- Lopeta konfigurointi ja sammuta konfigurointi
ohjelma - Vastaa myöntävästi uusien asetusten
tallentamiseen - Kun saat itse kääntöprosessin käyntiin (ohje
seuraavalla sivulla) seuraa hetki että kaikki
menee OK ja vaihda toiseen virtuaalikonsoliin
(ALT F4, tms.)
19Kernelin modulien kääntäminen
- Selitykset kernel imagen kääntökomennoille
- make bzImage
- komento luo kernel imagen, joka tullaan
lisäämään myöhemmin LILOn käynnistyslistalle - Kernel itsessään ei riitä, tarvitaan myös
laiteajurimoduulit - make modules
- komento kääntää ajurimoduulit (moduuleja voidaan
ottaa käyttöön lennosta tarpeen mukaan) - moduulit kopioidaan paikkaan josta kernel löytää
ne - make modules_install
- komento kopioi moduulit /lib/modules/ltkernel-versi
ogt hakemistoon - Suorita itse kääntöprosessi komentoyhdistelmällä
- make bzImage make modules make
modules_install - Seuraa käännöksen etenemistä hetki
virheilmoitusten varalta ja vaihda sitten toiseen
virtuaalikonsoliin (alt F?)
20Debian, ohjelmien asentaminen
- Ohjelmien asentamiseen liittyviä perusasioita
- Ohjelman etsiminen
- aptitude search hakusana
- Ohjelman tarkempi kuvaus
- aptitude show ohjelma
- Ohjelman asennuksen simulointi
- aptitude s install ohjelman
- Esimerkki asennuksesta
- aptitude install screen
- Kokeile itse asentamalla ohjelma netcat
21Debian, ohjelmien asentaminen
- tcpdump, netcat
- nano, pico, jed, emacs, vi, vim
- iperf, nmap, screen
- gpm
- Ehdotuksia?
22Uuden kernelin kopiointi /boot -hakemistoon
- Palaa takaisin virtuaaliterminaaliin, johon
käynnistit kernelin käännösprosessin - Kopioi bzImage /boot hakemistoon
- /boot hakemisto on vakiintunut aikojen saatossa
järjestelmän ytimien säilytyspaikkana - cp /usr/src/kernel-source-2.6.8/arch/i386/boot/b
zImage /boot/vmlinuz-2.6.8custom - nimi erottaa tämän käännöksen muista
käännöksistä, kannattaa pitää yhtenäistä
nimeämispolitiikkaa muiden image -tiedostojen
kanssa, jotta versioiden erojen muistaminen olisi
helppoa - Tarvitsemme USB boottausta varten ns. initrd
imagen (initial ramdisk) - Vaihda työskentelykansioksi /boot kansio
- cd /boot
- Komentokehotteessa komento pwd kertoo nykyisen
työskentelykansion
23Debian, ohjelmien asentaminen
- Initrd imagen luonti
- mkinitrd -o /boot/initrd.img-2.6.8custom
2.6.8custom - Saat varoituksen puuttuvista moduuleista
(kyseiset ajurit valittiin käännettäväksi suoraan
kerneliin, joten moduuleja ei tämäntakia ole
olemassa) - Jätä varoitus huomiotta ja jatka eteenpäin
24Uuden kernelin lisääminen boot valikkoon
- Uuden Kernel ja initrd -imagen sijainti on
kerrottava boot loaderille (LILO, LInux LOader) - Muokkaa (eli lisää tiedoston loppuun)
/etc/lilo.conf tiedostoon merkintä uudesta kernel
käännöksestä (esim. nano -editorilla) - nano /etc/lilo.conf
- oma kernel
- image/boot/vmlinuz-2.6.8custom
- Initrd/boot/initrd.img-2.6.8custom
- labelcustom
- read-only
- Poista myös kommenttimerkki riviltä 77 sanan
prompt edestä editoidessasi lilo.conf -tiedostoa
25Uuden kernelin lisääminen boot valikkoon
- Lopuksi ajamme LILOn, joka kirjoittaa
käynnistyslohkon uusiksi - lilo -v
- Tarkastele LILOn tulostetta mahdollisten
virheilmoitusten varalta - Kysy harjoitustenpitäjältä ohjeita virheiden
ilmetessä -
26Käännöksen testaaminen
- Uudelleenkäynnistä tietokone komennolla
- reboot
- tai näppäinyhdistelmällä Ctrl Alt Del
- Valitse uusi kernel image buutattavaksi
valikosta - custom valinta LILOn valikosta, tai
kirjoittamalla custom LILOn kehoitteessa - AltSysRqk
- tappaa käytössä olevasta virtuaaliterminaalista
prosessit - esim. aja komento top ja kokeile miten käy!
- altsysrqh mitä muuta voidaan tehdä
27GNU/Linux -hakemistorakenteesta
- /proc
- psuedo tiedostojärjestelmä
- cat /proc/cpuinfo
- cat /proc/ide/
- /var
- Sisältää tyypillisesti väliaikaisteidostoja,
logistiedostoja yms. - cat /var/log/messages
- cat /var/log/dmesg
- /etc
- Konfigurointitiedostot, käynnistys-scriptit
- cat /etc/fstab
- cat /etc/motd
- cat /etc/lilo.conf
- ls /etc/init.d
28Debian / Linux aiheisia faq sivustoja
- Debian - Basic Commands and Tools
- http//www.debian.org/doc/manuals/user/ch6.html
- The Debian GNU/Linux FAQ
- http//www.debian.org/doc/FAQ/
- apt-get -gt Aptitude
- http//www.garfieldtech.com/blog/2005/08/19/aptitu
de/
29(No Transcript)
30Linux harjoitustyö
- Muistakaa editoida tiedostoa
- /etc/motd
- Kysyttävää??
31Linux Magic System Request Key Hacks
- Here is the list of possible values in
/proc/sys/kernel/sysrq - 0 - disable sysrq completely
- 1 - enable all functions of sysrq
- gt1 - bitmask of allowed sysrq functions (see
below for detailed function - description)
- 2 - enable control of console logging level
- 4 - enable control of keyboard (SAK, unraw)
- 8 - enable debugging dumps of processes etc.
- 16 - enable sync command
- 32 - enable remount read-only
- 64 - enable signalling of processes (term, kill,
oom-kill) - 128 - allow reboot/poweroff
- 256 - allow nicing of all RT tasks
32Linux Magic System Request Key Hacks
- ALT-SysRq-ltcommand keygt
- k Secure Access Key (SAK) Kills all programs on
the current virtual console. - b Will immediately reboot the system without
syncing or unmounting your disks. - u Will attempt to remount all mounted filesystems
read-only. - l Send a SIGKILL to all processes, INCLUDING
init. (Your system will be non-functional after
this.) - h Will display help