GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So deaktivieren Sie die serielle Konsole (Nicht-Kernel) in U-Boot

Ich komme fast ein Jahr später auf dieses Problem zurück, jetzt habe ich es geschafft, eine angemessene Lösung zu finden.

Das Board, an dem ich arbeitete, hatte einen ziemlich neuen U-Boot in seinem BSP . Um die serielle Konsole zu deaktivieren, musste ich Folgendes tun:

  • Fügen Sie die folgenden Definitionen zum Konfigurationsheader des Boards hinzu (zu finden in include/configs/board.h ):

    #define CONFIG_DISABLE_CONSOLE
    #define CONFIG_SILENT_CONSOLE
    #define CONFIG_SYS_DEVICE_NULLDEV
    
  • Überprüfen Sie, ob Ihr Board early_init_f hat aktiviert in derselben Datei:

    #define CONFIG_BOARD_EARLY_INIT_F 1
    
  • Suchen Sie die Arch-Datei (so etwas wie arch/x86/cpu/architecture/architecture.c ) und fügen Sie diesen Aufruf zu seinem early_init_f hinzu Funktion. Es ändert tatsächlich die globale Datenvariable des Boards, um diese Flags zu haben:

    gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
    
  • Mein Board hatte keine, also musste ich die ganze Funktion hinzufügen

     int board_early_init_f(void)
     {
          gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
          return 0;
     }
    

Das ist es. Hoffe, das hilft jemand anderem!


Es gibt keine Möglichkeit, dies zu tun, ohne die Quelle (Konfiguration) von U-Boot zu ändern.

Um die serielle Konsole in U-Boot zu deaktivieren, müssen Sie U-Boot neu konfigurieren. Die Dokumentation aus dem Master-Zweig von U-Boot:Readme.silent

Dementsprechend müssen Sie Folgendes festlegen:

CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV

CONFIG_SILENT_U_BOOT_ONLY wird auch benötigt, wenn nur U-Boot stumm sein soll.

Möglicherweise müssen Sie auch mit CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC testen und eventuell silent 1 hinzufügen bis CONFIG_EXTRA_ENV_SETTINGS .

==AKTUALISIEREN ==

Sehen Sie sich die folgenden Optionen für eine mögliche Problemumgehung an:

CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR

Diese Optionen geben Ihnen zumindest die Möglichkeit, eine magische Zeichenfolge zu verlangen, um den Startvorgang zu stoppen. Es könnte ausreichen, um Ihnen zu helfen. Siehe README.autoboot


Setzen der u-boot-Umgebungsvariable bootdelay bis -2 deaktiviert die Fähigkeit des UART, den Startvorgang auf U-Boot 2017.01 zu unterbrechen Veröffentlichung. Es scheint, dass -1 ist ein Sonderfall.

Siehe common/autoboot.c Einzelheiten finden Sie in Ihrem U-Boot-Quellbaum.


Linux
  1. So deaktivieren Sie SELinux vorübergehend oder dauerhaft

  2. So deaktivieren Sie ETag in NGINX

  3. Wie deaktiviere ich SELinux auf CentOS?

  4. CentOS / RHEL 6 :So deaktivieren Sie IPv6

  5. So deaktivieren Sie eine CPU

So deaktivieren Sie SELinux unter CentOS 8

So deaktivieren Sie SELinux unter CentOS

So deaktivieren Sie die integrierte Webcam in Linux

So deaktivieren Sie SELinux auf AlmaLinux 8

So deaktivieren Sie ModSecurity in cPanel

So deaktivieren Sie Swap unter Linux