このブログを検索

2011-09-27

Google日本語入力/mozc

Google日本語入力/mozcの辞書登録カテゴリをメモします

名詞
短縮よみ
サジェストのみ
固有名詞
人名


組織
地名
名詞サ変
名詞形動

アルファベット
記号
顔文字
副詞
連体詞
接続詞
感動詞
接頭語
助数詞
接尾一般
接尾人名
接尾地名
動詞ワ行五段
動詞カ行五段
動詞サ行五段
動詞タ行五段
動詞ナ行五段
動詞マ行五段
動詞ラ行五段
動詞ガ行五段
動詞バ行五段
動詞ハ行四段
動詞一段
動詞カ変
動詞サ変
動詞ザ変
動詞ラ変
形容詞
終助詞
句読点
独立語
抑制単語
 サジェストのみ:サジェスト機能の候補にのみ表示
抑制単語:これがあると同じ読みの他の候補を出さない?

2011-09-25

敷金返還

川崎で何度か引っ越していますが
今のところ毎回「石川商事」っていう不動産会社を使っています。
この辺では大手っぽくて物件も多くてよいのですがいろいろお金かかりますね・・・。
どの物件も
・ハウスクリーニング
・エアコンクリーニング
・(あれば)畳表替え
・(あれば)ふすま替え
・(あれば)障子替え
の特約がもれなくついてきます。
逆に石川商事以外で引っ越したことないのでわかんないんですけど
ネットで見る限りはこれらの特約は、特にハウスクリーニング・エアコンクリーニングなんかは判例的に、借りる側は払わなくてよいお金みたいですね。(もちろん自分で掃除はしてます)

ネットでレビューとかクチコミとか見かけないんで
とりあえず(記憶に基づいた怪しい)実例をアップしときます。

ケース1:新築1K
契約は1年ほどです
敷金は家賃2ヶ月分の16万円前後
ハウスクリーニング:3万
エアコンクリーニング:1万前後
16万-4万=12万の返還
きれいに使っていたので
もちろん特約以外の金額はかかっていません。
まぁ妥協の範囲でした。

ケース2:20年近くの2DK
契約は1.5年ほどです
敷金は家賃2ヶ月分の16万円前後
ハウスクリーニング:4万
エアコンクリーニング:1万前後
畳全部表替え:5000x6=3万
ふすま全部替え:3000x3=9000円
トイレのクロス損傷(突っ張り棒による):5000円(内訳不明だが、直径3cmほどの破れx2)
16万-9万5千円=6万5千円の返還
自分の部屋はきれいに使っていましたが
小さな傷とかは生活傷くらいにありました。
それでもまぁ明らかな損傷であるクロスの張り替え以外は特約通りです。
クロスの内訳はわかりませんが、損傷は最小単位(1m2)x2で、
最小単位の相場が多くても1500円くらいらしいので、やや割高ですね。
古い物件で畳ふすまが邪魔でした。これは痛い。。。
なんで新築のときよりも大幅に敷金ひかれるのか・・・

次も石川商事じゃなかったら妥協の範囲を超えています。
ハウスクリーニングや畳なんかも、ネットで見る相場よりやや高い感じなのかなぁ~
基本的に契約書に書いてある内容なので今のところ文句は言っていません。
まわりの人に話すと、「訴えるといえば払わなくていいよ」と言われますが、契約書にサインしたのは確かなので、あとでよほどの搾取がわかった、とかがない限り言いませんね。
じゃあ契約するなよって話もありますが、どの物件も一律特約なので、少なくとも石川商事の物件では選択の余地なしです。選択の余地があればそういう物件を 選ぶ自由も考えられますが・・・。近所だと空室のある物件たぶんすべてに「石川商事」の看板あがってるしなぁ・・・。契約の自由ないですよね。。。

というわけで、予想外のお金を取られたり、
言いがかりをつけられたりはしない分、ましですが、
畳ふすま障子のある物件を借りるときはあまりオススメできません。
他の川崎の不動産屋しだいですけどね。
共同で一律にハウスクリーニングとるとかで協定結んでるかもですw

ちなみ今また川崎で3件目の物件にすんでいまして
ここはケース2よりもさらに古く、1981年よりだいぶまえの建物で
かなりの確率で免震ではないところです。
古いので畳ふすまがあり、さらに障子まであり、ケース2よりも敷金ひかれそうです・・・。
こわいこわい。

ちなみに他にもおかしいところはあります
・入居前に鍵交換がデフォルト
結局交換するので文句つけたことはありませんが
あまりよろしくない制度ですね。
あと、こちらの負担で鍵交換したのに退去時に鍵を返せといわれます、謎w
まあ不要なので返しますが・・・。

・入居前に抗菌除菌がデフォルト
これは不要なので3回ちゅう2回は断りましたが、
実施は特に説明なく行われるため、正式契約日にはいつのまにか済んでいます。
物件を決めた日に、見積下書きを見せてもらった後、それが送付される前に言わないといけません。
忙しくて見積もり確認するのが遅れ、そのせいで1回は実施されてしまいました。。。
確か1万円位?

・ミスが多い
1.契約した住所に誤りがあり、すでに市役所とか公共料金系に引越し手続きしたあとに言われ、めちゃくちゃ時間を無駄にしました。
2.見積もりや契約書に誤記が多く、よく待たされます。
3.(これは不動産屋は関係ないと思いますが)部屋の図面(設備)と実際が異なり、つまり契約書に不備が現れます。異なることは下見の段階でわかるんですが、それが契約時の担当に伝わっていないと不備があって待たされることになります。

他に川崎でよい不動産屋があれば紹介してほしいです。
次、いつになるかわかりませんが、引っ越すことがあれば検討したいですね。

2011-09-23

Basket Note Pads のビルド

Basket Note Padsとは?
様々な用途に使えるメモツールらしい。
Tomboyなんかと並んでよく紹介されている。
使ってみようとおもってインストール。

古い通常版は普通にインストールできるが
最新版はビルドする必要があったり、
開発版は多少手を加える必要がある。

その方法をメモ

まず
cmake/libqt4-dev/kdelibs5-dev/libqimageblitz-dev/kdepimlibs5-dev
をインストールする。

cmakeのファイル?を多少変更する必要がある。
$ sudo gedit /usr/lib/gpgmepp/GpgmeppConfig.cmake

3行目
include( "/usr/lib/Gpgmepp/GpgmeppLibraryDepends.cmake" )

include( "/usr/lib/gpgmepp/GpgmeppLibraryDepends.cmake" )
に変更



最新版ビルド

http://basket.kde.org/
のDownloadから"Official sources of BasKet Note Pads"を選択してソースをダウンロード。

ソースを今回はホーム/workに置いて解凍。
それから
$ cd
$ cd work
$ cd basket-バージョン
$ sudo ./installer
でビルド&インストール完了。
$ basket
で起動できる。


開発版をビルド

gitでミラーしてmakeスクリプトを走らせる
$ cd
$ cd work
$ git clone git://github.com/kelvie/basket.git
$ cd basket
$ sudo ./installer
でビルド&インストール完了。
$ basket
で起動できる。

どちらもアンインストール方法は不明。。。

2011-09-16

アンテナケーブル加工

UbuntuでPT2(1/5)にて紹介したS-5C-FBアンテナケーブルとF型コネクタですが、
実際買ってみると素人には加工がなかなか難しかったのでコツをメモしておきます。
相当数失敗しました・・・。なれると確かに簡単なのですが。


作業の詳細な説明は、ネット上に動画や解説がたくさん転がっているので割愛。
ここでは、アサヒデンキで購入した
ケーブル"S5CFB(C)BK"とF型コネクタ"FP5E"
に特化したことをメモします。

1本作るのに30分以内といったところでしょうか?


