follow me

open-vm-tools: bump to 10.3.10

OpenWrtのopen-vm-toolsパッケージのバージョンを10.3.10に上げました。
open-vm-tools: bump to 10.3.10

OpenWrt的には大きな変化は無いと思われますが、open-vm-tools本家に追従しておくのは大切な事です。
snapshotビルドはまだ新しくなっていませんが、連休が終わる頃には更新されているでしょう。

使ってくれている方がどれほど居るのかわかりませんが、ESXiで使うときに便利になりました。
vmdkイメージには最初から入る様にならないかしら?というのが目下課題です。
follow me

open-vm-toolsがopkgでサクッと入る様になってました

OpenWrtでopen-vm-toolsが使える様にパッケージを作った後、本家のsnapshotビルドがこけてたのですが直しました。(既に直してました。)

全パッケージが有効状態でビルドされるので、libudevが入っているのを忘れてました。
libudevを参照しているモジュールはOpenWrtで使うのに無くても問題ないと判断し、サクッと削除(--enable-resolutionkms=no)して対応完了。
無事、本家のsnapshotビルドでパッケージも生成されているので、自分でビルドしなくてもopkg installで導入できる様になりました。
19.0xリリースがまだなので、次の安定版リリースには間に合った感じですかね。
https://downloads.openwrt.org/snapshots/packages/x86_64/packages/
follow me

open-vm-toolsがopenwrt/packagesにマージされました


open-vm-toolsパッケージが、openwrt/packagesにマージされたので、少し待てばopkg install open-vm-toolsで幸せになれます。
open-vm-tools: Add new package open-vm-tools

ESXiでシャットダウンが普通にできるのは魅力あると思うんですよね。
それ以外の機能が嬉しいのかわかりませんが。
snapshotビルドに含まれるのが楽しみです。
あと、19.03のブランチが切られる前に入れれて良かったです。
follow me

Pythonのhashlibが使えない

Pythonのhashlibが使えない。
OpenWrtではまったから残しておこう。

複数Python入れてたり、クロスビルド環境として一時環境作ってたりすると起こるケースがままありそう。
普通にOpenSSLのライブラリが見える位置にいるのかという話ではあるのだが、Pythonをやらない人からすると面倒くさいのです。
しかも、nodeのビルドをしたいだけなのに、Pythonのhashlibとかではまるとか考えないのですよ。

ちなみに、OpenWrtでビルドできなかったときのメッセージはこうなってました。
follow me

LinkIt 7688のビルド手順。(Ubuntu 18.04環境で)

Ubuntu 18.04環境でのLinkIt 7688ファームウェアのビルドについて。
LinkIt 7688は、TELECの関係上Chaos Calmer (15.05.x)を利用する訳ですが、Chaos CalmerはUtuntu 18.04環境でのビルドが出来ません。

実はChaos Calmer (15.05.x)だけの話しではなく、ながらくUbuntu 18.04でのビルドはmasterでもできなかった。(いつのまにかビルドできるようになったけど、おそらくパッケージによってはビルド失敗すると思われる。)
Ubuntu 16.04.x環境を用意すればいいのですが、それが面倒だという人が出てきてもおかしくないので、パッチを作ってみました。
ここまで変更入れないとビルドできないとか予想してませんでした。
基本バージョン構成はChaos Calmer (15.05.1)と同じに保ちたかったのですが、nodeだけ少しバージョン上がってしまいます。

用意したパッチは17個になります。
feedsで追加するパッケージ関係でのパッチが5個入っています。
feedsは、pythonとnodeに関するパッチです。(これらのパッケージを利用しないのであれば、苦労することはなかったのですが。。。)

では、各パッチと、ビルド手順を記載していきます。
patches.tar.gz
follow me

LinkIt 7688用にmtk-linkit-miniパッケージを用意する


LinkIt 7688、デフォルトでビルドされてしまうmtk-linkitパッケージの依存関係の関係で馬鹿でかいイメージになるのをなんとかしたい。
でも、外せないパッケージは存在する。
なので整理しました。
mtk-linkit-miniパッケージ。
ROM容量の節約だけでなく、ビルド時間の短縮にもなります。
勿論、wps要らないとか、リセット系動作とか自分で定義しなおせるなら、自分で書いてしまった方がもっと節約できる。
とりあえず、手軽にコンパクト化するものという位置づけです。

