2003-09-04 16:48:25

by David Lang

[permalink] [raw]
Subject: serial console on x86

I am attempting to install linux (debian 3 based) on some dual athlon
boxes with no video card. The BIOS does include serial console
capabilities

once the system is installed I have no problem booting from the hard
drive, but when I attempt to boot from a CD to install (ISOLINUX custom
boot disk) I see the lilo prompt, the loading kernel message, the loading
initrd.gz message and then it prints 'Ready.' and reboots the same
bootdisk will work just fine if I install a video card in the machine (and
the same kernel with lilo boots just fine without a video card after it
gets installed)

any ideas why the kernel may crash before printing any messages in this
situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
results.

David Lang


2003-09-04 17:06:44

by Richard B. Johnson

[permalink] [raw]
Subject: Re: serial console on x86

On Thu, 4 Sep 2003, David Lang wrote:

> I am attempting to install linux (debian 3 based) on some dual athlon
> boxes with no video card. The BIOS does include serial console
> capabilities
>
> once the system is installed I have no problem booting from the hard
> drive, but when I attempt to boot from a CD to install (ISOLINUX custom
> boot disk) I see the lilo prompt, the loading kernel message, the loading
> initrd.gz message and then it prints 'Ready.' and reboots the same
> bootdisk will work just fine if I install a video card in the machine (and
> the same kernel with lilo boots just fine without a video card after it
> gets installed)
>
> any ideas why the kernel may crash before printing any messages in this
> situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
> results.
>
> David Lang

append="console=ttyS0,9600"
... in the lilo configuration works fine in the exact same kernels
you cite. However, the CD install does not have the console changed
so it will probably not work. The BIOS is never used past the point
where the OS is physically loaded so it makes no difference
if you have "serial console capabilities" in the BIOS.

You can readily make an 'init' that opens a serial port if the
console failed to open. That's done all the while in embedded
systems. You just can't get that off a "distribution disk".

Cheers,
Dick Johnson
Penguin : Linux version 2.4.22 on an i686 machine (794.73 BogoMips).
Note 96.31% of all statistics are fiction.


2003-09-04 17:32:50

by David Lang

[permalink] [raw]
Subject: Re: serial console on x86

On Thu, 4 Sep 2003, Richard B. Johnson wrote:

> On Thu, 4 Sep 2003, David Lang wrote:
>
> > I am attempting to install linux (debian 3 based) on some dual athlon
> > boxes with no video card. The BIOS does include serial console
> > capabilities
> >
> > once the system is installed I have no problem booting from the hard
> > drive, but when I attempt to boot from a CD to install (ISOLINUX custom
> > boot disk) I see the lilo prompt, the loading kernel message, the loading
> > initrd.gz message and then it prints 'Ready.' and reboots the same
> > bootdisk will work just fine if I install a video card in the machine (and
> > the same kernel with lilo boots just fine without a video card after it
> > gets installed)
> >
> > any ideas why the kernel may crash before printing any messages in this
> > situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
> > results.
> >
> > David Lang
>
> append="console=ttyS0,9600"
> ... in the lilo configuration works fine in the exact same kernels
> you cite. However, the CD install does not have the console changed
> so it will probably not work. The BIOS is never used past the point
> where the OS is physically loaded so it makes no difference
> if you have "serial console capabilities" in the BIOS.

I have a similar line in the lilo configuration. if there is a video card
in the system this works and I see the kernel boot over the serial port,
if there is not a video card it reboots instead of running the kernel.

David Lang

> You can readily make an 'init' that opens a serial port if the
> console failed to open. That's done all the while in embedded
> systems. You just can't get that off a "distribution disk".
>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.4.22 on an i686 machine (794.73 BogoMips).
> Note 96.31% of all statistics are fiction.
>
>

2003-09-04 18:03:17

by Richard B. Johnson

[permalink] [raw]
Subject: Re: serial console on x86

On Thu, 4 Sep 2003, David Lang wrote:

