setup
RaspberryPi
raspbian

[メモ] Raspberry Pi: 初期設定

More than 1 year has passed since last update.


概要


  • Raspberry Piの初期設定など、自分の記事で、いつもの...と省略してるが、自分でもよくわからなくなりそうなので、現状のをメモっとく。

  • 自分は、長期で運用は、あまり考えてなく、なにか試すたびにRaspbianイメージを焼いてる.


  • 2016-11-25-raspbian より、デフォルトで、ssh無効になっている。bootパーティションに、sshというファイルを作成することで、有効化.


環境


  • Raspberry Pi Zero/1/2/3

  • Windows 7 (64ビット)


手順


OSイメージ選択

Raspbian: https://www.raspberrypi.org/downloads/raspbian/


  • だいたい X-window使うか、使わないか、で判断。

X
用途
イメージサイズ
ファイル名

Raspbian
Xあり
デスクトップ向け
4.04GB

2016-11-25-raspbian-jessie
2016-09-23-raspbian-jessie.img
2016-05-27-raspbian-jessie.img 3.74GB (1.29GB)

Raspbian Lite
Xなし
サーバ向け
1.29GB

2016-11-25-raspbian-jessie-lite
2016-09-23-raspbian-jessie-lite.img
2016-05-27-raspbian-jessie-lite.img 1.29GB (292MB)


SDに焼く。


  • ツール (Windows)



    • Rufus : ポータブル版、いいかも?
      Create a bootable disk using [DD Image]で、となりのディスクアイコンを押して、イメージファイル(.img)を選択

    • Win32DiskImager

    • DD for Windows



  • エクスプローラで、SDカードを開いて、右クリ>新規作成>テキスト文書、とでもして、sshというファイルを作成。(拡張子無し)


初回電源投入とログイン


  • ユーザ名: pi / パスワード: raspberry



  • 環境としては、


    1. キーボード・ディスプレイ接続

    2. UART接続(シリアル-USB変換ケーブル接続) : 115200bps


    3. 有線ネットワーク接続(イーサネット)
      ちなみに、MACアドレスは、"b8:27:eb" + CPUのシリアル番号の下6桁で、生成されてるらしい。

      pi@raspberrypi:~ $ cat /proc/cpuinfo | grep -i serial 
      
      Serial : 000000002a6c0f31
      pi@raspberrypi:~ $ ifconfig eth0 | grep -i hwaddr
      eth0 Link encap:Ethernet HWaddr b8:27:eb:6c:0f:31
      pi@raspberrypi:~ $



    4. 無線ネットワーク接続接続(Wifi)
      (Liteじゃない方のみ)FATパーティションに設定済みwpa_supplicant.confを置いておくと、Wifiデバイス起動時(ifup)/etc/wpa_supplicant/にコピーしてくれる


      wpa_supplicant.confをコピーするところ

      pi@raspberrypi:~$ cat /etc/network/if-pre-up.d/01-wpa-config-copy
      
      #!/bin/sh
      if [ -e /boot/wpa_supplicant.conf ]; then
      /bin/mv /boot/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
      /bin/chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf
      fi
      pi@raspberrypi:~$


      デフォルトのwpa_supplicant.conf

      pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
      
      country=GB
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      pi@raspberrypi:~ $


      wpa_passphraseで、設定生成(grepの-vは、その文字を含まない行を表示=>生パスワードを含めない)

      pi@raspberrypi:~ $ wpa_passphrase wifi_ssid password_desuyo | grep -v \#psk
      
      network={
      ssid="wifi_ssid"
      psk=e42b6b0cada605c80ca3727df865ea5adddb8ca9fee2ed1e276233d393526c76
      }
      pi@raspberrypi:~ $


      (例)wpa_supplicant.conf

      country=GB
      
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      network={
      ssid="wifi_ssid"
      psk=e42b6b0cada605c80ca3727df865ea5adddb8ca9fee2ed1e276233d393526c76
      }






  • ツール



    • TeraTerm : zip版は解凍して、ttermpro.exe実行でいけるのでらくちん。何か設定したら、TERATERM.INIは、こまめにバックアップとっておくといいかも。


    • PuTTY: You can download PuTTYhere.hereあたりをクリックして、Windowsのバイナリをダウンロード...
      (わたしは、PuTTY Portableにお世話になっています。)




