9月 17, 2011

recfsusb2n 0.9.2をfit-PC2iに最適化する

fit-PC2iはAtomという非力なCPUを使用しているので,できるだけCPU負荷を減らしてあげる必要があります.
でないと録画がうまくいかない可能性がありますし,省電力PCでCPUを常時使いまくってるのもどうなの?ってのがあるからです.

実はgcc-4.5からAtomの最適化オプションが提供されていて,これを追加してあげるだけでも処理負荷が1/3になったりします.
ぶっちゃけ,このためにここでgcc-4.5.3を入れましたw

ここを参考にやっていきます.(kinumi様ありがとうございます
といってもやることは同じなんですけどねw

$ vi FSUSB2N/Makefile
 この中に最初から書かれている下の二つの行を削除
  CXX = g++
  CXXFLAGS = -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25) 

 その後下を追加
  CXX = /usr/local/gcc-4.5.3/bin/g++
  CXXFLAGS = -O3 -mfpmath=sse -msse -msse2 -msse3 -mtune=atom -march=atom -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25)
  CC = /usr/local/gcc-4.5.3/bin/gcc
  CFLAGS  = -O3 -mfpmath=sse -msse -msse2 -msse3 -mtune=atom -march=atom -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25)
$ make
$ sudo cp recfsusb2n /usr/local/bin/


recfsusb2nを使ってfit-PC2iを録画PCに!!

恵安株式会社から発売されているKTV-FSUSB2recfsusb2nを使ってLinuxで地デジを録画できるようにします.
それぞれがどういうものなのかっていうのは各サイトおよびグーグル先生に聞いてみてください.

まず,KTV-FSUSB2は買ってきていろいろ準備をしておきます.
次に,recfsusb2nの設定をページに記載されている順番でつらつらやっていきます.

まず,デバイスを外した状態で使用するための環境を作っていきます.

$ sudo apt-get install g++
$ sudo apt-get install libboost-thread-dev libboost-filesystem-dev
$ sudo groupadd video
$ gpasswd -a 使いたいユーザ名 video
$ sudo vi /lib/udev/rules.d/89-tuner.rules
 で、以下を追加
 # FSUSB2N
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0029", MODE="0664", GROUP="video"
$ udevadm control --reload-rules

ここで,デバイスを接続して
$ lsusb -d 0511:
 これを実行してなにか入れば,無事に認識できています

recfsusb2nのコンパイルは,ダウンロードしてきたファイルを解凍して,
$ tar zxvf recfsusb2n-0.9.2.tar.gz
$ cd FSUSB2N
$ make
$ sudo cp recfsusb2n /usr/local/bin/

最後に録画の確認をします.
このコマンドはUHF24chを40秒間、test.tsにB25復号しながら記録ものです.
$ recfsusb2n -bv 24 40 test.ts

gccをソースからインストール

公式から適当なバージョンのgccソースを持ってくる.

これを解凍して,configureを実行するとgmpmpfrmpcが必要だ!!って怒られるので,それらもソースからインストールします.
それぞれに依存関係があるので,gmp,mpfr,mpcの順番で入れていきます.
3つとも下の手順で大丈夫です.
./configureの途中で止まった場合は,必要なファイルが足りていないので,何が足りていないのかを調べてそれをインストールしてから再度実行

$ cd 解凍したフォルダ
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

3つともインストールが完了すると,/usr/local/include以下にgmp.h,mpfr.h,mpf2mpfr.hとmpc.hができていると思います.
これらがあればインストールは無事に完了してると思います.

次にgccをコンパイルすれば完了です.
$ cd gccのフォルダ
$ ./configure --with-gmp=/usr/local/ --with-mpfr=/usr/local/ --with-mpc=/usr/local/ --prefix=/usr/local/gcc-4.5.3
$ make
$ sudo make install
$ sudo ldconfig
$ sudo ln -s /usr/local/gcc-4.5.3/bin/gcc /usr/local/bin/gcc-4.5.3

gccのmake時にjavaが入っていないとコンパイルに失敗するので,入っていない場合はインストールする
$ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'
$ sudo apt-get update 
$ sudo aptitude install sun-java6-jdk  

インストール完了の確認は
$ gcc -v
で,インストールしたバージョンになっていれば大丈夫です


capsをctrlへ置き換え

event_note9月 17, 2011 forumNo comments

Windows用のキーボードだとAの左横がcapsになっていて,普段使っている感じでLinuxをいじれない。。。
ひじょーに使いにくい!!

という訳で,capsはあんまり使わないだろうから,ctrlに置き換えてしまいます.

$ sudo vi /etc/rc.local

 exit 0より上に下のどちらかを追加する.私の場合だと下でうまく動きました
 dumpkeys | sed -e 's/CtrlL_Lock/Control/' | loadkeys
 dumpkeys < /dev/tty1 | sed 's/^\(keycode[ | ][ | ]*58[ | ]*=\).*$/\1 Control/' | loadkeys


Ubuntu10.04 Serverでadd-apt-repositoryを使えるようにする

event_note9月 17, 2011 forumNo comments

レポジトリの追加とかで便利なadd-apt-repositoryコマンドがUbuntu10.04 Serverには入っていないみたいなので,これをいれます.

$ sudo apt-get install python-software-properties
$ sudo apt-get update


