お前ら全員、こっぱミトコンドリア!

06/28()

§ きょうはでみおくんと

東白川までの予定。ローソン関山田にて昼 (12:55)
東白川着いた (14:34)

- 広告 -


06/15(月)

§ [books] ほんや

自由書房鷺山店にて

トランジスタ技術 2020年7月

自由書房鷺山店閉店につき、取り置き分最終回
ここに来たのが1992年でそこからずっと取り置きをお願いしてきた。 まさかねえ、わしの引退より先に自由書房が引退するとは。 さて、CQ出版直の年間購読でも検討しますか

04/22(水)

§ Delegate on NetBSD current 2020

まだ delegate 使ってるんですか〜?
はい、すいません。

てなわけで、delegate 使ってるんですが、httpsのための pkgsrc の openssl の 1.0系が切られてしまって 1.1系のみになりました。 なぜ system 側のopensslを使わないかというと、 system側が1.1系になってライブラリロードに失敗するからで、 このままでは delegate を動かすのに困る状況です。

いろいろ見て回りますと、 libressl は openssl1.0からのフォークで、そのままでいけるんじゃね? 淡い期待をもっての投入です。

libressl pkgsrc の PLIST を見ると、普通にインストールした場合 /usr/pkg/libressl/〜 にインストールされるので、 libressl と openssl 同居ができるような気がしていたんですが、だめでした。 lib/pkgconfig/〜 がぶつかっています。 やりたいことはわかるんだけど、同居できそうでできないので惜しい。
ということで、pkgsrc openssl は deinstall です。

libressl を使用するにあたって、pkgconfig とか使わずに、直接指定しちゃいます。 前回 の gnu++98 を変更
#!/bin/sh
gcc -std=gnu++98 -I/usr/pkg/libressl/include -L/usr/pkg/libressl/lib "$@"
実際に動作させてみると、 delegateはlibresslをライブラリとして必要なエントリが揃ってない。ということでsslライブラリとして使ってくれません。 結果は残念なことになりました。

しかたがないのでパッチ投入です。
パッチはこんな感じで
--- filters/sslway.c.orig       2014-06-02 12:06:16.000000000 +0900
+++ filters/sslway.c    2020-03-25 19:13:57.820947325 +0900
@@ -310,8 +310,8 @@

  SSL_METHOD *SSLv2_server_method(); /*OPT(0)*/
  SSL_METHOD *SSLv2_client_method(); /*OPT(0)*/
-SSL_METHOD *SSLv3_server_method();
-SSL_METHOD *SSLv3_client_method();
+SSL_METHOD *SSLv3_server_method(); /*OPT(0)*/
+SSL_METHOD *SSLv3_client_method(); /*OPT(0)*/
  SSL_METHOD *SSLv23_server_method();
  SSL_METHOD *SSLv23_client_method();
  SSL_METHOD *TLSv1_server_method();
なにをやってるかといいますと、delegate はスタブテーブルを作って、dlopenでライブラリをオープンしてエントリを 取得してはテーブルを埋めていく。という作業をするのですが、そのときに /*OPT(0)*/指定があると、 エントリを得られなくても可とする。実行時に呼ばれたらexit(エラー); ということを前処理プログラムでやっているので、 opensslからlibresslで無くなったエントリ SSLv3_server_method(), SSLv3_client_method() がなくても可とする ように変更しました。
delegateの起動オプションによっては、この無くなったエントリを使うこともあるので起動オプションには気をつけてください。 普通は使わないオプションだと思います。

ここまでやって、あとは今まで通りdelegateをビルドして
あとは

