HOME | Raspberry Pi | ビジネス書籍紹介 | 2024-11-25 (Mon) Today's Access : 381 Total : 1099339. Since 10 Sep. 2019

Zero 2 W と Bullseye
2022.02.08


YouTube でも紹介しています。画像をクリックすると再生できます。

Raspberry Pi Zero W と 2 W の大きな違いは、CPUアーキテクチャが ARMv6 (32bit) → ARMv8 (64bit) に変更されたことにあります。
これにより、2 W では、Raspberry Pi 3 と同等の開発環境を構築できるようになりました。
Raspberry Pi シリーズの性能比較は、他サイトや既存の動画にて確認してみてください。

Zero2 W Zero W 3B
CPUチップ RP3A0 SiP
(Broadcom
BCM2710A1)
Broadcom
BCM2835
Broadcom
BCM2837
CPUコア数 4コア 1コア 4コア
動作クロック周波数 1.0GHz 700MHz 1.2GHz
メモリ 512MB 512MB 1GB
CPUアーキテクチャ ARMv8 (64bit)
ARM Cortex-A53
ARMv6 (32bit)
ARM11
ARMv8 (64bit)
ARM Cortex-A53
Ref.Raspberry Pi

Zero W と Zero 2 W での開発環境の違いについて軽く触れておきます。

■TTGO T-Camera ESP32 WROVER & PSRAM Camera Module ESP32-WROVER-B OV2640 Camera Module 0.96 OLED (魚眼レンズ)

これは以前に紹介した、ESP32 CAMERA です。これに使用するソースコードを、Zero W でビルドしようとしました。

$ platformio init -b esp32cam

