Raspberry Pi Zero W Rev 1.1にinstallしたRaspberry pi OS 12 (bookworm) の動作確認です
OLED(SSD1306)に天気情報を流すPython scriptを書いてみた。
百未來信
Raspberry Pi Zero W Rev 1.1にinstallしたRaspberry pi OS 12 (bookworm) の動作確認です
OLED(SSD1306)に天気情報を流すPython scriptを書いてみた。
Raspberry pi OS 12 (bookworm) のinstall 確認用に、中古のRaspberry Pi Zero W Rev 1.1 を入手して、インストールメディア作成して
power on 起動になかなか時間がかかる、リモートでやっと繋がったと思うとすぐ無反応になる
これは、大昔に経験した事象だったかなと思い、
iwconfig コマンド打つと、Power Management:on だと、
しょうがないので、NetworkManager とか訳のわからんものは使ってないので、潔く、/etc/network/interface に wireless-power off を追加する
再起動で、普通にリモート接続出来るようになりました。
Pi Zero Wって標準では、wifiしかないんですがね。不思議なことに 1B plus はドングルのwifiはPower Management:offだったけどね
Raspberry Pi OS が bookworm の場合は、NetworkManager が標準ですが、
Redhat系で、過去に使いにくさを経験してたので、
古来からの(?) /etc/network/interfaces の設定に変更しました
1. interfacesファイルの作成
# cat interfaces
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
allow-hotplug wlan0
auto wlan0
#iface wlan0 inet dhcp
iface wlan0 inet static
address 192.168.xxx.yyy
netmask 255.255.255.0
gateway 192.168.xxx.yyy
wpa-ssid "xxxx"
wpa-psk "ppppp"
dns-nameservers 192.168.xxx.yyy
iface wlan1 inet static
address 192.168.xxx.yyy
netmask 255.255.255.0
gateway 192.168.xxx.yy
wpa-ssid "xxxxx"
wpa-psk "ppppp"
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.xxx.yyy
netmask 255.255.255.0
gateway 192.168.xxx.yy
dns-nameservers 192.168.xxx.yy
2. NetworkManagerの無効化及び停止
sudo systemctl disable NetworkManager
sudo systemctl stop NetworkManager
3. resolv.confの手動設定
# cat resolv.conf
# Generated by NetworkManager
nameserver 192.168.xxx.yy
4. reboot
以上
ThinkCentre M75q-1 Tiny の
WiFi 5 モジュール(intel Wireless-AC 9260)を交換(ダウングレード)しようとして
見た目ちょっとやばそうな螺子だなと思ったんだが他で実績のあるドライバーで
回すと、どんどんなめていく。。
おまけに、余計なアンテナ端子ガードが付いてて、ネジザウルス使うのに邪魔
そのガードをやっと外して、
さら螺子だったけどネジザウルスでするすると廻った
のに感動です!!
Thinkpad L390ですが、
ネットで調べても、
CNVi対応の無線LANカードモジュールしか使えないとの情報はあるんですが、
非CNViカード(Eキーだけ、Aキーなし)が使えたとの情報がありませんね。
試してみました。
何の問題も無く使えましたね。
AX対応のルーターに接続出来ました。
リンク速度: 1201(Mbps) でした。
https://github.com/micropython/micropython/issues/10812
の方と同様の現象発生で、昨日悩まされてました。
You need to close the waiting (bound on port 80) socket, otherwise you won't be able to make a new one on the same port.
しょうがないので、とりあえず、bind(addr)を正常終了までリトライするコード
に変えてみました。
以下、コード例
....
# Open socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
##s.bind(addr)
bs="addr"
ec=0
while bs!=None:
try:
bs=s.bind(addr)
except OSError:
ec=ec+1
print("EADDRINUSE?? " + str(ec))
utime.sleep(1)
print('s.bind(addr) rt ', bs)
s.listen(1)
print('listening on', addr)
....
とりあえず、
最悪でも、2分以内に、bind出来た。。