Raspberry Pi 日記
長嶋 洋一
2013年6月3日(月)
早起きして朝から気合いを入れて出勤してきたのに、いきなりトラブルに遭遇した。 研究室のEPSONのインクジェットブリンタのインクが少なくなったというので交換してみると、純正の新品インクなのに、カートリッジを認識してくれない。 過去にも旧機種のEPSONでもあった事だが、いろいろと試して、結局、その入れたばかりの新品純正インクカートリッジを捨てて(^_^;)、さらに別の新品純正インクカートリッジを入れると、何事もなく正常になった。 つまりは「EPSONタイマー」という事なのか、これで純正インク5本セットが一式、お金だけ払って全く使わずにゴミとなった。 1時間以上も無駄に取られたのが悔しいが、EPSONもいい商売をしているなぁ(^_^;)。午後には、昨夜から思いついていたアイデアに取りかかったが、なかなか相手が大きいので、そう簡単には突破できない。 そこでまず、「起動時に自動でユーザー[pi]でログインして、さらに[tightvncserver]を起動しておく」という環境設定を行った。 これにより、ホストのMacからいちいちターミナルでsshしてtightvncserverを起動してからVNCしなくても良くなる筈、という事である。 rcpはホストからでもRaspberry Piからでも出来るし、シャットダウンもVNC内でRaspberry Piのターミナルウインドウを開いて行えばいい。 そこでネットをキーワード「debian 自動起動 ログイン ユーザ」で検索して出て来た このページ の記述そのままで、簡単に実現できてしまった。 これは固定アドレスでもDHCPでも出来るが、DHCPだとホストからのVNCの対象IPが不明なので、固定IPだと便利なものとなる。 以下はまず、起動時に[pi]ユーザで自動ログインする設定の手順である。
そして以下は、起動時に[tightvncserver]を自動起動する設定の手順である。
- まずはMacのターミナルからsshでログインする
- 「sudo nano /etc/inittab」として設定ファイルを開く
- その中の「1:2345:respawn:/sbin/getty --noclear 38400 tty1」という行の先頭に##を付けてコメントアウトする
- その直後に「1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1」という行を入れる
- [ctrl+O]で書き出す
- [ctrl+X]で終了
これで終わりである。 この2つの設定ファイルは、上記の修正を加えた状態だと、以下のようになっている。
- (Macのターミナルからsshでログインしたまま)
- 「nano /.profile」として設定ファイルを開く
- いちばん下に以下の3行をコピペする
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
tightvncserver
fi- [ctrl+O]で書き出す
- [ctrl+X]で終了
今後、さらに起動時に自動実行したいものがあれば、上記の後者に追加すればいいのだろう。 そしてお約束であるが、僕のパソコンはMacだろうがWindowsだろうが、全てこれにする、というデスクトップの壁紙を設定した。 元素材は、シリコングラフィクスのIndyワークステーションにdefaultで用意されていたものであるが、これをpngに変換して、rcpでRaspberry Piに送って、デスクトップ上の右クリックで出した「設定」メニューから指定すると、以下のように見慣れた風景となった。(^_^)pi@raspberrypi ~ $ cat /etc/inittab # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: #: : : # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # ##1:2345:respawn:/sbin/getty --noclear 38400 tty1 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 #Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 pi@raspberrypi ~ $ cat .profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then tightvncserver fi pi@raspberrypi ~ $
併せてRaspberry Piのターミナルウインドウのフォントサイズを10から11に、文字色をグレーからホワイトに、太文字を禁止に、カーソルを点滅に、と設定変更することで、もはやVNCで繋いでいる事を忘れるほど、親和性が高まった。 やはり、デスクトップは、こうでなくちゃ(^_^;)。 そしてぼちぼち16時となった。 アカペラ新加入の新入生たちが、レバの補習特訓にやってくるので、大ネタへの挑戦は明日以降として、今日はここまでである。
「Raspberry Pi日記」トップに戻る