Author Archives: ganesha

Pop!_OS 20.04 LTSとwpa_supplicant

ひさしぶりにLinuxをたちあげたところなぜかWi-Fiがつながらないという事例がおきたので調べてみました。最初はカーネルが新しすぎてWi-Fiドライバーのすり合わせがうまくいってないのかと考えて旧カーネルでやってみても不具合が治らなかったのでwpa_supplicantを疑ってみました。この件についてはarmbianのTVBOXのときでも別の理由でダウングレードしたので、同じやり方で旧バージョンのBionicのwpa_supplicantにダウングレードしました。 journalctl –since=”2020-11-14 00:00:00″ radius serverはradiusd -Xでデバッグモードで起動しておきます。 前回とほぼおなじなのですが整理して再度掲載しました。これでwpa enterprise(TLS)ができるようになりました。

Posted in Linux | Comments Off on Pop!_OS 20.04 LTSとwpa_supplicant

(再) ELECOM WRC-1167GHBK2-SにOpenWrtをインストール

ELECOM WRC-1167GHBK2-SはOpenWrtのサポートがありますがWi-Fiが使えません。WLANがMediaTek MT7615Dというチップを使っていてそのサポートがないからです。しかしながら最新のSnapshot版では一応ドライバーは導入されておりWi-Fiが使えるようになっていますが、まだ不具合があります。MT7615D一つで2.4Gと5Gが使えるのですが、そのままですとどちらか一つのモードしか使えません。前回、5月にインストールを試してみたのですが、結果は良くありませんでした。今回はその時から改善を期待して再挑戦しました。 OpenWrtのフォーラムで調べてみると設定すれば使えるようです。/etc/config/wirelessを編集します。 設定で大事なことはPhy0が2.4GでPhy1が5Gです。 次にコマンドを実行します。 ip aを実行してWi-Fiデバイスが2つあることを確認します。さらにLuCIのダッシュボードで見てみます。 テストでは一応安定を保ってますが時たまphy1が不安定にあるときがあります。次期安定版では改善していることを期待したいところです。

Posted in OpenWrt | Comments Off on (再) ELECOM WRC-1167GHBK2-SにOpenWrtをインストール

Androidの静的ルーティング

今までOpenWrtやArmbianでネットワーク周りの設定をして、Androidのスマホの設定でどうしてできないものがありました。Andoridには静的ルーティングの設定項目の設定がありません。検索してみると2つほど解決策がありました。一つはsshでログインしてipコマンドで設定する方法です。2つ目はアプリをインストールすることです。 ipコマンドで静的ルーティングする場合 sshサーバをインストールします。いくつかアプリがあるのですが、SSHelperが良さそうだったのでインストールしました。sshコマンドでスマホにログインして、suコマンドでルートになります。ip route add <network> via <IP address>を実行すればできます。特に難しくはないのですが、毎回コマンドを打たなくてはいけないので面倒です。そこでアプリをインストールしてみました。 アプリから設定する場合 AIProuteをダウンロードします。 Androidアプリのソースコードらしいのですが、ビルドしたことがなかったので検索したところ、Android Studioをビルドできることがわかりました。macOSにインストールしたのですが、そう簡単にビルドできず、エラーが出るごとに不足している色々なパッケージをインストールして最終的にエラーが出なくなった時点でビルド完了となります。 https://mega.nz/folder/5fwxTaBI#zFNjDTuB4XVVddMXFCWSJQ

Posted in Android | Comments Off on Androidの静的ルーティング

Buffalo wmr-300のVLAN

