Linux virtuelles tty

671
amy programmer

Ich habe meinen eigenen Long Range RF USB entwickelt .

[USB-Gerät] -> [Raspberry PI] -> [myTxApp] -> [RF-Gerät * (nicht WiFi)] -> [RF-Gerät] -> [Laptop] -> [myRxApp] -> [Virtuelles Gerät]

Ich habe es auf USB-Webcam getestet, und es funktioniert perfekt. Ich kann von jeder GUI wie VLC auf die Webcam zugreifen

# Tx gst-launch-1.0 -q v4l2src ! ... ! fdsink sync=false | ./tx  # Rx dpkg-reconfigure v4l2loopback-dkms modprobe -v v4l2loopback ./rx | gst-launch-1.0 -q fdsrc ! ... ! v4l2sink sync=false 
  • Jetzt möchte ich dasselbe mit einem seriellen Gerät wie Arduino UNO tun, alles funktioniert einwandfrei und ich kann seriell auf dem Terminal senden und empfangen, aber ich kann nicht mit einer GUI wie Arduino IDE auf die serielle Schnittstelle zugreifen. Ich versuche, Virtual tty wie tty0tty und Socat zu verwenden funktioniert es nur im Terminal und Arduino IDE erkennt kein virtuelles tty :(.

  • In Windows kann com0com virtuelle Serienfunktionen erstellen und Arduino IDE erkennt virtuelle Serienbilder :).

Um klar zu sein: Wie machen GUI wie Arduino IDE erkennt virtuelle tty auf Linux ?

Lösung: https://stackoverflow.com/questions/23867143/null-modem-emulator-com0com-for-linux Die Arduino IDE kann virtuelles tty von Socat und tty0tty unter Linux erkennen, öffnen Sie die Arduino IDE nur als root

# Ubuntu $ sudo arduino  # Debian $ su $ arduino 

Und jetzt ist es eine Möglichkeit zu machen Arduino IDE erkennen virtuellen tty ohne root ?

0

1 Antwort auf die Frage

1
dirkt

1) Hast du socatals root verwendet? Wenn ja, starten Sie socatals derselbe Benutzer, der gestartet wird arduino, und erteilen Sie diesem Benutzer die richtigen Berechtigungen für alle anderen Geräte, socatdie zusätzlich zum PTY verwendet werden. Wenn Sie nicht wissen, wie das geht, bearbeiten Sie Ihre Frage bitte genau mit der Befehlszeile, die Sie verwendet haben socat.

2) Wenn (1) nicht funktioniert, schauen Sie sich die Erlaubnis des von PTY erstellten PTY an socatund ändern Sie die Berechtigungen, damit der Benutzer arduinoZugriff hat.