Raspberry Pi †
元々はイギリスで教育用に開発されたスモールコンピュータ。
ARM CPU(700MHz)、メモリ(256MB/512MB)、SDカード(ストレージ)、有線LAN、HDMI、USB電源で動作する。
デフォルトOSはDebianをカスタムしたRaspbian。
GPIO端子でLED等周辺機器を制御できる。
故障率を減らす †
Raspberry Pi Imager: 公式のSDカードへの書き込みツール †
ラジコン †
HEMS(Home Energy Management System) †
USBアダプタタイプ:
PCのBIOS(UEFI)をRPiで書き直す †
PCのBIOS(UEFI)のEEPROMを、ROMライターの代わりにRPiで書く。
- ICチップとの接続: SPI
- ツール
- FD44Editor: ASUS製BIOS(UEFI)の場合は編集する必要があるようだ
- flashrom:
PCと接続して、給電とインターネット接続を共有する †
SDカードのバックアップ †
- ddコマンド: イメージ丸ごとバックアップできるが、未使用領域までバックアップされるためイメージが大きくなる。 PiShrink で小さくできるらしい。
WiFiの自動再接続 †
sudo wget -O /usr/local/bin/WiFi_Check https://raw.githubusercontent.com/dweeber/WiFi_Check/master/WiFi_Check
sudo chmod 0755 /usr/local/bin/WiFi_Check
# 日本語環境下だと、常に失敗するのでLANGを指定
sudo perl -p -i -e "s/# Settings/# Settings\nexport LANG=C/" /usr/local/bin/WiFi_Check
sudo bash -c "cat > /etc/cron.d/wifi-check << 'EOS'
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
LANG=C
# m h dom mon dow user command
*/5 * * * * root /usr/local/bin/WiFi_Check | /usr/bin/logger -i -t WiFi_Check
EOS"
sudo chmod 0644 /etc/cron.d/wifi-check
sudo chown root:root /etc/cron.d/wifi-check
Power Managementのoff †
sshのレスポンスが悪くなったり、切断されたりする場合、Power Managementをoffにする事で改善する事がある。
- 環境
- RasPi zero w
- Raspbian GNU/Linux 8.0 (jessie)
watchdog: ハングアップ、フリーズしたら自動的に再起動させる †
Bluetooth †
CPUの最高温度の制限 †
デフォルトではCPU 85度で、性能が下がり、熱暴走を抑えるようになっている。
これを任意の値に変える。
microSDの修復 †
- RasPiからmicroSDを取り外し、ホストOSへ付ける
- Memo/VirtualBox#ae8f3d27 を参考にLinux(CentOS 7, Ubuntu 18.04LTS等)でマウントする
- マウント状態を確認。CentOS 7での表示。/dev/sdb[1-7]として認識している
sudo fdisk -l
...
Device Boot Start End Blocks Id System
/dev/sdb1 8192 3140625 1566217 e W95 FAT16 (LBA)
/dev/sdb2 3140626 31116287 13987831 5 Extended
/dev/sdb5 3145728 3211261 32767 83 Linux
/dev/sdb6 3211264 3346431 67584 c W95 FAT32 (LBA)
/dev/sdb7 3350528 31116287 13882880 83 Linux
- Linuxのパーティションを修復
sudo fsck /dev/sdb5
sudo fsck /dev/sdb7
- readonlyテスト。時間がかかる。16GBで、○○時間
sudo badblocks -sv /dev/sdb
microSDの寿命を延ばす。ROM化 †
microSDは書き込み回数上限があるので、何も対策をしないと、数ヶ月で壊れる事もある。
- ROM化
- overlayfsを使用して、書き込みをtmpfsへ
機械学習 †
I2Cデータ転送速度変更 †
- 10Kbit/sへ変更する場合
sudo bash -c "echo dtparam=i2c_baudrate=10000 >> /boot/config.txt"
sudo reboot
- 現在のbaudrateの確認方法。RPi zero Wの場合、
echo 0x$(xxd /sys/class/i2c-adapter/i2c-1/of_node/clock-frequency | cut -f 2,3 -d ' ' --output-delimiter='') | xargs printf "%d\n"
10000
dmesg | grep i2c
# baudrateのログは無い
sudo ls /sys/module/i2c_bcm2835/parameters/
debug # debugしか無い。
# bcm2708では以下のファイルがあるらしい
sudo cat /sys/module/i2c_bcm2708/parameters/baudrate
照度センサ †
- BH1750
- HiLetgo BH1750FVI のi2cdetectのアドレスは「0x23」。1個180円だった。
ロボット †
監視/webカメラ †
Cloud Pi: 容易にNAT越えを可能とするP2Pトンネルシステム †
アクセス制限 †
いずれかの方法がある
デフォルト設定 †
- /etc/default/ に色々ある
keyboard
locale
他PCからRPiを見つけられるようにする †
- avahi-daemon がCPUを10〜15%ほど使うため停止した。
Windows/MacOSXからのネットワークからRPiを簡単に見つけられるように、「avahi-daemon」をインストール。Bonjour互換
- WindowsはiTunesに含まれる「Bonjour」のインストールが必要。WinRARであれば、iTunes64Setup.exe から Bonjour64.msi だけを取り出せた
- MacOSXはデフォルトで入っているため不要
avahi-daemonのInvalid response packetログを捨てる †
以下のログが多数でる事がある。syslogが読みにくいし、microSDの寿命も気になるので捨てる。
自動認識しない無線LANアダプタ †
無線LANアダプタの設定 †
- DHCPの設定例
- Security Mode: WPA2 Personal, WPA Algorithms: AES の場合
wpa_passphrase <SSID> <PASSWORD> >> /etc/wpa_supplicant/wpa_supplicant.conf
vim /etc/wpa_supplicant/wpa_supplicant.conf
----
network={
ssid="<SSID>"
scan_ssid=0
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
#psk="<PASSWORD>"
psk=********
}
----
vim /etc/network/interfaces
----
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
wireless-power off
----
- up/downしてテスト
sudo ifdown wlan0
sudo ifup wlan0
ifconfig
- 速度低下や切断防止に「Power Management:off」かをチェック
iwconfig
...
wlan0 IEEE 802.11bgn...
Power Management:off
デプロイマネージメント †
NSX-39 ポケミクとの接続 †
BIOSの書き換え †
flashromが使える。
GPIO †
音声合成 †
CUIから音を鳴らす †
- 準備
# ミキサーの確認。numid=3のようだ
amixer controls
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default'
# 音声出力先をアナログに設定(1:アナログ、2:HDMI、3:auto)
amixer cset numid=3 1
# テスト。ノイズが再生されたらOK
aplay /usr/share/sounds/alsa/Noise.wav
- 音量を上げる。numid=1
# 現在の音量の確認。values=-1725
amixer cget numid=1
numid=1,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
: values=-1725
| dBscale-min=-102.39dB,step=0.01dB,mute=1
# 音量を90%に設定
amixer cset numid=1 90%
numid=1,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
: values=-662
| dBscale-min=-102.39dB,step=0.01dB,mute=1
- 再起動しても有効なように、現在の設定を保存(/var/lib/alsa/asound.state)
sudo alsactl store
- VLCでmp3他多数のファイルを再生する。Xからなら動画もOK
sudo aptitude install vlc
# mp3,ogg,wavを再生。中止はCtrl + C
cvlc -q --aout alsa /usr/lib/python2.7/dist-packages/pygame/examples/data/house_lo.mp3
cvlc -q --aout alsa /usr/lib/python2.7/dist-packages/pygame/examples/data/house_lo.ogg
cvlc -q --aout alsa /usr/lib/python2.7/dist-packages/pygame/examples/data/house_lo.wav
温度/湿度/気圧計測 †
- BME280: 温度/湿度/気圧
- BMP280: 気圧
- SI7021: 温度/湿度
- USBセンサーは PCsensorのgold TEMPer のOEMが入手しやすく、1000円+送料程度で入手できる
Zabbix Agentのインストール †
cron logの有効化 †
hostname変更 †
独自サービスの追加 †
SoftEther VPNでVPN Server †
- static ipを割り当てておく
- SoftEther ダウンロード センター
- ダウンロードするソフトウェア: SoftEther VPN(Freeware)
- コンポーネントを選択: SoftEther VPN Server
- プラットフォームを選択: Linux
- CPUを選択: ARM EABI(32bit)
- Install
sudo su -
cd /usr/local/src/
wget http://jp.softether-download.com/files/softether/v2.00-9387-rtm-2013.09.16-tree/Linux/SoftEther%20VPN%20Server/32bit%20-%20ARM%20EABI/softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-arm_eabi-32bit.tar.gz
tar xvfz softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
chmod 600 *
chmod 700 vpncmd vpnserver
cd ..
mv vpnserver /usr/local/
chmod 755 /usr/local/vpnserver
rm softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-arm_eabi-32bit.tar.gz
- Check
/usr/local/vpnserver/vpncmd
...
Select 1, 2 or 3: 3
VPN Tools>help
You can use the following 5 commands:
About - Display the version information
Check - Check whether SoftEther VPN Operation is Possible
MakeCert - Create New X.509 Certificate and Private Key
TrafficClient - Run Network Traffic Speed Test Tool in Client Mode
TrafficServer - Run Network Traffic Speed Test Tool in Server Mode
To reference the usage for each command, input "command name /?" to view a help.
The command completed successfully.
VPN Tools>check
VPN Tools>exit
- startup script :
vpnserver.Raspbian
chmod +x /etc/init.d/vpnserver
insserv -d vpnserver
insserv -s | grep vpnserver
K:01:0 1 6:vpnserver
S:01:2 3 4 5:vpnserver
- ログの圧縮と90日を経過したログの削除
sudo crontab -e
----
5 1 * * * ( LOG_DIR="/usr/local/vpnserver/"; /usr/bin/find $LOG_DIR -follow -name "*.log" -type f -mtime +1 -exec /bin/gzip {} \; ; /usr/bin/find $LOG_DIR -follow -name "*.gz" -type f -mtime +90 -delete; )
----
- 起動
service vpnserver start
- 設定ファイル: /usr/local/vpnserver/vpn_server.config
- ログファイル: /usr/local/vpnserver/server_log/vpn_YYYYMMDD.log, /usr/local/vpnserver/security_log/
- WindowsPCにSoftEther VPN Managerのインストール
- SoftEther ダウンロード センター
- ダウンロードするソフトウェア: SoftEther VPN(Freeware)
- コンポーネントを選択: SoftEther VPN Serer Manager for Windows
- プラットフォームを選択: Windows
- CPUを選択: Intel
- softether-vpnserver_vpnbridge-v2.00-9387-rtm-2013.09.16-windows-x86_x64-intel.exe を実行
- SoftEther VPN サーバー管理マネージャ(管理ツールのみ)をインストール
- SoftEther VPN サーバー管理マネージャ を起動
- 新しい接続設定
- 接続設定名:My VPN
- 接続先 VPN Server の指定
- ホスト名:VPN SERVER IP
- ポート番号:443 or any
- パスワード欄は初期設定のため空欄のままで良い
- 接続
- 新しいパスワード設定:
- リモートアクセス VPNサーバ : checked
- 仮想HUB名 : MyHUB
- DynamicDNS : 使用しない
- IPsec / L2TP / EtherIP / L2TPv3 サーバ機能の設定
- checked: L2TPサーバ機能を有効にする(L2TP over IPsec)
- checked: L2TPサーバ機能を有効にする(暗号化されていない L2TP)
- checked: EtherIP / L2TPv3 over IPsecサーバ機能有効
- IPsec 事前共通鍵:******** (MacOSXで使用)
- checked: VPN Azureを無効にする
- VPN接続を受け入れるためのユーザの作成 > ユーザを作成する
- グローバルIP:443(default) から VPN Serverへのstatic routeを設定する
static IPを割り振る †
デフォルトはDHCP
Minecraft: Pi Edition †

