Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx linux + SDK + dma driver
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
sheynmanyu
Здравствуйте!
Можно ли в Xilinx SDK (v2018.1) написать приложение для работы с AXI-DMA для ОС Linux? Как настроить SDK, чтобы не появлялось вопросов рядом с #include<something.h>? И как прописать пути для того, чтобы суметь подключить linux/dmaengine.h (при компиляции приложения пишет, что нет такого файла)?
Собрала для zedboard linux_xlnx с Xilinx git, запустила, все работает. В SDK указала репозитории для device-tree-xlnx и linux_xlnx. Хочу написать приложение, которое позволяло бы инициировать прием данных через AXI-DMA. В моем device-tree прописан блок DMA и указаны драйверы в файле pl.dtsi:
Код
/ {
    amba_pl: amba_pl {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "simple-bus";
        ranges;
        axi_dma_0: dma@40400000 {
            #dma-cells = <1>;
            clock-names = "s_axi_lite_aclk m_axi_sg_aclk m_axi_s2mm_aclk";
            clocks = <&clkc 15>, <&clkc 15>;
            compatible = "xlnx,axi-dma-1.00.a";
            interrupt-names = "s2mm_introut";
            interrupt-parent = <&intc>;
            interrupts = <0 30 4>;
            reg = <0x40400000 0x10000>;
            xlnx,addrwidth = <0x20>;
            dma-channel@40400030 {
                compatible = "xlnx,axi-dma-s2mm-channel";
                dma-channels = <0x1>;
                interrupts = <0 30 4>;
                xlnx,datawidth = <0x20>;
                xlnx,device-id = <0x0>;
            };
        };
    };
};

В system-top.dts файл pl.dtsi подключен. SDK выдает вот такую ошибку (см картинку). И смущает еще одно - вопросы рядом с include.

1. Можно ли вообще написать в SDK приложение, работающее с axi-dma драйвером? Или надо как-то отдельно писать свой драйвер, который будет обращаться к axi-dma драйверу, и к которому сможет обращаться мое приложение?
2. Как убрать вопросы рядом с #include?
_Ivan_33
Вообще я на своей плате смотрел dmesg и драйвер дма в петалинуксе вроде как присутствует
Вроде в TRM был описан пример как можно с дма работать

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

Очень интересен результат! Юлия, отпишитесь, пожалуйста, как это все поднимите
sheynmanyu
Цитата(_Ivan_33 @ Apr 27 2018, 09:29) *
Вообще я на своей плате смотрел dmesg и драйвер дма в петалинуксе вроде как присутствует
Вроде в TRM был описан пример как можно с дма работать

Очень интересен результат! Юлия, отпишитесь, пожалуйста, как это все поднимите

C Petalinux 2018 у меня возникли сложности: в SDK изменился компилятор для 32-разрядных arm. Дождалась, когда выйдет petalinux 2018.1, изменила в настройках ядра префикс для компилятора на arm-linux-gnueabihf-... В качестве префикса для кросс-компилятора указала его же: export CROSS_COMPILE=arm-linux-gnueabihf- и все собралось! smile3046.gif
sheynmanyu
Цитата(_Ivan_33 @ Apr 27 2018, 09:29) *
Вообще я на своей плате смотрел dmesg и драйвер дма в петалинуксе вроде как присутствует


Пока столкнулась вот с такой проблемой:
root@zedboard_dma_linux:~# dmesg | grep dma
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
ERROR: could not get clock /amba_pl/dma@40400000:m_axi_s2mm_aclk(2)
xilinx-vdma 40400000.dma: Xilinx AXI DMA Engine Driver Probed!!
Как устранить ошибку?
Jury093
Цитата(sheynmanyu @ May 7 2018, 19:36) *
Пока столкнулась вот с такой проблемой:
ERROR: could not get clock /amba_pl/dma@40400000:m_axi_s2mm_aclk(2)

попробуйте переписать с таким синтаксисом:
clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
еще можно гуглю скормить строку ошибки или чуть проще "xilinx dma 40400000", там куча solved попадается..
sheynmanyu
Цитата(Jury093 @ May 8 2018, 00:02) *
попробуйте переписать с таким синтаксисом:
clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
еще можно гуглю скормить строку ошибки или чуть проще "xilinx dma 40400000", там куча solved попадается..

