teorijavelikogpraska je napisao/la:
Znači imamo učitan modul, imamo firmwer a ne radi.
Citiram sam sebe.
Tek mi je ušlo u tikvu zašto citiraš sam sebe kad sam pogledao i sam u hexdump jednog drivera i vidio da VID i PID nisu na istom mjestu u driveru kao i modaliasi. Lista modaliasa je tu
samo da pribavi depmodu informaciju kako da modprobe riješi ovisnosti o drugim driverima i kako da automatski učita driver prilikom priključenja.
Ta lista modaliasa u driveru ima iste informacije o VID-ovima i PID-ovima kao i lista vendora ali driver provjerava samo listu vendora kad odlučuje hoće li uzeti u obzir neki uređaj. Ne shvaćam zašto ne koriste modaliase nego dupliraju, ali sigurno postoji neki razlog.
Tako da su onda dvije odvojene procedure sparivanja drivera i uređaja, jedna je da se učita driver pri priključenju i druga da se učitani driver nagovori na suradnju s uređajem. Bilo mi je logično da modprobe kod custom konfiguracije modaliasa (.conf file) odmah prilikom učitavanja drivera za uređaj i poveže driver s VID-om tog uređaja, jer zašto bi inače pisali custom konfig. Ali to nije tako.
Neki driveri imaju uprogramirano da uzmu u obzir VID i PID u custom udev konfiguracijama u /etc/udev/rules.d. Udev je usput i još jedan način kako povezati ukapčanje uređaja s učitavanjem drivera ali, koliko vidim, dozlaboga komplicirano.
Međutim, pogledao sam po internetu, osim upisivanja u
sys/.../new_id, specifično za usb drivere je moguće pozvati VID i PID direktno iz modprobe-a kao opcije (to ne vrijedi, dakle, za sve drivere).
- Kod: Označi sve
sudo modprobe ime_drivera vendor=0xHEXVID product=0xHEXPID
Tako da te opcije možeš staviti direktno u modprobe liniju u skripti ili kao
options liniju u
/etc/modprobe.d/...Ima još jedna stvar. Kad sam promijenio VID i PID na jednom usb driveru, nije se više dao učitati jer je bio kriptografski označen, tj. "potpisan", tako da je kernel registrirao da je driver neovlašteno mijenjan. Imam blagi osjećaj da je većina kernel drivera potpisana iako vjerojatno ne svi.
Neka Štrumpf bude s tobom!