ubuntuusers.de

Grub 2 Serielle Konsole?

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

deko

Anmeldungsdatum:
29. November 2007

Beiträge: 39

Hallo, ich möchte die ausgabe von Grub2 auf eine Serielle Konsole haben.

in Grub Legacy muste man in die menu.lst folgendes hinzufügen:

serial --unit=0 --speed=57600
terminal --timeout=2 serial console

ich bewerkstellige ich das in Grub 2?

danke schonmal

gruß deko

Conzi

Avatar von Conzi

Anmeldungsdatum:
8. Dezember 2005

Beiträge: 54

Wohnort: Euskirchen

Hallo,

hab's gleiche Problem und hänge mich mal an die Frage dran...

Grüße, Conzi

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Hallo Ihr beiden - hier mal ein Hinweis, den ich in den entsprechenden Skripten heraus gelesen habe:

  • GRUB_SERIAL_COMMAND=serial

in die Datei /etc/default/grub eintragen (am besten gleich oben vor GRUB_DEFAULT=). Ich kann das mangels Masse nicht prüfen kann - ich habe keinen aktiven seriellen Ausgang und das wird bei der Erstellung der grub.cfg abgeprüft.

Bitte, bevor Ihr die Datei mit sudo update-grub überschreibt, erst mal im Terminal:

  • sudo grub-mkconfig

eingeben und das Ergebnis ansehen. Würde mich auch interessieren, wo das abgelegt wird und - ggf auch die genannten Parameter/Optionen zusätzlich nach seriell mal eintragen - in Form von

  • GRUB_SERIAL_COMMAND=serial [--unit=unit] [--port=port] [--speed=speed] [--word=word] [--parity=parity] [--stop=stop] [--device=dev]

(wenn Optionen, dann ohne die [ bzw. ]) Zum Lesen

gruß syscon-hh

Conzi

Avatar von Conzi

Anmeldungsdatum:
8. Dezember 2005

Beiträge: 54

Wohnort: Euskirchen

Hi syscon-hh,

ich hab's mal eingetragen und die Konfiguration generiert, aber irgendwie finde ich im Output nix. Aber der Hinweis ist gut. Ich werde da morgen in der Firma noch ein wenig forschen...

Grüße, Conzi

tux@liltux:~$ sudo grub-mkconfig
Generating grub.cfg ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/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 recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
if terminal_input console ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_input
  terminal console
fi
if terminal_output console ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_output
  terminal console
