# Missing COM Port Device Files



## Terry Mester (Apr 12, 2018)

After installing FreeBSD 11.1 I noticed that the device directory (/dev) only has the files for PCI COM port 1 (cuau0), and not ports 2 & 3 (cuau1 & 2).  I also have a fourth brown port which is shorter than the white PCIs, and I don’t know how BSD refers to that. How do I install the files for ports 2 & 3, and how is that brown port recognized by FreeBSD?  Thanks.


----------



## SirDice (Apr 12, 2018)

There's nothing to "install" in this case. They're either detected and available or not. So my first guess would be that they are disabled in the BIOS.



Terry Mester said:


> I also have a fourth brown port which is shorter than the white PCIs, and I don’t know how BSD refers to that.


I don't even know what you mean by "shorter". Maybe you should look at the mainboard manual to see what that port actually is? There are only two types of serial ports, the traditional 25 pin D-Sub (you rarely see those nowadays) and the 9 pin D-Sub.


----------



## ondra_knezour (Apr 12, 2018)

May be either AGP or 8-bit ISA. You may also have disabled second and third serial ports with jumpers on board, especially if ISA is your case. It is also possible, that you have to found settings like port address and IRQ in the motherboard manual or set it using jumpers and then hint kernel about it using device.hints(5).


----------



## ShelLuser (Apr 12, 2018)

Brown port or brown slot? Sounds like a AGP slot to me or something closely related.


----------



## SirDice (Apr 12, 2018)

Rereading the original question I'm now beginning to think the OP is a little bit confused, PCI, PCIe, ISA, AGP, VLB (anyone remember those?) are slots for cards and have nothing to do with the "COM" (aka serial) ports.

This is a serial (or "COM") port: https://en.wikipedia.org/wiki/Serial_port#/media/File:Serial_port.jpg
This is a PCI slot: https://en.wikipedia.org/wiki/Conventional_PCI#/media/File:PCI_Slots_Digon3.JPG
These are PCIe slots: https://en.wikipedia.org/wiki/PCI_Express#/media/File:PCIExpress.jpg (only the top 4, the bottom one is PCI)
This is AGP: https://en.wikipedia.org/wiki/Accel...CNR_Sockets_in_PCChips_M925LR_Motherboard.jpg (top 'brown' slot is AGP, the two white ones are PCI)


----------



## Terry Mester (Apr 14, 2018)

Thanks for further clarifying.  My computer is an IBM Pentium 4 from 2005 which I bought used, and unfortunately don’t have the Manual.  I think that the brown Slot (which is about 7cm long) is AGP, and it is a bit further back from the plate to allow for a longer Circuit Board than PCI.  The white Slots (about 8cm long) are definitely PCI.  MS Windows XP states that my Intel Modem is on COM3.  I didn’t know that the Serial and Parallel Ports are also referred to as “COM”. 

I’m assuming that BSD uses the same numbers as Windows.  Does BSD identify the PCIs as “cuau”, or if not how are they identified?  What about the AGP Slot?


----------



## SirDice (Apr 16, 2018)

Terry Mester said:


> My computer is an IBM Pentium 4 from 2005 which I bought used, and unfortunately don’t have the Manual.


That used to be a problem but in this day and age you can almost always download any and all manuals. Even for old stuff. What is the exact type/model of the computer?


Terry Mester said:


> I didn’t know that the Serial and Parallel Ports are also referred to as “COM”.


The 25 pin D-Sub "COM" port is not a parallel port. That also uses a 25 pin D-Sub but has male/female reversed. A "COM" port is always a serial port.


----------



## Terry Mester (Apr 17, 2018)

SirDice said:


> ..., PCI, PCIe, ISA, AGP, VLB (anyone remember those?) are slots for cards and have nothing to do with the "COM" (aka serial) ports. ...


Are you telling me that your Desktop Computers over the past decade haven't come with PCI Slots?  Although you can buy Computers with Ethernet, Audio and Video Cards installed in the Motherboard, and my Computer does have the Ethernet and Audio Cards so installed, I would never buy a Computer without at least two PCI Slots, a Serial Port, Printer Port (D-Sub / Parallel or whatever it's called), Keyboard & Mouse Ports, and at least four USB Ports (I have eight).  Those installed Cards could end up being Windows-only.  My Audio Card isn't working with BSD.  (I am personally not a fan of Keyboards & Mouses connecting to the USB.  I'm also skeptical that a USB Port can be as fast as a PCI Slot.)



SirDice said:


> ... The 25 pin D-Sub "COM" port is not a parallel port. That also uses a 25 pin D-Sub but has male/female reversed. A "COM" port is always a serial port.


The Port I'm referring to as Parallel is what connects to the Printer.  What I think of as Serial would be the 9 Pin Port.

