2009年05月16日

Chrome9ドライバのインストール

SN18000にはVIA Chrome9 IGというチップセット統合型のディスプレイコントローラが搭載されている。デフォルトのlinuxインストールでは、Chrome9のドライバはインストールされておらず、VESA互換モードでlinuxが起動する。が、遅い。firefoxがまともにスクロールしなかったりする。サーバとして使うには別にどうでもいい話だが、デスクトップOSとして使おうと思うと正直しんどい。

Chrome9のドライバはVIA本家がリリースしているものと、openchromeがリリースしているものがある。VIA本家のものをインストールしようとしたら失敗したので、openchromeのものを使うことにする。

openchromeはEPELのリポジトリからダウンロードできる。なんてありがたいんだ。 先にYUMリポジトリの追加の手順でEPELを追加しておく。

# yum install xorg-x11-drv-openchrome

余談だが、VIA本家のドライバはビルドスクリプトやインストールスクリプトに厳しいバージョンチェックが入れてある。サポートが表明されているFedora、SuSE、Mandriva、Ubuntu以外はスクリプトを改造しないとビルドすらできない。スクリプトをどうにか修正するも、やはりXサーバは起動しなかった。

posted by yuji_at_radiance at 15:04| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

最新カーネルのビルド【2009年5月】

最新のlinuxカーネル2.6.29.3をビルド・インストールする。これでsensorsやcpuspeedがSN18000上でも動くようになる。ちなみにCentOS5.3のデフォルトカーネルは2.6.18である。

まず、Linux Kernel Archivesからカーネルソースをダウンロードしてくる。

以降、/usr/srcで作業

# tar -jxvf linux-2.6.29.3.tar.bz2
# ln -s linux-2.6.29.3 linux
# cp kernels/2.6.18-128.1.10.el5-i686/.config linux/.config
# cd linux
# make oldconfig

oldconfigを使って古い設定をインポートしつつカーネルをビルドする。途中いろいろと聞かれるが、基本的にENTERを連打すれば事足りる。たぶん。

SN18000向けで、いくつかやっておかなければならないオーバライドは・・・。

  • Processor family で MVIAC7を選択
  • VIA C7 Enhanced PowerSaver で Moduleを選択
  • SENSORS_DME1737 で Moduleを選択
  • VIA Unichrome Chrome9ドライバ (FB_VIA) で、Noを選択
間違えて選択してしまったら、menuconfigで修正する。

  カーネル本体のビルド
# make bzImage
  モジュールのビルド
# make modules
  モジュールインストール
# make modules_install
  カーネルインストール
# make install

make installの際に、raidコントローラのカーネルモジュールが不足していると警告を受ける

# make install
WARNING: No module dm-mem-cache found for kernel 2.6.29.3, continuing anyway.
WARNING: No module dm-message found for kernel 2.6.29.3, continuing anyway.
WARNING: No module dm-raid45 found for kernel 2.6.29.3, continuing anyway.
とりあえず、警告が出ても正常に動くらしい。このほか起動時に、dm-region-hash.koがないという警告も受ける。
insmod error inserting '/lib/dm-region-hash.ko' : -1 File exists

posted by yuji_at_radiance at 14:11| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

yumのリポジトリを追加

BASEやExtrasに含まれないパッケージをyumでインストールできるようにするために、リポジトリを追加する

  • EPEL: Fedora projectの成果物が多く反映されたリポジトリ
  • DAG: 様々な追加パッケージが置かれたリポジトリ
リポジトリの追加方法は該当サイトのFAQあたりを参照のこと

後はもう、yum installなりyum updateなりお好きにどうぞ

posted by yuji_at_radiance at 13:41| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

LVM時代のLinuxインストール

最近のLinuxでは、インストール時のデフォルトの設定でLVM(Logical Volume Manager)が利用される。パーティションサイズを後から拡張できたりと便利なシロモノらしいのだが、いろいろと弊害もある。
同じ名前のVolumeGroupを同時にアクティブにすることができない都合上、バックアップ用に残しておいた古いHDDをマウントできない場合がある。実際のところ、ほとんど全てのディストリビューションでVolGroup00というグループ名を使うため、古いHDDのマウントはほぼ確実に失敗する。

VolumeGroup名がかぶってしまった場合の解決法は他のサイトで説明されているのでここでは解説しない。

Linuxをクリーンインストールする際には、ユニークなVolumeGroup名をつけておくことをお勧めする(もっとも、VolumeGroup名を決めうちにしているドライバとががあった場合に大問題になるかも知れないけど)。名前の付け方はなんでもいい。マシン名+日付とかOS名とか。
私はマシン名+日付ということで、RAD09MAYとした。

