Puncte:0

Activați comunicarea UART (ttyS0 sau serial0) pe Pi4 Ubuntu Mate 20.04

drapel ua

Folosesc versiunea Raspberry Pi 4 (8G). Funcționează bine atunci când comunicați cu Pixhawk prin serial0 înainte. Dar acum câteva luni, am schimbat sistemul de operare de la Ubuntu 16 Ubiquity la Ubuntu Mate 20. Alte funcții funcționează bine, dar când încerc să folosesc serial0 pentru a mă conecta la Pixhawk, am constatat că serial0 nu există. Am făcut câteva cercetări online și am descoperit că unii utilizatori au probleme similare cu serial0 dezactivat atunci când folosesc RPi3 și 4. Am încercat să folosesc unele scripturi pe care le-au menționat și câțiva pași pentru a schimba fișierele legate de config.txt, dar niciunul nu funcționează pentru mine. Principalii pași pe care i-am urmat sunt în Activați comunicarea UART pe Pi4 Ubuntu 20.04

Observ că informațiile dmesg au câteva diferențe: Ar trebui să aibă trei rânduri:

$ dmesg | grep tty
[ 0.001061] printk: consola [tty0] activată
[ 1.919367] fe201000.serial: ttyAMA0 la MMIO 0xfe201000 (irq = 29, base_baud = 0) este un PL011 rev2
[ 1.924677] fe215040.serial: ttyS0 la MMIO 0x0 (irq = 31, base_baud = 62500000) este un 16550

Dar RPi-ul meu are doar două linii:

ubuntu@ubuntu-desktop:~$ dmesg | grep tty
[ 0.000245] printk: consola [tty0] activată
[ 1.412273] fe201000.serial: ttyAMA0 la MMIO 0xfe201000 (irq = 14, base_baud = 0) este un PL011 rev2
ubuntu@ubuntu-desktop:~$ mavproxy.py --master=/dev/ttyS0,921600
Conectați /dev/ttyS0,921600 source_system=255
Nu s-a putut conecta la /dev/ttyS0,921600: [Errno 2] nu a putut deschide portul /dev/ttyS0: [Errno 2] Nu există un astfel de fișier sau director: „/dev/ttyS0”

Deci, se pare că ttyS0 este dezactivat. Crezi că are vreo relație cu linia de comandă Kernel „8250.nr_uarts = 0”?

ubuntu@ubuntu-desktop:~$ dmesg | grep uart
[ 0.000000] Linia de comandă a kernelului: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=DC:A6:A6:000000000:A6:00000000:A6:00000000:A6:00000000:A6:000000 net.ifnames=0 dwc_otg.lpm_enable=0 root=LABEL=inscriptibil rootfstype=ext4 elevator=termen limită rootwait fixrtc quiet splash quiet splash

Iată fișierele conexe:

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/config.txt
# Vă rugăm să NU modificați acest fișier; dacă trebuie să modificați configurația de pornire, fișierul
# Fișierul „usercfg.txt” este locul pentru a include modificările utilizatorului. Va rog, referiti-va la
# fișierul README pentru o descriere a diferitelor fișiere de configurare
# partiția de pornire.

# Ordinea neobișnuită de mai jos este deliberată; firmware-uri mai vechi (în special firmware-ul
# versiunea livrată inițial cu bionic) nu înțeleg condiționalul
# [secțiuni] de mai jos și pur și simplu ignorați-le. Pi4 nu pornește deloc cu
# firmware-uri atât de vechi, așa că este sigur de plasat în partea de sus. Dintre Pi2 și Pi3, cel
# Pi3 uboot se întâmplă să funcționeze fericit pe Pi2, așa că trebuie să meargă în partea de jos
# pentru a suporta firmware-uri vechi.

[pi4]
kernel=uboot_rpi_4.bin
max_framebuffers=2

[pi2]
kernel=uboot_rpi_2.bin

[pi3]
kernel=uboot_rpi_3.bin

