ザキンコのブログ

ザキンコの日記のはてなブログ版です。

ミニPCにOpenWRTを入れてWiFiアクセスポイントにするメモ

コンシューマ用WiFiルータをアクセスポイントモードで使用してきて今まで何台も使ってきたけど、サポート期間も短くなってしまったし、自分でミニPCにOpenWRTを入れてUSB WiFi アダプタを挿してアクセスポイントにしてみた。設定はAIに聞けばだいだい教えてくれるんでかなり楽になった。

OpenWRTのインストールの前にPCについて。 普段はルータ用途なのでLANが2ポートあるPCを選ぶのが定番なんだけど、その場合はそれぞれWANとLANになってルータとして機能してしまうので注意。アクセスポイント用途なら有線LANポートは1ポートでいい。1ポートだとWANは設定されないのでちょっと楽。

インストールは公式を参照。 [OpenWrt Wiki] OpenWrt on x86 hardware (PC / VM / server)

おすすめは、SystemRescueが起動できるUSBスティックを作ってそっちを起動して既存のネットワークに参加してOpenWRTをダウンロードしてddでPC内蔵ディスクに書き込むやり方。 SystemRescue - System Rescue Homepage

インストールしたらLANケーブルを外して起動して、別のノートPCなどをLANケーブルで直接つないで ssh root@192.168.1.1 でログインして、ネットワークの設定をとりあえずやってしまう。ノートPCのWiFiは既存のネットワークに繋げておくと設定が参照できたりコピペもできるので便利。ネットワークインターフェースはbr-lanに入れてbridgeに設定。

cat > /etc/config/network << 'EOF'
config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.255.255.0'

config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth0'
    # list ports 'eth1' # 必要に応じて

config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '192.168.1.2'      # ← 上位ルーターと同じサブネットで空きIP
    option netmask '255.255.255.0'
    option gateway '192.168.1.1'     # ← 上位ルーターのIP
    option dns '192.168.1.1'
EOF

DHCPも切る。

uci set dhcp.lan.ignore='1'
uci commit dhcp

Firewall も切る。

/etc/init.d/firewall stop
/etc/init.d/firewall disable

再起動してLANケーブルを繋ぎ変えて既存のネットワークに繋がっていればOK。アクセスポイントのベースは完成。

パーティションとファイルシステムの拡張をやる。 [OpenWrt Wiki] Expanding root partition and filesystem

使うUSB WiFi アダプタのファームを入れる。 今回は、WI-U2-300Dを使った。内蔵チップは RT5572 なので、

apk add kmod-rt2800-usb

アクセスポイントとして動かすのにhostapdが必要なので入れる。これ入れ忘れてハマった。

apk add hostapd

念の為、再起動。 ここまでできたらWEB GUI で設定できるので、細かいWiFiの設定をして有効にしてみる。

AIのおかげでOpenWRTの設定が楽になった。何でも聞いてログ貼り付けたらだいたい教えてくれる。ただ、設定してる途中でここバグだからコードを書き直したらいいって言われて沼にハマったけど。

気になることがあったら追記する予定。

Wifiアクセスポイントを買い替えた

前にAterm WX7800T8 を2台買ってそれぞれアクセスポイントとイーサーネットコンバーターとして使っていたけれど、6GHz帯を使っているのに異常に遅かった。リンク速度は2402Mbpsなのに、両側にPCを用意してiperf3で測ってみると150Mbpsくらいしか出てなかった。LANポートが1Gbpsなのでそれが原因で遅いのだろうと思ってたけどそれにしても遅い。なので諦めてGL.iNetのFlint 3 (GL-BE9300)を買ってアクセスポイントにしてみたら、900Mbpsくらいは出るようになった。Aterm WX7800T8 も、もしかしたらルータモードだと速度出るのかもしれないが、試すのは面倒なのでやらない。

Windows11は対応していないからUbuntuを入れてみる

ASUSのD320SFシリーズなんだけど第7世代のIntelCoreなので、ギリWindows11に上げられないCPU。公式には第8世代からだから。 で、Linuxを入れようと思ってUSBにインストーラーを入れてインストールしようとしたら失敗する。 どうやら電源管理のASPMが悪さして膨大なエラーログを吐いてすぐにディスクを一杯にしてしまうらしい。 なので、起動時に「pcie_aspm=off」のカーネルオプションを入れておかないとインストールすらできなかった。 インストール後も初回起動時にカーネルオプションを入れて起動して、すぐに書き直さないと危険。 たまにこういう機種にあたるんだけど、まあなんとかインストールできてよかった。

(追記 2026.4.2) あと、セキュアブートのキーをクリアをしないとブートしなかった。

