- Windowsからsshでアクセス(専用ディスプレイ不要)
PuTTYのオリジナルサイトや PuTTYの日本語化サイトから「PuTTY」をダウンロードしてインストールします。
日本語の場合は「puttyjp.exe」を起動します。
使い方は簡単です。Raspberryの[IPアドレス]を指定し、ポートが[22]であることと[ssh]が選択されていることを確認したら[開く]をクリックします。初めての時のみ暗号化キーの承認を求められますので「OK」します。
login as:pi
pi@192.168.10.11's password:raspberry
- ユーザーpi のパスワードの変更
$ passwd
Changing password for pi.
(current) UNIX password:paspberry
Enter new UNIX password:new password
Retype new UNIX password:new password
passwd: password updated successfully
- VNC使用時のパスワードを設定
$ vncpasswd
Using password file /home/pi/.vnc/passwd
Password:new password
Verify:new password
Would you like to enter a view-only password (y/n)? n
- 3つの不要なデーモンを削除
ファイルごと削除してしまいたくない場合は update-rc.d のみを使用してください。
$ sudo update-rc.d -f cron remove
$ sudo update-rc.d -f dbus remove
$ sudo update-rc.d -f triggerhappy remove
$ sudo apt-get remove cron dbus triggerhappy
Reading package lists... Done
Building dependency tree
Reading state information... Done
:
After this operation, 11.9 MB disk space will be freed.
Do you want to continue [Y/n]?y
:
$ sudo apt-get autoremove
:
After this operation, 102 MB disk space will be freed.
Do you want to continue [Y/n]?y
:
autoremoveは残骸ファイルをまとめて削除してくれます。
- VNCを必要なときのみ起動するように設定する
先のデーモンの削除のようにすべてアンインストールではなく、自動起動を外します。
$ sudo update-rc.d -f tightvncserver remove
update-rc.d: using dependency based boot sequencing
簡単なコマンドでVNCを立ち上げたり、終了したり出来るようにします。ここでエディターが必要になりますが標準では「vi」と「nano」が入っています。慣れないと仕方なのですが私は「vim」を新たにインストールしました。(sudo apt-get install vim)
しかし、折角なのでブログを書くにあたり「nano」を使ってみることにします。
.bashrcのドットに注意
$ sudo nano .bashrc
テキストファイル下部に図のような alias のセクションが有ります。ここに2行書き加えます。これは、「vs」と言うコマンドでVNCサーバーが指定したウィンドウサイズで立ち上がることを意味しています。同様に「vk」は終了します。
ちなみに私はウィンドウサイズを1280x1024にしています。
GNU nano 2.2.6 File: .bashrc
# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'
alias vs='vncserver -geometry 1024x768 :1'
alias vk='vncserver -kill :1'
[Ctrl]+[o]で書き出し、[Ctrl]+[x]で終了します。
ここで一度再起動させて、コマンドを使用できるようにします。
$ sudo reboot
- Windows側に、VNC接続するためのVNC Viewerをインストール
サーバとビューワがセットになった「VNC」も選択できますがサーバ用無償ライセンスの取得など面倒なのでビューワのみダウンロードします。
名前とE-Mailを記入すれば、後は「I have read and accept these terms and conditions」にチェックしてダウンロード出来ます。
IPアドレス(:1に注意)を入力して接続するのですが、[Connect]を押すのはVNCサーバを立ち上げてからです。
sshで接続し、ユーザーpiと変更したパスワードでログインし、VNCサーバを立ち上げます。
$ vs
New 'X' desktop is raspberrypi:1 ← ここが :1 なのでIPアドレス:1となる。
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
これで、ディスプレイもキーボード・マウスも取り付けずあたかも、直接操作している感覚で使用できます。
また、使用しないときはWindows側のビューワは[X]で閉じるだけ。VNCサーバーを終了しておくとより軽くなります。
$ vk
Killing Xtightvnc process ID 1965
- デーモン(daemon)dvapnodedとircddbgatewaydをサービス登録し自動立ち上げ
新規ファイルを作成します。(ファイル名:dvap)
$ sudo nano /etc/init.d/dvap
この内容をコピー&ペーストしてください。
GNU nano 2.2.6 File: /etc/init.d/dvap
#!/bin/bash
### BEGIN INIT INFO
#Provides: dvap
#Required-Start: $syslog
#Required-Stop: $syslog
#Default-Start: 2 3 4 5
#Default-Stop: 0 1 6
#Short-Description: DVAP
#Description:
#
### END INIT INFO
#!/bin/sh
# /etc/init.d/dvap
#
case "$1" in
start)
/usr/local/bin/dvapnoded -daemon
/usr/local/bin/ircddbgatewayd -daemon
echo "Starting DVAP... "
;;
stop)
pkill ircddbgatewayd
pkill dvapnoded
echo "DVAP has been stopped "
;;
restart)
pkill ircddbgatewayd
pkill dvapnoded
/usr/local/bin/dvapnoded -daemon
/usr/local/bin/ircddbgatewayd -daemon
echo "Restarting DVAP... "
;;
*)
echo "Usage: sudo service dvap {start|stop|restart}"
exit 1
;;
esac
exit 0
[Ctrl]+[o]で書き出し、ファイル名の確認で[Enter]して、[Ctrl]+[x]で終了します。
$ sudo chmod a+x /etc/init.d/dvap
このコマンドでファイル「dvap」の属性を「Excutable」立ち上げ可に変更します。
そして、立ち上げ時自動起動するように defaults 設定します。
$ sudo update-rc.d dvap defaults
update-rc.d: using dependency based boot sequencing
ここで、デーモンとして登録されているもののリストを表示(update-rc.d 同様ON/OFFも可)するためのコマンドをインストールする。(RasのようなDebian系には rcconf や sysv-rc-confもあります。)
$ sudo apt-get install chkconfig
$
chkconfig --list
alsa-utils 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
bootlogs 0:off 1:on 2:on 3:on 4:on 5:on 6:off
bootmisc.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
console-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
cron 0:off 1:off 2:off 3:off 4:off 5:off 6:off
dbus 0:off 1:off 2:off 3:off 4:off 5:off 6:off
dphys-swapfile 0:off 1:off 2:on 3:on 4:on 5:on 6:off
dvap 0:off 1:off 2:on 3:on 4:on 5:on 6:off
fake-hwclock 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hostname.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hwclock.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ifplugd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
kbd 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
keyboard-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
killprocs 0:off 1:on 2:off 3:off 4:off 5:off 6:off
kmod 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
lightdm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
motd 0:off 1:on 2:on 3:on 4:on 5:on 6:off
mountall-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountall.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountdevsubfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountkernfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mtab.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
networking 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
nfs-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntp 0:off 1:off 2:on 3:on 4:on 5:on 6:off
procps 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
rc.local 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rcS 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rmnologin 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sendsigs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ssh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
startgateway 0:off 1:off 2:off 3:off 4:off 5:off 6:off
startgmsk 0:off 1:off 2:off 3:off 4:off 5:off 6:off
starttimercontrol 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sudo 0:off 1:off 2:on 3:on 4:on 5:on 6:off
tightvncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
triggerhappy 0:off 1:off 2:off 3:off 4:off 5:off 6:off
udev 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
udev-mtab 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
umountfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountroot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
urandom 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
x11-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
これで、起動時自動的に立ち上げられるデーモン(サービス)として登録できましたので[sudo reboot]します。再度sshで接続、ユーザーpiとパスワードでログインし、次のコマンドで起動しているか確認します。(その前にうまくいっていれば接続アナウンスが聞こえるかも知れません)
$
ps -e
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
中略
1858 ? 00:00:16 dvapnoded
1876 ? 00:00:16 ircddbgatewayd
1879 ? 00:00:00 startpar
1903 ? 00:00:00 sshd
中略
2070 pts/1 00:00:01 bash
2080 pts/1 00:00:00 ps
次のコマンドも試してみましょう。条件処理が不完全ですので二度 start すると二つ立ち上がったりしますので、そのときは一度の stopですべて終了します。
$ sudo service dvap stop
DVAP has been stopped
$ sudo service dvap start
Starting DVAP...
$ sudo service dvap restart
Restarting DVAP...
- 時計に関する改良をして遊んでみましょう。
Debian系のupdate-rc.dに替わってRed hat系のchkconfigを使います。
$
chkconfig --list ntp
ntp 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$
sudo chkconfig ntp off
$
chkconfig --list ntp
ntp 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntpをアンインストールし、代わりにchronyをインストールします。
$ sudo apt-get remove ntp
$ sudo apt-get install chrony
$ sudo nano /etc/chrony/chrony.conf
標準のntpサーバはコメントアウトし、新たに日本のサーバを加える。
GNU nano 2.2.6 File: /etc/chrony/chrony.conf
省略
#server 0.debian.pool.ntp.org offline minpoll 8
#server 1.debian.pool.ntp.org offline minpoll 8
#server 2.debian.pool.ntp.org offline minpoll 8
#server 3.debian.pool.ntp.org offline minpoll 8
server ntp.jst.mfeed.ad.jp
server ntp.nict.jp
server ntp.ring.gr.jp
省略
さらに、Raspberry Pi にはRTC(リアル・タイム・クロック)が有りませんので起動時にntpdateを使用して時計を設定します。
$ sudo apt-get install ntpdate
これを起動時実行スクリプトに追加します。
$ sudoedit /etc/rc.local
次の一行を加えます。
GNU nano 2.2.6 File: /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.
ntpdate jp.pool.ntp.org
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
exit 0
- 時計を日本時間に変更します。
$ sudo dpkg-reconfigure tzdata
矢印キーとTabキーを使って移動し、[Enter]します。
Package configuration
┌─────────────────────────────────────┐
│Please select the geographic area in which you live. Subsequent │
│configuretion questions will narrow this down by presenting a list of │
│citeis, representing the time zones in which they are located. │
│ │
│Geogpaphic area: │
│ │
│ Africa │
│ America │
│ Antarctica │
│ Australia │
│ Arctic │
│ Asia │
│ Atlantic │
│ Europe │
│ Indian │
│ Pacific │
│ SystemV │
│ US │
│ Etc │
│ │
│ <Ok> <Cancel> │
└─────────────────────────────────────┘
- 最後に管理用コマンド2つ
$
pstree
init─┬─chronyd
├─dhclient
├─dvapnoded───{dvapnoded}
├─7*[getty]
├─3*[ifplugd]
├─ircddbgatewayd───8*[{ircddbgatewayd}]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───sshd───bash───pstree
├─udevd───2*[udevd]
└─wpa_supplicant
今までチューニングした努力の結果が表示されます。
$ sudo apt-get install htop
$ htop
さて最後のコマンドはどんな結果を表示するのでしょう。パソコンにLinuxをインストールしてではちょっと・・・と思っておられた方もSDカードを2枚焼いておいて挑戦してみてください。Raspberry 万歳!!