vine/DHCPサーバ

Posted コメントするカテゴリー: vine

DHCPサーバの立ち上げ

サーバのインストール

# apt-get install dhcp

設定ファイル

  • サンプルからコピー
#  cp /usr/doc/dhcp-2.0pl5/dhcpd.conf.sample /etc/dhcp.conf
  • /etc/dhcpd.confの編集
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;

        option nis-domain               "funaori.com";
        option domain-name              "funaori.com";
        option domain-name-servers      192.168.0.1; 

        option time-offset              -5;     # Eastern Standard Time
        option ntp-servers              192.168.0.1;
#       option netbios-name-servers     192.168.0.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2; 

        range dynamic-bootp 192.168.0.32 192.168.0.64;
        default-lease-time 21600;
        max-lease-time 43200;

        # we want the nameserver to appear at a fixed address
        #host ns {
        #       next-server marvin.redhat.com;
        #       hardware ethernet 12:34:56:78:AB:CD;
        #       fixed-address 207.175.42.254;
        #}
}
  • 内容
    • ネットワークアドレス:192.168.0.x
    • ドメインネーム:funaori.com
    • サーバアドレス:192.168.0.1
    • 割り当て範囲:192.168.0.32~64
    • Macアドレスからの固定割り当てはなし.
  • /etc/sysconfig/dhcpdの編集
DHCPDARGS=eth0
  • eth0のネットワークにdhcpサーバを適用する.
  • サーバの立ち上げ
# /etc/rc.d/init.d/dhcpd start

vine/ラジオ録音2

Posted コメントするカテゴリー: vine

更新履歴

2006/02/11

Talking about Englishが2005年末で終了してしまいました.2006年からは”webcast”という別の番組になり,公開HomePageも微妙に変化しましたので,対応をしました.

背景

基本的にはラジオ録音?と同じです.ただ,ストリームを取得する先を,nprから,BBCに変えました.

スクリプト

指定のサイトから,拡張子が.ramのリンクを探し,そのリンク先のファイルからプロトコルがrtsp://のURIから,ストリームを取得してMP3に変換しています.

使い方

$ bbc_get.rb <サイトURL>

例: BBC OUTLOOKからの取得

$ bbc_get.rb http://www.bbc.co.uk/worldservice/programmes/outlook_peo.shtml

検証

取得できたサイト

  • WebCast
    • 放送日時をファイル名にして保存します.fullの方は取得できる日付が次回なので,次回の放送日時がファイル名になってしまいます.
  • Outlook
    • ファイル名の頭に日付を追加して保存します.
  • (2005年末終了)Learning English radio
    • 一緒に公開されているPDFのscriptもダウンロードします.

うまくいかなかったサイト

Global Business

その他は試していません

vine/Postgresql

Posted コメントするカテゴリー: vine

PostgreSQLの設定メモ

/var/lib/pgsql/data/postgresql.confの設定

  • ネットワークからアクセスできるようにする
tcpip_socket = true
  • Port設定
port = 5432

/var/lib/pgsql/data/pg_hba.confの設定

  • アクセス制限
host    all         all         127.0.0.1         255.255.255.255   trust

操作メモ

初期設定

  • ユーザの作成
$ createuser hoge
  • データベースの作成
$ createdb SampleDB

Apacheからアクセスできるようにする.

  • Apachユーザの追加
$ createuser apache
  • Apacheユーザに権限を与える
$ psql -n SampleDB
SampleDB=> grant all on SampleTable to apache;

覚書

  • データベースの一覧表示
$ psql -l
  • テーブルの一覧表示
=> \dt

RubyのDBインターフェースをインストール

Ruby/PostgreSQLのインストール

参考ページ

$ tar zxvf ruby-postgres-0.7.1.tar.gz
$ cd ruby-postgres-0.7.1
$ ruby  extconf.rb  --with-pgsql-include-dir=/usr/include/pgsql/ --with-pgsql-lib-dir=/usr/lib/pgsql/
$ make
$ su
# make install

Ruby/DBIのインストール

参考ページ

$ tar zxvf ruby-dbi-all-0.0.21.tar.gz
$ cd ruby-dbi-all
 $ ruby setup.rb config --with=dbi,dbd_pg,dbd_mysql
 $ ruby setup.rb setup
 $ su
 # ruby setup.rb install

vine/Gigabit Eather

Posted コメントするカテゴリー: vine

背景

1000Baseのネットワークにするべく,LANボードを購入したがLinuxのためなのか?マザーボードとの相性なのか?なかなかうまくいきませんでした.
やっとうまくいきましたので,一応まとめてみました.

