[OpenIndiana-discuss] Serial console for OI/Solaris on Intel MFSYS blades

Jim Klimov jimklimov at cos.ru
Thu Jun 14 17:58:29 UTC 2012


Thanks for the suggestions, but they did not help :(
Waiting for more ideas ;)

Details follow:

2012-06-14 21:28, Gary Mills wrote:
> On Thu, Jun 14, 2012 at 06:53:23PM +0400, Jim Klimov wrote:
>>
>>    I have a peculiar problem: the Intel MFSYS blade servers, in short ;)
>>
>>    The problem is, the redirected console gets lost after Solaris 10
>> or OI boots on the blade. It works somewhat for BIOS and GRUB (but
>> even there it sometimes loses connections or farts out invalid
>> characters), and if I boot with "-B console=ttya" - sercon usually
>> makes it through the OS build version banner and prints a character
>> or two of the OS initialization (console logs from SMF startups).
>
> You will always get output for BIOS and GRUB because these do their
> I/O through the BIOS, using BIOS redirection.  Once Linux or Solaris
> start, they do their own I/O directly to the serial port.

No, GRUB can also own its I/O to the serial port (also, in BIOS
the redirection-after-POST is disabled). GRUB's menu.lst defines:
   serial --unit=0 --speed=9600 ---word=8 --parity=no --stop=1
   terminal --dumb --timeout=10 console serial

So wherever a key is pressed during the first 10-second timeout,
the interactive menu would pop up, with its own timeout to boot.


 > You might also have to set the serial bit rate to match in the
 > firmware on the remote management card.  You can also change it in
 > OI to match the card's.

That one is a tricky part, as I wrote. I have tried a few
settings of baud-rate, DTR/DTS, flowctl, parity via eeprom
and /etc/ttydefs and /etc/saf/zsmon/_pmtab and such; that
had no noticeable influence over several non-fast reboots.
I also my did tests over all located serial port names
(below) like "/dev/(term/a|ttya|tty00|cua/a|cua0|ttyd0)".

Except that in some cases I got no output at all, or the
OS version output headers broke mid-string even before SMF
report messages, but it certainly was not an improvement,
but not a definitive change either...

Is eeprom (/boot/solaris/bootenv.rc) the only location which
influences the serial port settings during the OS uptime?

Is there a way to dynamically set and change the serial port
options (i.e. via some terminal emulator, etc.) and recover
the logical port/driver from a hung position without a reboot?
Is the serial driver (asy?) instrumented for debug or dtrace?

> How many `asy' ports show up in `prtconf -v'?  It's usually COM3
> (ttyc) that's used for serial-over-lan.

Actually, on Sun Fire servers those are usually ttya's as well.
On this box it certainly is, "unit=0" in GRUB, "ttyS0" in Linux
and "console=ttya" works for a short while in Solaris/OI.

Answering the direct question, there is only one "asy" unit
(thanks, I didn't think of asy, I only looked for uart, but
they lead to the same piece of hardware):

# prtconf -v | gegrep -B1 -A15 -i 'asy|uart'
             name='ddi-forceload' type=string items=7
                 value='misc/scsi_vhci/scsi_vhci_f_asym_sun' + 
'misc/scsi_vhci/scsi_vhci_f_asym_lsi' + 
'misc/scsi_vhci/scsi_vhci_f_asym_emc' + 
'misc/scsi_vhci/scsi_vhci_f_sym_emc' + 
'misc/scsi_vhci/scsi_vhci_f_sym_hds' + 'misc/scsi_vhci/scsi_vhci_f_sym' 
+ 'misc/scsi_vhci/scsi_vhci_f_tpgs'

...

             asy, instance #0
                 System software properties:
                     name='interrupt-priorities' type=int items=1
                         value=0000000c
                 Hardware properties:
                     name='interrupts' type=int items=1
                         value=00000004
                     name='reg' type=int items=3
                         value=00000001.000003f8.00000008
                     name='model' type=string items=1
                         value='Standard PC COM port'
                     name='compatible' type=string items=1
                         value='PNP0500'
                 Register Specifications:
                     Bus Type=0x1, Address=0x3f8, Size=0x8
                 Interrupt Specifications:
                     Interrupt Priority=0xc (ipl 12), vector=0x4 (4)
                 Device Minor Nodes:
                     dev=(106,0)
                         dev_path=/pci at 0,0/isa at 1f/asy at 1,3f8:a
                             spectype=chr type=minor
                             dev_link=/dev/ttya
                             dev_link=/dev/tty00
                             dev_link=/dev/term/a
                         Minor properties:
                             name='uart' type=string items=1 dev=(106,0)
                                 value='16550A'
                     dev=(106,131072)
                         dev_path=/pci at 0,0/isa at 1f/asy at 1,3f8:a,cu
                             spectype=chr type=minor
                             dev_link=/dev/ttyd0
                             dev_link=/dev/cua0
                             dev_link=/dev/cua/a

...

//Jim Klimov



More information about the OpenIndiana-discuss mailing list