#author("2021-12-07T09:18:08+00:00","","") #author("2021-12-07T09:20:57+00:00","","") &size(24){Raspberry Pi Tips}; * INDEX [#u291f0ec] #contents * 種類の概要 [#red103dc] - RaspberryPi Zero~ 1GHzのシングルコア~ RAMは512MB~ USB OTGが1ポート(USBを使うにはMicroB→A変換が必須)~ HDMIはMini - RaspberryPi ZeroW~ PiZeroに&color(red,yellow){WiFiとBtが追加};された。~ WHはGPIOピンヘッダが実装済み - RaspberryPi 2B~ 入手困難になっているので詳細は省略。~ &color(red){WiFiとBT無し}; - RaspberryPi 3B~ 1.2GHzのクアッドコア~ RAMは1GB~ WiFiとBtが内蔵~ USB2.0が4ポートと100Mbps LAN 電源は2.5A以上 - RaspberryPi 3B+~ 1.4GHzのクアッドコア~ RAMは1GB~ WiFi(2.4GHzと&color(red,yellow){5GHz};)とBtが内蔵(5GHz帯は国設定をしないと使えない)~ USB2.0が4ポートと1Gbps LAN(&color(red){ただし、NICがUSB2.0接続なので300Mbps程度しか出ない};)~ 入手困難になっている。 - RaspberryPi 3A+~ 1.4GHzのクアッドコア~ RAMは512GB(&color(red){3B+の半分};)~ WiFi(2.4GHzと5GHz)とBtが内蔵~ USB2.0が&color(red){1ポート};(&color(red){LANポートは無い};)~ Pi3+から最小限のI/Oを残した小型版。背が低い。 - RaspberryPi 4B~ 1.5GHzのクアッドコア~ RAMは1/2/4GBの3種類から選べる(&color(red,yellow){LPDDR4};)~ WiFi(2.4GHzと5GHz)とBtが内蔵~ USB2.0が2ポートと&color(red,yellow){USB3.0が2ポート};と1Gbps LAN~ &color(red,yellow){HDMI Microが2ポート};あり、4K 60P x1か4K 30P x2が可能~ 電源入力がUSB &color(red,yellow){Type-C};になった(5V/3A以上)~ OSは&color(red){Buster以降};で対応 ** メモ [#mfb0b5c5] Pi4以前のモデルは、SDカードの速度が22MB/s程度で頭打ちになる。~ よって、早いSDカードを使っても恩恵は無い。~ Pi4からはSDカードインタフェースが高速化され、さらに32GBを超えるSDXCも使用できるようになったらしい。 * Image取得先 [#k8d26ec9] https://www.raspberrypi.org/downloads/raspbian/ * USBポートの供給能力を1200mAに拡大する [#b090ee67] いずれも全ポート合計の給電能力を示す。 - RaspberryPi2 Model B~ /boot/config.txt max_usb_current=1 - RaspberryPi3 Model B~ デフォルトで1200mAになっている * Bluetoothを無効にしてUARTを有効にする [#ge90dd38] /boot/config.txt # Enable UART (without Bluetooth) enable_uart=1 dtoverlay=pi3-disable-bt * BluetoothとUARTを有効にする [#c47ba308] /boot/config.txt # Enable UART enable_uart=1 dtoverlay=pi3-miniuart-bt RaspberryPi ZeroでBtとUARTを同時に使用する場合はMiniUART機能を使う。制約があるので注意。~ 詳細はこちら→ RasPi_uart * Network関係 [#a561ea42] ** SSHを有効化 [#waff4287] デフォルトではSSHが無効になっているので、有効化しないといろいろ大変です。~ /boot(FATパーティション)に「ssh」または「ssh.txt」という空ファイルを置けば良い。~ イメージ焼いた直後にやってしまうと良いでしょう。 ** WiFi接続 [#m1f76059] こちらも/bootにあらかじめwpa_suppilicant.confというファイルを作っておくと自動で読み込んでくれる。~ 読み込みに成功すると/bootに置いたwpa_suppilicant.conは削除される。~ こちらは拡張子.txtを付けない。 priorityの指定は数字が大きいほど優先度が高い。~ priolityを指定しないと電波が強い順につなぎに行く。 /etc/wpa_supplicant/wpa_supplicant.conf~ ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="BWT_Net" psk="PASSWORD" key_mgmt=WPA-PSK priority=0 priority=2 } network={ ssid="BWT_Net_mobile" psk="PASSWORD" key_mgmt=WPA-PSK priority=1 } ** IPアドレスを固定にする [#r575d745] /etc/dhcpcd.conf~ # Fixed address interface wlan0 static ip_address=192.168.1.52/24 static routers=192.168.1.254 static domain_name_servers=192.168.1.1 ** NTPで時刻同期 [#zcd08054] ntpをインストール~ $ sudo apt install ntp /etc/ntp.confを編集~ #pool 0.debian.pool.ntp.org iburst #pool 1.debian.pool.ntp.org iburst #pool 2.debian.pool.ntp.org iburst #pool 3.debian.pool.ntp.org iburst pool ntp.nict.jp iburst サービスを再起動~ $ sudo service ntp restart 状態を確認~ $ ntpq -p * 不要なサービスを停止させる [#a6701daf] chkconfigをインストール sudo apt install chkconfig サービスを停止 $ sudo chkconfig triggerhappy off $ sudo chkconfig plymouth off $ sudo chkconfig alsa-utils off * コンソールログイン時に表示されるメッセージを消す [#dbff35ef] /etc/motdを編集する。~ 何も表示させたくなければ $ touch ~/.hushlogin と、しておけば良い。 * RaspberryPi SDカードイメージをLinuxでマウント [#wfa9023e] 配布用SDカードイメージを作成後に、一部のファイルだけを差し替えたくなった時に活用できる。~ 特にパーティションサイズを変更して配布イメージサイズを小さくしている場合に便利。~ 通常の考え方だと、一度イメージをSDカードに書き出してから編集。その後、再度イメージファイルを作成する手順となる。~ この手順であれば、SDカードを介在せずに目的を達成できる。 ** パーティション状態を調べる [#hb0efd8e] $ fdisk -l -u 2017-04-10-raspbian-jessie-lite.img ディスク 2017-04-10-raspbian-jessie-lite.img: 1297 MB, 1297862656 バイト ヘッド 255, セクタ 63, シリンダ 157, 合計 2534888 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0x84fa8189 デバイス ブート 始点 終点 ブロック Id システム 2017-04-10-raspbian-jessie-lite.img1 8192 92159 41984 c W95 FAT32 (LBA) 2017-04-10-raspbian-jessie-lite.img2 92160 2534887 1221364 83 Linux ** 第2パーティションをマウントするため、オフセット値を計算する [#lc1b7b98] 第2パーティションの開始セクタは92160なので、セクタサイズ512をかけて「92160×512=47185920」になる。 ** マウントする [#a50d1dd8] # mkdir /mnt/RasPi # mount -t ext4 -o loop,offset=47185920 2017-04-10-raspbian-jessie-lite.img /mnt/RasPi * Read Only ファイルシステムの構築 [#ea955b11] → [[こっち>RaspberryPi_ReadOnlyFS]] * USB-UARTケーブル(3.3V) [#gc21b833] &ref(USB-UART.PNG); * GPIOピン配列 [#tdce4d8f] &ref(GPIO.png); * if Up/Down [#uda3fced] ip-up/if-downコマンドは無くなりました。~ ifconfig eth0 down~ ifconfig wlan0 up * RaspberryPi Zeroの左USBをUSB-UARTに見るよう設定してコンソールにする [#afdbf058] - /boot/config.txtに次の行を追加~ dtoverlay=dwc2 - /boot/cmdline.txtのrootwaitとquietの間にmodules=を追加~ rootwait modules-load=dwc2,g_serial quiet - ttyGS0をコンソールに設定~ sudo systemctl enable serial-getty@ttyGS0.service * RaspberryPi Zeroの左USBをUSB-LANに見るよう設定する [#z27daf30] - /boot/config.txtに次の行を追加~ dtoverlay=dwc2 - /boot/cmdline.txtのrootwaitとquietの間にmodules=を追加~ rootwait modules-load=dwc2,g_ether quiet - Windows機にドライバを入れる~ http://catalog.update.microsoft.com/v7/site/ScopedViewRedirect.aspx?updateid=37e35bd4-d788-4b83-9416-f78e439f90a2~ ▲リンク切れでドライバが入手できない。~ Win10は無理かも。~ Win7ならドライバの当てなおしで対応できるらしい。~ ネットワークアダプタ > Microsoft Corporation > Remote NDIS Compatible Device * HDMIモニターにコンソールを出さなくする [#rf56c558] login:とかコンソールメッセージが出ないようにしたいとき。~ /boot/cmdline.txtの中の「console=tty1」を削除してやれば良い。~ ただし、USBキーボードでloginは出来なくなるので、sshかserialからloginする。~ cmdline.txtの例: dwc_otg.lpm_enable=0 console=serial0,115200 root=PARTUUID=bad0fa01-02 rootfstype=ext4 elevator=deadline ipv6.disable=1 rootwait modules-load=dwc2,g_serial quiet logo.nologo vt.global_cursor_default=0 force_turbo=1 - シリアルポートからログイン(115.2Kbps) - コンソール無効(console=tty1を削除) - IPv6無効 - USB OTGをUSB-SERIALに見せる(RaspberryPi ZeroとRaspberryPi4) - 起動メッセージ(だばぁっと出る、見えると安心する起動シーケンス)を抑止 - ラズベリーロゴを抑止 - カーソル表示を抑止 - 高速起動