Вопрос или проблема
Для начала, я знаю, что можно использовать ev3dev, но так как это для моего сына, он хочет использовать кодовые блоки, и у меня не получается заставить всё работать как надо…
Изначально была проблема с тем, что ev3 вообще не монтировался, и я смог решить её, прошив новейшую прошивку на кирпич, так что теперь он работает на версии v1.10E.
Я пробовал это на Windows, и это работает, устройство монтируется, и я могу загрузить файл на него – работает… но у моего сына нет доступа к машине с Windows, и я ищу способ заставить всё работать на Linux…
Моя конфигурация:
Система:
Хост: pop-os Ядро: 6.9.3-76060903-generic x86_64 bits: 64
Рабочий стол: GNOME 42.9 Дистрибутив: Pop!_OS 22.04 LTS
Машина:
Тип: Ноутбук Система: HP Продукт: HP Laptop 14s-dq1xxx v: N/A
серийный номер: <требуются права суперпользователя>
Материнская плата: HP модель: 86C8 v: 56.31 серийный номер: <требуются права суперпользователя> UEFI: AMI
v: F.11 дата: 05/22/2020
ЦП:
Информация: четырехъядерный модель: Intel Core i5-1035G1 bits: 64 тип: MT MCP кэш:
L2: 2 MiB
Скорость (МГц): в среднем: 475 мин/макс: 400/3600 ядра: 1: 400 2: 400 3: 400
4: 400 5: 400 6: 400 7: 400 8: 1000
Диски:
Локальное хранилище: всего: 476.97 GiB использовано: 123.27 GiB (25.8%)
ID-1: /dev/nvme0n1 производитель: Western Digital
модель: PC SN530 SDBPNPZ-512G-1006 размер: 476.94 GiB
ID-2: /dev/sda тип: USB модель: Linux File-CD Gadget размер: 31.7 MiB
Вот lsusb:
Шина 002 Устройство 002: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Шина 002 Устройство 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Шина 001 Устройство 005: ID 13d3:56c9 IMC Networks HP TrueVision HD Camera
Шина 001 Устройство 014: ID 0694:0005 Lego Group Mindstorms EV3
Шина 001 Устройство 006: ID 0bda:b00a Realtek Semiconductor Corp. Realtek Bluetooth 4.2 Adapter
Шина 001 Устройство 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Шина 001 Устройство 002: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Шина 001 Устройство 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Вот dmesg после подключения устройства, отфильтрованный по sda:
sudo dmesg -w | grep -i sda
[ 3648.858545] sd 1:0:0:0: [sda] 65000 512-байтных логических блоков: (33.3 МБ/31.7 МиБ)
[ 3648.858937] sd 1:0:0:0: [sda] Защита от записи отключена
[ 3648.858940] sd 1:0:0:0: [sda] Sense Mode: 0f 00 00 00
[ 3648.859497] sd 1:0:0:0: [sda] Кэш записи: включен, кэш чтения: включен, не поддерживает DPO или FUA
[ 3648.888413] sda:
[ 3648.888446] sd 1:0:0:0: [sda] Подключён съемный диск SCSI
[ 3653.876952] FAT-fs (sda): ошибка, повреждённый каталог (неверные записи)
[ 3653.876964] FAT-fs (sda): Файловая система установлена только для чтения
[ 3653.933378] FAT-fs (sda): ошибка, fat_get_cluster: неверная цепочка кластеров (i_pos 0)
dmesg отфильтрованный по usb:
sudo dmesg -w | grep -i usb
[ 4339.097081] usb 1-2: новое высокоскоростное USB устройство номер 15 используется xhci_hcd
[ 4339.224169] usb 1-2: Найдено новое USB устройство, idVendor=0694, idProduct=0005, bcdDevice= 2.16
[ 4339.224182] usb 1-2: Новые строки USB устройства: Mfr=1, Product=2, SerialNumber=3
[ 4339.224186] usb 1-2: Продукт: EV3
[ 4339.224189] usb 1-2: Производитель: LEGO Group
[ 4339.224192] usb 1-2: Серийный номер: 001653548778
[ 4339.231695] hid-generic 0003:0694:0005.0010: hiddev0,hidraw1: USB HID v1.10 Устройство [LEGO Group EV3] на usb-0000:00:14.0-2/input0
[ 4339.232370] usb-storage 1-2:1.1: Обнаружено устройство USB Mass Storage
[ 4339.232722] scsi host1: usb-storage 1-2:1.1
Когда я запускаю fsck.fat
, появляется ошибка, но я переживаю, что это “кирпич” устройство, если позволю ему сделать изменения… вот вывод:
sudo fsck.fat -v /dev/sda
fsck.fat 4.2 (2021-01-31)
Проверка доступа к последнему сектору файловой системы
Содержимое загрузочного сектора:
Системный ID "UF2 UF2 "
Медиабайт 0xf8 (жесткий диск)
512 байтов на логический сектор
512 байтов на кластер
1 зарезервированный сектор
Первая FAT начинается с байта 512 (сектор 1)
2 FAT, 16 битные записи
130048 байтов на FAT (= 254 секторов)
Корневой каталог начинается с байта 260608 (сектор 509)
64 записи корневого каталога
Зона данных начинается с байта 262656 (сектор 513)
64485 кластеров данных (33016320 байтов)
1 сектор/трэка, 1 головка
0 скрытых секторов
64998 секторов всего
/EV3
Содержит свободный кластер (738). Предположение о EOF.
/Projects
Содержит свободный кластер (737). Предположение о EOF.
/dmesg.txt
Размер файла 131072 байтов, длина цепочки кластеров больше 131072 байтов.
Обрезка файла до 131072 байтов.
Метка тома 'EV3' хранится в корневом каталоге и метка 'EV3' хранится в загрузочном секторе и отличаются.
1) Копировать метку тома из корневого каталога в загрузочный сектор
2) Копировать метку из загрузочного сектора в корневой каталог
И вот вывод:
sudo fsck.vfat -v /dev/sda
fsck.fat 4.2 (2021-01-31)
Проверка доступа к последнему сектору файловой системы
Содержимое загрузочного сектора:
Системный ID "UF2 UF2 "
Медиабайт 0xf8 (жесткий диск)
512 байтов на логический сектор
512 байтов на кластер
1 зарезервированный сектор
Первая FAT начинается с байта 512 (сектор 1)
2 FAT, 16 битные записи
130048 байтов на FAT (= 254 секторов)
Корневой каталог начинается с байта 260608 (сектор 509)
64 записи корневого каталога
Зона данных начинается с байта 262656 (сектор 513)
64485 кластеров данных (33016320 байтов)
1 сектор/трэка, 1 головка
0 скрытых секторов
64998 секторов всего
/EV3
Содержит свободный кластер (738). Предположение о EOF.
/Projects
Содержит свободный кластер (737). Предположение о EOF.
/dmesg.txt
Размер файла 131072 байтов, длина цепочки кластеров больше 131072 байтов.
Обрезка файла до 131072 байтов.
Метка тома 'EV3' хранится в корневом каталоге и метка 'EV3' хранится в загрузочном секторе и отличаются.
1) Копировать метку тома из корневого каталога в загрузочный сектор
2) Копировать метку из загрузочного сектора в корневой каталог
[12?q]?
Любая помощь будет принята с благодарностью.
Ответ или решение
Для решения вопроса о загрузке .uf2 файлов проекта на EV3 Lego Brick через USB-кабель в Linux (Debian/Ubuntu), необходимо рассмотреть теоретическую часть, практическое применение и шаги по устранению обнаруженных проблем.
Теория
Lego Mindstorms EV3 — это программируемая система, которая позволяет пользователям создавать и управлять роботизированными моделями. Приобретая популярность среди образовательных учреждений и любителей робототехники, она предлагает разнообразные возможности программирования, включая использование языков, таких как блоки кода.
EV3 можно подключить к компьютеру через USB-кабель и использовать стандартное файловое управление для загрузки и управления файлами на устройстве. Однако, как показывает ваш случай, иногда возникают проблемы с распознаванием и правильной монтировкой устройства в системе на базе Linux.
Файловая система EV3, как правило, форматируется в FAT, что делает совместимость с ОС Windows легкой. Однако в Linux могут возникать определенные трудности, как, например, ошибки монтировки и изменения файловой системы в режим "только чтение".
Пример
В вашем случае устройство изначально не монтировалось, но после обновления прошивки проблема монтировки решилась, хотя возникли новые ошибки файловой системы, которые влияют на возможность записи файлов. Используя команду dmesg
, вы обнаружили ошибки, связанные с файловой системой "FAT-fs", которые привели к ее изменению в режим "только чтение".
Применение
Для решения проблемы на практике, предлагаем следующий подход:
-
Проверка правильности монтировки устройства:
- Убедитесь, что устройство корректно монтируется. Используйте утилиты, такие как
mount
иlsblk
, чтобы проверить, как система распознает устройство. - Проверьте, правильно ли устанавливается точка монтирования. Используйте
sudo mount /dev/sda /mnt/ev3
(нужно заменить /dev/sda и /mnt/ev3 на ваши действительные значения) для монтировки вручную, если это необходимо.
- Убедитесь, что устройство корректно монтируется. Используйте утилиты, такие как
-
Исправление ошибок файловой системы:
- Прежде чем исправлять ошибки файловой системы с помощью
fsck
, важно создать резервную копию всех данных, чтобы избежать потери данных. - Вы можете рискнуть устранением ошибок, так как наличие свободных кластеров и неправильное совпадение метки носителя (volume label) — это ошибки, которые fsck обычно может исправить без обнуления данных. Выполнение команд
fsck.fat
иfsck.vfat
приведет к предложению выбрать одно из действий (1 или 2). Можно смело выбрать вариант, который скорее всего исправит метку (обратитесь к документации fsck для получения более детальной информации и тонкой настройки).
- Прежде чем исправлять ошибки файловой системы с помощью
-
Обновление программного обеспечения и драйверов:
- Проверьте наличие обновлений для вашей операционной системы и драйверов. Обновление системы может устранить ошибки связей в ядре Linux, отвечающих за работу с USB-устройствами.
-
Инициализация подключения EV3:
- Убедитесь в использовании самого последнего программного обеспечения, предоставленного Lego для работы с Mindstorms EV3, даже если это означает использование open-source решений, совместимых с Linux, как альтернатива официальным.
-
Дополнительные меры:
- Если устройство все равно монтируется как "только для чтения", попробуйте выполнить перезагрузку устройства и повторно попробовать его смонтировать.
- Используйте другой USB-порт или кабель, так как проблемы могут быть связаны и с физическим подключением.
Следуя этим шагам, вы сможете не только диагностировать и устранить проблему монтировки Lego EV3, но и обеспечить стабильную и функциональную среду для программирования и загрузки файлов на устройство.