Portál AbcLinuxu, 12. května 2025 07:44

Dotaz: jak funguje detekce HW?

21.3.2009 23:26 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
jak funguje detekce HW?
Přečteno: 1103×
Odpovědět | Admin

Ahoj,

Opravte mě pokud se mýlím, ale takhle zatím chápu detekci HW (během běhu systému):

-Uživatel připojí třeba USB flash disk

-Jádro pozná hardware a udělá 3 věci:

-Zkusí spustit uevent helper program, jak bylo definováno při kompilaci jádra (výchozí nastavení je /sbin/hotplug). Může to být i skript. Ten vytváří zařízení pomocí mknod; informace dostane jako proměnné od jádra.

-Vytvoří uevent, který pošle přes netlink. Záleží pak na daemonu, aby událost zachytil a jednal podle toho. Takový daemon je třeba udev nebo hotplug{,2}.

-Získané informace o zařízení jsou ve virtuálních fs /sys a /proc.

 

Stavím si vlastní systém a chci tomu porozumět. Vím, že aby se daly přečíst oddíly na disku, tak je třeba přimountovat /sys. Pak v souboru /proc/partitions bude seznam oddílů. Nyní ale dochází k problému: informace o oddílech všech blokových zařízení jsou dostupné pouze při startu systému; jakmile se něco změní, něco se podělá a soubor /proc/partitions je prázdný, neobsahuje žádné oddíly.

Pokud tomu dobře rozumím, tak by mělo být zodpovědné pouze jádro - jen kernel přeci zapisuje do /proc a jen kernel se má starat o skutečnou detekci hardwaru. Tudíž, jak je možné, že po odpojení a připojení USB flashe je seznam oddílů prázdný?

Předem díky za jakejkoli hint...

Dr. Eddy

PS: systém startuje z USB a nahrává se do paměti, odkud běží celou dobu. Tudíž vždy po startu systému je přítomen USB disk.


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.3.2009 11:16 NN
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
Odpovědět | | Sbalit | Link | Blokovat | Admin

NEjake odkazy, jeste se k tomu vratim:

http://wiki.linuxquestions.org/wiki/Hotplug

https://wiki.ubuntu.com/UdevRoadmap

NN 

22.3.2009 13:05 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
Odpovědět | | Sbalit | Link | Blokovat | Admin
To je divné, /proc/partitions by neměl mít s hotplugem/uevent nic společného. To je jen na to, aby se někdo dověděl o eventu jinak, než např. každou sekundu cat /proc/partitions. Já nic z toho nepoužívám (ani udev) a v /proc/partitions mám vždy aktuální stav. Co píše dmesg, ve chvíli kdy se něco mění?
In Ada the typical infinite loop would normally be terminated by detonation.
22.3.2009 14:48 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

dmesg mi vypisuje tohle:

po startu jádra detekuje vše správně, zavede ovladače a vypíše i tuto řádku:

uba: uba1 uba2

což je USB zařízení a dvě partitiony.

při odpojení vypíše USB disconnected a při připojení opět napíše že detekoval zařízení, ale už nevypíše partitiony. Zvláštní ale je, že vždy nalezne USB zařízení na jiné adrese, ikdyž USB port neměním při připojování...

22.3.2009 20:30 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
To s tou adresou je celkem normální. Ale to "uba" je divné, mělo by se to spíš chovat jako SCSI disk. Jakou máte verzi jádra?
In Ada the typical infinite loop would normally be terminated by detonation.
22.3.2009 20:46 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

2.6.28

taky mi přišlo zvláštní "uba", ale jednou se mi podařilo přimountovat ext2 fs, takže to funguje... ale jen po startu...

23.3.2009 06:19 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
Hm, a nevytahujete mu náhodou z USB ten disk kde je root fs?
In Ada the typical infinite loop would normally be terminated by detonation.
23.3.2009 08:54 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

na tom USB flashi jsou 2 oddíly: ext2 a fat32. na tom ext2 oddíle je zavaděč, jádro a obraz ramdisku, kterej se celej nahraje do paměti. Takže jakmile se nastartuje jádro a zkopíruje ramdisk do paměti (parametr u jádra je root=ram0 myslim), tak flash by už neměl být potřeba. Systém celej běží v RAM a funguje jak má, až tedy na detekci partitionů...

23.3.2009 09:29 Peter H. | skóre: 18
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

Uba? Nie je to toto? Žeby ten ovládač konečne opravili?

Have you tried turning it off and on again?
23.3.2009 23:16 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

díky moc! Link pomohl, bylo to opravdu tím ovladačem pro low performance USB...

Díky, česká komunito! :)

23.3.2009 09:36 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
Mas spatne zkompilovane jadro. UBA je jakysi podivny ovladac pro usb vyznacujici se silenymy problemy a snekoidni rychlosti. Z jadra to uplne vyhod.

Pokud bootujes z USB a celej system mas v initramdisku, tak je dost dobre mozny ze ti tam uplne chybi podpora pro usb, scsi, filesystemy atd. Initramdisk nic z toho nepotrebuje, zavedeni souboru z usb do ram a jejich spusteni zaridi grub/syslinux pomoci biosu.

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
23.3.2009 09:52 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

vím, že pro zavedení do paměti nepotřebuju ovladače pro USB, ale já ten flash chci ještě po startu systému využít, resp. z něj nahrát jiné soubory, a to nejen hned po startu, ale kdykoli, kdy jádro nějaký USB flash detekuje. Tudíž je potřebuji. Pokud je tedy problém s ovladači, nevíte, které jsou vadné? Taky bych rád podporoval USB 1.1 i 2.0. Jinak jádro je monolytické, if it matters...

23.3.2009 18:03 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: jak funguje detekce HW?
Dal bych tam ovladače: USB host controller, USB mass storage, SCSI disk a příslušný filesystem.
In Ada the typical infinite loop would normally be terminated by detonation.
23.3.2009 23:15 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
Rozbalit Rozbalit vše Re: jak funguje detekce HW?

díky moc!

jádro funguje jak má, teď už jen dolatit hotplug2 daemon...

 

Díky opravdu moc, upřímně, zkoušel jsem IRC kanály, linuxquestions.org i kerneltrap.org, jen tady se mi dostalo pozornosti a řešení!

Česká komunita je nejlepší! :)

 

BTW: kdyby někdo narazil na stejný problém, tak stačí zakázat v jádře v Device Drivers -> Block devices -> Low Performance USB block driver.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

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