remapping linee interrupt in linux

Ciao scusate se la mia domanda
è un po' low level, ma magari qualcuno potrebbe aver giocato su questo ambito.

Ho un sistema Real Time al quale vorrei aggiungere una chiavetta USB...

Task piuttosto semplice se si parla di Standard Linux ma abbastanza tricky nel
mio caso purtroppo.

Il problema che riscontro è che la linea di interrupt usata dal mio sistema
USB usa una stessa linea di interrupt di un'altra scheda è questo è l'origine
dei miei casini.
Purtroppo a livello BIOS non ho trovato delle opzioni per settare queste
linee.

il /proc/interrupt mi da:

  0: 108824 XT-PIC-XT timer, rtai_broadcast
  1: 8 XT-PIC-XT i8042
  2: 0 XT-PIC-XT cascade
  4: 0 XT-PIC-XT tpmc901drv
  7: 2392 XT-PIC-XT eth0
  9: 0 XT-PIC-XT uhci_hcd:usb2
11: 28 XT-PIC-XT uhci_hcd:usb1
12: 3 XT-PIC-XT i8042
14: 0 XT-PIC-XT libata
15: 1773 XT-PIC-XT libata
NMI: 1
LOC: 108794
ERR: 0
MIS: 0

e la linea incriminata è la #11 uhci_hcd:usb1

Esiste la possibilità di un remapping a livello software?
Oppure c'è la possibilità di disabilitare un parte di driver? Io potrei
disabilitare uhci_hcd:usb1 e usare solo uhci_hcd:usb2 che non è in conflitto
interrupt con il mio sistema real time.

Ho provato a cercare sul web ma non ho ancora trovato nulla purtroppo.

Qualcuno ha qualche idea?

Bye,
Dietrich

Il problema che riscontro è che la linea di interrupt usata dal mio sistema
USB usa una stessa linea di interrupt di un'altra scheda è questo è l'origine
dei miei casini.

Ciao,

non una soluzione ma almeno 2 cent (o 2 satoshi ;).

In teoria dai tempi di PCI l'assignment scheda <-> IRQ non e` piu` fisso...
Ma chi sa a che livello e` settato uhci_hcd:usb1 <-> #11... potrebbe essere
fatto a livello di BIOS (e nascosto).

Potresti girare il problema e convincere la tua scheda a usare un altro interrupt?

Hai provato banalmente a cambiare slot PCI/PCIe? E` sempre sull'11?

Il driver per l'altra scheda offre qualche settaggio?

Se googli, prova a guardare il mondo audio - quelli sono sempre paranoici a non
sharare interrupt per ottenere l'ultra low latency (in parte e` un po` un discorso
di paranoia stile i cavi audio d'oro :slight_smile: ma in parte si trova anche info utile...

Bye,
Chris.

Ciao Chris,
grazie dei satoshi... di nuovo imparato qualcosa ;-).

la dommanda da mille$ è proprio:
"""chi sa a che livello e` settato uhci_hcd:usb1 <-> #11"""

purtroppo BIOS -> nada :-(.
non è un normale PC ma è una scheda embedded... difficile spostare schede a meno
che inizi a dissaldare e saldare... :wink: -> non fattibile...

l'unica mia speranza è che a livello /sys fs riesca a configurare qualcosa...

sto googlando ma niente per ora.... (a parte il fatto che sto scoprendo tante
belle cose carine su /sys fs... :slight_smile: )

Bye,
diti

Forse puoi impostare qualcosa assemblando i DTB (device tree block) in modo diverso? Su alcuni sistemi embedded li puoi manipolare in maniera abbastanza libera.

Altra idea potrebbe essere quella di forzare l'unplug del dispositivo USB che ti disturba? Quello lo puoi quasi certamente fare a run time e su alcuni sistemi taglia anche l'alimentazione quindi è proprio un unplug vero e proprio... Però poi magari scopri che c'è attaccato qualcosa che ti serve (vedi rpi che ha la scheda di rete collegata all'hub USB).

Ciao,
Daniele

Ciao Daniele, grazie.

io fatto questa operazione qui:

cd /sys/bus/usb/drivers/usb/
echo -n "usb1" > unbind

e in effetti li viene disabilitato....
peccato che sia proprio l'hardware (inteso come connettore) del usb1 che mi
serve quello mappato su IRQ 11...

Se riuscisci a cambiare i due interrupt... oavvero avere
uhci_hcd:usb1 sul #9 il gioco sarebbe fatto...

in pratico ho due controller USB, e devo propio attacarmi (fisicamente) al
controller che sta usando l'IRQ 11

Quello che non sono ancora riuscito a capire bene è se questi interrupt sono
qualcosa di configurabile a livello di driver linux...

Bye,
diti

Forse puoi impostare qualcosa assemblando i DTB (device tree block) in modo
diverso? Su alcuni sistemi embedded li puoi manipolare in maniera
abbastanza libera.

Altra idea potrebbe essere quella di forzare l'unplug del dispositivo USB
che ti disturba? Quello lo puoi quasi certamente fare a run time e su
alcuni sistemi taglia anche l'alimentazione quindi è proprio un unplug vero
e proprio... Però poi magari scopri che c'è attaccato qualcosa che ti serve
(vedi rpi che ha la scheda di rete collegata all'hub USB).

Ciao,
Daniele

--

Il 21 agosto 2017 19:47:01 CEST, Dietrich Pescoller <diti24(a)gmx.de> ha

scritto: