Dopo aver letto i sorgenti del kernel, ho trovato una funzione che dobbiamo inserire nella blacklist!
Grazie a Stephen Kitt per il suggerimento su initcall_blacklist
.
Aggiungi initcall_blacklist=dw_i2c_init_driver
alla riga di comando del kernel. Questo funziona per me sul kernel 4.15.0.
Per chiunque altro troverà questa risposta. Puoi farlo modificando /etc/default/grub
:
- Esegui nel terminale:
sudo -H gedit /etc/default/grub
. - Aggiungi la stringa della lista nera al
GRUB_CMDLINE_LINUX_DEFAULT
:GRUB_CMDLINE_LINUX_DEFAULT="… initcall_blacklist=dw_i2c_init_driver"
. - Salva il file, chiudi l'editor.
- Esegui nel terminale:
sudo update-grub
. - Riavvia e prova!
Aggiunta di initcall_blacklist=i2c_dw_init_master
alla riga di comando del kernel dovrebbe impedire l'inizializzazione del driver Designware durante l'avvio ed evitare del tutto il problema.
Vedi i parametri del kernel per una breve descrizione di initcall_blacklist
e il thread attorno alla patch per informazioni di base più utili.