インストール時に漫然とNextボタンを押していると、パーティションの設定はバックグラウンドで勝手に行われてしまう。
パーティションの確認(だったかな?うろ覚え)のチェックボックスを入れて、パーティションの分割案が表示されるようにする。
volumename.jpg

posted by yuji_at_radiance at 13:24| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年01月17日

30分おきの謎の音(hdparm smartd)

ファイル置き場として使うために500GByteのSATAハードディスクを接続して使っている。そう頻繁にアクセスするものでもないのでディスクがずっと回りっぱなしというのは避けたいところである。

そんなときはhdparm -Sを使って、一定時間おきにスピンダウンさせることができる。(参考資料1

hdparmコマンドの-Sオプションは、与えた数字にしたがってディスクアクセスの停止からスピンダウンまでの時間を決める。詳しいテーブルは参考資料を見ていただきたい。

$sudo /sbin/hdparm -S 72 /dev/sdb

これで、6分後にディスク/dev/sdbがスピンダウンする。どれくらいの時間でスピンダウンさせるかはお好みしだい。あまりにも短いと、ファイルの移動先に迷っている間にディスクが止まってしまったりする。お詫び:間違えて-S 720と書いていましたが72の誤りです。

これで問題なく運用できると思っていたら、何故かきっかり30分おきにハードディスクがスピンアップするようになった。一日に48回も回ったり止まったりするのは、ディスクにとって良くないはずである。

当初ファイルシステム周りの犯行を疑っていたが、どうやら原因はsmartdらしいことが分かった。SMARTは、ハードディスクの自己診断ツールである。SMARTデーモンは30分おきにディスクにアクセスして、各種統計情報を取得している。

smartdの挙動は/etc/smartd.confを使って設定できる(参考資料2)。 オリジナルの設定記述はこんな感じ

/dev/sdb -d ata -H -m root

/dev/sdbをATAコマンドのデバイスとみなして(-d ata)、SMART情報を取得してエラーがあったら報告する(-H)。情報の送り先はroot@localhost (-m root)という設定になっている。

ここに、/dev/sdbへのアクセスを控えるようなオプションを追加すればよい。hdparm -Sで停止したディスクはstandby状態(これはhdparm -Cで取得できる)なので、ディスクの状態に応じてアクセスを控える -nオプションを追加する。

/dev/sdb/ -d ata -H -m root -n standby,q

末尾の,qは、standby状態のデバイスに対してアクセスせず、レポートも作成しないというオプションである。

smartdを再起動したら30分に一度のスピンアップが起こらなくなった。

この設定では、standby状態のディスクをスキップするので、気がついたらファイル置き場のドライブが傷んでいる場合もありえる。低い頻度で定期的にチェックを行いたい場合は-Lオプションなどがお勧めらしい。

posted by yuji_at_radiance at 13:00| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年01月12日

地デジを録る

最近(といっても祭りになったのは半年前くらいだっけ?でも、最近対策版も動くようになったらしいね)話題のUSB接続地デジチューナーを接続してみた。以下作業メモ。

基本的には、先行して記事を公開されている方々が紹介されている手順と同じで、

  1. Windowsで純正ソフトで動作確認
  2. ドライバをBonDriverに差し替えてコマンドラインツールで動作確認
  3. TVtestで動作確認
  4. Linuxマシンに接続
  5. recfriioにパッチを当ててビルド
のような感じ。

ハマるポイントとしては、Linuxカーネルのバージョンによって、ヘッダファイルの置き場が<linux/usb/ch9.h>だったり<linux/usb_ch9.h>だったりすること(最新パッチでは対策済み)。そして、Makefileのboostスレッドのリンク指定が-lboost_thread-mtだったり-lboost_threadだったりすること。手修正が必要かもしれない。

あと、チューナーのB-CASスロットは現時点では使えないらしいので、復号処理を行うためにはカードリーダが必要になる。SCR3310(NTT)がお勧めである。納税の電子申告がブームらしく、家電量販店に行くとPCコーナーのレジ脇に積んである。少なくともビックカメラとヨドバシにはあった。

復号処理を一緒にやる場合には、スマートカードデーモンpcscdが起動している必要がある。

$ps -A | grep pcscd

とやって、何も引っ掛からなかったら、

$sudo /etc/init.d/pcscd start

とするべきである。 なお、pcscdが起動していると、カードリーダのLEDが点滅(少なくともSCR3310の場合)するので、見た目で見分けることもできる。

これをしないと、カードの情報が取得できないので winscard_msg.c:98:SHMClientSetupSession() Error: connect to client socket: error - failed on B_CAS_CARD::init() : code=-3 とか出たりする。TTYカラーで作業すると、winscardのエラーメッセージが何故か赤文字になったりして恐ろしい。

録画データはMPEG2-TSなのだが、これが1分あたり100MByteというツワモノなので、ディスクをあっという間に圧迫してしまう。リアルタイムに圧縮をかけたいところだが、1440x1080 MPEG2-TSを720x540 XVIDに変換するとトランスコード速度が10frame/s位にしかならない。一応C7の1.8GHzなんだけどなー。

posted by yuji_at_radiance at 17:27| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2008年06月26日

Linuxデバイスファイルのデフォルトパーミッションを変更する(Centos5)

Linuxのデバイスファイル(/dev/以下に置かれている各種ハードウェアに対応したファイル群)は基本的にrootの所有物であり、root以外には利用権限がない。録画録音を一般ユーザーが行うためにはアクセス権を変更する必要があるが、マシンを再起動すると元に戻ってしまう。

デバイスファイルのデフォルトのパーミッションは起動時にudevによって割り当てられる。割り当てる値は、たいていのLinuxディストリビューションでは/etc/udev/permissions.d/以下のファイルに書かれている。

ところが、(最近の?)FedoraやCentosではPAM(Pluggable Authentication Modules)というのが使われていて設定方法が異なるらしい。PAM関係の設定ファイルは/etc/security/console.perms.d/以下に置かれている。たとえば、グループaudioに所属しているユーザーがサウンドカードを操作できるようにするためには50-default.permsに次のように変更を加える。

part of 50-default.perms
<console> 0660 <sound> 0660 root.audio

  • <console>は/etc/security/console.permsで定義されていて、ttyも含めたコンソール全般を指すらしい。
  • 1回目の0660は、ユーザーがログインした際のアクセス権らしい。(ユーザーとaudioグループのみアクセス可能)
  • <sound>は、ファイルの中で定義されていて、/dev/dspや/dev/mixerのことを指す
  • 2回目の0660は、ユーザーがログアウトした際のアクセス権らしい。(rootとaudioグループのみアクセス可能)
  • root.soundは、所有者root、所有グループaudioということ

1回目のアクセス権は早いもの勝ちで設定されるらしい。最初にシステムにログインしたユーザーがデバイスの所有権を得て、二人目以降のユーザーは所有権を得られない。こうすることで、一般ユーザーはsudoとかしなくてもCD-Rドライブやサウンドカードを使うことができる。

50-default.permsを書き換えるのはお勧めできない方法であり、正しくは51-audio.permsとか適当なファイル名をつけて記述するのがよいらしい。

posted by yuji_at_radiance at 22:09| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2008年06月24日

Windows用MPlayerのコンパイル

ワンセグのtsファイルをMPlayerで見るためにはMPlayerにパッチを当てる必要がある。ところが、windows版のmplayerはあらかじめコンパイルされてるのでパッチが当てられない。そういうわけで、MPlayerをwindows向けにコンパイルしてみた。

とりあえず、windows環境にcygwinがインストールしてあったのでcygwinでコンパイルしてみた。一般に、cygwinなしでも動くようにコンパイルするには、gcc --mno-cygwinとすればよい。今回はconfigureを使ってMakefileを生成するので、configure --cc='gcc --mno-cygwin'を実行する。

これでうまく行くかと思ったらmakeの途中で文法エラーで失敗してしまう。--mno-cygwinオプションを消しても失敗してしまうので、1)GCCのバージョンが悪い、2)Cygwinが悪い、の2通りが考えられる。

