我正在嵌入式系统中运行Debian,并看到通过串行控制台进行引导,但是我不知道如何显示引导消息。
我看到BIOS,grub菜单,然后:
正在加载Linux 3.2.0-4-686-pae ...
加载初始虚拟磁盘...
直到登录pormpt别无其他
我已经从/ etc / default / grub中删除了'quiet'参数,然后执行了update-grub命令。启动后,我看到该cmdline是正确的,没有该参数:
猫/ proc / cmdline:
BOOT_IMAGE = / vmlinuz-3.2.0-4-686-pae root = UUID = 0d645791-109e-4ce4-87be-1cc7074da5f8 ro
但这行不通...我还想念什么?我是否需要使用特定标志重新编译内核?
uname -a:
Linux主机名3.2.0-4-686-pae#1 SMP Debian 3.2.68-1 + deb7u2 i686 GNU / Linux
/boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal_input serial
terminal_output serial
set timeout=2
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root c1265ba3-c4bd-493f-9fec-7c015099c0bc
echo 'Loading Linux 3.2.0-4-686-pae ...'
linux /vmlinuz-3.2.0-4-686-pae root=UUID=0d645791-109e-4ce4-87be-1cc7074da5f8 ro
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.2.0-4-686-pae
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root c1265ba3-c4bd-493f-9fec-7c015099c0bc
echo 'Loading Linux 3.2.0-4-686-pae ...'
linux /vmlinuz-3.2.0-4-686-pae root=UUID=0d645791-109e-4ce4-87be-1cc7074da5f8 ro single
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.2.0-4-686-pae
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
我被卡住了!任何帮助将不胜感激!
谢谢
编辑:
抱歉,我犯了一个愚蠢的错误。我定义
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
在/ etc / default / grub中
我以为grub可以将串行规范传递给内核就足够了,但是当然不是,GRUB仅将GRUB_CMDLINE_LINUX变量作为参数传递给内核。
在GRUB_CMDLINE_LINUX中添加控制台参数,可使内核接收控制台设置并将串行用于消息输出:
GRUB_CMDLINE_LINUX="video=off elevator=deadline console=ttyS0,115200"
现在正在工作。
很抱歉误解了您,感谢您的宝贵时间! :)
最佳答案
您可以尝试在删除了quiet
选项的内核行中添加
console=tty0 console=ttyS0,115200n8
115200是您想要的速度。参见例如ubuntu操作方法。
关于linux - Debian Wheezy在删除安静参数后不显示启动消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31348507/