下記は、Raspberry Pi Zero W でビルドした結果です。
$ platformio run
Processing esp32cam (platform: espressif32; framework: arduino; board: esp32cam)
-----------------------------------------------------------------------
PlatformManager: Installing espressif32
Downloading [####################################] 100%
Unpacking [####################################] 100%
espressif32 @ 1.11.2 has been successfully installed!
The platform 'espressif32' has been successfully installed!
The rest of packages will be installed automatically depending on your build environment.
PackageManager: Installing tool-esptoolpy @ ~1.20600.0
tool-esptoolpy @ 1.20600.0 has been successfully installed!
PackageManager: Installing toolchain-xtensa32 @ ~2.50200.0
Error: Could not find a version that satisfies the requirement '~2.50200.0' for your system 'linux_armv6l'

platformioは以下のURLからパッケージを探します。
http://dl.platformio.org/packages/manifest.json
(※ ~/.platformio/packages/toolchain-xtensa32)

manifest.jsonの中身をみてみると
....
"toolchain-xtensa32": [
 {
  "sha1": "78fd686e27d2619a2691150a25015ab44ae5d7ca",
  "system": [
   "linux_armv7l",
   "linux_armv8l"
  ],
  "url": "http://dl.platformio.org/packages/toolchain-xtensa32-linux_armv7l-2.50200.80.tar.gz",
  "version": "2.50200.80"
 },
....
toolchain-xtensa32 は。ESP32用の開発ツール群です。 linux_armv61 は対象外となっていて、パッケージをダウンロードできず、ビルドできませんでした。
※現在では、アップデートされビルド可能になっています。

このような理由もあって、Zero W は開発環境の第一線から退くことになり、開発環境の主流は、Raspberry Pi 3 となっていました。

時は流れ、Zero 2 W のリリースにより、CPUアーキテクチャが、64bit ARMv8 に変更され、Raspberry Pi 3 と同様の開発環境の構築が可能になりました。

ここで、現在の開発環境である、Raspberry Pi 3 model B を確認しておきます。

■Raspberry Pi 3 model B
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
$ lscpu
Architecture:        armv7l
Byte Order:          Little Endian
CPU(s):              4
Vendor ID:           ARM
Model:               4
Model name:          Cortex-A53
CPU max MHz:         1200.0000
CPU min MHz:         600.0000
lsb_release では、32ビットカーネルと32ビットsysrootを実行しているarmv8ハードウェアの場合、armv7lが返されます。
Rapbianをインストールした当初、OSは32bitで、64bitのARMv8は使えず、32bitのARMv7互換しか使えなかったため、 ARMv7対応のパッケージがインストールされたことにより、アーキテクチャに、arm7lが表示されています。
Ref.Add core definition for armv8l and armv7l
Ref.Raspberry Pi 3はまだ"真の力"を発揮していないだけ

Raspberry Pi には基板固有のリビジョンコードがあります。
$ cat /proc/cpuinfo
model name      : ARMv7 Processor rev 4 (v7l)
Hardware        : BCM2835
Revision        : a32082
Serial          : 00000000XXXXXXXX
Model           : Raspberry Pi 3 Model B Rev 1.2
マスクして表示していますが、Serialの部分が一意のコードです。
Hardware の部分に、BCM2835と表示されていますが、RPi3のSoCは BCM2837 です。この理由に付いては下記を参考にしてください。
Ref.RPi 3 with BCM2835 ???
Ref.Raspberry Pi各モデルのリビジョンを調べる

$ dpkg -s gcc
Architecture: armhf
Version: 4:8.3.0-1+rpi2
Provides: c-compiler, gcc-arm-linux-gnueabihf (= 4:8.3.0-1+rpi2)

■下準備


CPUチップには、ヒートシンクを取り付けてしまうので、型番確認用に、刻印されたロゴ・マークの記念撮影です。


Zero 2 W にヘッダーピンをはんだ付けして、ケースに収納、ヒートシンクを貼り付けて完成です。
開発環境として使うのであれば、この程度の放熱対策で十分だと思います。

■Raspberry Pi OS Bullseye ARM64

Raspberry Pi OS Buster (32bit) と同様の開発環境を構築してもよいのですが、それでは、ARMv8 の性能を活かせません。
そこで、Zero 2 W に、64bit版 Raspberry Pi OS Bullesys の検証環境という位置づけで開発環境を構築していきます。

Raspberry Pi OS 64bit版のダウンロード
Ref.Index of /raspios_arm64/images

raspios_arm64-2022-01-28/ 2022-01-28 16:53
2022-01-28-raspios-bullseye-arm64.zip
  ↓解凍
2022-01-28-raspios-bullseye-arm64.img


Ref.Raspberry Pi
ダウンロードしたRaspberry Pi Imager を起動します。

CHOOSE OSでUse customをクリックし、先程ダウンロードして解凍したimgファイルを選択します。


書き込み先を選び、全部消えちゃうけどいいよね確認にオッケーして、SDカードに書き込みします。
書き終わったら、Zero 2 W のSDカードスロットに挿します。


初期設定時のみに使用するHDMIモニターとキーボード。ネットワーク接続設定完了後は、SSH接続するので不要になります。

初期インストールに関しては、従来のRaspberry Pi OS 32bit版 Busterとほとんど同じです。

解像度を1280x800に変更

$ sudo vi /boot/config.txt

framebuffer_width=1280
framebuffer_height=800
hdmi_group=2
hdmi_mode=28
hdmi_cvt=1280 800 60 5 0 0 0

■Raspberry Pi Zero 2 W (RaspiOS 64bit Bullseye)
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye
$ lscpu
Architecture:                    aarch64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          4
Vendor ID:                       ARM
Model:                           4
Model name:                      Cortex-A53
CPU max MHz:                     1000.0000
CPU min MHz:                     600.0000
$ cat /proc/cpuinfo
Hardware        : BCM2835
Revision        : 902120
Serial          : 00000000XXXXXXXX
Model           : Raspberry Pi Zero 2 W Rev 1.0
$ dpkg -s gcc
Architecture: arm64
Version: 4:10.2.1-1
Provides: c-compiler, gcc-aarch64-linux-gnu (= 4:10.2.1-1)
■Python関連

BullseyeではPython2用にビルドされているコアパッケージはほとんどありません。 アップデートが終了しているPython2用のライブラリは動作しない可能性があります。
$ ls -al /usr/bin/python*
/usr/bin/python -> python2
/usr/bin/python2 -> python2.7
/usr/bin/python2.7
/usr/bin/python3 -> python3.9
/usr/bin/python3.9

$ cat /usr/local/bin/pip
#!/usr/bin/python3
.....
$ cat /usr/local/bin/pip3
#!/usr/bin/python3
.....

pythonコマンドでは、python2が起動するようになっていますが、pip は pip も pip3 も python3を指しています。

#!/usr/bin/python
#!/usr/bin/env python
Shebang(シバン)は、Linux環境でスクリプトの1行目に記述し、そのスクリプトを実行するインタープリタを示します。
Python3 を前提とした Bullseye で、Python 2 で動作してしまっては混乱を招きます。 そこで、Pythonコマンドが実施された場合に、Python 3 で動作するように設定変更します。

$ sudo apt-get install python-dev-is-python3
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libpython2-dev libpython2.7 libpython2.7-dev python2-dev python2.7-dev
これを削除するには 'sudo apt autoremove' を利用してください。
取得:1 http://deb.debian.org/debian bullseye/main arm64 python-is-python3 all 3.9.2-1 [2,800 B]
取得:2 http://deb.debian.org/debian bullseye/main arm64 python-dev-is-python3 all 3.9.2-1 [1,396 B]
python-dev-is-python2 (2.7.18-9) を削除しています ...

$ ls -al /usr/bin/python*
/usr/bin/python -> python3
/usr/bin/python2 -> python2.7
/usr/bin/python2.7
/usr/bin/python3 -> python3.9
/usr/bin/python3.9

※Python2絡みで影響を受けてしまったアプリケーション
Pimoroni Piano HAT と DAWソフトウェア Rosegarden を連携するための、midi-sequencerでエラーがでてしまいました。
AttributeError: module 'midi.sequencer' has no attribute 'SequencerHardware'
このモジュールは、Python 2 用のライブラリに依存しています。 この類のエラーは厄介で、python3対応モジュールがでるのを待つことにします。

■WiringPiライブラリのビルド
gpioコマンドを使えるようにするために、WiringPiをビルドしました。
$ sudo apt-get install libi2c-dev
$ git clone https://github.com/WiringPi/WiringPi.git
$ cd WiringPi
$ ./build

■無線LANの設定
$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
  ssid="[ブロードバンドルーターのSID]"
  psk="[パスフレーズ]"
  key_mgmt=WPA-PSK
}

ブロードバンドルータのSID、パスフレーズが設定されていない場合は、このファイルを直接編集してください。

◇ラズベリーパイのローカルIPアドレスの固定化
下記を追加します。
$ sudo vi /etc/dhcpcd.conf
interface wlan0
SSID [ブロードバンドルーターのSID]
static ip_address=192.168.11.33/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

ここでは、ラズベリーパイのローカルIPアドレスを 192.168.11.33、ルーターのアドレスを、192.168.11.1 として説明しています。

■2022.02.07時点での未解決事項

・機械学習ライブラリー scikit-learn(サイキット・ラーン)
・科学技術計算ライブラリー SciPy(サイパイ)
 ダウンロード終了間際に強制終了

$ sudo pip3 install tensorflow
ERROR: Could not find a version that satisfies the requirement tensorflow ERROR: No matching distribution found for tensorflow

1月28日に公開されたばかりパッケージなので、まもなく対応してくれるかもしれません。

■参考文献
3Bよりも速く、従来のZeroモデルより5倍速いPi Zero2 W
Raspberry pi OS 64bit 版 に移行!
Python 2 support for Bullseye
 Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2019.12.19 ファイル共有 dokany + Win-sshfs
2019.12.26 Arduino開発環境構築 PlatformIO
2022.02.08 Zero 2 W と Bullseye
2022.07.15 NAS導入とApache2パス設定
2023.04.01 秋月・amazon・PIMORONI・tindie
2023.07.16 ログ表示
2023.10.16 漢字フォントの表示と拡張
2024.04.23 NASリプレース
2024.10.24 Bookworm & PlatformIO


Arduinoで学ぶ組込みシステム入門(第2版)
●Arduinoを使って組込みシステム開発を理解する
・ハードウェアやソフトウェアなどの基礎知識/ ・設計から実装までを系統的に説明するモデルベース開発/ ・Arduinoを用いた実際の開発例

最新 使える! MATLAB 第3版
◆◆すぐに「使える!」 全ページフルカラー!◆◆
・MATLAB R2022bに対応し、解説もより詳しく!/ ・コマンド・スクリプトの例が豊富で、動かして学べる!/ ・超基本から解説。これから使いはじめる人にぴったり!/ ・全編フルカラー、スクリーンショットも豊富!

Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
1.システム構築をインフラから始めるには/ 2.ネットワークを構築する/ 3.サーバーを構築する/ 4.Webサーバーソフトをインストールする/ 5.HTTPの動きを確認する/ 6.プライベートサブネットを構築する/ 7.NATを構築する/ 8.DBを用いたブログシステムの構築/ 9.TCP/IPによる通信の仕組みを理解する

C言語は第二の母国語: 独学学生時代から企業内IT職人時代に培った、独立のための技術とノウハウ 平田豊著
学生時代から独学でプログラミングをはじめ、企業内でデバイスドライバを開発し、そして独立後もたくさんのアプリケーション開発や技術書制作に携わってきた著者。その筆者が大事に使い続ける「C言語」の“昔と今”について、気づいたことや役立つ知識、使ってきたツールなどについて、これまで記してきたことを整理してまとめました。 本書では、現役プログラマーだけでなく、これからプログラミングを学ぶ学生などにも有益な情報やノウハウを、筆者の経験を元に紹介しています。

1冊ですべて身につくJavaScript入門講座
・最初の一歩が踏み出せる! 初心者に寄り添うやさしい解説 ・最新の技術が身につく! 今のJavaScriptの書き方・使い方 ・絶対に知っておきたい! アニメーションとイベントの知識 ・プログラミングの基本から実装方法まですべて学べる

図解! Git & GitHubのツボとコツがゼッタイにわかる本
ソフトウェア開発では欠かすことのできないGit、GitHub。 これからGit、GitHubを使いたいという入門者の方でも、実際に手を動かしながら使い方を学べます。

C自作の鉄則!2023 (日経BPパソコンベストムック)
メーカー製のパソコンはスペックが中途半端で、自分が本当に欲しい機種がない――。そう思っている人には、ぜひ自作パソコンをお薦めします。自作パソコンのパーツは進化が速く、しかも驚くほど種類が豊富。価格も性能も、幅広く用意されているため、満足度100%の“自分だけの1台”を手に入れることができます。

Interface 2023年6月号
特集:第1部 フィルタ設計 基礎の基礎/ 第2部 係数アプリや波形観測アプリで合点!FIR&IIRフィルタ作り/ 第3部 配布プリント基板で体験!マイコンで動くフィルタ作り

日経Linux 2023年5月号
【特集 1】 AI時代の最強フリーソフト ~ 25のやりたいを実現! 【特集 2】 AWS、Azureのうまみを無料で体感!面倒なことはクラウドに任せよう 【特集 3】 新しいRaspberry Pi Cameraで遊んでみよう 【特集 4】 Linuxで旧型PCを復活! 1kg切るモバイルPCを「ChromeOS Flex」でChromebook化

ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。

地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる! 地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開

Raspberry Piのはじめ方2022
本書は、ラズパイやPicoの買い方やインストール、初期設定といった基本から、サーバー、電子工作、IoT、AIといったラズパイならではの活用方法まで、1冊でお届けします。 ラズパイをこれから始める方向けに、全36ページの入門マンガ「女子高生とラズベリーパイ」も巻末に掲載。これを読むだけでラズパイがどんなものなのか、すぐに分かって触れるようになります。

ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。 Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。 専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。 本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。

攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。

ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS… 全WEB媒体で効果バツグン! カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術

プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc. 世界のトップはなぜプログラマーなのか?

ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場! 高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。 DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。 作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。

Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。 この本では,ベイズ統計学のきほんをやさしく紹介していきます。

白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81


無水エタノールP 500mlx2個パック(掃除)


ケイバ(KEIBA) マイクロニッパー MN-A04


サンハヤト SAD-101 ニューブレッドボード


白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02


[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠


Copyright © 2011-2024 Sarako Tsukiyono All rights reserved®.