GNU/Linux >> Znalost Linux >  >> Linux

Jak deaktivuji podporu I2C Designware, když není vytvořen jako modul?

Po přečtení zdrojových kódů jádra jsem našel funkci, kterou musíme zakázat!

Děkujeme Stephenu Kittovi za tip na initcall_blacklist .

Přidejte initcall_blacklist=dw_i2c_init_driver na příkazový řádek jádra. To mi funguje na jádře 4.15.0.

Pro každého, kdo najde tuto odpověď. Můžete to udělat úpravou /etc/default/grub :

  1. Spusťte v terminálu:sudo -H gedit /etc/default/grub .
  2. Přidejte řetězec zakázaných položek do GRUB_CMDLINE_LINUX_DEFAULT :GRUB_CMDLINE_LINUX_DEFAULT="… initcall_blacklist=dw_i2c_init_driver" .
  3. Uložte soubor a zavřete editor.
  4. Spusťte v terminálu:sudo update-grub .
  5. Restartujte a otestujte!

Přidání initcall_blacklist=i2c_dw_init_master na příkazový řádek jádra by měl zastavit inicializaci ovladače Designware během spouštění a zcela se vyhnout problému.

Velmi stručný popis initcall_blacklist naleznete v parametrech jádra a vlákno kolem opravy pro další užitečné informace o pozadí.


Linux
  1. CentOS / RHEL:Jak zakázat a zakázat modul jádra Linuxu, aby se zabránilo jeho automatickému načítání

  2. Jak zjistit verzi kompilovaného modulu jádra?

  3. změny parametrů modulu jádra (pomocí /sys/module)

  1. Jak předat hodnotu vestavěnému modulu jádra Linuxu při spouštění?

  2. Jak přidat funkci dotazování do kódu modulu jádra?

  3. Modul nebyl nalezen, když dělám modprobe

  1. Jak zakázat/uzamknout nebo zakázat aktualizace balíčků pomocí nástroje Apt

  2. Jak přidat podporu jádra PPP do kontejnerů OpenVZ

  3. Černá listina modulu jádra nefunguje