電気回路/zynq/自動起動の設定 のバックアップソース(No.4)
更新[[電気回路/zynq]] * 電源投入後に初期化&アプリケーションを自動実行する [#v9672a1a] - FPGA ロジックのプログラム - 各種 dtso のデバイスツリーへの組み込み - 初期化スクリプトの実行 - アプリケーションの実行 をしたい。 ** 目次 [#seefcc4e] #contents * /etc/init.d と /etc/rc5.d を使う [#rfb55e43] この際 systemd を使ってみようかしら、とも思ったけれど - https://dev.classmethod.jp/cloud/aws/service-control-use-systemd/ - https://qiita.com/ledmonster/items/5f2e1633d4124cb978fe 何だかややこしいので Sysvinit でお茶を濁すことにする。 LANG:console $ runlevel N 5 通常起動時の runlevel は 5 なので、/etc/init.d に起動スクリプトを置いて、 そこへのシンボリックリンクを /etc/rc5.d に作っておく。 /etc/init.d/fpga : https://github.com/osamutake/zynq-utils/tree/master/src/fpga を用意し、 LANG:console $ ln -s /etc/init.d/fpga /etc/rc5.d/S00fpga することで、起動時に - /boot/design*.bin を fpga-program する - /boot/dtso/*.dtso を dto する - /boot/fpga_init.d/* に start を付けて実行する を行えるようになった。 後は、 /boot/fpga_init.d/10_gpio1 LANG:sh #!/bin/sh do_start () { if [ ! -e /sys/class/gpio/gpiochip901 ]; then echo "ERROR: /sys/class/gpio/gpiochip901 not found." exit 1 fi for n in 901 902 903 904 905 do echo $n > /sys/class/gpio/export done } do_stop () { if [ ! -e /sys/class/gpio/gpiochip901 ]; then echo "ERROR: /sys/class/gpio/gpiochip901 not found." exit 1 fi for n in 901 902 903 904 905 do echo $n > /sys/class/gpio/unexport done } case $1 in start) do_start ;; stop) do_stop ;; *) echo "Usage: $0 {start|stop}" exit 2 ;; esac /boot/fpga_init.d/80_lcd-show-ip LANG:sh #!/bin/sh do_start () { lcd-show-ip } do_stop () { true } case $1 in start) do_start ;; stop) do_stop ;; *) echo "Usage: $0 {start|stop}" exit 2 ;; esac のようにして起動スクリプトを追加していけばいい。 * コメント・質問 [#g1487be2] #article_kcaptcha
Counter: 2183 (from 2010/06/03),
today: 3,
yesterday: 0