Raspberry Pi

元々はイギリスで教育用に開発されたスモールコンピュータ。
ARM CPU(700MHz)、メモリ(256MB/512MB)、SDカード(ストレージ)、有線LAN、HDMI、USB電源で動作する。
デフォルトOSはDebianをカスタムしたRaspbian。
GPIO端子でLED等周辺機器を制御できる。


Raspberry Pi Pico:

購入:

簡易オシロスコープ:


pinout: GPIO等のピン情報を表示

インストール:


節電


長期運用


Raspberry Pi Imager: 公式のSDカードへの書き込みツール、セットアップのカスタマイズ


ラジコン


HEMS(Home Energy Management System)

USBアダプタタイプ:


PCのBIOS(UEFI)をRPiで書き直す

PCのBIOS(UEFI)のEEPROMを、ROMライターの代わりにRPiで書く。


PCと接続して、給電とインターネット接続を共有する


SDカードのバックアップ


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

wifi接続

wifiアクセスポイントの検索:

sudo iwlist wlan0 scan | grep ESSID

pskの生成:

WIFI_SSID="example-ssid"
read -sp "WIFI_PASSWD: " WIFI_PASSWD
wpa_passphrase "${WIFI_SSID}" "${WIFI_PASSWD}"

microSD /boot/wpa_supplicant.conf を作成。起動後 /etc/wpa_supplicant/wpa_supplicant.conf へ上書きされる

sudo vi /boot/wpa_supplicant.conf
--
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="example-ssid"
        psk=****
}
--

Power Managementのoff

sshのレスポンスが悪くなったり、切断されたりする場合、Power Managementをoffにする事で改善する事がある。


watchdog: ハングアップ、フリーズしたら自動的に再起動させる


Bluetooth


CPUの最高温度の制限

デフォルトではCPU 85度で、性能が下がり、熱暴走を抑えるようになっている。
これを任意の値に変える。


microSDの修復

  1. RasPiからmicroSDを取り外し、ホストOSへ付ける
  2. Memo/VirtualBox#ae8f3d27 を参考にLinux(CentOS 7, Ubuntu 18.04LTS等)でマウントする
  3. マウント状態を確認。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
  4. Linuxのパーティションを修復
    sudo fsck /dev/sdb5
    sudo fsck /dev/sdb7
  5. readonlyテスト。時間がかかる。16GBで、○○時間
    sudo badblocks -sv /dev/sdb

microSDの寿命を延ばす。ROM化

microSDは書き込み回数上限があるので、何も対策をしないと、数ヶ月で壊れる事もある。


機械学習


I2Cデータ転送速度変更

  1. 10Kbit/sへ変更する場合
    sudo bash -c "echo dtparam=i2c_baudrate=10000 >> /boot/config.txt"
    sudo reboot
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

照度センサ


ロボット


監視/webカメラ


Cloud Pi: 容易にNAT越えを可能とするP2Pトンネルシステム


アクセス制限

いずれかの方法がある


デフォルト設定


他PCからRPiを見つけられるようにする

Windows/MacOSXからのネットワークからRPiを簡単に見つけられるように、「avahi-daemon」をインストール。Bonjour互換


avahi-daemonのInvalid response packetログを捨てる

以下のログが多数でる事がある。syslogが読みにくいし、microSDの寿命も気になるので捨てる。


自動認識しない無線LANアダプタ


無線LANアダプタの設定


デプロイマネージメント


NSX-39 ポケミクとの接続


BIOSの書き換え

flashromが使える。


GPIO


音声合成


CUIから音を鳴らす


温度/湿度/気圧計測


Zabbix Agentのインストール


cron logの有効化


hostname変更


独自サービスの追加