2重シールド5C同軸ケーブル S5CFB(C)BK
2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

まず準備物
  • ケーブル
  • F型コネクタx2 (両端子につける必要があるため)
  • カッターナイフ
  • できればラジオペンチ、なければハサミ
  • 作業台としてのダンボール紙など
  • タオル (端子をはめ込む際の滑り止め)

FP5Eは特殊な加工道具は不要なので、一般家庭にありそうなものだけで足ります。
一番重要なのは慣れ(力加減)でした。

まずはさらっと説明書を読みましょう。
楽天の商品ページにFP5Eの取付説明書というリンクがあるのでそれを確認します。

ではケーブルの構造をおさらい。
S5CFBケーブルは4層の膜と銅線で成り立っています。

1層 表面の黒い膜、柔らかい
2層 銀色の金属の線で編まれた膜、結構硬い
3層 アルミ箔の膜、紙の薄さ
4層 白色の絶縁体、柔らかい
そして銅線、それなりに硬いが曲がりやすいので注意

先端近くは銅線を残して除去、端子の胴部分はアルミ箔までを残して除去します。


では順を追ってポイント解説
1. 端から7mmのところと、そこから6mmのところにカッターナイフで切れ目を入れる
説明書通りのサイズです。7mmに関しては最後にカットで調整できるため、長い分には困らないと思います。

2. 7mmのところの黒い膜をカッターナイフで除去する
台にケーブルをおきカッターナイフを当てる、その状態で力を入れてケーブルを回転させるといい感じに黒い膜に切れ目を入れることができます。
この際、力を入れすぎると銀色の膜どころか銅線まで傷つけてしまいますが、銀色の膜は結構硬いのでそうそうそこまでいきません。
最後は回したりしながら引き抜くと良いです。多少切れ目が足りなくても綺麗に引きちぎれます。

3. 白い絶縁体を切らないように、銀色の膜をカッターナイフで除去する
黒い膜と同様の切り方で基本的にはOKです。但しそれなりに力を入れないと切れません。
切れるときはプツンプツンと感触があるので、切れた瞬間に力を弱めないと絶縁体まで逝ってしまいます。(絶縁体はいいけどその奥の銅線が傷ついてしまう)
多少銀色の線が残った状態で辞めるのが吉です。
それ以上やると銅線が傷つくおそれがあり、この先はラジオペンチで除去します。


4. 残った銀色の線をラジオペンチで除去する
一本残さずラジオペンチで根元から切り取ります。
銀色の線を摘む際、アルミ箔をうっかり剥がしたりしないように注意します。

5. 白い絶縁体をカッターナイフで除去する
やはり黒い膜と同じような方法で切れ目を入れます。
絶縁体はかなりヤワいので、ケーブルを手で持ちながらカッターナイフを動かして切ってもいいと思います。
銅線を切らないように注意。
黒い膜と同じように、多少切り残しがあっても回しながら引けば綺麗に引きちぎれます。

6. 7mmのあとの6mmのところの黒い膜をカッターナイフで除去する
7mm箇所の除去と同じです。
但し、銀色の線を傷つけてはいけないので力を加減します。


7. 銀色の線を折り返す
詳しくは各種サイトの絵や動画を参照です。
調べてみたのですが、なぜ折り返す必要があるかはどこでも触れられていませんでした。
ただ、すべてのサイトで折り返すように言われているので、折り返すのが無難でしょう。
この時、綺麗に折り返すのではなく、折り返した先の黒い膜との角度が45度くらい開いた状態で止めておくと成功率が高かったです。

8. FP5Eを先端にとりあえず装着する
内部の枠を通す時にアルミ箔を折らないように、ちょっとずつ慎重に穴を通します。
通す前にアルミ箔が剥がれかけていた場合は指でペタペタ貼りつけておきます。
通すとき、上から見ながらゆっくり通せばまず折れません。
とにかく確実に通すことが重要です。
軽く引っかかって、手を離しても落ちないくらいまで挿したら一旦力を緩めます。

9. FP5Eを注意深く、深く装着する
こっから成否が分かれます。正念場です。
軽く刺した状態の端子を、ゆっくり力強くハメていきます。
ケーブルの絶縁体が、端子の表側の中の縁まで刺されば成功です。
失敗した場合は、軽く刺した状態のところからそれ以上刺さりません。
これでも一応テレビはみられるようですが、個人的には失敗扱いとしました。
また、力をいれる際に銅線を曲げないように注意です。
どうしても入らないとき、タオルを使って力いっぱいさしてみるのもいいかもしれません。


10. FP5Eの外側を上にずらした状態で、銅線が1mm出た状態までラジオペンチで切断する
この時、銅線の切り口が斜めになるのがよいそうです。
あまり短いと失敗したときにどうにもならないきがするので、
短いよりかは長いほうが調整がきいて良いと思います。

以上です。
1mで200円くらいなのはお得でした。
ついでに、端子をL型に曲げる端子もいくつか持っておくと便利でした。
S5CFBのケーブルは太くて取り回しがしづらいですからね。





次に失敗したときに端子を外す方法について。
レビューを見ている限りは一度つけたら外せなかったようなコメントがありましたが、
頑張れば外せたのでその記録もメモしておきます。
まぁかなり力と根気。

準備物
  • 失敗ケーブルF型端子付き
  • 精密ドライバ (マイナスが良さそう)、まぁ細ければ良いです
  • ラジオペンチ
  • カッターナイフ
  • タオル (端子をはめ込む際の滑り止め) 
 1 ラジオペンチで端子から出ているケーブルの長さを2~3cmくらいまで切る
長いと次の工程で力が必要です。逆に短すぎるとその先の工程で力と時間が必要です。

2. 端子の先から精密ドライバを銅線沿いに刺し、銅線+絶縁体+アルミ箔だけをケーブルから抜く
ドライバを先から刺すと、いい感じに絶縁体が抜けます。端子には銀色の膜から上が残った状態になります。
うまく抜けないときはケーブルの切った側を短くしたり引っ張ったりして、なんとか抜きます。
(5本くらいやりましたが、つまり10回くらいは困難はあってもすべて成功しています)

3. ケーブルの切った側の黒い膜をカッターナイフで縦に長く割く
端子のギリギリから一直線に割きます


4. 割いた切れ目から精密ドライバを銀色の網目に刺し、銀色の網目を引っ張り出す
こっからは殆ど力作業です。網目の間にドライバを引っ掛けて、力で端子とケーブルを離します。
方向を調整したり、ドライバを引っ掛ける位置などを変えていくと、いい感じに網目が抜けます。たいていは黒い幕の筒が残りますので、最後にその筒を端子からスポッと抜きます。


以上が、失敗したケーブルから端子を除去し、再度使えるようにするための手順です。


この方法で作ったケーブルですが、全く問題ありませんでした。
信号強度も、数千円で買ったケーブルと遜色ありません。
ただ一本だけ、角度によっては信号が途絶えてしまうモノができてしまいました。失敗原因は不明です。

注意:本来ケーブルを自作する場合は、テスター(数万円?)でケーブルがショートしていないかなど調べる必要があるそうです。火事を気にする方は大人しく加工済みのケーブルを購入したほうが良いかもしれません。





2重シールド5C同軸ケーブル S5CFB(C)BK
2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

2011-09-10

UbuntuでPT2(携帯用)

PT2のIF、epgrecを外部公開する際、普通にやるとiモード携帯からはうまく録画できないようです。
スタイルシートが使えない・・・?他のキャリアのは不明。

で、iモード携帯からも使えるようにした入り口を作った方がいました
http://sarami.pv.s-labo.com/blog/zatta.php?itemid=104&catid=24

ここにある「iモード用のepgrec」をインストールするシミュレーションをしてみます。