- http://pi.minecraft.net/
- Raspbian "wheezy" with XWindows 向け
- ポケットエディションベース、シングルプレイ:クリエイティブモードのみ(v0.1.1 alpha)
- python(default), Ruby でプログラミング可能
- LXTerminalを開く
wget https://s3.amazonaws.com/assets.minecraft.net/pi/minecraft-pi-0.1.1.tar.gz
tar xvfz minecraft-pi-0.1.1.tar.gz
cd mcpi/
./minecraft-pi
Scratch: 子供向けプログラミング環境 †
スクリーンショットを取る †
- 実行: snapshot.pngとして保存される
./raspi2png
ソフトウェア、kernel、GPUファームウェアの更新 †
ディストリビューション †
- NOOBS
- 複数のOSが入ったイメージ。SDにコピーしてからOSを選択するので大きい
- SDカードをフォーマットして、ファイルをコピー。各OSをオフラインやネットワークインストールする
- microSDが大容量(4GB〜)、複数のOSを試したい時や、頻繁にOSを再インストールする場合
- 起動時にshiftキー押しっぱなしでOS選択画面が出る
- Raw Images
- ddを使ってSDカードに書き込む。
- SDカードの容量が小さい(2GB〜4GB)の時、長期にわたってOSの入れ替えが無いケース
Raspberry Pi Imager: デフォルトのインストーラ †
NOOBS : 複数のディストリビューションをメニューから選択してインストール †
※デフォルトがRaspberry Pi Imagerに変わった。
- 各種ディストリビューション(Raspbian, OpenELEC, Pidora等をインストールできる)
- noobs/README.md よく読む
- 4GB以上のSDカードを用意(相性問題があるのため動作確認が取れているカードを使うのが無難)
- 再インストールは起動時にSHIFTキー押しっぱなしでRecovery Menuが出る
- 複数選択した場合は、起動時にOS選択メニューが出る
- PCでSD Formatter 4.0 for SD/SDHC/SDXC - SD Association FORMAT SIZE ADJUSTMENT:ON, でフォーマット
- NOOBSをダウンロード。ここではoffline版
- NOOBS_v1_3.zip を展開。(NOOBS Lite はネットワークインストール専用のためSDカード容量が少なくても良いと思う)
- 全てのファイルをSDカードのルートにコピー
- Raspberry Piに、マウス、キーボード、ディスプレイ、LAN等を差し込んでから電源ON
- NOOBSのメニューが表示されるので、OSを選択
- Language: English(US) (日本語もあるが、localeが変更されraspi-configが化けるため英語)
- Keyboard: jp
- Raspbian にチェック
- Install
- "SDカード上のデータが上書きされるが良い?"と聞いてくるので"Yes"
- 1639MBを書き込むのに0.5〜1.4MB/sec(ADATA class4)位なので、約15分程
- インストールが終わると自動的に再起動する
OpenELEC : XBMC メディアプレイヤー †
Pidora : Fedora系 †
RedHat/CentOS系に慣れた人は良さそう
- pidora
- Fedora RemixをRaspberry Piに最適化したもの
- 初期設定が始まる
- Welcome: Forward
- License Infomation: Forward
- Keyboard: Japanese
- Create User: Username:pidora, Password: ********
- Root User: Password: ********
- Date and Time:
- Time Zone:
- Filesystem:
- System Settings:
Raspbian : debian系(デフォルト) †