fi
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-2.6.32-22-generic-pae
Found initrd image: /boot/initrd.img-2.6.32-22-generic-pae
menuentry 'Ubuntu, with Linux 2.6.32-22-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        linux   /boot/vmlinuz-2.6.32-22-generic-pae root=UUID=315964ec-c0de-47a6-b2e1-5586800c0b42 ro   quiet
        initrd  /boot/initrd.img-2.6.32-22-generic-pae
}
menuentry 'Ubuntu, with Linux 2.6.32-22-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        echo    'Loading Linux 2.6.32-22-generic-pae ...'
        linux   /boot/vmlinuz-2.6.32-22-generic-pae root=UUID=315964ec-c0de-47a6-b2e1-5586800c0b42 ro single
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-2.6.32-22-generic-pae
}
Found linux image: /boot/vmlinuz-2.6.32-21-generic-pae
Found initrd image: /boot/initrd.img-2.6.32-21-generic-pae
menuentry 'Ubuntu, with Linux 2.6.32-21-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        linux   /boot/vmlinuz-2.6.32-21-generic-pae root=UUID=315964ec-c0de-47a6-b2e1-5586800c0b42 ro   quiet
        initrd  /boot/initrd.img-2.6.32-21-generic-pae
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        echo    'Loading Linux 2.6.32-21-generic-pae ...'
        linux   /boot/vmlinuz-2.6.32-21-generic-pae root=UUID=315964ec-c0de-47a6-b2e1-5586800c0b42 ro single
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-2.6.32-21-generic-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
Found memtest86+ image: /boot/memtest86+.bin
menuentry "Memory test (memtest86+)" {
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 315964ec-c0de-47a6-b2e1-5586800c0b42
        linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
### 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 ###
done
tux@liltux:~$

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Nachdem was ich so gefunden habe - aber mangels entsprechender Hardware nicht ausprobieren kann - geht es so:

Mittels:

GRUB_TERMINAL=serial

wählt man grundsätzlich die serielle Konsole.

Über

GRUB_SERIAL_COMMAND

wird dann die Befehlszeile übergeben, also z.B. so:

GRUB_SERIAL_COMMAND="serial --unit=0 --speed=57600"

Ich habe beides so mal in die /etc/default/grub eingetragen und die grub.cfg hat sich dabei auch geändert. Weiter kann ich nicht probieren, da kein entsprechendes System vorhanden.

Gruß, Martin

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Wie ich oben schon schrieb - es fehlen die Möglichkeiten, es durch zu spielen. Aber in der /boot/grub/grub.cfg erhalte ich zusätzliche Zeilen. Ausglöst durch Eintrage in der /etc/default/grub:

  • GRUB_TERMINAL=serial (nur dieser Eintrag)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Warning: Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used.
serial
if terminal_input serial ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_input
  terminal serial
fi
if terminal_output serial ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_output
  terminal serial
fi

Was allerdings zu Problemen führen kann, denn die Zeile 1 ist nicht als Kommentar gekennzeichnet. Darum zusätzlich mit den relevanten Optionen ergibt:

  • GRUB_SERIAL_COMMAND="serial --unit=1 --speed=57600 --parity=even"

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
serial --unit=1 --speed=57600 --parity=even
if terminal_input serial ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_input
  terminal serial
fi
if terminal_output serial ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_output
  terminal serial
fi

Also Conzi da sollten Veränderungen zumindest in der Datei .../grub.cfg sein!

Und wenn es zum Erfolg führt, dann bitte schreibe hier mal Deine Erfahrungen, damit wir das in das WIKI einbringen können.

gruß syscon-hh

Nachtrag 1: Mit dem Umstellen auf GRUB_TERMINAL=serial werden alle Einstellungen bzw. Vorgaben zu

  • /etc/grub.d/05_debian_theme

ignoriert! Also kein Hintergrundbild mehr und auch die Schriftgrößen stimmen nicht mehr.

deko

(Themenstarter)

Anmeldungsdatum:
29. November 2007

Beiträge: 39

ich habe es eben wie geschildert ausprobiert nur leider wird mir grub nach wie vor nur auf meinen monitor angezeigt.

die grub-config sieht genau so aus wie bei euch

im seriellen Bereich tut sich nichts...

kann es eventuell auch daran liegen das ich nur einen pcie adapter bei mir verbaut habe? also sprich das ganze nicht onboard ist?

hat noch einer ne ahnung wie ich das nun bewerkstelligen kann?

Conzi

Avatar von Conzi

Anmeldungsdatum:
8. Dezember 2005

Beiträge: 54

Wohnort: Euskirchen

Hallo zusammen,

ich hatte leider nicht die Zeit, das Ganze weiter intensiv zu testen und habe mir einen TFT neben den Rechner gestellt 😉 Vorläufig ist's "hinten an" gestellt. Sobald ich neue Erkenntnisse habe, poste ich die hier.

Grüße, Conzi

lenchen

Anmeldungsdatum:
16. Juli 2008

Beiträge: 15

Wohnort: Berlin

Ein Beispiel mit Geschwindigkeiten, die bei mir sinnvoll sind:

In die /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,57600 console=tty0"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=57600"

update-grub nicht vergessen.

Siehe bspw. http://linux.xvx.cz/2009/08/debian-with-grub2-and-serial-connection/

Wenn man die serielle Konsole auch zum Login haben will, muss man Upstart noch das ttyS0 bebringen, siehe https://help.ubuntu.com/community/SerialConsoleHowto#fnref-4630b2079d69e5d0212e584145e50a6c70a1491f .

Antworten |