fit-PC2iにUbuntu10.04 Serverをインストールする

event_note9月 17, 2011 forumNo comments

以前Ubuntuをインストールしましたが,なにを思ったのかやっぱりServer版にしよう!!ってなってしまい,再度インストールしましたb

まぁ,基本的にインストールは設定したいところを設定して,入れたいものを入れる感じで大丈夫なんですが,(わからない人はデフォルトで大丈夫だと思います。
インストールが一通り終わってからのaptの設定周辺で落ちる落ちる;;
結果からいうと,Ethernetドライバがカーネルパニックを引き起こしてました.(これだから蟹さんはーーー。。r8169ドライバで不具合報告多数
なので,Ethernetケーブルを引っこ抜いてネットワークの設定は後から手動で設定するようにして,無事にインストールすることができました.

無事インストールが完了してもこのままだとネットが使えないので,まずEthernetドライバを入れます.
その辺りはここを参照


9月 06, 2011

fit-PC2iのNICドライバ入れ替え

event_note9月 06, 2011 forumNo comments

デフォルトでインストールされたRealtekのドライバ(R8169)が不調で,負荷をかけるとカーネルパニックで落ちてしまうという現象が発生.
調べてみると,R8169の不具合が結構報告されているので,R8111用のものに入れ替えます.(fit-PC2iはもともとR8111を使っていたはず

ソースをここからダウンロードして,解凍したファイルの中にあるautorun.shを実行します

$ tar jxvf r8186-8.025.00.tar.bz2
$ cd r8186-8.025.00
$ sudo ./autorun.sh

その後,initrd.imgを作りなおして再起動後も有効になるようにします.
$ sudo cp /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.bak
$ sudo mkinitramfs -o /boot/initrd.img-`uname -r` /lib/modules/`uname -r`
$ sudo reboot


fit-PC2iにUbutnu10.04をインストール

event_note9月 06, 2011 forumNo comments
fit-PC2iで遊ぶためにUbuntuを入れます.

基本的にここを参考にしてます.
GMA用のドライバをここを参考にして,
aptのリポジトリに追加して必要になるものをインストールします.

$ sudo add-apt-repository ppa:gma500/ppa
$ sudo apt-get update
$ sudo apt-get install poulsbo-driver-2d poulsbo-driver-3d poulsbo-config
$ sudo reboot

その後,fitPCのサイトからxorg.confをダウンロードして,/etc/X11/xorg.confと入れ替えます.
$ wget -c http://fit-pc2.com/download/ubuntu/files/xorg.conf
$ sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.orig
$ sudo mv xorg.conf /etc/X11/xorg.conf
$ sudo chown root:root /etc/X11/xorg.conf

LinuxのIPアドレスを固定する

event_note9月 06, 2011 forumNo comments

LinuxのIPアドレスを固定するには,/etc/network/interfacesを編集します.

変更したいポートのところを,指定したい値に書き換えます.

$ sudo vi /etc/network/interfaces

 自動IPのとき
  auto eth0
  iface eth0 inet dhcp

 固定IPのとき
  auto eth0
  iface eth0 inet static
  address 192.168.0.100
  netmask 255.255.255.0
  gateway 192.168.0.1

DNSの読み込み先は,/etc/resolv.confで設定できます.

設定した後に,デバイスを再起動で完了
sudo /etc/init.d/networking restart

実はこの作業をSSHで入ってやっていたので,
デバイス再起動が完了したメッセージが帰ってこなくて焦りました;;


9月 05, 2011

Xの停止方法

event_note9月 05, 2011 forumNo comments

たまにGUIで作業したいので,デスクトップ版を入れたけどGUIは基本的には使わない.

なので,Xを停止させます.
/etc/default/grubを編集するだけなので,ちゃちゃっとやってしまいます.

$ sudo vi /etc/default/grub

 中に記述されている
 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
 を以下に変更する
 GRUB_CMDLINE_LINUX_DEFAULT="text"

$ sudo update-grub

Xが必要なときは
$ startx


9月 04, 2011

Bloggerで表示されているタイトルの一覧を表示する

event_note9月 04, 2011 forumNo comments

読みたいものを毎回スクロールして探すのはめんどくさいので,トップにタイトルの一覧を表示させる.


Holiday Webmaster BlogクリボウのBlogger TIpsを参考にして,以下をテンプレートに追加すればOK


<b:if cond='data:blog.pageType != "item"'>
<ul id='post-title-navigation'><span>このページの記事一覧</span> <b:loop values='data:posts' var='post'>
<li>
<b:if cond='data:post.link'>
<data:post.dateHeader/> - <a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<data:post.dateHeader/> - <a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.dateHeader/> - <data:post.title/>
</b:if>
</b:if>
</li>
</b:loop> </ul>
</b:if>

BloggerのHTMLの編集で「ウィジェットのテンプレートを展開」にチェックを入れて,すべて展開した状態にした後に,
<b:include data='top' name='status-message'/>を検索して,その下に追加するのが一番楽みたいです.


クリボウさんによると,この記述では同じ日付の投稿があった場合,2つ目のタイトルにタイトルに対して日付がつかないそうです.
一日に複数投稿することは今のところないので,私はこのままでいくつもりです.
まぁ,追々考えていく方向でb