[Linux-Biella] Associare modulo kernel ad uno specifico device

f.meini a bilug.linux.it f.meini a bilug.linux.it
Ven 25 Mar 2011 16:51:31 CET


>> On 24/03/2011 16:19, f.meini a bilug.linux.it 說:
>>>> On 24/03/2011 15:46, f.meini a bilug.linux.it 說:
>>>>
>>>>>> On 24/03/2011 14:43, f.meini a bilug.linux.it 說:
>>>>>>
>>>>>>
>>>>>>>> 2011/3/24 Federico "Darkmagister" Pietta<f.pietta a gmail.com>:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> con lspci, non ricordo le opzioni precise ma un man lspci o
>>>>>>>>> simile
>>>>>>>>> torna
>>>>>>>>> utile con -v o -m non ricordo di preciso
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> Yes, meglio ancora lspci -vvv
>>>>>>>>
>>>>>>>> Ciao,
>>>>>>>> --
>>>>>>>> Paolo
>>>>>>>> _______________________________________________
>>>>>>>> Linux mailing list
>>>>>>>> Linux a ml.bilug.linux.it
>>>>>>>> http://ml.bilug.linux.it/mailman/listinfo/linux
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> 1b:00.0 RAID bus controller: Hewlett-Packard Company Smart Array G6
>>>>>>> controllers (rev 01)
>>>>>>> ...
>>>>>>> Ecco che cosa mi è venuto fuori!
>>>>>>> Dove trovo il vendor ?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> non cosi', lspci -vvv non ti serve a nulla, devi usare:
>>>>>> lspci -n
>>>>>> i numerini che ti corrispondono al device 1b:00.0 sono
>>>>>> idVendor:idProduct
>>>>>> il vendor e' hp indi e' facile, probabilmente e' 0x103c
>>>>>> la tua scheda dovrebbe essere la 0x3241
>>>>>>
>>>>>>
>>>>> lspci -n:
>>>>> 1b:00.0 0104: 103c:323a (rev 01)
>>>>> Quindi:
>>>>> ->   Vendor: 0x103c
>>>>> ->   idProduct: 0x323a
>>>>>
>>>>> Potrebbe essere?
>>>>>
>>>>>
>>>>>
>>>>>> ;P
>>>>>>
>>>>>>
>>>>>>> Ne approfitto per chiedere un'altra cosa. Attualmente tale
>>>>>>> controller
>>>>>>> è
>>>>>>> gestito con i kernel driver cciss. Ammesso che riesca trovare il
>>>>>>> modo
>>>>>>> di
>>>>>>> dare il comando che mi avete suggerito,  il sistema si "arrabbia"
>>>>>>> se
>>>>>>> carico un nuovo driver per un device che è già gestito
>>>>>>> con un
>>>>>>> altro?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> no, semplicemente ti ignora il dispositivo, visto che non trova
>>>>>> alcun
>>>>>> device da claimare....
>>>>>> devi usare le regole di udev, cmq, altrimenti non ne esci a mano,
>>>>>> oppure
>>>>>> ti ricompili il cciss, dicendogli di ignorare gli id del controller
>>>>>> che
>>>>>> vuoi gestire con l'altro modulo
>>>>>>
>>>>>>
>>>>>>
>>>>> Mi sembra una strada poco percorribile...
>>>>>
>>>>>
>>>> perche'?
>>>>
>>> Il problema è che un sistema appena installato e configurato a
>>> puntino.
>>> Non posso permettermi di fare dei test.
>>>
>>>
>>>>>> PS perche' non usi un kernel piu' nuovo?
>>>>>> il 2.6.37.x usa gia' l'hpsa per gestire tale scheda..... almeno i
>>>>>> sorgenti dicono cosi'
>>>>>>
>>>>>>
>>>>>>
>>>>> Il kernel utilizzato è 2.6.34.7-0.7-default, abbastanza recente...
>>>>> Ho proprio bisogno di gestire i due controller con moduli diversi;
>>>>> temo
>>>>> infatti che non mi parta più il sistema se anche il controller dei
>>>>> dischi
>>>>> viene gestito con il driver hpsa.
>>>>>
>>>>> Ma è possibile, a sistema vivo, dire al kernel di non utilizzare
>>>>> più
>>>>> un
>>>>> determinato driver per un determinato device?
>>>>>
>>>>>
>>>> con udev, come ti ho detto....
>>>> e' una delle poche cose utili del coso
>>>> (non che non si potessero fare con hotplug ;P)
>>>>
>>>>> Come in modprobe posso specificare di caricare il driver per un
>>>>> determinato device, in rmmod posso fare la stessa cosa?
>>>>>
>>>>> Grazie
>>>>>
>>>>>
>>>> perche' non puoi usare udev?
>>>>
>>>>
>>> ..non lo conosco...ma se dici che devo passare di lì...
>>> Mi dai qualche dritta tu?
>>>
>>>
>> la cosa piu' pulita sarebbe usare il parametro che ti ha indicato paolo
>> (ciarroks)
>>
>> se no io con udev proverei a fare una roba del genere:
>> SUBSYSTEM="scsi", ACTION=="add", ATTR{idVendor}=="103c",
>> ATTR{idProduct}=="323a", KERNELS=="0000:1b:00.0",
>> OPTIONS+="ignore_device"
>> (il kernels per via del bus se no le intercetta tutte...)
>> e metterei in
>> /etc/modules (o dove prende i moduli da caricare al boot la opensuse)
>> una riga con
>> hpsa
>>
> Dando il comando  udevadm info -a -p
> /devices/pci0000:17/0000:17:09.0/0000:1b:00.0 è emerso che
> SUBSYSTEM="pci":
>
> looking at device '/devices/pci0000:17/0000:17:09.0/0000:1b:00.0':
>     KERNEL=="0000:1b:00.0"
>     SUBSYSTEM=="pci"
>     DRIVER=="cciss"
> ...
> Ci sono una serie di altre informazioni che potrei inserire nel comando
> che mi hai indicato.
>
> Ma posso, con udev, dire al sistema vivo di non utilizzare più quel
> maledetto controller?
>
> Scusa la domanda, che può sembrare a te banale...Mi sto avvicinando solo
> ora a udev.
>
> Quindi la sintassi dovrebbe essere:
> SUBSTSTEM="pci", ACTION=="add",....
>
>
> Ciao
> Fiorenza
>
>
Ho definito questa regola:
SUBSYSTEM=="pci",ACTION=="add",KERNEL=="0000:1b:00.0",ATTR{vendor}=="0x103c",ATTR{device}=="0x323a",ATTR{modalias}=="pci:v0000103Cd0000323Asv0000103Csd00003241bc01sc04i00",OPTIONS+="ignore_device"

Dove la inserisco ora?
Ho provato a metterla nella cartella /etc/udev/rules.d, ma eseguendo
udevadm test  --action=add /devices/pci0000:17/0000:17:09.0/0000:1b:00.0
non la vedo applicata.

Forse devo metterla in un altro posto?
C'è un altro modo per capire se verrà presa in considerazione?

Grazie

Ciao
Fiorenza



Maggiori informazioni sulla lista Linux