はじめに
OpenWRT/LEDEのNASサーバーにLINE Notify環境を構築して、
サーバーからの通知を受け取る様にした際のTipsです。
と言っても、例えばRaspberryPiの様な、新しくて安定している環境では発生しない、
古い環境でしか発生しない様なTipsです。
ちなみに、私が使っている環境は以下です。
LEDE 17.01.4 / linux kernel 4.4.92 ですので、
それなりに古い・チープな環境です。
環境構築
基本的に curl が有ればLINE Notifyは使えますが、
ca-bundleも必要となります。
root@LEDE:~# opkg update
root@LEDE:~# opkg install curl
root@LEDE:~# opkg install ca-bundle
エラー1
curl: (27) PRNG seeding failed
どうも、curlのバージョンが古い事にに依存するバグの様です。
LEDE 17.01.4 としてinstallされる curl_7.52.1-10 では解決しない為、
openwrt 18.06 まで該当するパッケージのみをアップデートする事にします。
http://downloads.openwrt.org/releases/18.06.8/packages/mipsel_24kc/base/curl_7.60.0-4_mipsel_24kc.ipk
http://downloads.openwrt.org/releases/18.06.8/packages/mipsel_24kc/base/libcurl_7.60.0-4_mipsel_24kc.ipk
上記を opkg install で直接指定するか、
ローカルにダウンロードしてきて、ファイル指定でinstallすればOKです。
エラー2
Error loading shared library libmbedcrypto.so.1: No such file or directory
上手くリンクが作られていない様です。
エラー1の対策で、本来のディストリビューションパッケージ外のバージョンを導入した為、
整合性が取れなくなっているのかもしれません。
取り敢えず、該当しそうなライブラリを探してみます。
root@LEDE:/overlay/upper/usr/lib/opkg# ls -all /usr/lib/ | grep libmbedcrypto
lrwxrwxrwx 1 root root 18 Feb 24 11:49 libmbedcrypto.so -> libmbedcrypto.so.0
lrwxrwxrwx 1 root root 23 Feb 24 11:49 libmbedcrypto.so.0 -> libmbedcrypto.so.2.7.10
-rwxr-xr-x 1 root root 222455 Jun 19 2019 libmbedcrypto.so.2.7.10
古いバージョンのリンクで大丈夫か不安ですが、
リンクを貼ってみます。
ln -s /usr/lib/libmbedcrypto.so.2.7.10 /usr/lib/libmbedcrypto.so.1
結果
root@LEDE:/overlay/upper/usr/lib/opkg# curl -X POST -H 'Authorization: Bearer XXXX' -F "message=test" https://notify-api.line.me/api/notify
{"status":200,"message":"ok"}
上手く動きました。
依存関係の問題を無理やり解決して動いたので、運が良かった様に思います。