Can anyone answer my question:  "Does BSD identify the PCIs as “cuau”, or if not how are they identified?  What about the AGP Slot? "  Does BSD use the IRQ Number instead of the PCI Number?  How does it open the PCI in an application like 'ppp'?


----------



## ondra_knezour (Apr 17, 2018)

Terry Mester said:


> Are you telling me that your Desktop Computers over the past decade haven't come with PCI Slots?


Yes. You got couple of the PCI Express slots and USB ports, that it is. Plus peripheral devices like a sound card or an ethernet card.


Terry Mester said:


> Can anyone answer my question:  "Does BSD identify the PCIs as “cuau”, or if not how are they identified?


No, cuau is dialout device, probably serial modem. See sio(4) and comcontrol(8). PCI is only bus, it doesn't have any entry in the /dev tree except /dev/pci by pci(4) generic driver for pciconf(8).  


Terry Mester said:


> Does BSD use the IRQ Number instead of the PCI Number?


Those are two diferent things. Device is identified by bus:slot:function, may be you mean this by PCI number? And either legacy IRQ or MSI (Message Signaled Interrupts) are used when the PCI device want "to talk back" to CPU. See also pci(9) kernel interface.


Terry Mester said:


> How does it open the PCI in an application like 'ppp'?


 It does not  OS only gives basic foundation for bus, then some driver has to hop in and "attach" to given device like modem, which knows how to initialize and use such device. In case of modems this driver than create character device in the /dev tree and acts as some kind of logical glue. You say ppp, dial this number using device /dev/whatever, so ppp will start writing ATDnumber to this special file, where the driver listens, which send commands to the PCI device over PCI bus controlled by OS, usually in forms of setting internal registers etc. and card "knows" that if there is value "number" in register R1 and some other value in R2 I have to connect to the phone line, beeps tones XY for duration YZ ms with pauses ZW ms and so on.


----------



## SirDice (Apr 17, 2018)

Terry Mester said:


> Are you telling me that your Desktop Computers over the past decade haven't come with PCI Slots?


No, that's not what I said. You appear to be totally confused by the difference between a bus and a port and keep mixing them up as if they mean the same thing. A _bus_ is not the same thing as a _port_ (serial or otherwise).
https://en.wikipedia.org/wiki/Bus_(computing)



Terry Mester said:


