Raspberry Pi覚書。

シングルボードコンピューター「Raspberry Pi」の専用OS「Raspbian」の覚書。バージョンは4.14 (Stretch) を使用。

ここではあえてWindowsXPを使って導入してみる。


RaspberryPiシリーズのスペック比較表
MODELCPUGPURAMUSBwifiBluetoothIdling
B 1B ARMv6 (armel) 1core700MHz 250MHz 256M/512M 2.0 - - 360mA
2B ARMv7 (armhf) 4core900MHz 400MHz 1G 2.0 - - 230mA
3B ARMv8 (arm64) 4core1.2GHz 400MHz 1G 2.0 2.4G 4.1 230mA
3B+ 4core1.4GHz 400MHz 1G 2.0 2.4G/5G4.2 400mA
4B 4core1.5GHz 500MHz 1G/2G/4G 2.0/3.02.4G/5G5.0 575mA
A 1A ARMv6 (armel) 1core700MHz 250MHz 256M/512M 2.0 - - 140mA
3A+ ARMv8 (arm64) 4core1.4GHz 400MHz 512M 2.0 2.4G/5G4.2 240mA
Z ZeroW ARMv6 (armel) 1core1GHz 250MHz 512M 2.0 2.4G 4.1 120mA

事前準備

  1. WindowsPC上で、microSDカードを「FAT32」でフォーマットする
    • microSDの容量が32GByte未満の場合は、何も考えずにフォーマットでOK
    • microSDの容量が32GByte以上で、ラズパイ用に使用したことがない場合
      1. SD card Formatter 4.0を起動
      2. ボリューム名がそのままホスト名になるので、「RaspberryPi」とかにしておくと良い
      3. オプション設定 → 消去方法を「イレースフォーマット」、論理サイズ調整を「ON」 → フォーマット
    • microSDの容量が32GByte以上で、ラズパイ用に使用したことがある場合
      1. Windows10(^^;の管理ツールで全パーティションを削除
      2. FAT 32 Formatterでフォーマット※リンク先の画像をクリックでDL
  2. Raspbianを入手し、解凍する
  3. microSDにイメージを焼く
    1. Win32 Disk Imager v0.9を起動※XPはこれしか動かない
    2. Image FileへRaspbianのimgファイルをドラッグ&ドロップ、DeviceはmicroSDカードを挿したドライブを選択 → Write
  4. RaspiにmicroSDを挿して電源投入

初期設定

とりあえず初期設定にはマウスとキーボードが必須。マウスは有線のものを。ないとBluetoothマウスのペアリングが出来ないのでw

キーボードはBluetoothでも可だが、すぐにスリープモードになったり何かと不便なので、個人的には有線をオススメする。

  1. USBポートに有線マウスを接続
  2. キーボードがBluetoothの場合は、タスクバーのBluetoothアイコンをクリックし、「Add Device」でBluetoothキーボードを追加
  3. 「Welcome」ウィンドウにて、適宜、初期設定を施す
  4. リブート…
  5. ネットワーク共有の設定
    1. Sambaのインストール
      $ sudo apt install samba
    2. smb.confを編集
      $ sudo nano /etc/samba/smb.conf
      1. smb.confの赤字部分を "MSHOME" に書き換え
        #====================== Global Settings ======================

        [global]

        ## Browsing/Identification ###

        # Change this to the workgroup/NT-domain name your Samba server will part of
           workgroup = WORKGROUP
      2. ~中略して、smb.confの最下行に下の6行を追加。
        # My Settings
        [SharedDocs]
           comment = Raspbian Shared Folder
           path = "/home/pi/Public"
           writable = yes
           guest ok = yes
           create mask = 0644
           directory mask = 0755
           force user = pi
  6. 電源ランプの挙動変更※RaspiZeroは除く
    • $ sudo nano /boot/config.txt
      • config.txtの最下行?に下の2行を追加
        # Blink power led
        dtparam=pwr_led_trigger=heartbeat
  7. USB OTGに対応させる
    1. $ sudo nano /boot/cmdline.txt
      • cmdline.txtの該当箇所に黄色字部分を追加
        rootwait modules-load=dwc2,g_ether quiet
        • それでもUSB機器が認識されないときは、USBを強制的にLow Speedにする?
          dwc_otg.speed=1
    2. $ sudo nano /boot/config.txt
      • config.txtの最下行?に下の1行を追加
        dtoverlay=dwc2
  8. 壁紙の追加
    $ cd /usr/share/rpd-wallpaper
    $ sudo cp 草原.bmp .※XPの壁紙であるw
    $ sudo chmod 644 草原.bmp
  9. デスクトップアイコンのサイズ変更
    1. 「ファイルマネージャ」を起動
    2. 「編集(E)」 → 「設定(N)」 → 「ディスプレイ(D)」 → 「大きなアイコンのサイズ(B)」

「Claws Mail」でGmailを送受信

BasicProtocol: IMAPAuto-configure
Server for receivingimap.gmail.com
SMTP server (send)smtp.gmail.com
SSL/TLSIMAP🔘Use SSL/TLS
Send (SMTP)🔘Use STARTTLS command to start encrypted session
AdvancedSMTP port☑587
IMAP port☑993

3.5mmヘッドホンジャックで音を聞く

  1. タスクバーのスピーカーアイコンを右クリック
  2. チェックを「Hdmi」から「Analogue」に変更

その後は

  • ソフトウェアのアップデート
    $ sudo apt update        # リポジトリ一覧を更新
    $ sudo apt upgrade -y   # パッケージ構成を変えない範囲でアップグレード
    $ sudo apt full-upgrade# パッケージ構成の変更に追随してアップグレード
    $ sudo apt autoremove # 更新に伴い必要なくなったパッケージを削除
    $ sudo apt autoclean   # キャッシュされているが、インストールはされていないdebファイルを削除
    $ sudo reboot
    • あるいは?
      $ sudo rpi-update
  • エラーの出たアップデートをやり直す
    $ sudo apt --fix-broken install
  • 接続デバイスの一覧表示
    $ lsblk
  • SDカードのフォーマット等
    $ sudo apt install gparted
    $ gparted

wi-fi設定をUIを使わず直接書き換え

$ sudo nano /etc/wpa_supplicate/wpa_supplicant.conf

コマンドラインからbluetooth操作

$ bluetoothctl
# paired-devicesペアリング済デバイスを表示
# scan onスキャン開始
# pair <MACアドレス>ペアリング
# connect <MACアドレス>接続
# remove <MACアドレス>ペアリング解除
# exitBluetoothコントロール終了

CPU温度

$ vcgencmd measure_temp

電圧

$ vcgencmd measure_volts

ラズパイのUSBにSDカードをマウントする

  1. SDカードが認識されているか確認
    $ sudo fdisk -l
    1. mmcblk0は起動用のSDカード
    2. mmcblkp1, mmcblkp2…はパーティションを表す
    3. USBに挿したSDカードがちゃんと認識されていれば、sda1, sda2…と表示されるはず
  2. SDカードのマウント先を作成
    $ sudo mkdir /media/tmp
  3. USBに挿したSDカードをマウント
    $ mount /dev/sda1 /media/tmp

/etc/rc.localの記述を間違えてラズパイが起動しなくなった場合の対処法

シングルユーザモードで起動する。

  1. ラズパイのmicroSDをWin10に挿す
  2. cmdline.txtを編集する
    init=/bin/sh※行末ではなく「行頭」に追記し、半角スペースで空ける!
  3. microSDをラズパイに戻して起動
  4. 書き込み不可でマウントされているmicroSDを再マウントする
    $ umount /
    $ mount -o remount,rw /dev/mmcblk0p2 /
  5. 誤った/etc/rc.localを修正する
  6. 再びmicroSDをWin10に挿し、cmdline.txtを元に戻す

ラズパイでZoom

ラズパイにはマイクがないので、USBオーディオアダプタを購入した。

  1. USB端子にUSBオーディオアダプタ(CTIA規格)を挿入
    • 余談だが、使用した古いXperiaのヘッドセットはOMTP規格なので、CTIA規格のアダプタで使うには変換アダプタが必要
  2. $ lsusb
    • 一覧に「~Audio Controller」等があればOK
  3. $ aplay -l
    • 一覧に「USB Audio」等があればOK
  4. $ cat /proc/asound/modules、でUSBオーディオの優先順位を確認
    0 snd_bcm2835
    1 snd_usb_audio←これ
  5. $ sudo nano /etc/modprobe.d/alsa-base.conf、で設定ファイルを新規作成する
    options snd slots=snd_usb_audio,snd_bcm2835
    options snd_usb_audio index=0
    options snd_bcm2835 index=1
  6. $ sudo reboot
  7. $ cat /proc/asound/modules
    0 snd_usb_audio←優先順位があがった
    1 snd_bcm2835
  8. マイクから録音してみる
    • $ arecord -f S16_LE -r 44100 aaa.wavCTRL+Cで終了
  9. 再生してみる
    • $ aplay aaa.wav
  10. ChromiumからZoomを起動

Kuman製3.5インチLCDの解像度変更

  1. ドライバを入手
  2. ファイル構成
    ~/LCD-show/
     ┣boot/
     ┃┣config-5.txt※以下5ファイルがconfig.txtに差し替わる
     ┃┣config-5.txt-90
     ┃┣config-5.txt-180
     ┃┣config-5.txt-270
     ┃┣config-normal.txt
     ┃┗mark
     ┣etc/
     ┃┣X11/xorg.conf.d/
     ┃┃┣99-calibration.conf-5-90
     ┃┃┣99-calibration.conf-5-180
     ┃┃┣99-calibration.conf-5-270
     ┃┃┗99-calibration.conf-35H
     ┃┗rc.local
     ┣rpi-fbcp/※フォルダごと
     ┣usr/share/X11/xorg.conf.d/
     ┃┣45-evdev.conf
     ┃┗99-fbturbo.conf-HDMI
     ┣cmdline.txt
     ┣dtc.sh
     ┣inittab
     ┣LCD-hdmi
     ┣LCD35-HDMI-800x480-show※「LCD-show」にリネーム
     ┗xinput-calibrator_0.7.5-1_armhf.deb
  3. パーミッション変更
    $ cd ~/LCD-show
    $ chmod 755 LCD*
  4. コマンド
    • 表示をLCDに切り替え※config.txtが書き換えられてしまうので、バックアップしておくこと
      $ cd ~/LCD-show
      $ sudo ./LCD-show 180
    • 表示をHDMIに戻す
      $ cd ~/LCD-show
      $ sudo ./LCD-hdmi
  5. タッチパネルのキャリブレーション
    1. LCDを有効化後、ソフトウェアのアップデート → リブート
    2. 設定 → 「Calibrate Touchscreen」
    3. 画面の4隅のマークをタッチ
    4. LXTerminalに表示された「X座標のさい値ときい値」、「Y座標のさい値ときい値」を覚えておき…
    5. calibration.confを編集
      $ sudo nano ~/LCD-show/etc/X11/xorg.conf.d/99-calibration.conf-5-180
      • 該当箇所に、LXTerminalに表示された数値を入れていく※5インチLCDを使う場合の書き換え箇所は、元ファイルの参照でOK
        Option  "Calibration"   "X小 X大 Y小 Y大"
        Option  "SwapAxes"      "1"
      • 画面0°回転 (99-calibration.conf-35H)
        Option  "Calibration"   "X大 X小 Y大 Y小"
        Option  "SwapAxes"      "1"
      • 画面90°回転 (99-calibration.conf-90)
        Option  "Calibration"   "X小 X大 Y小 Y大"
        Option  "SwapAxes"      "0"
      • 画面270°回転 (99-calibration.conf-270)
        Option  "Calibration"   "X小 X大 Y大 Y小"
        Option  "SwapAxes"      "0"
    6. 再び同じLCD切り替えコマンドを入力
  6. Chromiumをタッチ操作でスクロール出来るようにする
    1. タッチスクリーンのidを取得する
      $ xinput list
      • 赤字部分がidなのでメモ
        |   ↳ ADS7846 Touchscreen                       id=6    [slave  pointer  (2)]
    2. スタートメニュー → 「インターネット」 → 「Chromium ウェブ・ブラウザ」 → 長押し → 「プロパティ」
    3. 「デスクトップエントリ(D)」
    4. 「コマンド(M):」に黄色字を追加
      chromium-brouser --touch-devices=6 %U
    5. 「OK(O)」

X68000ラズパイケース覚書

X68000ラズパイケースのPOWERランプとHD BUSYランプを点灯させる。

  1. /etc/rc.localを編集する※本体赤LEDを消灯
    fi

    # X68k leds
    echo none | sudo tee /sys/class/leds/led1/trigger
    echo 0 | sudo tee /sys/class/leds/led1/brightness


    exit 0
  2. /boot/config.txtの最下行に下の3行を追加する
    # X68k leds
    dtoverlay=pi3-act-led,gpio=18※本体緑LEDを外付けに
    enable_uart=1
    ※GPIO14に通電

Bluetooth+UARTを両立したい場合は裏技が必要だが、UARTは電源ランプとしてしか使わないのでこのままでOK。


GPIO PIN Assignment
LED基板側PINGPIO本体側PIN
HDBUSYGPIO1812(2列目6番目)
POWERONGPIO14(TXD0)8(2列目4番目)
POWEROFF3.3V1(1列目1番目)
GNDGND6(2列目3番目)

Helmetsテーブル筐体ケース覚書

GPIO PIN Assignment
boardGPIOPin No.
Class-D AMP Vin5V4
GNDGND6
DIN2140
BCLK1812
LRC1935
1.3inch LCD Module VCC3.3V17
GNDGND20
DIN1019
CLK1123
CS
DC2522
RST2713
BL2418
1.3inch LCD HATLCD GNDGND?
VCC3.3V17
SCLK1123
MOSI1019
DC2522
CS824
RST2713
BL2418
Stick 6N/A
19N/A
5N/A
26N/A
Thumb13N/A
Button KEY121N/A
KEY220N/A
KEY316N/A

参考→240x240, 1.3inch IPS LCD display HAT for Raspberry PiAdafruit MAX98357 I2S Class-D Mono Amp

  1. 1.3inch LCD HAT or Waveshare 1.3inch LCD Moduleの設定
    1. SPIを有効にする
      1. $ raspi-config
      2. Interface Options → SPI → Yes
    2. $ git clone https://github.com/juj/fbcp-ili9341.git
      $ cd fbcp-ili9341
      $ mkdir build
      $ cd build
    3. RPiZ + 1.3inch LCD HAT用の引数を付けてビルドする※6とあるのがRPiZ用のクロック
      $ cmake -DSTATISTICS=0 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSPI_BUS_CLOCK_DIVISOR=6 -DWAVESHARE_ST7789VW_HAT=ON ..
      • おまけ:RPi + 1.44inch LCD HATの場合※40とあるのがRPi用のクロック
        $ cmake -DSTATISTICS=0 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSPI_BUS_CLOCK_DIVISOR=40 -DWAVESHARE_ST7735S_HAT=ON ..
    4. $ make -j
      $ sudo install fbcp-ili9341 /usr/local/bin/fbcp-ili9341
    5. /etc/rc.localを編集する
      fi

      fbcp-ili9341 &

      exit 0
    6. /boot/config.txtを編集する
      hdmi_group=2※HDMIアウトプットグループをDMTに
      hdmi_force_hotplug=1※HDMIモニタが検出されなくてもHDMIで出力
    7. Waveshare 1.3inch LCD Moduleを使用し、画面を回転させて縦画面ゲームを起動したい場合
      1. /boot/config.txtを編集する
        display_rotate=3
      2. /opt/retropie/configs/mame-libretro/retroarch.cfgを編集する
        aspect_ratio_index = "23"
        custom_viewport_width = "400"
        custom_viewport_height = "640"
        custom_viewport_x = "40"
  2. Adafruit MAX98357 I2S D級アンプの設定
    1. $ sudo nano /etc/asound.conf
      pcm.speakerbonnet {
         type hw
         card 0
      }

      pcm.dmixer {
         type dmix
         ipc_key 1024
         ipc_perm 0666
         slave {
            pcm "speakerbonnet"
            period_time 0
            period_size 1024
            buffer_size 8192
            rate 44100
            channels 2
         }
      }

      ctl.dmixer {
         type hw
         card 0
      }

      pcm.softvol {
         type softvol
         slave.pcm "dmixer"
         control.name "PCM"
         control.card 0
      }

      ctl.softvol {
          type hw card 0
      }

      pcm.!default {
         type plug
         slave.pcm "softvol"
      }
    2. $ sudo nano /boot/config.txt
      #dtparam=audio=on
      dtoverlay=hifiberry-dac
      dtoverlay=i2s-mmap
    3. emulationstationの「MAIN MENU」 →
      1. 「SOUND SETTINGS」 → 「AUDIO DEVICE」 → 「PCM」
  3. (emulationstationの文字を大きくする)
    1. /etc/emulationstation/themes/carbon/carbon.xmlを編集する
      <view name="basic">

         <textlist name="gamelist">
            <selecgtorColor>1c1c1c</selecgtorColor>
            <selectedColor>8b0000</selectedColor>
            <primaryColor>969696</primaryColor>
            <secondaryColor>7a6161</secondaryColor>
            <fontPath>./art/Cabin-Bold.ttf</fontPath>
            <fontSize>0.0300.045</fontSize>※かなり巨大

FDX68

GIMONS氏が開発した素晴らしいハードウェア、FDX68でFM-77AVの2Dゲームを吸い出す!

  • RaspberryPi 3
  • Raspbian 4 (Stretch)
  • FDX68
  • FDX68用バイナリ
  • 3MODE対応FDD (D353M3D)
  • FDD用5V電源
  • 3.5インチ用34ピンフラットケーブル※クロスケーブルは使えないので、ストレートに作り直すこと
  • 2DフォーマットFDのダンプ
    $ sudo ./fddump -i 1 -c 40 -d double -s 2 任意.FDX
  • FDX形式→D77形式へ変換
    $ sudo ./fdxconv -i 元ファイル.FDX -o 任意.D77

余白

3.5mmジャックは、ステレオ音声+ビデオ出力。ただし、CTIA規格のものを使うこと。OMTP規格のものは使えない。