Top > calendar - 日記

2014年 06月 の 日記

<< 2014.6 >>
[日記]
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

28
June, 2014Edit

SCientific Linux 6.2にWine

wine-1.6.1 をインストールしたときのメモ

  1. rpmforge.repo 追加する
    http://pkgs.repoforge.org/rpmforge-release/から最新の
    rpmforge-release-0.5.3-1.el6.rf.i686.rpmをwgetで落とし、rpm -Uvh する。
  2. /etc/yum.repos.d/rpmforge.repoを編集
    通常は、enable = 0 にしておき、yum でインストールする際は、yum --enablerepo=rpmforge install wine とする。
  3. wine-geck-1.4を先にインストールしておく
    これをせずに、いきなりyum --enablerepo=rpmforge install wineをすると
    wine-1.6.1 がwine-geck 1.4 を要求してくる場合があり、先にwine-gecko 1.4を
    インストールしておく必要あり。また、1.4 以上の1.9など違うwine-gecko がインストールされている場合は、rpm -e しておいてから、1.4 をインストールすること。
  4. wine-1.6 をインストール
    # yum --enablerepo=rpmforge install wine

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

22
June, 2014Edit

X-window(Cygwin/X)を活用

ircddbgateway + dummyrepeater を1PC上で走らせ、Win7のPC上でdummyrepeaterのボタンをX-windowのserver/client 機能を使って表示させ操作する。
X-window(server/client)機能は、UNIXの醍醐味としてはじめた頃から使ったことはあるが、今回sshでLoginする際に、あるパラメータを利用すると、簡単にX11環境を得ることができことを発見した。参考:sshによるX11転送 →link

  1. 構成

    host側 ircddbgatewayd + dummyrepeater on raspi (192.168.0.10)

    client側 Cygwin/x on Windows7 (192.168.0.11)

  2. 手順
    1. client側でxterminalを開き
      $ ssh -XC testuser@192.168.0.10
      $ xauth list
      raspi/unix:10 MIT-MAGIC-COOKIE-1 yyyyyyyyyyyyyyyyyyy
      $ echo $DISPLAY
      localhost:10.0
      などと(これは例として)表示されることを確認する。次にsuになって同様の確認をする。
      $ su -
      Password:
      # xauth list
      raspi/unix:10 MIT-MAGIC-COOKIE-1 yyyyyyyyyyyyyyyyyyy
      # echo $DISPLAY
      localhost:10.0
      この時、もし
      zauth: file /root/root/.Xauthority does not exist
      と表示した場合は、そのまま次のように追加する。
      # xauth add raspi/unix:10 MIT-MAGIC-COOKIE-1 yyyyyyyyyyyyyyyyyyy
      # export DISPLAY=localhost:10.0
    2. DummyRepeaterを起動
      client側Terminal内で、root からexitしてuserに戻し、
      $ sudo dummyrepeater &
      [1] 4842
      Windows7のデスクトップ画面にdummyrepeaterのGUI画面が現れる↓
      Dummy_Xhost.JPG
    3. ircddbgatewaydを起動
      host側のircddbgatewaydをclient側のTerminal上から
      $ sudo ircddbgatewayd &
      以上でhost側のスピーカーからnot linked が流れてくればOK
  3. 今後
    上記手順をスクリプト化していく予定。
    yyyyyyyyyyyyyyyyyyyの部分がログインするたびに異なる。これは/root/.Xauthorityの中で記述して固定できるものと思われる。
    予定変更
    # ssh -Y root@192.168.xxx.yyy
    # dummyrepeater
    これでOKであることがわかった。
    更にGood な News
  4. 構成変更

    host側 ircddbgatewayd on raspi (192.168.0.10)

    client側 DummyRpeater on Windows7 (192.168.0.11)

    raspiのPreference( /etc/ircddbgateway )の変更箇所


    hbAddress=0.0.0.0 ← 127.0.0.1 を

    repeaterBand1=A
    repeaterType1=0
    repeaterAddress1=192.168.0.11 ← 127.0.0.1 を
    repeaterPort1=20011

    Win7 上のDummyRepeater のPreference を次のように変更すれば、相互通信が可能となり、2台のPCで1つのircDDBシステムを構成できた。

    (Preference of dummyrepeater)
    Network tab Changes to;
    1.Gateway Address: 192.168.0.10 ← ircddbgateway's running
    2.Gateway Port: 20010
    3.Local Address: 0.0.0.0 ← this point (before 127.0.0.1)
    4.Local Port: 20011 (ex. Repeater1)



14
June, 2014Edit