使用LANボード

LGY-PCI-GT

ドライバのインストール

LGY-PCI-GTはRealTek?のRTL8169チップを使用しているので,Realtek社から最新のドライバ(2.20)をダウンロードしてこちらを使用する.

解凍

# unzip linux-8169(220).zip

改行コードをCRLFからLFに変換

# cd src
# mv r8169_n.c r8169_n_org.c
# nkf -Lu r8169_n_org.c  > r8169_n.c

コードの編集(src/r8169_n.c)

  • irqreturn_tをirqreturn_t_R8169
  • IRQ_NONEをIRQ_NONE_R8169
  • IRQ_HANDLEDをIRQ_HANDLED_R8169

にそれぞれ変更

コンパイル

# make clean modules
# make install

ドライバを追加

/etc/modules.confに追加

alias eth0 r8169

使用状況

とりあえずは使えるのだが,NFSサーバとsambaサーバとの相性がイマイチのようです.
NFSサーバの起動・終了には時間がかかるし,通信速度が異常に遅くなる.
sambaサーバは,通信速度はそれなりにでるが,あまり使っていると突然Linuxがハングしてしまいます.

Intel PRO/1000 MT

ドライバのインストール

標準で組み込まれているがe1000からダウンロードしたドライバを使用する.

解凍

$ tar zxvf e1000-6.3.9.tar.gz

コンパイル&インストール

$ cd e1000-6.3.9/src
# make install

ドライバを追加

/etc/modules.confに追加

alias eth0 e1000

使用状況

とりあえずは使えるが,通信をすると時々ネットワークが使えなくなる.
ログ(/var/log/message)に次のようなメッセージが通知されている.

kernel: NETDEV WATCHDOG: eth0: transmit timed out
kernel: e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
kernel:   Tx Queue             <0>
kernel:   TDH                  <a>
kernel:   TDT                  <a>
kernel:   next_to_use          <a>
kernel:   next_to_clean        <2>
kernel: buffer_info[next_to_clean]
kernel:   time_stamp           <9fd5>
kernel:   next_to_watch        <2>
kernel:   jiffies              <a3bd>
kernel:   next_to_watch.status <0>
kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex

オプションをいろいろと変更してみてもダメでした.
e1000のSourceForgeにも同様のバグが報告されている.マザーボードがVIAの古いチップセットの為との報告ともあるので,ドライバでなんとかなるのかは微妙です.

GbE-PCI2

ドライバのインストール

VIA社のVT6122というチップを使っているので,VIA Networking Technologies, Incからドライバをダウンロードする.

解凍

$ unzip VT6120_VT6122v24FVNT.zip
$ cd LINUX
$ tar zxvf velocityget.tar.gz

コンパイル&インストール

$ cd 1.22
# make install

ドライバを追加

/etc/modules.confに追加

alias eth0 velocityget

使用感

とりあえず問題なく動いており,ログにも変なメッセージもありませんでした.
現在はこのLANボードを使っております.

vine/テレビ録画2

Posted コメントするカテゴリー: vine

>

ハードウェアエンコードでテレビ録画

AAF ぱ研様でCX23416GYC-STVLPをLinuxで使用できるよう解析をしてくださっており、今回はこちらを使わせて頂くことにしました。
テレビ録画?で紹介したようにソフトウェアエンコードでもいいのですが、私の環境では15分しか連続して録画できないため、15分を組み合わせて録画するという苦しい方法をとっていました。スマートではないので、キャプチャーボードを交換してスマートに録画をできるようにしました。

参考ページ

キャプチャーカードの設定

使用ハード

スカパーの映像(黄色のコンポジット)はキャプチャカードに挿し,音声(白,赤のコンポジット)はこの変換コネクトを通してサウンドカードのマイクに挿しました.

カーネル再構築

  • V4L2のパッチを当てる

http://linux.bytesex.org/v4l2/こちらのサイトから該当するkernelバージョンのパッチをダウンロード。パッチを当ててカーネルを再構築する。

# cd /usr/src/linux
# zcat patch-2.4.26-kraxel.gz  | patch -p1
# make menuconfig 
# make dep
# make clean 
# make bzImage
# make modules
# make modules_install
# make install
  • ドライバのインストール

AAF ぱ研からivtv-0.1.9_GPIO_k26_040706-1.tar.gzをダウンロード

# tar zxvf ivtv-0.1.9_GPIO_k26_040706-1.tar.gz
# cd ivtv/driver/
# make
# make install
  • tuner.oの作成
# cd ../new_cards/CX23416GYC-STVLP_MPG600GR_stuff/tuner
# make
# make install