SoftEther VPNでVPN Server

  1. static ipを割り当てておく
  2. SoftEther ダウンロード センター
    • ダウンロードするソフトウェア: SoftEther VPN(Freeware)
    • コンポーネントを選択: SoftEther VPN Server
    • プラットフォームを選択: Linux
    • CPUを選択: ARM EABI(32bit)
  3. 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
  4. 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
  5. startup script : filevpnserver.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
  6. ログの圧縮と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; )
    ----
  7. 起動
    service vpnserver start
    • 設定ファイル: /usr/local/vpnserver/vpn_server.config
    • ログファイル: /usr/local/vpnserver/server_log/vpn_YYYYMMDD.log, /usr/local/vpnserver/security_log/
  1. SoftEther ダウンロード センター
    • ダウンロードするソフトウェア: SoftEther VPN(Freeware)
    • コンポーネントを選択: SoftEther VPN Serer Manager for Windows
    • プラットフォームを選択: Windows
    • CPUを選択: Intel
  2. softether-vpnserver_vpnbridge-v2.00-9387-rtm-2013.09.16-windows-x86_x64-intel.exe を実行
  3. SoftEther VPN サーバー管理マネージャ(管理ツールのみ)をインストール
  4. SoftEther VPN サーバー管理マネージャ を起動
  5. 新しい接続設定
    • 接続設定名:My VPN
    • 接続先 VPN Server の指定
      • ホスト名:VPN SERVER IP
      • ポート番号:443 or any
      • パスワード欄は初期設定のため空欄のままで良い
  6. 接続
  7. 新しいパスワード設定:
  8. リモートアクセス VPNサーバ : checked
  9. 仮想HUB名 : MyHUB
  10. DynamicDNS : 使用しない
  11. IPsec / L2TP / EtherIP / L2TPv3 サーバ機能の設定
    • checked: L2TPサーバ機能を有効にする(L2TP over IPsec)
    • checked: L2TPサーバ機能を有効にする(暗号化されていない L2TP)
    • checked: EtherIP / L2TPv3 over IPsecサーバ機能有効
    • IPsec 事前共通鍵:******** (MacOSXで使用)
  12. checked: VPN Azureを無効にする
  13. VPN接続を受け入れるためのユーザの作成 > ユーザを作成する
    • user01
    • ローカルブリッジの設定: eth0
  1. グローバルIP:443(default) から VPN Serverへのstatic routeを設定する

static IPを割り振る

デフォルトはDHCP


Minecraft: Pi Edition

raspbian-minecraft-0.1.1.jpg

  1. 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: 子供向けプログラミング環境


スクリーンショットを取る


ソフトウェア、kernel、GPUファームウェアの更新


ディストリビューション


Raspberry Pi OS (64-bit)

メリット:


Raspberry Pi Imager: デフォルトのインストーラ


NOOBS : 複数のディストリビューションをメニューから選択してインストール

※デフォルトがRaspberry Pi Imagerに変わった。

  1. PCでSD Formatter 4.0 for SD/SDHC/SDXC - SD Association FORMAT SIZE ADJUSTMENT:ON, でフォーマット
  2. NOOBSをダウンロード。ここではoffline版
  3. NOOBS_v1_3.zip を展開。(NOOBS Lite はネットワークインストール専用のためSDカード容量が少なくても良いと思う)
  4. 全てのファイルをSDカードのルートにコピー
  5. Raspberry Piに、マウス、キーボード、ディスプレイ、LAN等を差し込んでから電源ON
  6. NOOBSのメニューが表示されるので、OSを選択
    • Language: English(US) (日本語もあるが、localeが変更されraspi-configが化けるため英語)
    • Keyboard: jp
  7. Raspbian にチェック
  8. Install
  9. "SDカード上のデータが上書きされるが良い?"と聞いてくるので"Yes"
  10. 1639MBを書き込むのに0.5〜1.4MB/sec(ADATA class4)位なので、約15分程
  11. インストールが終わると自動的に再起動する

OpenELEC : XBMC メディアプレイヤー


Pidora : Fedora系

RedHat/CentOS系に慣れた人は良さそう

  1. 初期設定が始まる
    • 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系(デフォルト)

raspbian-7.1.jpg

  1. 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:
  2. Finishで終了
  3. ifconfigでIPアドレスを調べる
    ifconfig
  4. 外からsshで接続できるか確認
    • default user: pi
    • default password: raspberry
      ssh pi@IPアドレス
      
      # rootになれるか
      sudo su -
      
      # rootユーザのパスワード変更
      passwd

購入


書籍


GPIO/ブレッドボード/その他


ケース


HDMI/DVIケーブル


WiFi USBアダプタ


SDカード

OSをSDカードにインストールするので必須。


電源


本体

モデルに種類があるが、個人的には


添付ファイル: fileTEMPerV1.4-zabbix.jpg 1781件 [詳細] fileTEMPerV1.4.jpg 1934件 [詳細] filetemper.localtime.patch 1845件 [詳細] filevpnserver.Raspbian 1884件 [詳細] fileraspbian-minecraft-0.1.1.jpg 1940件 [詳細] fileraspbian-7.1.jpg 1830件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-10-20 (金) 22:42:54