Hauppage WinTV PVR USB2のラジオ

Linux でラジオ聞く方法をずーーーーーっと調べていたが結局分からず。
こうなったら試行錯誤ナリ。

WinTV PVR USB2はハードウエアエンコーダー搭載で、映像は音声付きのmpegストリームが、/dev/video1 (わしのノートPCはカメラが付いているので、こうなる)から読み出す事ができる。

mplayer /dev/video1
とやると、ちゃんとCompositeの映像が音声付きで出てくる。

という事は、音声もPCMではなく、mpeg?
という事で、

ivtv-radio -f 89.4 -d /dev/radio0 -i /dev/video1 -c “mplayer %s”

と、mplayerに出力を渡してやったら、 α-station が聞けた。
別の端末開いて、

ivtv-radio -f 77.0 -j -g

とやると、E-Radioも聞けた。-g オプション付けると、別の局に変えたい時に周波数を打ち込めば変えられるので多少操作性が向上する。

WinTV PVR USB2付属のラジオアプリだと、84MHzあたりが最低周波数なのだが、ivtv-radio で周波数をセットしてやるとちゃんとその下の周波数もチューニングできる。

これで radiko でエリア外の為に聞けないα-stationがパソコン操作で聞けるようになった。でもノイズレスのクリアな音声じゃないけど、ふとFMラジオが聞きたい時に席から遠くにあるラジオを操作するのが面倒くさいから、これはわしにとっては大きな効用なんだな 🙂

【Ubuntu 11.10 64bit】システム音が鳴らぬ

おととい、Mynthtvでスカパーを視聴しつつ、Firefoxで動画サイトを開き、flash playerが起動した途端、音が消えた。

再起動しても音が出ず、サウンド設定を見てみると、音響効果タブの音量がミュート、出力が「内部オーディオアナログステレオ」では無く、「Manhattan HDMI Audio[Mobillity Radeon HD 5000 Series] Digital Stereo (HDMI)」になっていた。

なぜこの設定が変わってしまったのかさっぱり分からないが、出力を正しく直したら、音が出るようになった。しかし、ログイン時の音など、システムの音がSkypeやEmpathyの音も含め、ミュートを解除しても全く出なくなってしまった。

検索しても、~/.local/share/sounds に /usr/share/sounds以下の音ファイルをコピーするってのがあり、一応、~/.local/share/sounds/__custom ってディレクトリ作って音源ファイル入れてみたが、本質的な解決になってないので消した。

で、例によって英語圏へ探索の手を伸ばしてみると、ズバリ同じ症状の例があった。
theme_name が freedesktop になってしまうのも全く同じ。でも解決に至ってない。

まあ、何かヒントになるかもしれないと、 gconf-editor で /desktop/gnome/sound/theme_name を ubuntu に書き換えても、サウンド設定の音響効果のタブで、「デフォルト」以外を選択すると、なぜか __custom って設定になり、デフォルトに戻すと、 freedesktop に戻されてしまう。

__customってのは消してしまったから無いのだが、なぜ????

おそらく、どこかに候補を作っていて、その中からこの freedesktop というのが設定値として選ばれるのだろうが、その候補がどこに格納されているのやら分からない。

ゲストセッションでログインすると、ログイン音は鳴るので、gnome の個人設定に致命的な不具合があるのは確実なのだが、どこに格納されているのやらさっぱり分からない。

ログイン時の音の再生で、
/usr/bin/canberra-gtk-play –id=”desktop-login” –description=“GNOME Login”

を実行するが、今までは音が鳴っていたという事は、 /usr/share/sounds/ubuntu/stereo の中のdesktop-login.ogg を読みに行っていた訳で、じゃあ、その /usr/share/sounds/ubuntu/stereo って PATHはどこに記憶されてたの?というのが、さっぱり分からない。

以前の Linux の感覚なら、こういう設定は、特定の場所にテキストファイルに格納されている事が多いから、プログラムの不具合でおかしな情報が書き込まれても、修正は容易だった。

しかし、逆にそれが、良く理解していない人間が無茶苦茶な博打設定をやって、システムを破壊してしまうという事にも成り得た。

それで、「システムを破壊しにくくする為に隠してしまおう」なんて流れで設定箇所が分かりにくくなっているのかもしれないが、システムに不具合があっても簡単に直せなくなってるってのはよろしくない。

とりあえず、ホームディレクトリで隠しファイルも含めて全て調べるべく、
find -exec grep -H “__custom” {} \;

なんてやっているが、ホームディレクトリ以下には膨大な数のファイルがあり、しょうもない不具合の解決の為に膨大な時間を使って検索するってのが馬鹿げている。

