¡Después de leer las fuentes del kernel, encontré una función que necesitamos incluir en la lista negra!
Gracias a Stephen Kitt por la pista sobre initcall_blacklist
.
Agregar initcall_blacklist=dw_i2c_init_driver
a la línea de comandos del kernel. Esto me funciona en el kernel 4.15.0.
Para cualquier otra persona que encuentre esta respuesta. Puedes hacerlo editando /etc/default/grub
:
- Ejecutar en la terminal:
sudo -H gedit /etc/default/grub
. - Agregar cadena de lista negra al
GRUB_CMDLINE_LINUX_DEFAULT
:GRUB_CMDLINE_LINUX_DEFAULT="… initcall_blacklist=dw_i2c_init_driver"
. - Guarde el archivo, cierre el editor.
- Ejecutar en la terminal:
sudo update-grub
. - ¡Reinicia y prueba!
Agregando initcall_blacklist=i2c_dw_init_master
a la línea de comandos del kernel debería evitar que el controlador Designware se inicialice durante el arranque y evitar el problema por completo.
Consulte los parámetros del núcleo para obtener una breve descripción de initcall_blacklist
y el hilo alrededor del parche para obtener más información útil.