320 likes | 496 Views
Tutustuminen Debian GNU/Linux –käyttöjärjestelmään Tietoliikenteen laboratorio 6218 13.11.2006 / Ari Happonen. Lähiverkot -erikoistyökurssi. Harjoituksen aiheet. Linux kernelin kääntäminen Ohjelmien asentaminen Harjoitustöiden tarkempi ohjeistus Debian –jakelun työkaluihin tutustuminen.
E N D
Tutustuminen Debian GNU/Linux –käyttöjärjestelmään Tietoliikenteen laboratorio 6218 13.11.2006 / Ari Happonen Lähiverkot -erikoistyökurssi
Harjoituksen aiheet • Linux kernelin kääntäminen • Ohjelmien asentaminen • Harjoitustöiden tarkempi ohjeistus • Debian –jakelun työkaluihin tutustuminen
Debian 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
6218 –luokan tietokoneista • Koneiden nimeämiskäytäntö: • Dell –koneet: • officeX, missä X on koneen numero (office1 demo-asennuskone, office5 nurkassa lähellä sohvaa (Dell:n 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
Debian 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ää aptitude:n 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
Debian asennus / Kernel -kääntöharjoitus • Lähdekoodin etsiminen aptitude:lla # 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
Debian asennus / Kernel -kääntöharjoitus • Aptitude:lla 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
Kää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 • EXTRAVERSION=custom • Aloita kernelin konfigurointi komennolla: # make menuconfig • => 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
Kää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
Kää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 ---> ATA/ATAPI/MFM/RLL support ---> 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 --->Second extended fs support • File systems --->Ext3 journalling file system support • konfiguroi sysrq ja kernel hacking päälle • Kernel hacking ---> Kernel debugging • Kernel hacking ---> Magic SysRq key
Käännösohjeita • Lisää kernel konfigurointia: • Jätä File systems ---> 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 ---> (älä muuta täältä mitään) • Pseudo filesystems ---> (älä muuta täältä mitään) • Miscellaneous filesystems ---> (älä muuta täältä mitään) • Network File Systems ---> (älä muuta täältä mitään) • Native Language Support ---> (älä muuta täältä mitään) • Edellisiin alivalikoihin palataan tarkemmin seuraavilla sivuilla
Käännösohjeita • Lisää kernel konfigurointia: • Code maturity level options ---> Valitaan kaikki käännettäväksi kernelin sisälle (built-in) • General setup ---> tänne ei tehdä muutoksia • Loadable module support ---> tänne ei tehdä muutoksia • Processor type and features ---> 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ä)
Käännösohjeita • Lisää kernel konfigurointia: • Power management options (ACPI, APM) ---> APM (Advanced Power Management) BIOS Support --->kohdasta poista kaikki valinnat • Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> kohdasta poista seuraavat valinnat: • ISA support • NatSemi SCx200 support • PCI Hotplug Support ---> • Executable file formats ---> tänne ei tehdä muutoksia
Käännösohjeita • Lisää kernel konfigurointia: • Device Drivers ---> kohdasta poista kaikki valinnat seuraavien alipuiden alta: • Memory Technology Devices (MTD) ---> • Parallel port support • Multi-device support (RAID and LVM) ---> • Fusion MPT device support ---> • IEEE 1394 (FireWire) support ---> • I2O device support ---> • ISDN subsystem ---> • Telephony Support ---> • Dallas's 1-wire bus ---> • Misc devices ---> • Sound --->
Käännösohjeita • Lisää kernel konfigurointia: • Device Drivers ---> Networking support ---> kohdasta poista valinnat: • Amateur Radio support ---> • IrDA (infrared) subsystem support ---> • Bluetooth subsystem support ---> • 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 ---> Networking support ---> alla olevista alipuista poista kaikki valinnat: • ARCnet devices ---> • Ethernet (10000 Mbit) ---> • Token Ring devices ---> • Wireless LAN (non-hamradio) ---> • Wan interfaces ---> • ATM Drivers --->
Käännösohjeita • Lisää kernel konfigurointia: • Device Drivers ---> Multimedia devices --->kohdasta poista kaikki valinnat: • Tarkasta myös kaikki alipuut!! • Security options ---> kohdasta poista kaikki valinnat • Cryptographic options ---> tänne ei tehdä muutoksia • Library routines ---> tänne ei tehdä muutoksia
Käännösohjeita • Lisää kernel konfigurointia: • Lisäämme kerneliin tarvittavat osat, jotta kernelimme pystyy käynnistymään USB -kiintolevyltä • Device Drivers ---> SCSI device support ---> kohdasta sisällytä kerneliin: • SCSI device support • SCSI disk support • Device Drivers ---> USB support ---> 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
Kää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.)
Kernelin & modulien kääntäminen • Selitykset kernel imagen kääntökomennoille: # make bzImage • komento luo kernel –imagen, joka tullaan lisäämään myöhemmin LILO:n 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/<kernel-versio> 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?)
Debian, 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
Debian, ohjelmien asentaminen • tcpdump, netcat • nano, pico, jed, emacs, vi, vim • iperf, nmap, screen • gpm • Ehdotuksia?
Uuden 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/bzImage /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
Debian, 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
Uuden 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 label=custom read-only • Poista myös kommenttimerkki # riviltä 77 sanan prompt edestä editoidessasi lilo.conf -tiedostoa
Uuden kernelin lisääminen boot valikkoon • Lopuksi ajamme LILO:n, joka kirjoittaa käynnistyslohkon uusiksi # lilo -v • Tarkastele LILO:n tulostetta mahdollisten virheilmoitusten varalta • Kysy harjoitustenpitäjältä ohjeita virheiden ilmetessä
Käännöksen testaaminen • Uudelleenkäynnistä tietokone komennolla # reboot tai näppäinyhdistelmällä Ctrl + Alt + Del • Valitse uusi kernel –image buutattavaksi valikosta • custom –valinta LILO:n valikosta, tai kirjoittamalla ”custom” LILO:n kehoitteessa • Alt+SysRq+k • tappaa käytössä olevasta virtuaaliterminaalista prosessit • esim. aja komento ”top” ja kokeile miten käy! • alt+sysrq+h: mitä muuta voidaan tehdä
GNU/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
Debian / 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 -> Aptitude • http://www.garfieldtech.com/blog/2005/08/19/aptitude/
Linux harjoitustyö • Muistakaa editoida tiedostoa • /etc/motd • Kysyttävää??
Linux 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 • >1 - 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
Linux Magic System Request Key Hacks • ALT-SysRq-<command key> • 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