Date: Wed, 5 Jun 2013 21:29:56 +0200 From: Alban Hertroys <haramrae@gmail.com> To: Jeremy Chadwick <jdc@koitsu.org> Cc: "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org> Subject: Re: Serial terminal issues Message-ID: <93196E06-1775-46A4-A3E9-1C8A3B8C4E94@gmail.com> In-Reply-To: <20130605005918.GA5709@icarus.home.lan> References: <383C78B1-4F16-408F-8144-63B470D0C129@gmail.com> <20130605005918.GA5709@icarus.home.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 5, 2013, at 2:59, Jeremy Chadwick <jdc@koitsu.org> wrote: > On Tue, Jun 04, 2013 at 11:32:48PM +0200, Alban Hertroys wrote: >> I can't seem to get my serial terminal to work with my new system. >>=20 >> I had a serial terminal connected to my old system that worked great >> and copied /boot.config, /boot/loader.conf and /etc/ttys settings = over >> from it. >>=20 >> The new system has a Gigabyte GA970A-UD3 board with just a serial >> header on the board. I bought a serial connector backplate in an >> electronics store and connected it to the board. Could the pinout be >> different or something? >=20 > It is very possible. You should have asked Gigabyte what exact = product > (specifically part number) to purchase that provided a > header-to-backplane DB9 port, or if they could send you one (many will > for free). Always use what the mainboard vendor tells you. Always. I contacted Gigabyte, but haven't heard from them yet. For the Dutch readers: their website is at gigabyte.co.nl. You = absolutely don't want to go to gigabyte.nl - not safe for work, not at = all (guess where I was=85). > It's also very possible the cable you're using to connect from the > Gigabyte board to something (you didn't disclose what) is wired wrong. I doubt that. It has worked fine before in the same setup with the = previous PC and only stopped working once I connected it to the new PC. = The new PC is the only variable, I expect that's where the problem is. The other end of the serial cable is connected to a Bull serial terminal = (TWSH004/A). The cable has been that same serial cable for the last 10 = years or so. >>> cat /boot.config=20 >> -D -S19200 >=20 > Please try using "-S19200 -Dh" (please read carefully). The order of > the arguments may matter as well (there has been some speculation on = the > lists about this, and I do not care to do the analysis; just passing > information on blindly). That's interesting, I didn't expect that. I'll test that when I get = around to playing with the serial port again. That said, these settings worked in the old PC. I copied boot.config = straight over from my backups. >>> cat /boot/loader.conf=20 >> boot_multicons=3D"YES" >> boot_serial=3D"YES" >> comconsole_speed=3D"19200" >> console=3D"comconsole,vidconsole" >=20 > You do not need any of this given what /boot.config contains. Please > remove it all. Good to know, I never liked having this information in duplicate. >>> =46rom /var/log/messages: >> Jun 4 21:28:50 solfertje kernel: uart0: <16550 or compatible> port = 0x3f8-0x3ff irq=20 >> 4 flags 0x10 on acpi0 >> Jun 4 21:28:50 solfertje kernel: uart0: console (19200,n,8,1) >> Jun 4 21:28:50 solfertje kernel: orm0: <ISA Option ROMs> at iomem = 0xd5000-0xd67ff,0xd7000-0xd7fff on isa0 >> Jun 4 21:28:50 solfertje kernel: sc0: <System console> at flags = 0x100 on isa0 >> Jun 4 21:28:50 solfertje kernel: sc0: VGA <16 virtual consoles, = flags=3D0x300> >> Jun 4 21:28:50 solfertje kernel: vga0: <Generic ISA VGA> at port = 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 >> Jun 4 21:28:50 solfertje kernel: atkbdc0: <Keyboard controller = (i8042)> at port 0x60,0x64 on isa0 >> Jun 4 21:28:50 solfertje kernel: atkbd0: <AT Keyboard> irq 1 on = atkbdc0 >> Jun 4 21:28:50 solfertje kernel: kbd0 at atkbd0 >> Jun 4 21:28:50 solfertje kernel: atkbd0: [GIANT-LOCKED] >=20 > Okay, so what's the problem? You're not seeing any I/O on the serial > port? I get a blank screen with just a cursor. It's not blinking because = blinking cursors get on my nerves. Whether that means no I/O at all or the wrong kind of I/O I can't tell. = I haven't set up a terminal like this in 10 years as the previous setup = always just worked once set up. It's quite possible that I forgot some = important detail. > How do you have your serial device connected to something on the > other end? Meaning: solfertje has a serial port, and it's connected = to > what exactly? The Bull terminal mentioned above. > Are you sure the device its connected to is working? Well, it was still working great a few days ago before I replaced the PC = it was connected to, so I assume it still does. (snipped useful information that doesn't apply to my case as my cable = has proven to be correct) >=20 >> I didn't see any options in the BIOS to set the console speed (just >> address and IRQ, those are in the above). ISTR that my old mobo did >> allow to set that information, but then again, that board (Tyan = Tiger) >> gave me access to the BIOS through the serial console. >=20 > This has absolutely no relevancy. I thought as much, but it is one obvious difference between the old and = new situation... > Serial port speed settings in a BIOS pertain to BIOS-level console > redirection -- that redirection is lost the instant anything (boot > loader, kernel, etc.) touches SMI and/or interrupts and starts > "fiddling" with the serial port. That's the bit I wasn't entirely certain of - that there is no possible = interaction from having a BIOS console to the point where the OS takes = over. That's why I mentioned it. I assumed that if the BIOS had set up the serial port to 19200 baud and = the OS didn't specify it, that it would be possible that the speed set = up in the BIOS would still be in effect and that the serial terminal = just incidentally worked for the last 10 years because of that. = Far-fetched, I know. That's another theory shot down. > What you're adjusting in FreeBSD is 1) the FreeBSD boot loader = touching > the serial port, and 2) the FreeBSD kernel outputting to a serial port > (it also initialises/sets the serial port), and 3) getty et al = spawning > a login prompt on the serial port. Regarding 2). I found some references on the internet pertaining = settings in the kernel config file to adjust serial console settings. = Could that be what I'm missing? I'm fairly certain the last kernel I used on the old PC was the GENERIC = i386 kernel. I don't think there are any significant differences = regarding serial console between STABLE-i386 (of a few months ago) and = STABLE-amd64? > I would point you to my "FreeBSD via serial console and PXE" document, > except there are one-offs specific to the PXE portions that are not > relevant to your situation. The important part is that I've used > FreeBSD serial console for almost 16 years and have a very good > understanding of what works (including vs. what some developers say > "should" work; i.e. reality vs. pragmatism). True, but there's relatively much interaction between the different = parts that you need to get right before a serial console works at all. = Such as having everything on the same baud-rate, for an obvious example. My guess is that the problem is indeed the connection from the = motherboard header to the bracket on the case. I'll verify the cabling = of that part sometime this weekend. Thanks for the help so far. Alban Hertroys -- If you can't see the forest for the trees, cut the trees and you'll find there is no forest.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?93196E06-1775-46A4-A3E9-1C8A3B8C4E94>