Puncte:1

Nu se poate citi din portul serial pe linia de comandă

drapel de

Am încercat să citesc din /dev/ttyS0 pe 1 terminal ca root cu cat:

cat < /dev/ttyS0

și trimiterea unui mesaj către portul serial de la alt terminal ca root cu ecou:

echo -ne "bună ziua" > /dev/ttyS0

Dar nu am primit nimic de la pisică. Poate cineva sa ma lamureasca cu privire la cauza problemei?

guiverc avatar
drapel cn
Numai versiunile acceptate ale Ubuntu (*asistență standard sau publică*) sunt la subiect pentru acest site. Ubuntu 14.04 LTS este EOL (*sfârșitul vieții*), deci off-topic, iar Ubuntu 14.04 ESM este în suport *extins* și este acceptat numai de Canonical prin Ubuntu Advantage, prin urmare și aici. Consultați https://askubuntu.com/help/on-topic https://help.ubuntu.com/community/EOLUpgrades https://fridge.ubuntu.com/2019/05/02/ubuntu-14-04-trusty-tahr-reached-end-of-life-on-april-25-2019-esm-available/
ablan avatar
drapel de
Așteptați acest site este de la Canonical? Am crezut că este de la voluntari?
FedKad avatar
drapel cn
Este de către voluntari. Cu toate acestea, nu are rost să petreci timp pe o versiune neacceptată... Oricum, ce este pe cealaltă parte a portului serial pe care încerci să-l citești și să scrii? Un modem, un alt computer?
guiverc avatar
drapel cn
Este un site oficial afiliat cu Ubuntu da, de ce pot folosi site-ul fără a mă autentifica prin Stack Exchange (adică folosind Ubuntu-ONE SSO), dar voluntarii sunt și ei aici.
ablan avatar
drapel de
Nimic nu este pe cealaltă parte. Am doar ```ls /dev/```, am văzut că ttyS0 este listat, apoi am încercat, dar nu a funcționat.
Puncte:1
drapel cn

Dispozitivul /dev/ttyS0 corespunde în mod normal primului port serial al computerului. În zilele noastre, computerele nu au porturi seriale, dar unele dispozitive USB pot apărea la a /dev/ttySX portul sistemului dvs. Dacă dispozitivul a fost conectat la computer în timpul pornirii, puteți găsi numele dispozitivului probabil rulând:

journalctl -b | grep ttyS

Dacă dispozitivul nu este încă conectat, mai întâi executați comanda:

journalctl -f | grep ttyS

și apoi conectați dispozitivul; ar trebui să vedeți un mesaj care indică numărul portului X.


Dacă încercați să trimiteți date către consolele virtuale ale unui sistem desktop, mai întâi apăsați combinația de taste Ctrl+Alt+F4 și conectați-vă la consola virtuală afișată în modul text. Apoi rulați comanda

cine sunt

pentru a verifica dacă dispozitivul la care v-ați autentificat este de fapt /dev/tty4 (al doilea cuvânt din rezultatul comenzii de mai sus ar trebui să fie tty4 în acest caz).

Pe ecranul grafic principal (la care se poate ajunge prin apăsarea combinației de taste Ctrl+Alt+F2) deschideți un terminal și rulați comanda:

echo "Bună ziua" >/dev/tty4

Treceți înapoi la consolă folosind Ctrl+Alt+F4 și vezi mesajul afișat.

În mod similar, rulați următoarea comandă pe ecranul grafic principal:

pisică </dev/tty4

Reveniți la consolă și încercați să introduceți câteva caractere. Unele dintre personaje vor fi transmise pe ecran (de bash), unii nu vor. Caracterele care nu au ecou vor fi afișate pe ecranul grafic principal ca rezultat al pisică comanda. Motivul pentru aceasta este că același dispozitiv este citit de două procese (unul pe consola de text, care este bash iar celălalt pe ecranul grafic care este pisică comanda).


Notă:

Pentru ca un utilizator non-root să poată citi și scrie pe un port serial, acel utilizator trebuie să aibă permisiunea de citire și scriere pentru dispozitivul respectiv.În Ubuntu, acest lucru se poate face cu ușurință prin adăugarea utilizatorului curent la apelare telefonică grup folosind

sudo addgroup _your_user_ dialout

Este posibil să trebuiască să vă deconectați și apoi să vă conectați din nou pentru ca această modificare să intre în vigoare.

ablan avatar
drapel de
Funcționează și dacă nu există niciun hardware real conectat la /dev/ttyS0?
FedKad avatar
drapel cn
@ablan Nu. Trebuie să existe un dispozitiv „conectat” la acest port... Și, dacă există ceva informații suplimentare de care aveți nevoie în răspunsul meu, vă rog să mă informați.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.