概要
- 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
-
Rufus : ポータブル版、いいかも?
- エクスプローラで、SDカードを開いて、右クリ>新規作成>テキスト文書、とでもして、
ssh
というファイルを作成。(拡張子無し)
初回電源投入とログイン
-
ユーザ名:
pi
/ パスワード:raspberry
-
環境としては、
-
キーボード・ディスプレイ接続
-
UART接続(シリアル-USB変換ケーブル接続) : 115200bps
-
有線ネットワーク接続(イーサネット)
ちなみに、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)<br><font color='red'>(Liteじゃない方のみ)</font>FATパーティションに設定済み`wpa_supplicant.conf`を置いておくと、Wifiデバイス起動時(ifup)`/etc/wpa_supplicant/`にコピーしてくれる
```shell-session: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:~$
```shell-session:デフォルトの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:~ $
```shell-session:wpa_passphraseで、設定生成(grepの-vは、その文字を含まない行を表示=>生パスワードを含めない)
pi@raspberrypi:~ $ wpa_passphrase wifi_ssid password_desuyo | grep -v \#psk
network={
ssid="wifi_ssid"
psk=e42b6b0cada605c80ca3727df865ea5adddb8ca9fee2ed1e276233d393526c76
}
pi@raspberrypi:~ $
```txt:(例)wpa_supplicant.conf
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wifi_ssid"
psk=e42b6b0cada605c80ca3727df865ea5adddb8ca9fee2ed1e276233d393526c76
}
- ツール
- [TeraTerm](https://osdn.jp/projects/ttssh2/releases/) : zip版は解凍して、`ttermpro.exe`実行でいけるのでらくちん。何か設定したら、`TERATERM.INI`は、こまめにバックアップとっておくといいかも。
- [PuTTY](http://www.putty.org/): `You can download PuTTY `[here](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)`.` の [here](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)あたりをクリックして、Windowsのバイナリをダウンロード...<br>(わたしは、[PuTTY Portable](http://portableapps.com/apps/internet/putty_portable)にお世話になっています。)
### APTパッケージレポジトリのアップデート。
- `sudo apt-get update` # 最初に一回やっとく。
- `sudo apt-get upgrade` # パッケージの更新. 適当に設定がおわったあとでもよいかと。
- `upgrade`する前に使わなそうなパッケージを削除しておくとよいかも。
```shell-session:例)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. <del>パーティションの拡張(`1 Expand Filesystem`)</del>: <br>最近のRaspbianは初回起動時にスクリプトが実行されるので、**やらなくてよい**<br>(`df -h`とやって、`/dev/root`のサイズが(使ってるSDの割りに)小さければ、実行してみる、とか?)
- `pi`のパスワード変更(`2 Change User Password`): 単に`passwd`でもよいかと..
- ホスト名(`9 Advanced Options > A2 Hostname`): <br>`sudo raspi-config nonint do_hostname new_host_name` でもいける。
```bash:例)ホスト名を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](https://support.apple.com/downloads/bonjour_for_windows)とか入ってると、
- `ping rpi-6c0f31.local`とかで応答あったり、
- `ssh pi@rpi-6c0f31.local`で SSHログインできたりするハズ。
- GPU Memory (
9 Advanced Options > A3 Memory Split
) : 16 (カメラとか、ディスプレイを使わないなら)。カメラ使うときは、最低128必要 - 国際化設定(
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
)
-
- VNC (2016-09-23より、RealVNC が使える)
- 9 Advanced Options > A5 VNC より
- ネットワーク
- IP固定(Static IP)
-
ルータのDHCPの設定で、MACアドレスでIPアドレス固定割付、をやる。(自分のおうちなど、ルータの設定ができる場合)
-
/etc/dhcpcd.conf
で固定.(例)/etc/dhcpd.conf
-
- IP固定(Static IP)
...
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で起動すると、[豆腐](http://www.wdic.org/w/TECH/%E8%B1%86%E8%85%90)になる)<br>`sudo apt-get install fonts-ipafont fonts-ipaexfont`
- ほかの日本語フォント<br>`sudo apt-cache search fonts | grep -i japanese` # などで検索
- 日本語入力<br>`sudo apt-get install fcitx-mozc fcitx-anthy`
- 日本語のマニュアル<br>`sudo apt-get install manpages-ja manpages-ja-dev`
### ソフトウェア設定
#### よく使うパッケージインストール
```bash:お好みで.
# いつも
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
#パッケージインストール
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
...
...
[homes]
browseable = no # 好みにより yes
read only = yes
...
...
# (お好みにより)最後の方に追加
# だれでも読み書き可能な共有フォルダ
[public_share]
path = /home/pi/pub # フォルダを作っておく.
writable = yes
guest ok = yes
guest only = yes
# 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
#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)
- ワイヤー7本 => RaspberryPi - ENC28J60(SPI-Ethernet)設定
# 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