2016年4月3日日曜日
2016年1月21日木曜日
Chinachu + BonDriverProxy + TVTest によるリアルタイム視聴&recbondによる録画機能
この記事は過去に作成した「Chinachu + BonDriverProxy + TVTest によるリアルタイム視聴」の更新版の為、内容はほぼ同一です
- OSをdebianからCentOSへ変更
- 録画プログラムを同梱のsampleからrecbondを利用するよう変更
目的
- Linux(CentOS or Debian)でPT3運用を行いたい
- Chinachuを利用したルール予約&同時録画機能
- TVTestでリアルタイム視聴を可能とする
注意事項
- Linuxサーバの構築および運用が可能な方を前提にしております
- サーバ側ではB25/MULTI2 復号を省略しています
理由:ストリーミング再生する性能もないため、B25復号が不要(あとは実装できなかった)
* 追記:sample.cppにb25デコードパッチを適用するとB25復号が可能となりました - 当方の環境は名古屋/BS,CS無しのため、chinachuのチャンネル設定は都度変更してください
ただしCSの場合sampleがsid指定出来ないため、視聴可否は確認できておりません ChinachuではEPG取得時に設定された全てのチューナーが利用されます
よってTVTest視聴中に突然チャンネルが変更される場合があります
* 追記:Chinachu config.json "noEpg: true"指定にてEPGスキャン除外が出来るようになりました
2015年3月3日火曜日
2015年2月17日火曜日
2014年8月27日水曜日
Chinachu + BonDriverProxy + TVTest によるリアルタイム視聴&録画機能
目的
- Linux(CentOS or Debian)でPT3運用を行いたい
- Chinachuを利用したルール予約&同時録画機能
- TVTestでリアルタイム視聴を可能とする
注意事項
- Linuxサーバの構築および運用が可能な方を前提にしております
- サーバ側ではB25/MULTI2 復号を省略しています
理由:ストリーミング再生する性能もないため、B25復号が不要(あとは実装できなかった)
* 追記:sample.cppにb25デコードパッチを適用するとB25復号が可能となりました - 当方の環境は名古屋/BS,CS無しのため、chinachuのチャンネル設定は都度変更してください
ただしCSの場合sampleがsid指定出来ないため、視聴可否は確認できておりません ChinachuではEPG取得時に設定された全てのチューナーが利用されます
よってTVTest視聴中に突然チャンネルが変更される場合があります
* 追記:Chinachu config.json "noEpg: true"指定にてEPGスキャン除外が出来るようになりました
2014年7月14日月曜日
Fedora20 + recfriio メモ
久しぶりにFriioが使いたくなり、ハマったのでメモ
make: *** [IoThread.o] エラー 1
$ g++ -O2 -march=native -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DB25 -DUDP `pkg-config --cflags glib-2.0` -c -o IoThread.o IoThread.cpp
In file included from /usr/include/glib-2.0/glib/gtypes.h:37:0,
from /usr/include/glib-2.0/glib/galloca.h:34,
from /usr/include/glib-2.0/glib.h:32,
from IoThread.cpp:12:
RingBuf.hpp: コンストラクタ ‘RingBuf
RingBuf.hpp:108:51: エラー: expected unqualified-id before numeric constant
boost::xtime_get(&(node_top[i].timeout), boost::TIME_UTC);
といったエラーが出た
どうやら1.50より仕様がかわり、TIME_UTCを使う場合はTIME_UTC_に書き替えが必要とのこと
http://d.hatena.ne.jp/pyopyopyo/20120712/p1
cp -p RingBuf.hpp RingBuf.hpp.org
cat RingBuf.hpp.org | sed "s/boost::TIME_UTC/boost::TIME_UTC_/" > RingBuf.hpp
2014年4月16日水曜日
Aterm WH832A,WH862A/O IPv6
コミュファのHGW Aterm832AでDHCPv6-PD機能がサポートされていたので、
IX2105で利用できるかテスト
配下のサーバに対してはDHCPv6 Serverとして動作するように設定する
複数台つなぐ場合についても聞いてみたが、答えられないとのこと
繋げばプレフィックスはもらえると思うが、DHCPv6クライアントの要請順番で割り当てプレフィックスが変わりそう
(配下のサーバが固定IPv6設定しているので、うちだと使えない...)
複数プレフィックスが欲しい場合は「IPv6静的ルーティング」で対処する必要があるなーと思ってたら、
http://www.aterm.jp/function/wh862a/list/main/m01_m43.html
と、(使えない)機能として存在
現状複数DHCPv6クライアントを置く場合は気を付けるしかない(または/128を必要分書くのか?!)
またHGWからは割り当てられたプレフィックスは見れないので、
IX側でshow ipv6 interfaceにて確認するしかなさそう
・接続Interfaceは適宜修正すること
・dhcp-cl-profile_v6内のsubscriberは対象Interfaceに割り当てられるプレフィックスのホスト部を指定しているが、ここも適宜修正 ・IPv4も利用したい場合も修正(今回はあえて無効)
今のところこれで問題なく運用できている
Gi0.0をセグメントA(/64)とした場合、Gi1:1.0には異なるセグメントB(/64)が割り当てられる
せっかく/58をもらってても有効活用できてなかったので、これでまだ遊べる
wiki
IX2105で利用できるかテスト
接続構成
+-----+ LAN1
WAN | |------------------------------[PC]
------| HGW | LAN2 Gi0.0 Gi1:1.0
| |-------------[IX2105]---------[Server]
+-----+
IX2105はHGWに対してDHCPv6 Client,配下のサーバに対してはDHCPv6 Serverとして動作するように設定する
注意
DHCPv6-PD機能はHGWの機能であり、コミュファではサポートしていない(まぁ当たり前か...)複数台つなぐ場合についても聞いてみたが、答えられないとのこと
繋げばプレフィックスはもらえると思うが、DHCPv6クライアントの要請順番で割り当てプレフィックスが変わりそう
(配下のサーバが固定IPv6設定しているので、うちだと使えない...)
複数プレフィックスが欲しい場合は「IPv6静的ルーティング」で対処する必要があるなーと思ってたら、
http://www.aterm.jp/function/wh862a/list/main/m01_m43.html
※なお、本商品が管理してるprefix内のIPv6アドレスに関するルーティングエントリは、ホスト指定(/128)でのみ追加可能です。
と、(使えない)機能として存在
現状複数DHCPv6クライアントを置く場合は気を付けるしかない(または/128を必要分書くのか?!)
またHGWからは割り当てられたプレフィックスは見れないので、
IX側でshow ipv6 interfaceにて確認するしかなさそう
IX2105 DHCPv6設定
下記は実際にIX2105で利用しているDHCPv6設定の抜粋・接続Interfaceは適宜修正すること
・dhcp-cl-profile_v6内のsubscriberは対象Interfaceに割り当てられるプレフィックスのホスト部を指定しているが、ここも適宜修正 ・IPv4も利用したい場合も修正(今回はあえて無効)
! NEC Portable Internetwork Core Operating System Software ! IX Series IX2105 (magellan-sec) Software, Version 8.8.22, RELEASE SOFTWARE ! ipv6 dhcp enable ! proxy-dns ipv6 enable ! ipv6 dhcp client-profile dhcp-cl-profile_v6 option-request dns-servers ia-pd subscriber GigaEthernet1:1.0 ::0:0:dead:beef/64 ! ipv6 dhcp server-profile dhcp-sv-profile_v6 dns-server dhcp ! interface GigaEthernet0.0 no ip address ipv6 enable ipv6 dhcp client dhcp-cl-profile_v6 no shutdown ! interface GigaEthernet1:1.0 no ip address ipv6 enable ipv6 dhcp server dhcp-sv-profile_v6 ipv6 nd ra enable ipv6 nd ra min-interval 60 ipv6 nd ra max-interval 180 ipv6 nd ra other-config-flag no shutdown !
今のところこれで問題なく運用できている
Gi0.0をセグメントA(/64)とした場合、Gi1:1.0には異なるセグメントB(/64)が割り当てられる
せっかく/58をもらってても有効活用できてなかったので、これでまだ遊べる
おまけ
そもそもIX2105であればコミュファのIPv4/v6 DualStack接続&複数プレフィックス利用できるのは言うまでもなく...wiki
2013年12月17日火曜日
HP ProLiant
ここからHP ProLiantの各種ファイル落とせるのね。。。知らんかった
http://downloads.linux.hp.com/SDR/downloads/ProLiantSupportPack/
http://downloads.linux.hp.com/SDR/downloads/ProLiantSupportPack/
2013年10月30日水曜日
PHP5.6 php-fpm作成時のconfigureメモ
5.6に更新
中身は5.5と代わり有りません
中身は5.5と代わり有りません
OPcache導入と合わせて整理 ・disable-allを使いたかったが、pherやsimplexmlもNGとなるため断念 // yumは5.4流用(一部足りないものがあるはず) # yum install make gcc gcc-c++ pcre-devel openssl-devel subversion autoconf \ libevent-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel \ freetype-devel gmp-devel libmcrypt-devel aspell-devel libxslt-devel expat-devel libtool-ltdl-devel expat-devel libmcrypt-devel //RPMforgeの設定 // epelでも可 #yum install yum-conf-rpmforge.x86_64 #yum --enablerepo=rpmforge install libmcrypt-devel これ以外にphalcon,xhprofモジュール導入
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \ CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \ ./configure \ --host=x86_64-redhat-linux-gnu \ --build=x86_64-redhat-linux-gnu \ --target=x86_64-redhat-linux \ --program-prefix= \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --sysconfdir=/etc \ --datadir=/usr/share \ --includedir=/usr/include \ --libdir=/usr/lib64 \ --libexecdir=/usr/libexec \ --localstatedir=/var \ --sharedstatedir=/usr/com \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --cache-file=./config.cache \ --with-libdir=lib64 \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --disable-dba \ --disable-debug \ --disable-rpath \ --disable-short-tags \ --enable-bcmath \ --enable-calendar \ --enable-dom \ --enable-exif \ --enable-fpm \ --enable-ftp \ --enable-gd-native-ttf \ --enable-json \ --enable-libxml \ --enable-mbregex \ --enable-mbstring \ --enable-mysqlnd \ --enable-opcache \ --enable-pdo \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --enable-xml \ --enable-xmlreader \ --enable-xmlwriter \ --enable-zip \ --with-curl \ --with-freetype-dir=/usr \ --with-gd \ --with-gettext \ --with-gmp \ --with-iconv \ --with-jpeg-dir=/usr \ --with-kerberos \ --with-layout=GNU \ --with-libexpat-dir=/usr \ --with-libxml-dir=/usr \ --with-mcrypt \ --with-mhash \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-openssl \ --with-pcre-regex \ --with-pic \ --with-png-dir \ --with-png-dir=/usr \ --with-unixODBC=shared,/usr \ --with-xsl \ --with-zlib \ --without-gdbm \ --without-unixODBC \
//ユーザ/グループは適宜修正 --with-fpm-group=nginx \ --with-fpm-user=nginx
// openSUSEだとdevelがなくてNG --with-bz2 --with-pspell
-----------------------------------------
systemdで起動するためのスクリプト
# cat /usr/lib/systemd/system/php-fpm.service
[Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=forking PIDFile=/var/run/php-fpm.pid EnvironmentFile=/etc/sysconfig/php-fpm ExecStart=/usr/sbin/php-fpm -D ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
-----------------------------------------
これで行けるはず
/etc/sysconfig/php-fpmが無いとエラーなのでtouchしてファイルを作成するか、
EnvironmentFileを空にする
またPIDFileはphp-fpm.confと合わせておくか--pidオプションで指定する
2013年5月16日木曜日
OpenBlockS 266 BOOTP + tftp 復旧メモ
OpenBlockS 266 ファームウェア 復旧手順でBOOTP + tftpを利用する方法があるが、
これが上手くいかない場合があったのでメモ
ftp://ftp.plathome.co.jp/pub/OBS266/manual/UsersGuide_200.pdf
結論
Server -> OBSのARP解決ができない為
解決策
Server側でARPテーブルに手動で書き込む
000A8503B8xx
arp -i eth0 -s 192.168.0.180 00:0a:85:03:b8:xx
これで3時間くらい潰した・・・
OBS -> ServerはARP解決するのに分け分からん・・・
これが上手くいかない場合があったのでメモ
ftp://ftp.plathome.co.jp/pub/OBS266/manual/UsersGuide_200.pdf
結論
Server -> OBSのARP解決ができない為
解決策
Server側でARPテーブルに手動で書き込む
000A8503B8xx
arp -i eth0 -s 192.168.0.180 00:0a:85:03:b8:xx
これで3時間くらい潰した・・・
OBS -> ServerはARP解決するのに分け分からん・・・
2012年3月28日水曜日
ZFSメモ
pool作成
/dev/sd*でも作成できるのだが、再起動するとデバイス名が変更されるため接続箇所で設定
裏では/dev/sd*にリンクされているのでこれでも作成可能
udevでデバイス名を固定設定するより簡単
//storageはプール名
//raidz=raidz1≒RAID5相当(1本がパリティ)
# zpool create zfspool raidz -f \
/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-1:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-2:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-3:0:0:0
//raid1+0構成
---
プールのリスト
# zpool list
---
プールの状態
# zpool status
---
マウントポイントを設定
# zfs set mountpoint=/mnt/archive zfspool
//変更するとマウントが解除されるのでzfs mountが必要
---
zfsをマウント
# zfs mount [-a]
---
プール内のディスクを停止(offline)
# zpool offline storage /dev/~
---
プール内のディスクを起動(online)
# zpool online storage /dev/~
/dev/sd*でも作成できるのだが、再起動するとデバイス名が変更されるため接続箇所で設定
裏では/dev/sd*にリンクされているのでこれでも作成可能
udevでデバイス名を固定設定するより簡単
//storageはプール名
//raidz=raidz1≒RAID5相当(1本がパリティ)
# zpool create zfspool raidz -f \
/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-1:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-2:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-3:0:0:0
//raid1+0構成
# zpool create zfspool \
mirror /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-1:0:0:0 \
mirror /dev/disk/by-path/pci-0000:03:00.0-scsi-2:0:0:0 \
/dev/disk/by-path/pci-0000:03:00.0-scsi-3:0:0:0
---
プールのリスト
# zpool list
---
プールの状態
# zpool status
---
マウントポイントを設定
# zfs set mountpoint=/mnt/archive zfspool
//変更するとマウントが解除されるのでzfs mountが必要
---
zfsをマウント
# zfs mount [-a]
---
プール内のディスクを停止(offline)
# zpool offline storage /dev/~
---
プール内のディスクを起動(online)
# zpool online storage /dev/~
2012年2月12日日曜日
postfix メモ
久しぶりにpostfixでハマったのでメモ
> mechanismを設定していても
smtp_sasl_mechanism_filter = plain,login
> このようなエラーが出て送信できない
status=deferred (SASL authentication failed;
cannot authenticate to server smtp.hogehoge.com: no mechanism available)
>ふと思い出してsasl-plainが足りなかったのでインストール
yum install cyrus-sasl-plain.x86_64 cyrus-sasl-md5.x86_64
なおmechanismを調べるにはEHLOを送信すると応答が帰ってくる
$ telnet smtp.hogehoge.com 587
EHLO kickitout.net
250-smtp.hogehoge
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
> mechanismを設定していても
smtp_sasl_mechanism_filter = plain,login
> このようなエラーが出て送信できない
status=deferred (SASL authentication failed;
cannot authenticate to server smtp.hogehoge.com: no mechanism available)
>ふと思い出してsasl-plainが足りなかったのでインストール
yum install cyrus-sasl-plain.x86_64 cyrus-sasl-md5.x86_64
なおmechanismを調べるにはEHLOを送信すると応答が帰ってくる
$ telnet smtp.hogehoge.com 587
EHLO kickitout.net
250-smtp.hogehoge
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
2011年12月27日火曜日
mysql-cluster ndb_mgmd 2台構成
サーバ2台でndb_mgmd, ndbd, mysqlを動かした際のメモ
sv1 sv2
+----------+ +----------+
| ndb_mgmd | | ndb_mgmd |
| ndbd | | ndbd |
| mysql | | mysql |
+----------+ +----------+
*****************************************************
// sv1, sv2共通
# vi /var/lib/mysql-cluster/config.ini
-----------------------------------------------------
# Example Ndbcluster storage engine config file.
#
[ndbd default]
NoOfReplicas= 2
ServerPort = 63132
MaxNoOfConcurrentOperations= 10000
# DataMemory= 1G
# IndexMemory= 64M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id = 1
HostName = sv1.kickitout.net
[ndb_mgmd]
Id = 2
HostName = sv2.kickitout.net
[ndbd]
Id = 11
HostName = sv1.kickitout.net
[ndbd]
Id = 12
HostName = sv2.kickitout.net
[mysqld]
Id = 21
HostName = sv1.kickitout.net
[mysqld]
Id = 22
HostName = sv2.kickitout.net
# choose an unused port number
# in this configuration 63132, 63133, and 63134
# will be used
[tcp default]
PortNumber= 63132
-----------------------------------------------------
// sv1 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv1.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv1.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
// sv2 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv2.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv2.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
*****************************************************
あとはiptablesで該当ポート1186,63132を開けておく
(忘れていてこれにはまった)
起動はndb_mgmd(sv1,sv2) -> ndbd(sv1,sv2) -> mysql(sv1,sv2)で順に行う
sv1 sv2
+----------+ +----------+
| ndb_mgmd | | ndb_mgmd |
| ndbd | | ndbd |
| mysql | | mysql |
+----------+ +----------+
*****************************************************
// sv1, sv2共通
# vi /var/lib/mysql-cluster/config.ini
-----------------------------------------------------
# Example Ndbcluster storage engine config file.
#
[ndbd default]
NoOfReplicas= 2
ServerPort = 63132
MaxNoOfConcurrentOperations= 10000
# DataMemory= 1G
# IndexMemory= 64M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id = 1
HostName = sv1.kickitout.net
[ndb_mgmd]
Id = 2
HostName = sv2.kickitout.net
[ndbd]
Id = 11
HostName = sv1.kickitout.net
[ndbd]
Id = 12
HostName = sv2.kickitout.net
[mysqld]
Id = 21
HostName = sv1.kickitout.net
[mysqld]
Id = 22
HostName = sv2.kickitout.net
# choose an unused port number
# in this configuration 63132, 63133, and 63134
# will be used
[tcp default]
PortNumber= 63132
-----------------------------------------------------
// sv1 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv1.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv1.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
// sv2 抜粋
# vi /etc/my.cnf
-----------------------------------------------------
[mysql_cluster]
ndb-connectstring = sv2.kickitout.net
[mysqld]
ndbcluster
ndb-connectstring = sv2.kickitout.net
[ndb_mgmd]
config_file=/var/lib/mysql-cluster/config.ini
-----------------------------------------------------
*****************************************************
あとはiptablesで該当ポート1186,63132を開けておく
(忘れていてこれにはまった)
起動はndb_mgmd(sv1,sv2) -> ndbd(sv1,sv2) -> mysql(sv1,sv2)で順に行う
2011年12月14日水曜日
jsvcメモ
jsvcを必要とする機会があったのでその際のインストールメモ
//最初にopenjdkを準備
# yum install java-1.6.0-openjdk.x86_64 java-1.6.0-openjdk-devel.x86_64
$ wget http://ftp.riken.jp/net/apache//commons/daemon/source/commons-daemon-1.0.8-src.tar.gz
$ tar xzf commons-daemon-1.0.8-src.tar.gz
$ cd commons-daemon-1.0.8-src/src/native/unix/
//configure作成(既にあるけど)
$ ./support/buildconf.sh
//configure
$ CC=gcc44 CXX=g++44 \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--cache-file=./config.cache \
--with-libdir=lib64 \
--with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
$ make -j4
//同じ場所にjsvcが作成されるので利用する
//最初にopenjdkを準備
# yum install java-1.6.0-openjdk.x86_64 java-1.6.0-openjdk-devel.x86_64
$ wget http://ftp.riken.jp/net/apache//commons/daemon/source/commons-daemon-1.0.8-src.tar.gz
$ tar xzf commons-daemon-1.0.8-src.tar.gz
$ cd commons-daemon-1.0.8-src/src/native/unix/
//configure作成(既にあるけど)
$ ./support/buildconf.sh
//configure
$ CC=gcc44 CXX=g++44 \
CFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O3 -m64 -pipe -fomit-frame-pointer -mmmx -mfpmath=sse -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2" \
./configure \
--host=x86_64-redhat-linux-gnu \
--build=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--cache-file=./config.cache \
--with-libdir=lib64 \
--with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
$ make -j4
//同じ場所にjsvcが作成されるので利用する
2011年11月14日月曜日
D-ITG インストールメモ
訳あってD-ITGを入れる必要があったのでその際のメモ
$ wget http://www.grid.unina.it/software/ITG/codice/D-ITG-2.7.0-Beta2.tgz
$ tar xvf D-ITG-2.7.0-Beta2.tgz
$ CC="gcc" \
GCC="gcc" \
CXX="g++" \
CFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include \
make
//stropts.hが無いといわれたら…
# yum provides */stropts.h
# yum install compat-glibc-headers-2.5-46.2.x86_64
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include
を追加して再度makeする
$ wget http://www.grid.unina.it/software/ITG/codice/D-ITG-2.7.0-Beta2.tgz
$ tar xvf D-ITG-2.7.0-Beta2.tgz
$ CC="gcc" \
GCC="gcc" \
CXX="g++" \
CFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CXXFLAGS="-march=native -O2 -m64 -pipe -fomit-frame-pointer -mfpmath=sse -msse4 -msse4.1 -msse4.2" \
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include \
make
//stropts.hが無いといわれたら…
# yum provides */stropts.h
# yum install compat-glibc-headers-2.5-46.2.x86_64
CPPFLAGS=-I/usr/lib/x86_64-redhat-linux5E/include
を追加して再度makeする
2011年10月12日水曜日
AMFフォーマットからPHPで値を抜き出す方法
AMFファイルから必要な値だけ出す方法がなかなか見つからなかったので調べてみた
Zend FrameworkにはZend_Amfがあり、この中にAMFフォーマットを処理する部分があることを
睨んで調べてみたら簡単にできた
これでUstreamのamfが読めるようになった
$url = "http://cdngw.ustream.tv/Viewer/getStream/1/7811835.amf";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close($ch);
$request = new Zend_Amf_Request();
$request->initialize($result);
var_dump($request->getAmfBodies());
後はdump結果から欲しい値のキーを探して取得するだけ
Zend FrameworkにはZend_Amfがあり、この中にAMFフォーマットを処理する部分があることを
睨んで調べてみたら簡単にできた
これでUstreamのamfが読めるようになった
$url = "http://cdngw.ustream.tv/Viewer/getStream/1/7811835.amf";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close($ch);
$request = new Zend_Amf_Request();
$request->initialize($result);
var_dump($request->getAmfBodies());
後はdump結果から欲しい値のキーを探して取得するだけ
2011年9月27日火曜日
Ustream Liveの録画メモ
HINATABOCCOを録画した際に、(一部)うまく行ったのをメモ
・CDN(LimeLight)利用時なのでほかは不明
・rtmpdumpを利用
・解析はStreamTransportを利用
(StreamTransport自体はダウンロードできなかった)
・帯域が安定している自宅Linuxサーバより遠隔でダウンロード実施
rtmpdump -v -r "rtmp://ustreamvip.fc.llnwd.net:1935/ustreamvip/ustreamvip_llnw_live_1_76452776" \
-s "http://cdn1.ustream.tv/swf/4/viewer.381.swf" \
-p "http://www.ustream.tv/channel/hinatabocco1" \
-o HINATABOCCO5.flv
これで録画は可能
-rにはStreamのURL(StreamTransportで解析可能)
-sにはPlayerUrl(不要?)
-pには視聴していたchannelURL(不要?)
あとはnohupしておくべきだったと後悔
(この後PCが切断→SSHセッション断→dump失敗に)
----------------------------------------
[チラシの裏]
これうまく使って録画サーバできないかな…
・外出先等でUstLiveが見たくても見れない時に
後から録画
・でも著作権の保護観点から予約した人しか見れない
・同じ番組を予約した人がいたら、一番最初の人が予約した動画を共有
・できれば友人間だけは録画した動画を共有
(URLで共有するとか)
・一週間ほどで削除
・同じチャンネルでも時間によって放送してたり、StreamURLが変わったりする
どうやってそれを監視するか
結構Ustreamのみたい番組が多いのだが、
忘れてたりそもそも見れる環境じゃない(場所or勤務中)だとすごく困る
ソフトを使うにしても自宅のPCじゃないといけないので、
なんとか外出先からも録画できるといいなと思う
・CDN(LimeLight)利用時なのでほかは不明
・rtmpdumpを利用
・解析はStreamTransportを利用
(StreamTransport自体はダウンロードできなかった)
・帯域が安定している自宅Linuxサーバより遠隔でダウンロード実施
rtmpdump -v -r "rtmp://ustreamvip.fc.llnwd.net:1935/ustreamvip/ustreamvip_llnw_live_1_76452776" \
-s "http://cdn1.ustream.tv/swf/4/viewer.381.swf" \
-p "http://www.ustream.tv/channel/hinatabocco1" \
-o HINATABOCCO5.flv
これで録画は可能
-rにはStreamのURL(StreamTransportで解析可能)
-sにはPlayerUrl(不要?)
-pには視聴していたchannelURL(不要?)
あとはnohupしておくべきだったと後悔
(この後PCが切断→SSHセッション断→dump失敗に)
----------------------------------------
[チラシの裏]
これうまく使って録画サーバできないかな…
・外出先等でUstLiveが見たくても見れない時に
後から録画
・でも著作権の保護観点から予約した人しか見れない
・同じ番組を予約した人がいたら、一番最初の人が予約した動画を共有
・できれば友人間だけは録画した動画を共有
(URLで共有するとか)
・一週間ほどで削除
・同じチャンネルでも時間によって放送してたり、StreamURLが変わったりする
どうやってそれを監視するか
結構Ustreamのみたい番組が多いのだが、
忘れてたりそもそも見れる環境じゃない(場所or勤務中)だとすごく困る
ソフトを使うにしても自宅のPCじゃないといけないので、
なんとか外出先からも録画できるといいなと思う
2011年8月11日木曜日
z_X10_audio_stutter_fix
z_X10_audio_stutter_fix.zipを手に入れたのでその時のメモ
> adb shell
$ su -
//ここでandroidでroot権限を許可させる
# mount -o remount,rw /dev/block/mtdblock3 /system
# cd /system/lib/
# cp -p libaudio.so libaudio.so.org
# cp -p libaudioflinger.so libaudioflinger.so.org
# cp -p libaudiopolicy.so libaudiopolicy.so.org
# cp -p libmedia.so libmedia.so.org
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudio.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudioflinger.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudiopolicy.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libmedia.so /system/lib/
// mount -o remount,ro /dev/block/mtdblock3 /system
// roに戻せないので再起動
これで音質良くなるのだろうか…
> adb shell
$ su -
//ここでandroidでroot権限を許可させる
# mount -o remount,rw /dev/block/mtdblock3 /system
# cd /system/lib/
# cp -p libaudio.so libaudio.so.org
# cp -p libaudioflinger.so libaudioflinger.so.org
# cp -p libaudiopolicy.so libaudiopolicy.so.org
# cp -p libmedia.so libmedia.so.org
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudio.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudioflinger.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libaudiopolicy.so /system/lib/
# cp /mnt/sdcard/z_X10_audio_stutter_fix/system/lib/libmedia.so /system/lib/
// mount -o remount,ro /dev/block/mtdblock3 /system
// roに戻せないので再起動
これで音質良くなるのだろうか…
2011年5月29日日曜日
Muninでnginxを監視するためのメモ
プラグインがあるので導入
/usr/share/munin/plugins
wget http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download -O nginx_status
wget http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download -O nginx_request
wget http://exchange.munin-monitoring.org/plugins/nginx_vhost_traffic/version/2/download -O nginx_vhost_traffic
chmod 755 nginx_*
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/nginx_request .
ln -s /usr/share/munin/plugins/nginx_status .
ln -s /usr/share/munin/plugins/nginx_vhost_traffic .
service munin-node restart
/usr/share/munin/plugins
wget http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download -O nginx_status
wget http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download -O nginx_request
wget http://exchange.munin-monitoring.org/plugins/nginx_vhost_traffic/version/2/download -O nginx_vhost_traffic
chmod 755 nginx_*
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/nginx_request .
ln -s /usr/share/munin/plugins/nginx_status .
ln -s /usr/share/munin/plugins/nginx_vhost_traffic .
service munin-node restart
登録:
投稿
(
Atom
)