しゃべらすシリーズ

  1. IPアドレスをしゃべる
     RPi(Raspberry Pi)において、DHCPでIP取得で起動した時、IPアドレスが変わった場合でも、自分からIPアドレスをしゃべるようにしてみた。
    ircDDB稼動時のメンテナンス等に役立つ。(家の中では固定IP設定なので、必要性は少なくなっているが)
    1. AquesTalkのInstall
       今回は、非営利目的であれば無償で使用できる AquesTalk →link を~/bin にコマンド(atk)としてInstallする。
      その手順は以下。このサイトからdownload したaquestalkpi-20130827.tar.gz を$HOME に置く。
      $ tar zxvf aquestalkpi-20130827.tar.gz ; 展開するだけ。実行ファイルはAquesTalkPi
    2. atk
       AquesTalkPiを、パラメータを変えて扱いように atk というコマンドとして、~/bin に置く。
      $ mkdir bin
      $ cd bin
      ここで、ログインし直すか、source ~/.profile を実行して新環境を読み込む。
      (通常 pi でログイン後、set | grep PATH  を実行して、/home/pi/bin がPATHにあることを確認しておくこと。もし無ければPATHに追加しておく)
      $ vi atk        ; vi 以外に使い慣れているEDITORを利用して(ex. nano 等)
      --- atk ---
      cd /home/pi/aquestalkpi
      echo "$1" | ./AquesTalkPi -g 50 $2 -f -  | aplay -D plughw:0,0 -q
      -----------
       $ chmod 755 /home/pi/bin/atk
       
    3. /etc/rc.local を加工
      $ sudo vi /etc/rc.local
      ---- /etc/rc.local ---
      # Comment Line
      # Print the IP address
      _IP=$(hostname -I) || true
      if [ "$_IP" ]; then
        printf "My IP address is %s\n" "$_IP"
        /home/pi/bin/atk "IPアドレスは,$_IPです"
      fi
      exit 0
      ----------------------
       これで、起動時に(今回はplughw:0,0のaudio、つまり本体のaudioを使う)本体のaudio出力から日本語でIPアドレスをしゃべって知らせて
      くれるようになる。
       
  2. ヘッダー情報をしゃべる
     ircddbgateway運用時に/var/log/Headers.log には流れてくる局(正確には、gatewayを通過する局)のヘッダー情報が吐き出されている。このデータから、MyCALLと、どこを経由して流れてきているかの Rpt1 , Rpt2 をしゃべらすことにする。しゃべらす方法は上記のAquesTalkPiは使用せず、Googleから綺麗な
    音声をひっぱりだして発生させることになるので、mplayer をInstallする必要がある。
    1. Text2Speech.sh のInstall
      $ sudo apt-get install mplayer
      以下Install状況は省略
      Text2Speech.sh関係サイト →link を参考にして、以下作成する。
      $ sudo vi /usr/local/bin/text2speech.sh
      ---- test2speech.sh ----
      #!/bin/bash
      say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols"http://translate.google.com/translate_tts?tl=en&q=$*"; }
      say $*
      ------------------------
      $ chmod 755 /usr/local/bin/text2speech.sh
      (注記1)USB audio を利用し、defaultで0.0 にした場合は、上の -ao alsa を外した方がベター
    2. esay2を作成
      更にこのtext2speech.sh を使い易いように/usr/local/bin/esay2 を作る。
      $ sudo /usr/local/bin/esay2
      --- esay2 ---
      D1=`echo $1 | cut -b1`
      D2=`echo $1 | cut -b2`
      D3=`echo $1 | cut -b3`
      D4=`echo $1 | cut -b4`
      D5=`echo $1 | cut -b5`
      D6=`echo $1 | cut -b6`
      D8=`echo $1 | cut -b8`
      DV="$D1 $D2 $D3 $D4 $D5 $D6/$D8"
      #echo "$DV"
      /usr/local/bin/text2speech.sh "$DV"
      -------------
      $ sudo chmod 755 /usr/local/bin/esay2
    3. メインスクリプトesay.sh の作成
      $ vi /home/pi/bin/esay.sh
      --- /home/pi/bin/esay.sh ---
      #!/bin/sh
      
      OMYCL="--"
      while :
      do
      FLAG=`tail -1 /var/log/Headers.log | grep -e "header"`
      if test "$FLAG" != "" ; then
        MYCL=`echo $FLAG | cut -d":" -f5 | cut -b2-9`
        NODE=`echo $FLAG | cut -d":" -f7 | cut -b2-9`
      #  echo "$MYCL @ $NODE"
        if test "$MYCL" != "$OMYCL" ; then
          /usr/local/bin/esay2 "$MYCL"
          /usr/local/bin/esay2 "$NODE"
          OMYCL="$MYCL"
        fi
        sleep 1
      fi
      sleep 1
      done
      -------------------
      $ chmod 755 /home/pi/bin/esay.sh
    4. /etc/rc.local に登録
      $ sudo vi /etc/rc.local
      --- /etc/rc.local ---
      # Comment Line
      # Print the IP address
      _IP=$(hostname -I) || true
      if [ "$_IP" ]; then
        printf "My IP address is %s\n" "$_IP"
        /home/pi/bin/atk "IPアドレスは,$_IPです"
      fi
      su pi -c "/home/pi/bin/esay.sh" &
      exit 0

2015 8/1 からgoogle tts が利用できなくなった





    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS