LINUX.ORG.RU
ФорумAdmin

Как подключиться к ARM через COM?

 ,


0

3

Здравствуйте, коллеги.

Прошу не пинать сильно. С ARM я сталкивался, но давно и как-то не глубоко. На данный момент из памяти почти все стерлось.

Что мы имеем:

Architecture:           aarch64
  CPU op-mode(s):       32-bit, 64-bit
  Byte Order:           Little Endian
CPU(s):                 8
  On-line CPU(s) list:  0-7
Vendor ID:              ARM
  Model name:           Cortex-A55
 ...

Железка рабочая. На ней установлен Debian 12

uname -a
Linux Debian 5.10.160 #4 SMP Fri Feb 9 09:21:31 MSK 2024 aarch64 GNU/Linux

Debian - это, конечно, очень хорошо! Но нам на нем нужен Alt.

Систему можно загрузить с «харда» или карты памяти.

Полазил в интернете и даже кое что нашел! https://www.adior.ru/index.php/desktop/162-alt-linux-arm

Сделал по инструкции. Залил alt-workstation-10.0-aarch64.img.xz по инструкции на карту памяти, попытался загрузиться и… И ни чего! Просто черный экран.

Меня, вообще, arm выбешивает, что при загрузке, вообще ни чего не говорит! При загрузке предустановленного Debian, сначала черный экран, помигивает курсор, потом сразу приглашение в систему.

Сам процесс загрузки сокрыт.

Полазив в интернет я нашел инфу, что больше информации можно получить подключившись к RS232.

Я когда-то, ка писал выше, с этим сталкивался, но все успешно забыл.

Давайте представим что есть шнур с CP2102/CP2109 UART Bridge Controller на одном конце 9 pin на другом USB.

Подключаем COM к ARM, usb к внешнему компу с Linux.

В Linux устанавливаю Putty. Допрос с пристрастим dmesg выдает:

 [ 1696.053358] usb 1-1.4.3.1: new full-speed USB device number 13 using ehci-pci
[ 1696.165585] usb 1-1.4.3.1: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[ 1696.165623] usb 1-1.4.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1696.165644] usb 1-1.4.3.1: Product: CP2104 USB to UART Bridge Controller
[ 1696.165659] usb 1-1.4.3.1: Manufacturer: Silicon Labs
[ 1696.165673] usb 1-1.4.3.1: SerialNumber: 034BC90C
[ 1696.167806] cp210x 1-1.4.3.1:1.0: cp210x converter detected
[ 1696.170454] usb 1-1.4.3.1: cp210x converter now attached to ttyUSB0

О! Крупица информации: cp210x converter now attached to ttyUSB0

Далее запускаю Putty, выбираю serial, вписываю /dev/ttyUSB0 и… Скорость по умолчанию 9600. Оставляю как есть или забиваю 115200 -результат един. Открывается окно в котором лишь курсор, который ни на что не реагирует.

Ни чего не вводится и не выводится.

Что я делаю не верно? Что я забыл?

Давайте будем считать (надеятся), что шнурок живой.

PS. Еще я видел, что у Alt linux есть iso образы для arm64. Например alt-server-10.0-aarch64.iso
https://download.basealt.ru/pub/distributions/ALTLinux/p10/images/server/aarch64/

Как его можно установить???


Ответ на: комментарий от HighMan

Кстати, насчёт молчаливой загрузки — тебе стоит отредактировать параметры ядра, они могут лежать в /boot/extlinux/extlinux.conf. Если там есть параметры quiet и/или splash, тебе нужно их убрать. (эти параметры отключают вывод логов при старте на экран)

Werenter ★★☆
()
Последнее исправление: Werenter (всего исправлений: 1)
Ответ на: комментарий от Werenter

Кстати, насчёт молчаливой загрузки — тебе стоит отредактировать параметры ядра, они могут лежать в /boot/extlinux/extlinux.conf. Если там есть параметры quiet и/или splash, тебе нужно их убрать.

/boot пустой. В нем, вообще ни чего нет.

 lsblk -f