Downloadからモジュールをダウンロードする
iepgrec_20101001.tar.gz

$ tar -xvzpf epgrec-20100322.tar.gz
中にあるファイルを.../epgrec/直下に置く。
./epgrec/に3ファイル、./epgrec/templates/に2ファイル入ります。

そのままだとphpにエラーが出ている?ようなので少し修正します。
$ sudo vi /var/www/epgrec/iprogramTable.php
下の方の153行目くらい?にある
$ch_options .= "where skiop!='1' ORDER BY id"
という行の上に1行挿入して
$ch_options = ""
$ch_options .= "where skiop!='1' ORDER BY id"
このようにします。
どうやら初期化されてないのに.を使っているのがだめなよう・・・?
もしかしたら対処しなくても動くかもしれないけど念のため。


あとは携帯からiprogramTable.phpに接続すればOK。
これで外部公開していれば、外出先から携帯を使って録画もできますね。
ただ、前回紹介した外部公開用セキュリティを施していると、
携帯からだと毎回パスワードをきかれてやっかいかもです。
定型文にパスワード入れるなりして対応するしかないかなぁ。






2重シールド5C同軸ケーブル S5CFB(C)BK

2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

UbuntuでPT2(5/5)

おまけ
間違えている可能性が高いので参考程度に・・・

キーワードのバックアップ・リストア
$ sudo mysqldump -u root -p epg Recorder_keywordTbl > Recorder_keywordTbl_`date +%Y%m%d-%H%M%S`.sql
$ sudo mysql -u root -p epg < ダンプファイル名
 
局の追加
$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/cron stop
$ sudo vi /var/www/epgrec/config.php
ここでちゃんねるを開放する
逆にちゃんねるをコメントアウトするのはまずいかも?
$ /var/www/epgrec/getepg.php
$ sudo /etc/init.d/apache2 start
$ sudo /etc/init.d/cron start



epgrec番組表が壊れたとき
$ mysql -u root -p
mysql>use epg;
mysql>delete from Recorder_channelTbl;
mysql>delete from Recorder_programTbl;
mysql>delete from Recorder_reserveTbl;
mysql>exit;
↓を実行
http://ホスト名/epgrec/install/step1.php

epgrecのDBが壊れたとき
$ mysql -u -root -p
mysql>drop database epg;
mysql>create database epg;
mysql>grant all privileges on *.* to [username]@localhost identified by '[Password]';
mysql>exit;
↓を実行
http://ホスト名/epgrec/install/step1.php

epgrec再インストール
$ cd
$ sudo rm -r /var/www/epgrec/settings
$ mkdir /var/www/epgrec/settings
$ chmod 777 /var/www/epgrec/settings
↓を実行
http://ホスト名/epgrec/

epgrec完全再インストール
$ cd
$ sudo rm -r /var/www/epgrec/
$ sudo tar -xvzpf epgrec-20100322.tar.gz -C /var/www/
→インストール手順へ戻る

(以下、2012/1/21追記)
Ubuntuを10.10以上に上げると、使われるドライバが変わってしまう
(→動かない?)
"/etc/modprobe.d/blacklist.conf"に
blacklist earth-pt1
を追記すればDVB版ドライバはロードされなくなり、問題なくなる。(?)
その後再起動が必要だが、うまくいかない場合は電源OFF→ONすると良いらしい。
参考:http://team2ch.org/blog/?p=1103


Ubuntuを11.10に上げるとスマートカード周りのバグで動作しない
よくわからないがこの辺参照
※うちはまだ10.04
参考:http://team2ch.org/blog/?p=1103


予約済み番組の予約モード変更
$ mysql -u root -p
> use epg;
> select id,keyword,autorec_mode from Recorder_keywordTbl;
ここで該当するキーワードのidを調べて
> update Recorder_keywordTbl set autorec_mode=1 where id='調べたID';
> update Recorder_reserveTbl set mode=1 where title like "%キーワード%";


録画予約一覧に古い予約が残った場合の削除
まず録画予約一覧で古い予約のidを調べる。
$ mysql -u root -p
> use epg;
> update Recorder_reserveTbl set complete=1 where id='調べたID';





2重シールド5C同軸ケーブル S5CFB(C)BK
2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)


2011-09-09

UbuntuでPT2(4/5)

UbuntuでPT2たぶんラスト
最後に、保存領域を外付けUSBに変更します。
epgrecの保存領域はapacheで公開している範囲に限られるそうなので、
シンボリックリンクで対応したいと思います。

まずデバイスの認識から

$ sudo parted -l
モデル: ST310005 20AS (scsi)
ディスク /dev/sdc: 1000GB
というのが外付けHDDです

$ sudo parted /dev/sdc
(parted) mklabel gpt
(parted) print
→サイズを知る、1000GBだった
(parted) unit GB
(parted) mkpart video ext4 0 1000GB
(parted) unit MiB
(parted) mkpart video xfs 1 -1
(parted) quit
第一引数(video)はラベルなので何でもいい
3つ目の1は、MiBなら1から始めたほうが良いらしい?
最後の-1は終端の意味


$ sudo apt-get install xfsprogs
$ sudo mkfs.xfs /dev/sdc -f
$ sudo mkfs.xfs -f -b size=4k -i size=512 -l size=128m,version=2 /dev/sdc1


meta-data=/dev/sdc isize=512 agcount=4, agsize=7630917 blks
= sectsz=512 attr=2
data = bsize=65536 blocks=30523665, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=65536 ascii-ci=0
log =internal log bsize=65536 blocks=2048, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=65536 blocks=0, rtextents=0

デバイスにはパーティションを指定するので注意-> sdc1
-b sizeはブロックサイズでデフォルト4kだけどわかりやすいように明示的にした
本当は64kくらいは指定できたはずだけど、4kを超えるとなぜかマウントできなかった
-iと-lの指定は速くなるらしいので一応つけてみた(ファイルコピー試してみても差はわからなかった)


マウントポイント作成
$ sudo mkdir /home/media/pt2
$ sudo chown www-data:www-data /home/media/pt2
$ sudo chmod 777 /home/media/pt2
試しにマウント
$ sudo mount -t xfs /dev/sdc1 /home/media/pt2
再起動時にマウントするようにする
$ sudo vi /etc/fstab
/dev/sdc1        /home/media/pt2 xfs defaults 0 0

シンボリックリンク作成
$ sudo ln -s /home/media/pt2 /var/www/epgrec/video
$ sudo mkdir /home/media/pt2/thumbs
$ sudo chmod 777 /home/media/pt2/thumbs
$ sudo chown www-data:www-data /home/media/pt2/thumbs
$ sudo ln -s /home/media/pt2/thumbs /var/www/epgrec/thumbs


※今回はまっさらの状態でやったけど
もし録画データがあったらだめかも。
その場合はデータベースを再作成して再セットアップか?



次にクオータを設定します。
epgrecはディスク残量を管理しないので自分でやる必要があります。
今回はソフトリミットを超えたらメール通知されるようにしてみます。

メールアドレスの設定
$ sudo vi /etc/aliases
$ sudo postalias /etc/aliases
www-data: メールアドレス
を記述する

quotaをONにする
$ sudo vi /etc/fstab
/dev/sdcの
defaults

defaults,usrquota
に変更する
※pt2の録画先

$ sudo umount /dev/sdc1
$ sudo mount /dev/sdc1
$ cat /proc/mounts | grep pt2
/dev/sdc1にusrquotaがついていればOK
※remountではダメだった
※xfsファイルシステムの場合はquotacheck不要らしい

$ quotaon -v /home/media/pt2
quotaon: Enable XFS group quota accounting during mount
quotaon: Enforcing user quota already on /dev/sdc1
こんな感じで出ればOK