> On Thu, 4 Sep 2003, Richard B. Johnson wrote:
>
> > On Thu, 4 Sep 2003, David Lang wrote:
> >
> > > I am attempting to install linux (debian 3 based) on some dual athlon
> > > boxes with no video card. The BIOS does include serial console
> > > capabilities
> > >
> > > once the system is installed I have no problem booting from the hard
> > > drive, but when I attempt to boot from a CD to install (ISOLINUX custom
> > > boot disk) I see the lilo prompt, the loading kernel message, the loading
> > > initrd.gz message and then it prints 'Ready.' and reboots the same
> > > bootdisk will work just fine if I install a video card in the machine (and
> > > the same kernel with lilo boots just fine without a video card after it
> > > gets installed)
> > >
> > > any ideas why the kernel may crash before printing any messages in this
> > > situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
> > > results.
> > >
> > > David Lang
> >
> > append="console=ttyS0,9600"
> > ... in the lilo configuration works fine in the exact same kernels
> > you cite. However, the CD install does not have the console changed
> > so it will probably not work. The BIOS is never used past the point
> > where the OS is physically loaded so it makes no difference
> > if you have "serial console capabilities" in the BIOS.
>
> I have a similar line in the lilo configuration. if there is a video card
> in the system this works and I see the kernel boot over the serial port,
> if there is not a video card it reboots instead of running the kernel.
>
> David Lang

Well I have a system sitting in the lab. On one machine that
was already up, I did cat /dev/ttyS0 >xxx.xxx. The other machine,
which was connected to the serial port, I booted without a screen
card. This system boots off a NVRAM disk, which is installed
by the BIOS as a floppy drive so the machine "thinks" it's booting
a floppy.

Analogic AMD-SC520 BIOS
Copyright(c) 2000-2003 Analogic Corporation

Check screen memory.... failed
Check ROM checksum .... okay 001C3E00
Checking CMOS timer ... okay 01
Checking main timer ... okay 3578
Checking timer 2 ...... okay A804
Check PCI devices ..... 30001022 000010E3 8000104C 20001022
Check FDC operation ... okay 0000
Check virtual mode .... okay 0000
Check extended RAM .... okay 32505856 bytes
System RAM found ...... 640 Kilobytes
Extended RAM found .... 31744 Kilobytes
Printer ports found ... 0278
RS-232C ports found ... 03F8 02F8 03E8 02E8
CMOS time ............. 13:36:32 09-04-2003
Math coprocessor ...... found
ROM module scan ....... D000 Copyright(c) 1999 - 2003, Analogic Corporation.
All rights reserved worldwide.
NVRAM Ramdisk driver, version 1.2
okay
Booting .....

LILO Loading Message-Based

Linux version 2.4.22 (root@chaos) (gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)) #7 SMP Fri Aug 29 08:24:45 EDT 2003
BIOS-provided physical RAM map:
BIOS-e801: 0000000000000000 - 000000000009f000 (usable)
BIOS-e801: 0000000000100000 - 0000000002000000 (usable)
32MB LOWMEM available.
On node 0 totalpages: 8192
zone(0): 4096 pages.
zone(1): 4096 pages.
zone(2): 0 pages.
DMI not present.
Kernel command line: auto BOOT_IMAGE=Message-Based root=100
No local APIC present or hardware disabled
Initializing CPU#0
Calibrating delay loop... 66.90 BogoMIPS
Memory: 30064k/32768k available (899k kernel code, 2316k reserved, 211k data, 88k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
CPU0: AMD 486 DX/4-WB stepping 04
SMP motherboard not detected.
Local APIC not detected. Using dummy APIC emulation.
Waiting on wait_init_idle (map = 0x0)
All processors have done init_idle
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
i2c-core.o: i2c core module
i2c-algo-bit.o: i2c bit algorithm module
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 2048)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 217k freed
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 88k freed
Warning: unable to open an initial console.

Analogic(tm) VXI/Bus Driver : initialization complete
[SNIPPED...]
My 'init' gets control and loads modules.....

