Ubuntu

[ia64] No serial entry in inittab after serial install

Reported by Bryan Stillwell on 2006-06-06
8
Affects Status Importance Assigned to Milestone
finish-install (Ubuntu)
Medium
Unassigned

Bug Description

After completing an install of Dapper using the ia64 release CD I wasn't able to get a serial console login during the first boot of the installed system. I tracked this down to a missing inittab entry:

T0:23:respawn:/sbin/getty -L ttyS3 115200 vt100

After adding that to my inittab I was able to get a serial login using the MP's serial console. I'm guessing that d-i determines whether to add this information based off whether the kernels cmdline contains 'console=ttyS3' or not. However, with kernels newer than 2.6.10 on ia64 systems (see Documentation/ia64/serial.txt), you no longer have to specify the console when booting the installer.

Test system specs:

Server: rx2620
CPUs: 2x 1.6GHz Itanium2
Memory: 16GB
Storage:
   /dev/sda 73GB ST373453LC
   /dev/sdb 147GB MAP3147NC
   /dev/sdc 73GB MAS3735NC
PCI cards:
   Slot 1 - [AD144A] S2io Inc. Xframe 10 Gigabit Ethernet PCI-X
   Slot 2 - [A7073A] Broadcom NetXtreme BCM5701 - Fibre Gigabit Ethernet
   Slot 3 - [A9900A] 2-port Intel 82546GB-Copper Gigabit Ethernet
   Slot 4 - [A9899A] 2-port Intel 82546GB-Fibre Gigabit Ethernet

Colin Watson (cjwatson) wrote :

This is how prebaseconfig works out whether it's running on a serial console:

# Since this script is running with debconf, 'tty' does
# not give reliable answers about what sort of terminal
# we have. The stdin of /sbin/debian-installer seems
# to tell the truth.
inst_pid=$(pidof debian-installer | cut -d" " -f1)
rawconsole=$(readlink /proc/${inst_pid}/fd/0)
console=$(mapdevfs "$rawconsole")
rawconsole=${rawconsole#/dev/}
console=${console#/dev/}

case "$console" in
ttyS*)

Do you have any ideas on how to improve this?

Here are the results of those commands:

~ # inst_pid=$(pidof debian-installer | cut -d" " -f1)
~ # echo ${inst_pid}
2003
~ # rawconsole=$(readlink /proc/${inst_pid}/fd/0)
~ # echo ${rawconsole}
/dev/console
~ # console=$(mapdevfs "$rawconsole")
~ # echo ${console}
/dev/console
~ # rawconsole=${rawconsole#/dev/}
~ # echo ${rawconsole}
console
~ # console=${console#/dev/}
~ # echo ${console}
console

Apparently SuSE uses a kernel patch that was rejected by the lkml people which creates a new ioctl called TIOCGDEV. If you're curious, look at the fetchtty code from libconsole.c in the showconsole-1.08 tarball of SuSE's sysvinit package. I believe this was one of the first postings on the subject:

   http://lkml.org/lkml/2000/12/15/160

The best my friends and I have come up with that doesn't require a kernel patch is something like the following:

grep "Adding console on ttyS" /var/log/syslog | sed -e "s/^.*console on \(.*\) at .*$/\1/"

Colin Watson (cjwatson) on 2006-09-08
Changed in prebaseconfig:
status: Unconfirmed → Confirmed

Colin,

I finally got around to figuring how RedHat is doing this in the newer Fedora Cores and created the attached utility that prints out the serial device and baud rate using the TIOCGSERIAL ioctl.

Bryan

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers