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

Debian – Fehler beim Aktivieren von Uarts auf Beaglebone Black?

Kurze und allgemeine Frage

Ich verwende Debian 9 (Stretch) auf einem Beaglebone Black mit Kernel 4.9. Ich habe versucht, den Anweisungen zu folgen, die ich online gefunden habe, war aber bisher anscheinend nicht in der Lage, seine UART-Geräte zu konfigurieren. Wie konfiguriere ich mein Gerät? Wie debugge/behebe ich meine Konfiguration? Wie kann ich überprüfen, ob meine Konfiguration korrekt ist?

Lange und ausführliche Frage

Ich bin sehr neu in Embedded Linux im Allgemeinen und Beaglebone im Besonderen. Ich habe die hier gegebenen Anweisungen befolgt:

  • BeagleBoard.org:Erste Schritte

Ich habe das neueste Image „Stretch IoT (ohne grafischen Desktop) für BeagleBone und PocketBeagle via microSD-Karte“ (insbesondere bone-debian-9.3-iot-armhf-2018-03-05-4gb.img) von der Seite „Neueste Bilder“ heruntergeladen und geflasht das Beagleboard von einer SD-Karte. Nach der Installation konnte ich von meinem Linux-Desktop über ein Seriell-zu-USB-Kabel auf den Beaglebone zugreifen – ähnlich wie im folgenden Artikel beschrieben:

  • So verbinden Sie den Beaglebone Black seriell über USB

Ich konnte den folgenden screen verwenden Befehl erfolgreich:

screen /dev/ttyUSB0 115200

Ich konnte auch ein Micro-USB-zu-USB-Kabel über SSH verbinden:

ssh [email protected]

Sobald ich mit dem Beaglebone verbunden war, überprüfte ich, ob meine Kernel-Version Linux beaglebone 4.9.82-ti-r102 war . Ich habe dann mehrere Artikel zur Beaglebone-UART-Konfiguration durchgelesen, darunter die folgenden:

  • Trevor’s Electronics Blog:Enable UARTs on Element 14 Beaglebone Black rev C

  • StackOverflow:Aktivieren von UART auf Beaglebone Black

  • Thing Printer:Cape Manager ist zurück, Baby!

  • Flaming Lotus Girls:Beaglebone Black – UART1 aktivieren

  • Billwaas Blog:Enable All UART Ports at Boot

  • Tender Love Making(?):Aktivierung von ttyO1 auf BeagleBone

  • ELinux:BeagleBoneBlack Debian

Mein Fazit war, dass es (im Allgemeinen) je nach Betriebssystem und Kernel-Version mehrere verschiedene Konfigurationsdateien gibt, nach denen gesucht werden muss. Dazu gehörten die folgenden:

  • /boot/uEnv.txt
  • /boot/uboot/uEnv.txt
  • /etc/default/capemgr
  • /media/BEAGLEBONE/uEnv.txt

Es wurden auch mehrere Gerätedateien erwähnt, wie zum Beispiel:

  • /sys/devices/bone_capemgr.*/slots

Ich habe versucht, jede der folgenden Zeilen zu jeder der verschiedenen uEnv.txt hinzuzufügen Dateien:

  • cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5

  • optargs=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART3,BB-UART5

Ich habe auch versucht, die folgende Zeile zu /etc/default/capemgr hinzuzufügen :

CAPE=BB-SPI-01,BB-UART1,BB-UART2,BB-UART4

Nach dem Neustart habe ich den folgenden Befehl verwendet, um zu überprüfen, ob die UART-Geräte erschienen sind:

ls -l /dev/ttyO*

Leider habe ich folgendes erhalten (unerwartete Ergebnisse):

[email protected]:~$ ls -l /dev/ttyO*
lrwxrwxrwx 1 root root 5 Jan  1 00:00 /dev/ttyO0 -> ttyS0

HINWEIS:Ich mache mir keine Sorgen um ttyO0 , sondern mit ttyO1, ..., ttyO5 .

Ich habe auch ein paar andere Dinge ausprobiert, aber (um Zeit und Platz zu sparen) werde ich nicht jeden Versuch beschreiben, es sei denn, es wird angefordert.

Was mache ich hier falsch? Wie aktiviere ich die UART-Geräte richtig?

Verwandte Themen:Wie aktiviere ich die Zwei-Faktor-Authentifizierung in Office 365?

Akzeptierte Antwort:

Folgendes funktioniert für Debian 9.9 mit Kernel 4.14 (funktionierte auch mit Debian 8.3, funktionierte nicht mit Debian 9.3).

Beim Booten sehen Sie die /dev/ttyO1-, O2-, O4-Dateien, aber sie funktionieren nicht, bis Sie die Pins auf den richtigen Pinmux setzen:

#ttyO1:
config-pin P9_24 uart
config-pin P9_26 uart
#ttyO2:
config-pin P9_21 uart
config-pin P9_22 uart
#ttyO4:
config-pin P9_11 uart
config-pin P9_13 uart

Sie müssen diesen Schritt bei jedem Neustart durchführen. Es gehört in eine Art Startskript.

Sie können mit einem einfachen Loopback-Test bestätigen, dass die UARTs funktionieren, z. für UART4:

  1. Platzieren Sie einen Draht zwischen P9_11 und P9_13

  2. screen /dev/ttyO4

  3. Text, den Sie in das Fenster eingeben, sollte angezeigt werden, trennen Sie das Kabel und weitere Eingaben werden nicht angezeigt. Der UART funktioniert.


Debian
  1. Aktivieren Sie die SSH-Root-Anmeldung auf dem Debian-Linux-Server

  2. SSH auf Debian 9-System aktivieren – Schritt-für-Schritt-Verfahren?

  3. Debian – Fehler beim Aktivieren von Uarts auf Beaglebone Black?

  4. Ssh – Wie aktiviere ich den Diffie-hellman-group1-sha1-Schlüsselaustausch unter Debian 8.0?

  5. So aktivieren Sie große Indizes in MariaDB 10 unter Debian 10

So aktivieren Sie das HTTP2-Protokoll mit Nginx auf Debian 8 Jessie Server

Unbeaufsichtigte Upgrades auf Debian 11 installieren/aktivieren und konfigurieren

SSH auf Debian 11 Bullseye installieren/aktivieren

So aktivieren Sie SSH unter Debian 11 Bullseye Linux

So aktivieren Sie SSH auf Debian 10 Buster

So installieren und aktivieren Sie den SSH-Server unter Debian 10