APTパッケージレポジトリのアップデート。



  • sudo apt-get update # 最初に一回やっとく。

  • sudo apt-get upgrade # パッケージの更新. 適当に設定がおわったあとでもよいかと。



  • upgradeする前に使わなそうなパッケージを削除しておくとよいかも。


    例)2017-01-11-raspbian-jessie

    pi@raspberrypi:~$ uname -a
    
    Linux raspberrypi 4.4.34+ #930 Wed Nov 23 15:12:30 GMT 2016 armv6l GNU/Linux
    pi@raspberrypi:~$ time sudo apt-get autoremove -y wolfram-engine sonic-pi scratch nodered libreoffice-common --purge
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages will be REMOVED:
    libboost-atomic1.55.0* libboost-filesystem1.55.0* libboost-program-options1.55.0* libboost-regex1.55.0* libboost-thread1.55.0*
    libc-ares2* libcwiid1* libffi5* libjs-prettify* libqscintilla2-11* libqscintilla2-l10n* libqt4-network* libqt4-xmlpatterns*
    libqtwebkit4* libreoffice* libreoffice-avmedia-backend-gstreamer* libreoffice-base* libreoffice-base-core*
    libreoffice-base-drivers* libreoffice-calc* libreoffice-common* libreoffice-core* libreoffice-draw* libreoffice-gtk*
    libreoffice-impress* libreoffice-java-common* libreoffice-math* libreoffice-report-builder-bin* libreoffice-sdbc-hsqldb*
    libreoffice-writer* libruby1.9.1* libruby1.9.1-dbg* libruby2.1* libscsynth1* libtcl8.5* libtcltk-ruby1.9.1* libtk8.5*
    libv8-3.14.5* libyaml-0-2* nodejs* nodejs-legacy* nodered* nuscratch* python3-uno* ri1.9.1* ruby* ruby1.9.1* ruby1.9.1-dev*
    ruby1.9.1-examples* ruby1.9.1-full* ruby1.9.3* ruby2.1* rubygems-integration* scratch* sonic-pi* squeak-plugins-scratch*
    squeak-vm* supercollider* supercollider-common* supercollider-ide* supercollider-language* supercollider-server*
    supercollider-supernova* tcl8.5* tk8.5* wolfram-engine*
    0 upgraded, 0 newly installed, 66 to remove and 133 not upgraded.
    After this operation, 1,221 MB disk space will be freed.
    (Reading database ... 122284 files and directories currently installed.)
    Removing supercollider-supernova (1:3.6.6~repack-2-1) ...




  • aptキャッシュサーバある場合は、先に、設定をしておく
    => [メモ] aptのキャッシュサーバ(apt-cacher-ng)


    例-/etc/apt/apt.conf.d/02proxy

    Acquire::http::Proxy "http://192.168.123.222:3142";
    




らずぱいの初期設定 sudo raspi-config



  1. パーティションの拡張(1 Expand Filesystem):
    最近のRaspbianは初回起動時にスクリプトが実行されるので、やらなくてよい
    (df -hとやって、/dev/rootのサイズが(使ってるSDの割りに)小さければ、実行してみる、とか?)


  2. piのパスワード変更(2 Change User Password): 単にpasswdでもよいかと..


  3. ホスト名(9 Advanced Options > A2 Hostname):
    sudo raspi-config nonint do_hostname new_host_name でもいける。


    例)ホスト名をrpi-(eth0のMACアドレスの下6桁)にする=>rpi-6c0f31

    # CPUのシリアル番号から
    
    sudo raspi-config nonint do_hostname rpi-`cat /proc/cpuinfo | grep Serial | rev | cut -b 1-6 | rev`
    # MacAddressから
    #sudo raspi-config nonint do_hostname rpi-`cat /sys/class/net/eth0/address | sed -e 's/://g' | cut -b7-`
    sudo reboot


    • Windows10だったり、avahi(sudo apt-get install avahi-utils)とか、bonjourとか入ってると、



      • ping rpi-6c0f31.localとかで応答あったり、


      • ssh pi@rpi-6c0f31.localで SSHログインできたりするハズ。





  4. GPU Memory (9 Advanced Options > A3 Memory Split) : 16 (カメラとか、ディスプレイを使わないなら)。カメラ使うときは、最低128必要



  5. 国際化設定(5 Internationalisation Options)



    • I1 Change Locale:
      [*] ja_JP.UTF-8 UTF-8にチェックを入れて、Default localeで、ja_JP.UTF-8(日本語)またはC.UTF-8(英語)あたりを選択。


    • I2 Change Timezone : Asia > Tokyo


    • I3 Change Keyboard Layout: (本体につないだUSBキーボードから実行可能)


    • I4 Change Wi-fi Country: JP Japan (GB Britain (UK), US United States)




  6. VNC (2016-09-23より、RealVNC が使える)


    • 9 Advanced Options > A5 VNC より




  7. ネットワーク



    • IP固定(Static IP)


      1. ルータのDHCPの設定で、MACアドレスでIPアドレス固定割付、をやる。(自分のおうちなど、ルータの設定ができる場合)


      2. /etc/dhcpcd.conf で固定.


        (例)/etc/dhcpd.conf

        ...
        
        interface eth0
        static ip_address=192.168.0.62/24
        static routers=192.168.0.1
        static domain_name_servers=192.168.0.1








日本語関係


  • X用日本語フォント(インストールせず、Default Localeを日本語にて、Desktopで起動すると、豆腐になる)
    sudo apt-get install fonts-ipafont fonts-ipaexfont

  • ほかの日本語フォント
    sudo apt-cache search fonts | grep -i japanese # などで検索

  • 日本語入力
    sudo apt-get install fcitx-mozc fcitx-anthy

  • 日本語のマニュアル
    sudo apt-get install manpages-ja manpages-ja-dev


