Gebruikershulpmiddelen

Site-hulpmiddelen


technische_naslag:serial_and_screen

Introductie

Ook in 2025 zijn er nog legio consoles die gewoon via de seriële poort werken, bijvoorbeeld voor 3Com, Cisco en Draytek routers en switches, maar bijvoorbeeld ook de NetApp filers. Maar je kunt bijvoorbeeld ook een windmeter op je schip hebben die z'n data via RS422 of RS485 verstuurd om langere afstanden te kunnen overbruggen maar ook gewoon nog steeds serieel is.

USB-to-serial converters

Even een note over de veel voorkomende USB-to-serial converters. Je vindt deze in heel veel merken en soorten maar uiteindelijk zit er vaak een Prolific of FTDI chipset in:

  • Heb je een converter met FTDI chipset erin dan is er helemaal niets aan de hand, deze werken perfect in Linux maar ook in Windows.
  • Zit er een Prolific chipset in wees er dan bedacht op dat deze een buffer probleem in zich hebben wat kan optreden als er veel data-doorvoer is. Op Linux is hier in de driver een work-around voor opgenomen maar het gebruik in Windows kan problematisch zijn!

Je kunt middels lsusb kijken wat erin zit:

michelle@lummel:~$ lsusb | egrep -i 'prolific|ftdi|serial'
Bus 003 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Phone Data Cable

In dit voorbeeld heb ik dus een ding met een Prolific chipset aan mijn laptop hangen.

(Eigenlijk is dat bij mij altijd het geval omdat ik die dingen altijd cadeau krijg van gefrustreerde Windows gebruikers die na mijn uitleg een ding met FTDI chipset kopen en dan mag ik de Prolific hebben omdat die bij mij op Linux wel gewoon te gebruiken is…)

Installatie

Het tooltje screen zit in iedere zichzelf respecterende Linux distributie in het pakketbeheer, dus:

michelle@zeil:~$ sudo apt install screen

Configuratie

Seriële poorten hebben meestal een van de volgende namen op je Linux systeem:

/dev/ttyS0     # voor seriële poorten die op je moederbord zitten.
/dev/ttyUSB0   # als je een USB-to-serial converter gebruikt.
/dev/ttyACM0   # als je een Cisco switch met de micro-USB kabel gebruikt.

Uiteraard lopen de volgnummertjes netjes op als je er meerdere in je systeem hebt. De devices zijn over het algemeen eigendom van root met groep dialout (dit stamt nog uit de modem-tijd!) dus het is handig om jezelf daar even in toe te voegen. Vergeet de reboot niet om dit door je hele systeem heen te activeren!

michelle@zeil:~$ sudo usermod -a -G dialout michelle

Gebruik

Je roept screen gewoon aan met de naam van de gewenste seriële poort en voegt daar de snelheid aan toe van de device waar je aan wilt connecten, bijvoorbeeld:

screen /dev/ttyUSB0 38400    # Veel voorkomend, bijvoorbeeld mijn 3com switch
screen /dev/ttyUSB0 9600     # Meest voorkomend, bijvoorbeeld alles van Cisco en NetApp
screen /dev/ttyUSB0 115200   # Nieuwerwets spul zoals bijvoorbeeld DrayTek netwerk spul

Carriage Return (CR) en Line Feed (LF)

Soms gebeurt het dat je regels raar verspringen terwijl het er bij je Windows collega wel normaal uitziet. Dit komt omdat er misvattingen zijn over wat een Carriage Return (CR) en Line Feed (LF) is. We leggen het even uit aan de hand van een ouderwetse type-machine:

  • Carriage Return (CR) = de wagen terugloop, zonder regelverplaatsing.
  • Line Feed (LF) = is een regelverplaatsing, zonder wagen terugloop.

Het kan voorkomen dat de device alleen een LF stuurt maar daarbij eigenlijk ook een CR impliceert. Sommige terminal-emulators die serieel snappen hebben daar een automatische conversie optie voor. Op Linux kun je alles veel netter afregelen:

stty -F /dev/ttyUSB0 inlcr

Bovenstaand voorbeeld toggle ik dit voor de input (data naar mij toe), maar je kunt het ook voor de output aanpassen. Voor meer uitleg zie |dit artikel van stackoverflow.

Screenshots

Op mijn KDE desktop gebruik ik altijd spectacle om mooie screenshots te maken. Even ALT-F2 indrukken en starten en je kunt mooie plaatjes schieten van je lopende screen sessie.

technische_naslag/serial_and_screen.txt · Laatst gewijzigd: 2025/08/18 15:30 door michelle