vine/LVM

Posted コメントするカテゴリー: vine

目的

HDDのトラブルに見舞われて大量のデータを紛失しました.バックアップの大切さを改めて実感しました.RAIDにあるようにRAID5からRAID1にして信頼性をあげるとともに,別途バックアップをとることにしました.
もう一台のPCにHDDを寄せ集めLVMで大きなボリュームをつくり,そこにrsyncでコピーをしています.

参考

LVM構築について
特集:LVMによるディスクパーティションの動的化(後編)

LVMの構築

  • LVMのインストール

VineのkernelはLVMのパッチが当たっているようですが,LVMのツールがインストールされていませんでした.
redhatからlvm_1.0.8.tar.gzをダウンロードしてインストールしました.

# tar zxvf lvm_1.0.8.tar.gz
# cd LVM/1.0.8
# ./configure
# make
# make install
  • パーティションIDの変更

パーティションIDを Linux LVM(8e) に変更する

# fdisk /dev/hdb
コマンド (m でヘルプ): t
領域番号 (1-5): 1
16進数コード (L コマンドでコードリスト表示): 8e
コマンド (m でヘルプ): w

同様にしてhdc1のパーティションIDも変更

  • PVとして構築
# pvcreate /dev/hdb1
# pvcreate /dev/hdc1
  • VGの構築
# vgcreate vg01 /dev/hdb1
# vgextend vg01 /dev/hdc1
  • LVの構築
# lvcreate -L160G vg01
  • ファイルシステムの作成
# mkfs.ext3 /dev/vg01/lvol1
  • mount

fstabへの記述追加

/dev/vg01/lvol1         /home                   ext3    user,auto,exec  0 0

vineの場合LVMを起動時に作成してくれないので,/etc/rc.d/rc.sysinitを編集

# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
/sbin/vgscan             ←追加
/sbin/vgchange -a y   ←追加

LVMの拡張

LVMで作成したパーティションも手狭になってきたので,HDDを追加しました.

  • パーティションIDの変更

作成じと同じです./dev/hde1と/dev/hdf1を作成

  • PVの構築
# pvcreate /dev/hde1
# pvcreate /dev/hdf1
  • VGの構築
# vgextend vg01 /dev/hde1
# vgextend vg01 /dev/hdf1
  • LVの拡張

lvol1をアンマウント

# umount /home

拡張

# lvextend -L+150G /dev/vg01/lvol1
# lventend -L+96B /dev/vg01/lvol1

-L+150.96Gと一度に拡張しようとすると失敗しました.

ファイルシステムの拡張
ディスクをチェック

# fsck -f /dev/vg01/lvol1

サイズ変更

# resize2fs /dev/vg01/lvol1

ディスクの取り外し

  • 対象をアンマウント
# umount /home
  • LVの使用容量を減らす
# lvreduce -L-80G /dev/vg01/lvol1
  • 外したいディスク内容を移動
# pvmove /dev/hdf1
  • 対象ディスクをVGから外す
# vgreduce vg01 /dev/hdf1

MP3ストリームサーバ

Posted コメントするカテゴリー: vine

MP3ストリームサーバ

ipodに大量のMP3を入れてランダムで聞いていると楽しい,と偉そうなアメリカ人が論文のような記事を読んだ.ipodを買うほどの情熱はなかったので,家と会社で同じように音楽が聴けるようにと,MP3ストリームサーバをたてることにした.

更新履歴

2005/05/05 icecast-2.2向けに一部修正

構成

ホームページを調べるとicecastとshoutという組み合わせを良く見かけるのだが,うまく行かなかったのでicesを使うことにした.

icecastのインストール

必要環境

aptで以下のパッケージをインストール

  • curl
  • curl-devel
  • libxml2
  • libxslt
  • libvorbis-devel
  • libogg-devel
  • libxml2-devel
  • libxslt-devel

libtheora-1.0-0.alpha4vl1.src.rpmVineSeedPlus?から取得してリビルド&インストール

$ rpm --rebuild libtheora-1.0-0.alpha4vl1.src.rpm
$ su
# rpm -ihv rpm/RPMS/i386/libtheora-1.0-0.alpha4vl1.i386.rpm rpm/RPMS/i386/libtheora-devel-1.0-0.alpha4vl1.i386.rpm

インストール

icecast-2.2.0-1.src.rpmを取得してリビルド&インストール

$ rpm --rebild icecast-2.2.0-1.src.rpm
$ su
# rpm -ihv rpm/RPMS/i386/icecast-2.2.0-1.i386.rpm

設定ファイルの編集