mtk-linkit-miniパッケージは、mtk-linkitパッケージに対し以下パッチを当てて作成します。
feeedsなので、追加してからパッチを当ててください。(全体の手順は下に記載していきます。
Add-mtk-linkit-mini.patch

手順の前に、どれぐらいサイズとビルド時間が変わるのかを出しておこうかと思います。
バイナリサイズ ビルド時間
mtk-linkit 21,505kb 85m10.838s
mtk-linkit-mini 3,329kb 44m16.293s
バイナリサイズは比較とかのレベルではなくなります。
32MB Flashを積んでいるので、大して気にする必要も無いかもしれませんが、焼きの時間等も考えれば小さいに越したことはありません。(不要なものを動かすメモリも勿体ないですし。)
ビルド時間は、ソースコードのダウンロード時間は含まず、make -j1の結果なので、ダウンロード時間も含めると差はさらに大きくなる。
follow me

LinkIt 7688のビルド手順。(Chaos Calmer 15.05.1)

仕方ないから過去枠埋めたったるわ。
本記事はルーターハックAdvent Calendar 2018 12日目の記事です。

LinkIt 7688が登場した当時は問題なかったのだが、OpenWrtからforkしたLEDEが登場し、OpenWrtに再結合したり、多くのイベントがあったのもありでLinkIt 7688の公式ドキュメントのビルド手順ではビルドできなくなってしまっている。
だれかがメンテしている様子もないので、解る人しか使ってないのだろうなと予想できる訳ですが。
このLinkIt 7688、実はTELEC取ってるんですよね。

もちろん、シール貼り付けれる人は限られてるのですが。。。
写真のはSeeed株式会社からTELECシール付きでお借りしたものになります。
また、TELECに反しない様にファームをビルドする手順となっています。
Seeed株式会社からなんとかTELEC刻印付きで販売してくれないものか。という話はあるが、なかなかロット数が稼げないと難しいのですかね。
みんなで数千個頼んで刻印入れて貰おうよ。とか人集め始めませんかね?


ちなみに今現在、chaos_calmer-15.05.1をビルドしようとすると以下の様なエラーとなってしまう。
mkdir -p /home/dev/chaos_calmer-15.05.1/dl
echo "Checking out files from the git repository..."; mkdir -p /home/dev/chaos_calmer-15.05.1/tmp/dl && cd /home/dev/chaos_calmer-15.05.1/tmp/dl && rm -rf libmraa-0.8.0 && [ \! -d libmraa-0.8.0 ] && git clone https://github.com/intel-iot-devkit/mraa.git libmraa-0.8.0 --recursive && (cd libmraa-0.8.0 && git checkout 70600dece4138b0c0dbaff42f57828f1559cd840 && git submodule update) && echo "Packing checkout..." && rm -rf libmraa-0.8.0/.git &&      tar czf /home/dev/chaos_calmer-15.05.1/tmp/dl/libmraa-0.8.0-70600dece4138b0c0dbaff42f57828f1559cd840.tar.gz libmraa-0.8.0 && mv /home/dev/chaos_calmer-15.05.1/tmp/dl/libmraa-0.8.0-70600dece4138b0c0dbaff42f57828f1559cd840.tar.gz /home/dev/chaos_calmer-15.05.1/dl/ && rm -rf libmraa-0.8.0;
Checking out files from the git repository...
Cloning into 'libmraa-0.8.0'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11918 (delta 5), reused 5 (delta 4), pack-reused 11905
Receiving objects: 100% (11918/11918), 3.27 MiB | 1.22 MiB/s, done.
Resolving deltas: 100% (8349/8349), done.
Checking connectivity... done.
Submodule 'doxygen2jsdoc' (https://github.com/intel-iot-devkit/doxygen2jsdoc.git) registered for path 'doxygen2jsdoc'
Submodule 'doxyport' (https://github.com/intel-iot-devkit/doxyport.git) registered for path 'doxyport'
Cloning into 'doxygen2jsdoc'...
remote: Enumerating objects: 112, done.
remote: Total 112 (delta 0), reused 0 (delta 0), pack-reused 112
Receiving objects: 100% (112/112), 359.18 KiB | 0 bytes/s, done.
Resolving deltas: 100% (35/35), done.
Checking connectivity... done.
Submodule path 'doxygen2jsdoc': checked out '67cad692720982ac3cbd99bf1c3421edc69b08f9'
Cloning into 'doxyport'...
remote: Enumerating objects: 55, done.
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55
Unpacking objects: 100% (55/55), done.
Checking connectivity... done.
Submodule path 'doxyport': checked out 'db3e1a6eb8677d3166d90d82c3068689803ce547'
warning: unable to rmdir doxyport: Directory not empty
M       doxygen2jsdoc
Note: checking out '70600dece4138b0c0dbaff42f57828f1559cd840'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 70600de... mraa: update to version 0.8.0
fatal: reference is not a tree: 9cc90b7976252b2d14b7956230c5870097e1f008
Unable to checkout '9cc90b7976252b2d14b7956230c5870097e1f008' in submodule path 'doxygen2jsdoc'
make[3]: *** [/home/dev/chaos_calmer-15.05.1/dl/libmraa-0.8.0-70600dece4138b0c0dbaff42f57828f1559cd840.tar.gz] Error 1
make[3]: Leaving directory `/home/dev/chaos_calmer-15.05.1/feeds/packages/libs/libmraa'
make[2]: *** [package/feeds/packages/libmraa/compile] Error 2
make[2]: Leaving directory `/home/dev/chaos_calmer-15.05.1'
make[1]: *** [/home/dev/chaos_calmer-15.05.1/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/dev/chaos_calmer-15.05.1'
make: *** [world] Error 2
follow me

ApresiaLightGC105-SSがプレゼントで届いた。

アンケート抽選のApresiaLightGC105-SSが当たって届いた。
Apresiaのループ検出したらブザーなるやつですね。
気にはなっていたのです。
が、買う機会は正直なかった。。。

follow me

open-vm-toolsをOpenWrtで使う

ESXiでOpenWrtを使うケースはあると思います。
その際に悲しい思いをした人は多いに違いない。
vmtoolsが無い。というか、glibcではなくmuslがデフォルトのOpenWrtではvmtoolsを入れるのは難しい。(というか入るのか怪しい。
なので、open-vm-toolsパッケージ作りました。
野良パッケージなので、ビルドしてください。
muslで動きますので、パッケージさえビルドすればOpenWrt本家でダウンロードできるイメージにも入ります。
https://github.com/srchack/custom-packages/tree/master/open-vm-tools


ESXi 6.7で動作確認しました。
ネットワーク情報は取れてます。シャットダウン/再起動系も機能しています。
正常に動いているかテストを全パターン試しておきたいが何か方法ないものか。。。
まぁ、OSシャットダウンが一番やりたかったことなので個人的目的は達成してはいるのですが。


ビルドするのが面倒な人用にパッケージ置いときました。
r7332-2163b49でビルドされています。
18.06環境であれば動くでしょう。(依存関係弱いので
open-vm-tools_10.3.0-1_i386_pentium.ipk
open-vm-tools_10.3.0-1_i386_pentium4.ipk
open-vm-tools_10.3.0-1_x86_64.ipk


open-vm-toolsのOpenWrtでのビルドについて、
open-vm-toolsのビルドオプションは、Makefileを見ていただくとおり、ほとんど無効化されています。
ライブラリ依存だったり、デフォルトでOpenWrtには入っていない機能に依存しているものは落としています。
filesディレクトリ以下は、起動スクリプトと設定ファイルです。shutdownはOpenWrtに足りないのでダミーです。
patches以下は、musl対応になります。(なんでlibc判別のための"__MUSL__"って存在しないんですかね?と愚痴ってみる)
musl対応系は、途中まで書きつつOpenEmbedded向けのパッチを見つけたので、ほぼそっちのパッチを調整しただけです。
follow me

PQI Air Penのath79対応

以前、OpenWrtに対応させたのですが、ar71xxはath79に移行される事になったので、どこかで書き直さないといけないわけですがサボってました。
ar71xxは、今のkernelバージョンで終了の様子なので、ath79移行は今後OpenWrtで使えるようにするには必要なことになります。
とりあえず少し古いけど、手元の開発環境でパッチを書いてみた。
r7995-967d646_ath79_pqi-air-pen.patch


ath79対応してみたものの、恩恵を受けないですね。ar9330では正直あまりメリット無いですね。
Kernelでかくなってしまったし、Flash小さいからますますメリット無いですね。


起動ログ貼り付けておきますね。
とりあえず動作問題なさそうなので、最新にパッチ作って送りますかね。