Portál AbcLinuxu, 3. května 2025 14:17

Cesta do hlubin kompilace jádra - 2 (Hardware)

14. 9. 2005 | Antonín Kolísek
Články - Cesta do hlubin kompilace jádra - 2 (Hardware)  

Sběr informací o našem hardware. Popis postupů a nástrojů využitelných ke zjištění hardwarové konfigurace systému. Podrobné informace o hardwarových součástech jsou klíčové pro správné nastavení před kompilací jádra.

Na úvod

Jak již bylo zmíněno v prvním díle seriálu (Cesta do hlubin kompilace jádra - 1), kompilace jádra není nic těžkého. Největší problém nastává u výběru součástí jádra. Důležité především je, aby v kernelu nechybělo nic potřebného. Jinak by mohl nastat případ, že by nepracoval například nějaký hardware (zvuková karta, síťová karta, atp.), jelikož by naše jádro nemělo pro daný hardware patřičnou podporu. Tohle může eliminovat způsob, při kterém do jádra naplácáme téměř vše, veškerou podporu všech možných zařízení. To by ale vznikl příliš velký kernel a celá práce by neměla smysl. My se snažíme o vytvoření optimalizovaného jádra přímo pro náš počítač. Chceme si vytvořit jádro na míru. Proto potřebujeme vědět, co vše se ukrývá v našem PC, abychom mohli následně vybrat jen podporu těch komponent, které nás právě zajímají. Pojďme se seznámit s kroky, které vám pomohou zjistit informace o našem hardware.

Souborový systém /proc

Viz také článek Adresár /proc - brána do jadra.

První možností, jak najít informace o hardware našeho počítače, je nahlédnutí do adresáře /proc. Jedná se o virtuální souborový systém, který byl prvotně vyvinut pro správu procesů, ale dnes je z něj mocný nástroj pro kontrolu a konfiguraci systému Linux. Uvedu zde příslušné soubory a adresáře /proc, které nás budou zajímat v rámci poskytnutí informací, které potřebujeme pro výběr komponent jádra. Ještě důležitějším nástrojem vedle /proc je aplikace lspci, o které se zmíním následně.

/proc/cpuinfo

První soubor, který nás zajímá. Zde najdeme informace o CPU. Pro zvolení správné podpory CPU při kompilaci jádra nás zajímá především název modelu.

model name : AMD Athlon(tm) XP 2800+
/proc/pci

Zde najdeme informace o hardware, který se nachází na PCI sběrnici nebo má s touto sběrnicí cokoli společného.

/proc/bus/input/devices

Na tomto místě nalezneme informace o připojených vstupních zařízeních, jako je myš, klávesnice a kupodivu i takový PC Speaker.

/proc/bus/usb/devices

Stejné jako předchozí případ, avšak tento soubor se týká USB zařízení.

/proc/ide

Tento adresář poskytuje informace o veškerých ovladačích IDE zařízení v PC.

/proc/scsi

Má-li někdo SCSI řadič a na něm připojené SCSI zařízení, veškeré informace nalezne zde.

Program lspci

Další možností je použití programu lspci z balíčku pciutils, který prozradí tytéž informace, jež se nachází v /proc/pci, a ještě mnohem více. Zde uvádím názorný příklad použití lspci a výklad pro nás důležitých informací.

root@mercury:/# lspci
00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev c1)
00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 0 (rev c1)
00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev c1)
00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)
00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)
00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev c1)
Z těchto řádků je patrné, že základní deska PC obsahuje AGP sběrnici s nforce2 čipsetem.
00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)
Deska obsahuje podporu ISA sběrnice, i když nové desky již ISA sloty nemají, určitá podpora této sběrnice přetrvává dodnes.
00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
SMBus je speciální sběrnice, kterou využívají především senzory.
00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
Zde vidíme, že základní deska má USB řadič, čipset nforce2.
00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
Další pro nás důležitý řádek a to IDE řadič, jehož čipset je nforce2.
00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)
01:06.0 RAID bus controller: CMD Technology Inc PCI0649 (rev 02)
V PC je v tomto případě přídavný IDE/RAID řadič, čipset CMD (CMD-649).
01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Počítač obsahuje - jak vidíme - dvě síťové karty se stejným čipem Realtek (RTL-8139/C/C+).
01:09.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)
01:09.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 08)
Zde vidíme informace o zvukové kartě, čip EMU10k1.
02:00.0 VGA compatible controller: nVidia Corporation NV15DDR [GeForce2 Ti] (rev a4)
Tento údaj nás informuje o grafické kartě nVidia, čip NC15DDR.

Příkaz dmesg

Tímto příkazem se zobrazí výpis hlášení jádra při procesu bootování. Je tak možné naleznout množství potřebných informací o našem hardware.

Alternativní aplikace pro informaci o hardware

Kromě zde uvedených postupů máme možnost použít různé aplikace, které nám podají souhrnné informace o hardware.

Hardware Lister

Program lshw podává velmi podrobné informace o hardware. Z grafických detekčních programů se mi jeví jako jeden z těch povedenějších. Program je možné spustit v konzoli i v grafickém režimu.

kompilace jadra - lshw

KInfoCenter

