Tag: RaspberryPi Posted: 2025-10-24
| Categories:
RaspberryPi
| Tags:
Gentoo ,
RaspberryPi
本記事は、Gentoo + Raspberry Pi 5(brcmfmac) 環境で 5GHz Wi-Fi(OpenWrt AP)への接続に失敗した事象を、ログの読み解き → 原因候補の整理 → 最短の切り分け → 恒久対策の順でまとめたトラブルシュート記録です。
同様の環境・構成でハマった方の参考になれば幸いです。
TL;DR(最初に結論) 症状は ASSOC-REJECT status_code=16 の連発。dmesg には brcmf_set_channel … reason -52 が多発。 規制ドメイン(regdom)が global=JP でも phy=99(UNSET)のまま、かつ WPA3/SAE のビルド/設定相性が絡んで アソシエーション前段で失敗していた。 改善に効いたもの:AP の国コードを JP 固定、チャンネル 36–48(非DFS)(今回は 48)で固定。 クライアントは一時的に WPA2-PSK(AES)に限定(key_mgmt から SAE を外す、pairwise/group/proto を CCMP/RSN 固定)。 sae_pwe 未対応による設定パースエラーを除去。 起動後に udev or systemd で iw reg set JP を強制(phy が 99 から動かない個体の保険)。 つながっている別サーバは、接続後に AP の Country IE(802.11d)で JP に寄っていた(=接続できれば後追いで JP になる)。今回の問題個体は 接続前に落ちるため、phy が 99 のままという見え方だった。 構成概要 クライアント:Gentoo Linux on Raspberry Pi 5カーネル:brcmfmac(Broadcom FullMAC ドライバ) ネットワーク:systemd-networkd + wpa_supplicant MTU:1450(k3s/flannel 想定) アクセスポイント:OpenWrtSSID:OpenWrt5Ghz 暗号:WPA2/WPA3 ミックス(PSK + SAE, CCMP) チャンネル:48(5.240GHz, 非DFS) Country:JP(固定) ← 対応後 Wifiアクセスポイント側の暗号化: mixed WPA2/WPA3 PSK, SAE (CCMP) 目的:5GHz 接続の安定化(WPA3 も将来的に使いたい) 症状とログ DHCPv6の設定ができていなかった networkctl status wlan0 をした際に次のエラーがでた
Read more... Posted: 2024-07-01
| Categories:
RaspberryPi
| Tags:
RaspberryPi
参考 Read more... Posted: 2024-03-07
| Categories:
Gentoo
| Tags:
Gentoo ,
RaspberryPI
Gentooで使いたい。GenPi64のプロジェクトだと2024/03だと対応はまだの模様 2023/12 あたりに作成したGenPi64プロジェクトのイメージだとRaspberryPI5では起動しなかった。
この辺の機種ごとの際はラズベリーパイではよくあることではある。
ありがたいことに先人がおり起動したので、私が追加で設定したメモを残す。
手順はext4で起動するようになっている。
私が手順を一通り見て「既存のディスクイメージをベースにカーネルと必要なファイルを更新したら起動するのでは?」と思い試してみた。
が、カーネルが認識するファイルシステムがext4だった(カーネル再構築でbtrfsを認識させればよいような気もする)
私がGenPi64で作成したイメージはルートファイルシステムをbtrfsで構成したため起動しなかった。
素直にext4でルートファイルシステムを構成する。
基本的にこの手順で動作する How to install Gentoo on Raspberry Pi 5 - Gentoo Wiki
私は作業用ディレクトリとして下記にした
WORK=/mnt/gentoo_work
DISK=/dev/sdc
DEST=/mnt/gentoo
mount ${DISK}3 $DEST && mount ${DISK}1 ${DEST}/boot
Gentooオフィシャルの説明 私が追加、変更して作業したこと /lib/modules の git clone は時間がかかる 先にgitをインストールして/lib/modules用のレポジトリをダウンロードしておいた方が良い
–depth=1 で履歴を取らないようにしておくと早い
cd ${WORK}
git clone --depth=1 https://github.com/raspberrypi/firmware.git
openrcではなくsystemdを使いたかった stage3のファイルをopenrcではなくsystgemdを利用した。
ダウンロードは下記のarm64の「systemd」を使った。
Downloads – Gentoo Linux
cd ${WORK}
tar xpf /mnt/gentoo_work/stage3-arm64-systemd-20250824T234925Z.tar.xz --xattrs-include='*.*' --numeric-owner -C ${DEST}/
portage snapshot は jaistからダウンロードした
http://ftp.jaist.ac.jp/pub/Linux/Gentoo/snapshots/
昔からありがとう… 北陸先端科学技術大学院大学さん
Read more... Posted: 2023-10-05
| Categories:
RaspberryPi
| Tags:
Build.Dist ,
Gentoo ,
RaspberryPi
背景 新しいバージョンを試したい。
調べてみると、 Build.Dist このツールを使うと自分でSDカードのイメージを作成できるらしい。 更に設定で自分好みのイメージが作れるらしい、凄い。
下記はエラーに対する試行錯誤、そのメモです。
ネットワークのトラブル、pingで疎通ができない。名前解決はできないのだがdigだと名前解決ができる 名前解決にdnssecを利用するようになった。
/etc/resolv.conf の内容
nameserver 127.0.0.53
options edns0 trust-ad
search .
edns0: EDNS(Extension mechanisms for DNS)のバージョン0を使用することを示す。
EDNSは、DNSプロトコルを拡張し、より大きなペイロード、改善されたセキュリティ(DNSSEC)、その他の機能をサポート。
trust-ad: DNSSECのAuthenticated Data(AD)フラグを信頼することを示す。
これは、DNSSECにより検証された応答を信頼し、使用することを意味。
DNSSECはサーバ側の時刻を利用する。
ラズパイを長いこと起動していなかったためか、あるいはchronyd, ntpdをインストールして設定が変わったからか、DNSSECが動作しなくなった。
ラズパイの時刻がずれていたので強制的に時刻を合わせる。
dig time.google.com で、googleのNTPサーバのIPアドレスを確認し、nptpdateで合わせる。
sudo systemctl stop ntpd
sudo ntpdate 216.239.35.4
今では systemd-timesyncd, chronydで時刻合わせを設定するようなので、知識をアップデートしたい。
scripts/binfmt.sh でエラーが出る 下記の箇所でエラーが出る。
qemuが必要。
if [ "${cpu}" != "arm" ] ; then
if [[ ! -e /proc/sys/fs/binfmt_misc/arm ]]; then
echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xf
f\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm:F" >> /proc/sys/fs/binfmt_misc/register
fi
fi
下記のコマンドでqemuをインストールした。
Read more... Posted: 2023-06-04
| Categories:
RaspberryPi
| Tags:
Gentoo ,
RaspberryPi
背景 2023/06時点、ラズパイ上でのGentooが起動するGenPi64をゼロからイメージ作成するBuild.Dist はイメージ作成に失敗する。
私が成功するまで3つ程、ハードルがあったのでプルリクを作成したい。
その時のメモ。
原因 parsers/rawcommand/rawcommand 、シェルのヒアドキュメントの箇所で、本来、タブであるべき所が空白になってしまっている。
画面上は分かりにくいがgit pullすると確認できる。
また全てのシェルスクリプトがNGという訳ではなく、他のシェルスクリプトはタブになっていた。
この問題に起因すると思われるイシュー issueで挙がってないか確認 過去の経緯を軽く確認 https://raw.githubusercontent.com/GenPi64/Build.Dist/master/parsers/rawcommand/rawcommand
空白かもしれない。タブの方が良い。
Read more... Posted: 2023-06-04
| Categories:
RaspberryPi
| Tags:
Build.dist ,
Gentoo ,
RaspberryPi
概要 RasberyPi用のGentooであるGenPi64というプロジェクトがある。
ただアップされているイメージが古い、様子。
新しいGentooを試したい。
GenPi64のイメージを作製するには
GenPi64/Build.Dist: Build scripts for building GenPi64 images. を使う。
仕組みは非常に合理的というか良くできている、が、うまく動かなかったので仕組みを調べている。
これはそのメモ。
サイト内関連ページ 手順 事前準備 必要なパッケージ追加
sudo emerge --ask dev-python/lockfile dev-python/iniparse sys-fs/btrfs-progs sys-fs/dosfstools sys-block/parted
sudo QEMU_USER_TARGETS="aarch64 arm" QEMU_SOFTMMU_TARGETS="aarch64 arm" USE="static-libs" emerge --changed-use --ask --newuse --quiet app-emulation/qemu
以前は dev-python/pychroot も必要としていた。
が、pychrootが2023/12/22にアーカイブされてしまい、Gentooとしてもパッケージが存在しないようになってる。
GitHub - pkgcore/pychroot: a python library and cli tool that simplify chroot handling
この人も困ってそうではあるが User:Maffblaster/Todo - Gentoo Wiki
quick start https://github.com/GenPi64/Build.Dist/ を git pull し、ディレクトリに移動
sudo -s
bash
export PROJECT="GenPi64Systemd"
. env.sh
sh build.sh
仕組み sh build.sh を行った際の進み方
Read more... Posted: 2023-05-23
| Categories:
wifi
| Tags:
raspberrypi ,
wifi
ラズパイでwifiの国設定が異なる場合 wifiアクセスポイントを検索してもなぜかチャンネル1の他人の家のアクセスポイントしか見つからない。
スマホなどからの接続には問題がない。
またアクセスポイントの検索自体は(他人の家のアクセスポイントが見えているので)問題がない。
私の場合はwifiアダプタの国設定ができていないためだった。
iw reg get で国の設定が確認できる。 下記はイギリスになっていた。
$ iw reg get
global
country GB: DFS-ETSI
(2400 - 2483 @ 40), (N/A, 20), (N/A)
(5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
(5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
(5470 - 5730 @ 160), (N/A, 26), (0 ms), DFS
(5725 - 5850 @ 80), (N/A, 23), (N/A), NO-OUTDOOR
(5925 - 6425 @ 160), (N/A, 23), (N/A), NO-OUTDOOR
(57000 - 71000 @ 2160), (N/A, 40), (N/A)
phy#0
country 99: DFS-UNSET
(2402 - 2482 @ 40), (6, 20), (N/A)
(2474 - 2494 @ 20), (6, 20), (N/A)
(5140 - 5360 @ 160), (6, 20), (N/A)
(5460 - 5860 @ 160), (6, 20), (N/A)
wifiの国設定は sudo iw reg set JP などとすると設定できるようだが、ラズパイの場合、うまく行かない。
Read more... Posted: 2021-09-28
| Categories:
RaspberryPi
| Tags:
Gentoo ,
RaspBerryPi ,
USB-Boot
背景 SD カードが壊れた。最近のラズパイは HDD ブートに対応しているので HDD ブートで Gentoo を起動した。
作業としては通常の RaspberrypiOS で起動、(新しいラズパイなら不要だと思うが私は必要だった)ファームウェアのアップデートを行い、
Genpi64 のイメージをダウンロード、HDD に書き出し、起動した。ハマるポイントは無く、意外とスムーズに起動した。
2021/09/28 RaspberryPi 4B で確認した。 Raspberry Pi 2B、3A+、3B、3B+の場合、手順は異なるかもしれない。
手順 ファームウェアが古い場合はアップデート HDD ブートはファームウェアが「2020-09-03」以降である必要がある。
参考
[SDカード不要? 「Raspberry Pi 4」をUSBブートさせる方法について
https://gadgetrip.jp/2021/05/raspberry_pi4_usb_boot/
ラズパイ4を完全 USB Boot 化
コマンド 効果 vcgencmd bootloader_version 現在のブートローダーのバージョンを確認 rpi-eeprom-update アップデートがあるか確認 sudo rpi-eeprom-update -a アップデート
ファームウェアのバージョンを確認するため rpi-imager をRaspberrypiOS のページからダウンロード して、SD カードに書き込み起動する。
ラズパイ4を完全 USB Boot 化 を参考にさせていただきファームウェアのアップデートを行った。
私の /etc/default/rpi-eeprom-update は default だった。
pi@raspberrypi:~ $ cat /etc/default/rpi-eeprom-update
FIRMWARE_RELEASE_STATUS="default"
最近のラズパイ OS だと、初回起動時のアップデートを行うとファームが最新にアップデートされる模様 購入直後の状態で USB ストレージを刺してとりあえず起動するか確認したが、ファームが古くだめだった。
ラズパイ OS の SD から起動し、初回起動時に現れるアップデートでアップデートするとファームウェアが最新のものに変更された。
Read more... Posted: 2021-08-28
| Categories:
RaspberryPi
| Tags:
RaspberryPi ,
赤外線
ラズパイから赤外線リモコンで操作( はんだ付けなし たぶん電子工作した方が安いのですが手軽に赤外線で操作したい用途です。
ADRSZIRS ゼロワン 赤外線送信拡張基板
Amazon で3278円でした。
Githubにソースコードがあるので、そのまま使います。
これだけで動く。
赤外線コード読み取り ./3_2adrszIRS-sample.py r
書き込み ./3_2adrszIRS-sample.py w 5B0018002E001800
GenPi64だとpythonのライブラリ名が異なっていて修正が必要だった。 3rd/ADRSZIRS_IR_Sender/3_2adrszIRS-sample.py で smbus2 を smbus として使うような修正が必要。
更にpipをインストールして、smbusを追加する。
smbus2を入れる。
emerge dev-python/pip
pip install --user smbus2
3rd/ADRSZIRS_IR_Sender/3_2adrszIRS-sample.py を修正。
--- a/3rd/ADRSZIRS_IR_Sender/3_2adrszIRS-sample.py
+++ b/3rd/ADRSZIRS_IR_Sender/3_2adrszIRS-sample.py
@@ -32,7 +32,8 @@
#
from __future__ import print_function
-import smbus
+import smbus2 as smbus
import time
from time import sleep
実際に使う このパイソンのスクリプトをゴリゴリ修正する、という手もあると思う。
が、手早く色々な機器の操作したいので、bashで下記のようなものを書いた。
#!/bin/bash
dir=$(cd $(dirname $0);pwd)
# power
POWER='5801A90019003F001800400018001400190014001800150018001500180014001800400017003F0019001400190040001700140019003F001800150018004000180014001900140018001500180015001800140019004000170015001800150018003F00190040001700400018003F00180040001800140018003F0019003F001800150018004F03'
${dir}/../RasPi-Zero-One-Series/3rd/ADRSZIRS_IR_Sender/3_2adrszIRS-sample.py w ${POWER}
# 後は必要な機器の赤外線を読み込んで、追加していく
Read more... Posted: 2021-08-24
| Categories:
RaspberryPi
| Tags:
Gentoo ,
RaspberryPi
gentoo-on-rpi-64bit 初期セットアップ ココに書いてあるものをなぞった
このページにラズパイで Gentoo を便利に稼働させる細かいノウハウがあるので一読した方が良い。これを作った sakaki- 氏すごい。
Gentoo 一般についてはGentoo Linux amd64 ハンドブック:Gentoo での作業 にまとまっている。
条件 Linux マシン( Ubuntu 21.04 ) で行った。 解凍に zstd が必要 Xfce, LibreOffice, VLC, Kodi, GIMP などを含むデスクトップ環境を選択した(ライトイメージもある) ライトイメージの場合、解凍されたファイル名も異なるので読み替えが必要 手順 SD カードが刺さっているパスを確認する SD カードを Linux マシンに刺した上で /var/log/syslog を確認するか lsblk で確認する。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 300M 0 part /boot/efi
└─sda2 8:2 0 223.3G 0 part /
sdb 8:16 1 28.9G 0 disk
├─sdb1 8:17 1 255M 0 part
└─sdb2 8:18 1 28.6G 0 part
私の場合は /dev/sdb で認識されていた。
Read more... Posted: 2021-08-18
| Categories:
RaspberryPi
| Tags:
RaspberryPi ,
SoftEther
ソースからのインストールで「unrecognized command line option」というエラーが出る 現在のSoftetherのconfigureではARM 64bit向けの対応がされているので問題ないが、
以前はエラーが出ることがあった。その時のメモ。
ソースコードのconfigure側のアップデートが必要なので、
何か他のソフトウェアでも発生するかもしれないのでメモとして残す。
ラズパイでソースからコンパイルを行った際、下記のエラーが出た。
cc: error: unrecognized command line option ‘-m64’
-m64はインテル系64bitのオプションなので、ARMでは使えない。
対応としては、-m64の箇所を全て削除することで対応した。
emerge vim git
git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
cd SoftEtherVPN_Stable
./configure
vi Makefile
参考 ARM系で -m64 というオプションは無い模様なので、./configure でできた Makefile から -m64 を削除する
64bit Linux で32bit ソースのビルドを行う方法を教えて下さい.
問題自体への理解が進みました。
[softeher] ARM系のCPUのSoC搭載SBCで、ソースからsofteherをビルド
-m64を全て削除、という発想が助かりました。
Read more... Posted: 2021-08-03
| Categories:
RaspberryPi
| Tags:
RaspberryPi ,
SoftEther ,
VPN ,
wifi
背景 自宅に wifi 接続できない HDD レコーダーがあった。が、家庭内で LAN ケーブルは伸ばしたくない。
別にPXE ブートさせたい。かつ wifi で行いたいマシンがあった。
つまりWifi-イーサネットコンバーターが欲しい。 商品もあります が作ってみたかった。
ラズパイをイーサネットコンバーターにする場合、内部的に DHCP を建てる設定例があったが、
できれば同一ネットワークでコンバーターが透過的に動作するようなものが欲しかった。
手軽に使える SoftEther でレイヤー 2 カスケードする設定 で接続した。
ネットワーク構成 SoftEther のクライアント、サーバー共にラズベリーパイをGenPi64 でセットアップして利用。
ただ nmcli( NetworkManager の CLI ツール )が使えれば他構成でもセットアップできそう。
HDDレコーダー or PXEブートしたいマシン => SoftEtherクライアント => SoftEtherサーバー => Internet
という形で外部に出れるようにする。
SoftEther サーバーではイーサネットインターフェースのみの運用とし、tap デバイスをブリッジする構成にした。
(Softetherクライアント、wifiコンバータ側はtapデバイスは作らない)
方針としては、基本的に使わない機能は off、必要に応じて有効にする。
仮想ハブ名: VpnHub1 ダイナミック DNS 機能、DDDS: Off VPN Azure クラウド: off IPsec/L2TP/L2TPv3 サーバー機能の設定: off OpenVPN/MS-SSTP サーバー機能設定: off SecurNAT 機能、DHCP サーバー機能は使わない。 カスケード接続は使う*(レイヤ 2 カスケード接続になる) SoftEther のサーバー/クライアント共に [ローカルブリッジ設定]=>[eth0] と物理インターフェースでブリッジを行う 環境 サーバー/クライアントともに共通
Read more... Posted: 2021-06-04
| Categories:
RaspberryPi
| Tags:
Gentoo ,
RaspberryPi
背景 GenPi64で/var/tmpがzramでマウントされていた。
これ自体は高速化されるので嬉しい。
ただメモリを使うzramの場合、メモリが小さいマシンでは/var/tmpが小さくなり、gccのビルドに失敗する。
このためローカルディスクを使うように変更した。
sudo mkdir /var/portage && sudo chmod 775 /var/portage && sudo chown portage:portage /var/portage
sudo vi /etc/portage/make.conf
下記を追記
PORTAGE_TMPDIR="/var/portage"
Read more...