# Can't find dev for serial ports

## zolxd

For anyone finding this thread because of a similar problem,

The conclusion in this case was simply that required serial support was omitted from the kernel.

```
  │ │    < > 8250/16550 and compatible serial support                        │ │
```

See below for related hints.

-------------------------------START OF THREAD-------------------------------------

I have a hotsyncing cradle for a Palm device connected to a (physical) serial port, and JPilot running on the PC.

I need a /dev file related to the serial port before I can do anything, but don't have any ttyS.

How can I get some? (preferrably consistent with correct udev practices)

Where do serial ports fit into the /sys tree? What do they look like?

I'm pretty sure I chose serial-friendly kernel options last build, but might not have understood all the options.

I have a pretty typical motherboard - Wouldn't the kernel understand common serial ports by default?

----------

## ewaller

Do you know anything more about your serial ports hardware?

Are they on a PCI bus? (Check using lspci)

Are they on on ISA bus? (common on older hardware).

If they are on the ISA bus, have you checked your BIOS settings to see

if they are rational? (The first ISA serial port address is usually 0x3f8 and uses IRQ 4).

If they are not rational, then when they are probed at startup, the OS may not find them.

In general, yes they should show up a /dev/ttySx

Here is an example (antique) system with an ISA serial port.  Note that the following lspci output 

does not include serial ports, but it does have an ISA bridge required to get at the ISA serial port.

00:00.0 Host bridge: Intel Corporation 440LX/EX - 82443LX/EX Host bridge (rev 03)

00:01.0 PCI bridge: Intel Corporation 440LX/EX - 82443LX/EX AGP bridge (rev 03)

00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)

00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)

00:0c.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)

00:0d.0 Ethernet controller: 3Com Corporation 3c905 100BaseTX [Boomerang]

00:0e.0 Communication controller: Agere Systems 56k WinModem (rev 01)

01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c)

Look in dmesg for things like 

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

----------

## NeddySeagoon

zolxd,

look at dmesg for something like  

```
$ dmesg | grep -B1 serial

[    7.241573] Serial: 8250/16550 driver4 ports, IRQ sharing disabled

[    7.241687] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
```

----------

## zolxd

Excellent. Progress.

Yes, I have undetected ISA serial ports.

00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)

(So, that's why /sys/...7.0 is basically a dead-end...)

And no "serial" at all in dmesg.

(I've been scouring dmesg for hints - but absent messages aren't obvious when you don't expect them anyway)

I'll see what BIOS says (and lets me do about it).

[edit]

Both were on "auto".

I changed them to "3F8/COM1" and "2F8/COM2".

Still nothing (I tried toggling "Is a PnP OS", since I forget whether my system really qualifies.)

I suspect I may have idealistically disabled some obsolescent kernel options, without regard for my 'antique' hardware  :Confused: 

Any hints on how I can help the system find/configure them until I get around to a new build?

----------

## NeddySeagoon

zolxd,

Check your kernel settings 

```
  │ │    <M> 8250/16550 and compatible serial support                        │ │  

  │ │    <M> 8250/16550 PCI device support                                   │ │  

  │ │    < > 8250/16550 PNP device support                                   │ │  

  │ │    (4) Maximum number of 8250/16550 serial ports                       │ │  

  │ │    (4) Number of 8250/16550 serial ports to register at runtime        │ │  

  │ │    [ ] Extended 8250/16550 serial driver options   
```

----------

## zolxd

. . . . . . . . . . . Ugh

```
  │ │    < > 8250/16550 and compatible serial support                        │ │
```

(i.e. none whatsoever)

I probably missed that branch entirely while traversing the options.

Oh, well. I was due for a fresh build anyway.

Thanks guys.

Mark as solved.

Incidentally, is there an easier way to examine current settings than `make menuconfig`?

----------

## ewaller

Also check your kernel configuration for 

```
ISA = y
```

Note that ISA is not set on my laptop...

```
 Bus options (PCI etc.) 

                                [*] PCI support 

                                PCI access mode (Any)  --->   

                                [ ] PCI Express support                       

                                [ ] Message Signaled Interrupts (MSI and MSI-X)  

                                [ ] Enable deprecated pci_find_* API       

                                [*] Interrupts on hypertransport devices    

                                [ ] ISA support                       

                                [ ] MCA support                    

                               < > NatSemi SCx200 support                                          

                              <M> PCCard (PCMCIA/CardBus) support  --->                         

                              < > Support for PCI Hotplug  --->                 
```

[edit] Sorry, posted the same time as your reply. Glad you got it working [/edit]

----------

## ewaller

The brute force way to see all of the settings....

```
less /usr/src/linux/.config
```

----------

## NeddySeagoon

zolxd,

Building on what ewaller said, there is 

```
grep <OPTION_FRAGMENT> /usr/src/linux/.config
```

or perhaps

```
zgrep <OPTION_FRAGMENT> /proc/config.gz
```

The latter is always the running kernel, if you have /proc/config.gz in the kernel.

Also, menuconfig has a search function. In menuconfig, press / and play with it.

As an alternative to menuconfig, there is xconfig or gconfig  which shows more options and the help. It needs Xorg.

----------

## zolxd

Thanks.

----------

