I controller FireWire del tipo utilizzato nei PC (OHCI) hanno la capacità di consentire ad altri dispositivi FireWire di eseguire DMA remoto.
Questa funzione deve essere abilitata dal driver prima che funzioni.
Il protocollo SBP-2 è l'unico protocollo FireWire che utilizza DMA remoto; Pertanto, il kernel Linux abilita il DMA remoto solo per i dispositivi SBP-2 (ad esempio, dischi rigidi e altri dispositivi di archiviazione) o qualsiasi dispositivo che afferma sia un dispositivo SBP-2.
Puoi disabilitare quel driver disabilitandolo; scrivi la riga
blacklist firewire-sbp2
in qualsiasi file .conf
in /etc/modprobe.d
o disabilita CONFIG_FIREWIRE_SBP2
durante la compilazione del kernel.
Al momento, il driver firewire-sbp2
si affida al DMA remoto per il trasferimento dei dati, quindi devi scegliere tra dispositivi di archiviazione FireWire e protezione dagli attacchi DMA remoti.
(Sarebbe possibile implementare tali trasferimenti nel software, ma questo non è stato ancora implementato.)
La possibilità di leggere / scrivere qualsiasi memoria è utile anche per il debug da un altro sistema, quindi c'è l'opzione CONFIG_FIREWIRE_OHCI_REMOTE_DMA
che abilita il DMA remoto per qualsiasi dispositivo FireWire.
Tuttavia, questa opzione non è abilitata per impostazione predefinita.