Category Archives: Linux

TerminalImageViewer (tiv)を使ってみる

サーバーに置かれた画像をターミナル経由で見る方法はないものかと考えて検索したらTerminalImageViewerというプロジェクトがありました。このアプリケーションは画像をユニコード・キャラクターに変換して表示できるのでターミナルから見ることができます。GitHubではsnapを使ったインストール方法が紹介されてもますが、サーバはDebianなのでコンパイルしてインストールしました。 表示してみるとユニコードキャラクタの割に綺麗に表示できてました。解像度はもちろん期待できませんが、うまくユニコード・キャラクタを応用してマッピングできています。 ソース https://github.com/stefanhaustein/TerminalImageViewer

Posted in Linux | Comments Off on TerminalImageViewer (tiv)を使ってみる

POP! OS 20.10アップグレードで言語設定の不具合

POP! OS 20.04からPOP! OS 20.10へアップグレードしたところ、言語設定のfcitxの不具合がありました。そこで試しにfcitx5にしてみてもやはり不具合は解消されてませんでした。 原因はおそらく言語設定の変更が追いついていないためだと思いますが、とりあえず使えるようにしました。 fcitx5というのが前から気にかかっていたのですが、今回使えるようにしてみました。fcitxの改良版とでも言うのでしょうか、あまり違いはわかりませんがことのついでに設定してみました。 公式パッケージにはfcitx5-mozcがないので、外部リポジトリからインストールします。 ログアウトして入り直します。 Skinの追加 まだ公式リポジトリにないのでGitHubから導入してみます。テーマを/usr/share/fcitx5/themesにコピーします。fcitx5の設定でThemeを変更します。 参考 https://github.com/xuzhao9/fcitx5-theme-opensuse

Posted in Linux | Comments Off on POP! OS 20.10アップグレードで言語設定の不具合

OpenWrt: 802.11ac の 802.11s + wpa3 sae を使う

前日セットアップしたVxlanが遅すぎて絶望的な気分に浸っていたところで、802.11acで802.11sのメッシュがひょっとしたらできるのではないかと思いつきました。acモードの802.11sは以前に試してみたのですがうまく行きませんでしたが、WG1200CRは比較的新しい機種なのでひょっとしたらと思ったわけです。結論から言うと出来ました。ただし、Mediatekのルーター、WCR-1166DSはWG1200CRにはメッシュは繋がるもののファイル転送に失敗しました。と言うことでacモードの802.11sは機種限定ですが可能だと言うことを発見しました。 wpa3 saeを有効にする パッケージはこれだけです。あとはダッシュボードで802.11sの設定をするのみです。Channelは固定しておきます。 テスト:iperf3 (==: 有線LAN, –: Wi-Fi) PC (macOS) — AP1 == NAS PC (macOS) == AP2 — (802.11s) — AP1 == NAS メッシュネットワーク越えでもそれほど速度低下はなくこれなら使えそうです。 Bug 11ac meshで有効にしたままファームウェアをアップグレードしようとすると失敗する → メッシュを一時的にオフにしてアップグレードする。

Posted in Linux, OpenWrt | Comments Off on OpenWrt: 802.11ac の 802.11s + wpa3 sae を使う

OpenWrt: Vxlanのセットアップ

前回、NEC Aterm WG1200CRにOpenWrtをインストールしました。この機種はヤオフクで手に入れたものですが、実は3台まとめての落札だったので、今回、この3台を使ってネットワーク周りをアップグレードすることにしました。現在のネットワークは11n(2.4GHz)の11s(メッシュ)+WPA3 SAEで、通信速度は150Mbpsです。メッシュネットワークは柔軟性のあるネットワークですが遅いという欠点があります。そこでAPモードを使って11acの性能を引き出そうというのが今回の試みです。 11acのWPA3 SAEのAPモード、Clientモードのネットワーク・セットアップまでは問題ないのですが、子機のClientモードの方が仕様上ブリッジできないという欠点があります。プライベートネットワーク上でnat超えは避けて同一のネットワークを透過的に使いたいところです。いろいろ検討してみたところ、トンネリング・インターフェースを使えば出来そうです。以前にWireGurad上にGreTapをのせてネットワークデバイスをブリッジしました。今回も同じ方法が使えます。 GreTap vs. Vxlan L2ネットワークをトンネリングする方法としてGreTapの他にVxlanがあります。どちらも同じ目的で使いますが、何が違い、どちらがメリットがあるのかが疑問だったので調べてみたところ、Vxlanはudpプロトコルを使い、マルチキャストができることがわかりました。一方、GreTapはユニキャストのみです。ネットワーク同士をつなげるとしたらVxlanの方が有利なのは明らかです。そこで今回はVxlanを採用することにしました。 Vxlanのセットアップ OpenWrtのドキュメントを調べたのですがどうも上手くいきません。そこでGoogleで調べて、何が欠けているのか、情報を収集してみました。 まずパッケージのインストールから始めました。 しかし、これだけでは上手くいかず、前回、GreTapでnat周りのカーネルモジュールをインストールしたことを思い出しました。そこで手当たり次第に関連するカーネルモジュールをインストールしてみました。 AP、Clientの両方の/etc/config/networkに追加します。peeraddrとipaddrはネット環境に合わせて調整します。またインターフェースvxlan0をbr-lan(LAN環境)にブリッジします。 インターフェースのセットアップ wi-fiのセットアップ firewallはVxlan用に作成します。 ネットワークトポロジー ルーター種別 Vxlan: 11acルーター(wi-fi:866Mbps, lan:1Gbps) 11s + wpa3 sae: Atheros router, mt7621以降 (wi-fi:150Mbps, lan:100Mbps) 11s + wireguard + gretap: rt3050, rt5350, mt7620 … Continue reading

