1: 2017-07-08 (土) 07:20:58 yuji ソース
Line 1: Line 1:
 +* 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


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1462, today: 1, yesterday: 0