You are not logged in.
Hey everyone,
I have a touchscreen computer where the touchscreen is connected via serial port. The problem I'm having is that it's connected to ttyS5 (confirmed via ubuntu and windows) but Arch is only showing serial ports up to ttyS3.
Since Ubuntu has up to ttyS31 showing up, is it safe to assume that one can arbitrarily increase how many serial ports are listed in /dev? If so, where do I change this setting?
If this is a matter of serial ports not being detected properly, what should I be looking into?
Thanks.
Last edited by Thornet (2013-10-15 17:02:34)
Offline
Can you tell us a bit more about the hardware? Often (not always) serial ports are way, way down on the LPC (Low Pin Count) bus. The I/O addresses on the LPC are legacy addresses from the ancient ISA bus days. Those legacy addresses were well defined for up to four devices.
The ISA bus was not discoverable, so all the drivers can do is try the addresses and see what happens. If there are more serial devices down on the LPC bus, you have to know they are there, and provide those addresses to the drivers. OTOH, it is possible that there exist serial devices up in the PCI bus space, but that is usually a waste of bus bandwidth. Other options are USB based devices, but they don't generally map into /dev/ttySn
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
It's a penmount 6000 touchscreen that's connected internally via some kind of serial connection (know for sure it's not USB to serial). On a previous model I had it working fine as it was connected to ttyS3. They've since updated the hardware and added more external serial ports so it makes sense that it would be in the higher numbering. When running on windows it was connected to COM6 and ttyS5 in Ubuntu. I was confirming the device was connected to those tty by using inputattach and getting proper input.
My knowledge of udev device detection and the like is still limited so if there's any specific information you'd like let me know.
Offline
Well, let's take a stab at the PCI bus. If you could post the output of lspci -nn
If all else fails, we can at least rule that out. Meantime, I will do a bit of research....
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 4 Series Chipset DRAM Controller [8086:2e10] (rev 03)
00:02.0 VGA compatible controller [0300]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e12] (rev 03)
00:02.1 Display controller [0380]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e13] (rev 03)
00:1a.0 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #4 [8086:3a67] (rev 02)
00:1a.1 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #5 [8086:3a68] (rev 02)
00:1a.2 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #6 [8086:3a69] (rev 02)
00:1a.7 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB2 EHCI Controller #2 [8086:3a6c] (rev 02)
00:1b.0 Audio device [0403]: Intel Corporation 82801JD/DO (ICH10 Family) HD Audio Controller [8086:3a6e] (rev 02)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801JD/DO (ICH10 Family) PCI Express Port 1 [8086:3a70] (rev 02)
00:1c.2 PCI bridge [0604]: Intel Corporation 82801JD/DO (ICH10 Family) PCI Express Port 3 [8086:3a74] (rev 02)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801JD/DO (ICH10 Family) PCI Express Port 4 [8086:3a76] (rev 02)
00:1d.0 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #1 [8086:3a64] (rev 02)
00:1d.1 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #2 [8086:3a65] (rev 02)
00:1d.2 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB UHCI Controller #3 [8086:3a66] (rev 02)
00:1d.7 USB controller [0c03]: Intel Corporation 82801JD/DO (ICH10 Family) USB2 EHCI Controller #1 [8086:3a6a] (rev 02)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev a2)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801JDO (ICH10DO) LPC Interface Controller [8086:3a14] (rev 02)
00:1f.2 IDE interface [0101]: Intel Corporation 82801JD/DO (ICH10 Family) 4-port SATA IDE Controller [8086:3a00] (rev 02)
00:1f.3 SMBus [0c05]: Intel Corporation 82801JD/DO (ICH10 Family) SMBus Controller [8086:3a60] (rev 02)
00:1f.5 IDE interface [0101]: Intel Corporation 82801JD/DO (ICH10 Family) 2-port SATA IDE Controller [8086:3a06] (rev 02)
00:1f.6 Signal processing controller [1180]: Intel Corporation 82801JD/DO (ICH10 Family) Thermal Subsystem [8086:3a62] (rev 02)
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 03)
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 03)
From the research I've done I haven't been able to spot a sign of it, so I'm curious to see what we can come up with.
Last edited by Thornet (2013-10-15 16:22:10)
Offline
... Okay. The good news is that the Arch kernel appears to support 32 8250 UARTS. The bad new is that it will only instantiate 4 at start up. The good news is that you can change that without rebuilding a kernel
In your boot loader, add the following parameter to your kernel command line: nr_uarts=16 (or whatever number you deem appropriate)
Last edited by ewaller (2013-10-15 16:26:03)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Alright, I tried adding nr_uarts=16 to the kernel but it didn't have any effect. Searching a bit and following the example from this page http://www.libelle-systems.com/free/win … ccess.html, I tried changing it to 8250.nr_uarts=16 which seemed to make the difference. Now I can access the other two serial ports that were hiding in there.
Thanks a bunch for the help. I will mark the thread as solved.
Offline
That is interesting. That implies that the 8250 driver is a module. The kernel I looked at had it complied in. Perhaps I did not look at a stock kernel
Anyway, glad it is solved. But, out of curiosity, does 8250 show up in the module listed by lsmod ?
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Hmm, not that I can see. I didn't know that's what it meant, that is strange.
$ lsmod
Module Size Used by
joydev 7439 0
penmount 2733 0
serport 2259 1
i915 372235 2
video 9716 1 i915
i2c_algo_bit 4487 1 i915
drm_kms_helper 22653 1 i915
snd_hda_codec_realtek 150678 1
i2c_i801 7063 0
intel_agp 8720 1 i915
drm 151749 3 drm_kms_helper,i915
r8169 41700 0
mii 3407 1 r8169
snd_hda_intel 20114 0
snd_hda_codec 76464 2 snd_hda_intel,snd_hda_codec_realtek
snd_pcm 60595 2 snd_hda_codec,snd_hda_intel
snd_page_alloc 5869 2 snd_pcm,snd_hda_intel
snd_hwdep 4942 1 snd_hda_codec
snd_timer 15438 1 snd_pcm
psmouse 62706 0
serio_raw 3357 0
pcspkr 1375 0
processor 23026 0
ppdev 4814 0
parport_pc 26590 0
i2c_core 16816 5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,i915
parport 26259 2 parport_pc,ppdev
intel_gtt 11513 3 intel_agp,i915
agpgart 22255 3 intel_gtt,drm,intel_agp
snd 44501 6 snd_timer,snd_hwdep,snd_pcm,snd_hda_codec,snd_hda_intel,snd_hda_codec_realtek
fan 1902 0
button 3614 1 i915
thermal 6531 0
evdev 7278 8
iTCO_wdt 9941 0
iTCO_vendor_support 1577 1 iTCO_wdt
soundcore 5018 1 snd
ext4 380969 3
crc16 1091 1 ext4
jbd2 60529 1 ext4
mbcache 4281 1 ext4
sr_mod 13244 0
sd_mod 26211 5
cdrom 31373 1 sr_mod
usbhid 31263 0
pata_acpi 2388 0
hid 66559 1 usbhid
ata_generic 2391 0
ata_piix 18270 4
libata 146606 3 ata_piix,ata_generic,pata_acpi
scsi_mod 113115 3 libata,sd_mod,sr_mod
uhci_hcd 19673 0
ehci_hcd 36010 0
usbcore 122469 4 ehci_hcd,uhci_hcd,usbhid
usb_common 622 1 usbcore
Last edited by Thornet (2013-10-15 17:21:06)
Offline
It means the driver is compiled into the kernel -- which is what I had seen in the kernel configuration at which I looked.
The disconnect is that the documentation I read differentiated between 8250.nr_uarts and nr_uarts is whether the driver is configured as a module, or compiled in, respectively.
I guess what I read was wrong or deprecated. You proved that
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline