101.1 Lekcija 1
Sertifikat: |
LPIC-1 |
---|---|
Verzija: |
5.0 |
Tema: |
101 Arhitetkura sistema |
Cilj: |
101.1 Odredi i konfiguriši postavke hardvera |
Lekcija: |
1 od 1 |
Uvod
Od ranih godina elektronskog računarstva, proizvođači poslovnih i personalnih računara, integrisali su različite hardverske djelove u svoje mašine, koji zauzvrat moraju da budu podržani operativnim sistemom. To bi moglo biti ogromno iz perspektive programera operativnog sistema, osim ako industrija ne uspostavi standarde za skupove instrukcija i komunikaciju uređaja. Slično standardizovanom sloju apstrakcije koji operativni sistem obezbjeđuje aplikaciji, ovi standardi olakšavaju pisanje i održavanje operativnog sistema koji nije vezan za određeni hardverski model. Međutim, složenost integrisanog osnovnog hardvera ponekad zahtjeva prilagođavanje načina na koji resursi treba da budu izloženi operativnom sistemu, kako bi se mogao instalirati i pravilno funkcionisati.
Neka od ovih podešavanja mogu se izvršiti čak i bez instaliranog operativnog sistema. Većina mašina nudi uslužni program za konfiguraciju koji se može izvršiti dok je mašina uključena. Do sredine 2000-ih, uslužni program za konfiguraciju je implementiran u BIOS-u (Basic Input/Output System), standardu za firmver koji sadrži osnovne konfiguracijske rutine koje se nalaze na x86 matičnim pločama. Od kraja prve decenije 2000-ih, mašine zasnovane na arhitekturi x86 počele su da zamenjuju BIOS novom implementacijom pod nazivom UEFI (Unified Extensible Firmware Interface), koja ima sofisticiranije karakteristike za identifikaciju, testiranje, konfiguraciju i nadogradnju firmvera. Uprkos promjeni, nije neuobičajeno da se i dalje zove konfiguracioni uslužni program BIOS, pošto obje implementacije ispunjavaju istu osnovnu svrhu.
Note
|
Dalji detalji o sličnostima i razlikama između BIOS-a i UEFI-ja će biti pokriveni u kasnijoj lekciji. |
Aktiviranje uređaja
Uslužni program za konfiguraciju sistema se prikazuje nakon pritiska na određeni taster kada je računar uključen. Koju tipku pritisnuti razlikuje se od proizvođača do proizvođača, ali obično je to Del ili jedan od funkcijskih tipki, kao što je F2 ili F12. Kombinacija tastera za korištenje često se prikazuje na ekranu za uključenje.
U uslužnom programu za podešavanje BIOS-a moguće je omogućiti i onemogućiti integrirane periferne uređaje, aktivirati osnovnu zaštitu od grešaka i promijeniti hardverske postavke kao što su IRQ (zahtjev za prekid) i DMA (direktan pristup memoriji). Promjena ovih postavki rijetko je potrebna na modernim mašinama, ali će možda biti potrebno izvršiti prilagodbe radi rješavanja specifičnih problema. Postoje RAM tehnologije, na primjer, koje su kompatibilne s bržim brzinama prijenosa podataka od zadanih vrijednosti, pa se preporučuje da se promijeni na vrijednosti koje je naveo proizvođač. Neki CPU-ovi nude funkcije koje možda nisu potrebne za određenu instalaciju i mogu se deaktivirati. Onemogućene funkcije će smanjiti potrošnju energije i povećati zaštitu sistema, jer se CPU funkcije koje sadrže poznate greške, također mogu onemogućiti.
Ako je mašina opremljena s mnogo uređaja za skladištenje, važno je definirati koji od njih ima ispravan bootloader i trebao bi biti prvi unos u redoslijedu pokretanja uređaja. Operativni sistem se možda neće učitati ako je neispravan uređaj prvi na listi za verifikaciju pokretanja BIOS-a.
Inspekcija uređaja u Linux-u
Kada se uređaji ispravno identifikuju, na operativnom sistemu je da poveže odgovarajuće softverske komponente koje su im potrebne. Kada hardverska funkcija ne radi kako se očekuje, važno je identificirati gdje se tačno problem događa. Kada operativni sistem ne otkrije komad hardvera, najvjerovatnije je da je dio — ili port na koji je povezan — neispravan. Kada je hardverski dio ispravno otkriven, ali i dalje ne radi kako treba, može doći do problema na strani operativnog sistema. Stoga je jedan od prvih koraka u rješavanju problema vezanih za hardver provjeriti da li operativni sistem ispravno otkriva uređaj. Postoje dva osnovna načina za identifikaciju hardverskih resursa na Linux sistemu: korištenje specijaliziranih komandi ili čitanje određenih datoteka unutar posebnih sistema datoteka.
Komande za inspekciju
Dvije bitne komande za identifikaciju povezanih uređaja u Linux sistemu su:
lspci
-
Prikazuje sve uređaje koji su trenutno povezani na PCI (Peripheral Component Interconnect) sabirnicu. PCI uređaji mogu biti ili komponenta pričvršćena na matičnu ploču, poput kontrolera diska, ili kartica za proširenje ugrađena u PCI slot, poput eksterne grafičke kartice.
lsusb
-
Izlistaj USB (Universal Serial Bus) uređaje koji su trenutno povezani na uređaj. Iako postoje USB uređaji za gotovo svaku zamislivu svrhu, USB interfejs se u velikoj mjeri koristi za povezivanje ulaznih uređaja — tastatura, pokazivačkih uređaja — i prenosivih medija za pohranu podataka.
Izlaz komandi lspci
i lsusb
sastoji se od liste svih PCI i USB uređaja identifikovanih od strane operativnog sistema. Međutim, uređaj možda još nije u potpunosti operativan, jer svaki hardverski dio zahtijeva softversku komponentu za kontrolu odgovarajućeg uređaja. Ova softverska komponenta se zove kernel module ili kernel modul, te ista može biti dio službenog Linux kernela ili dodati odvojeno od drugih izvora.
Moduli Linux kernela koji se odnose na hardverske uređaje također se nazivaju drivers ili drajveri, kao i u drugim operativnim sistemima. Međutim, drajvere za Linux ne isporučuje uvijek proizvođač uređaja. Dok neki proizvođači obezbjeđuju sopstvene binarne drajvere koji se instaliraju zasebno, mnoge drajvere pišu nezavisni programeri. Istorijski gledano, dijelovi koji rade na Windows-u, na primjer, možda nemaju odgovarajući kernel modul za Linux. Danas operativni sistemi zasnovani na Linuxu imaju snažnu hardversku podršku i većina uređaja radi bez napora.
Komande koje se direktno odnose na hardver često zahtijevaju root privilegije za izvršavanje ili će prikazati samo ograničene informacije kada ih izvrši običan korisnik, tako da će možda biti potrebno da se prijavite kao root ili da izvršite komandu sa sudo
.
Sljedeći izlaz komande lspci
, na primjer, prikazuje nekoliko identificiranih uređaja:
$ lspci 01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2) 04:02.0 Network controller: Ralink corp. RT2561/RT61 802.11g PCI 04:04.0 Multimedia audio controller: VIA Technologies Inc. ICE1712 [Envy24] PCI Multi-Channel I/O Controller (rev 02) 04:0b.0 FireWire (IEEE 1394): LSI Corporation FW322/323 [TrueFire] 1394a Controller (rev 70)
Izlaz takvih komandi može biti dug desetine redova, tako da prethodni i sljedeći primjeri sadrže samo odjeljke od interesa. Heksadecimalni brojevi na početku svakog reda su jedinstvene adrese odgovarajućeg PCI uređaja. Komanda lspci
prikazuje više detalja o određenom uređaju ako je njegova adresa data sa opcijom -s
, praćena opcijom -v
:
$ lspci -s 04:02.0 -v 04:02.0 Network controller: Ralink corp. RT2561/RT61 802.11g PCI Subsystem: Linksys WMP54G v4.1 Flags: bus master, slow devsel, latency 32, IRQ 21 Memory at e3100000 (32-bit, non-prefetchable) [size=32K] Capabilities: [40] Power Management version 2 kernel driver in use: rt61pci
Izlaz sada pokazuje mnogo više detalja o uređaju na adresi 04:02.0
. To je mrežni kontroler, čiji je interni naziv Ralink corp. RT2561/RT61 802.11g PCI
. Podsistem
je povezan sa brendom i modelom uređaja — Linksys WMP54G v4.1
— i može biti od pomoći u dijagnostičke svrhe.
Kernel modul se može identifikovati u liniji kernel driver in use
, koja prikazuje modul rt61pci
. Iz svih prikupljenih informacija, ispravno je pretpostaviti da:
-
Uređaj je identificiran.
-
Učitan je odgovarajući modul kernela.
-
Uređaj bi trebao biti spreman za upotrebu.
Drugi način da provjerite koji se kernel modul koristi za navedeni uređaj je opcija -k
, dostupna u novijim verzijama lspci
:
$ lspci -s 01:00.0 -k 01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2) kernel driver in use: nvidia kernel modules: nouveau, nvidia_drm, nvidia
Za odabrani uređaj, NVIDIA GPU ploču, lspci
govori da se modul u upotrebi zove nvidia
, u redu kernel driver in use: nvidia
i svi odgovarajući moduli kernela su navedeni u redu kernel moduli: nouveau , nvidia_drm, nvidia
.
Komanda lsusb
je slična lspci
, ali navodi isključivo USB informacije:
$ lsusb Bus 001 Device 029: ID 1781:0c9f Multiple Vendors USBtiny Bus 001 Device 028: ID 093a:2521 Pixart Imaging, Inc. Optical Mouse Bus 001 Device 020: ID 1131:1001 Integrated System Solution Corp. KY-BT100 Bluetooth Adapter Bus 001 Device 011: ID 04f2:0402 Chicony Electronics Co., Ltd Genius LuxeMate i200 Keyboard Bus 001 Device 007: ID 0424:7800 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Komanda lsusb
prikazuje dostupne USB kanale i uređaje povezane s njima. Kao i kod lspci
, opcija -v
prikazuje detaljniji izlaz. Određeni uređaj se može odabrati za pregled davanjem njegovog ID-a opciji -d
:
$ lsusb -v -d 1781:0c9f Bus 001 Device 029: ID 1781:0c9f Multiple Vendors USBtiny Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.01 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1781 Multiple Vendors idProduct 0x0c9f USBtiny bcdDevice 1.04 iManufacturer 0 iProduct 2 USBtiny iSerial 0 bNumConfigurations 1
Sa opcijom -t
, komanda lsusb
prikazuje trenutna mapiranja USB uređaja kao hijerarhijsko stablo:
$ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M |__ Port 2: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 20, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 3: Dev 20, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 3: Dev 20, If 2, Class=Application Specific Interface, Driver=, 12M |__ Port 1: Dev 7, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M |__ Port 2: Dev 28, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 29, If 0, Class=Vendor Specific Class, Driver=, 1.5M
Moguće je da svi uređaji nemaju odgovarajuće module povezane s njima. Komunikacijom sa određenim uređajima aplikacija može upravljati direktno, bez posredovanja modula. Ipak, postoje značajne informacije u izlazu koje daje lsusb -t
. Kada postoji odgovarajući modul, njegovo ime se pojavljuje na kraju reda za uređaj, kao u Driver=btusb
. Uređaj Class
identifikuje opštu kategoriju, kao što je Human Interface Device
, Wireless
, Vendor Specific Class
, Mass Storage
, između ostalih. Da biste provjerili koji uređaj koristi modul btusb
, prisutan u prethodnom popisu, i Bus
i Dev
brojevi bi trebali biti dati opciji -s
komande lsusb
:
$ lsusb -s 01:20 Bus 001 Device 020: ID 1131:1001 Integrated System Solution Corp. KY-BT100 Bluetooth Adapter
Uobičajeno je imati veliki skup učitanih modula kernela u standardnom Linux sistemu, u bilo koje vrijeme. Poželjniji način za interakciju s njima je korištenje komandi koje pruža paket kmod
, koji je skup alata za rukovanje uobičajenim zadacima s modulima Linux kernela kao što su umetanje, uklanjanje, listanje, provjera svojstava, rješavanje zavisnosti i aliasa. Komanda lsmod
, na primjer, prikazuje sve trenutno učitane module:
$ lsmod Module Size Used by kvm_intel 138528 0 kvm 421021 1 kvm_intel iTCO_wdt 13480 0 iTCO_vendor_support 13419 1 iTCO_wdt snd_usb_audio 149112 2 snd_hda_codec_realtek 51465 1 snd_ice1712 75006 3 snd_hda_intel 44075 7 arc4 12608 2 snd_cs8427 13978 1 snd_ice1712 snd_i2c 13828 2 snd_ice1712,snd_cs8427 snd_ice17xx_ak4xxx 13128 1 snd_ice1712 snd_ak4xxx_adda 18487 2 snd_ice1712,snd_ice17xx_ak4xxx microcode 23527 0 snd_usbmidi_lib 24845 1 snd_usb_audio gspca_pac7302 17481 0 gspca_main 36226 1 gspca_pac7302 videodev 132348 2 gspca_main,gspca_pac7302 rt61pci 32326 0 rt2x00pci 13083 1 rt61pci media 20840 1 videodev rt2x00mmio 13322 1 rt61pci hid_dr 12776 0 snd_mpu401_uart 13992 1 snd_ice1712 rt2x00lib 67108 3 rt61pci,rt2x00pci,rt2x00mmio snd_rawmidi 29394 2 snd_usbmidi_lib,snd_mpu401_uart
Izlaz lsmod
komande je podijeljen u tri kolone:
Module
-
Naziv modula.
Size
-
Količina RAM-a koju zauzima modul, u bitovima.
Used by
-
Modul u upotrebi.
Neki moduli zahtijevaju druge module da bi ispravno radili, kao što je slučaj sa modulima za audio uređaje:
$ lsmod | fgrep -i snd_hda_intel snd_hda_intel 42658 5 snd_hda_codec 155748 3 snd_hda_codec_hdmi,snd_hda_codec_via,snd_hda_intel snd_pcm 81999 3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel snd_page_alloc 13852 2 snd_pcm,snd_hda_intel snd 59132 19 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_via,snd_pcm,snd_seq,snd_hda_codec,snd_hda_intel,snd_seq_device
Treći stupac, Used by
, prikazuje module koji zahtijevaju da modul u prvom redu ispravno radi. Mnogi moduli Linux zvučne arhitekture, sa prefiksom snd
, međusobno su zavisni. Kada tražite probleme tokom dijagnostike sistema, može biti korisno izbaciti određene module koji su trenutno učitani. Komanda modprobe
se može koristiti i za učitavanje i za iščitavanje modula kernela: za iščitavanje modula i povezanih modula, sve dok ih ne koristi pokrenut proces, treba koristiti komandu modprobe -r
. Na primjer, za iščitavanje modula snd-hda-intel
(modul za HDA Intel audio uređaj) i drugih modula koji se odnose na ozvučenje:
# modprobe -r snd-hda-intel
Pored učitavanja i iščitavanja modula kernela dok sistem radi, moguće je promijeniti parametre modula kada se kernel učitava, što se ne razlikuje toliko od prosljeđivanja opcija na komande. Svaki modul prihvata specifične parametre, ali najčešće se preporučuju podrazumjevane vrednosti i dodatni parametri nisu potrebni. Međutim, u nekim slučajevima potrebno je koristiti parametre za promjenu ponašanja modula da bi radio kako se očekuje.
Koristeći ime modula kao jedini argument, komanda modinfo
prikazuje opis, datoteku, autora, licencu, identifikaciju, zavisnosti i dostupne parametre za dati modul. Prilagođeni parametri za modul mogu se učiniti trajnim uključivanjem u datoteku /etc/modprobe.conf
ili u pojedinačne datoteke sa ekstenzijom .conf
u direktoriju /etc/modprobe.d/
. Opcija -p
će učiniti da komanda modinfo
prikaže sve dostupne parametre i zanemari ostale informacije:
# modinfo -p nouveau vram_pushbuf:Create DMA push buffers in VRAM (int) tv_norm:Default TV norm. Supported: PAL, PAL-M, PAL-N, PAL-Nc, NTSC-M, NTSC-J, hd480i, hd480p, hd576i, hd576p, hd720p, hd1080i. Default: PAL NOTE Ignored for cards with external TV encoders. (charp) nofbaccel:Disable fbcon acceleration (int) fbcon_bpp:fbcon bits-per-pixel (default: auto) (int) mst:Enable DisplayPort multi-stream (default: enabled) (int) tv_disable:Disable TV-out detection (int) ignorelid:Ignore ACPI lid status (int) duallink:Allow dual-link TMDS (default: enabled) (int) hdmimhz:Force a maximum HDMI pixel clock (in MHz) (int) config:option string to pass to driver core (charp) debug:debug string to pass to driver core (charp) noaccel:disable kernel/abi16 acceleration (int) modeset:enable driver (default: auto, 0 = disabled, 1 = enabled, 2 = headless) (int) atomic:Expose atomic ioctl (default: disabled) (int) runpm:disable (0), force enable (1), optimus only default (-1) (int)
Uzorak izlaza pokazuje sve parametre dostupne za modul nouveau
, modul kernela koji obezbeđuje Nouveau Project kao alternativu vlasničkim drajverima za NVIDIA GPU kartice. Opcija modeset
, na primjer, omogućava kontrolu da li će rezolucija i dubina prikaza biti postavljeni u prostoru kernela, a ne u korisničkom prostoru. Dodavanje options nouveau modeset=0
datoteci /etc/modprobe.d/nouveau.conf
će onemogućiti modeset karakteristiku kernela.
Ako modul uzrokuje probleme, datoteka /etc/modprobe.d/blacklist.conf
se može koristiti za blokiranje učitavanja modula. Na primjer, da bi se spriječilo automatsko učitavanje modula nouveau
, red blacklist nouveau
se mora dodati u datoteku /etc/modprobe.d/blacklist.conf
. Ova radnja je potrebna kada je instaliran vlasnički modul nvidia
i zadani modul nouveau
treba ostaviti po strani.
Note
|
Možete modificirati datoteku |
Informacijske datoteke i datoteke uređaja
Komande lspci
, lsusb
i lsmod
djeluju kao front-endovi za čitanje informacija o hardveru koje je pohranio operativni sistem. Ova vrsta informacija se čuva u posebnim datotekama u direktorijima /proc
i /sys
. Ovi direktoriji su tačke postavljanja na sistem datoteka koji nisu prisutni na particiji uređaja, već samo u RAM prostoru koji koristi kernel za pohranjivanje konfiguracije vremena izvršavanja i informacija o pokrenutim procesima. Takvi sistemi datoteka nisu namijenjeni za konvencionalno skladištenje datoteka, pa se nazivaju pseudo-sistemi datoteka i postoje samo dok sistem radi. Direktorij /proc
sadrži datoteke s informacijama o pokrenutim procesima i hardverskim resursima. Neki od važnih datoteka u /proc
za inspekciju hardvera su:
/proc/cpuinfo
-
Navodi detaljne informacije o CPU-ima koje je pronašao operativni sistem.
/proc/interrupts
-
Lista brojeva prekida po IO uređaju za svaki CPU.
/proc/ioports
-
Lista trenutno registrovane Input/Output port dijelove u upotrebi.
/proc/dma
-
Lista registrovane DMA (direct memory access) kanale u upotrebi.
Datoteke unutar direktorija /sys
imaju slične uloge onima u /proc
. Međutim, direktorij /sys
ima specifičnu svrhu pohranjivanja informacija o uređaju i podataka kernela koji se odnose na hardver, dok /proc
također sadrži informacije o različitim strukturama podataka kernela, uključujući pokrenute procese i konfiguraciju.
Drugi direktorij direktno povezan s uređajima u standardnom Linux sistemu je /dev
. Svaki fajl unutar /dev
povezan je sa sistemskim uređajem, posebno uređajima za skladištenje. Naslijeđeni IDE čvrsti disk, na primjer, kada je povezan na prvi IDE kanal matične ploče, predstavljen je datotekom /dev/hda
. Svaka particija na ovom disku će biti identificirana sa /dev/hda1
, /dev/hda2
do posljednje pronađene particije.
Uklonjivim uređajima rukuje udev podsistem, koji kreira odgovarajuće uređaje u /dev
. Linux kernel hvata događaj otkrivanja hardvera i prosljeđuje ga udev procesu, koji zatim identificira uređaj i dinamički kreira odgovarajuće datoteke u /dev
, koristeći unaprijed definirana pravila.
U trenutnim Linux distribucijama, udev je odgovoran za identifikaciju i konfiguraciju uređaja koji su već prisutni tokom uključivanja mašine (coldplug detection) i uređaja identifikovanih dok sistem radi (hotplug detection). Udev se oslanja na SysFS, pseudo sistem datoteka za informacije vezane za hardver montirane u /sys
.
Note
|
Hotplug je termin koji se koristi za otkrivanje i konfiguraciju uređaja dok sistem radi, na primjer kada je USB uređaj umetnut. Linux kernel podržava hotplug funkcije od verzije 2.6, dozvoljavajući većini sistemskih magistrala (PCI, USB, itd.) da aktivira hotplug događaje kada je uređaj povezan ili isključen. |
Kako se otkriju novi uređaji, udev traži odgovarajuće pravilo u unaprijed definiranim pravilima pohranjenim u direktoriju /etc/udev/rules.d/
. Najvažnija pravila su predviđena distribucijom, ali se za specifične slučajeve mogu dodati nova.
Uređaji za skladištenje
U Linuxu se uređaji za pohranu ili skladištenje, općenito nazivaju blok uređajima, jer se podaci čitaju na i sa ovih uređaja u blokovima baferovanih podataka različitih veličina i pozicija. Svaki blok uređaj je identificiran datotekom u /dev
direktoriju, pri čemu ime datoteke ovisi o tipu uređaja (IDE, SATA, SCSI, itd.) i njegovim particijama. CD/DVD i disketni uređaji, na primjer, imat će nazive u skladu s tim u /dev
: CD/DVD drajv spojen na drugi IDE kanal će biti identificiran kao /dev/hdc
(/dev/hda
i /dev/hdb
su rezervirani za master i slave uređaje na prvom IDE kanalu) i stari floppy drajv će biti identificiran kao /dev/fdO
, /dev/fd1
, itd.
Od verzije Linux kernela 2.4 pa nadalje, većina uređaja za pohranu podataka je sada identificirana kao da su SCSI uređaji, bez obzira na njihov tip hardvera. IDE, SSD i USB blok uređaji će imati prefiks sd
. Za IDE diskove će se koristiti prefiks sd
, ali će treće slovo biti odabrano u zavisnosti od toga da li je drajv master ili slave (u prvom IDE kanalu, master će biti sda
, a slave će biti sdb
). Particije su navedene numerički. Putevi /dev/sda1
, /dev/sda2
, itd. se koriste za prvu i drugu particiju blok uređaja koji je prvi identificiran i /dev/sdb1
, /dev/sdb2
, itd. koji se koriste za identificirati prvu i drugu particiju blok uređaja identificiranu drugu. Izuzetak od ovog obrasca se javlja kod memorijskih kartica (SD kartice) i NVMe uređaja (SSD spojen na PCI Express magistralu). Za SD kartice, putanje /dev/mmcblk0p1
, /dev/mmcblk0p2
, itd. se koriste za prvu i drugu particiju uređaja koji je prvi identificiran i /dev/mmcblk1p1
, /dev/mmcblk1p2
, itd. koji se koristi za identifikaciju prve i druge particije uređaja koji je identificiran kao drugi. NVMe uređaji primaju prefiks nvme
, kao u /dev/nvme0n1p1
i /dev/nvme0n1p2
.
Vođene vježbe
-
Pretpostavimo da se operativni sistem ne može pokrenuti nakon dodavanja drugog SATA diska u sistem. Znajući da svi dijelovi nisu neispravni, koji bi mogao biti mogući uzrok ove greške?
-
Pretpostavimo da želite da budete sigurni da je eksterna video kartica povezana na PCI magistralu vašeg novonabavljenog desktop računara zaista ona koju je reklamirao proizvođač, ali otvaranje kućišta računara poništava garanciju. Koja se naredba može koristiti za popis detalja video kartice, pošto ih je operativni sistem otkrio?
-
Sljedeći red je dio izlaza generiranog komandom`lspci`:
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2208 [Thunderbolt] (rev 05)
Koju komandu trebate izvršiti da biste identificirali modul kernela koji se koristi za ovaj određeni uređaj?
-
Administrator sistema želi isprobati različite parametre za
bluetooth
kernel modul bez ponovnog pokretanja sistema. Međutim, svaki pokušaj izbacivanja modula pomoćumodprobe -r bluetooth
rezultira sljedećom greškom:modprobe: FATAL: Module bluetooth is in use.
Koji je mogući uzrok ove greške?
Istraživačke vježbe
-
Nije neuobičajeno pronaći stare mašine u proizvodnim okruženjima, kao kada neka oprema koristi zastarjelu vezu za komunikaciju sa kontrolnim računarom, zbog čega je potrebno obratiti posebnu pažnju na neke posebnosti ovih starijih mašina. Neki x86 serveri sa starijim BIOS firmverom, na primjer, neće se pokrenuti ako tastatura nije otkrivena. Kako se ovaj problem može izbjeći?
-
Operativni sistemi izgrađeni oko Linux kernela su takođe dostupni za široku lepezu računarskih arhitektura osim x86, kao u računarima sa jednom pločom zasnovanim na ARM arhitekturi. Pažljiv korisnik će primijetiti odsustvo komande
lspci
na takvim mašinama, kao što je Raspberry Pi. Koja razlika sa x86 mašinama opravdava to odsustvo? -
Mnogi mrežni ruteri imaju USB port koji omogućava povezivanje eksternog uređaja, kao što je USB čvrsti disk. Budući da većina njih koristi operativni sistem baziran na Linuxu, kako će vanjski USB tvrdi disk biti imenovan u direktoriju
/dev/
, pod pretpostavkom da u ruteru nije prisutan nijedan drugi konvencionalni blok uređaj? -
2018. godine otkrivena je hardverska ranjivost poznata kao Meltdown. Utječe na gotovo sve procesore mnogih arhitektura. Najnovije verzije Linux kernela mogu obavijestiti da li je trenutni sistem ranjiv. Kako se ove informacije mogu dobiti?
Sažetak
Ova lekcija pokrila je opšte koncepte o tome kako se Linux kernel bavi hardverskim resursima, uglavnom u x86 arhitekturi. Lekcija prolazi kroz sljedeće teme:
-
Kako postavke definisane u BIOS ili UEFI uslužnim programima za konfiguraciju mogu uticati na način na koji operativni sistem komunicira sa hardverom.
-
Kako koristiti alate koje pruža standardni Linux sistem za dobijanje informacija o hardveru.
-
Kako prepoznati trajne i uklonjive uređaje za skladištenje u sistemu datoteka.
Obrađene komande i procedure su:
-
Komande za inspekciju otkrivenog hardvera:
lspci
ilsusb
. -
Komande za upravljanje modulima kernela:
lsmod
imodprobe
. -
Posebne datoteke vezane za hardver, bilo datoteke koje se nalaze u direktoriju
/dev/
ili u pseudo-sistemima datoteka u/proc/
i/sys/
.
Odgovori na vođene vježbe
-
Pretpostavimo da se operativni sistem ne može pokrenuti nakon dodavanja drugog SATA diska u sistem. Znajući da svi dijelovi nisu neispravni, koji bi mogao biti mogući uzrok ove greške?
Redoslijed uređaja za pokretanje treba da se konfiguriše u BIOS uslužnom programu za podešavanje, inače BIOS možda neće moći da pokrene bootloader.
-
Pretpostavimo da želite da budete sigurni da je eksterna video kartica povezana na PCI magistralu vašeg novonabavljenog desktop računara zaista ona koju je reklamirao proizvođač, ali otvaranje kućišta računara poništava garanciju. Koja se komanda može koristiti za popis detalja video kartice, pošto ih je operativni sistem otkrio?
Komanda
lspci
će detaljno prikazati informacije o uređajima konektovanim na PCI magistralu.
Sljedeći red je dio izlaza generiranog komandom`lspci`:
+
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2208 [Thunderbolt] (rev 05)
+ Koju komandu trebate izvršiti da biste identificirali modul kernela koji se koristi za ovaj određeni uređaj?
+
Komanda lspci -s 03:00.0 -v
ili lspci -s 03:00.0 -k
-
Administrator sistema želi isprobati različite parametre za
bluetooth
kernel modul bez ponovnog pokretanja sistema. Međutim, svaki pokušaj izbacivanja modula pomoćumodprobe -r bluetooth
rezultira sljedećom greškom:modprobe: FATAL: Module bluetooth is in use.
Koji je mogući uzrok ove greške?
Modul
bluetooth
je u upotrebi od strane aktivnog procesa.
Odgovori na istraživačke vježbe
-
Nije neuobičajeno pronaći stare mašine u proizvodnim okruženjima, kao kada neka oprema koristi zastarjelu vezu za komunikaciju sa kontrolnim računarom, zbog čega je potrebno obratiti posebnu pažnju na neke posebnosti ovih starijih mašina. Neki x86 serveri sa starijim BIOS firmverom, na primjer, neće se pokrenuti ako tastatura nije otkrivena. Kako se ovaj problem može izbjeći?
Uslužni program za konfiguraciju BIOS-a ima opciju da deaktivira zaključavanje računara kada tastatura nije pronađena.
-
Operativni sistemi izgrađeni oko Linux kernela su takođe dostupni za široku lepezu računarskih arhitektura osim x86, kao u računarima sa jednom pločom zasnovanim na ARM arhitekturi. Pažljiv korisnik će primijetiti odsustvo komande
lspci
na takvim mašinama, kao što je Raspberry Pi. Koja razlika sa x86 mašinama opravdava to odsustvo?Za razliku od većine x86 mašina, računar baziran na ARM-u kao što je Raspberry Pi nema PCI magistralu, tako da je komanda
lspci
beskorisna. -
Mnogi mrežni ruteri imaju USB port koji omogućava povezivanje eksternog uređaja, kao što je USB čvrsti disk. Budući da većina njih koristi operativni sistem baziran na Linuxu, kako će vanjski USB tvrdi disk biti imenovan u direktoriju
/dev/
, pod pretpostavkom da u ruteru nije prisutan nijedan drugi konvencionalni blok uređaj?Moderni Linux kerneli identificiraju USB čvrste diskove kao SATA uređaje, tako da će odgovarajuća datoteka biti
/dev/sda
jer nijedan drugi konvencionalni blok uređaj ne postoji u sistemu. -
2018. godine otkrivena je hardverska ranjivost poznata kao Meltdown. Utječe na gotovo sve procesore mnogih arhitektura. Najnovije verzije Linux kernela mogu obavijestiti da li je trenutni sistem ranjiv. Kako se ove informacije mogu dobiti?
Datoteka
/proc/cpuinfo
ima liniju koja pokazuje poznate greške za odgovarajući CPU, poputbugs: cpu_meltdown
.