ついこの間、ルーターに使っていたTVBOXのemmcが物理的に壊れて再構築することになりました。fsckで修復を試みたのですが、lxcのファイルがかなり壊れて修復不可能だったのでファイルシステムを再構築してクリーンインストールを試みました。ところがしばらくするとファイルシステムがread-onlyになってしましい、syslogにもファイルシステムのエラーが記録されてました。とりあえずはインターネットにつなぐルーターなので、余っているfon2405eで急場を凌ぎました。 同スペックの余っているTVBOXがあるので、それを使うことにしたのですが、元のルーターには複雑な設定になっており、そう簡単には復旧できません。LANポートが一つなのでVLANの設定、firewall、IPフォン用のsiproxd、WiFi用のfreeradiusとsnmpログのcactiと他にTinc、StrongSwan、WireguardのVPNとDDNSの設定と盛りだくさんです。急場凌ぎならfonでもいいのですが、メモリが32MBのため、freeradiusはちょっと無理そうです。そこでwmr-300なのですが64MBのメモリがあるので、バックアップ用のルータとして適任と思われるのですが、一つ問題がありました。OpenWrtの初期値でVLANが使えません。もともとLANポートが1つしかないので必要ないと言えばそれまでですが、MediatekのポピュラーのCPUなのでVLANが使えます。 そこで試行錯誤でVLANを使えるようにしました。fonの時もそうだったのですが、物理的のLANポートを探すことから始めます。物理ポートと違うポートにするとまず繋がりません。VLANを設定するには次の3つのファイルを編集します。 /etc/board.d/02_network: wmr-300-16Mを追加しました。wmr-300-16Mはwmr-300のSPIフラッシュを16MBに換装したものです。 /etc/board.json: VLANのトポロジーを定義しているようです。追加します。 /etc/config/network: VLANの設定です これでVLANが使えるようになりました。

Posted in OpenWrt | Comments Off on Buffalo wmr-300のVLAN

WireGuard with bridge interface?

色々調べてみてもWireGuardはLayer 3なのでTapデバイスは使えない。それゆえブリッジは無理っていう結論なのですが、調べてみるとなんとなくできそうなサイトが見つかりました。 GRE tunneling adds an additional GRE header between the inside and outside IP headers. In theory, GRE could encapsulate any Layer 3 protocol with a valid Ethernet type, unlike IPIP, which can only encapsulate IP. An introduction to … Continue reading

Posted in Linux | Comments Off on WireGuard with bridge interface?

UPDATE: Kindle Weather Display

OpenWeatherMapのHPを見ていたらOne Call APIというのが新設されていて、現在、時間ごと、日付ごとの天気情報のデータを一度にダウンロードできるAPIがありました。今までは3時間ごとの天気情報をマニアックなやり方で日ごとの予測を弾き出していたのですが、このAPIを使えばシンプルなプログラムになります。この際なのでAPIをモジュール化して整理しました。ところが問題があって、すべてのローケーションでOne Call APIが使えるわけではなく、一部データが欠損するということがわかりました。まだ安定して使えないということです。それなので旧バージョンと新バージョンを分けることにしました。One Call APIは降雨予想があったので雲アイコンに載せてみました。

Posted in kindle | Comments Off on UPDATE: Kindle Weather Display

OpenWrt: mac addressの書き換え

数台のfon2405eのSPiフラッシュを載せ替えたまではいいのですが、一つ困った大きな問題があります。同じROMなのでmac addressが同じになってしまい、同時に起動していると通信障害が置きます。arpコマンドでHW addressを見てみればわかるように、同じmac addressだと衝突します。OpenWrtには/config/networkでmac addressのカスタム設定という方法があるのですが、なぜかfonには使えません。そこでフラッシュROMのEEPROM書き換えてmac addressを変えてみます。OpenWrtで予備知識を得られるのでまず目を通して置きます。 https://openwrt.org/docs/guide-user/installation/restore_art_partition https://openwrt.org/docs/guide-developer/mac.address これによると、rt305xの場合は+4なのでhexdumpで確認します。 00 0c 43 30 50 88がralink SDKで作ったEEPROMのmac addressと一致しました。 そこで先頭のmac addressだけ変更することにします。 先頭が変わって01 0c 43 30 50 88になりました。これをmtdに書き込んで再起動します。 確かに変わってるのですが、期待したものと全く違っていました。原因は不明なもののmac addressの変更はこれでできました。

Posted in OpenWrt | Comments Off on OpenWrt: mac addressの書き換え

Kindle: timelitのdark mode

