我正在使用Minnowboard Max和使用u-boot定制的Linux内核的嵌入式项目。
内核命令行参数:
initcall_debug=1 video=HDMI-A-1:1920x1200MR@60D console=ttyS0,115200 console=tty0
我发现misc.c文件中定义的debug_pustr消息都没有打印在串口中。
debug_putstr("\nDecompressing Linux... ");
我也启用了
内核menuconfig中的CONFIG_X86_VERBOSE_BOOTUP =y
。
有没有办法在串口中看到这些消息?
答案 0 :(得分:1)
有没有办法在串口中看到这些消息?
显着的信息是处理器架构 例如,在ARM引导中,解压缩器代码使用其自己的串行端口配置,这与earlyprintk不同。有些ARM机器有配置对话框来指定这个早期的串口;有些人可能会使用机器ID(参见How do I find ARM Linux entry point when it fails to uncompress?)。在早期(init / main.c) init_kernel()例程启动后,在早期的ARM中,earlyprintk无效。
对于x86所有早期串口配置& I / O被合并到earlyprintk功能中。使用kernel命令行参数定义串口(默认设备为0x3F8)和波特率(默认为9600)。
1081 earlyprintk= [X86,SH,BLACKFIN,ARM,M68k]
1082 earlyprintk=vga
1083 earlyprintk=efi
1084 earlyprintk=xen
1085 earlyprintk=serial[,ttySn[,baudrate]]
1086 earlyprintk=serial[,0x...[,baudrate]]
1087 earlyprintk=ttySn[,baudrate]
1088 earlyprintk=dbgp[debugController#]
1089 earlyprintk=pciserial,bus:device.function[,baudrate]
1090
1091 earlyprintk is useful when the kernel crashes before
1092 the normal console is initialized. It is not enabled by
1093 default because it has some cosmetic problems.
1094
1095 Append ",keep" to not disable it when the real console
1096 takes over.
1097
1098 Only one of vga, efi, serial, or usb debug port can
1099 be used at a time.
1100
1101 Currently only ttyS0 and ttyS1 may be specified by
1102 name. Other I/O ports may be explicitly specified
1103 on some architectures (x86 and arm at least) by
1104 replacing ttySn with an I/O port address, like this:
1105 earlyprintk=serial,0x1008,115200
1106 You can find the port for a given device in
1107 /proc/tty/driver/serial:
1108 2: uart:ST16650V2 port:00001008 irq:18 ...
1109
1110 Interaction with the standard serial driver is not
1111 very good.
1112
1113 The VGA and EFI output is eventually overwritten by
1114 the real console.
1115
1116 The xen output can only be used by Xen PV guests.