https://www.asus.com/jp/displays-desktops/tower-pcs/expertcenter/d320sf/

Amazonにレビュー投稿しても載らないのでブログに投稿

ヤマケイ新書 リニアは南アルプスをくぐり抜けることができるのか リニア中央新幹線ダークツーリズムガイド | 山と溪谷社

忖度なしのルポルタージュ、秘境作家が書くリニア工事の闇

大鹿村に住む著者がリニア工事の現場で目撃した現実を、忖度なく丁寧に綴った一冊。 南アルプスの細い林道を大量のダンプカーが行き交う中、頻発する事故や、杜撰な工事体制による有害残土の山積み問題が克明に描かれる。 さらに、地域住民の生活を脅かす地盤沈下や水枯れ、遅れ続ける工事の裏側で露呈するJR東海の隠蔽体質が、次々と浮き彫りになる。 大鹿村ではリニアを推進すると出世し、反対派の著者はあからさまな嫌がらせを受けている。 リニア工事の差し止め訴訟では裁判所の忖度が疑われるが、開通後にはリニア公害による新たな訴訟が多発する可能性も指摘されている。 本書は、「早くて便利」だけが価値ではないと訴える。手がかかること、手をかけることにも、別の価値があるのだと。 読後、ざっと内容を思い浮かべてみたが、これらはほんの一部なので、ぜひ手にとって著者の南アルプスへの想いを感じてほしい。

最後に私見を述べる。リニアはJR東海の故・葛西敬之氏や過疎地住民の悲願とされるが、営利企業が経済合理性を無視して事業を継続するのは難しいだろう。行き詰まったらリニア事業を国に譲渡ししてしまうつもりなのだろうかと邪推する。 無謀なトンネル掘削を止めて地上の交通網を地道に整備する方が、持続可能で地域に優しい選択ではないだろうか。

RATOC RS-EC32-R10G 買ってみた

冷却ファン付きのUSB接続のハードディスクケースが欲しかったので。

ただ、2台組み込みでRAID機能付きなんでちょっと心配だったが、最近出たSeagateの24Tを1台だけ入れてみたら動いた。

チップは ASMedia ASM1352R で smartctl も対応してるみたいで、ディスク(?)の指定をすれば情報は読めた。ディスク0と1とどちらかを指定する必要があるらしい。 

smartctl -a -d usbasm1352r,0 /dev/sda

RATOCはリムーバブルケースが鉄板でそっちでも良かったんだけど、こっちが安かったら買ってみたんでメモ。

参考

USB 10Gbps RAIDケース(3.5インチHDD 2台用) RS-EC32-R10G|ラトックシステム公式サイト

Release Release 7.4 · smartmontools/smartmontools · GitHub

ASM1352R | 10G SATA Device|ASMedia Technology Inc.

YomiTokuをpodmanで動かすメモ

AI使った高性能日本語OCRアプリ。

https://github.com/kotaro-kinoshita/yomitoku

CC BY-NC-SA 4.0なので非商用で使えるみたい。

https://creativecommons.org/licenses/by-nc-sa/4.0/

商用で使う場合は商用ライセンスがあるので連絡くださいとのこと。

メインPCにpytorchとか入れたくないのでコンテナを使う。

root、非root、アクセス権で悩みたくないのでdockerではなくpodmanにした。 dockerを入れて、NVIDIA Container Toolkitを入れて、podmanを入れて、GPUを使えるよう設定したら問題なく動いた。

podman用Dockerfile

FROM docker.io/pytorch/pytorch:2.7.1-cuda11.8-cudnn9-runtime

ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1

RUN apt-get update && apt-get install -y --no-install-recommends \
    libglib2.0-0 \
    libgl1 \
    libgl1-mesa-glx \
    && rm -rf /var/lib/apt/lists/*

RUN pip install yomitoku

WORKDIR /yomitoku

CMD ["yomitoku", "--help"]

pip installで文句言われるけど無視。 ビルド。

podman build . --tag yomitoku:0.9.4

作業用フォルダに読み込むファイルを置くpdfフォルダとoutputフォルダを作っておいて、run。

podman run -it --device nvidia.com/gpu=all -v $(pwd):/yomitoku --name yomitoku yomitoku:0.9.4 /bin/bash

yomitoku実行。複数ページの画像PDFがあっという間にMarkdownになる。htmlにしたかったらhtmlの指定をすればいい。

yomitoku -f md -o ./output --ignore_line_break --combine ./pdf

某県の第三者委員会の報告書が画像PDFなので、それをOCRかけてテキスト化したかったので使ってみた。 メインPCのGPUはRTX4070SUPERでメモリは12Gだけど普通に動いた。CPU単体でも動くかも。