Posted in Linux, OpenWrt | Comments Off on OpenWrt: Vxlanのセットアップ

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

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?

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

Kindle news feed

前回、Kindle weather displayが思った以上に良い出来でした。news feedのアイディアが浮かんだので作ってみることにしました。今回はsubprocessモジュールを使うことになったのですが、どうも使ってみると外部コマンドが終了しないうちから次のPythonスクリプトを実行してしまうらしく、外部コマンドの実行に失敗します。あまり良い方法ではありませんが、実行終了まで十分な時間を入れて問題を回避しました。このnews feedの肝は画像をベクター化したことです。ただのnews feedで文字列を表示しても面白くないので画像を入れてヴィジュアル化しました。 リソース https://github.com/Neelakurinji123/kindle-news-feeds-display

Posted in DIY, Linux | Comments Off on Kindle news feed

Kindle Weather Display

前回は古いキンドル3を洒落た時計にしました。今回は天気情報にチャレンジしてみます。参考したサイトではDarkSkyを使っていたのですが、調べたらどうも終了らしい、ということでOpenWeatherMapを使うことにしました。やってみると意外と大変で、特に摺り合わせ作業が多く検証にとまどりましたが、どうにかできました。次はサーバからどうやって送り込むかという課題のみです。 ホストサーバーはOpenWrtとArmbian(TV-Box)で試してみました。OpenWrtのフラッシュROMは16GB以上必要です。16MBのフラッシュで収まるか難しいところで、パッケージを整理すればなんとか収まりそうです。USBのある32MBの古いルーターがあったのでそれを使いました。OpenWrtの問題はSVG処理ができないため、Kindle側ですることになります。Kindle側では画像処理のプログラムがないので、ChrootのDebian Wheezyを使います。これ以降のバージョンはKindleのカーネルが古いため使えません。Armbianは最新のDebianが動くのでそちらの方がおすすめです。 この天気アプリは先日セットアップした時計プログラムと交互に表示するように調整します。 ホスト側のcron設定例 Kindleとホスト間はP2PのUSBnetで繋げてセキュリティ上問題がある古いキンドルのパケットが外に流れないようにファイヤーウォールを導入します。その際、時間の調整が必要になるのでホスト側にntpサーバをインストールしてKindleからアクセスできるようにしてntpdateで時間を定期的にアップデートします。Kindleのntpdateはどうも相性が悪いらしくアップデートしてくれないので、Debianのntpdateを使っています。 Source https://github.com/Neelakurinji123/kindle-weather-display 参考 https://gitlab.com/iero/Kindle-weather-station/-/tree/master/

Posted in DIY, Linux | Comments Off on Kindle Weather Display

KINDLE 3: 時計、Timelitをインストールする

Timelitというプログラムがなかなか良さそうなのでインストールしました。最初起動に失敗したので、ファームウェアのアップデートを行ったところ、以前のkindle 3 hackの非公式のプログラムは起動できなくなったようです。代わりにこのtimelitプログラムが起動できるようになりました。ショートカットはShift+cです。 古いキンドルを引っ張り出してきたのはE-inkを何かに使えないか調べてみるためでした。オープンソースでGPUにアクセスできないため、これは無理だという結論になったのですが、有効利用できるか調べたところ、Tlimelitというプログラムに出会ったというわけです。 このプログラムはimagesのフォルダーにある画像を1分刻みで更新するプログラムなので、応用すれば使えそうだなという気がしますが、なかなか粋なプログラムなのでしばらく使ってみることにしました。 日本時間のタイムゾーンの変更は参考サイトを参照して、TZ=GMT-9に変更します。/etc/rtcrontab/rootを変更して1分刻みで更新するように設定します。 サイトでは1分おきになってますが、好みで1分おきだと気になってしょうがないので5分おきに変えて使っています。cronは起動スクリプトに難ありで起動はできるが止めることができません。killコマンドでプロセスと止めます。 ちなみにspiインターフェースのE-inkがアマゾンで売られており、これならばルーターやOPiにつなげて使えそうですが、小さい画面でも値段が高いですね。これは今後どうするか検討してみたいと思います。 時間が数分ずれているので調整してみました。相性の関係かwifiは切れるので古いルーター、おそらく802.11bなのかも知れません。それなのでwifi は諦めてusbnetで接続します。 ホスト側 (IP: 192.168.2.1/24) KIndle 3 (IP: 192.168.2.2/24) 参考 Literary Clock Made From E-reader : https://www.instructables.com/id/Literary-Clock-Made-From-E-reader/

Posted in Linux | Comments Off on KINDLE 3: 時計、Timelitをインストールする