で、膨大な時間をかけて検索したのに、
noizumi@purplecat:~$ find -exec grep -H "__custom" {} \;
バイナリファイル ./VirtualBox VMs/Debian6/Debian6.vdi に一致しました
バイナリファイル ./VirtualBox VMs/Ubuntu 11.10 64bit/Ubuntu 11.10 64bit.vdi に一致しました
./.bash_history:rm -rf __custom/
./.bash_history:cd __custom/
grep: ./.googleearth/instance-running-lock: そのようなファイルやディレクトリはありません
grep: ./.dropbox/iface_socket: そのようなデバイスやアドレスはありません
grep: ./.dropbox/command_socket: そのようなデバイスやアドレスはありません
grep: ./.pulse/f22b66f362fa794e71d1f7120000000a-runtime: そのようなファイルやディレクトリはありません
grep: ./.config/google-chrome/SingletonCookie: そのようなファイルやディレクトリはありません
grep: ./.config/google-chrome/SingletonLock: そのようなファイルやディレクトリはありません
grep: ./.config/google-chrome/SingletonSocket: そのようなファイルやディレクトリはありません
grep: ./.mozilla/firefox/dlxj05i8.default/lock: そのようなファイルやディレクトリはありません
./.mozilla/firefox/dlxj05i8.default/Cache/5/B8/1C0CBd01:find -exec grep -H &#8220;__custom&#8221; {} \;</p>
grep: ./.kde/socket-purplecat: そのようなファイルやディレクトリはありません
grep: ./.kde/tmp-purplecat: そのようなファイルやディレクトリはありません
バイナリファイル ./.cache/event-sound-cache.tdb.ebf753585907fe619b4f03770000000d.x86_64-pc-linux-gnu に一致しました

出てこぬわ!

そこで博打設定 🙂
$ rm -rf ~/.pulse

管理者アカウントをもう一つ作ってログイン
$ sudo cp -r ./.pulse /home/noizumi
$ sudo chown -R noizumi:noizumi /home/noizumi/.pulse

~/.pulse の中にはシンボリックリンクがあって、 /tmp のディレクトリにリンクしているので、そのまま再ログインしてもおかしくなる可能性が高い。

$ sudo reboot

自分のアカウントでログインしてみると、Skypeのログイン音が鳴り、サウンド設定で音響効果のタブの音量が0になってたのを直したら、無事音が出るようになった。

gnome のせいかと思ったら、 pulseaudio が悪さしていた の巻

だったでござるよ。ニンニン。

【Ubuntu 11.10 64bit】コンパイルが通らぬ

Intel Turbo boostの状況を見るべく、i7zをmakeすると、

noizumi@purplecat:~/src/i7z-0.26$ make
rm -f *.o i7z
If the compilation complains about not finding ncurses.h, install ncurses (libncurses5-dev on ubuntu/debian)
gcc  -g -O0 -fomit-frame-pointer -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DBUILD_MAIN -Wall -Dx64_BIT -lncurses -lpthread -lrt  i7z.c helper_functions.c i7z_Single_Socket.c i7z_Dual_Socket.c -o i7z
i7z_Single_Socket.c: 関数 ‘Single_Socket’ 内:
i7z_Single_Socket.c:83:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:83:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_socket_single’ 内:
i7z_Single_Socket.c:211:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:206:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_single’ 内:
i7z_Single_Socket.c:619:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘Dual_Socket’ 内:
i7z_Dual_Socket.c:37:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:37:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z_socket’ 内:
i7z_Dual_Socket.c:154:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:149:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z’ 内:
i7z_Dual_Socket.c:570:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
/tmp/ccyXWW18.o: In function Single_Socket':
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:92: undefined reference to
initscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:93: undefined reference to start_color'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:95: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:95: undefined reference to wrefresh'
/tmp/ccyXWW18.o: In function
print_i7z_socket_single':
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:114: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:115: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:117: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:122: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:242: undefined reference to mvprintw'
/tmp/ccyXWW18.o:/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:267: more undefined references to
mvprintw' follow
/tmp/ccyXWW18.o: In function print_i7z_socket_single':
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:527: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:527: undefined reference to wrefresh'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:543: undefined reference to
mvprintw'
/tmp/ccyXWW18.o: In function print_i7z_single':
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:582: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:587: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:648: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:648: undefined reference to wrefresh'
/tmp/ccY0TCqr.o: In function
Dual_Socket':
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:46: undefined reference to initscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:47: undefined reference to
start_color'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:49: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:49: undefined reference to
wrefresh'
/tmp/ccY0TCqr.o: In function print_i7z_socket':
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:185: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:211: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:212: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:213: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:214: undefined reference to
mvprintw'
/tmp/ccY0TCqr.o:/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:215: more undefined references to mvprintw' follow
/tmp/ccY0TCqr.o: In function
print_i7z_socket':
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:488: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:488: undefined reference to
wrefresh'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:502: undefined reference to mvprintw'
/tmp/ccY0TCqr.o: In function
print_i7z':
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:539: undefined reference to mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:540: undefined reference to
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:601: undefined reference to stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:601: undefined reference to
wrefresh'
collect2: ld はステータス 1 で終了しました
make: *** [bin] エラー 1
noizumi@purplecat:~/src/i7z-0.26$ locate ncurses.h
/usr/include/ncurses.h
noizumi@purplecat:~/src/i7z-0.26$

でも

