Автоматическая прошивка Zynq и запуск приемника — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
(Автоматическая прошивка ПЛИС)
(Автоматическая прошивка ПЛИС)
Строка 44: Строка 44:
 
Если потребуется обновить ссылки на burnzynq или вообще отказаться от его использования, то выполняем:
 
Если потребуется обновить ссылки на burnzynq или вообще отказаться от его использования, то выполняем:
 
<source lang="bash">update-rc.d burnzynq remove</source>
 
<source lang="bash">update-rc.d burnzynq remove</source>
 +
 +
Выключаем/включаем питание приемника. После загрузки ПЛИС готова к работе.
 +
 +
== receiver аки демон ==
 +
 +
Аналогично пишем скрипт для запуска receiver:
 +
<source lang="bash">
 +
#!/bin/bash
 +
### BEGIN INIT INFO
 +
# Provides:          receiver
 +
# Required-Start:    burnedzynq $local_fs $remote_fs
 +
# Required-Stop:    $local_fs $remote_fs
 +
# Should-Start:     
 +
# Should-Stop:     
 +
# Default-Start:    2 3 4 5
 +
# Default-Stop:      0 1 6
 +
# Short-Description: GNSS receiver firmware
 +
### END INIT INFO
 +
 +
/tmp/receiver
 +
</source>
 +
 +
Делаем исполняемым:
 +
<source lang="bash">chmod +x receiver</source>
 +
 +
Создаем ссылки:
 +
<source lang="bash">
 +
update-rc.d receiver defaults
 +
</source>
 +
 +
Выключаем/включаем питание приемника. Убеждаемся, что приемник отсылает пакеты.
  
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]

Версия 14:14, 16 января 2015

Накопились претензии к степени автоматизации работы с ПНП.

Во-первых, ПЛИС'овская часть Zynq'а шьется через процессор командой типа:

cat /tmp/somz.bit > /dev/xdevcfg

Что приходится исполнять после каждой перезагрузки ящика.

Во-вторых, хотелось бы, чтобы ПНП сразу мог начать работать после подачи питания.

В-третьих, на приемной стороне приходится вручную запускать srns_parse_all, tail и матлабовские скрипты.

Автоматическая прошивка ПЛИС

На ум приходит два способа автоматически прошить ПЛИС при запуске ОС: через cron и через init.d. Т.к. далее воспользуемся init для старта службы receiver, то для единообразия и ПЛИС будем шить так.

В Debian нашего модуля по умолчанию используется второй run-level. Напишем скрипт, который будет выполняться при запуске. Для этого в /etc/init.d создаем файл burnzynq:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          burnedzynq
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      
# Should-Stop:      
# Default-Start:     2
# Default-Stop:      
# Short-Description: Load .bit to Zynq
### END INIT INFO
echo Zynq burning...
cat /tmp/somz.bit > /dev/xdevcfg

Файл делаем исполняемым:

chmod +x burnzynq

Далее добавляем ссылку на него в /etc/rc2.d специальной командой:

update-rc.d burnzynq defaults

Здесь defaults - воспользоваться Default-Start/Default-Stop.

В результате в /etc/rc2.d получаем файл S01burnzynq -> ../init.d/burnzynq.

Если потребуется обновить ссылки на burnzynq или вообще отказаться от его использования, то выполняем:

update-rc.d burnzynq remove

Выключаем/включаем питание приемника. После загрузки ПЛИС готова к работе.

receiver аки демон

Аналогично пишем скрипт для запуска receiver:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          receiver
# Required-Start:    burnedzynq $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      
# Should-Stop:      
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: GNSS receiver firmware
### END INIT INFO

/tmp/receiver

Делаем исполняемым:

chmod +x receiver

Создаем ссылки:

update-rc.d receiver defaults

Выключаем/включаем питание приемника. Убеждаемся, что приемник отсылает пакеты.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты