「ゼロから作るディープラーニング2」の書評を追加しました。
気ままな技術者生活から人生について考える
「ゼロから作るディープラーニング2」の書評を追加しました。
Ultra96 は mini DisplayPort 端子なので、テレビに映したいと思い、パッシブ系の変換ケーブルを買ってきた。
違うメーカーのケーブル 2本買ってみたが、どちらもダメだった。どうやら Ultra96 のビデオ出力はデュアルモードがサポートされていない模様。
もちろん、Display Port への変換ケーブルは機能するので、DP 付きのモニタを使えばよいのだが、10インチ位のディスプレイは HDMI しかサポートしていなかったりする。
仕方がないので、HDMI モニタはラズパイ用にします。
Ultra96 ボードを Vivado 2018.2 および PetaLinux 2018.2 から dhcp クライアントとして wlan1 を使用する場合のメモ書きです。
Ultra96 には WiFi チップが乗っていますが、デフォルトでは phy の存在までしか認識されず、wlanX インタフェースを明示的に作成する必要があるようです。
そこで、Ultra96 の wlan1 をWiFiルータに接続するための手順をまとめてみました。
ちなみに、2018.3 にはどうも必要なファイルが足りていないらしく、initramfs からのブートすら出来ませんでした。
petalinux-build --boot --force --fsbl zynqmp_fsbl.elf --fpga system.bit --pmufw pmufw.elf --u-boot
で BOOT.BIN を構築する。
mount -t vfat /dev/sdX1 /mnt
として、/mnt に FAT32 パーティションをマウントする。
cp -fp BOOT.BIN image.ub /mnt
umount /mnt dd if=rootfs.ext4 of=/dev/sdX2 bs=1M
これも時間がかかるので気長に待つ。
e2fsck -f /dev/sdX2 resize2fs /dev/sdX2
以上のように作成した SD カードを Ultra96 に挿して起動すると、wpa_supplicant.conf で指定した WiFi ルータにつながるようになります。
最後に、rootfs.ext4 を編集するスクリプトを掲載します。SSID, PSK にはお手持ちの環境に合った値を入れて下さい。
#!/bin/bash mount -t ext4 -o loop rootfs.ext4 /mnt cat <<EOF >/mnt/etc/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 network={ key_mgmt=WPA-PSK ssid="" #psk="" psk= } EOF sed 's/wlan0/wlan1/g' /mnt/etc/network/interfaces > '/mnt/etc/network/interfaces .XXX' mv '/mnt/etc/network/interfaces.XXX' /mnt/etc/network/interfaces cat <<EOF >/mnt/etc/init.d/ultra96-wlan1.sh #! /bin/sh ### BEGIN INIT INFO # Provides: Ultra96 wlan1 interface # Required-Start: # Required-Stop: # Default-Start:S # Default-Stop: # Short-Description: attaches Ultra96 wlan1 # Description: attaches Ultra96 wlan1 ### END INIT INFO DESC="ultra96-power-button.sh powers off the board when the power button is pushed" case "\$1" in start) echo -n "Start Ultra96 wlan1" iw phy phy0 interface add wlan1 type managed echo "." ;; stop) echo -n "Stop Ultra96 wlan1" ifconfig wlan1 down ;; *) echo "Usage: /etc/init.d/ultra96-wlan1.sh {start|stop}" exit 1 esac exit 0 EOF chmod +x /mnt/etc/init.d/ultra96-wlan1.sh rm -f /mnt/etc/rcS.d/S99ultra96-wlan1.sh pushd /mnt/etc/rcS.d ln -s ../init.d/ultra96-wlan1.sh S99ultra96-wlan1.sh popd umount /mnt
本当に久々の記事更新です。
既知の問題かも知れませんが、散々ぐぐっても出てこなかったので、ここにメモしておきます。
petalinux 2018.2 を使い、ZYBO (Z7 ではなくて古いボード) の eth0 を使おうとしたところ
macb e000b000.ethernet eth0: unable to generate target frequency: 125000000 Hz
という謎のエラーが出て PHY チップと通信できない問題が発生。
ぐぐってもよくわからず、最終的に
https://github.com/wzab/Z-turn-examples/blob/master/README.md
を読んで気づきました。Vivado 2018.2 では ZYNQ-7000 の ENET0 のクロックソースがデフォルトで External になっていることを…。
記事にある通り、IO PLL に設定して hdf ファイルを再作成し、petalinux を再コンパイルしたところ、問題なくリンクが上がりました。
(petalinux 設定はこのサイトを見て実行しました。また、eth0 ポートは GbE に挿してください。)
あとはジャマな IPv6 設定を
echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
として無効化し、udhcpc を再起動すると IPv4 アドレスが無事、家庭内ルータから取得できました。
minosysScript 実装中です。
今日までに代入、++、– –、比較演算子、+, * を実装しました。
今週は地道に演算子の実装を行う予定です。
今週中に演算子全ての実装が終わると思いましたが、
演算子の数が思ったよりも多く、ちょっと無理そうです。
実行エンジンを中途半端に実装して1年間
ほったらかしていた minosys-scrypt ですが、
1年ぶりに実装を追加することになりました。
minosys-script.git を取得するすると最近の
ソースコードが入手できます。
とりあえず、今週末までには class, package
関連以外の内容を追加したいと考えております。
毎日コミット予定なので、言語が出来ていく様子が
リアルタイムで見られるかも?!
minosys-script は最終的には www サーバ
として稼働して www に特化した処理(html の
ダウンロードや画像ファイルの range 転送)
を実装する予定ですので、乞うご期待。
何年先になるか分かりませんが。
開業届を税務署に出してきました。
知人には今年の年賀状でフリーランス宣言していましたが、
これで、名実ともにフリーランスということになりました。
当面は請負で食べていくつもりですが、技術コンサルや
製品開発のお手伝いまで間口を広げられればいいなと思っています。
皆様、よろしくお願いします。
お世話になった支援施設に自作PCを進呈することになりました。
スペックは Core i7 860 と初代 Core i7 ですが、Windows10 を
載せてみると意外に快適に動きました。
このPC、今は懐かしい東芝の SpursEngine が乗っていて、
ビデオ圧縮の速さは今なおダントツです。
(ビデオカードは nVidia GT640なのでCUDAも動きますが、
非力です)
その他、HDDが2TB×2発乗っていたりして、完全にビデオ編集向け
仕様なのですが、きっとオーバースペックだろうなあ。
TWELite を変更して2週間経過したが、電源電圧は3.08Vと
3V台をキープしている。このまま行けば、最低1か月は
持つのではないだろうか。
変更したのは TWELite デバイスと繰り返し精度を「低」に
にしたことだが、繰り返し精度が消費電力に影響するとは
思えないので、やはり購入したデバイスが外れだったと
考えるのが妥当だろう。
PWM, ADC, OUTポート、I2C, SIO と次々に切っていっても
電池を消費してしまうため、試しに SHT31 だけを電池に
つないで放置してみた。
2時間経過しても電源電圧に変化なしだったので、
これは TWELite 側の問題だなと確信し、デバイスを別の
ものに変えてみた。
3時間経過後、電源電圧は降下していていなかったので、
おそらく予想が当たっていたのではないだろうか。