xfs用quotaコマンド"xfs_quota"を管理モード(-x)で起動
$ sudo xfs_quota -x

とりあえずレポートを見てみる
xfs_quota>report -u -h /dev/sdc1

quota対象のファイルシステム一覧を表示 xfs_quota>path

対象となるファイルシステムをカレントにセット xfs_quota>path 000
www-dataユーザにソフトリミット750GB, ハードリミット800GBを設定
xfs_quota> limit bsoft=750g bhard=800g www-data
解除する場合は0に指定すればよいようだ。ちゃんとコマンドありそうだが未確認。
抜ける
xfs_quota> q


リミットが来ているユーザにメールを送信する仕組み
"warnquota"の準備をする。

デバイス情報を記述する
$ sudo vi /etc/quotatab
/dev/sdc: Your home directory
/dev/sdc1: Your home directory


以上で設定完了。
対象のファイルシステムにソフトリミットを超えたユーザファイルをおいてみる。

そして下記コマンドでメール送信。
$ sudo warnquota -s
※ちなみにメールは/etc/aliasesで設定する

メールが通知されたら、あとはwarnquotaをcronで実行するようにする。
$ sudo vi /etc/cron.daily/do-warnquota.cron
#!/bin/sh
warnquota -s


以上でquotaつき録画領域の完成です!


参考:
http://hinode.nao.ac.jp/~tonooka/SBSC/open/parted_howto.html http://ameblo.jp/kupok/entry-10792760992.html http://xoops.fens.net/modules/wiki/?Linux%2FMemo%2Fxfs%2F%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95 http://www.ftnk.jp/~fumi/cl/2005-11-18-8.html http://blog.stud.vg/2008/12/xfs-2tb.html http://sea-mew.jp/nox/modules/xpwiki/587.html

(追記2012/8/2) mkpartの引数間違い修正
(追記2012/8/2) mkfs.xfsコマンドの引数を変更
(追記2012/8/2) xfs_quota limitでコメントと引数が不一致だったのを修正
(追記2012/8/2)
デバイス名を/dev/sdc1ではなく/dev/sdcと記載していたのを全体的に修正
今までそれで問題なかったけど恐らく良くない状態だった
今回HDDを入れ替えるにあたりミスに気づいた



2重シールド5C同軸ケーブル S5CFB(C)BK
2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

apache2のデータディレクトリ変更

apache2のルートディレクトリを変更
通常/var/wwwがルートディレクトリですが
今回は/home/wwwに変更してみます。

defaultファイルを変更する
$ sudo /etc/init.d/apache2 stop
$ sudo cp -p /etc/apache2/sites-available/default /etc/apache2/sites-available/default.org
$ sudo vi /etc/apache2/sites-available/default
DocumentRoot /var/www

DocumentRoot /home/www
に変更

$ sudo cp -r -p /var/www /home/www
$ sudo /etc/init.d/apache2 start

参考
http://www.linux.net-japan.info/install08.html

mysqlのデータディレクトリ変更

mysqlのデータディレクトリは通常/var/lib/mysql
です。しかしこれだと、うちの環境のような、
homeディレクトリにだけ大容量ディスクをマウントしている環境だと困ります。
そこでこのデータディレクトリを/home以下に移してみます。

通常、confファイルのデータディレクトリを変更等すればよいだけなのですが、
うちの環境だとエラーがでて進みませんでした。
調べたところ、datadirを変更するとSELinuxという機能のために動かなくなるようです。
http://oksoft.blogspot.com/2009/12/issues-with-selinux-firewall.html

今回はそれをシンボリックリンクで解決します。

mysqlデータディレクトリを移動
$ sudo service mysql stop
$ sudo mv /var/lib/mysql /home/mysql

シンボリックリンク作成
$ sudo ln -s /home/mysql /var/lib/mysql

アクセス制御?を変更
$ sudo vi /etc/apparmor.d/usr.sbin.mysqld
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