Эмм, а в каком файле мне это переписать? Просто у меня сейчас petalinux, и я абсолютно без понятия, откуда он берет файлы, на основе которых потом генерирует systеm.dtb. Более того, в приведенном выше pl.dtsi меня смущает число каналов и число clk. Канала указано 3, а clk всего два. Во всех примерах, которые мне встречались, эти числа совпадают: каналов 3 и clk три. Более того, в дизайне режим SG вообще не включен. Откуда он его взял в pl.dtsi?
Да, сейчас pl.dtsi выглядит так:
Код
/ {
    amba_pl: amba_pl {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "simple-bus";
        ranges;
        axi_dma_0: dma@40400000 {
            #dma-cells = <1>;
            clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_s2mm_aclk";
            clocks = <&clkc 15>, <&clkc 15>;
            compatible = "xlnx,axi-dma-1.00.a";
            interrupt-names = "s2mm_introut";
            interrupt-parent = <&intc>;
            interrupts = <0 30 4>;
            reg = <0x40400000 0x10000>;
            xlnx,addrwidth = <0x20>;
            dma-channel@40400030 {
                compatible = "xlnx,axi-dma-s2mm-channel";
                dma-channels = <0x1>;
                interrupts = <0 30 4>;
                xlnx,datawidth = <0x20>;
                xlnx,device-id = <0x0>;
            };
        };
    };
};

Интересный вопрос: а для нормальной работы dmaengine SG должен быть включен? Есть у кого-нибудь под рукой ссылка на рабочий дизайн?
Jury093
Цитата(sheynmanyu @ May 8 2018, 14:19) *
Эмм, а в каком файле мне это переписать? Просто у меня сейчас petalinux, и я абсолютно без понятия, откуда он берет файлы, на основе которых потом генерирует systеm.dtb. Более того, в приведенном выше pl.dtsi меня смущает число каналов и число clk. Канала указано 3, а clk всего два. Во всех примерах, которые мне встречались, эти числа совпадают: каналов 3 и clk три. Более того, в дизайне режим SG вообще не включен. Откуда он его взял в pl.dtsi?
Да, сейчас pl.dtsi выглядит так:

понятно, просто в вашем исходном сообщение был фрагмент dts, собственно правка к нему и относилась..
судя по тому же инету вам надо поправить на 3, типа
Код
clocks = <&clkc 15>, <&clkc 15>, <&clkc 15>;

и пересобрать либо отдельно dtb, либо (как у вас там устроено не знаю) ядро в комплекте с dtb
запросто может быть, что для вашего ядра этот драйвер broken, тут либо локальную доку шерстить, или в инете искать инфу/патчи

откуда берет? скорее всего в недрах пакета есть архив или ветка с шаблонами, оттуда и генерятся исходные dtsi, второй вариант - тянется стандартное ядро и на него накладывают патчи и создаются dtsi
попробуйте все же изменить pl.dtsi и обновить сборку, желательно без полной пересборки..
sheynmanyu
Цитата(Jury093 @ May 9 2018, 00:44) *
откуда берет? скорее всего в недрах пакета есть архив или ветка с шаблонами, оттуда и генерятся исходные dtsi, второй вариант - тянется стандартное ядро и на него накладывают патчи и создаются dtsi
попробуйте все же изменить pl.dtsi и обновить сборку, желательно без полной пересборки..

я пробовала обновлять: не помогло. Банально не собралось. но когда я в дизайне разрешила scatter-gather (он, в общем-то, мне не очень нужен. Но раз драйвер просит...) - все собралось и заработало. И правильно сгенерировались файлы dtsi, и ошибок в dmesg не стало!
Но: не удается запустить на выполнение dmatest.
Правильно ли я понимаю? После ввода команды
Код
root@simple_loop_dma:/sys/module# ls /sys/class/dma
dma0chan0  dma0chan2  dma0chan4  dma0chan6  dma1chan0
dma0chan1  dma0chan3  dma0chan5  dma0chan7  dma1chan1

