GNU/Linux >> Linux Esercitazione >  >> Linux

Come disabilitare la console seriale (non kernel) in u-boot

Torno su questo problema quasi un anno dopo, ora sono riuscito a trovare una soluzione adeguata.

La scheda su cui stavo lavorando aveva un u-boot ragionevolmente nuovo nel suo BSP . Per disabilitare la console seriale ho dovuto fare quanto segue:

  • Aggiungi le seguenti definizioni all'intestazione di configurazione della scheda (che si trova in include/configs/board.h ):

    #define CONFIG_DISABLE_CONSOLE
    #define CONFIG_SILENT_CONSOLE
    #define CONFIG_SYS_DEVICE_NULLDEV
    
  • Controlla se la tua scheda ha early_init_f abilitato nello stesso file:

    #define CONFIG_BOARD_EARLY_INIT_F 1
    
  • Trova il file arch (qualcosa come arch/x86/cpu/architecture/architecture.c ) e aggiungi questa chiamata al suo early_init_f funzione. In realtà modifica la variabile dati globale di board per avere questi flag:

    gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
    
  • La mia scheda non ne aveva uno, quindi ho dovuto aggiungere l'intera funzione

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

Questo è tutto. Spero che questo aiuti qualcun altro!


Non c'è modo di farlo, senza modificare la sorgente (configurazione) di U-Boot.

Per disabilitare la console seriale in U-Boot, devi riconfigurare U-Boot. La documentazione dal ramo principale di U-Boot:Readme.silent

In base a quello, devi impostare:

CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV

CONFIG_SILENT_U_BOOT_ONLY è necessario anche se vuoi che solo U-Boot sia silenzioso.

Potrebbe anche essere necessario testare con CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC e possibilmente aggiungendo silent 1 a CONFIG_EXTRA_ENV_SETTINGS .

==AGGIORNA ==

Consulta le seguenti opzioni per una possibile soluzione alternativa:

CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR

Queste opzioni ti daranno almeno un modo per richiedere una stringa magica per fermare l'avvio. Potrebbe bastare per aiutarti. Vedere README.autoboot


Impostazione della variabile d'ambiente u-boot bootdelay a -2 disabilita la capacità dell'UART di interrompere il processo di avvio su U-Boot 2017.01 pubblicazione. Sembra che -1 è un caso speciale.

Vedi common/autoboot.c dall'albero dei sorgenti di U-Boot per i dettagli.


Linux
  1. Come disabilitare SELinux temporaneamente o permanentemente

  2. Come disabilitare ETag in NGINX

  3. Come disabilitare SELinux su CentOS?

  4. Come disabilitare (davvero) NCQ in Linux

  5. Reindirizza la console a una porta seriale

Come disabilitare SELinux su CentOS 8

Come disabilitare SELinux su CentOS

Come disabilitare la webcam integrata in Linux

Come disabilitare SELinux su AlmaLinux 8

Come disabilitare ModSecurity in cPanel

Come disabilitare lo scambio in Linux