ソフトウェア設定


よく使うパッケージインストール


お好みで.

# いつも

sudo apt-get install -y htop byobu git
# まぁまぁ.
sudo apt-get install iotop bwm-ng lsof ccze fbcat
# カーネルビルド.
sudo apt-get install build-essential git ncurses-dev bc unzip


Swapを切る


よくわからないひとはやらない方がいいかと。

# パッケージ削除

sudo apt-get purge dphys-swapfile
#
# /etc/fstab : いくつかのフォルダをtmpfsとする。
sudo sh -c 'echo "#### ramdisk" >> /etc/fstab'
sudo sh -c 'echo "tmpfs /tmp tmpfs defaults,noatime,nosuid,size=128m 0 0" >> /etc/fstab'
sudo sh -c 'echo "tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=32m 0 0" >> /etc/fstab'
sudo sh -c 'echo "tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=32m 0 0" >> /etc/fstab'


Samba


Shell

#パッケージインストール

sudo apt-get install -y samba
# オリジナル設定のバックアップ
if [ ! -e /etc/samba/smb.conf.orig ] ; then sudo mv /etc/samba/smb.conf{,.orig}; sudo cp /etc/samba/smb.conf{.orig,}; echo "smb.conf: backup done" ;else echo "No need backup"; fi
#
# 設定の編集.
sudo vi /etc/samba/smb.conf


/etc/samba/smb.conf

...

...
[homes]
browseable = no # 好みにより yes
read only = yes
...
...
# (お好みにより)最後の方に追加
# だれでも読み書き可能な共有フォルダ
[public_share]
path = /home/pi/pub # フォルダを作っておく.
writable = yes
guest ok = yes
guest only = yes


Shell

# smb.confの [global]セクションで、passdb backend = tdbsam となっているので、ユーザ設定をする.

# 現在のユーザリスト
sudo pdbedit --list
# ユーザ追加 => パスワードを聞かれる
sudo pdbedit -a -u pi -h /home/pi -f "Raspberry Pi" -N "Raspberry Pi Default User"
#
#
# 設定確認
sudo pdbedit --list
#
# サービス再起動
sudo systemctl restart smbd nmbd



  • \\rpi.local\pi または、\\<らずぱいのIP>\pi にアクセスして、ユーザpi、パスワードを入力。


追加ハードウェアなどの設定


Wifi

wpa_passphrase SSID PASS | grep -v  PASS | tee -a /etc/wpa_supplicant/wpa_spplicant.conf


USBシリアルでコンソール(USBの方を挿す)

sudo sudo systemctl enable serial-getty@ttyUSB0.service


  • うちの環境だと、起動時9600bpsになる、stty -F /dev/ttyUSB0 115200とか、921600とかでボーレート変更する。


RTC(DS3231)


  • I2C接続のリアルタイムクロック (VCC, GND, SDA, SCLの4つをつなぐ)

# ntpとi2c関係のツール.

sudo apt-get install -y ntpdate i2c-tools
# i2cを有効
sudo raspi-config nonint do_i2c 0
# 確認 => dtparam=i2c_arm=on となってる
cat /boot/config.txt | grep i2c
#
# /boot/config.txtに dtoverlay=i2c-rtc,ds3231 を追加.
grep ^dtoverlay=i2c-rtc,ds3231 /boot/config.txt ; if [ $? != 0 ]; then sudo sh -c 'echo dtoverlay=i2c-rtc,ds3231 >> /boot/config.txt'; fi
#
# サービス設定
sudo update-rc.d fake-hwclock disable
sudo update-rc.d ntp disable
#
# 設定書き換え.
sudo vi /lib/udev/hwclock-set


/lib/udev/hwclock-set以下をコメントアウト

#if [ -e /run/systemd/system ] ; then

# exit 0
#fi

#リブート.

sudo reboot
#
#
sudo i2cdetect -y 1
#こんなのがでてくる
#pi@raspberrypi:~ $ sudo i2cdetect -y 1
# 0 1 2 3 4 5 6 7 8 9 a b c d e f
#00: -- -- -- -- -- -- -- -- -- -- -- -- --
#10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
#70: -- -- -- -- -- -- -- --
#
# リブート後、時刻補正、RTCへ時刻設定
sudo sh -c 'ntpdate pool.ntp.org ; hwclock -w'


ENC28J60 (SPI-Ethernet Port)

# spiを有効

sudo raspi-config nonint do_spi 0
# 確認 => dtparam=spi=on
grep spi /boot/config.txt
#
# /boot/config.txtに dtoverlay=enc28j60,int_pin=25,speed=25000000 を追加.
grep ^dtoverlay=enc28j60,int_pin=25,speed=25000000 /boot/config.txt ; if [ $? != 0 ]; then sudo sh -c 'echo dtoverlay=enc28j60,int_pin=25,speed=25000000 >> /boot/config.txt'; fi


その他


  • 100記事目記念~ Q100_1.png Q100_2.png