OpenWrt Tips: Difference between revisions
(Created page with "*usbのdisconnect aaa") |
No edit summary |
||
(54 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
* | *GL-MT6000 mediatek firmware | ||
https://github.com/rany2/openwrt | |||
ここを参考に MTK GPL ソースをいろいろホゲって、すこし安定したようだ。 | |||
OpenWrt main snapshot: | |||
<syntaxhighlight lang="text" enclose="div"> | |||
[ 14.210931] platform 15010000.wed: MTK WED WO Firmware Version: DEV_000000, Build Time: 20221012175005 | |||
[ 14.220308] platform 15010000.wed: MTK WED WO Chip ID 00 Region 3 | |||
[ 16.831897] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20221012174648a | |||
[ 16.831897] | |||
[ 16.934523] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20221012174725 | |||
[ 17.018891] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20221012174937 | |||
</syntaxhighlight> | |||
MTK GPL: | |||
<syntaxhighlight lang="text" enclose="div"> | |||
[ 13.247287] platform 15010000.wed: MTK WED WO Firmware Version: DEV_000000, Build Time: 20231024160448 | |||
[ 13.256586] platform 15010000.wed: MTK WED WO Chip ID 00 Region 3 | |||
[ 15.828346] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20231024160251a | |||
[ 15.828346] | |||
[ 15.864094] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20231024160309 | |||
[ 15.906781] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20231024160432 | |||
</syntaxhighlight> | |||
*WDS | |||
昔は、Wi-Fi ブリッジ(リピーター、エクステンダー)を構成する場合は、relayd を使ってたのだが、今は WDS という機能をつかうのが普通らしい。(WDSはレイヤー2レベルでブリッジを構成する) | |||
最初はなじみのある relayd を使ってみたのだが、IPv6 関連で微妙な振る舞いがあって、ではということで WDS 使ってみたがむちゃくちゃサックリとブリッジが構成できた。IPv6 関連もなじみの設定であっさりと設定。かつ通信も安定している。 | |||
もうすこし遊んだら 802.11s 構成にもチャレンジしてみよう。 | |||
*802.11r不具合 | |||
MacBookAirでつながんないと悩んでいたが、そうだったのか | |||
<syntaxhighlight lang="text" enclose="div"> | |||
Alright... So I've now verified that having 802.11k, 802.11v and 802.11w enabled does not influence the situation. Having them enabled, I've confirmed that a combination of wireless.default_radio0.encryption='sae-mixed' + wireless.default_radio0.ieee80211r='1' causes problems. Changing any of them makes everything work. | |||
</syntaxhighlight> | |||
https://forum.openwrt.org/t/wpa2-wpa3-mixed-mode-connectivity-issues-with-ios-15-2/117110/7 | |||
APをmix-modeからWPA3-SAE固定に変更したばあい、Appleのクライアントはそのままつながらない。再度明示的に接続しに行くと、モードが変更された旨の警告が出る。もっと分かるようにさっさと警告を出せよw | |||
*GL-MT6000メモ | |||
openwrt main snapshot kernel 6.1 と bridger(+追加パッチ) で超安定して動いている。WED も完璧。2.5GbE のハブ買うか、もう一台 GL-MT6000 買うかw | |||
(もう一台買ったw 802.11r.k.v で遊び中w)(あとは SQM 専用機のエッジルータもそろえたw) | |||
*OOM系 | |||
とりあえず安全のための設定をするスクリプト | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
#!/bin/sh | |||
PROGS='procd ubusd askfirst urngd logd rpcd netifd dropbear' | |||
for prog in $PROGS; do | |||
PIDS=`pgrep $prog` | |||
for pid in $PIDS; do | |||
# oom_adj is deprecated, use oom_score_adj instead. | |||
echo -17 > /proc/$pid/oom_adj | |||
echo -1000 > /proc/$pid/oom_score_adj | |||
done | |||
done | |||
</syntaxhighlight> | |||
*GL-MT6000メモ | |||
追加でinstallしたものメモ | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
opkg update | |||
opkg install luci-i18n-base-ja | |||
opkg install e2fsprogs dosfstools fdisk rsync badblocks tune2fs | |||
opkg install unzip | |||
opkg install screen | |||
opkg install dropbearconvert | |||
opkg install avahi-utils avahi-daemon-service-ssh | |||
opkg install rsync | |||
opkg install diffutils | |||
opkg install mg | |||
opkg install coreutils-ls coreutils-stty | |||
opkg install procps-ng procps-ng-ps procps-ng-w procps-ng-vmstat procps-ng-watch | |||
opkg install sysstat irqbalance lm-sensors | |||
opkg install htop lsblk usbutils | |||
</syntaxhighlight> | |||
*パッケージが何故か更新されない問題 | |||
新しいバージョンがビルドされたのは確認しているが、ターゲットイメージ内の該当パッケージが更新されていない。いろいろ調査して、root.orig-ARCH が古いままであるのがわかった。 | |||
なぜ古いままなのか。./bin/package/ARCH にある opkg のパッケージに古いのが残っていた(バージョン違いが残っていた)。./bin/package/ARCH を消すと解消した。 | |||
毎回消すのも効率が悪いので、時々消すwことにした。 | |||
*cmake で libbsd 勝手に使う問題 | |||
<syntaxhighlight lang="text" enclose="div"> | |||
-DCMAKE_DISABLE_FIND_BSD=ON | |||
</syntaxhighlight> | |||
諸注意 | |||
<syntaxhighlight lang="text" enclose="div"> | |||
Note that CMAKE_DISABLE_FIND_XXXXX works for dependency packages that are discovered by CMake using find_package. But, libbsd searching is not done using find_package but find_library, so the -DCMAKE_DISABLE_FIND_BSD=ON is a no-op. | |||
</syntaxhighlight> | |||
*Build OpenWrt on FreeBSD | |||
ports の準備 | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
/usr/ports/shells/bash | |||
/usr/ports/sysutils/coreutils | |||
/usr/ports/devel/ncurses | |||
/usr/ports/devel/subversion | |||
/usr/ports/devel/git | |||
/usr/ports/ftp/wget | |||
/usr/ports/archivers/unzip | |||
/usr/ports/lang/gcc | |||
/usr/ports/devel/gmake | |||
/usr/ports/misc/getopt | |||
/usr/ports/devel/patch | |||
/usr/ports/archivers/gtar | |||
/usr/ports/misc/findutils | |||
/usr/ports/lang/gawk (/usr/ports/japanese/gawk は違う) | |||
/usr/ports/textproc/gsed | |||
#/usr/ports/sysutils/e2fsprogs | |||
#/usr/ports/sysutils/squashfs-tools | |||
#/usr/ports/devel/elfutils | |||
</syntaxhighlight> | |||
OpenWrt ビルドのステップでほかのパッケージも指摘されたらインストールする。 | |||
OpenWrtは root 権限ではない一般ユーザでビルドする事を要請されている。また PATH に ASCII 文字以外は使わない。 | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
ln -s /usr/local/bin/bash /bin/bash | |||
mkdir /usr/local/openwrt | |||
cd /usr/local/openwrt | |||
ln -s /usr/local/bin/gawk awk | |||
ln -s /usr/local/bin/gfind find | |||
ln -s /usr/local/bin/getopt getopt | |||
ln -s /usr/local/bin/gmake make | |||
ln -s /usr/local/bin/gpatch patch | |||
ln -s /usr/local/bin/gnustat stat | |||
ln -s /usr/local/bin/gtar tar | |||
ln -s /usr/local/bin/gxargs xargs | |||
ln -s /usr/local/bin/gsed sed | |||
</syntaxhighlight> | |||
したり | |||
OpenWrt をビルドする専用のユーザを作り、login shell を bash にして | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
export PATH="/usr/local/openwrt:/usr/local/sbin:/usr/local/bin:$PATH" | |||
export CC=gcc | |||
export CXX=g++ | |||
export HOSTCC=gcc | |||
export HOSTCXX=g++ | |||
# /usr/local/openwrt を整備して PATH 変えたらこれは不要 | |||
alias awk='/usr/local/bin/gawk' | |||
alias find='/usr/local/bin/gfind' | |||
alias getopt='/usr/local/bin/getopt' | |||
alias make='/usr/local/bin/gmake' | |||
alias patch='/usr/local/bin/gpatch' | |||
alias stat='/usr/local/bin/gnustat' | |||
alias tar='/usr/local/bin/gtar' | |||
alias xargs='/usr/local/bin/gxargs' | |||
alias sed='/usr/local/bin/gsed' | |||
</syntaxhighlight> | |||
tools のビルドで野良パッチを当てつつ頑張ってみた。e2fsprogs, mtd-utils, elfutils は tools/Makefile から除く | |||
ports の pkgconfig は .pc ファイルを libdata に入れるのでそれの対応が必要な場合(util-linux)も有る。 | |||
*usb上のデバイスを強制リセット | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
lsusb -t | |||
echo -n '{Bus}-{Port}' > /sys/bus/usb/drivers/usb/unbind | |||
echo -n '{Bus}-{Port}' > /sys/bus/usb/drivers/usb/bind | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
echo -n '1-1' > /sys/bus/usb/drivers/usb/unbind | |||
echo -n '1-1' > /sys/bus/usb/drivers/usb/bind | |||
</syntaxhighlight> |
Latest revision as of 21:29, 5 April 2024
- GL-MT6000 mediatek firmware
https://github.com/rany2/openwrt
ここを参考に MTK GPL ソースをいろいろホゲって、すこし安定したようだ。
OpenWrt main snapshot:
[ 14.210931] platform 15010000.wed: MTK WED WO Firmware Version: DEV_000000, Build Time: 20221012175005
[ 14.220308] platform 15010000.wed: MTK WED WO Chip ID 00 Region 3
[ 16.831897] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20221012174648a
[ 16.831897]
[ 16.934523] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20221012174725
[ 17.018891] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20221012174937
MTK GPL:
[ 13.247287] platform 15010000.wed: MTK WED WO Firmware Version: DEV_000000, Build Time: 20231024160448
[ 13.256586] platform 15010000.wed: MTK WED WO Chip ID 00 Region 3
[ 15.828346] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20231024160251a
[ 15.828346]
[ 15.864094] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20231024160309
[ 15.906781] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20231024160432
- WDS
昔は、Wi-Fi ブリッジ(リピーター、エクステンダー)を構成する場合は、relayd を使ってたのだが、今は WDS という機能をつかうのが普通らしい。(WDSはレイヤー2レベルでブリッジを構成する)
最初はなじみのある relayd を使ってみたのだが、IPv6 関連で微妙な振る舞いがあって、ではということで WDS 使ってみたがむちゃくちゃサックリとブリッジが構成できた。IPv6 関連もなじみの設定であっさりと設定。かつ通信も安定している。
もうすこし遊んだら 802.11s 構成にもチャレンジしてみよう。
- 802.11r不具合
MacBookAirでつながんないと悩んでいたが、そうだったのか
Alright... So I've now verified that having 802.11k, 802.11v and 802.11w enabled does not influence the situation. Having them enabled, I've confirmed that a combination of wireless.default_radio0.encryption='sae-mixed' + wireless.default_radio0.ieee80211r='1' causes problems. Changing any of them makes everything work.
https://forum.openwrt.org/t/wpa2-wpa3-mixed-mode-connectivity-issues-with-ios-15-2/117110/7
APをmix-modeからWPA3-SAE固定に変更したばあい、Appleのクライアントはそのままつながらない。再度明示的に接続しに行くと、モードが変更された旨の警告が出る。もっと分かるようにさっさと警告を出せよw
- GL-MT6000メモ
openwrt main snapshot kernel 6.1 と bridger(+追加パッチ) で超安定して動いている。WED も完璧。2.5GbE のハブ買うか、もう一台 GL-MT6000 買うかw
(もう一台買ったw 802.11r.k.v で遊び中w)(あとは SQM 専用機のエッジルータもそろえたw)
- OOM系
とりあえず安全のための設定をするスクリプト
#!/bin/sh
PROGS='procd ubusd askfirst urngd logd rpcd netifd dropbear'
for prog in $PROGS; do
PIDS=`pgrep $prog`
for pid in $PIDS; do
# oom_adj is deprecated, use oom_score_adj instead.
echo -17 > /proc/$pid/oom_adj
echo -1000 > /proc/$pid/oom_score_adj
done
done
- GL-MT6000メモ
追加でinstallしたものメモ
opkg update
opkg install luci-i18n-base-ja
opkg install e2fsprogs dosfstools fdisk rsync badblocks tune2fs
opkg install unzip
opkg install screen
opkg install dropbearconvert
opkg install avahi-utils avahi-daemon-service-ssh
opkg install rsync
opkg install diffutils
opkg install mg
opkg install coreutils-ls coreutils-stty
opkg install procps-ng procps-ng-ps procps-ng-w procps-ng-vmstat procps-ng-watch
opkg install sysstat irqbalance lm-sensors
opkg install htop lsblk usbutils
- パッケージが何故か更新されない問題
新しいバージョンがビルドされたのは確認しているが、ターゲットイメージ内の該当パッケージが更新されていない。いろいろ調査して、root.orig-ARCH が古いままであるのがわかった。 なぜ古いままなのか。./bin/package/ARCH にある opkg のパッケージに古いのが残っていた(バージョン違いが残っていた)。./bin/package/ARCH を消すと解消した。 毎回消すのも効率が悪いので、時々消すwことにした。
- cmake で libbsd 勝手に使う問題
-DCMAKE_DISABLE_FIND_BSD=ON
諸注意
Note that CMAKE_DISABLE_FIND_XXXXX works for dependency packages that are discovered by CMake using find_package. But, libbsd searching is not done using find_package but find_library, so the -DCMAKE_DISABLE_FIND_BSD=ON is a no-op.
- Build OpenWrt on FreeBSD
ports の準備
/usr/ports/shells/bash
/usr/ports/sysutils/coreutils
/usr/ports/devel/ncurses
/usr/ports/devel/subversion
/usr/ports/devel/git
/usr/ports/ftp/wget
/usr/ports/archivers/unzip
/usr/ports/lang/gcc
/usr/ports/devel/gmake
/usr/ports/misc/getopt
/usr/ports/devel/patch
/usr/ports/archivers/gtar
/usr/ports/misc/findutils
/usr/ports/lang/gawk (/usr/ports/japanese/gawk は違う)
/usr/ports/textproc/gsed
#/usr/ports/sysutils/e2fsprogs
#/usr/ports/sysutils/squashfs-tools
#/usr/ports/devel/elfutils
OpenWrt ビルドのステップでほかのパッケージも指摘されたらインストールする。
OpenWrtは root 権限ではない一般ユーザでビルドする事を要請されている。また PATH に ASCII 文字以外は使わない。
ln -s /usr/local/bin/bash /bin/bash
mkdir /usr/local/openwrt
cd /usr/local/openwrt
ln -s /usr/local/bin/gawk awk
ln -s /usr/local/bin/gfind find
ln -s /usr/local/bin/getopt getopt
ln -s /usr/local/bin/gmake make
ln -s /usr/local/bin/gpatch patch
ln -s /usr/local/bin/gnustat stat
ln -s /usr/local/bin/gtar tar
ln -s /usr/local/bin/gxargs xargs
ln -s /usr/local/bin/gsed sed
したり
OpenWrt をビルドする専用のユーザを作り、login shell を bash にして
export PATH="/usr/local/openwrt:/usr/local/sbin:/usr/local/bin:$PATH"
export CC=gcc
export CXX=g++
export HOSTCC=gcc
export HOSTCXX=g++
# /usr/local/openwrt を整備して PATH 変えたらこれは不要
alias awk='/usr/local/bin/gawk'
alias find='/usr/local/bin/gfind'
alias getopt='/usr/local/bin/getopt'
alias make='/usr/local/bin/gmake'
alias patch='/usr/local/bin/gpatch'
alias stat='/usr/local/bin/gnustat'
alias tar='/usr/local/bin/gtar'
alias xargs='/usr/local/bin/gxargs'
alias sed='/usr/local/bin/gsed'
tools のビルドで野良パッチを当てつつ頑張ってみた。e2fsprogs, mtd-utils, elfutils は tools/Makefile から除く
ports の pkgconfig は .pc ファイルを libdata に入れるのでそれの対応が必要な場合(util-linux)も有る。
- usb上のデバイスを強制リセット
lsusb -t
echo -n '{Bus}-{Port}' > /sys/bus/usb/drivers/usb/unbind
echo -n '{Bus}-{Port}' > /sys/bus/usb/drivers/usb/bind
echo -n '1-1' > /sys/bus/usb/drivers/usb/unbind
echo -n '1-1' > /sys/bus/usb/drivers/usb/bind