28-Sep-2019
[イマドキのネットワークプログラミングって]

IPv6対応も意識しないとねということで、例のMMDVMHost(POCSAG)のフリをするコードを直しました。とはいえ、MMDVMHostに限らずDAPNETGatewayその他全てIPv4べったりなコードだったりするので、テスト用のコードだけIPv6対応する意味あるの?ではあるのですが。

でも今後を考えると、あの手のソフトウェアはIPv6対応した方がいいんじゃないかなーと個人的には思うので、何かの折に改造してみたいです。手を出せずにそのまま放置の可能性が高いですが…59.35kg(20:50)

23-Sep-2019
[どうも]

DAPNETGatewayがOpenBSD上だと時折落ちる問題を解決すべく先日作ったMMDVMHostのフリをするコードと組み合わせてDAPNETからやってくるメッセージを見ていたのですが…どうもROT1エンコードされたメッセージは特定のRIC(宛先)だけに対してのように見えます。

DAPNET-CoreのSkyperProtocol.javaを見るのが早そうですが、とりあえずRIC 4512, 4520については決め打ちでデコードして、他に何かが出てきたらその時はその時で対処すれば良いでしょうか。

とはいえ、forum.pistar.ukではROT1エンコードが掛かっている→これは暗号通信だから違法だ!(意訳)という発言をしている人もおり、日本でもこの部分をうるさく言う人がいるのではないかと少し心配しています。

D-STARガイドラインの3-3 運用システムでは「用いる電文仕様(文字コード、音声符号化、静止画符号化、映像符号化、文書ソフト、グラフィックスソフト、ハイパーテキスト、等)は、国際標準または国内標準あるいは広く公開されていて、容易に入手可能な仕様でなければならない」と書かれているので、何か言われたとしても「ソース読め」で解決するのではないかと個人的には思うのですが。あくまでも一個人の解釈ですけど。

とりあえず、例のMMDVMHostのフリをするコードをいじってROT1のデコーダを追加したものを置いときますしかし、DAPNETからのメッセージを眺めるならコード書くよりもPi-Starを立ち上げた方がお手軽だったのでは…と、http://pi-star.mw0mwz.co.uk/で公開されているPi-Starのダッシュボードを見て思うのでした。まる。

ESCAPE R3のクランク/BBを交換しようと早速試してみたのですが、クランクが固すぎて外せなかったので終了です。ここしばらくは特に異音無く動いているので、調子が悪くなったらまた考えます。58.80kg(17:10)

06-Oct-2019補足:MMDVMHostのフリをするコード、GitHubへ移しました。今後はこちらで更新します。

16-Sep-2019
[テスト用に]

DAPNETGatewayでDAPNETから受け取ったメッセージを、MMDVMHostでPOCSAGが送信できるようなフリをするだけ(実際には送信しない)、というコードを書いてみました。ネットワーク周りのプログラムをきちんと分かっている人ならこの程度のものを書くのにそんなに時間がかからないのでしょうが、何しろやったことのない分野なので130行程度を書くのに半日以上の時間を使っています。元々のプログラミング能力も低いですし。

DAPNETから何を受け取って、MMDVMHostに何を送信させているか、これについてはDAPNETGatewayやMMDVMHostのログを見れば分かります。分かるのです…が、冗長過ぎてメッセージだけざっと追いかけたいという目的では不便です。

tdapnetgateway.png

そんな訳で、最初はDAPNETGateway〜MMDVMHost間のUDPパケットを横取りしてMMDVMHostが送信することを邪魔せずにメッセージを表示させるようなものを作ろうとしていたのですが、MMDVMHostのidle/busyステータスをきちんと渡さないとDAPNETGatewayがメッセージを寄越してくれない(ということに気付くのにも時間がかかった)のでこんな代物になりました。

tfakemmdvmhost.png

とりあえず動いてはいるようですが、メッセージによってはROT1エンコードが掛かって読めない物もあり、これはどうにかならないかと考えています。openSPOT2だと自動的にデコードを行うようですが、デコードの要/不要をどうやって判断しているのでしょうかね…?58.80kg(17:40)

17-Sep-2019補足:DAPNETGatewayを予め起動しておかないと全く動かない(プログラムの起動順序に制約がある)問題を直しています。旧版はこちら

07-Sep-2019
[ESCAPE R3(2015)・3年経過]

3年も乗っているとグリップがねっちょりしてくるので3週間くらい前に交換しました。TIOGA E Grip (HBG15700)を付けてもらいましたが、店に置いてあったのがそれだったからという理由です。

今日の仕事場からの帰り、左足のペダルを踏み込むとギシギシと異音がすることに気がつきました。ペダルからではなさそうだとなると、BBでしょうかね。交換用のBBは以前購入したDriveLine ROMAXに付いていたFIRST components MP-60があるので、クランクごと交換しちゃえば良さそうであります。

とはいえ、アーレンキーとBBを外す工具が無いという状態なので(クランクを外す工具はある)、まずはここからですね…早速発注を出すことにします。57.85kg(20:45)

03-Sep-2019
[そろそろ]

ARMv8な基板に手を出してみる時期かなと思いまして、OrangePi One Plusを発注してみました。近所の郵便局までは来ているようですので、明日受け取れれば良いのですが…という訳で、とりあえずU-bootのビルドを試みてみます。

いつもならOpenBSD上で試すのですが、toolchainの都合によりDebianで試します。apt-get install gcc-aarch64-linux-gnuとして、


wget ftp://ftp.denx.de/pub/u-boot/u-boot-2019.07.tar.bz2
tar xpf u-boot-2019.07.tar.bz2
cd u-boot-2019.07
make CROSS_COMPILE=aarch64-linux-gnu- orangepi_one_plus_defconfig
make CROSS_COMPILE=aarch64-linux-gnu-

これでおしまい。なお、bison, flex, swig, python-devも忘れずにapt-get installしておく必要があります。

linux-sunxi.orgのBootable SD cardに書かれている手順、得られたu-boot-sunxi-with-spl.binをSDカードの8kByte目から書き込む方法がARMv8の時代でも通用するかどうかは今のところ分かりません。届いてから試すことになります。

Using OpenBSD 6.5 arm64 (aarch64) on QEMUという記事があったので、リンクだけ張っておきます。時間があったらこれも試してみたいです。58.60kg(22:15)

04-Sep-2019補足:届いたので早速試してみましたが、上記の手順では不足しています。詳細はU-bootのboard/sunxi/README.sunxi64を見てほしいのですが、ATF(ARM Trusted Firmware)を以下の手順でビルドし、得られたbl31.binの所在をexport BL31=/path/to/bl31.binで設定してからU-bootのconfig/makeを行う必要があります。


git clone https://github.com/ARM-software/arm-trusted-firmware.git
cd arm-trusted-firmware
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 bl31

bl31.binはbuild/sun50i_h6/release/bl31.binに生成されますが、ATFのmake時にDEBUG=1を追加しているとbuild/sun50i_h6/debug/bl31.binになります。

SDカードの作成についてはARMv7なAllwinnerと変わりません。OrangePi One Plusで起動したU-bootのログを置いときます