появляется список dma-каналов. При этом каналы dma0chan* - это DMA PL330, то есть DMA из PS части, а dma1chan* - это AXI-DMA?
В /sys/module/ у меня есть и axidmatest и dmatest. При этом, в соответствии с https://www.kernel.org/doc/html/v4.15/drive...ne/dmatest.html мне удалось запустить на выполнение dmatest с каналом dma0chan*. Но для dma1chan* ничего не выходит. Тест не запускается.
В ответ на команду
Код
root@simple_loop_dma:/# dmesg | grep dma

выводится
Код
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
xilinx-vdma 40400000.dma: Xilinx AXI DMA Engine Driver Probed!

Как проверить работоспособность моего axi dma блока??? Подскажите, плиз!
Jury093
Цитата(sheynmanyu @ May 10 2018, 10:38) *
я пробовала обновлять: не помогло. Банально не собралось. но когда я в дизайне разрешила scatter-gather (он, в общем-то, мне не очень нужен. Но раз драйвер просит...) - все собралось и заработало. И правильно сгенерировались файлы dtsi, и ошибок в dmesg не стало!

так что в результате помогло - коррекция dts или разрешение "scatter-gather"?

Цитата
api/dmaengine/dmatest.html"]https://www.kernel.org/doc/html/v4.15/drive...ne/dmatest.html[/url] мне удалось запустить на выполнение dmatest с каналом dma0chan*. Но для dma1chan* ничего не выходит. Тест не запускается.

а как не запускается? система виснет? в консоль что-нить пишет? натолкайте отладочных printf("я тут step1\n"); в исходник dmatest и попробуйте отловить, где валится софтина в момент работы с dma1chan

Цитата
Как проверить работоспособность моего axi dma блока???

у меня такой системы нет, т.ч. только общие советы:
- проверьте, что необходимые ресурсы и права для dmaXchan присутствуют и одинаковые
- валидность прерываний, адресов блоков регистров
прерывания:
Код
cat /proc/interrupts

блоки регистров
Код
cat /proc/iomem

возможно тут:
http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs
есть что полезное

как наиболее вероятное, раз для канала0 работает, то не прописано или прописано неправильно все тоже для канала1

как версия - там тред с solved:
https://forums.xilinx.com/t5/Embedded-Linux...p/522755/page/6
"Ok, finally I have done it, by copying axi_dma_0 entry to system_user.dtsi changing xlnx,device-id of its second channel to <0x1> and changing "misc_clk_0" in it to "clkc 15"."
sheynmanyu
Как указать petalinux 2018.1, где лежат необходимые библиотеки?
Вот здесь предлагается приложение создавать с помощью Xilinx SDK, но необходимо прописать путь к sysroots/что-то там. Беда в том, что у меня эта папка в проекте пуста, даже после вызова команды petalinux-build -c rootfs. Как прописать пути к linux/delay.h и прочим include? где их вообще искать? 1111493779.gif crying.gif
sheynmanyu
Если сюда еще хоть кто-то заглядывает?..
Нашла в описании команду по созданию папки для SDK:
petalinux-build --sdk
и потом
petalinux-package --sysroot -s|--sdk <custom sdk path> -d|--dir <custom directory path
Есть надежда, что это то, что мне нужно. Но: на выполнение команды petalinux-build --sdk ушло больше 2-х часов! Это ведь что-то ненормальное?
Как сократить время??? ОС - Ubuntu 16.04 LTS на виртуальной машине. Свободного места на диске около 47 ГБ из 100. Petalinux 2018.1.
_Ivan_33
Еще подкрутить параметры виртуалки в сторону увеличения производительности или наконец поставить линукс на нормальный комп
sheynmanyu
Цитата(_Ivan_33 @ May 15 2018, 13:46) *
Еще подкрутить параметры виртуалки в сторону увеличения производительности или наконец поставить линукс на нормальный комп

Эмм... А можно ли не снося убунту подкрутить виртуалку? Оперативка выделена почти вся. Вчера ругалась на нехватку места, но с тех пор я удалила около 6 ГБ...
_Ivan_33
мне кажется что в таких процессах важен процессор
а можешь огласить характеристики своего компа?

и характиристики виртуальки - сколько там выделено ресурсов
sheynmanyu
Цитата(_Ivan_33 @ May 15 2018, 14:43) *
мне кажется что в таких процессах важен процессор
а можешь огласить характеристики своего компа?

