Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Linux для zynq7000
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
sheynmanyu
Здравствуйте!
Я новичок как в Linux, так и в мире FPGA.
Помогите, пожалуйста, с выбором Linux для ZYNQ 7000.
Нашла несколько возможных вариантов: PetaLinux, Xilinx Zynq Linux, Yocto, Xillinux. Никак не могу разобраться, чем же они друг от друга отличаются?
В моем проекте Linux нужен для контроля за состоянием системы (запись в логи информации о температуре, ошибках, нештатных ситуациях) и для передачи информации по сети Ethernet (файлов, для чего планируется поднять FTP сервер). Возможно, прошивка PL (хотелось бы иметь возможность подключить драйвера для Devcfg). Как таковой real time system на данном этапе не нужно, поэтому в эту сторону я не смотрела.
Что удалось выяснить (поправьте, если я неправильно поняла):
xillinux - полновесная ОС с графическим интерфейсом (похоже, избыточна).
Xilinx Zynq Linux - интересная сборка для ZedBoard. Включает в себя Telnet, SSH, WebServer, FTP. Не включает по умолчанию драйвер для Devcfg (можно ли его самостоятельно добавить?)
Про Yocto и Petalinux не понимаю.
g700
Это Yocto и Petalinux дистрибутивы.
А с чего вы будете загружаться ? Просто если с SD, то можно взять Debian и у вас будут apt-get и прочие радости жизни.
Devcfg его нужно включать при сборке ядра или отдельным драйвером собирать.
Alexey_pashinov
Для того, чтобы запустить linux на zynq вам необходимо иметь следующее:
1. Загрузчик boot.bin (включает в себя fsbl + файл прошивки логики (если имеется) + u-boot)
2. Файл дерева устройств .dts
3. Ядро ос linux
4. rootfs

Petalinux - это система сборки от xilinx, которая позволит вам получить все эти файлы (так же в ней парой команд можно добавлять свои модули и приложения, выбирать необходимые модули для ядра и пакеты для включения в rootfs)

C помощью buildroot или yocto можно собирать ядро и rootfs, а для сборки загрузчика и dts можно скачать с git'a u-boot-xlnx и device-tree-compiler и собирать их самому парой-тройкой команд (хотя эти системы сборки могут вроде и загрузчик с dts собрать, но по моему мнению собирать самому попроще будет)

Используя готовые дистрибутивы вы столкнетесь с проблемой добавления собственных пакетов и модулей в дистрибутив. А если у вас должно быть что то свое в логике то такой вариант точно не подойдет.

PFC_ALVARO_BUSTOS_BENAYAS - это руководство, которое поможет вам многое прояснить по поводу того, как запустить linux на zynq с помощью buidlroot (еще один ресурс могу попозже кинуть, не могу пока вспомнить)
sheynmanyu
Цитата(g700 @ Jul 8 2017, 19:29) *
А с чего вы будете загружаться ? Просто если с SD, то можно взять Debian и у вас будут apt-get и прочие радости жизни.
Devcfg его нужно включать при сборке ядра или отдельным драйвером собирать.

Спасибо за ответ!
С SD-карты. Debian? На сайте xilinx я не заметила, что можно Debian использовать. Есть ли ссылочка на tutorial? Debian для ARM Cortex-A9 (ZYNQ 7000).

Цитата(Alexey_pashinov @ Jul 8 2017, 21:35) *
PFC_ALVARO_BUSTOS_BENAYAS - это руководство, которое поможет вам многое прояснить по поводу того, как запустить linux на zynq с помощью buidlroot (еще один ресурс могу попозже кинуть, не могу пока вспомнить)

Спасибо за ответ! Уже читаю руководство, кое-что проясняется. Жду ссылку на другой ресурс sm.gif
GriXa
Неплохие материалы для освоения Зинки в целом и Линукса в нем:
http://www.googoolia.com/wp/2014/10/29/les...m-host-of-zynq/

https://embeddedcentric.com/zynq-training-course/
https://embeddedcentric.com/embedded-operating-systems/
И еще немножко тут:
https://forums.xilinx.com/t5/Xcell-Daily-Bl...ded/ba-p/651297

dm.pogrebnoy
Пошаговый подъем Petalinux
http://svenand.blogdrive.com/archive/160.html#.WWYNC4TyhaQ
g700
Сборка rootfs возмите отсюда https://habrahabr.ru/company/metrotek/blog/235707/
На SD нужно создать раздел с rootfs выглядить sd будет так, как на картинке.

1 - загрузочный ( fat )
2 - rootfs ( etx4 )
Как разворачивать rootfs на SD сказано в сылке выше.
Так же еще необходимо добавить в uboot-env:
bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
Не забудте указать ту файловую систему, которая у вас в данном примере etx4. И проверьте, что uboot будет читать uboot-env.
R6L-025
Для Ваших целей, возможно, избыточен, но неплох arm archlinux. Из преимуществ - хорошая wiki по этому дистрибутиву, и дружественность онного. Я именно на нем останоивлся. Тут выложен уже готовый rootfs
https://archlinuxarm.org/platforms/armv7/xilinx/zedboard.
sheynmanyu
Спасибо огроменное! Вот только делаю в соответствии с:
Цитата(GriXa @ Jul 12 2017, 13:41) *
Неплохие материалы для освоения Зинки в целом и Линукса в нем:
http://www.googoolia.com/wp/2014/10/29/les...m-host-of-zynq/