エラーの様子からすると、Cygwinのヘッダファイルが悪さをしているのではないかと思うので、MinGWを使ってコンパイルしてみることにする。

コンパイルには最低限、MSyS(コンソール)とMinGW(ライブラリ)をインストールする必要がある。

  • MinGW 5.1.4 (gcc 3.4.5 mingw-vista special r3)
  • MSYS-1.0.10

MSYSコンソール上で次の操作をする。

  1. ソースの解凍
  2. ワンセグ用のパッチを当てる(patchコマンド)
  3. configure
  4. make
  5. コンパイルされたmplayer.exeでtsファイルが再生できることを確認した。

posted by yuji_at_radiance at 22:05| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

Linuxワンセグ録画をやってみる(DUS-01)

Mobile Hackerzさんの「24時間ワンセグ野郎」プロジェクトを皮切りに、いくつかのUSBワンセグチューナーがLinuxで動くようになった様子。対応したチューナーが手に入ったので、先駆者の方々に感謝しつつLinuxサーバーに取り付けてみた。

購入したのは、RockridgeSound社のDUS-01。UOT-100やLOG-J100は既に中古市場にすら出回っていないようなので、今でも簡単に手に入るのはこれくらいではないかと。

DUS-01のドライバは、カーネルドライバを使ったものとlibUSBを使ったものの2通りが存在している。今回はインストールが簡単なlibUSB版を使ってみた。インストール手順はdebianを想定しているようだが、Centos5でも特に問題なくインストールできる。