и характиристики виртуальки - сколько там выделено ресурсов

Она ругается на оставшееся место на диске. Всего 100 ГБ, до запуска build --sdk оставалось около 30 ГБ. Перед выдачей ошибок система ругнулась на оставшиеся 700 МБ на жестком диске maniac.gif
yulia@yulia-U:~/ZYNQ/xilinx_linux/my_projects/simple_loop/simple_loop_dma$ df -k -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 9734880 0 9734880 0% /dev
tmpfs tmpfs 1952248 9308 1942940 1% /run
/dev/sda1 ext4 80056152 73746076 2220376 98% /
tmpfs tmpfs 9761224 216 9761008 1% /dev/shm
tmpfs tmpfs 5120 4 5116 1% /run/lock
tmpfs tmpfs 9761224 0 9761224 0% /sys/fs/cgroup
VM_Shared_Folder vboxsf 567159508 50101244 517058264 9% /media/sf_VM_Shared_Folder
tmpfs tmpfs 1952248 56 1952192 1% /run/user/1000

И информация о директории с проектом petalinux
yulia@yulia-U:~/ZYNQ/xilinx_linux/my_projects/simple_loop/simple_loop_dma$ du ./build/ -h --max-depth=1
2,6M ./build/cache
1,1G ./build/sstate-cache
192K ./build/conf
4,5G ./build/downloads
740K ./build/misc
16G ./build/tmp
22G ./build/

Что из этого всего можно удалить, но не тратить при этом кучу времени на повторное скачивание при редактировании проекта?
Jury093
Цитата(sheynmanyu @ May 15 2018, 13:50) *
Эмм... А можно ли не снося убунту подкрутить виртуалку? Оперативка выделена почти вся. Вчера ругалась на нехватку места, но с тех пор я удалила около 6 ГБ...

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

обычно производитель пакетов пишет, сколько примерно требуется дискового места, если не хватает 100Г то нарежьте 500Г или 1Т
подобный образом я барахтался собирая андроид, 40Г "съел" за несколько часов

на время сборки повлиять можно по разному - добавить ядер для ВМ, добавить физической оперативки, вынести сборку на более шустрый накопитель, в любом случае это будут неизбежные потери на виртуальность

по "мусору" - гляньте в /var/cache/apt/archives

Цитата(sheynmanyu @ May 15 2018, 13:40) *
Если сюда еще хоть кто-то заглядывает?..

сами прикиньте насколько специфичная тема.. в качестве утешения - у альтеры примерно также и даже было хуже
sheynmanyu
Цитата(Jury093 @ May 15 2018, 19:21) *
обычно производитель пакетов пишет, сколько примерно требуется дискового места, если не хватает 100Г то нарежьте 500Г или 1Т
подобный образом я барахтался собирая андроид, 40Г "съел" за несколько часов

на время сборки повлиять можно по разному - добавить ядер для ВМ, добавить физической оперативки, вынести сборку на более шустрый накопитель, в любом случае это будут неизбежные потери на виртуальность

по "мусору" - гляньте в /var/cache/apt/archives

Спасибо! Завтра попробую!
sheynmanyu
Цитата(Jury093 @ May 15 2018, 19:21) *
сами прикиньте насколько специфичная тема.. в качестве утешения - у альтеры примерно также и даже было хуже

Про специфичную тему: а у Вас сайт https://www.yoctoproject.org/ открывается? Я уже неделю на него зайти не могу. Ни с Chrome, ни с Explorer... crying.gif
Jury093
Цитата(sheynmanyu @ May 17 2018, 14:07) *
Про специфичную тему: а у Вас сайт https://www.yoctoproject.org/ открывается? Я уже неделю на него зайти не могу. Ни с Chrome, ни с Explorer... crying.gif

два раза проверил в течение дня - открывается (win7-64, не самый свежий хром)
а что пишут браузеры? обычный пинг на сайт проходит? из хостовой ОС или гостевой? если из гостевой, то надо смотреть сделан ли проброс через bridge или смотреть настройки локального NAT..
sheynmanyu
Цитата(Jury093 @ May 17 2018, 18:50) *
два раза проверил в течение дня - открывается (win7-64, не самый свежий хром)
а что пишут браузеры? обычный пинг на сайт проходит? из хостовой ОС или гостевой? если из гостевой, то надо смотреть сделан ли проброс через bridge или смотреть настройки локального NAT..