noizumi@purplecat:~/src/i7z-0.26$ gcc  -g -O0 -fomit-frame-pointer -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DBUILD_MAIN -Wall -Dx64_BIT -lpthread  i7z.c helper_functions.c i7z_Single_Socket.c  i7z_Dual_Socket.c -lncurses -lrt -o i7z
i7z_Single_Socket.c: 関数 ‘Single_Socket’ 内:
i7z_Single_Socket.c:83:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:83:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_socket_single’ 内:
i7z_Single_Socket.c:211:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:206:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_single’ 内:
i7z_Single_Socket.c:619:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘Dual_Socket’ 内:
i7z_Dual_Socket.c:37:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:37:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z_socket’ 内:
i7z_Dual_Socket.c:154:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:149:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z’ 内:
i7z_Dual_Socket.c:570:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
noizumi@purplecat:~/src/i7z-0.26$

こうやれば通る。

Makefileの中に指定してあるオプションをコマンドラインで打ってやれば、コンパイルが通り、Makefileだと ncurses のライブラリが見つからないとぬかしてシンボルエラーが出まくる。

i7zの場合は、issue に全く同じ症状の人が居て、根本的な解決法になっていないが、一応、動作するものができたが、xawtv4のビルドでも、リンカで必要なライブラリが揃っているのにリンクできないという同じ症状が出ている。

xawtv4の場合は関連ファイルが多いから、一々、コマンドライン手打ちでやってられぬ。そもそも make はそういうコマンドライン手打ちを一々やらない為のシステムで、本末転倒じゃ。

これだけおかしな状況になってるのに、検索しても余り騒いでいる人を見かけないが、わしが時代に取り残されておるのかのう。

となりのパンくん

わしの席の隣に猿がいる 🙂

その猿は示威行動のつもりか、机を叩いたり、感極まって鳴き声をあげたり、わしの仕事を邪魔しようと必死で、まさに strange animal って感じ 🙂

隣にわしが居るのが嫌なら、社長に文句を言うべきだと思うが、おつむが足りないせいか、目の前のものに敵意を向けてくる動物そのもの。

で、その猿がバカな真似をする度にせせら笑ってやるのだが、その猿は笑われるのが癪に障るのか、仕返しのつもりか知らないが、いきなり唐突に脈絡も無く笑い出して、おつむが足りなすぎ。

図式としては、
猿がバカな真似をする→わしがせせら笑う。
腹を立てた猿がいきなり唐突に笑いだす→何笑ってんの?バカじゃねえの?

という感じで、「バカな事をするから笑われる」という事が根本的に理解できていないようだ。

論理的思考ができるなら、これは「バカな事をしたヤツがその段階で笑われて負け」という事にすぐ気付くのだが、理解できないから未だにパンくん(チンパンジーは7歳児くらいの知能)なんだな 🙂

Hauppauge WinTV PVR USB2

Amazon USに新品残り1個だったので衝動買い。

LD-BOXとか捨ててしまうには惜しいアナログメディアがあるので、デジタル化しようと思い、アナログTVキャプチャ、ハードウエアエンコーダー搭載でUSBで、Linuxで使えるヤツという非常に厳しい要件を満たす数少ない製品を探した。

見つけたのがWinTV PVR USB2で、新製品にデジタルテレビ用のものもあるらしいが、2万円弱もするし、どうせデコードしてキャプチャに食わせないといけないし、地デジチューナーは持ってないから、アナログ用でOK

mythtv でコンポジット出力のアナログスカパーとかのテレビを観れるようにはなったけど、いかんせん、日本語の情報源が極めて少ないので、xawtvとか、ラジオチューナーからラジオを聞くとかの制御が成功していない。

ところで、このキャプチャデバイス、mythtvで録画すると、「録画できません」って番組の録画できるのねん 🙂

未完成の携帯サイト

客から携帯サイトに不具合があると電話があって調査。

form に submit が2つあるけど、value見てないとか、session id を次のページに引き継げてないとか、完成してねえし。

で、こういう未完成の携帯サイトってのが今までにもあった訳だが、なぜか日報に書いても社長はスルー。

わしなら、なぜそんないい加減な仕事をしているのかと前任者を問い詰めるところだが、それに触れないという事は、おそらく、前任者が辞める事になった事情や経緯を知られたくないとか、そういったところだろう。

まあ、そういう会社だってのは最初から薄々分かってたけどね 🙂

今日の参議院予算委員会は面白かったらしい

蓮舫、脱税シャブ中のどす黒い人脈暴露
野田「そういう方とお付き合いするのは本人の判断です」
ありえねぇ(笑)

菅直人が1億2千万円を民主党から貰ったのを誤魔化すのに民主党から献金を受けた事にする辻褄合わせを行ったら、赤字になる期間ができたというのが、実は民主党内部から西田さんへリークがあったという衝撃の事実!

それにマルチ山岡が関わっているんじゃないですか?と言われてマルチ山岡しどろもどろ(笑)

野田は政治と金の問題は一切調べないとの事で、このゲス共早く死なねーかな。

Youtubeのこのシリーズは5まであって、まだ観ている途中だけど、無茶苦茶おもすれー。あと、超人大陸の臨時配信があったようなので、要チェックやな。