GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Die Tty-Major-Nummer Ihres Unix?

Ich arbeite derzeit an einer Bibliothek für serielle Ports, die bereits spezielle Frameworks verwendet, um Informationen über serielle Ports auf dem System zu erhalten. Obwohl serielle Ports ein grundlegendes Design in Unix sind – wie eine Antwort wie diese beweist – dachte ich, dass ein guter Weg, um zu testen, ob eine Datei ein serieller Port ist, darin besteht, den Hauptmodus des Zeichengeräts zu testen
und zu überprüfen ob es sich tatsächlich um ein TTY handelt oder nicht.

Beim Durchstöbern des Internets konnte ich keine Dokumentation finden, die sich mit den Hauptmodi von TTY befasst s über Unices. Nun, es gibt nur eine Linux-Manpage, die besagt, dass ptmx den Hauptmodus 5 hat.

Obwohl ich aufgrund dieser Stack Overflow
-Frage bereits nach den Implementierungsdetails von tty character device gefragt habe, dachte ich, ich könnte die Unix Stack Exchange-Community bitten, herauszufinden, wie stabil sind die tty-Werte über Unix-Varianten hinweg.

Daher bitte ich Sie um Ihre Hilfe beim Aufbau einer Wissensbasis des Major-Modus aller Ihrer tty
-Dateien auf Ihrem(n) System(en), d. h.:Was ist der Major-Modus von

  • echte serielle Schnittstellen?
  • Pseudoterminal (PTS ) Häfen?
  • FTDI-USB Serielle Schnittstellen?
  • anderer USB Serielle Schnittstellen?

Um die Werte für den Hauptmodus eines Zeichengeräts zu erhalten, sollten Sie Folgendes verwenden:

% stat -f " * %N: %Hr%n" /dev/tty* /dev/pts/*
 * /dev/ttys001: 16
                 ^^- major mode

oder mit dem guten alten ls :

% ls -l /dev/ttys001
crw--w----  1 <user>  tty   16,   1 Apr 30 03:25 /dev/ttys001
                major mode -^^   ^^- minor mode

Sie können selbst Informationen in die Antwort einfügen oder die Community-Wiki-Antwort mit zusätzlichen Informationen erweitern.

Akzeptierte Antwort:

Unix-Version 7 (1979):

# ls -l /dev/console /dev/tty?*
crw--w--w- 1 root    0,  0 Sep 22 06:46 /dev/console
crw-rw-r-- 1 root    0,  1 Sep 22 05:47 /dev/tty1
crw-rw-r-- 1 root    0,  2 Sep 22 05:47 /dev/tty2

(noch kein PTY vorhanden)

Linux 3.2.0 (Debian Wheezy).

Hinweis:Sie können diese auch finden, indem Sie /dev suchen für im Besitz der Gruppe tty und Wählen . Das ist eine Debian-Sache.

  • Virtuelle Konsolen
    • /dev/tty[0-9]* :4
  • Echte serielle Ports:
    • /dev/ttyS[0-9]+ :4
  • Pseudoterminals:
    • /dev/pts/[0-9]+ :136
    • /dev/pts/ptmx :5
  • Serieller FTDI-USB-Anschluss:
    • /dev/ttyUSB[0-9]+ :188
  • Serieller USB-Port:(AVR embedded USB/Arduino Uno )
    • /dev/ttyACM[0-9]+ :166

Linux 3.4.0 (Android 4.4.2 / Nexus 5)

Hinweis:hat alle Linux-Versionen plus:

  • ttyACM (Zellenmodemsteuerung)
    • (kein /dev Eintrag anscheinend):166
  • ttyHSL (Bluetooth)
    • /dev/ttyHSL0 :247
  • ttyHS (Bluetooth)
    • /dev/ttyHS99 :248

Darwin 13.1.0 (MacOS 10.9.2):

  • Echte serielle Ports:
    • /dev/ttys[0-9a-f] :4
  • Pseudoterminals:
    • /dev/ttys[0-9]{3} :16
  • Serieller FTDI-USB-Anschluss:
    • /dev/tty.usbserial.* :18
  • Serieller USB-Port:(AVR embedded USB/Arduino Uno )
    • /dev/tty.usbmodem.* :18

Solaris 10 x86/amd64:

  • Pseudoterminals:

    • /dev/pty[p-r][0-9a-f] (pty master):25
    • /dev/tty[p-r][0-9a-f] (pty Sklave):26
    • /dev/pts/[0-9]+ :24
    • /dev/ptmx :23
  • Serielle Geräte:

    • /dev/tty[abc...] auch bekannt als /dev/term/[abc...] oder /dev/tty0[012..] (uart-Seriennummer, auch ):106
    • auch als /dev/ttyd[012...] aber mit anderer schnittstelle (dial, modem) auch auf 106 aber hochuntergeordnet.
Verwandte:Linux – PHP funktioniert auf der Befehlszeile, aber nicht im Browser?

OpenBSD 6.0

Wie im Kommentar in /dev/MAKEDEV dokumentiert

  • Serielle PC/AT-UART-Ports:
    • /dev/tty[0-7][0-9a-f][code> :8
    • /dev/cua[0-7][0-9a-f][code> :8
  • Serielle Anschlüsse von Cyclades:
    • /dev/ttyc* :38
    • /dev/cuac* :38
  • Serielle Virtio-Ports:
    • /dev/ttyVI* :94
  • Serielle USB-Ports:
    • /dev/ttyU[0-3] :66
    • /dev/cuaU[0-3] :66
  • wscons-Terminals:
    • /dev/tty[C-J][0-b] :12
  • Pseudo-Terminal-Master und -Slave (Nicht-UNIX 98)
    • /dev/pty[p-zP-T][0-9a-zA-Z] :6
    • /dev/tty[p-zP-T][0-9a-zA-Z] :5

FreeBSD 10.0 und TrueOS

Bei FreeBSD (und seinen Derivaten wie TrueOS) weist Ihre Idee einen fatalen Fehler auf. Es gibt keine Major+Minor-Gerätenummernschema in FreeBSD.

Die devfs Pseudo-Dateisystem unter FreeBSD, üblicherweise unter /dev gemountet , verwendet überhaupt kein Major+Minor-System zum Gruppieren von Geräten in „Major“-Klassen. Eher die rdev für das Gerät ist die gleiche wie seine I-Node-Nummer im Pseudo-Dateisystem, wobei I-Nodes einfach in aufsteigender Reihenfolge zugewiesen werden, wenn Geräteknoten generiert werden, abhängig von der genauen Hardware auf der Maschine, die zu diesem Zeitpunkt vorhanden ist.

Daher kann die Gerätenummer nicht als Abkürzung für isatty() verwendet werden .


Linux
  1. Verwenden Sie den Alpine-E-Mail-Client in Ihrem Linux-Terminal

  2. So ändern Sie die Farbe Ihres Linux-Terminals

  3. Ist die Linux-Philosophie 2019 noch aktuell?

  4. Die Theths über Malware in Unix / Linux?

  5. So listen Sie offene Ports auf einem Linux/Unix-Server auf

Führen Sie die Linux-Befehlszeile auf Ihrem iPad aus

Entspannen Sie am Feuer an Ihrem Linux-Terminal

Was ist der Unterschied zwischen Linux und Unix?

So finden Sie die Portnummer eines Dienstes in Linux

So überprüfen Sie alle offenen Ports in Ihrem Linux-System

Linux gegen Unix