Помог vpn. Ping не пробовала.
Появился новый вопрос: что означают слова
Код
Unable to automatically checkout GIT submodules ' ui/keycodemapdb capstone'.
| If you require use of an alternative GIT binary (for example to
| enable use of a transparent proxy), then please specify it by
| running configure by with the '--with-git' argument. e.g.
|
|  $ ./configure --with-git='tsocks git'
|
| Alternatively you may disable automatic GIT submodule checkout
| with:
|
|  $ ./configure --disable-git-update'
|
| and then manually update submodules prior to running make, with:
|
|  $ scripts/git-sbumodule.sh update  ui/keycodemapdb capstone

И где это все править?
Jury093
Цитата(sheynmanyu @ May 17 2018, 19:02) *
Появился новый вопрос: что означают слова

configure - это обычно скрипт, лежит как правило в корне дерева исходников

в первой строчке configure будет запущен с дополнительными параметрами для git, который будет использовать transparent proxy для доступа к субмодулям
вторая строка запрещает использование для git проверку
третья строка запускает скрипт git-sbumodule.sh для ручного обновления субмодулей перед запуском сборочного make

ЗЫ запустите "./configure --help" там вывалится полная помощь по аргументам. я, как большой нелюбитель командной строки, обычно делаю "./configure --help > config.hlp" - мне так проще..

Цитата(sheynmanyu @ May 17 2018, 19:02) *
И где это все править?

пардон, на вопрос не ответил - это не править, а так запускать надо конфигуратор или скрипты
конфигуратор будет нудить об отсутствующих библиотеках или доконфигурит до конца и сплодит Makefile, после этого можно пробовать команду Make
sheynmanyu
Поставила Ubuntu второй системой с Windows. Поставила petalinux, настроила параллельную сборку проекта - сборка идет супер быстро (по сравнению с тем, что было).
Но, выдает вот такую ошибку и не собирает образы:
Код
ERROR: Could not invoke dnf. Command '/media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/recipe-sysroot-native/usr/bin/dnf -y -c /media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/rootfs/etc/yum.repos.d --repofrompath=oe-repo,/media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/oe-rootfs-repo --installroot=/media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/rootfs --setopt=logdir=/media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/temp --nogpgcheck install bridge-utils pciutils packagegroup-core-boot tcf-agent run-postinsts openssh-sftp-server packagegroup-petalinux-utils shadow kernel-modules udev-extraconf packagegroup-core-ssh-dropbear packagegroup-petalinux-openamp canutils mtd-utils base-passwd' returned 1:
Added oe-repo repo from /media/sheynmanyu/0E1AD4571AD43E01/petalinux_proj/DMA_zedboard_test/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/petalinux-user-image/1.0-r0/oe-rootfs-repo
Last metadata expiration check: 0:00:01 ago on Tue 22 May 2018 05:25:58 PM UTC.
Dependencies resolved.
...
Running transaction
  Preparing        :                                                        1/1
  Installing       : update-alternatives-opkg-0.3.5-r0.cortexa9hf_neo     1/190
  Installing       : busybox-1.24.1-r0.cortexa9hf_neon                    2/190
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device
  Installing       : libc6-2.26-r0.cortexa9hf_neon                        3/190
  Running scriptlet: libc6-2.26-r0.cortexa9hf_neon                        3/190
error: busybox-1.24.1-r0.cortexa9hf_neon: install failed
  Installing       : kernel-4.14.0-xilinx-4.14+xilinx+v2018.1+git999-     4/190
  Running scriptlet: kernel-4.14.0-xilinx-4.14+xilinx+v2018.1+git999-     4/190
  Installing       : libpam-1.3.0-r5.cortexa9hf_neon                      5/190
  Running scriptlet: libpam-1.3.0-r5.cortexa9hf_neon                      5/190
  Installing       : libuuid1-2.30-r0.cortexa9hf_neon                     6/190
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device
  Installing       : libblkid1-2.30-r0.cortexa9hf_neon                    7/190