/etc/icecast.xmlを編集する.必要な項目は以下

  • icesからのアクセスに使用するパスワード
    <source-password>xxxx</source-password>
  • 状態を確認するのに使用するパスワード(たぶん?)
    <admin-password>xxxx</admin-password>
  • 使用するサーバアドレス/ポート番号
    <listen-socket>
     <port>xxxxx</port>
     <bind-address>xxx.xxx.xxx.xxx</bind-address>
    </listen-socket>
  • 実行するユーザの指定(コメントをはずす)
    <changeowner>
     <user>takanezawa</user>
     <group>takanezawa</group>
    </changeowner>

サーバの起動

$ icecast -c /etc/icecast.xml

起動の確認は,ブラウザで下記にアクセスをする.

http://<bind>:<port>/admin/stats.xml

ユーザ名とパスワードを入力すると,icecastの状態のXMLが表示される.

icesのインストール

ライブラリのインストール

libshout-2.1.tar.gzを取得し,コンパイル&インストール

$ tar zxvf libshout-2.1.tar.gz
$ cd libshout-2.1
$ ./configure
$ make
$ su
# make install

ices本体のインストール

ices-0.4.tar.gz

$ tar zxvf ices-0.4.tar.gz
$ cd ices-0.4
$ ./configure
$ make
$ su
# make install

設定ファイルの編集

/etc/ices.confを編集する

  • <Hostname>xxx.xxx.xxx.xxx</Hostname>

icecastのホスト名

  • <Port>xxxx</Port>

icecastのポート番号

  • <Password>xxxx</Password>

icecastのパスワード

  • <Name>xxx</Name>

ストリームの名称

  • <File>/path/playlist</File>

ストリームを行うmp3のリストファイルのpathを記述する。

playlistの作成

一行ごとにfullpathでストリームを行うmp3ファイルを記述する。
例えば /usr/local/mp3 以下のmp3ファイルを全てふくめるためには下記の様にして作成する。

$ find /usr/local/mp3 -name *.mp3 -print > filename

ライブラリのコピー

デフォルトではlibshoutのライブラリが/usr/local/libにインストールされる./etc/ld.conf.soを編集しても見つけてくれないので,/usr/libにシンボリックリンクを張る.

# ln -s /usr/local/lib/libshout.so.3.1.0  /usr/lib/libshout.so.3

icesの起動

ices -B -c /etc/ices.conf

確認

xmmsでhttp://hostname:Port/Nameにアクセスしてみる。

vine/テレビ録画

Posted コメントするカテゴリー: vine

テレビ録画サーバの構築

  • Linuxサーバにテレビキャプチャーカードを追加することで,テレビ録画サーバにしました.とりあえずはコマンドラインのスクリプトで録画・エンコードを行えるようにして,cronとatを使って録画をします.
  • アナログ地上波だけでなく,スカパーもAVケーブル経由で録画できるようにします.

キャプチャカードの設定

使用ハード

Linux Magazineや日経Linuxのテレビ録画特集の記事であげられており,動作が確実だったので選びました.今(2004/02/19)は,生産終了になってしまったようです.

スカパーの映像(黄色のコンポジット)はキャプチャカードに挿し,音声(白,赤のコンポジット)はこの変換コネクトを通してサウンドカードのマイクに挿しました.

テレビ映像の表示

  • bttvドライバの更新

映像に特に不都合はなかったのですが,後述しますが音声の録音がうまくいかなかったため,一応最新ドライバに更新しました.
bttyホームページからbttv-0.7.107.tar.gzをダウンロード

  • インストール手順
$ tar zxvf bttv-0.7.107.tar.gz
$ cd bttv-07.107
$ make KDIR=/usr/src/linux
$ su
# make install
  • /etc/modules.confの編集

ドライバを読み込むように下記を追加

options bttv card=81
options tuner type=17
  • 動作テスト

xawtvを使ってテレビ画面が表示されるかを確認.
インストールはVinePlusからaptを使ってインストール

# apt-get install xawtv

サウンドカードの設定

xawtvに付属のstreamerコマンドを使って録画をテストしてみる.

  • streamerで30秒録画をテスト
$ streamer -f mjpeg -F stereo -o test.avi -t 00:00:30
  • 録画テスト結果

映像はきちんと録画されているが,音声が録音されていない.少しは設定をいじらなければならないようだ.

使用サウンドカード

マザーボードにオンボードのサウンドカードをしようしています.チップセットはVIA KT600 + VT8237

キャプチャーカードとの接続

キャプチャーカードのAudioOUTから付属のケーブルをしようして,マザーボードのCD-INに接続をしました.

