Après avoir lu les sources du noyau, j'ai trouvé une fonction que nous devons mettre sur liste noire !
Merci à Stephen Kitt pour l'indice sur initcall_blacklist
.
Ajouter initcall_blacklist=dw_i2c_init_driver
à la ligne de commande du noyau. Cela fonctionne pour moi sur le noyau 4.15.0.
Pour tous ceux qui trouveront cette réponse. Vous pouvez le faire en éditant /etc/default/grub
:
- Exécuter dans le terminal :
sudo -H gedit /etc/default/grub
. - Ajouter une chaîne de liste noire au
GRUB_CMDLINE_LINUX_DEFAULT
:GRUB_CMDLINE_LINUX_DEFAULT="… initcall_blacklist=dw_i2c_init_driver"
. - Enregistrez le fichier, fermez l'éditeur.
- Exécuter dans le terminal :
sudo update-grub
. - Redémarrez et testez !
Ajout de initcall_blacklist=i2c_dw_init_master
à la ligne de commande du noyau devrait empêcher le pilote Designware de s'initialiser pendant le démarrage et éviter complètement le problème.
Voir les paramètres du noyau pour une très brève description de initcall_blacklist
, et le fil autour du patch pour des informations de fond plus utiles.