- raspi-configが自動起動するので設定
- Expand Filesystem: パーティションの設定。NOOBSは特に設定なし
- Change User Password: piユーザのパスワードを変更
- Enable Boot to Desktop/Scratch: デフォルトで起動するUIを選択。
- Internationalisation Options:言語、タイムゾーン、キーボードレイアウトの設定
- Change Locale: en_US.UTF-8
- Change Timezone: Asia > Tokyo
- Change Keyboard Lauout: Generic 105-key (Intl) PC > Other > Japanese > The default for the keyboard layout
- Enable Camera: Carameモジュールを接続している場合
- Add to Rastrack:
- Overclock:
- Advanced Options:
- A4 SSH: Enabled
- A5 Update: raspi-config自身のネットワークアップデートを行う
- About raspi-config:
- Finishで終了
- ifconfigでIPアドレスを調べる
ifconfig
- 外からsshで接続できるか確認
- Xの起動
startx
- Xの終了: 左下のメニュー > Logout または 右下の電源マークからLogout
購入 †
書籍 †
GPIO/ブレッドボード/その他 †
ケース †
HDMI/DVIケーブル †
- HDMI、HDMI-DVI変換ケーブルで接続できる
- Pi Zero/W はmini-HDMIなので変換アダプタ、mini-HDMIケーブルが必要
WiFi USBアダプタ †
SDカード †
OSをSDカードにインストールするので必須。
- 実際に試してOKだったもの
- A-DATA 16GB (型番不明)
- Transcend microSDHCカード 16GB Class10 TS16GUSDHC10E
電源 †
- microUSB端子。本体にスイッチは無いので、電源ケーブル繋ぐとON。
- Raspberry Pi 3は5V, 2.5A 以上
- 2/Zero/等はmicroUSB端子, 5V, 500mAh 以上
- USB機器(WiFi,USBメモリ,etc)を繋ぐ場合、700mA以上のもの。デフォルトの500mAでは足りず、不安定になる場合もある。
- USBキーボード/マウスを認識しない場合、USBハブのバスパワーではなくACアダプタ経由で繋いだら動作した
本体 †
モデルに種類があるが、個人的には
- 性能重視: RPi 3B+
- 小型/安値重視: RPi zero WH
- RPi zero WはWHより安いが1人1個制限のショップが多い。
- wifi不用であれば、RPi zeroが安いが、1人1個制限のショップが多い。
- 基本は、本体、簡単な説明書のみで、他には何も付属していない。
- 他には、microUSB電源、microUSBケーブル、microSDメモリカード、HDMIケーブル(またはmini-HDMI)、キーボード、マウス(Xを使う場合)、LANケーブル(wifi搭載機は不用)が必要
- SDカードが刺さっていないと、ディスプレイには何も表示されない。問題ない場合はカラーグラデーションがディスプレイに表示される
- ModMyPi イギリス。支払い:PayPal/クレジット/デビット/ビットコイン。ケース付き約5500円(Type B: £24.99 + ケース必須: £4.16 + 送料(EMS): £7.99)
- 送料: グローバル航空便(5-15営業日)£5 / 航空便グローバル署名付き+追跡(3-15営業日)£7.99 / DHLエクスプレス(1-4営業日)£39.99
- 2017-05-19: Raspberry Pi Zero Wあり。1人1個まで。
- RSオンライン 本体のみ約3910円(Type B: £26.00 + 送料:0)、初期は配送が非常に遅い(16週間)トラブルがあった
|
|