error: libuuid1-2.30-r0.cortexa9hf_neon: install failed
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device
  Installing       : libsmartcols1-2.30-r0.cortexa9hf_neon                8/190
error: libblkid1-2.30-r0.cortexa9hf_neon: install failed
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device
  Installing       : libmount1-2.30-r0.cortexa9hf_neon                    9/190
error: libsmartcols1-2.30-r0.cortexa9hf_neon: install failed
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device
  Installing       : libtinfo5-6.0+20170715-r0.cortexa9hf_neon           10/190
  Running scriptlet: libtinfo5-6.0+20170715-r0.cortexa9hf_neon           10/190
error: libmount1-2.30-r0.cortexa9hf_neon: install failed
...

Failed:
  base-files.plnx_zynq7 3.0.14-r89                                              
  busybox.cortexa9hf_neon 1.24.1-r0                                            
  eudev.cortexa9hf_neon 3.2.2-r0                                                
  initscripts-functions.cortexa9hf_neon 1.0-r155                                
  libblkid1.cortexa9hf_neon 2.30-r0                                            
  libfdisk1.cortexa9hf_neon 2.30-r0                                            
  libmount1.cortexa9hf_neon 2.30-r0                                            
  libsmartcols1.cortexa9hf_neon 2.30-r0                                        
  libudev1.cortexa9hf_neon 3.2.2-r0                                            
  libuuid1.cortexa9hf_neon 2.30-r0                                              
  shadow.cortexa9hf_neon 4.2.1-r0                                              
  smartmontools.cortexa9hf_neon 6.5-r0                                          
  util-linux.cortexa9hf_neon 2.30-r0                                            
  util-linux-su.cortexa9hf_neon 2.30-r0                                        

Error: Transaction failed
Jury093
Цитата(sheynmanyu @ May 22 2018, 17:54) *
Код
ERROR: Could not invoke dnf.

судя по инету, не хватает dnf, попробуйте для старта просто в консоли команду dnf
dnf это пакетный менеджер для Федора, в Дебьян аналогом будет apt-get
если в вашей убунте его нет, то надо поискать как поставить
примерно как по ссылке:
https://unix.stackexchange.com/questions/30...l-dnf-on-debian

Цитата
error: unpacking of archive failed: cpio: read failed - Inappropriate ioctl for device

это похоже на недокачанные/битые архивы
найдите первый битый в списке в дереве проекта, вероятно он упал в download и переложите временно в другое место, пересборка должна вытащить недостающий архив - если целый, то повторяете для остальных, если битый, то тут надо разбираться
sheynmanyu
Цитата(Jury093 @ May 23 2018, 01:14) *
судя по инету, не хватает dnf, попробуйте для старта просто в консоли команду dnf
это похоже на недокачанные/битые архивы
найдите первый битый в списке в дереве проекта, вероятно он упал в download и переложите временно в другое место, пересборка должна вытащить недостающий архив - если целый, то повторяете для остальных, если битый, то тут надо разбираться

Похоже, что 1) почему-то вчера, хотя мне память говорит об обратном, не был корректно установлен gcc-multilib
2) Я зря понадеялась, что раз из-под убунты я вижу файлы, созданные ранее под Windows с дисками ntfs, то на них можно расположить петалинуксовский проект.
После перенесения директории проекта в /home/, повторного клонирования всех репозиториев в тот же /home/... все собралось.
Спасибо огромное за советы!
Jury093
Цитата(sheynmanyu @ May 23 2018, 13:24) *
После перенесения директории проекта в /home/, повторного клонирования всех репозиториев в тот же /home/... все собралось.
Спасибо огромное за советы!

