Portál AbcLinuxu, 11. května 2025 10:45

Dotaz: PCI karta

11.5.2012 11:03 ubka7617
PCI karta
Přečteno: 366×
Odpovědět | Admin

Ahojte,

mam pci kartu na ktoru z linuxu pristupujem priamo cez jej adresu 0x165. Je to specificka karta nie standard. Program ktory som komunikuje priamo cez tuto adresu, ziadne /dev zariadenie a podobne pod uzivatelom root bezi v pohode ale ked sa prepnem do non-root uzivatela tak uz nevie komunikovat cez tento port. Vedeli by ste poradit ako spristupnit prava na konkretny port - adresu ? Mam debian6 a komunikacny program nie je mozne prerobit.

Dakujem vsetkym


Ř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

Pavel Stárek avatar 11.5.2012 11:19 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: PCI karta
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba sudo ten_program ?
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
11.5.2012 12:55 ubka7617
Rozbalit Rozbalit vše Re: PCI karta

to by ten program bezal ako root a to je z bezpecnostnych dovodoch nepripustne

11.5.2012 14:17 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: PCI karta
Pochybuji, že by jádro dovolilo non-rootovi přímo přistupovat na konkrétní adresy mimo rozsah toho procesu. Myslím, že je to něco podobného jako komunikace s paralelním portem bez driveru pomocí inb/outb.

Ani setuid bit by nešel?
11.5.2012 14:44 ubka7617
Rozbalit Rozbalit vše Re: PCI karta
setuid bit som skusal ale nic
11.5.2012 15:09 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: PCI karta
A byl nastavený vlastník na roota? Ale stejně ti to pak poběží pod rootovskými právy, podobně jako přes sudo.
Jendа avatar 11.5.2012 15:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: PCI karta
Tak to leda použít nějakou virtualizaci, která umí delegovat PCI. KVM by to snad mělo umět, ale nezkoušel jsem to.
11.5.2012 15:49 ubka7617
Rozbalit Rozbalit vše Re: PCI karta
virtualizovat pre jedno zariadenie asi nie je moc vhodne. kazdopadne na debian4 to slo, ale stroj som uz dostal nainstalovany a potrebujem ho aktualizovat
11.5.2012 17:11 hw | skóre: 23 | blog: Digital Design
Rozbalit Rozbalit vše Re: PCI karta
Odpovědět | | Sbalit | Link | Blokovat | Admin

Obávám se, že bez zásahu do programu žádné jednoduché řešení nebude. Předpokládám, že přístup ke kartě je řešen pomocí ioperm() a inb()/outb(). Volání ioperm() musí být z privilegovaného procesu.

Jednoduché řešení by bylo v programu používat /dev/perm. Správné řešení je napsat ovladač, který přistupuje na kartu a program s ním komunikuje pomocí zařízení v /dev/....

Pokud je normální používání programu pod rootem nepřípustné, doporučil bych zkusit nějakou metodu virtualizace jak už radili ostatní.

11.5.2012 17:13 hw | skóre: 23 | blog: Digital Design
Rozbalit Rozbalit vše Re: PCI karta

Omlouvám se, samozřejmě jsem myslel /dev/port.

12.5.2012 11:14 aaaaaaa
Rozbalit Rozbalit vše Re: PCI karta
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co nejake capabilities? Zacal by som s CAP_SYS_RAWIO. Proces tak nedostane komplet roota, ale dostane len velmi malu cast (co ale neznamena, ze sa to neda nepriamo pouzit k ziskaniu vacsieho pristupu).
vlastikroot avatar 12.5.2012 18:37 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: PCI karta
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mit v programu primy pristup na IO port je prasecina a pouzival se naposled nekdy v DOSu a na nem zalozenych windows 9x. Fixni adresa PCI zarizeni je z pohledu HW taky docela nespravne reseni (ale co uz). Takze je potreba udelat jednoduchy modul do jadra, ktery zpristupni svoje rozhrani pres soubor v /dev. Pak uz jen predelat program. Pokud je to nejaky closet source blob, jedine reseni me napada pridat pres LD_PRELOAD .so knihovnu, ktera prepise funkce ktere se pouzivaji ke komunikaci - jak uz nekdo poznamenal vyse inb/outb a ioperm. Ioperm by byla prazdna funkce, inb a outb by se presmerovalo do jaderneho modulu (ten by napr. validoval posilana data z pohledu bezpecnosti).
We will destroys the Christian's legion ... and the cross, will be inverted

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.