GNU/Linux >> Belajar Linux >  >> Linux

Cara menonaktifkan konsol serial (non-kernel) di u-boot

Saya kembali ke masalah ini hampir setahun kemudian, sekarang saya berhasil menemukan solusi yang tepat.

Papan tempat saya bekerja memiliki u-boot yang cukup baru dalam BSP-nya . Untuk menonaktifkan konsol serial, saya harus melakukan hal berikut:

  • Tambahkan definisi berikut ke header konfigurasi papan (terletak di include/configs/board.h ):

    #define CONFIG_DISABLE_CONSOLE
    #define CONFIG_SILENT_CONSOLE
    #define CONFIG_SYS_DEVICE_NULLDEV
    
  • Periksa apakah papan Anda memiliki early_init_f diaktifkan di file yang sama:

    #define CONFIG_BOARD_EARLY_INIT_F 1
    
  • Temukan file arch(Sesuatu seperti arch/x86/cpu/architecture/architecture.c ) dan tambahkan panggilan ini ke early_init_f fungsi. Itu sebenarnya memodifikasi variabel data global papan untuk memiliki tanda-tanda ini:

    gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
    
  • Papan saya tidak memilikinya, jadi saya harus menambahkan seluruh fungsi

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

Itu dia. Semoga ini bisa membantu orang lain!


Tidak ada cara untuk melakukannya, tanpa mengubah sumber (konfigurasi) U-Boot.

Untuk menonaktifkan konsol serial di U-Boot, Anda perlu mengkonfigurasi ulang U-Boot. Dokumentasi dari cabang master U-Boot:Readme.silent

Menurut yang itu, Anda perlu menyetel:

CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV

CONFIG_SILENT_U_BOOT_ONLY juga diperlukan jika Anda ingin hanya U-Boot yang diam.

Anda mungkin juga perlu menguji dengan CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC dan mungkin menambahkan silent 1 ke CONFIG_EXTRA_ENV_SETTINGS .

==UPDATE ==

Lihat opsi berikut untuk solusi yang memungkinkan:

CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR

Opsi ini setidaknya akan memberi Anda cara meminta string ajaib untuk menghentikan boot. Mungkin cukup untuk membantu Anda. Lihat README.autoboot


Mengatur variabel lingkungan u-boot bootdelay ke -2 menonaktifkan kemampuan UART untuk menghentikan proses boot pada U-Boot 2017.01 melepaskan. Tampaknya -1 adalah kasus khusus.

Lihat common/autoboot.c dari pohon sumber U-Boot Anda untuk mengetahui detailnya.


Linux
  1. Cara Menonaktifkan ETag di NGINX

  2. Bagaimana Cara Menonaktifkan SELinux di CentOS?

  3. Cara menonaktifkan notifikasi di layar -D -R

  1. Cara Menonaktifkan SELinux Sementara atau Permanen

  2. Bagaimana Cara Menonaktifkan Cryptswap?

  3. Bagaimana Cara Menonaktifkan Bootchart?

  1. CentOS / RHEL 6:Cara menonaktifkan IPv6

  2. Cara (benar-benar) menonaktifkan NCQ di Linux

  3. Alihkan konsol ke port serial