реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> udev rules & init script на Petalinux 2018
sheynmanyu
сообщение Jul 3 2018, 12:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-07-17
Пользователь №: 97 975



Здравствуйте!
Есть плата Zedboard, для которой собран Petalinux 2018.1.
Настройки сети, указанные при petalinux-config, почему-то не позволяют поднять сеть. Приходится вручную прописывать
Код
ifconfig eth0 down
ifconfig eth0 inet ... up
route add default gw ...
после чего появляется соединение.
Создала с помощью команды petalinux-create -t apps --template install -n myapp-init --enable приложение. Как в ug1144 написано, изменила myapp-init.bb файл, добавив в том числе
Код
inherit update-rc.d
INITSCRIPT_NAME = "myapp-init"
INITSCRIPT_PARAMS = "start 99 S ."

Но приложение запускается сразу после монтирования SD карточки, и в результате я получаю сообщение, что IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready.
Как изменить myapp-init.bb файл (может, что-то еще?), чтобы мой скрипт запускался, когда eth0 будет готов?
2. В PL части у меня есть 2 блока, с которыми планирую работать через драйвер uio. Они почти идентичные, только один работает на прием, а другой на передачу. Для них я создала udev правила
Код
KERNEL=="uio*", ATTRS{label}=="mm2s", SYMLINK+="mm2s", MODE="0666"
KERNEL=="uio*", ATTRS{label}=="s2mm", SYMLINK+="s2mm", MODE="0666"

Как мне добиться запуска этих правил при загрузке Petalinux? Просто копирование на SD карту в соответствующую папку не работает - надо править init скрипты. И как-то потом инициировать их запуск.
Подскажите, пожалуйста!

Сообщение отредактировал sheynmanyu - Jul 3 2018, 13:55
Go to the top of the page
 
+Quote Post
sheynmanyu
сообщение Jul 3 2018, 15:06
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-07-17
Пользователь №: 97 975



C udev rule разобралась так:
Создаем install прирложение с помощью команды petalinux-create -t apps --template install -n 95-local.rules --enable
Правим файл 95-local.rules.bb
Код
S = "${WORKDIR}"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
do_install() {
         install -d ${D}/${sysconfdir}/udev/rules.d
         install -m 0755 ${S}/95-local.rules ${D}/${sysconfdir}/udev/rules.d
}
FILES_${PN} += "${sysconfdir}/*"

и сам файл скрипта 95-local.rules, записав в него желаемые udev rules. (Кстати, ATTRS{label} у него не существует. пришлось поменять.)
После этого собираем петалинукс, например, с помощью petalinux-build -c rootfs & petalinux-build -x package. Копируем обновленные файлы на SD карту, загружаемся... И все работает.
А вот с запуском myinit все еще зависаю. Как ему прописать, чтобы он запускался после появления надписи (в процессе загрузки)
Код
INIT: Entering runlevel: 5                                                                                                            
Configuring network interfaces... udhcpc (v1.24.1) started                                                                            
Sending discover...                                                                                                                  
Sending discover...                                                                                                                  
macb e000b000.ethernet eth0: link up (1000/Full)


Сообщение отредактировал sheynmanyu - Jul 3 2018, 15:08
Go to the top of the page
 
+Quote Post
sheynmanyu
сообщение Jul 4 2018, 10:39
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-07-17
Пользователь №: 97 975



По 1 вопросу: меняем файл myapp-init.bb
Код
INITSCRIPT_PARAMS = "start 87 5 ."

После чего скрипт запустился тогда, когда это было нужно.
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 00:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016