2014/02/11

RaspberryPi をUSBフラッシュで構築するの巻 (2)

Raspbian 初期設定編

まずはraspi-config
$ sudo raspi-config

とりあえずアップデート
8 Advanced Options ] - [ A7 Update ]

コンソールログインを選択
3 Enable Boot to Desktop/Scratch ] - [ Console Text console, requiring login (default) ]

言語設定でjaを追加
4 Internationalisation Options ] - [ I1 Change Locale ]
[*] en_US.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8

Default locale ⇛ [ ja_JP.EUC-JP ]

タイムゾーン(東京に設定)
4 Internationalisation Options ] - [ I2 Change Timezone ]
[ Asia ] - [ Tokyo ]

メモリ使用量(コンソールのみなので最小に)
[ 8 Advanced Options ] - [ A3 Memory Split ]
[ 16 ]

で終了。一旦リブート。

自分ユーザー作成&piユーザー削除
$ sudo adduser [hogehoge]
ユーザ `[hogehoge]' を追加しています...
新しいグループ `[hogehoge]' (nnnn) を追加しています...
新しいユーザ `[hogehoge]' (nnnn) をグループ `[hogehoge]' として追加しています...
ホームディレクトリ `/home/[hogehoge]' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しいUNIXパスワードを入力してください: [ パスワード ]
新しいUNIX パスワードを再入力してください: [ パスワード ]
passwd: パスワードは正しく更新されました
[hogehoge] のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
フルネーム []: [ ]
部屋番号 []: [ ]
職場電話番号 []: [ ]
自宅電話番号 []: [ ]
その他 []: [ ]
以上で正しいですか? [Y/n]

$ sudo visudo
[hogehoge] ALL=(ALL) ALL
を追加

リブート
$ sudo reboot

新しく作った自分アカウントでログイン
> ssh [hogehoge]@192.168.xxx.xxx

アカウントpiの削除
$ sudo userdel -r pi

$ sudo visudo
pi ALL=(ALL) NOPASSWD: ALL
を削除

ntpクライアントの入れ替え
ntpを消してntpdateをインストール
$ sudo apt-get remove ntp
$ sudo apt-get install ntpdate

ntpサーバを国内サーバに変更
$ sudo vi /etc/default/ntpdate
# NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org ...
NTPSERVERS="0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp"

時刻合わせを毎時に
$ sudo crontab -e
0 * * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1

USBフラッシュ延命対策
USBフラッシュ延命にswapの停止と、
logファイルをRAMディスクに最低限のみ出力するようにする。

swap停止
$ sudo dphys-swapfile swapoff
$ sudo dphys-swapfile uninstall
$ sudo apt-get remove dphys-swapfile

RAMディスクを使用するように
$ sudo vi /etc/fstab
次の3行を追加
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

ログファイル出力抑止
auth, syslog, messagesのみに
$ sudo vi /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:*

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#       news.=crit;news.=err;news.=notice;\
#       *.=debug;*.=info;\
#       *.=notice;*.=warn       /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
#
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
# daemon.*;mail.*;\
#         news.err;\
#         *.=debug;*.=info;\
#         *.=notice;*.=warn       |/dev/xconsole

出力時にディレクトリがないとエラーになるログがあるので
ログ初期設定用のスクリプトを作成する
$ sudo vi /etc/init.d/make-logfile
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          make-varlog-files
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create /var/log/... files on tmpfs at startup
# Description:       Create /var/log/... files needed by system daemon
### END INIT INFO

#
# main()
#
case "${1:-''}" in
  'start')

    mkdir -p /var/log/ConsoleKit
    mkdir -p /var/log/apt
    mkdir -p /var/log/fsck
    mkdir -p /var/log/mrtg
    mkdir -p /var/log/ntpstats
    mkdir -p /var/log/samba
    mkdir -p /var/log/squid3

    chown root.adm /var/log/mrtg
    chown ntp.ntp /var/log/ntpstats
    chown root.adm /var/log/samba
    chown proxy.proxy /var/log/squid3

    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
   ;;
  'stop')
   ;;
  'restart')
   ;;
  'reload'|'force-reload')
   ;;
  'status')
   ;;
  *)
   echo "Usage: $SELF start"
   exit 1
   ;;
esac

デフォルトランレベルの起動リンクを作成
$ sudo chmod 755 /etc/init.d/make-logfile
$ sudo update-rc.d make-logfile defaults 01 10


不要デーモン停止
$ sudo update-rc.d -f triggerhappy remove
$ sudo update-rc.d -f alsa-utils remove
$ sudo update-rc.d -f lightdm remove
$ sudo update-rc.d -f motd remove
$ sudo update-rc.d -f plymouth remove

マルチキャストDNS
$ sudo apt-get install avahi-daemon
これで母艦から[ $ ssh raspi.local ]な感じでログインできる。

Raspbianアップデート
国内サーバーにリポジトリをミラーリングしてくれてる奇特な方がおられるので、
せっかくなので利用させていただく。
https://twitter.com/kfujieda/status/301119397064486912

$ sudo vi /etc/apt/sources.list
## deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt-get autoremove

suのパスワード設定と、普段アカウントにwww-dataグループを追加
$ sudo passwd
新しいUNIXパスワードを入力してください: [ パスワード ]
新しいUNIX パスワードを再入力してください: [ パスワード ]
passwd: パスワードは正しく更新されました

$ sudo usermod -G www-data hogehoge

0 件のコメント:

コメントを投稿

フォロワー