-1

組み込みシステムで Debian を実行していて、シリアル コンソールから起動を確認していますが、起動メッセージを表示する方法がわかりません。

BIOS、grub メニューが表示され、次のようになります。

Linux 3.2.0-4-686-pae を読み込んでいます ...

初期 RAM ディスクを読み込んでいます...

ログインが必要になるまで、他には何もありません

/etc/default/grub から「quiet」パラメーターを既に消去し、その後 update-grub コマンドを実行しました。そして起動後、そのパラメータなしでコマンドラインが正しいことがわかります:

猫 /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 に console パラメータを追加すると、カーネルがコンソール設定を受け取り、メッセージ出力にシリアルを使用するようになります。

GRUB_CMDLINE_LINUX="video=off elevator=deadline console=ttyS0,115200"

今、それは働いています。ばかげた誤解をお詫びします。お時間をいただきありがとうございます。:)

4

2 に答える 2

1

quietオプションを削除したカーネル行に追加してみてください

console=tty0 console=ttyS0,115200n8

ここで、115200 は必要な速度です。たとえば、 ubuntuのハウツーを参照してください。

于 2015-07-11T06:24:59.967 に答える