> I would never buy a Computer without at least two PCI Slots, a Serial Port, Printer Port (D-Sub / Parallel or whatever it's called), Keyboard & Mouse Ports, and at least four USB Ports (I have eight).


Well, good luck with that. Serial and parallel ports have almost disappeared, as do the PS/2 keyboard/mouse connectors. They've all been superseded by USB.  



Terry Mester said:


> The Port I'm referring to as Parallel is what connects to the Printer. What I think of as Serial would be the 9 Pin Port.


Modern machines don't even have serial or parallel ports any more, it's mostly USB now. But there was a time when the serial port was also a 25 pin D-Sub, just like the parallel port. The only difference between the two was male vs. female. But I'm guessing this was before you were born. The serial port itself is getting quite rare, a 25 pin serial port is even rarer nowadays (I still have a 28K8 external modem with a 25 pin serial connector).



> Presence of a 25-pin D-sub connector does not necessarily indicate an RS-232-C compliant interface. For example, on the original IBM PC, a male D-sub was an RS-232-C DTE port (with a non-standard current loop interface on reserved pins), but the female D-sub connector on the same PC model was used for the parallel "Centronics" printer port.


https://en.wikipedia.org/wiki/RS-232#Connectors

This is a diagram of a PC (slightly old design but it clearly shows how the various busses and ports are connected):
https://en.wikipedia.org/wiki/Northbridge_(computing)#/media/File:Motherboard_diagram.svg


----------



## Terry Mester (Apr 19, 2018)

ondra_knezour said:


> Yes. You got couple of the PCI Express slots and USB ports, that it is. Plus peripheral devices like a sound card or an ethernet card. ...


A danger of not having PCI Slots is if the built-in Ethernet or Audio Cards burn out you cannot replace it, and have to junk the Computer.  Look into PCI Express Cards to see if any would work with FreeBSD.  I’ll bet they’re Windows-only.

Thanks for these further details about PCI Slot access.  This explains why US Robotics says that their Internal Hardware Modem still requires a Driver to work with FreeBSD – which begs the question whether it makes sense to sell an Internal Hardware Modem rather than just Software Modems.  The Internal Hard Modem sounds like a Soft Modem.

Do you think it would be possible for BSD to have a universal Modem Driver which would work on all Hayes Compatible Internal (Slot) Modems?



SirDice said:


> ... You appear to be totally confused by the difference between a bus and a port and keep mixing them up as if they mean the same thing. A _bus_ is not the same thing as a _port_ (serial or otherwise).
> 
> Well, good luck with that. Serial and parallel ports have almost disappeared, as do the PS/2 keyboard/mouse connectors. They've all been superseded by USB. ...



If I’m confused  it’s because the nomenclature for Computers is inconsistent:  such as the  ‘Accelerated Graphics Port’ which is actually a Bus / Slot.  I’m not to blame for these inconsistencies in terminology.   I do believe my LPT Printer Port is called a Parallel Port, and I do also have a standard Serial Port which will work for the US Robotics Model USR5686G External Modem – which should work with BSD.  My IBM ThinkCentre Computer was originally a business machine which is why it’s fully loaded with Ports & Slots.  While my current Logitech Keyboard & Mouse use USB Ports -  I’m not happy about it!   Those round Kb & Mouse Ports – not to mention Serial & Parallel Ports -- are much stronger than flimsy USB Ports.  I would be delighted to hear one good reason for the Kb & Mouse to use USB Ports.


----------



## ShelLuser (Apr 19, 2018)

Terry Mester said:


> I would be delighted to hear one good reason for the Kb & Mouse to use USB Ports.


You can disconnect and reconnect them and they'll continue working. But once you disconnected a PS/2 device you'll have to reset the whole OS because it cannot reset the bus and re-use the same (or other) PS/2 device(s).

Also: USB is far more robust than PS/2 is. Just try to force insert an USB connector. You can do a lot but you won't risk to easily bend and/or crush pins and destroy your connector because of it, something which is quite common with PS/2 and "certain type of users".

Then there's redundancy. A PS/2 port can only be used for a mouse or a keyboard and that's it. 2 ports, 2 devices. USB is pretty much versatile. If you lack space in your hardware setup then you can easily provide 1 USB port which can be connected to a hub which can then be used to attach all your USB devices on (from keyboard and mouse right down to pen tablets, card readers, external HD's and other devices).

I know that the last example is more about USB than keyboard/mouse but it's still related: ever tried to use a expansion connector because your keyboard or mouse cable wasn't long enough? What you basically did was add more points of possible failure. Connector problems are the #1 cause for weird behavior in computers. USB manages to reduce those risks quite dramatically due to the nature of the system. From the simple fact that you can remove and re-insert devices but also because of the way the connectors were build.


----------



## unitrunker (Apr 19, 2018)

Terry Mester said:


> I would be delighted to hear one good reason for the Kb & Mouse to use USB Ports.


Since you asked - some USB keyboards are also USB hubs. Plugging a USB stick into the side or back of the keyboard is a convenience.


----------



## ondra_knezour (Apr 19, 2018)

Terry Mester said:


> A danger of not having PCI Slots is if the built-in Ethernet or Audio Cards burn out you cannot replace it, and have to junk the Computer.  Look into PCI Express Cards to see if any would work with FreeBSD.  I’ll bet they’re Windows-only.


I think the situation is quite opposite. Those components integrated on the motherboard are usually connected using PCIe(xpress) themselfs. So if they work under BSD, you can go and buy their replacement in form of the standalone card. And driver quality and general availability depends on many factors. You can have cheap low end devices like Realtek ethernet or generic AC97 sound chips. Here you get what you paid for - HW bugs, SW bugs, almost zero manufacturer support, but those devices are everywhere, so there would be probably at least community authored reverse engineered driver. Then you have something like middle-class and specialty devices like industrial controllers. Quality is better, but penetration lower, so if manufacturer doesn't support your OS of choice, you are usually out of luck here. And finally, you can get some hi-end devices. Being it sound device, it may be a problem, because of low penetration of BSD, maybe even Linux between sound professionals and thus nill support from the manufacturer. However if we are talking about network adapters, it is absolutely different situation - be it Chelsio, Mellanox, Intel, all of them directly support FreeBSD. Some better, some worse, but there are dedicated FreeBSD developers in all those companies, some of them even have commit bit directly to the FreeBSD source code. And why? Because they have market here. For example Netflix serve about 40 % of the internet traffic and not from Windows boxes.


Terry Mester said:


> Thanks for these further details about PCI Slot access.  This explains why US Robotics says that their Internal Hardware Modem still requires a Driver to work with FreeBSD – which begs the question whether it makes sense to sell an Internal Hardware Modem rather than just Software Modems.  The Internal Hard Modem sounds like a Soft Modem.
> Do you think it would be possible for BSD to have a universal Modem Driver which would work on all Hayes Compatible Internal (Slot) Modems?


Generally, yes. Would anyone invest in it? Probably no. What is problem here - using serial line for modem, you have defined both HW (RX, TX, speeds, meanings of signals, timing) and SW (AT commands) interface. If you remove this, you have to redefine both of them. You can either make something what would mimics the old external behavior (and at least some of the not-soft modems did that) or use/define new standard or define your own. 

First solution - create card, which appears to the OS like some generic serial device and use AT commands. Some cards did that and there is a chance that generic OS driver for serial port would suffice.

Second solution - use or define and agree with others on some standard. This may looks like something unusual in the computer industry, but there are many examples - USB keyboard, mouse, flash drive, none of them need special driver, because of the standard. Before 2D/3D acceleration in the graphics you didn't need driver, because all cards supported VGA/VESA etc.

And third - you got signaling from and to the device using standards, PCIe here and you have to provide software to actually use your device, the driver.


----------



## SirDice (Apr 19, 2018)

Terry Mester said:


> Do you think it would be possible for BSD to have a universal Modem Driver which would work on all Hayes Compatible Internal (Slot) Modems?


No, because those softmodems are anything but standardized. A proper hardware (internal) modem is detected as an extra (standard) serial port and doesn't require additional drivers to function. External modems are connected to the serial port and thus don't require a driver.


----------



## Terry Mester (Apr 22, 2018)

SirDice said:


> No, because those softmodems are anything but standardized. A proper hardware (internal) modem is detected as an extra (standard) serial port and doesn't require additional drivers to function. External modems are connected to the serial port and thus don't require a driver.


The US Robotics Model USR5610C is an Internal Hardware Modem (Link below), but a USR technician told me that it won’t work with FreeBSD because it needs a Driver.  He recommends their Model USR5686G Serial Port External Modem instead. 
http://www.usr.com/products/56k-dialup-modem/usr5610c/

I think the reason a Hardware PCI Modem needs a Driver is to manage the Bus Clock and Interrupt Lines.  The PCI Express Slot appears to be serial which avoids this problem.  However, I have to imagine that PCI Express is slower than conventional PCI – which is a good reason for Computers to have a couple conventional PCI Slots.

Regarding how BSD handles PCI Slots, does it possibly already produce a generic Driver?  In my Device Directory (/dev) I have the following Files:  ugen0.1, ugen0.2, ugen1.1, ugen2.1, ugen3.1, ugen3.2, & ugen4.1.  My Computer has built-in Ethernet and Audio Cards, and three PCI Slots plus the AGP Slot.  Perhaps 0.1 & 0.2 are for the Ethernet (Input & Output); 1 to 3 are for the PCI Slots; and 4 is for the AGP Slot or Audio Card.  My Intel Modem is on PCI 3 which would explain the two Files for 3.  What do you think?



ShelLuser said:


> You can disconnect and reconnect them and they'll continue working. But once you disconnected a PS/2 device you'll have to reset the whole OS because it cannot reset the bus and re-use the same (or other) PS/2 device(s).


I am being tongue-in-cheek  with these attacks on the USB Port so don’t take anything personally. 
I have only changed my Keyboard & Mouse with the Computer off, and I have never had any problems with the Microsoft OS recognizing it after rebooting.



ShelLuser said:


> Also: USB is far more robust than PS/2 is. Just try to force insert an USB connector. You can do a lot but you won't risk to easily bend and/or crush pins and destroy your connector because of it, something which is quite common with PS/2 and "certain type of users".


I vehemently disagree that USB connectors are stronger than the Kb / Mouse connectors.  Any “certain type of users”  who could manage to damage those Kb /Mo connectors -- which can only fit one way -- will be able to damage a USB.



ShelLuser said:


> Then there's redundancy. A PS/2 port can only be used for a mouse or a keyboard and that's it. 2 ports, 2 devices. USB is pretty much versatile. If you lack space in your hardware setup then you can easily provide 1 USB port which can be connected to a hub which can then be used to attach all your USB devices on (from keyboard and mouse right down to pen tablets, card readers, external HD's and other devices).
> ... ever tried to use a expansion connector because your keyboard or mouse cable wasn't long enough? ...


The fact that every Computer needs a Keyboard & Mouse is why the dedicated Kb & Mouse Ports make sense.  I have now lost two of my USB Ports to my Kb & Mo. All of my Keyboards & Mouses over the past twenty-five years have come with long cords.

Also, the USB Connector appears to only use 5 Wires – 4 LESS than a Serial Connector which means USB is SLOWER!


----------



## Terry Mester (May 1, 2018)

Does anyone know whom I should contact to find out what are the Device acronyms BSD uses in the Device Directory (/dev)?  In particular, the 'ugen' acronym.


----------



## SirDice (May 1, 2018)

Try looking at their respective man pages, like ugen(4). Note that section 4 of the man pages typically contains manuals for (kernel) drivers and devices.


----------

