Netwalker(PC-T1)でKTV-FSUSB2Nを利用

※書きかけだけどとりあえず公開。ARMでもrecfsusb2nが使えるよという内容。ちなみに、mk808(picuntu)でもできた。

Netwalkerという、某社が発売していたMIDがございます。

丁度、世の中にipadなどのデバイスが出始める前、ARMのCPUでUbuntu9.04を採用した小型PCで、一部で好評を博しました。
その第2弾として発売されたのがPC-T1という、今で言うところのタブレット型の機種です。

この製品、はっきり言って使いづらかった。
メーカーでちゃんとチューニングせずに出したんじゃないかとしか思えないモッサリ感。
ウィンドウマネージャを変更して、起動時に立ち上がる不要なプロセスを削って、やっと快適に使えるレベル。しかも、発売して数ヶ月でOSのメンテナンス打ち切りの発表があり、完全に見捨てられた子と化した悲劇の端末。
(個人的には、こういうところに某社の凋落の理由があると思っている。ユーザーの恨みは怖いわよ!)

その後、ipadやらoidタブレットが登場し、PC-T1が狙っていたであろう市場は完全に持って行かれてしまいました。そりゃ、初期状態であのもっさり感じゃ売れんわな…。

そうして、我が家でも行き場を失ったNetwalker。
ただ、PC-T1は省電力かつ小型、そして腐ってもLinuxが動くマシン。
必要なものがあればコンパイルすりゃ大体は動く(はず)!

ということで、テレビチューナーと組み合わせて、録画機として復活してもらいましょうというのが今回の趣旨。

使用するチューナーはKTV-FSUSB2N。
(最初にハードウェアの改造、WindowsでのROMの書き換えが必要。その辺りは偉大な先人の解説にお任せ。)

recfsusb2nのコンパイルでつまずく箇所。
c++でコンパイルする際にエラーが発生。
march=native
どうもc++のバージョンが古いためか、自分のCPUを上手く認識できない模様。
調べるとARM V7なので、「armv7-a」を指定してみる。
src/CMakeLists.txt

# Includesブログを表示

# SET(FSUSB_CFLAGS_INT "-Wall -march=native -O2 -g -DB25 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")
SET(FSUSB_CFLAGS_INT "-Wall -march=armv7-a -O2 -g -DB25 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")

・リンクしようとするとエラー
必要なライブラリーについては、boost_systemなど諸説あるみたいだが、いろいろ試した結果、PC-T1だと下記でいける模様。boost_systemは要らなかった。
必要なlibboost関連のライブラリはapt-getで落とせた。libboost-system*(複数出てきた場合は新しい方)をインストール。

src/CMakeLists.txt

# Libraries
# SET(FSUSB_LINK_INT "-lpthread")


SET(FSUSB_LINK_INT "-lpthread -lboost_thread-mt -lboost_filesystem-mt")

・em2874-core.cppでエラー
こちらを参考に修正
http://www.dazzlingworld2.com/post_5371.html

126行目がpath().c_str()になっているが、Netwalkerで使用可能なライブラリ(boost?)だと、path().string().c_str()が正解の模様。
// バスに繋がっているデバイスでループ
if (!boost::filesystem::is_directory(*dev_iter)) {
// 開く
//if (pDev->openDevice(dev_iter->path().c_str())) {
if (pDev->openDevice(dev_iter->path().string().c_str())) {
isFound = true;
if(log) *log << "device: " << dev_iter->path() << std::endl;
break;
}
}

上記修正後、cmakeを使ってコンパイルを行なっていく。
cmakeでのコンパイル方法はこちらを参考にしました。

http://aqua-linux.blog.so-net.ne.jp/2012-06-30


コンパイルはできたが、FSUSB-2Nには受信直後のストリームが安定しないという問題があり、ffmpegなんかで分離する際に正常に認識出来ない。
これを解消すべく、偉い方がパッチを提供しているのでそちらを適用し、再度コンパイル。

--執筆中

ただ、PC-T1側の問題で、どうやら画面がスリープすると、USB機器も一緒にスリープするようで、その点をどうしたものかと思案していたのだが、どうやら給電するUSBハブを使えば常時電源が入った状態になる模様。

ついでにUSBのethernetアダプタを付けて、適当な共有フォルダをfstabでsmbmountしてそこを保存先にすればOK!

コメント

このブログの人気の投稿

ヤマダ電機の安心会員住所変更をした

JP1の定義をドキュメント化するjp1ajs2.jobdocが超便利

curlでADのドメインユーザーでプロキシを超える