GNU/Linux >> Tutoriels Linux >  >> Linux

Comment désactiver la prise en charge d'I2C Designware lorsqu'il n'est pas construit en tant que module ?

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 :

  1. Exécuter dans le terminal :sudo -H gedit /etc/default/grub .
  2. Ajouter une chaîne de liste noire au GRUB_CMDLINE_LINUX_DEFAULT :GRUB_CMDLINE_LINUX_DEFAULT="… initcall_blacklist=dw_i2c_init_driver" .
  3. Enregistrez le fichier, fermez l'éditeur.
  4. Exécuter dans le terminal :sudo update-grub .
  5. 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.


Linux
  1. Comment désactiver/verrouiller ou mettre sur liste noire les mises à jour de packages à l'aide de l'outil Apt

  2. Comment trouver le module du noyau pour un appareil donné ?

  3. Linux - Comment déterminer quel module corrompt le noyau ?

  4. Linux - Comment recharger correctement un module du noyau ?

  5. Comment trouver la version d'un module du noyau compilé ?

Comment charger ou décharger un module du noyau Linux

Comment mettre un module sur liste noire sur Ubuntu/Debian Linux

Comment charger et décharger les modules du noyau sous Linux

Comment transmettre une valeur à un module de noyau Linux intégré au démarrage ?

Comment ajouter la fonction d'interrogation au code du module du noyau ?

Comment désactiver la journalisation du noyau dans le journal systemd ?