OpenWrt Tips: Difference between revisions

From misc notes
Jump to navigation Jump to search
(Created page with "*usbのdisconnect aaa")
 
No edit summary
 
(54 intermediate revisions by the same user not shown)
Line 1: Line 1:
*usbのdisconnect
*GL-MT6000 mediatek firmware


aaa
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