[toate]
arm_64bit=1
device_tree_address=0x03000000

# Următoarele setări sunt „implicite” care se așteaptă să fie înlocuite de către
# configurație inclusă. Singurul motiv pentru care sunt incluși este, din nou, să
# acceptă firmware-urile vechi care nu înțeleg comanda „include”.

# enable_uart=1
cmdline=cmdline.txt

include syscfg.txt
include usercfg.txt

# Activați suprapunerea grafică FKMS ("Fake" KMS), activați firmware-ul camerei
# și alocați 128Mb memoriei GPU
dtoverlay=vc4-fkms-v3d
gpu_mem=128
start_x=1

# Comentați următoarea linie dacă marginile desktopului apar în exterior
# marginile afișajului dvs
disable_overscan=1

# Dacă aveți probleme cu audio, puteți încerca să anulați comentariile următoarei rânduri
# care forțează ieșirea HDMI în modul HDMI în loc de DVI (ceea ce nu
# acceptă ieșirea audio)
#hdmi_drive=2

# Dacă aveți un CM4, decomentați următoarea linie pentru a activa ieșirile USB2
# pe placa IO (presupunând că CM4 este conectat la o astfel de placă)
#dtoverlay=dwc2,dr_mode=gazdă

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/usercfg.txt 
# Plasați modificările „config.txt” (dtparam, dtoverlay, disable_overscan etc.) în
# acest fișier. Vă rugăm să consultați fișierul README pentru o descriere a diferitelor
# fișiere de configurare pe partiția de boot.

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/README 
O prezentare generală a fișierelor de pe partiția /boot/firmware (prima partiție
pe cardul SD) utilizat de procesul de boot Ubuntu (aproximativ în ordine) este ca
urmează:

* bootcode.bin - acesta este cel de-al doilea bootloader încărcat de toate pis-urile cu
                   cu excepția pi4 (unde acesta este înlocuit cu flash
                   memorie)
* config.txt - primul fișier de configurare citit de procesul de pornire
* syscfg.txt - fișierul în care va fi configurația modificată de sistem
                   plasat, inclus de config.txt
* usercfg.txt - fișierul în care ar trebui să fie configurația modificată de utilizator
                   plasat, inclus de config.txt
* start*.elf - cel de-al treilea bootloader, care se ocupă de arborele dispozitivului
                   modificare si care se incarca...
* uboot*.bin - diverse binare u-boot pentru diferite platforme pi; aceste
                   sunt lansate ca „kernel” de către config.txt
* boot.scr - scriptul de pornire executat de uboot*.bin care la rândul său
                   incarcaturi...
* vmlinuz - nucleul Linux, executat de boot.scr
* initrd.img - initramfs, executat de boot.scr

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/syscfg.txt 
# Acest fișier este destinat să fie modificat de utilitarul pibootctl. Utilizator
# modificările de configurare ar trebui plasate în „usercfg.txt”. Vă rugăm să consultați
# Fișier README pentru o descriere a diferitelor fișiere de configurare de pe boot
# partiție.

enable_uart=0
dtparam=audio=pornit
dtparam=i2c_arm=on
dtparam=spi=on
cmdline=cmdline.txt

De asemenea, am încercat să schimb enable_uart=0 la 1 în /boot/firmware/syscfg.txt. După aceea, sistemul nu poate porni, ceea ce arată că fișierul influențează sistemul. Apoi am schimbat fișierul înapoi și sistemul pornește normal.

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 root=LABEL=inscriptibil rootfstype=ext4 elevator=termen limită rootwait fixrtc quiet splash

ubuntu@ubuntu-desktop:~$ sudo systemctl status [email protected]
â [email protected]
     Încărcat: mascat (Motiv: Unitatea [email protected] este mascată.)
     Activ: inactiv (mort)

ubuntu@ubuntu-desktop:~$ grupuri
ubuntu adm tty dialout cdrom sudo dip video plugdev input lxd lpadmin sambashare spi i2c gpio

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.