/home/mysql/ r,
/home/mysql/** rwk,
に変更。

mysql再起動
$ sudo /etc/init.d/mysql start



参考:
http://tobysoft.net/wiki/index.php?Ubuntu%2Fmysql
http://gentoo.reichsarchiv.jp/item/28

mysql再インストール

mysqlが起動しなくなってしまいました。
ある日、PCを再起動するとmysqlに繋がらなくなって、
サービスを起動することもできない。
mysqld_safeも無理。

↓こんな感じになります。
$ sudo service mysql start
start: Job failed to start


で、再インストールを試みたのですが、通常、
$ sudo apt-get remove php5-mysql mysql-server*
でアンインストールすれば問題なく次にインストールできるらしいんですけど、
それじゃ何度やっても解消されない。

この辺の問題?
https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.1/+bug/573318


超いろいろ思考錯誤した結果解決しましたので
記録を残しておきます。

結論としては、mysql-commonを再インストール。が必要でした。


影響が大きいのでまずはシミュレーション
$ sudo apt-get -s remove --purge php5-mysql mysql-server* mysql-common
削除候補にmediatombが含まれてしまうTT


設定ファイルを退避させます
$ sudo cp -r -p /etc/mysql /etc/mysql.bak
$ sudo cp -r -p /etc/mediatomb /etc/mediatomb.bak

アンインストール
$ sudo apt-get remove --purge php5-mysql mysql-server* mysql-common
未使用パッケージがあったので一応削除
$ sudo apt-get autoremove --purge
フォルダが残っているので削除
$ sudo rm -r /etc/mysql
$ sudo rm -r /var/lib/mysql

インストール
$ sudo apt-get install php5-mysql mysql-server
起動確認
$ ps ax | grep mysql
5456 ? Ssl 0:00 /usr/sbin/mysqld
mysqldが起動していたら成功

設定ファイル戻す
$ sudo cp -p /etc/mysql.bak/my.cnf /etc/mysql/.
$ sudo service mysql restart

ここまでくるのに10時間はかかったような・・・
なんにせよ解決してよかったよかった。

あとは削除されてしまったmediatomb再インストール
$ sudo apt-get install mediatomb
起動確認
$ sudo ps ax | grep meditabom
5983 ? Ssl 0:00 /usr/bin/mediatomb -c /etc/mediatomb/config.xml -d -u mediatomb -g mediatomb -P /var/run/mediatomb.pid -l /var/log/mediatomb.log
mediatombが起動していたら成功

設定ファイル戻す
$ sudo cp -p /etc/mediatomb.bak/config.xml /etc/mediatomb/.
$ sudo /etc/init.d/mediatomb restart


めでたしめでたしでした。

2011-09-07

UbuntuでPT2(3/5)

さて前回でひと通りのセットアップが終わりましたが
epgrecはhttpサーバーなので外部公開も一応可能だそうです。
ローカル用に作られているのでセキュリティについては?ですが、
やるなら次の3つのことくらいをやっておくとよさそうです。
やらないとapacheが乗っ取られたりするそうです。

参考:
http://dambo.no-ip.org/pwiki/index
http://zeonic.ath.cx/jitaku/


一、認証をかける
パスワードファイルを暗号形式で作成する
$ sudo htpasswd -c /etc/apache2/.htpasswd ユーザー名

パスワードを設定する(公開フォルダでなければどこでもいい)
$ sudo vi /etc/apache2/apache2.conf

confファイルに次の記述を追記する

AuthType Basic
AuthName "Enter Password"
AuthUserFile /etc/apache2/.htpasswd
Require user ユーザー名


apache再起動
$ sudo /etc/init.d/apache2 restart

http://ホスト名/epgrecにアクセスしてパスワードを求められたら成功




二、クローラーを弾く
「.htaccessでクローラーIPを弾く」といった意味合いで各種紹介されている設定をapache2.confファイルに記述する。
例:

order allow,deny
allow from all
deny from env=○○○


○○○にはapache2.conf内で定義した定数が入り、定数にはフィルタリングルールが入る。



三、firewallの設定
Linuxのfirewallであるiptablesにてフィルタリングを行う

参考:
http://centossrv.com/iptables.shtmlhttp://www.najankai.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%81%AE%E6%A7%8B%E7%AF%89%28ubuntu%29
http://semiblackharp.blogspot.com/2010/01/iptables.html
http://d.hatena.ne.jp/Ubuntu/20080128/1201462048

まず現在の設定を確認してみる
$ sudo iptables -L -n

Ubuntuはデフォルトで、インストールされているソフトで必要なポートが自動的に開くようになっているらしい?

今回は手動でルールを決めて、なおかつ危険国からのアクセスを禁止するようにする。

まず参考サイトを見ながらまず設定用のスクリプトを用意する。
$ sudo vi /home/root/iptables_register/iptables.sh
$ sudo chmod 700 /home/root/iptables_register/iptables.sh
※参考サイトそのままだとUbuntu(?)の環境と合わないので
 いろいろ微修正が必要

いろんなサイトを統合してUbuntu用にデバッグしたところ↓な感じで落ち着いた
※全くわかってない上に適当なので間違えていたら教えて下さい
#!/bin/sh

# インタフェース名定義
#LAN=eth0

# 内部ネットワークのネットマスク取得
#LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`

# 内部ネットワークアドレス取得
#LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '`
#LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK
LOCALNET=192.168.1.0/255.255.255.0

# ファイアウォール停止(すべてのルールをクリア)
#/etc/rc.d/init.d/iptables stop
iptables -F

# デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定
iptables -P INPUT DROP # 受信はすべて破棄
iptables -P OUTPUT ACCEPT # 送信はすべて許可
iptables -P FORWARD DROP # 通過はすべて破棄

# 自ホストからのアクセスをすべて許可
iptables -A INPUT -i lo -j ACCEPT

# 内部からのアクセスをすべて許可
iptables -A INPUT -s $LOCALNET -j ACCEPT

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SYN Cookiesを有効にする
# ※TCP SYN Flood攻撃対策
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない
# ※Smurf攻撃対策
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ICMP Redirectパケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done

# Source Routedパケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done

# フラグメント化されたパケットはログを記録して破棄
iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A INPUT -f -j DROP

# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄
# ※不要ログ記録防止
iptables -A INPUT ! -s $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A INPUT ! -s $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A OUTPUT ! -d $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A OUTPUT ! -d $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP

# 1秒間に4回を超えるpingはログを記録して破棄
# ※Ping of Death攻撃対策
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH

# 全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄
# ※不要ログ記録防止
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 224.0.0.1 -j DROP

# 113番ポート(IDENT)へのアクセスには拒否応答
# ※メールサーバ等のレスポンス低下防止
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

# ACCEPT_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
ACCEPT_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
iptables -A ACCEPT_COUNTRY -s $addr -j ACCEPT
done
}

# DROP_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
iptables -A DROP_COUNTRY -s $addr -j DROP
done
}


# IPアドレスリスト取得
. /home/root/iptables_register/iptables_functions
IPLISTGET

# 日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成
iptables -N ACCEPT_COUNTRY
ACCEPT_COUNTRY_MAKE JP
# 以降,日本からのみアクセスを許可したい場合はACCEPTのかわりにACCEPT_COUNTRYを指定する

# 中国・韓国・台湾※からのアクセスをログを記録して破棄
# ※全国警察施設への攻撃元上位3カ国(日本・アメリカを除く)
# http://www.cyberpolice.go.jp/detect/observation.htmlより
iptables -N DROP_COUNTRY
#中国
DROP_COUNTRY_MAKE CN
#韓国
DROP_COUNTRY_MAKE KR
#台湾
DROP_COUNTRY_MAKE TW
#追加:北朝鮮
DROP_COUNTRY_MAKE KP
iptables -A INPUT -j DROP_COUNTRY

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#

# 外部からのTCP22番ポート(SSH)へのアクセスを日本からのみ許可
# ※SSHサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY

# 外部からのTCP/UDP53番ポート(DNS)へのアクセスを許可
# ※外部向けDNSサーバーを運用する場合のみ
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 外部からのTCP443番ポート(HTTPS)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 外部からのTCP21番ポート(FTP)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT_COUNTRY

# 外部からのPASV用ポート(FTP-DATA)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
# ※PASV用ポート60000:60030は当サイトの設定例
#iptables -A INPUT -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY

# 外部からのTCP25番ポート(SMTP)へのアクセスを許可
# ※SMTPサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

# 外部からのTCP465番ポート(SMTPS)へのアクセスを日本からのみ許可
# ※SMTPSサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 465 -j ACCEPT_COUNTRY

# 外部からのTCP110番ポート(POP3)へのアクセスを日本からのみ許可
# ※POP3サーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT_COUNTRY

# 外部からのTCP995番ポート(POP3S)へのアクセスを日本からのみ許可
# ※POP3Sサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 995 -j ACCEPT_COUNTRY

# 外部からのTCP143番ポート(IMAP)へのアクセスを日本からのみ許可
# ※IMAPサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 143 -j ACCEPT_COUNTRY

# 外部からのTCP993番ポート(IMAPS)へのアクセスを日本からのみ許可
# ※IMAPSサーバーを公開する場合のみ
#iptables -A INPUT -p tcp --dport 993 -j ACCEPT_COUNTRY

# 外部からのUDP1194番ポート(OpenVPN)へのアクセスを日本からのみ許可
# ※OpenVPNサーバーを公開する場合のみ
#iptables -A INPUT -p udp --dport 1194 -j ACCEPT_COUNTRY

# VPNインタフェース用ファイアウォール設定
# ※OpenVPNサーバーを公開する場合のみ
#[ -f /etc/openvpn/openvpn-startup ] && /etc/openvpn/openvpn-startup

#追加
# 外部からのTCP123番ポート(NTP)へのアクセスを許可
# ※NTPサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 123 -j ACCEPT_COUNTRY


#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで) #
#----------------------------------------------------------#

# 拒否IPアドレスからのアクセスはログを記録せずに破棄
# ※拒否IPアドレスは/root/deny_ipに1行ごとに記述しておくこと
# (/root/deny_ipがなければなにもしない)
if [ -s /root/deny_ip ]; then
for ip in `cat /root/deny_ip`
do
iptables -I INPUT -s $ip -j DROP
done
fi

# 上記のルールにマッチしなかったアクセスはログを記録して破棄
iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES INPUT] : '
iptables -A INPUT -j DROP
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES FORWARD] : '
iptables -A FORWARD -j DROP

# サーバー再起動時にも上記設定が有効となるようにルールを保存
#/etc/rc.d/init.d/iptables save
iptables-save > /etc/network/iptables

# ファイアウォール起動
#/etc/rc.d/init.d/iptables start


次に内部で使用する関数を作る
$ sudo vi /home/root/iptables_register/iptables_functions
$ sudo chmod 700 /home/root/iptables_register/iptables_functions
mailの設定をしておかないと固まるので注意

# IPアドレスリスト取得関数定義
IPLISTGET(){
# http://nami.jp/ipv4bycc/から最新版IPアドレスリストを取得する
wget http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip cidr.txt.gz
# 最新版IPアドレスリストが取得できなかった場合
if [ ! -f cidr.txt ]; then
if [ -f /tmp/cidr.txt ]; then
# バックアップがある場合はその旨をroot宛にメール通知して処理を打ち切る
echo cidr.txt was read from the backup! | mail -s $0 root
return
else
# バックアップがない場合はその旨をroot宛にメール通知して処理を打ち切る
echo cidr.txt not found!|mail -s $0 root
exit 1
fi
fi
# 最新版IPアドレスリストを /tmpへバックアップする
/bin/mv cidr.txt /tmp/cidr.txt
}
※mail行のrootは予め/etc/aliasesで定義しておかないといけないと思う
 よくわからなければコメントアウトでいいかも


さらに、cron用のスクリプトを作る
$ sudo vi /home/root/iptables_register/iplist_check.sh
$ chmod 700 /home/root/iptables_register/iplist_check.sh
$ sudo cp -p /home/root/iptables_register/iplist_check.sh /etc/cron.daily/iplist_check.sh
パスをあわせないといけない

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# 新旧IPLIST差分チェック件数(0を指定するとチェックしない)
# ※新旧IPLIST差分がSABUN_CHKで指定した件数を越える場合はiptables設定スクリプトを実行しない
# ※新旧IPLIST差分チェック理由はhttp://centossrv.com/bbshtml/webpatio/1592.shtmlを参照
SABUN_CHK=100
[ $# -ne 0 ] && SABUN_CHK=${1}

# チェック国コード
COUNTRY_CODE='JP CN KR TW KP'

# iptables設定スクリプトパス
IPTABLES=/home/root/iptables_register/iptables.sh

# iptables設定スクリプト外部関数取り込み
. /home/root/iptables_register/iptables_functions

# IPアドレスリスト最新化
rm -f IPLIST.new
IPLISTGET
for country in $COUNTRY_CODE
do
if [ -f /tmp/cidr.txt ]; then
grep ^$country /tmp/cidr.txt >> IPLIST.new
else
grep ^$country /tmp/IPLIST >> IPLIST.new
fi
done
[ ! -f /tmp/IPLIST ] && cp IPLIST.new /tmp/IPLIST

# IPアドレスリスト更新チェック
diff -q /tmp/IPLIST IPLIST.new > /dev/null 2>&1
if [ $? -ne 0 ]; then
if [ ${SABUN_CHK} -ne 0 ]; then
if [ $(diff /tmp/IPLIST IPLIST.new | egrep -c '<|>') -gt ${SABUN_CHK} ]; then
(
diff /tmp/IPLIST IPLIST.new
echo
echo "$IPTABLES not executed."
) | mail -s 'IPLIST UPDATE' root
rm -f IPLIST.new
exit
fi
fi
/bin/mv IPLIST.new /tmp/IPLIST
sh $IPTABLES > /dev/null
else
rm -f IPLIST.new
fi


これでOK

まずは手動で実行する
$ sudo sh iptables.sh
※数分かかる

再度
$ sudo iptables -L -n
で状況を確認し、IPがたくさん登録されていたりしたらOK



このままでは再起動後に消えてしまうので
起動のたびに適用されるように?する
参考:
http://shiro9211.jugem.jp/?eid=449

sudoだとうまくいかなかったのでrootになる
$ sudo su

iptablesの設定をエクスポート
$ iptables-save > /etc/network/iptables

iptablesを起動毎に設定するスクリプトを作成
$ vi /etc/network/if-pre-up.d/iptables
--
#!/bin/sh
iptables-restore < /etc/network/iptables







--

$ chmod 700 iptables




以上の3つで、外部公開しても多少マシ?


おまけ
設定クリア(全ポート閉じる?)
$sudo iptables -F


(20110910追記)
チェック国コード(COUNTRY_CODE)に韓国(KP)が抜けていたので修正
(20110910追記)
iptables_functionsのgunzipには-fつけた方がいいか・・?







2重シールド5C同軸ケーブル S5CFB(C)BK

2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

2011-09-03

UbuntuでIP固定

ubuntuでIP固定する場合、次のファイルを操作する必要があるようです。

/etc/network/interfaces
/etc/resolv.conf
/etc/hosts

これらの編集を簡易化するresolvconfというソフトもありますが
動作が不安定らしいので手動で変更します

$ sudo vi /etc/network/interfaces
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.123
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

eth0のdhcpをやめてstaticに変更
その下に設定を記述する

$ sudo vi /etc/resolv.conf
nameserver 192.168.1.1
search ubuntud.com

※これでいいのか?よくわからん

$ sudo vi /etc/hosts
2行目が127.0.1.1・・・となっていた場合は、固定したいIPに変更する。
192.168.1.123 ・・・・・


サービス再起動
$sudo /etc/init.d/networking restart




設定がうまくいかない場合、マシン再起動後、LANのみつながってインターネットに繋がらないという症状が発生した。
その時はネットでよく紹介されているresolvconfをインストール&networkという記述をしていた。
それらを解除したところ症状が改善された。
(20110913追記)
ルーターの設定が悪かったようだ。RV-S340HIという機種で、「Webサーバを外部に公開する」という機能があるんだけど、そこで指定したIPからはルーターにアクセスできなくなるらしい。→LANしかつながらない。
networkという記述は書いておくほうがよさそう。

(20110913追記)
interfacesファイルの説明
auto : マシン起動時に立ち上げるアダプタ、通常必須
address : 固定IP
netmask : 固定IPのクラスっていうんだっけ?同じネットワーク内で割り当てる領域を指定
       うちは192.168.1.2~192.168.1.254が自由なIPだからこの設定。
       24bitとも表すようだ
network : サブネット?netmaskと似たような感じで、自由な箇所を0にすればよい?
broadcast : これもnetmaskと似たような感じで、自由な箇所を255にすればよい?
         綴り間違えていたので本文修正しました。
gateway : ルーターのIPを指定すればOK

(20110913追記)
resolv.confファイルの指定を結構間違えていたので修正しました。
nameserver : うちはルーターのIPを指定。ルーターがプロバイダから自動でDNS情報を
          取得していて、端末はルーターからDNS情報を得ればよいらしい。
          ちなみに複数指定する場合は、nameserver行をその分追加するそうです。
search : 必要なければ指定しない方がよいらしい?LAN内でメールが送れなくなる・・・?

(20120725追記)
どうやらhostsファイルも編集したほうが良いみたいです。
必須ではないようですし紹介しているサイトも少ないですけど。
ちなみに127.0.1.1というのはOS側の仕様で、DHCPにした場合に設定される値のようです。


UbuntuでPT2(2/5)

そしてシミュレーションのインストール編。

まずハードウェアのインストール。
PCIスロットにPT2を挿入、USB端子にICカードリーダーを挿入。
カードリーダーにはB-CASカードを挿入します。
どうやらICカードは端子のある方が表で、カードリーダーに指すとき、見た感じ「逆だろう!」という方向が正しいことがあるそうなので気を付ける必要がありそうです。


インストーラを最新にする
$ sudo apt-get update


ICカードリーダーツールをインストールする
$ sudo apt-get install libccid pcsc-tools libpcsclite-dev

実行
$ pcsc_scan
(20120806)もし動かない場合はsudo apt-get install pcscdを試す
文字がいろいろ表示されて
Japanese Chijou Digital B-CAS Card (pay TV)
といった文字が表示されれば成功。


チューナードライバ
チューナーのLinux用ドライバがいくつかあるらしく、DVB版、chardev版と呼ばれるものを見つけました。
DVB版はGUIベース、chardev版はCUIベース、そしてPT2での一般的なのはchardev版(?)、というわけで、今回はchardev版をインストールするつもりで検討してみます。


まず、/usr/local/binが存在するか確認する。
ない場合はインストールに支障をきたすため作成しておく。
$ sudo mkdir /usr/local/bin
$ sudo chmod +x /usr/local/bin



PT2ドライバのインストール
(recpt1のインストール) ※詳細不明
$ cd
$ sudo apt-get install build-essential
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
$ unzip c44e16dbb0e2.zip
$ cd pt1-c44e16dbb0e2/arib25
$ make
$ sudo make install
$ cd ./../recpt1
$ sudo make install

(ドライバのインストール)
$ cd
$ sudo apt-get install mercurial autoconf automake
$ hg clone http://hg.honeyplanet.jp/pt1 PT2
$ cd PT2/driver
$ make
$ sudo make install

再起動 ※電源OFFしてからONした方がいいらしい?
$ shutdown -h now



PT2が認識されているか確認
$ lspci | grep Xilinx

↓みたいな文字が出ればOK
05:00.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)



chardev認識(?)
$ ls -lart /dev/ |grep pt1
crw-rw-rw- 1 root video 250, 3 2011-08-31 21:16 pt1video3
crw-rw-rw- 1 root video 250, 2 2011-08-31 21:16 pt1video2
crw-rw-rw- 1 root video 250, 1 2011-08-31 21:16 pt1video1
crw-rw-rw- 1 root video 250, 0 2011-08-31 21:16 pt1video0
4ポートあるので4つ出るのが正しいらしい


とりあえず録画テスト
$ recpt1 --b25 --strip 22 30 test.ts
※TBSを30秒録画

以上でチューナーのインストール完了。


続いて録画システムであるepgrecのインストール。
Linuxでchardev版だとepgrecくらいしか選択肢ないらしい。

$ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli mysql-server php5-mysql

まずはepgdumprというソフトをインストール
(20120808追記)パッチを当てる方法を掲載しました→epgdumprにパッチをあてる
$ cd
$ wget "http://www.mda.or.jp/epgrec/index.php?plugin=attach&refer=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%89%8D%E3%81%AE%E6%BA%96%E5%82%99&openfile=epgdumpr2-utf8.tar.gz" -O epgdumpr2-utf8.tar.gz
$ tar -zxvf epgdumpr2-utf8.tar.gz
$ cd epgdumpr2
$ make
$ sudo cp epgdump /usr/local/bin


確認
先ほどrecpt1で録画したtest.tsのあるフォルダで次のコマンドを実行する
先ほどのtest.tsのあるフォルダで
$ epgdump test test.ts - | less
番組名っぽいのがズラズラでてきたらOK


atのインストール
$ sudo apt-get install at

次の説明に従って設定する必要があるようです。
/etc/at.denyの設定
 epgrecはWebサーバーのユーザーアカウント(Debian/Ubuntuはwww-data、RedHat?系ではapache)でatコマン ドを実行しますが、セキュリティ上の配慮からatの使用禁止ユーザーリスト/etc/at.denyに、Webサーバーのアカウントが設定されている場合 があります。
 管理権限(root)で/etc/at.denyを開き、www-dataやapacheといった、Webサーバーのアカウントが含まれていないか調べ、含まれていたら、その行を必ず削除してください。


/etc/passwdの確認
 一部のディストリビューションでは、セキュリティ上の配慮からWebサーバーのアカウントにnologin(ログイン不可)が設定されています。 nologinのアカウントではatコマンドも利用できず、epgrecによる録画予約が機能しません。 rootアカウントで/etc/passwdを 開き、Webサーバーのアカウント(apacheなど)のエントリを調べ、シェルの設定が/sbin/nologinに設定されているようなら、/bin /shに変更しておきましょう。

apache:x:48:48:Apache:/var/www:/sbin/nologin
↓下記のように変更
apache:x:48:48:Apache:/var/www:/bin/sh

 以上の設定をしっかりと行っておかないと、録画予約に失敗します。



うちの場合/etc/at.denyにwww.dataが含まれていますね。
/etc/passwdには今回見るべきアカウントが含まれていません。



続いてmysqlのセットアップです。
まず日本語の設定から。

$ sudo vi /etc/mysql/my.cnf

[client]セクションに↓追記
default-character-set = utf8

[mysqld]セクションに↓追記
default-character-set = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
init-connect = SET NAMES utf8
(20120806追記)最新mysqlではdefault-character-setをcharacter-set-serverとする
(20120806追記)collation-serverはデフォルト値を指定していたみたいなので削除
(20120806追記)skip-character-set-client-handshake,init-connectは使わない方がいいらしい、問題があれば試してみる程度で

[mysql]セクションに↓追記
default-character-set = utf8

[mysqldump]セクションに↓追記,なければセクション追加
default-character-set = utf8


次にrootのパスワードを忘れてしまっていた場合の対処から。

mysqlサービス停止
$ sudo service mysql stop

認証をスキップするオプションを指定してmysqlを起動
$ sudo /usr/bin/mysqld_safe --user=root --skip-grant-tables &
※このあと画面に変化ないからエンターおしたらプロンプトが出る?

ログインしてmysqlデータベースに接続
$ mysql -u root mysql

パスワードを初期化
mysql> UPDATE user SET Password=PASSWORD('新しいパスワード') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

mysqld_safeは普通には終了できないので特別なコマンドで終了
$ mysqladmin shutdown

$ sudo service mysql start
$ mysql -u root -p
Enter password: ←新しいパスワード入れる

epq用のデータベースを作成し、権限を設定する
mysql>create database epgrec;
mysql>grant all privileges on epgrec.* to 'epgrec'@localhost identified by 'パスワード';
mysql>quit



epgrecインストール
テスト版がでているが安定板(20100322)を使うことにする

$ cd
$ wget 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fepgrec%2F46492%2Fepgrec-20100322.tar.gz' -O epgrec-20100322.tar.gz
$ sudo tar -xvzpf epgrec-20100322.tar.gz -C /var/www/

スクリプトの設置
$ cd /var/www/epgrec
$ cp -p config.php.sample config.php
$ cp -p do-record.sh.pt1 do-record.sh


config.phpを公式サイトに従って変更する

config.phpの設定

/var/www/epgrec/config.php.sampleをconfig.phpにリネームします。

$ sudo mv /var/www/epgrec/config.php.sample /var/www/epgrec/config.php

その上でエディタで開きます。たとえば、

$ sudo gedit /var/www/epgrec/config.php

ファイル内の設定を、環境に合わせて書き換えます。書き換えが必要&必要になるかもしれない項目を説明していきます。以下で挙げられた設定以外は変える必要はありません。
地上デジタルチャンネルマップ$GR_CHANNEL_MAPの設定 [はてなブックマークで表示] [コメントビューワーで表示]

 $GR_CHANNEL_MAPには、地上デジタル放送のチャンネルがPHPの配列として格納します。地上デジタル放送のチャンネルはお住まいの地域によって異なりますから、地域に合わせて設定を変えなければなりません。
 config.phpには首都圏東部(千葉方面)用のチャンネルマップが初期設定されています。首都圏地方局のうち、TVK、テレビ埼玉、MXTVはコメントアウト(行頭の//)されており、千葉テレビはコメントアウトされていません。首都圏にお住まいの方は、地方局のコメントの位置を自分が受信できる局に変更するだけで利用できます。
 一方、首都圏以外の地域では地域に合わせて丸ごとの変更が必要です。$GR_CHANNEL_MAPは次のように記述します。

$GR_CHANNEL_MAP = array(
"識別文字列" => "チャンネル番号",
"識別文字列" => "チャンネル番号",
.....局数分入れる
);

 識別文字列は局を識別するためのユニークな(唯一無二の)文字列にします。例のように"GRチャンネル番号"としておくのが無難でしょう。受信可能なチャンネル番号は、ネットで調べることが出来ます。たとえば、マスプロ電工の相談窓口などを参考にすると良いでしょう。例として、大阪地区の$GR_CHANNEL_MAPの設定例を掲載しておきます。

$GR_CHANNEL_MAP = array(
"GR24" => "24", // NHK
"GR13" => "13", // 教育
"GR16" => "16", // 毎日
"GR15" => "15", // 朝日
"GR17" => "17", // 関西
"GR14" => "14", // 読売
"GR18" => "18", // テレビ大阪
);


とりあえず今回は、MXとTVKを有効にして、千葉テレビを無効にすればよさそう。


ここで録画テスト
$ cd
$ OUTPUT=test.ts CHANNEL=22 DURATION=30 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh
TBSが30秒録画されたら成功



epgrecの確認
http://ホスト名/epgrec/
に繋ぐ

”以上を確認し次の設定に進む”を選択

MySQL接続ユーザー名を"epgrec"に
MySQL接続パスワードを設定したパスワードに
使用データベース名を"epgrec"に
インストールURLを"http://ホスト名/epgrec"に
録画保存ディレクトリを"/○○○"に(sambaフォルダ)
サムネールの使用を"使用する"に
だいたいこんな感じで次へ

mediatomb連係機能を"使う"に
だいたいこんな感じで次へ

最後にリンクをクリックすれば初回受信に入るらしいけど
先にmediatombの連携設定

$ sudo vi /etc/mediatomb/config.xml

sqliteをoffにしてmysqlをonにする
前提としては、テーブル名がepg、ユーザー名もepg。
=>"no"
=>"yes"
localhost
epgユーザー
epgテーブルのユーザーパスワード
epgユーザーパスワード

mediatomb再起動
$ sudo /etc/init.d/mediatomb restart


mediatombの監視フォルダ設定で録画フォルダを選択する。
本当はinotifyを選択したほうがいいらしいけど
うちのmediatombは対応していないぽい。
JavaScriptをサポートさせた状態でビルドしないといけないっぽい?

ここまでセットアップしてから、epgrecの初回受信リンクをクリックする。
20~50分待ってから、案内されているリンクをクリックして番組表が表示されたら成功。

番組表を最新に保つためのスクリプトをcronに登録する
Ubuntuであれば変更なしでそのままでも動作するらしい。
$ sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/.

最初は手動で実行できるか確認しておく
$ /var/www/epgrec/getepg.php
1分くらいまってコマンドが終わればOK
電波の弱いチャンネルがあれば結構時間かかる

※レスポンスがなくても途中でキャンセルしないこと
  動いているのにブレークすると番組表が壊れる可能性あり
※Constant E_ERROR ~という警告が出るが無視していいらしい
 間違えて予約済の定数名で定数をつくろうとしているらしい
 3/27パッチとやらで治るらしいがどこにあるかわからんかった



次に、番組録画の確認。
現時刻でやっている番組を試しに簡易予約し、/var/www/epgrec/videoにファイルが作成されるか確認する。


以上でインストール完了。

最後にパッチを当てておく
現時点で公式パッチは2つ出ている。
$ cd
$ wget "http://sourceforge.jp/frs/redir.php?m=globalbase&f=%2Fepgrec%2F46704%2Fepgrec-20100322fix1.tar.gz" -O epgrec-20100322fix1.tar.gz
$ tar -xvzpf epgrec-20100322fix1.tar.gz
$ cp epgrec-20100322fix1.diff /var/www/epgrec/.
$ cd /var/www/epgrec/
$ cat ./epgrec-20100322fix1.diff | patch -p1
$ rm epgrec-20100322fix1.diff

$ cd
$ wget "http://sourceforge.jp/frs/redir.php?m=keihanna&f=%2Fepgrec%2F46851%2Fepgrec-20100322fix2.tar.gz" -O epgrec-20100322fix2.tar.gz
$ tar -xvzpf epgrec-20100322fix2.tar.gz
$ cp epgrec-20100322fix2.diff /var/www/epgrec/.
$ cd /var/www/epgrec/
$ cat ./epgrec-20100322fix2.diff | patch -p1
$ rm epgrec-20100322fix2.diff


更に野良パッチをあてる

重複を考慮した録画予約アルゴリズムの改善
$ cd
$ wget "http://www.sky.sannet.ne.jp/kn_ishi/epgrec/files/Reservation.class_20110220kn.tar.gz" -O Reservation.class_20110220kn.tar.gz
$ tar -xvzpf Reservation.class_20110220kn.tar.gz
$ cp Reservation.class_20110220kn.diff /var/www/epgrec/.
$ cd /var/www/epgrec/
$ cat ./Reservation.class_20110220kn.diff | patch -p1
$ rm Reservation.class_20110220kn.diff


もう一つ野良パッチ
重複予約時にエラーを出力する

epgrecの記事の2010/06/03追記を参照
最初の野良パッチと競合するので、Keyword.class.phpのパッチだけ切り取って使う。
epgrec-20100322fix20100603_Keyword.class.php.diffという名前で保存
$ cd
$ cp epgrec-20100322fix20100603_Keyword.class.php.diff /var/www/epgrec/.
$ cd /var/www/epgrec/
$ cat ./epgrec-20100322fix20100603_Keyword.class.php.diff | patch
$ rm epgrec-20100322fix20100603_Keyword.class.php.diff


さらにそのログを閲覧するビューワーを
epgrecの記事の2010/09/10追記のソースをもとに作成し
/var/www/epgrec/dupReservLogViewer.phpとして設置する。
%重複予約%の部分を、最初の野良パッチにあわせて%予約が重複しています%に変更しておく。

権限を変更する
$ chown ユーザー dupReservLogViewer.php
$ chgrp グループ dupReservLogViewer.php
$ chmod 755 dupReservLogViewer.php
※ユーザー・グループは他のファイルと同じにしておく


これで完全にインストール完了。
本当にインストールできたらとても楽しそうですね。



参考
http://team2ch.org/blog/?p=1103
http://zeonic.ath.cx/pt2/
http://avalokitesxvara.blog99.fc2.com/blog-entry-177.html
http://www.sky.sannet.ne.jp/kn_ishi/epgrec/epgrec_Reservation.class.html




続く




【アースソフト】地デジチューナー PT3 Rev.A

【アースソフト】地デジチューナー PT3 Rev.A
価格:13,860円(税込、送料別)

UbuntuでPT2(1/5)

PT2というチューナー製品があり、
それがUbuntuに入るそうなので、
インストールしてみるシミュレーションをしました。

まず機器構成。準備編です。


本体はうちにあるUbuntuマシン
⇒Intel Essential mini-ITX BOXD510MO
PCIスロットがひとつあるからそれを使えばいける

そして今回のメインのチューナー
PT2 \21,000(amazon)
今はもう生産中止?

カードリーダー(B-CASカードを読みこませるための)
Linuxで使えるものは限られているらしく
良さそうなのがこれ
SCR3310-NTTCom \2,232(amazon)

B-CASカード
用意するとしたら自宅にあるチューナーのカードを流用でしょうか
もしやると規約違反になりそうです

アンテナケーブル
S-4C-FB~S-5C-FBという種類のケーブルが必要らしい。
アサヒデンキ 楽天市場店という通販サイトで、\100/m+端子が1端\100くらいで売ってて安い!
ケーブル:2重シールド5C同軸ケーブル S5CFB(C)BK
端子:★メール便OK★5C用 取付かんたんF型コネクター FP5E

分配器
全端子電流通過型分配器
というタイプを買うのが普通らしい。そうでない場合は環境によっては制限があるとのこと。
自宅のチューナーと電波を分けることになるだろう、なので必要

ブースター
DXアンテナ BU33L1B \5,374(amazon)
同じく、電波を分けるならブースターが必要だと思われる
これが安くて評価が高かった

アンテナ
日本アンテナ UDF80
この前購入した室内アンテナ



準備としてはこれくらいでしょうか?




2重シールド5C同軸ケーブル S5CFB(C)BK

2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)