1: 2017-07-08 (土) 07:20:58 yuji |
2: 2017-12-02 (土) 06:32:54 yuji |
- | * Raspbian Jessieのインストール [#j43b6f52] | + | * Raspbianのインストール [#j43b6f52] |
| | | |
- | Raspberry Pi3Bに[[Raspbian Jessie with Desktop>https://www.raspberrypi.org/downloads/raspbian/]]をインストールしてみた。新しいOSとして,Raspbian Stretch with desktopがリリースされている。~ | + | Raspberry Pi3Bに[[Raspbian Stretch with Desktop>https://www.raspberrypi.org/downloads/raspbian/]]をインストールした。以前は,Raspbian Jessieを入れていたが,インストール方法はほぼ同じ。 |
- | Stretchの場合でも,Jessieとほぼ同じでインストール出来る。 | + | |
| | | |
- | Download((ミラーサイト: http://ftp.jaist.ac.jp/raspbian や http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ が早くダウンロードできる。))した2017-03-02-raspbian-jessie.zipを解凍して,[[Win32DiskImager>https://ja.osdn.net/projects/sfnet_win32diskimager/]]を使用してMicro SDカード(16GB)に書きこんだ。 | + | 注意するのは使用するMicroSDカード。Raspberry Piでは,問題なく使用できるMicroSD/SDカードをけっこう選ぶ。使用中,[[トラブルが出るMicroSDカード>../../SDカードの相性]]ってのが意外と多くある。~ |
| + | おすすめな''TOSHIBAのものだと概ね大丈夫''なので,理由がなければTOSHIBAのMicroSDカードを使用するようにする。 |
| | | |
- | 注意するのはMicroSDカード。Raspberry Piではトラブルが出るMicroSDカードってのがやはりある。TOSHIBAのものだと概ね大丈夫みたいだけど。 | + | 以下は,通常行う,''モニターやキーボード,マウスを使用しないでOSをインストールする''手順を説明します。~ |
| + | Raspbianのサイトではモニター・キーボード,マウスを接続した上でのインストールの説明になっているが,多くのRaspberryPiの使用環境がPCと同様の機器を用意するのが難しいから。 |
| | | |
- | モニターとキーボードを接続しないでインストールするため,&font(Red){ブートパーテーションに空のファイルでsshを作成};した。こうすると,最初にブート後SSHでログイン出来るようになる。~ | + | ** DownloadしたRaspbianをMicroSDに書き込む [#a6b6cd3b] |
| + | Download((ミラーサイト: http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/ なんかが早くダウンロードできる。))した2018-04-18-raspbian-stretch.zipを解凍して, [[Win32DiskImager>https://ja.osdn.net/projects/sfnet_win32diskimager/]] を使用して,Micro SDカード(16GB)に書きこんだ。 |
| | | |
- | リモート接続は,有線LANを使う,無線LANを使う,シリアルポートを使う,といった方法がある。 | + | 64GB,128GBなどの大きな容量のMicroSDカードを使用する場合には, [[Etcher>https://etcher.io/]] で書き込む必要がある。 [[Win32DiskImager>https://ja.osdn.net/projects/sfnet_win32diskimager/]] で書き込んだ場合は,ブート出来ない。~ |
| + | これは,64GB,128GBのMicroSDカードは大抵exFATでフォーマットされて販売されている。Raspberry Piでは,最初のパーテーションがFAT/FAT32でないとブートローダーがロードできないので,結果,ブート出来ないのが理由。~ |
| + | MicroSDカードをFAT32でフォーマットし直せば使えるのではあるが, [[SD card Formatter 5.0>https://www.sdcard.org/jp/index.html]] では64GB以上だとFAT32でフォーマット出来なくなってしまっている。~ |
| + | なので,古いSD card Formatter 4.0を使ってフォーマット(論理サイズ調整をONにして)すれば,FAT32でフォーマット出来ます。~ |
| + | あとは,通常通りイメージファイルを書き込めば,64GB,128GBのMicroSDカードでも使用出来る。 |
| | | |
- | 有線LAN接続でDHCPクライアントで自動でIP Addressがアサインされるので,今回はSSHログインでインストールを行うことにした。~ | + | モニターやキーボード,マウスを接続しないでインストールするため,&font(Red){ブートパーテーションに空のファイルでsshを作成};した。こうすると,最初にブート後SSHでログイン出来るようになる。~ |
- | 無線LANでも前もって,設定ファイルを用意すれば,同様に使用することが出来る。 | + | 書き込んだMicroSDカードの/bootパーテーションはFATなため,Windowsマシンからでも直接編集出来る。 |
| | | |
- | もちろん,Pi3Bのシリアルポートを使用してPCと接続しシリアルコンソールを使用すれば,LANケーブルも接続しないでOSのインストールと各種設定することが出来る。 | + | モニターやキーボード,マウスを使用しない場合,インストール後の各種設定を行うためにリモート接続する必要がある。~ |
| + | リモート接続する時には, |
| + | - 有線LANを使う~ |
| + | - 無線LANを使う~ |
| + | - シリアルポートを使う |
| | | |
| + | といった方法がある。 |
| + | |
| + | 会社とか家のローカルネットワークにRaspberry Piを接続出来る場合,有線LAN接続でDHCPクライアントで自動でIP Addressがアサインされるので,有線LANでSSHログインしてインストールするのがやりやすいとは思う。無線LANでも前もって,設定ファイルを用意すれば,同様に使用することが出来る。~ |
| + | 今回はこの方法で,SSHログインでインストールを行うことにした。~ |
| + | |
| + | Pi3Bのシリアルポートを使用してPCと接続しシリアルコンソールを使用すれば,LANケーブルも接続しないでOSのインストールと各種設定することが出来る。 |
| + | |
| + | ** 有線LANで接続する [#r92ac723] |
| LANケーブルを接続し,USBケーブルで電源を供給してしばらくたったら,PuTTYを使ってログインする。 | | LANケーブルを接続し,USBケーブルで電源を供給してしばらくたったら,PuTTYを使ってログインする。 |
| ユーザ名:pi | | ユーザ名:pi |
| パスワード:raspberry | | パスワード:raspberry |
| + | |
| + | この時,Raspberry PiにDHCPでアサインされたIP Addressを知らないと接続できない。~ |
| + | Windowsマシンでは,以下のようにすれば見つけることが出来る。 |
| + | for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.XXX.%i |
| + | 実行が終わったら, |
| + | arp -a |
| + | とすると,EthernetのMACアドレスが表示されるんで,b8:27から始まのがRaspberry Piになる。~ |
| + | Linuxマシンであれば, |
| + | arp-scan --interface=eth0 192.168.XXX.0/24 | grep b8:27 |
| + | とかすればわかる。 |
| | | |
| &shiftnote; | | &shiftnote; |
| | | |
| ** 接続にWLANを使用する場合 [#c0e0038e] | | ** 接続にWLANを使用する場合 [#c0e0038e] |
- | モニターやキーボード,マウスを接続しないでインストールする時にWLANを使用する場合には,アクセスポイントに接続してdhcpを使用してNetworkに接続するということが必要になる。 | + | モニターやキーボード,マウスを接続しないでインストールする時にWLANを使用する場合には,指定するアクセスポイントに接続してdhcpを使用してNetworkに接続するということが必要になる。 |
| | | |
- | 無線LANしか使えない場合,/bootにwpa_supplicant.confを作成しておけばブート時に使用してくれるようだ。~ | + | 無線LANを使う場合,/bootにwpa_supplicant.confを作成しておけば,ブート時に使用してくれるようだ。~ |
| 最初にブート後,/boot/wpa_supplicant.confを/etc/wpa_supplicant/wpa_supplicant.confにコピー後,/boot/wpa_supplicant.confは削除される。 | | 最初にブート後,/boot/wpa_supplicant.confを/etc/wpa_supplicant/wpa_supplicant.confにコピー後,/boot/wpa_supplicant.confは削除される。 |
| | | |
| country=JP | | country=JP |
| network={ | | network={ |
- | ssid="marin" | + | ssid="access1" |
| key_mgmt=NONE <-- WEPの場合 | | key_mgmt=NONE <-- WEPの場合 |
| wep_key0="xxxxxx" | | wep_key0="xxxxxx" |
| wep_tx_keyidx=0 | | wep_tx_keyidx=0 |
| + | priority=2 <-- 数字が大きい方が優先される |
| } | | } |
| network={ | | network={ |
- | ssid="nermal2" | + | ssid="access2" |
| psk="xxxxxxxxxxxxxx" <-- WAPの場合 | | psk="xxxxxxxxxxxxxx" <-- WAPの場合 |
| + | priority=1 |
| } | | } |
| + | |
| + | Raspberry PiのIPアドレスを知るのは,有線LANと同様。 |
| | | |
| ** 接続にシリアルポートを使用する場合 [#af53ed44] | | ** 接続にシリアルポートを使用する場合 [#af53ed44] |
- | 有線LANも無線LANも使用できない場合は,GPIOのシリアルポートを使用して,シリアル | + | 有線LANも無線LANも使用できない場合は,GPIOコネクタのシリアルポートを使用して,シリアル |
| コンソールでログインするようにする。 | | コンソールでログインするようにする。 |
| | | |
- | この場合,Raspberry Pi3の場合は,/boot/config.txtに追加する。~ | + | この場合,''Raspberry Pi3BとZeroW''の場合は,/boot/config.txtに追加する。~ |
- | # dtoverlay=pi3-miniuart-bt | + | |
| core_freq=250 | | core_freq=250 |
| | | |
| 以下のように必要であれば編集する。 | | 以下のように必要であれば編集する。 |
| network={ | | network={ |
- | ssid="marin" | + | ssid="access1" |
| key_mgmt=NONE <-- WEPの場合 | | key_mgmt=NONE <-- WEPの場合 |
| wep_key0="xxxxxxxxxxxxxxxxxxx" | | wep_key0="xxxxxxxxxxxxxxxxxxx" |
| wep_tx_keyidx=0 | | wep_tx_keyidx=0 |
| + | priority=2 <-- 数字が大きい方が優先される |
| } | | } |
| | | |
| network={ | | network={ |
- | ssid="nermal2" | + | ssid="access2" |
| psk="xxxxxxxxxxxxxx" <-- WAPの場合 | | psk="xxxxxxxxxxxxxx" <-- WAPの場合 |
| key_mgmt=WPA-PSK | | key_mgmt=WPA-PSK |
| + | priority=1 |
| } | | } |
| | | |
| FallbackNTPには予備のサーバーを指定しておく。 | | FallbackNTPには予備のサーバーを指定しておく。 |
| [Time] | | [Time] |
- | NTP=ntp.nict.jp | + | NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp |
| FallbackNTP=time.google.com | | FallbackNTP=time.google.com |
| | | |
| gpu_mem=128 | | gpu_mem=128 |
| | | |
- | * SwapをOFFにして,RAMディスクを使用する [#rf6cd373] | + | ** VNC接続を有効にする [#i9c30998] |
- | Raspberry Piは,MicroSDしかストレージがないので,短い時間でMicroSDカードが寿命になる場合がある。 | + | リモート接続する時にGUIで操作したい場合は,通常はvncを使うかxrdpを使うかします。Raspbianではrealvnc-vnc-serverが入っているようだ。~ |
- | | + | vncを使う場合は,raspi-configの5. Interfacing OptionからP3 VNCをたどってenableにすればOK。 |
- | 出来るだけ,この寿命を長くするように,Swapファイルは使用をやめて,テンポラリファイルをRAM Diskを使用するようにしてみる。 | + | |
- | | + | |
- | RAMディスクは,電源OFF-ONやブートしたりした場合消えてしまうが,テンポラリのログ等では消えてしまってもまあ問題ない。 | + | |
- | | + | |
- | ** swapを使わないようにする [#j089ae05] | + | |
- | freeコマンドでswapサイズを確認してみる。 | + | |
- | # free | + | |
- | total used free shared buffers cached | + | |
- | Mem: 750632 523468 227164 5460 53252 361196 | + | |
- | -/+ buffers/cache: 109020 641612 | + | |
- | Swap: 102396 0 102396 | + | |
- | | + | |
- | と,スワップファイルとして100MBが確保されている。usedは0なんで,スワップは発生していないが・・・ | + | |
- | | + | |
- | まず,swapを無効化してみる。 | + | |
- | # dphys-swapfile swapoff | + | |
- | 確認してみると, | + | |
- | # free | + | |
- | total used free shared buffers cached | + | |
- | Mem: 750632 527064 223568 5460 53652 361688 | + | |
- | -/+ buffers/cache: 111724 638908 | + | |
- | Swap: 0 0 0 | + | |
- | 使用されなくなった。 | + | |
- | | + | |
- | ちなみに,swapを有効化するには, | + | |
- | # dphys-swapfile swapon | + | |
- | でOK。 | + | |
- | | + | |
- | swapは使用しなくなったがこれは一時的なため,swapが自動起動しないようにsystemctlで停止する。 | + | |
- | # systemctl stop dphys-swapfile | + | |
- | 自動起動もやめる。 | + | |
- | # systemctl disable dphys-swapfile | + | |
- | | + | |
- | Raspberry Piを再起動して,swapが使用されていないか確認する。 | + | |
- | | + | |
- | ** /etc/fstabの編集 [#q92b0bc8] | + | |
- | /etc/fstabを編集して,/tmpと/var/tmpと/var/logを移動するようにしてみる。 | + | |
- | proc /proc proc defaults 0 0 | + | |
- | /dev/mmcblk0p1 /boot vfat defaults 0 2 | + | |
- | /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 | + | |
- | # a swapfile is not a swap partition, no line here | + | |
- | # use dphys-swapfile swap[on|off] for that | + | |
- | これを, | + | |
- | proc /proc proc defaults 0 0 | + | |
- | /dev/mmcblk0p1 /boot vfat defaults 0 2 | + | |
- | /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 | + | |
- | # a swapfile is not a swap partition, no line here | + | |
- | # use dphys-swapfile swap[on|off] for that | + | |
- | tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 | + | |
- | tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 | + | |
- | tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0 | + | |
- | とtmpfsとして3個追加する。 | + | |
- | | + | |
- | 再起動して,マウント確認をする。 | + | |
- | # df -h | + | |
- | ファイルシス サイズ 使用 残り 使用% マウント位置 | + | |
- | /dev/root 15G 4.6G 8.9G 34% / | + | |
- | devtmpfs 363M 0 363M 0% /dev | + | |
- | tmpfs 367M 0 367M 0% /dev/shm | + | |
- | tmpfs 367M 5.1M 362M 2% /run | + | |
- | tmpfs 5.0M 4.0K 5.0M 1% /run/lock | + | |
- | tmpfs 367M 0 367M 0% /sys/fs/cgroup | + | |
- | tmpfs 32M 88K 32M 1% /var/log | + | |
- | tmpfs 16M 0 16M 0% /var/tmp | + | |
- | tmpfs 32M 0 32M 0% /tmp | + | |
- | /dev/mmcblk0p1 63M 21M 42M 34% /boot | + | |
- | tmpfs 74M 0 74M 0% /run/user/1001 | + | |
- | | + | |
- | これでRAMディスク化ができたので、SDカード上の tmpファイルを削除する。 | + | |
- | rm -rf /tmp/* | + | |
- | rm -rf /var/tmp/* | + | |
- | | + | |
- | ** cron により一日に一回システムをリブート [#s222d010] | + | |
- | RAMをクリアするために,システムを自動でリブートする設定を行う。 | + | |
- | # crontab -e | + | |
- | nanoでcrontabファイルの編集ができる。~ | + | |
- | 最後の行に下記を追加する。ここでは午前4時5分に再起動がかかるようにした。 | + | |
- | 5 4 * * * /sbin/reboot | + | |
- | | + | |
- | ** 不要なログは作成しないようにする [#a79d3e83] | + | |
- | rsyslog.confを変更して,不要なログを作成しないようにする。これにより,ディスクへ | + | |
- | の書き込みを減らす。 | + | |
- | | + | |
- | /etc/rsyslog.confファイルで,不要な行の頭をコメントアウトする。 | + | |
- | ############### | + | |
- | #### RULES #### | + | |
- | ############### | + | |
- | | + | |
- | # | + | |
- | # First some standard log files. Log by facility. | + | |
- | # | + | |
- | auth,authpriv.* /var/log/auth.log | + | |
- | *.*;auth,authpriv.none -/var/log/syslog | + | |
- | #cron.* /var/log/cron.log | + | |
- | #daemon.* -/var/log/daemon.log | + | |
- | #kern.* -/var/log/kern.log | + | |
- | #lpr.* -/var/log/lpr.log | + | |
- | #mail.* -/var/log/mail.log | + | |
- | #user.* -/var/log/user.log | + | |
| | | |
- | # | + | デフォルトをコンソールにしている場合はGUIに変更しておく。Raspi-configの3 Boot OptionsのB1 Desktop / CUIでGUIを選ぶ。 |
- | # Logging for the mail system. Split it up so that | + | |
- | # it is easy to write scripts to parse these files. | + | |
- | # | + | |
- | #mail.info -/var/log/mail.info | + | |
- | #mail.warn -/var/log/mail.warn | + | |
- | #mail.err /var/log/mail.err | + | |
| | | |
- | # | + | リモート接続側は,通常の[[RealVNC Viewer>https://www.realvnc.com/en/connect/download/viewer/]]を使用する。 |
- | # Logging for INN news system. | + | |
- | # | + | |
- | #news.crit /var/log/news/news.crit | + | |
- | #news.err /var/log/news/news.err | + | |
- | #news.notice -/var/log/news/news.notice | + | |
| | | |
- | # | + | *** VNC接続時の解像度 [#hbe4fe15] |
- | # Some "catch-all" log files. | + | VNCを使ってリモート接続するとそのままでは,VGA(720x480)の解像度になってしまう。~ |
- | # | + | これでは不便なので,解像度の設定を変更する。 |
- | #*.=debug;\ | + | |
- | # auth,authpriv.none;\ | + | |
- | # news.none;mail.none -/var/log/debug | + | |
- | *.=info;*.=notice;*.=warn;\ | + | |
- | auth,authpriv.none;\ | + | |
- | cron,daemon.none;\ | + | |
- | mail,news.none -/var/log/messages | + | |
| | | |
- | # | + | /boot/config.txtを修正する。下の行の行頭のコメント記号を外す。 |
- | # Emergencies are sent to everybody logged in. | + | framebuffer_width=1280 |
- | # | + | framebuffer_height=720 |
- | *.emerg :omusrmsg:* | + | とするか,もしくは, |
| + | hdmi_group=2 |
| + | hdmi_mode=85 |
| + | とかする。(1280x720@60Hz)設定値は[[こちら>https://elinux.org/RPiconfig#Video_mode_options]]を参照。)~ |
| + | 後者は,HDMIを使ってディスプレー表示した場合でも,この解像度が使用される。 |
| | | |
- | 一部のプログラムはテンポラリ用のディレクトリが無いとエラーになるため,OS起動時にディレクトリを作るようにする。 | + | 現在の画面の設定値を知りたい場合は, |
| + | # tvservice -s |
| + | state 0x12000a [HDMI DMT (85) RGB full 16:9], 1280x720 @ 60.00Hz, progressive |
| + | のように,表示してくれる。 |
| | | |
- | /etc/rc.localで,これを行う。 | + | 後は,Raspberry Piを再起動すれば,画面サイズが変更されている。 |
- | #!/bin/sh -e | + | |
- | # | + | |
- | # rc.local | + | |
- | # | + | |
- | # This script is executed at the end of each multiuser runlevel. | + | |
- | # Make sure that the script will "exit 0" on success or any other | + | |
- | # value on error. | + | |
- | # | + | |
- | # In order to enable or disable this script just change the execution | + | |
- | # bits. | + | |
- | # | + | |
- | # By default this script does nothing. | + | |
| | | |
- | # Print the IP address | + | *** クライアントをRealVNC Viewerじゃない場合 [#w4f7164e] |
- | _IP=$(hostname -I) || true | + | VNCクライアントは,亜流がたくさんある。他のVNCクライアントを使いたい場合は, |
- | if [ "$_IP" ]; then | + | /root/.vnc/config.d/vncserver-x11の |
- | printf "My IP address is %s\n" "$_IP" | + | Authentication=VncAuth |
- | fi | + | に変更する。もし該当する行がなければ追加する。 |
| | | |
- | mkdir -p /var/log/ConsoleKit | + | # vncpasswd -service |
- | mkdir -p /var/log/samba | + | で,適当なパスワードをセットする。接続時に必要なので忘れないようにする。 |
- | mkdir -p /var/log/fsck | + | |
- | mkdir -p /var/log/apt | + | |
- | mkdir -p /var/log/ntpstats | + | |
- | chown root.ntp /var/log/ntpstats | + | |
- | chown root.adm /var/log/samba | + | |
| | | |
- | touch /var/log/lastlog | + | *** GUIでの自動ログインをやめる [#ac27f2df] |
- | touch /var/log/wtmp | + | デフォルトだとGUI環境でpiユーザで自動ログインされる。 |
- | touch /var/log/btmp | + | |
- | chown root.utmp /var/log/lastlog | + | |
- | chown root.utmp /var/log/wtmp | + | |
- | chown root.utmp /var/log/btmp | + | |
| | | |
- | exit 0 | + | これをやめる。~ |
| + | ''/etc/lightdm/lightdm.conf''ファイルを編集して, |
| + | autologin-user=pi |
| + | ↓ |
| + | #autologin-user=pi |
| + | のように,コメントする。 |
| | | |
- | 再起動して,/var/logの下に,ログが出来ていることを確認する。 | + | ** xrdpを使ってリモート接続 [#tb6b5562] |
- | # ls -la /var/log/ | + | Windowsマシンでは標準でリモートデスクトップ接続が使えます。VNCの場合は,WindowsマシンへVNC Viewerをインストールする必要があるんで,面倒な場合はリモートデスクトップ接続を使いたいわけです。~ |
- | 合計 92 | + | Raspbianでも,このリモートデスクトップ接続を使える。 |
- | drwxr-xr-x 7 root root 300 7月 11 11:21 . | + | # apt-get install xrdp |
- | drwxr-xr-x 11 root root 4096 3月 4 01:24 .. | + | Raspberry Piを再起動後は,Windowsマシンからリモートデスクトップ接続を使って接続できる。~ |
- | drwxr-xr-x 2 root root 40 7月 11 11:21 ConsoleKit | + | リモートデスクトップ接続の場合,画面の解像度なんかも接続側で設定できる。また,音をリモートすることも出来る。(Raspberry PiにPulseaudioをインストールする必要がある。) |
- | drwxr-xr-x 2 root root 40 7月 11 11:21 apt | + | |
- | -rw-r----- 1 root adm 738 7月 11 11:22 auth.log | + | |
- | -rw-r--r-- 1 root root 3783 7月 11 11:21 boot.log | + | |
- | -rw------- 1 root utmp 0 7月 11 11:21 btmp | + | |
- | drwxr-xr-x 2 root root 40 7月 11 11:21 fsck | + | |
- | -rw-r--r-- 1 root utmp 292584 7月 11 11:22 lastlog | + | |
- | -rw-r----- 1 root adm 20786 7月 11 11:21 messages | + | |
- | drwxr-xr-x 2 root ntp 40 7月 11 11:21 ntpstats | + | |
- | drwxr-xr-x 2 root adm 40 7月 11 11:21 samba | + | |
- | -rw-r----- 1 root adm 41577 7月 11 11:22 syslog | + | |
- | -rw-rw-r-- 1 root utmp 1920 7月 11 11:22 wtmp | + | |
- | -rw------- 1 root root 98 7月 11 11:21 xrdp-sesman.log | + | |