Kindle weather displayとKindle news feed displayをダークモード対応にしたのでtimelitも対応させることにしました。自動的に切り替えは意外と落とし穴があって難しい。Kindle weatherは取り寄せるデータに日の出、日の入りがあるのでそのまま使えます。タイムゾーンに合わせてあるので問題は起こりません。ところがPythonモジュールで計算するとUTCを基準にしているので日付がずれます。これはなかなか厄介ですが、日付部分を取り除いて比較すればできます。当然、1日分違うため数分のずれが生じるので正確ではありませんがアプリケーションの精度からみて問題ありません。 timelitはもう少し複雑です。シェルでPythonを動かすのであまり複雑なスクリプトは組めません。さらにPython2なのでPython3より複雑になります。さらにpip等でモジュールをインストールできないので自前で用意しなければなりません。 色々調べると解決策がいくつかあり、特にモジュールをインストールしなくても比較的簡単に算出できる方法がありました。このスクリプトの問題は、日付を無視するので時間だけの情報になります。 Sun.py timelit.sh.diff dark mode用の画像を作成します。 convert.sh ソース https://www.instructables.com/id/Literary-Clock-Made-From-E-reader/ https://stackoverflow.com/questions/19615350/calculate-sunrise-and-sunset-times-for-a-given-gps-coordinate-within-postgresql

Posted in Linux | Comments Off on Kindle: timelitのdark mode

dropbear client: pub-key authentication

今まではOpenssh Clientを使ったpub-keyのsshアクセスをやっていましたが、どうも漠然とした疑問があり、デフォルトインストールの dropbearでpub-keyアクセスはできないものかとずっと思っていました。というのはOpenWrtをインストールしたルーターは厳しい容量で運用しなければなりません。せっかくdropbeaarがあるのにOpensshクライアントを入れるのは無駄だと思われるからです。 色々と調べてみてどうやらできることがわかりました。 手順 OpenWrtは導入後に秘密鍵を持っています。それをpub-keyに変換します。 秘密鍵をデフォルトローケーションに置きます。 pug-keyをリモート先のdropbearに登録します。 秘密鍵を指定してログインする方法

Posted in OpenWrt | Comments Off on dropbear client: pub-key authentication

buffalo wmr-300(トラベルルータ)のフラッシュROMを16MBに換装

fon2405eでSPIフラッシュROMを取り替えが成功したので、他のルーターもやってみました。取り寄せたSPIフラッシュメモリの在庫がかなりあるのでできれば16MBにすれば使い勝手がかなり向上します。8MBでも十分OpenWrtが使えるのですが、本格的に使おうとすると最低16MBは必要です。wmr-300はかなり小さいくトラベルルータとして持ち運びでき重宝するので、SPIフラッシュを取り替えることにしました。 今回はfon2405eの時のようにu-bootからファームウェアを焼かずに、フラッシュROM全体を移し替えます。下図のログは換装後の16MBフラッシュROMですが、”u-boot”、”u-boot-env”、 “factory” 、”firmware”をddコマンドで吸い出して、catコマンド繋ぎ合わせれば、アドレスの連続したファイルが出来上がり全体のフラッシュROMのコピーになります。”firmware”パーティションのアドレスが物理アドレスより大きくなっていますが、物理的に切られるので問題ありません。そのコピーを直接、フラッシュROMに書き込みます。書き込み後、ブートしてデバイスツリーでパーティションを拡大してビルドした新しいファームウェアにアップグレードします。 mt7620だと16MB以上のフラッシュROMを積めるのですが、問題はu-bootが対応していないとブートできないという問題があります。u-bootのソースはあるにはあるのですが、いざコンパイルして使うとなるとリスクが大きすぎます。今回は余っているフラッシュROMを使うことにしたので、16MBまでならオリジナルのu-bootで十分対応可能です。 OpenWrtはデバイスツリーをSPIフラッシュROMを16MB用に変えるだけで他には変更は加えていません。 リソース https://mega.nz/folder/ADoQFboR#GU0oE06AX-PHsA3crkV6OA UPDATE バグはできるだけ潰したのですがどうしても一つだけ潰せないものがありました。デフォルトのネットワークの設定がどうしてもswitchの仕様になります。解決方法はfailesafeでsshログインしてmount_rootでrootfsにマウントし/overlay/upper/etc/config/networkを書き換えます。

Posted in OpenWrt | Comments Off on buffalo wmr-300(トラベルルータ)のフラッシュROMを16MBに換装