Linux上ではパッチを当てたmplayerでキャッシュ(という名の録画)を見ることができたが、windows版のmplayer.exeは素のままなのでワンセグのTSデータは再生できない。mplayerをコンパイルしなくては。

次回へ続く

ここから余談:
対応機種をろくに確かめずにGreenhouseのチューナーを買ってしまった。キャプチャソフトでパケットを見ると、なぜか190バイトの暗号化されたデータが送られている。ふたを開けてみるとmaximのHFフロントエンドLSIとNECのLSIとSilicon LaboratoriesのUSBマイコンが載っている。NECの石がワンセグのデコードと暗号化をやってるっぽい。解析は難しそう。

posted by yuji_at_radiance at 21:48| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2008年05月03日

Qt4をVisualC++2005でビルドする

Qt4はGUIアプリケーションを作るためのウィジェットツールキット。VisualC++にはMFCとかATLとかが付いてくるし、それが嫌ならWin32-APIを直で叩けば立派なGUIアプリケーションが作れてしまう。それではなぜQtを使いたいかというと、GUI部分のソースをほとんど変更せずにLinuxやMacOSに移植が可能なため。

大抵のLinuxディストリビューションにはQtが最初からインストールされているので、今回はVisualC++で利用できるようにビルドしてみる。

インストールの手順はこんな感じ。

1.Trolltech社のQt配布ページからwindowsオープンソース版のQtソースを入手する。
$ qt-win-opensource-src-4.3.4.zip

2.解凍ソフトを使ってアーカイブを展開する。

3.できたフォルダを適当な場所に配置する。今回はC:\develtemp\qt434とした。

4.「VisualStudio2005コマンドプロンプト」を起動する。スタートメニューの「VisualStudioTools」の中に入っているはず。以降はVSコマンドプロンプト上で操作する。

5.Qtのソースディレクトリに移動していくつか環境変数を設定する。
$ cd C:\develtemp\qt434
$ set PATH=%PATH$;C:\develtemp\qt434\bin
$ set QMAKESPEC=win32-msvc2005

QMAKESPECを設定することで、configureツールが正しいコンパイラオプションを生成できるようになる。

6.configureツールを実行する(ちょっと待つ)
$ configure -debug-and-release -qt-zlib -qt-libpng -qt-libmng -qt-libjpeg -qt-libtiff -D _CRT_SECURE_NO_WARNINGS

-debug-and-releaseは、デバッグビルドとリリースビルドの両方のライブラリをビルドすること。-qt-xxxxは、画像や圧縮を扱う既存のライブラリの扱い方の設定。windowsではこの種のライブラリは標準搭載されていないので、Qtにバンドルされているものを使う。他のバージョンをビルドするときは、
$configure --help
を用いて、-qt-xxxxをできるだけ設定すればよいと思う。
-D _CRT_SECURE_NO_WARNINGSは、セキュリティに難のある標準ライブラリを見つけた際にコンパイラが警告を発しないようにする。

7.nmakeを実行する(かなり待つ)
$ nmake

ステップ6で-qt-xxxxを設定しないと、途中でコケる可能性が高い。エラーメッセージに「compressが〜」とか「pngが〜」とかあった場合には明らかにオプションが不足しているので、nmake cleanしてからconfigureをやり直す。

8.環境変数を通す(要再起動orログオフ)
システム環境変数PATHにC:\develtemp\qt434\binを追加する。

とりあえず、これだけの操作でサンプルアプリケーションの動作を確認。次は新規にプロジェクトを作ってみる予定。

(19:54追記)
コマンドラインからプロジェクトをビルドするときは
$ qmake -project
$ qmake
$ nmake
とすればよい。

VisualC++と連携したいときは、Windows OS上のVisual StudioでQtを使うで紹介されているように
$ qmake -project -t vcapp -o project1.pro
$ qmake
とする。こうするとproject1.vcprojファイルが生成される。


■.参考資料
wikipedia ウィジェット・ツールキット
Torutk webサイト OO & Java maneuver別室 Windows OS上のVisual StudioでQtを使う
2ch Qtについての疑問を教えあるスレ3 の 201
posted by yuji_at_radiance at 11:18| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。