Но мне никак не удается создать zynq_zed в папке u-boot-xlnx/include/configs/ crying.gif
Про кросскомпилятор я Ubuntu сказала:
$bash export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
Про Arm тоже:
$bash export ARCH=arm
Ввожу
$bash make zynq_zed_config
После ввода этой команды терминал выдает сообщение
#
# configuration written to .config
#

Перехожу в папку u-boot-xlnx/include/configs... и не вижу zynq_zed.h
sheynmanyu
Спасибо! Но только мне пока для ZedBoard нужен Linux. В учебно-тренировочных целях. А дальше я планирую под другую плату линукс собирать. То есть готовый дистрибутив мне не подходит.
Цитата(R6L-025 @ Jul 13 2017, 23:54) *
Для Ваших целей, возможно, избыточен, но неплох arm archlinux. Из преимуществ - хорошая wiki по этому дистрибутиву, и дружественность онного. Я именно на нем останоивлся. Тут выложен уже готовый rootfs
https://archlinuxarm.org/platforms/armv7/xilinx/zedboard.
GriXa
Цитата(sheynmanyu @ Jul 14 2017, 11:28) *
Перехожу в папку u-boot-xlnx/include/configs... и не вижу zynq_zed.h

К сожалению, помочь разобраться не могу. Волею судеб Линукс и Зедборд лежат на полке. Их место занял Лэттис и PCIE.
toshas
Лучше всего смотрите в сторону petalinux, только он имеет какую-никакую, но оффициальную поддержку от Xilinx.
В последних версиях (2017.*) Yocto инструментария включается в него все больше и больше.
Petalinux позволяет генерировать dts и прочее на базе проекта Vivado, все расписано в мануале.
Для Zedboard есть bsp, можно скачать с сайта Xilinx.
Главное подобрать свежие доки, были отличия при сборке версий 2013-2014, 2015-2016 и линейки 2017.
Быстрый старт можно освоить здесь ( https://github.com/Digilent/petalinux-bsps/...ide-for-Arty-Z7 ) , проект мне кажется на Zedboard портировать не сложно.
sheynmanyu
Собрала... Запустила. Спасибо всем за советы и ссылки.
Возникла проблема с сохранением файлов. Хочу сохранять файлы после выключения питания платы.

Образ файловой системы качала отсюда http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs. Перепаковала, чтобы он нормально воспринимался u-boot. Попробовала после загрузки создать текстовый файл, сохранить его и перезагрузиться. После перезхагрузки моего файла уже не было.

При загрузке линукса в терминал выводится:
RAMDISK: gzip image found at block 0
mmc0: new high speed SDHC card at address 0007
mmcblk0: mmc0:0007 SD04G 3.71 GiB
mmcblk0: p1 p2
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs warning (device ram0): ext4_update_dynamic_rev:749: updating to rev 1 because of new feature flag, running e2fsck is recommended
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 1:0.
Starting rcS...
++ Mounting filesystem
mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory
mount: mounting /dev/mmcblk0 on /mnt failed: No such file or directory

Help...
dm.pogrebnoy
Мой недолгий линуксовый опыт подсказывает, что rootfs нужно не в рамдиске разворачивать, а на SD карте держать. Тогда и файлы будут сохранятся. U-BOOTу нужно сказать, что корневая файловая система лежит на SD.
sheynmanyu
Цитата(dm.pogrebnoy @ Jul 20 2017, 17:25) *
Мой недолгий линуксовый опыт подсказывает, что rootfs нужно не в рамдиске разворачивать, а на SD карте держать. Тогда и файлы будут сохранятся. U-BOOTу нужно сказать, что корневая файловая система лежит на SD.

А как это сделать? Я пока не нашла... crying.gif
AVR
Цитата(dm.pogrebnoy @ Jul 20 2017, 17:25) *
Мой недолгий линуксовый опыт подсказывает, что rootfs нужно не в рамдиске разворачивать, а на SD карте держать. Тогда и файлы будут сохранятся

Мда, этот опыт в самом деле недолгий, и подсказывает он "вредные советы" wink.gif

Автору темы: система из рамдиска прекрасно позволяет монтировать прочие носители в режиме записи.
Допустим, есть загрузочная флэшка, и в первом разделе лежит образ u-boot, device tree файл и ядро + ramdisk-образ корневой_фс (причем ramdisk можно даже засунуть в само ядро, это штатная возможность ядра Linux, я так делал много раз). Вот второй раздел может содержать уже более сложную ФС и ее то и можно монтировать в режиме записи.
sheynmanyu
Цитата(AVR @ Jul 21 2017, 09:52) *
Автору темы: система из рамдиска прекрасно позволяет монтировать прочие носители в режиме записи.
Допустим, есть загрузочная флэшка, и в первом разделе лежит образ u-boot, device tree файл и ядро + ramdisk-образ корневой_фс (причем ramdisk можно даже засунуть в само ядро, это штатная возможность ядра Linux, я так делал много раз). Вот второй раздел может содержать уже более сложную ФС и ее то и можно монтировать в режиме записи.

"Сделано, мой капитан!" (с) мои школьники
Заработало! rolleyes.gif

Теперь созрел новый вопрос. Приложение под линукс на zynq можно написать в SDK. При этом SDK может ли стоять на машине с Windows? Или только машина с Unix?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.