KInfoCenter je součástí grafického uživatelského prostředí KDE. Čte informace přímo z /proc. Napomáhá lépe se orientovat v tomto virtuálním souborovém systému.

kompilace jadra - kinfocenter

Závěr

Tento díl má být pouze návodem, jak si obstarat důležité informace o hardware, které jsou potřebné pro úspěšné sestavení jádra. O samotném sestavování kernelu toho tentokrát nebylo moc řečeno, avšak právě tento krok je velmi důležitý předstupeň při kompilování jádra. V dalším díle se již seznámíme s prvními subsystémy kernelu.

Seriál Cesta do hlubin kompilace jádra (dílů: 3)

První díl: Cesta do hlubin kompilace jádra - 1, poslední díl: Cesta do hlubin kompilace jádra - 3.
Předchozí díl: Cesta do hlubin kompilace jádra - 1
Následující díl: Cesta do hlubin kompilace jádra - 3

Související články

Cesta do hlubin kompilace jádra - 1
Kompilovanie jadra - I
Kompilovanie jadra - II
Patchsety pro kernel
Na co se často ptáme
Seriál: Nebojíme se kompilace
Téma: kdy kompilovat jádro
Adresár /proc - brána do jadra

Odkazy a zdroje

pciutils
lshw

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

14.9.2005 06:16 Mike
Rozbalit Rozbalit vše Přerušení
Odpovědět | Sbalit | Link | Blokovat | Admin
Pro kompilaci sice nepotřebné, ale je to trochu i o HW...

Jak vypsat, která přerušení a čím jsou používána? Dost dlouho jsem se kdysi trápil se síťovkou, a ona to byla myš, ktrá mi ji "obsluhovala". FUJ

Díky moc
14.9.2005 07:28 Antonín Kolísek | skóre: 33 | blog: PDA | Vyškov
Rozbalit Rozbalit vše Re: Přerušení
Pokud člověk neví jaký má hardware a především jaký má jeho hardware čipset, pouštět se do kompilace jádra je pro něj ztráta času. Proto tetno díl seriálu.
14.9.2005 07:58 camlost | skóre: 7
Rozbalit Rozbalit vše Re: Přerušení
cat /proc/interrupts
A slow biker.
14.9.2005 08:06 cedrik
Rozbalit Rozbalit vše Re: Přerušení
/proc/interrups, snad se nemýlím. Také jsem měl stejný problém 8-).
14.9.2005 12:30 bufobufo
Rozbalit Rozbalit vše Re: Přerušení
pouzity irq se da vypsat i pres lspci -v
14.9.2005 08:07 camlost | skóre: 7
Rozbalit Rozbalit vše SW požadavky
Odpovědět | Sbalit | Link | Blokovat | Admin
Ahoj, budou v některém z následujících dílů uvedeny i požadavky na nainstalovaný SW? (Tento díl mi připadá poněkud stručný a tak nějak jsem očekával, že tu bude zmínka i o SW.)
A slow biker.
14.9.2005 08:13 Antonín Kolísek | skóre: 33 | blog: PDA | Vyškov
Rozbalit Rozbalit vše Re: SW požadavky
Tohle mělo být v prvním díle, ale po zvážení a stále se měnících verzí je uveden odkaz kde každý potřebné informace najde. Většina software je součástí velkých a běžných distribuci. Zda je verze odpovídající si stejně každý musí najít v /usr/src/linux/Documentation/Changes.
14.9.2005 22:47 Martin Čížek | skóre: 20 | Praha
Rozbalit Rozbalit vše Příkaz dmesg
Odpovědět | Sbalit | Link | Blokovat | Admin
dmesg - print or control the kernel ring buffer
Autor význam zaměnil se souborem /var/log/dmesg, kde jsou výpisy dmesg z fáze bootování.
Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
19.9.2005 10:02 Nicco | skóre: 9
Rozbalit Rozbalit vše Re: Příkaz dmesg
Hned mi tam nieco nesedelo. Lebo ked spustim dmesg po boote, uz za jazdy systemu, vzdy sa nieco vo vypise zmeni, nieco pribudne, nieco ubudne.
25.9.2005 22:16 Petr Dlouhý
Rozbalit Rozbalit vše Moduly
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobrý den.

Nejsem v Linuxu ještě tak zběhlý - takže možná to dělám úplně špatně.

Pokaždé když si skompiluji a nainstaluji kernel (i s moduly), tak po zavedení nového kernelu mi nefungují takové věci, jako ovladač k NVidii, ARTS, LIRC (jsou instalované jako moduly do jádra) a musím je znovu nainstalovat. Je nějaký způsob, jak docílit toho, aby se tyto moduly nepřemazali při každé nové instalaci modulů kernelu?

Děkuji za odpověď.
28.9.2005 16:13 Antonín Kolísek | skóre: 33 | blog: PDA | Vyškov
Rozbalit Rozbalit vše Re: Moduly
ad/ nvidia: drivery k nvidia kartám se musí po každé kompilaci jádra znovu nainstalovat, jinak to nejde.

ad ostatní: pokud je cokoli potřebné přeinstalovat, je to tím, že je díky novému jádru také jiná cesta k modulům (/lib/modules/2.6.13, atd) nebo se přeinstalací nového jádra (make modules_install) smazali nainstalované moduly, takže opět je třeba nová instalace dodatečných modulů.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.