ну мои советы были весьма широкополосны и не всегда в тему, впрочем если чем помог, то я рад..
успехов в борьбе с petalinux и dma!
sheynmanyu
Вот в SDK удобно перемещаться между библиотечными файлами, подключаемыми в проект. А модули драйверов для петалинукса создаются с помощью petalinux-create -t modules ... и дальше их редактируешь в текстовом редакторе. Есть ли приличный способ посмотреть функции, вызываемые из модуля, с помощью автоматического переключения между файлами, как в SDK? Есть ли пакет для разработки модулей? А то я смотрю на код, хочу уточнить, что та или иная функция делает, и... ииии? у меня gedit! laughing.gif
doom13
Цитата(sheynmanyu @ May 25 2018, 18:04) *
Вот в SDK удобно перемещаться между библиотечными файлами, подключаемыми в проект. А модули драйверов для петалинукса создаются с помощью petalinux-create -t modules ... и дальше их редактируешь в текстовом редакторе. Есть ли приличный способ посмотреть функции, вызываемые из модуля, с помощью автоматического переключения между файлами, как в SDK? Есть ли пакет для разработки модулей? А то я смотрю на код, хочу уточнить, что та или иная функция делает, и... ииии? у меня gedit! laughing.gif

LinK+ IDE
sheynmanyu
Удивительное дело! ОС - Ubuntu 16.04.4, идет второй системой наравне с Windows. Каждый день при первой загрузке компьютера не находит gcc-multilib. После установки день можно работать, на следующий день история повторяется.
Кто-нибудь с таким сталкивался? wacko.gif
Jury093
Цитата(sheynmanyu @ May 29 2018, 10:39) *
Удивительное дело! ОС - Ubuntu 16.04.4, идет второй системой наравне с Windows. Каждый день при первой загрузке компьютера не находит gcc-multilib. После установки день можно работать, на следующий день история повторяется.
Кто-нибудь с таким сталкивался? wacko.gif

а попробуйте так:
1. после очередной загрузки и установки дайте команду:
Код
printenv

и смотрите содержимое переменной PATH на предмет пути до вашего gcc-multilib
2. ребутаете комп и еще раз printenv - вероятно там пути до gcc уже не будет
3. находите и открываете файл ~/.bashrc - файл настроек для текущего пользователя
4. дописываете туда типа такого
Код
export PATH=$PATH:/home/jury093/src/nuc976.pi/arm_linux_4.3/usr/bin

где home-jury-bla-bla меняете на путь до gcc из пункта №1
5. сохраняете файл
6. без перезагрузки стартуете новую сессию пользователя и набрав в консоли "arm" потом 2 раза TAB должны увидеть подсказку для всех arm-*
7. всё, теперь ежедневные установки больше будут не нужны..

возможно потребуется покрутить под свои реалии эту переменную:
Код
export CROSS_COMPILE=arm-linux-
sheynmanyu
Цитата(doom13 @ May 28 2018, 10:11) *
LinK+ IDE

Спасибо за совет! Тогда такой вопрос... Чтобы можно было собрать модуль для линукса, запущенного на арм процессоре, необходимо правильно прописать все пути к библиотекам ядра. Где они находятся в linux-xlnx или в директориях opt/petalinux/. Petalinux 2018.1. Ткните меня, пожалуйста, носом в описание, tutorial, manual. Уже вторую неделю пытаюсь правиль прописать пути к include linux/smth и верно задать кросс-компилятор - не выходит crying.gif
_Ivan_33
а если попробовать поиск по этой папке чтоб найти папку linux с исходниками?
sheynmanyu
Цитата(_Ivan_33 @ May 31 2018, 12:09) *
а если попробовать поиск по этой папке чтоб найти папку linux с исходниками?

А если попробовать поиск, то вылазит сразу огромное количество .h файлов с одинаковыми названиями и расположенных в разных папках. И я не понимаю, к каким именно файлам прописывать пути? И второй вопрос - как задать зависимости для настройки ядра. Ну подгружу я этот модуль, а где ему искать необходимые библиотеки уже в памяти конечного устройства с запущенным petalinux?
Выглядит, конечно, как "У меня есть кусок кремния, медная проволока и паяльник. Решил начать с простого - спаять процессор", но все же sm.gif))
_Ivan_33
по первому варианту может изначально попробовать найти папку линукс и там уже прикинуть где она настоящая,а где нет

по второму вопросу у меня коллега запускал приложение с фразой в консоли содержащей LD_LIBRARY_PATH
но я так понимаю речь идет о модуле ядра, а не о приложении?

На степике stepik.org есть курс основы программирование под линукс и разработка модулей под линукс, первый я завершаю, а второй скоро начну, посмотри - вдруг белые пятна удастся закрыть
sheynmanyu
Всем привет!
И спасибо за помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.