GNU/Linux >> Tutoriels Linux >  >> Linux

Comment désactiver la console série (non-noyau) dans u-boot

Je reviens sur ce problème presque un an plus tard, maintenant j'ai réussi à trouver une solution appropriée.

La carte sur laquelle je travaillais avait un u-boot raisonnablement nouveau dans son BSP . Pour désactiver la console série, j'ai dû faire ce qui suit :

  • Ajoutez les définitions suivantes à l'en-tête de configuration de la carte (situé dans include/configs/board.h ):

    #define CONFIG_DISABLE_CONSOLE
    #define CONFIG_SILENT_CONSOLE
    #define CONFIG_SYS_DEVICE_NULLDEV
    
  • Vérifiez si votre carte a early_init_f activé dans le même fichier :

    #define CONFIG_BOARD_EARLY_INIT_F 1
    
  • Trouvez le fichier arch (quelque chose comme arch/x86/cpu/architecture/architecture.c ) et ajoutez cet appel à son early_init_f fonction. Il modifie en fait la variable de données globale de la carte pour avoir ces drapeaux :

    gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
    
  • Ma carte n'en avait pas, j'ai donc dû ajouter toute la fonction

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

C'est ça. J'espère que cela aidera quelqu'un d'autre !


Il n'y a aucun moyen de le faire, sans modifier la source (configuration) de U-Boot.

Pour désactiver la console série dans U-Boot, vous devez reconfigurer U-Boot. La documentation de la branche master de U-Boot :Readme.silent

Selon celui-ci, vous devez définir :

CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV

CONFIG_SILENT_U_BOOT_ONLY est également nécessaire si vous souhaitez que seul U-Boot soit silencieux.

Vous devrez peut-être également tester avec CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC et éventuellement en ajoutant silent 1 à CONFIG_EXTRA_ENV_SETTINGS .

==MISE À JOUR ==

Consultez les options suivantes pour une éventuelle solution de contournement :

CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR

Ces options vous donneront au moins un moyen d'exiger une chaîne magique pour arrêter le démarrage. Cela pourrait suffire à vous aider. Voir README.autoboot


Définition de la variable d'environnement u-boot bootdelay à -2 désactive la possibilité pour l'UART d'interrompre le processus de démarrage sur U-Boot 2017.01 Libération. Il semble que -1 est un cas particulier.

Voir common/autoboot.c depuis votre arborescence source U-Boot pour plus de détails.


Linux
  1. Comment désactiver SELinux temporairement ou définitivement

  2. Comment désactiver Cryptswap ?

  3. Comment désactiver le bootchart ?

  4. Comment désactiver SELinux sur CentOS ?

  5. Comment désactiver la notification à l'écran -D -R

Comment désactiver SELinux sur CentOS 8

Comment désactiver SELinux sur CentOS

Comment désactiver la webcam intégrée sous Linux

Comment désactiver SELinux sur AlmaLinux 8

Comment désactiver ModSecurity dans cPanel

Comment désactiver Swap sous Linux