前回作った起動スクリプトも変更しておきます
mkdir /var/spool/delegate-nobody/
mkdir /var/spool/delegate-nobody/lib/
ln -sf /usr/pkg/lib/libcrypto.so /var/spool/delegate-nobody/lib/libcrypto.so
ln -sf /usr/pkg/lib/libssl.so /var/spool/delegate-nobody/lib/libssl.so
...
mkdir /var/spool/delegate-nobody/
mkdir /var/spool/delegate-nobody/lib/
ln -sf /usr/pkg/libressl/lib/libcrypto.so /var/spool/delegate-nobody/lib/libcrypto.so
ln -sf /usr/pkg/libressl/lib/libssl.so /var/spool/delegate-nobody/lib/libssl.so
...
こんな感じでlibresslを使うようにします。

とりあえずhttpsも動いているようです。 opensslも見てみたんですが、libresslよりはパッチ大きくなりそうなので libresslと付き合っていこうかなと。

12/11(水)

§ [ham] さくっと NanoVNA ファームアップデート

某方面では、NanoVNAが人気なのですが、この ファーム が頻繁にアップデートされてます。
自分でソースからビルドしたいよね。したいでしょう。したいに決まってるじゃないですか。
ホスト? FreeBSDでやりたいよね。やりたいでしょう。やりたいに決まってるじゃないですか。
というわけで FreeBSD から NanoVNA のファームアップデートをします。

ビルドツールパッケージ

まず必要なものは
  • git
  • gcc-arm-embedded
  • gmake
  • dfu-util
  • sudo
ルート権限での作業です。
# pkg install git gcc-arm-embedded gmake dfu-util sudo
で、パッケージ経由でインストールします。 dfu-util は実行時に root権限が必要ですので、sudoもインストールしておきます。 sudoのインストール後、/usr/local/etc/sudoers は、 適当に変更して使用するアカウントで sudo できるようにしておいてください。

ソース取得

sudo できるアカウントでソース取得からファーム書き込みまで行います。
さくっとソース取得します。
% git clone https://github.com/ttrftech/NanoVNA.git
% cd NanoVNA
% git submodule update --init --recursive

ビルド

ソース取得から続きます。
クロスコンパイラ arm-gcc をPATHに追加する。gmake を使用する。
のを目的として、armmake.sh を作成します。
% ee armmake.sh
内容は
#!/bin/sh
PATH=/usr/local/gcc-arm-embedded/bin:$PATH gmake $*
こんな感じで
作成後は
% chmod +x armamke.sh
を忘れないように

さくっとビルドしましょう
% ./armmake.sh

NanoVNAをDFUモードにする

まず確認です。 初期バージョンファームウェアでなければ、メニューからDFUモードに入れます
"CONFIG" - "→DFU" - "RESET AND ENTER DFU"

このメニュー項目があれば、ラクチンです。
USBケーブルで、PC-NanoVNAを接続して、 メニューを利用してDFUモードにします。

メニューに DFUモード項目がなければ初期バージョンです。
この場合は、
電源をオフにします。
P1コネクタのパターンにジャンパを用意します。
ジャンパ
こんな感じでP1コネクタをショートさせます。
この状態で電源を投入して、画面が真っ白ならDFUモードになっています。一旦電源を切りましょう。
USBケーブルで、PC-NanoVNAを接続して、NanoVNAの電源を入れます。

NanoVNA にファーム書き込み

さくっと書き込みましょう。
% sudo ./armmake.sh flash
です。
書き込めましたか?
再起動には電源の入れ直しが必要かもしれません。 ジャンパした場合には電源投入まえにジャンパをはずしてください。

起動したNanoVNA のメニューから
"CONFIG" - "VERSION"
でバージョンを確認しましょう
% git describe --tags
で表示される文字列がバージョン番号になります。
以上、さくっとビルド準備からファーム書き込みまで

11/17()

§ きょうはでみおくんと

お茶を買いに東白川まで来た (10:44)

以上、5 日分です。

早起き生活
Powered by 早起き生活

こりゅう こんな顔で出ています
twitter id は a_rin

Powered by hns-2.10-beta9, HyperNikkiSystem Project

archives

~a.rin/ にもどる
こんな感じ?