The message from the BIOS states that there was no screen memory
so the BIOS automatically uses the RS-232C port(s) for messages.
You can see the message from the kernel that it failed to
open an initial console. My init closes 0, 1, and 2 then tries
to open the console. If that fails, it opens ttyS0 instead and
dups() the fds. That way, it doesn't rely upon the lilo commands.

You can see all this working with linux-2.4.22. It it doesn't
work on your system, something else is broken. I would turn
OFF the BIOS screen emulation first and see if that fixes it.
You won't see the BIOS messages, but you should see the kernel
messages once it starts.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.22 on an i686 machine (794.73 BogoMips).
Note 96.31% of all statistics are fiction.


2003-09-04 18:34:32

by Bob Chiodini

[permalink] [raw]
Subject: Re: serial console on x86

On Thu, 2003-09-04 at 12:45, David Lang wrote:
> I am attempting to install linux (debian 3 based) on some dual athlon
> boxes with no video card. The BIOS does include serial console
> capabilities
>
> once the system is installed I have no problem booting from the hard
> drive, but when I attempt to boot from a CD to install (ISOLINUX custom
> boot disk) I see the lilo prompt, the loading kernel message, the loading
> initrd.gz message and then it prints 'Ready.' and reboots the same
> bootdisk will work just fine if I install a video card in the machine (and
> the same kernel with lilo boots just fine without a video card after it
> gets installed)
>
> any ideas why the kernel may crash before printing any messages in this
> situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
> results.
>
> David Lang
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

David,

Do you have a SERIAL directive in your syslinux.cfg (or ISOLINUX
equivalent) file on the boot CD?

Per the Syslinux readme.doc:


SERIAL port [[baudrate] flowcontrol]

I have been using:

serial 0 38400 0x003

on an embedded system, booting from either a CompactFlash or
DiskOnChip.

My flowcontrol parm is:

0x001 - Assert DTR + 0x002 - Assert RTS for a NULL modem cable.

The port number corresponds to ports detected by the BIOS.

Bob...
---
Bob Chiodini
Senior Engineer
ASRC Aerospace
M/S ASRC-18
Kennedy Space Center, FL 32899
321-867-6313 (voice)
321-867-6300 (fax)
[email protected]

2003-09-05 08:15:47

by David Lang

[permalink] [raw]
Subject: Re: serial console on x86

On Thu, 4 Sep 2003, Bob Chiodini wrote:

>
> On Thu, 2003-09-04 at 12:45, David Lang wrote:
> > I am attempting to install linux (debian 3 based) on some dual athlon
> > boxes with no video card. The BIOS does include serial console
> > capabilities
> >
> > once the system is installed I have no problem booting from the hard
> > drive, but when I attempt to boot from a CD to install (ISOLINUX custom
> > boot disk) I see the lilo prompt, the loading kernel message, the loading
> > initrd.gz message and then it prints 'Ready.' and reboots the same
> > bootdisk will work just fine if I install a video card in the machine (and
> > the same kernel with lilo boots just fine without a video card after it
> > gets installed)
> >
> > any ideas why the kernel may crash before printing any messages in this
> > situation? I've tried this with 2.4.17 and 2.4.22 with the exact same
> > results.
> >
> > David Lang
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>
> David,
>
> Do you have a SERIAL directive in your syslinux.cfg (or ISOLINUX
> equivalent) file on the boot CD?
>
> Per the Syslinux readme.doc:
>
>
> SERIAL port [[baudrate] flowcontrol]
>
> I have been using:
>
> serial 0 38400 0x003
>
> on an embedded system, booting from either a CompactFlash or
> DiskOnChip.
>
> My flowcontrol parm is:
>
> 0x001 - Assert DTR + 0x002 - Assert RTS for a NULL modem cable.
>
> The port number corresponds to ports detected by the BIOS.
>
I haven't tried the serial directive yet (in the past I've been able to
get things to work with just the console=ttyS0 on the append line)

I'll give this a try tomorrow.

David Lang