Рейтинг:0

Включить связь UART (ttyS0 или serial0) на Pi4 Ubuntu Mate 20.04

флаг ua

Я использую версию Raspberry Pi 4 (8G). Раньше он хорошо работал при общении с Pixhawk через serial0. Но несколько месяцев назад я сменил ОС с Ubuntu 16 Ubiquity на Ubuntu Mate 20. Другие функции работают хорошо, но когда я пытаюсь использовать serial0 для подключения к Pixhawk, я обнаружил, что serial0 не существует. Я провел некоторое исследование в Интернете и обнаружил, что у некоторых пользователей есть аналогичные проблемы с отключением serial0 при использовании RPi3 и 4. Я пытался использовать некоторые сценарии, которые они упомянули, и некоторые шаги для изменения файлов, связанных с config.txt, но ни один из них не работает для меня. Основные шаги, которые я выполнил, находятся в Включить связь UART на Pi4 Ubuntu 20.04

Я заметил, что информация dmesg имеет некоторые отличия: В нем должно быть три строки:

$ dmesg | grep tty
[0.001061] printk: консоль [tty0] включена
[ 1.919367] fe201000.serial: ttyAMA0 в MMIO 0xfe201000 (irq = 29, base_baud = 0) является PL011 rev2
[1.924677] fe215040.serial: ttyS0 на MMIO 0x0 (irq = 31, base_baud = 62500000) — это 16550

Но мой RPi имеет только две строки:

ubuntu@ubuntu-desktop:~$ dmesg | grep tty
[0.000245] printk: консоль [tty0] включена
[1.412273] fe201000.serial: ttyAMA0 на MMIO 0xfe201000 (irq = 14, base_baud = 0) — это PL011 rev2
ubuntu@ubuntu-desktop:~$ mavproxy.py --master=/dev/ttyS0,921600
Подключить /dev/ttyS0,921600 source_system=255
Не удалось подключиться к /dev/ttyS0,921600: [Errno 2] не удалось открыть порт /dev/ttyS0: [Errno 2] Нет такого файла или каталога: '/dev/ttyS0'

Итак, похоже, что ttyS0 отключен. Как вы думаете, это имеет какое-то отношение к командной строке ядра «8250.nr_uarts = 0»?

ubuntu@ubuntu-desktop:~$ dmesg | grep-уарт
[0.000000] Командная строка ядра: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=DC:A6:32:B2:AD:BF vc_mem.mem_base=0x04m_mem_base=0x04m000000vc_me net.ifnames=0 dwc_otg.lpm_enable=0 root=LABEL=доступный для записи rootfstype=ext4 lift=крайний срок rootwait fixrtc тихий всплеск тихий всплеск

Вот связанные файлы:

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/config.txt
# Пожалуйста, НЕ изменяйте этот файл; если вам нужно изменить конфигурацию загрузки,
# В файл "usercfg.txt" включаются пользовательские изменения. Пожалуйста, обратитесь к
# файл README для описания различных файлов конфигурации на
# загрузочный раздел.

# Необычный порядок ниже является преднамеренным; старые прошивки (в частности
# версия изначально поставлялась с бионикой) не понимаю условного
# [разделы] ниже и просто игнорируйте их. Pi4 вообще не загружается с
# прошивка эта старая, поэтому ее можно смело размещать вверху. Из Pi2 и Pi3,
# uboot Pi3 успешно работает на Pi2, поэтому он должен идти в самом низу
# для поддержки старых прошивок.

[пи4]
ядро = uboot_rpi_4.bin
max_framebuffers=2

[пи2]
ядро = uboot_rpi_2.bin

[пи3]
ядро = uboot_rpi_3.bin

[все]
arm_64bit=1
device_tree_address = 0x03000000

# Следующие настройки являются «значениями по умолчанию», которые, как ожидается, будут переопределены
# включенная конфигурация. Единственная причина, по которой они включены, это, опять же,
# поддержка старых прошивок, которые не понимают команду "include".

# enable_uart=1
cmdline=cmdline.txt

включить syscfg.txt
включить usercfg.txt

# Включить наложение графики FKMS («Поддельный» KMS), включить прошивку камеры
# и выделяем 128Mb под память GPU
dtoverlay = vc4-fkms-v3d
gpu_mem=128
старт_х=1

# Закомментируйте следующую строку, если края рабочего стола выходят за его пределы
# края вашего дисплея
отключить_оверскан = 1

# Если у вас проблемы со звуком, попробуйте раскомментировать следующую строку
# который переводит выход HDMI в режим HDMI вместо DVI (который не
# поддержка аудиовыхода)
#hdmi_drive=2

# Если у вас CM4, раскомментируйте следующую строку, чтобы включить выходы USB2
# на плате ввода-вывода (при условии, что ваш CM4 подключен к такой плате)
#dtoverlay=dwc2,dr_mode=хост

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/usercfg.txt 
# Поместите изменения "config.txt" (dtparam, dtoverlay, disable_overscan и т. д.) в
# этот файл. Пожалуйста, обратитесь к файлу README для описания различных
# файлы конфигурации на загрузочном разделе.

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/README 
Обзор файлов в разделе /boot/firmware (1-й раздел
на SD-карте), используемый процессом загрузки Ubuntu (примерно по порядку), выглядит как
следует:

* bootcode.bin - это загрузчик второго этапа, загружаемый всеми писами с
                   за исключением pi4 (где это заменено flash
                   Память)
* config.txt — первый конфигурационный файл, прочитанный процессом загрузки
* syscfg.txt - файл, в котором будет храниться измененная конфигурация системы
                   размещено, включено config.txt
* usercfg.txt - файл, в котором должна быть измененная пользователем конфигурация
                   размещено, включено config.txt
* start*.elf - загрузчик третьей стадии, который обрабатывает дерево устройств
                   модификация и которая загружает...
* uboot*.bin — разные бинарники u-boot для разных pi платформ; эти
                   запускаются как "ядро" config.txt
* boot.scr - загрузочный скрипт, выполняемый uboot*.bin, который в свою очередь
                   загружает...
* vmlinuz — ядро ​​Linux, выполняемое boot.scr
* initrd.img - файл initramfs, запускаемый boot.scr

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/syscfg.txt 
# Этот файл предназначен для изменения с помощью утилиты pibootctl. Пользователь
# изменения конфигурации должны быть помещены в "usercfg.txt". Пожалуйста, обратитесь к
# Файл README для описания различных файлов конфигурации при загрузке
# раздел.

enable_uart=0
dtparam=аудио=включено
dtparam=i2c_arm=включено
dtparam=spi=on
cmdline=cmdline.txt

Я также попытался изменить enable_uart=0 на 1 в /boot/firmware/syscfg.txt. После этого система не может загрузиться, что показывает, что файл действительно влияет на систему. Затем я изменил файл обратно, и система загружается нормально.

ubuntu@ubuntu-desktop:~$ cat /boot/firmware/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 root=LABEL=доступный для записи rootfstype=ext4 lift=крайний срок rootwait fixrtc тихий всплеск

ubuntu@ubuntu-desktop:~$ статус sudo systemctl [email protected]
серийный[email protected]
     Загружено: замаскировано (Причина: модуль [email protected] замаскирован.)
     Активный: неактивный (мертвый)

ubuntu@ubuntu-desktop:~$ группы
ubuntu adm tty dialout cdrom sudo dip video plugdev input lxd lpadmin sambashare spi i2c gpio

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.