|
1: 2017-07-08 (土) 07:20:58 yuji |
| + | * Raspbian Jessieのインストール [#j43b6f52] |
| | | |
| + | Raspberry Pi3Bに[[Raspbian Jessie with Desktop>https://www.raspberrypi.org/downloads/raspbian/]]をインストールしてみた。新しいOSとして,Raspbian Stretch with desktopがリリースされている。~ |
| + | 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カードってのがやはりある。TOSHIBAのものだと概ね大丈夫みたいだけど。 |
| + | |
| + | モニターとキーボードを接続しないでインストールするため,&font(Red){ブートパーテーションに空のファイルでsshを作成};した。こうすると,最初にブート後SSHでログイン出来るようになる。~ |
| + | |
| + | リモート接続は,有線LANを使う,無線LANを使う,シリアルポートを使う,といった方法がある。 |
| + | |
| + | 有線LAN接続でDHCPクライアントで自動でIP Addressがアサインされるので,今回はSSHログインでインストールを行うことにした。~ |
| + | 無線LANでも前もって,設定ファイルを用意すれば,同様に使用することが出来る。 |
| + | |
| + | もちろん,Pi3Bのシリアルポートを使用してPCと接続しシリアルコンソールを使用すれば,LANケーブルも接続しないでOSのインストールと各種設定することが出来る。 |
| + | |
| + | LANケーブルを接続し,USBケーブルで電源を供給してしばらくたったら,PuTTYを使ってログインする。 |
| + | ユーザ名:pi |
| + | パスワード:raspberry |
| + | |
| + | &shiftnote; |
| + | |
| + | ** 接続にWLANを使用する場合 [#c0e0038e] |
| + | モニターやキーボード,マウスを接続しないでインストールする時にWLANを使用する場合には,アクセスポイントに接続してdhcpを使用してNetworkに接続するということが必要になる。 |
| + | |
| + | 無線LANしか使えない場合,/bootにwpa_supplicant.confを作成しておけばブート時に使用してくれるようだ。~ |
| + | 最初にブート後,/boot/wpa_supplicant.confを/etc/wpa_supplicant/wpa_supplicant.confにコピー後,/boot/wpa_supplicant.confは削除される。 |
| + | |
| + | /boot/wpa_supplicant.confは以下のように作成しておく |
| + | ctrl_interface=/var/run/wpa_supplicant |
| + | country=JP |
| + | network={ |
| + | ssid="marin" |
| + | key_mgmt=NONE <-- WEPの場合 |
| + | wep_key0="xxxxxx" |
| + | wep_tx_keyidx=0 |
| + | } |
| + | network={ |
| + | ssid="nermal2" |
| + | psk="xxxxxxxxxxxxxx" <-- WAPの場合 |
| + | } |
| + | |
| + | ** 接続にシリアルポートを使用する場合 [#af53ed44] |
| + | 有線LANも無線LANも使用できない場合は,GPIOのシリアルポートを使用して,シリアル |
| + | コンソールでログインするようにする。 |
| + | |
| + | この場合,Raspberry Pi3の場合は,/boot/config.txtに追加する。~ |
| + | # dtoverlay=pi3-miniuart-bt |
| + | core_freq=250 |
| + | |
| + | Piのヘッダピンの以下のシリアルポート信号をPCのCOMポートと接続する。 |
| + | |PC|Raspberry Pi|h |
| + | |GND|6pin (GND)| |
| + | |RXD|8pin (TXD)| |
| + | |TXD|10pin (RXD)| |
| + | |
| + | &font(Red){注意:Raspberry Pi側は3.3V CMOS系なので,これをCOMポート(RS232C)に変換する必要がある。}; |
| + | |
| + | PC側は, |
| + | Baudrate:115200,Data:8,Stopbit:1,Parity:なし |
| + | で接続する。 |
| + | |
| + | * 各種環境設定 [#rd4aac85] |
| + | 最初に起動したら,SSHでリモートログインする。 |
| + | 利用できるデフォルトのユーザーアカウントは,piユーザーとrootユーザー。 |
| + | pi:raspberry |
| + | root:raspbian |
| + | piユーザーでログインする。 |
| + | |
| + | まず,デフォルトで登録されているpiユーザのパスワードを,変更する。(raspi-configでも出来る) |
| + | $ sudo passwd pi |
| + | ルール無しでパスワードを設定できる。~ |
| + | それから,rootのパスワードを設定する。 |
| + | $ sudo passwd root |
| + | |
| + | ** いくつかの設定 [#e75062e5] |
| + | 設定ツールraspi-configを使って,いくつか設定を行う。 |
| + | # raspi-config |
| + | |
| + | - タイムゾーンの設定~ |
| + | Localisation Options → Change Timezone からタイムゾーンの変更をする。 |
| + | Asia → Tokyo |
| + | 後で確認する。 |
| + | # timedatectl status |
| + | Local time: 火 2017-07-11 08:48:28 JST |
| + | Universal time: 月 2017-07-10 23:48:28 UTC |
| + | RTC time: n/a |
| + | Time zone: Asia/Tokyo (JST, +0900) |
| + | NTP enabled: no |
| + | NTP synchronized: yes |
| + | RTC in local TZ: no |
| + | DST active: n/a |
| + | これでも設定できる。 |
| + | # timedatectl set-timezone Asia/Tokyo |
| + | - wifiの国の設定~ |
| + | Localisation Options → Change Wi-fi Country から wifiを使う国の選択をする。(周波数とかが国対応になる。)~ |
| + | やっていることは,/etc/wpa_supplicant/wpa_supplicant.confを編集するようだ。 |
| + | Japan |
| + | - Change Locale~ |
| + | ja_JP.UTF-8 UTF-8 |
| + | を追加して,デフォルトをja_JP.UTF-8 UTF-8にする。~ |
| + | ~もしくは,/etc/locale.genファイルのja_JP.UTF-8 UTF-8を有効にして(#を削除する), |
| + | # locale-gen |
| + | Generating locales (this might take a while)... |
| + | ja_JP.UTF-8... done |
| + | # localectl set-locale LANG=ja_JP.utf8 |
| + | でも,設定できる。 |
| + | |
| + | 上記の設定をして,Finishをクリックで再起動。~ |
| + | パーテーションのサイズは最初に自動で拡張される。 |
| + | |
| + | ** キーボードレイアウトの設定 [#qa0f6376] |
| + | SSH等でリモートログインして使用する場合は設定の必要ないが,モニターキーボードを接続して使用する場合は必要になる。~ |
| + | キーボードを接続している場合は,raspi-configで設定出来るが,今回は接続していないので別の方法で設定しておく。 |
| + | |
| + | 現在の設定を確認する。 |
| + | # localectl status |
| + | System Locale: LANG=ja_JP.utf8 |
| + | VC Keymap: n/a |
| + | X11 Layout: gb |
| + | X11 Model: pc105 |
| + | のように,英語キーボード配列になっている。 |
| + | # localectl set-keymap jp106 |
| + | として,106キーボード配列を設定する。 |
| + | # localectl status |
| + | System Locale: LANG=ja_JP.utf8 |
| + | VC Keymap: jp106 |
| + | X11 Layout: jp |
| + | X11 Model: jp106 |
| + | X11 Options: terminate:ctrl_alt_bksp |
| + | 106日本語キーボードに設定しておく。 |
| + | |
| + | ** USBポートの最大合計電源供給量の設定 [#m21d3fe9] |
| + | Pi3Bでは,1.2Aが最大合計電源供給量になっていて,切り替えは出来ないみたいだ。なのでこれは必要ない。~ |
| + | Pi1B+やPi2B(Pi1Bは出来ない)だと,ソフトウェアで最大合計電源供給量を切り替え出来る。~ |
| + | その場合は,/boot/config.txtに以下を追加する。 |
| + | max_usb_current=1 |
| + | |Piモデル|USBポート最大合計電源供給量| |
| + | |Raspberry Pi A|500mA| |
| + | |Raspberry Pi B|500mA| |
| + | |Raspberry Pi A+|500mA| |
| + | |Raspberry Pi B+|600mA/1200mA(切り換え)| |
| + | |Raspberry Pi2 B|600mA/1200mA(切り換え)| |
| + | |Raspberry Pi3 B|1200mA| |
| + | |Raspberry PiZeroW|?| |
| + | |
| + | ** ユーザの追加 [#z68aea81] |
| + | ユーザを追加する。 |
| + | $ su - |
| + | # adduser yuji |
| + | |
| + | ** ブート時にコンソールにする [#c95d39c1] |
| + | デフォルトでは,GUIのXが立ち上がるようになっている。~ |
| + | CUIの操作で十分なので,デフォルトをコンソールに変更する。 |
| + | # raspi-config |
| + | から,3 Boot OptionsのB1 Desktop / CUIでConsoleを選ぶ。 |
| + | |
| + | ** 無線LANの設定 [#labf200b] |
| + | モニターやキーボード,マウスを接続しないでインストールする時に設定していた場合は,この無線LANの設定は必要ない。 |
| + | |
| + | /etc/wpa_supplicant/wpa_supplicant.confを編集する。~ |
| + | 以下のように必要であれば編集する。 |
| + | network={ |
| + | ssid="marin" |
| + | key_mgmt=NONE <-- WEPの場合 |
| + | wep_key0="xxxxxxxxxxxxxxxxxxx" |
| + | wep_tx_keyidx=0 |
| + | } |
| + | |
| + | network={ |
| + | ssid="nermal2" |
| + | psk="xxxxxxxxxxxxxx" <-- WAPの場合 |
| + | key_mgmt=WPA-PSK |
| + | } |
| + | |
| + | これで,有線LANのケーブルをはずして,リブートし直すと無線LANで接続される。 |
| + | |
| + | ** 最新状態に更新 [#k016a2d2] |
| + | apt-get用に,近いサイトを設定する。~ |
| + | /etc/apt/sources.listを編集して,デフォルトを削除し,以下を追加 |
| + | deb http://ftp.jaist.ac.jp/raspbian jessie main contrib non-free |
| + | deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ jessie main contrib non-free |
| + | システムを更新しておく。 |
| + | # apt-get update |
| + | # apt-get upgrade |
| + | # apt-get dist-upgrade |
| + | |
| + | 時々,これを行って更新するようにする。~ |
| + | &font(Red){upgrade途中で書き込みエラーとかで失敗する場合は,MicroSDカードの相性や寿命が考えられる。}; |
| + | |
| + | Raspberry Pi 3Bのファームフェアを必要なら更新する。 |
| + | # rpi-update |
| + | |
| + | ** 日本語フォントとIMEのインストール [#n6c608b2] |
| + | # apt-get install fonts-ipafont fonts-ipaexfont |
| + | # apt-get install ibus-mozc |
| + | |
| + | ** 日本語マニュアルをインストール [#u997c25d] |
| + | # apt-get install manpages-ja manpages-ja-dev |
| + | |
| + | ** ntpサーバの変更 [#c3e138fa] |
| + | /etc/ntp.confを編集する。 |
| + | #server 0.debian.pool.ntp.org iburst |
| + | #server 1.debian.pool.ntp.org iburst |
| + | #server 2.debian.pool.ntp.org iburst |
| + | #server 3.debian.pool.ntp.org iburst |
| + | server ntp1.jst.mfeed.ad.jp |
| + | server ntp2.jst.mfeed.ad.jp |
| + | server ntp3.jst.mfeed.ad.jp |
| + | に修正した。 |
| + | |
| + | *** Raspbian Stretchの場合 [#n9a6fc58] |
| + | 以下のコマンドで,Network time on: yesになっているか確認する。 |
| + | # timedatectl status |
| + | Local time: Tue 2017-08-29 21:08:10 JST |
| + | Universal time: Tue 2017-08-29 12:08:10 UTC |
| + | RTC time: n/a |
| + | Time zone: Asia/Tokyo (JST, +0900) |
| + | Network time on: yes |
| + | NTP synchronized: yes |
| + | RTC in local TZ: no |
| + | yesになっていなければ以下のコマンドで有効にする。 |
| + | # timedatectl set-ntp true |
| + | |
| + | NTPサーバーを指定するには,/etc/systemd/timesyncd.confを編集する。~ |
| + | FallbackNTPには予備のサーバーを指定しておく。 |
| + | [Time] |
| + | NTP=ntp.nict.jp |
| + | FallbackNTP=time.google.com |
| + | |
| + | ** Videoチップへのメモリ割り当て [#f0fd8e8d] |
| + | /boot/config.txtに以下を追加。デフォルトは,メインRAMの1GByteの内64Mbyteを割り当てるようになっています。~ |
| + | 128Mbyteに変更する。 |
| + | gpu_mem=128 |
| + | |
| + | * SwapをOFFにして,RAMディスクを使用する [#rf6cd373] |
| + | Raspberry Piは,MicroSDしかストレージがないので,短い時間でMicroSDカードが寿命になる場合がある。 |
| + | |
| + | 出来るだけ,この寿命を長くするように,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 |
| + | |
| + | # |
| + | # 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 |
| + | |
| + | # |
| + | # 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 |
| + | |
| + | # |
| + | # Some "catch-all" log files. |
| + | # |
| + | #*.=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 |
| + | |
| + | # |
| + | # Emergencies are sent to everybody logged in. |
| + | # |
| + | *.emerg :omusrmsg:* |
| + | |
| + | 一部のプログラムはテンポラリ用のディレクトリが無いとエラーになるため,OS起動時にディレクトリを作るようにする。 |
| + | |
| + | /etc/rc.localで,これを行う。 |
| + | #!/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 |
| + | _IP=$(hostname -I) || true |
| + | if [ "$_IP" ]; then |
| + | printf "My IP address is %s\n" "$_IP" |
| + | fi |
| + | |
| + | mkdir -p /var/log/ConsoleKit |
| + | 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 |
| + | touch /var/log/wtmp |
| + | touch /var/log/btmp |
| + | chown root.utmp /var/log/lastlog |
| + | chown root.utmp /var/log/wtmp |
| + | chown root.utmp /var/log/btmp |
| + | |
| + | exit 0 |
| + | |
| + | 再起動して,/var/logの下に,ログが出来ていることを確認する。 |
| + | # ls -la /var/log/ |
| + | 合計 92 |
| + | drwxr-xr-x 7 root root 300 7月 11 11:21 . |
| + | drwxr-xr-x 11 root root 4096 3月 4 01:24 .. |
| + | drwxr-xr-x 2 root root 40 7月 11 11:21 ConsoleKit |
| + | 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 |