2014年 06月 の 日記
|
|
28 June, 2014
SCientific Linux 6.2にWine
wine-1.6.1 をインストールしたときのメモ
- rpmforge.repo 追加する
http://pkgs.repoforge.org/rpmforge-release/ から最新の
rpmforge-release-0.5.3-1.el6.rf.i686.rpmをwgetで落とし、rpm -Uvh する。
- /etc/yum.repos.d/rpmforge.repoを編集
通常は、enable = 0 にしておき、yum でインストールする際は、yum --enablerepo=rpmforge install wine とする。
- 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 をインストールすること。
- wine-1.6 をインストール
# yum --enablerepo=rpmforge install wine
22 June, 2014
X-window(Cygwin/X)を活用
ircddbgateway + dummyrepeater を1PC上で走らせ、Win7のPC上でdummyrepeaterのボタンをX-windowのserver/client 機能を使って表示させ操作する。
X-window(server/client)機能は、UNIXの醍醐味としてはじめた頃から使ったことはあるが、今回sshでLoginする際に、あるパラメータを利用すると、簡単にX11環境を得ることができことを発見した。参考:sshによるX11転送 →
- 構成
host側 ircddbgatewayd + dummyrepeater on raspi (192.168.0.10)
client側 Cygwin/x on Windows7 (192.168.0.11)
- 手順
- 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
- DummyRepeaterを起動
client側Terminal内で、root からexitしてuserに戻し、
$ sudo dummyrepeater &
[1] 4842
Windows7のデスクトップ画面にdummyrepeaterのGUI画面が現れる↓

- ircddbgatewaydを起動
host側のircddbgatewaydをclient側のTerminal上から
$ sudo ircddbgatewayd &
以上でhost側のスピーカーからnot linked が流れてくればOK
- 今後
上記手順をスクリプト化していく予定。
yyyyyyyyyyyyyyyyyyyの部分がログインするたびに異なる。これは/root/.Xauthorityの中で記述して固定できるものと思われる。
予定変更
# ssh -Y root@192.168.xxx.yyy
# dummyrepeater
これでOKであることがわかった。
更にGood な News
- 構成変更
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, 2014
しゃべらすシリーズ
- IPアドレスをしゃべる
RPi(Raspberry Pi)において、DHCPでIP取得で起動した時、IPアドレスが変わった場合でも、自分からIPアドレスをしゃべるようにしてみた。
ircDDB稼動時のメンテナンス等に役立つ。(家の中では固定IP設定なので、必要性は少なくなっているが)
- AquesTalkのInstall
今回は、非営利目的であれば無償で使用できる AquesTalk → を~/bin にコマンド(atk)としてInstallする。
その手順は以下。このサイトからdownload したaquestalkpi-20130827.tar.gz を$HOME に置く。
$ tar zxvf aquestalkpi-20130827.tar.gz ; 展開するだけ。実行ファイルはAquesTalkPi
- 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
- /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アドレスをしゃべって知らせて
くれるようになる。
- ヘッダー情報をしゃべる
ircddbgateway運用時に/var/log/Headers.log には流れてくる局(正確には、gatewayを通過する局)のヘッダー情報が吐き出されている。このデータから、MyCALLと、どこを経由して流れてきているかの Rpt1 , Rpt2 をしゃべらすことにする。しゃべらす方法は上記のAquesTalkPiは使用せず、Googleから綺麗な
音声をひっぱりだして発生させることになるので、mplayer をInstallする必要がある。
- Text2Speech.sh のInstall
$ sudo apt-get install mplayer
以下Install状況は省略
Text2Speech.sh関係サイト → を参考にして、以下作成する。
$ 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 を外した方がベター
- 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
- メインスクリプト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
- /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 が利用できなくなった
|
|