2013年1月22日火曜日

DVAP on Raspberry Pi をチューニングしてみよう

Back


ここでご紹介している D-STAR ネットワークへの接続ツール(各種ノード・DVAPなど)の運用においては 免許申請について(安田OMサイト)をご参照ください。 (2013年8月 ガイドラインが示されました。)
  1. Windowsからsshでアクセス(専用ディスプレイ不要)

  2. PuTTYのオリジナルサイトPuTTYの日本語化サイトから「PuTTY」をダウンロードしてインストールします。
     日本語の場合は「puttyjp.exe」を起動します。

     使い方は簡単です。Raspberryの[IPアドレス]を指定し、ポートが[22]であることと[ssh]が選択されていることを確認したら[開く]をクリックします。初めての時のみ暗号化キーの承認を求められますので「OK」します。
    login as:pi
    pi@192.168.10.11's password:raspberry


  3. ユーザーpi のパスワードの変更
  4. $ 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


  5. VNC使用時のパスワードを設定
  6. $ 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


  7. 3つの不要なデーモンを削除
  8.  ファイルごと削除してしまいたくない場合は 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は残骸ファイルをまとめて削除してくれます。

  9. VNCを必要なときのみ起動するように設定する
  10.  先のデーモンの削除のようにすべてアンインストールではなく、自動起動を外します。
    $ 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


  11. Windows側に、VNC接続するためのVNC Viewerをインストール
  12.  サーバとビューワがセットになった「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


  13. デーモン(daemon)dvapnodedとircddbgatewaydをサービス登録し自動立ち上げ
  14.  新規ファイルを作成します。(ファイル名: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系には rcconfsysv-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...


  15. 時計に関する改良をして遊んでみましょう。
  16.  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


  17. 時計を日本時間に変更します。
  18. $ 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>             │
    └─────────────────────────────────────┘


  19. 最後に管理用コマンド2つ
  20. $ 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 万歳!!
Back


icon icon



73
J E 3 H C Z @REF047 C

0 件のコメント:

コメントを投稿