1 / 32

Lähiverkot -erikoistyökurssi

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.

Télécharger la présentation

Lähiverkot -erikoistyökurssi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tutustuminen Debian GNU/Linux –käyttöjärjestelmään Tietoliikenteen laboratorio 6218 13.11.2006 / Ari Happonen Lähiverkot -erikoistyökurssi

  2. Harjoituksen aiheet • Linux kernelin kääntäminen • Ohjelmien asentaminen • Harjoitustöiden tarkempi ohjeistus • Debian –jakelun työkaluihin tutustuminen

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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ä)

  13. 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

  14. 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 --->

  15. 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 --->

  16. 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

  17. 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

  18. 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.)

  19. 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?)

  20. 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

  21. Debian, ohjelmien asentaminen • tcpdump, netcat • nano, pico, jed, emacs, vi, vim • iperf, nmap, screen • gpm • Ehdotuksia?

  22. 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

  23. 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

  24. 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

  25. 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ä

  26. 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ä

  27. 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

  28. 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/

  29. Linux harjoitustyö • Muistakaa editoida tiedostoa • /etc/motd • Kysyttävää??

  30. 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

  31. 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

More Related