NAME         FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0                                                                             
|-mmcblk0p1  vfat   FAT32 boot  5646-5F0A                                           
`-mmcblk0p2  ext4   1.0         d5b0ab44-85be-45db-a878-57f1087806f3   32.7G    37% /
mmcblk0boot0                                                                        
mmcblk0boot1                                                                        
zram0

root@Debian:~# mount /dev/mmcblk0p1 /mnt
root@Debian:~# ls -lah /mnt
total 181M
drwxr-xr-x  2 root root 4.0K Jan  1  1970 .
drwxr-xr-x 18 root root 4.0K Feb  9 11:59 ..
-rwxr-xr-x  1 root root 148M Feb  9 09:25 busybox.rootfs.cpio.gz
-rwxr-xr-x  1 root root 246K Feb  9 09:25 dtb
-rwxr-xr-x  1 root root  34M Feb  9 09:25 linux
-rwxr-xr-x  1 root root  32K Feb  9 09:25 uboot.env
root@Debian:~# 
root@Debian:~# find / -type f -name extlinux.conf
root@Debian:~#
HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)
Ответ на: комментарий от aiqu6Ait

RX шнурка замкнуть на TX и не надеяться, а проверить.

Эм.. Простите, я в этом по пояс деревянный. Сверху.

Я даже пояльник в руках держать не умею.

Но допустим я это передам технарям, они замкнут и что я должен буду увидеть и как?

HighMan
() автор топика
Ответ на: комментарий от HighMan

Ни чего

Тебе самому-то глаз не режет? :)

На таких платах обычно консоль ядра выведена не на rs232, а на отдельный разъем. Может называться debug, serial, console трех или четырёх пиновый.

Плата секретная или можно погуглить, если скажешь модель? Может можешь сфотографировать?

Ну и поэксперементируй со скоростями: последняя, которую так ковырял я завелась аж на 1.5М

pihter ★★★★★
()
Ответ на: комментарий от HighMan

Но допустим я это передам технарям, они замкнут и что я должен буду увидеть и как?

Так зови технарей сюда :)

Если на ком-шнурки замкнуть tx и RX контакты (если я правильно помню, 3 и 4,но надо перепроверить) то он на приём будет получать то, что шлёт на отправку, а разомкнуть - перестанет. Так можно проверить работает ли

pihter ★★★★★
()

Далее запускаю Putty, выбираю serial, вписываю /dev/ttyUSB0 и… Скорость по умолчанию 9600. Оставляю как есть или забиваю 115200 - результат един. Открывается окно в котором лишь курсор, который ни на что не реагирует.

flow control выключать пробовали? Очень редко бывают железки на нестандартных скоростях (1200,2400,4800,19200,38400,57600, ...) но тогда будет визуальный мусор появляться. Еще битность, четность но я не встречал девайсов у которых НЕ 8n1

Что за плата?

Kolins ★★★★
()
Последнее исправление: Kolins (всего исправлений: 1)
Ответ на: комментарий от imatveev13

Можно включить больше логов параметрами загрузки.

Как?

Там, вообще, сказано что-то удивительное. Предлагают взламывать /proc/cmdline. Зачем??? Когда система загружена, то в этот «файл» попадает cmdline уже загруженного ядра.

Или я что-то не правильно понимаю?

root@Debian:~# cat /proc/cmdline 
root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0
root@Debian:~#
HighMan
() автор топика
Ответ на: комментарий от HighMan

console=ttyFIQ0

может быть и ком порт, а моржет и уарт.

имхо, на такой плате просто обязан быть отдельный уарт, но мне разглядеть не удалось. ( на фоторграфии не все разъемы можно разобрать) но они все подписаны, я бы рассмотрел подробнее. Плюс, я думаю там и на обратной стороне много мудрых текстов

по марке congatec ag l133418 нагуглить пдфку не удалось. Может с ней какая-то документация была?

pihter ★★★★★
()
Ответ на: комментарий от HighMan

Предлагают взламывать /proc/cmdline. Зачем??? Когда система загружена, то в > этот «файл» попадает cmdline уже загруженного ядра. Или я что-то не правильно понимаю?

Понимаете правильно. Чтобы cmdline изменить надо найти где загрузчик строчку передает ядру.

Какой там загрузчик?

imatveev13
()
Ответ на: комментарий от imatveev13

Чтобы cmdline изменить надо найти где загрузчик строчку передает ядру.

Зачем её менять?

Мы же уже знаем, что сонсоль на /dev/ttyFIQ0

Из под дебиана пошуметь в порт и убедиться что порт тот, который мы думвем

Для начала

pihter ★★★★★
()
Ответ на: комментарий от pihter

Мы же уже знаем, что сонсоль на /dev/ttyFIQ0

А чем это поможет при подключении к другому компьютеру с Linux?

Из под дебиана пошуметь в порт и убедиться что порт тот, который мы думвем

echo 'uywedvwfdwif' > /dev/ttyFIQ0

И что я должен увидеть?

HighMan
() автор топика
Ответ на: комментарий от HighMan

Судя по фото это плата Conga-SEVAL https://www.congatec.com/en/products/accessories/conga-seval/

На которой расположен модуль по типу SMX8 https://www.congatec.com/en/products/smarc/conga-smx8-plus/ https://www.congatec.com/fileadmin/user_upload/Documents/Datasheets/conga-SMX8-Plus.pdf

Судя по документации к материнской плате (не процессорному модулю) - на плате есть отладочный jtag порт x62, который активируется джампером x44.

На процессорном модуле также есть отладочный UART порт X2.

mrkian
()
Ответ на: комментарий от Werenter

Выше скинул ссылки на документацию к этой плате. Судя по ней СOM порт для отладки там не используется. В документации так же есть все пиноуты и ttl - подключится можно без проблем.

mrkian
()
Ответ на: комментарий от HighMan

А чем это поможет при подключении к другому компьютеру с Linux?

Ну можно, наладив связь с дебианом, убедиться что порт рабочий, что кабель твой рабочий, что порт правильный, наконец. Почитать выхлоп дебиана, потом воткнуть флешку с альтом и посмотреть уже его выхлоп

И что я должен увидеть?

Должен увидеть «uywedvwfdwif» в путти на присоединенном компьютере, если все правильно

pihter ★★★★★
()
Ответ на: комментарий от imatveev13

Что самое отвратительное, далеко не все конвертеры умеют скорости выше. Например, некоторые по умолчанию ставят в полтора мегабита, получается очень быстрая и плавная консоль, но либо не читается вообще, либо читается с ошибками.

Ещё бы посоветовал автору поста всё-таки удостовериться что всё подключено правильно. Я как-то по запарке землю подключил к 3.3в и удивлялся почему вчера всё работало, а сегодня нет. :)

a1ba ★★
()
Ответ на: комментарий от Werenter

uboot.env наверняка текстовый, а не бинарь.

file /mnt/uboot.env 
/mnt/uboot.env: data

Не густо информации выдали, но можете поверить - бинарь.

По крайней мере в рабочем Debian.

HighMan
() автор топика
Ответ на: комментарий от Werenter

Да. screen /dev/ttyUSB0 9600 и поехали.

Не поехало )

На arm echo ‘beqilbvcowfvn’w bwrf’ > /dev/ttyFIQ0 на другой машине screen /dev/ttyUSB0 9600 и на той стороне фсе пависла.

Наверное не правильно мы к нему подглючились.

HighMan
() автор топика
Ответ на: комментарий от HighMan

Ну битрейт может отличаться, совершенно не обязательно, что он равен 9600 в твоём случае.

Также, что значит повисло? В screen пусто? Если неверный битрейт, то там был бы мусор, но что-то бы выводилось. Если нет ничего, значит сигнал по каким-то причинам не дошёл (неверное подключение вполне может быть). Закрыть screen можно так:

  1. Нажать Ctrl+A
  2. Набрать :quit
Werenter ★★☆
()