OSSドライバ

setupコマンドを使用してサウンドドライバを設定する.xmmsなどで音楽を再生する音が流れるのでドライバ設定はうまくいっているようだが,CDからの音楽を録音してもうまくいかない.

ALSAドライバ

OSSドライバではどうにもこうにも埒が開かなくなっていたので,ALSAで試してみることにしました.

  • VinePlusからaptでインストール
# apt-get install alsa-driver
# apt-get install alsa-utils
# apt-get install alsa-lib
  • alsa-driverのリビルド

ALSAはカーネルと関連が深いので,自前でkernelを再構築しているとVinePlusからインストールしてもうまく動作しませんでした.なのでsrc.rpmをVinePlusなどから,alsa-driver-1.0.2c-0vl1.src.rpm をダウンロードしてリビルド

$ rpm --rebuild alsa-driver-1.0.2c-0vl1.src.rpm  
$ su
# rpm -Uhv --force alsa-driver-1.0.2c-0vl1.rpm
  • /etc/modules.confの編集

ALSAホームページを参考にしてドライバを読み込む.VT8237の設定はなかったが,VT8235の設定をしようする.

# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-via82xx
#module options should go here

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

音声の切り替え

アナログ地上波を録画するときはCD-INの音声を録音し,スカパーを録画するときはLine-INの音声を録音するようにする.alsaconfコマンドを使用して自動的に変更するようなスクリプトを作成するがうまく切り替わらなかった.
試行錯誤の結果,alsamixerを使って手動で行った設定をalsactlコマンドを使ってファイルへ保存・読み込みをすることで何とかできた.

  • アナログ地上波用の設定
# alsamixer
手動で設定.CD-INにカーソルを併せてspaceキーを押下してcaptureに指定し,
mキーを使ってミュートをはずす.
# alsactrl -f TV store
設定をファイル(TV)に保存.
  • スカパー用の設定
# alsamixer
LINEがcaptureになるように設定する.
# alsactrl -f SKY store
設定をファイル(SKY) に保存
  • 設定ファイルからの読み込み
# alsactrl -f <設定ファイル>

テレビ録画

キャプチャー

  • FFMPEGやmencoderなどを使いキャプチャーと同時にエンコードする方法も試したが,640×480のサイズでは,画像がカクカクとして今ひとつであったため,streamerを使いmjpegでキャプチャを行い,その後xvidに変換をすることにした.
  • streamerでの録画も15分以上しようとすると,途中でとまってしまうことが多かった.原因はつかめていないが,15分で2GBぐらいになっているので,ファイルフォーマットはext3なのだが,「2GBの壁か?」と納得をして,15分づつ分割してキャプチャをするようにした.

チャンネル設定

  • スカパー用のチャンネルを設定する
    • .xawtvに追加
[Sky]
source = Composite1
key = F1
capture = on
norm = NTSC-JP
color = 50%
bright = 40%
hue = 50%
contrast = 50%

エンコード

  • transcoderのフィルタを使いできるだけきれいにするようにする.その代わりかなりの時間がかかる
    • hqdn3d : Y/C分解をしてノイズを除去してくれるらしい
    • smartyuv : インターレースの解除
    • xsharpen : 画質をシャープにするらしい.

実行

  • 添付のシェルスクリプトで録画をする.
    • 実行方法
% rectv.sh F1 60 "タイトル"
F1 : チャンネル(ここではスカパー)
60 : 時間
"タイトル" : 完成後のファイル名を追加する.

vine/transcode

Posted コメントするカテゴリー: vine

インストール

transcodeからダウンロード

$ rpm -ta transcode-0.6.9.tar.gz
# rpm -ihv transcode-0.6.9-1.i386.rpm

Divxへの変換スクリプト

使い方

$ avi2divx (-br bitrate) filename.avi
  • filename_reenc.aviという名前で再エンコードしたファイルを作成.
  • -brオプションで指定したビットレート(kbps)とする.オプション指定が無いときは800kbps

中身の補足

  • bashで書いてあります.
  • codecがRIFFとMPEG1の場合は,transcodeでdivxに変換しています.変換に失敗した場合は,mencoderでmjepgに変換してから再度transcodeでdivxに変換します.
  • codecがRealやadvanced(ASF)の場合は,mencoderで一度mjpegに変換してからtranscodeでdvixに変換しています.フレームレートが29fps以上の場合も同じです.
  • その他のcodecの場合は,-x mplayer でmplayer経由で入力してdivxに変換しています.ただしこの場合は赤と青が入れ替わってしまう場合が頻繁にあります.