2010年09月04日

Portable Ubuntu のディスク増設

Portable Ubuntu がなかなかいけてるのだが、ディスク増量の情報がどこもみな root を増やす方法で、これだと FAT32 の 4G の壁に引っかかってしまうので、増量ではなく増設を試した結果、成功した。

まず、なんとかして、 home.img ファイルを作る。これはいろんなところに情報が転がっているので、そっちを参照。中身は何でもよい。

/home.img から 実際の home.img イメージへリンクを張る。

mkext3.fs で /home.img を初期化。この際、 coLinux が凍ったようになるが、時間がかかるだけで問題なし。

/etc/pubuntu/fstab.main に以下のような /home のマウント情報を追加。
/home /home.img ext3 loop 0 1

/etc/rc.local に mount /home を追加。

これだけ。これで、 home.img が新たなディスクとして増設できた。

2010年04月22日

Portable Ubuntu をよりポータブルに

coLinux と Cygwin/X を Portable にして USBメモリで持ち運び可能にした Portable Ubuntu が激しく便利だったのだが、いかんせん Cygwin/X がいけてなくて、デスクトップやリムーバブルメディアに置くことができなかったりする。

そこで、 pure Java X server の WeirdX を使って、もっとポータブルに改造してみた。

ここで Java をインストールしてしまっては全然ポータブルでないので、 Java には Portable Java を使用する。

環境の作り方:
まず、 Portable Ubuntu を展開する。同じディレクトリに Portable Java も展開、そして WeirdX の jar ファイル(今回使用したのは weirdx-1.0.32.jar)を配置する。

次に、 Portable_Ubuntu_???/bin/run_X.bat を以下のように編集する。

=====
@echo off

cd ..
rem cd cygwin

rem set PATH=%CD%\bin;%CD%\sbin;%CD%\usr\sbin;%PATH%
rem set DISPLAY=127.0.0.1:0.0

rem Xcomposite
rem To enable xcomposite, discomment the following line.

rem run cmd /c "sleep 8 & xcompmgr.exe -d :0 -fnsc"

rem Start cygwin/X server
rem If you want to use other Xserver, comment the following line and add the commands to launch the Xserver that you want to use.

rem XWin.exe :0 -ac -notrayicon -multiwindow -dpi 100
..\Java\bin\java -Dweirdx.display.charset=JISX -Dweirdx.display.keymap=jp106 -Dweirdx.displaynum=0 -Dweirdx.ddxwindow=com.jcraft.weirdx.DDXWindowImpSwing -Dweirdx.windowmode=RootlessWM -Dweirdx.display.visual=TrueColor16 -jar ..\weirdx-1.0.32.jar

exit
=====

これだけで、準備完了。

pubuntu.exe で起動すれば、 WeirdX で Portable Ubuntu が立ち上がる。
フォーカスポリシーが異なっているのが気になるが、 USBメモリや SDカードもOKだし、何より Cygwin が起動していないという安心感が違う。

お試しあれ。

2009年12月20日

lenny で XEN

今更ながら、 lenny で XEN を走らしてみた。その際に気をつけなければならなかったことを Web 上から収集したので、メモ代わりに書く。

まず、 xen-tools を使って、 Domain-U を作成。

# xen-create-image --ip 192.168.0.2 --gateway 192.168.0.1 --netmask 255.255.255.0 --hostname host

その後、 host.cfg ファイルの最後に

extra = 'xencons=tty'

を追加。これをしないと、 ro の処理が終わったところで止まってしまう。また、このままだと、 message が大量に出て /var が埋まってしまうので、

extra = 'xencons=tty clock=jiffies'

も追加。

その後、 ssh などでログインしようとすると、弾かれるため、 udev を apt で導入。ついでに linux-module もないので、導入。その後、リブート。

さらに

# dpkg-reconfigure tzdata

として、 TimeZone を設定。

これで、普通に使えるようになった。

2009年12月07日

NetWalker のマウス設定

NetWalker の synergy で上方向にスクロールできるのに、下方向にスクロールできない。調べてみると、 NetWalker というか Ubuntu のマウス設定が変わったらしく、 Axis が割り当てられていない。

というわけで、いかのファイルを生成。

/etc/hal/fdi/policy/mouse-wheel.fdi
<match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

これは Thinkpad からパクってきたけど、これでうまくスクロールできるようになった。

2009年11月05日

Ubuntu 9.10 で Android Development Tools

まずは Sun JDK 6.0 をインストール。
$ sudo apt-get install sun-java6-jdk

続けて、 Java Eclipse をインストール。
$ sudo apt-get install eclipse-jdt

この次にインストールする Google Plugin で Eclipse package が要るというので、インストール。
$ sudo apt-get install eclipse-pde

Android SDK は別途ダウンロードしてきて、適当なディレクトリに展開しておく。

次に Eclipse を立ち上げて、プラグインのインストール。 ADT で Google Plugin が要るというので、インストール。
http://dl.google.com/eclipse/plugin/3.5

ここまで来てやっと ADT がインストールできる。
https://dl-ssl.google.com/android/eclipse/

これで、 Eclipse を再起動した後に SDK の設定をすれば、 Android 開発環境ができる。

2009年11月02日

フルセグでワンセグ野郎

新たなワンセグチューナが手に入らないし、アンテナ線をつなぐのが大変なので、フルセグチューナでワンセグ野郎を構築してみた。

まずはフルセグチューナで TS を抜けるようにする。その後、 TsSelect をちょろっと改造して、標準入力、標準出力を扱えるようにする。その後、 dvbstream.sh を以下のように作る。

-----dvbstream.sh
recfriio $1 - - | tsselect - - 0x0014 0x0027 0x1fc8 0x0200 0x0281 0x0283
-----EOF

解説:0x0014 は TOT でこれがないとワンセグ野郎が TS を食ってくれない。 0x0027 は EPG データでこれで SQLite3 を用いて番組表を生成する。残りはワンセグ用データ。

あとは、 OneSeg24 for Linux で上記の dvbstream.sh を使うように設定するだけ。これでフルセグチューナでワンセグ野郎環境が構築できる。

追記. ワンセグデータには暗号かかってないので、フルセグチューナで抜く TS には復号かける必要はないです。

2009年10月24日

VirtualBox 仮想ディスクの修復方法

前のエントリに書いた、 VirtualBox の Windows7 が入った仮想ディスクが壊れてしまった件だが、修復方法がみつかった。

仮想ディスク VHD を Windows マシンで mount してやり、ファイルチェックを行うといいらしい。

実際の作業には現在は Windows が必要。 7 なら VHD 仮想ディスクがそのままマウントできるが、 XP なら VHDMount というツールを使ってマウントする。その後、ファイルチェックでディスクを修復してアンマウント、で作業完了。

VHDMount は VirtualPC 2008 RC2 に含まれているが、このセットアップの過程で VHDMount だけをインストールできる。

早速試したところ、無事壊れたディスクがまた使えるようになった。

2009年10月11日

lenny で VirtualBox

今の開発マシンが lenny 上の VMware server 上に構築されているのを、 VRDP 目的に VirtualBox へと置き換えてみる試みをしてみた。

まず、 lenny 上に VirtualBox をインストール。ここは apt 任せと思ったら、割と古いパッケージだったため、 RDP が使えなかった。いろいろ試行錯誤の結果、 Sun 自体が debian 向けに source.list を公開していたので、 http://www.virtualbox.org/wiki/Linux_Downloads を参考に apt で 3.0.8 を導入。

$ VirtualBox

で起動する(ここで X が必要なのが惜しい)ので、マシンの設定を行った後、

$ VBoxHeadless -s マシン名

でヘッドレスで起動。その後、 CD に /usr/share/virtualbox/VBoxGuestAdditions.iso をマウントして、
# sh ./VBoxLinuxAdditions-x86.run all

で Guest Additions(VMware Tools に相当するもの)をインストールして完了。無事 RDP で
VirtualBox 上にアクセスできるようになりました。

VirtualBox.PNG

Ubuntu 9.04 をインストールして使ってみた感想としては、 NX よりは遅いけど、バグが少なく
安定しているため、十分使える感じです。また X が必要なところも起動してしまえば関係なく、
将来的にはvboxweb が使えそうなので、よさげです。

#音もローカル側にばっちり転送されてきます。 RDP7 がない時代だったら最強だったかも。

2009年10月01日

Linux で HDP2W

次期ワンセグ野郎をフルセグで構築すべく、 HDP2W を買ってみた。

as11loader はすんなりと実行でき、 recfriio はちょろっと書き換えただけで無事ワンセグ動画が抽出可能に。といっても、ここに至るまでにいろいろと試行錯誤があったが、わかってしまえば簡単だった。

あとは、4チャンネル同時録画を確認して、 OneSeg24ForLinux に食わせてやればいいだけだけれども、まだ時間がとれない。

ここまでやって、 b25 を使わないのであれば、対策版でもよかったのかと思ってしまうが、確認する金銭的余裕はないので、このまま続けていくことにした。

2009年06月14日

lenny で VMware Server 2.0(その2)

久々にクリーンインストールした lenny に VMware Server 入れようとしたら、 killall がないと怒られた。

# aptitude install psmisc

で入るらしい。

標準で入ってた killall5 を実行すると、 sshd が死んでえらい目にあった。

2009年05月15日

lenny で USBServer

ネットワーク上で USB を共有するソフトウェアを試してみた。

有名どころでは Windows で USB over Network, USB to Ethernet などがあるが、フリーで使えるものということで、 Linux 側に USB Server(http://www.incentivespro.com/usb-server.html) 、Windows 側に USB Redirector(http://www.incentivespro.com/usb-redirector.html) を使用した。

Linux 側のインストール方法は、 kernel を一旦構築した後、

$ tar zxvf usb-server.tar.gz
$ cd usb-server

# installer.sh install


で終わり。 Windows 側のソフトもフリー版を選べば、つまずくことなく起動し、無事 Linux 側の USB 機器が使えるようになった。

2009年05月03日

リモートデスクトップで動画再生(Windows7RC 評価)

一般公開前に Windows7 RC版を手に入れたので、早速 VAIO type P にインストールしてみた。

インストールする際に、リカバリ領域を消さずにクリーンインストールすることが、 HDD のフォーマットから次の段階へ進まず、断念することに。でも、 Skype をアンインストールすれば、アップグレードインストールは普通に可能。

十数回再起動した後、無事 Windows7 機へ。軽くなったかどうかはよく分からないが、一通り触った後、ふと Windows7 の新機能であるリモートデスクトップでの動画再生を試してみることに。

で、これをまっとうに行うには、新機能対応リモートデスクトップサーバ(つまり Windows7 Premium(?)以上)と対応リモートデスクトップクライアント(つまり、現在は Windows7)が必要なのだが、そこまでマシンリソースが余ってるわけないので、考えなしに Vista から Windows7 につなぎに行くことに。

比較対象は XP から XP へつないだ場合。でまず、ログオン方法が違っていて、パスワード要求ダイアログが出てくるのだが、これは Vista からの機能なので、驚いたことが自分の時代遅れを感じさせた。

で、肝心の動画再生には、 Youtube のなぜか「ハレ晴レユカイ」。まぁ、対応クライアントを使ってないし、 Flash は無理だろうと思ってたのだが、コマ落ちしながらも一応見れる。これが XP 同士だと、コマ落ちは同じなのだが、映像と音声が 1,2 秒ずれて再生されるのだが、 Windows7 はそれを見越して音声もずらして送信してくれてるらしい。

もちろん、 Windows7 がリリースされた際には、 XP 用のリモートデスクトップクライアントも動画再生に対応した版にバージョンアップされ、コマ落ちなど関係なく見れるようになると思われるが、この実験結果から対応フォーマットでなくても改善があるということが分かった。

あと、試しに今流行の「ザ・クイズショウ」を MP4 化したものも見てみたが、やはり音ずれしない。いろいろと小技を利かせてるようだ。

lenny で24時間ワンセグ野郎(その5)

再生画面にある「TSファイルをダウンロード」。 Windows では動くが、 linux ではちょっとした変更が必要、といっても気づけば簡単に動く。

まず、 download.pl の先頭 perl へのパスを修正。

次に segwrapper.pm を開いて中を以下のように編集。

=====
#my $TSFOLDER = "D:\\TS";^M
my $TSFOLDER = "/home/tam/ts";^M
^M
sub DateTimeToFullPath {^M
        my $Base = shift;^M
        my $Ch   = shift;^M
        my $tm   = shift;^M
        my($y,$m,$d,$h,$n,$s,$str,$datstr);^M
        ($s,$n,$h,$d,$m,$y) = localtime($tm);^M
        $str = sprintf("%02d%02d%02d%02d",$y % 100,$m+1,$d,$h);^M
        $datstr = sprintf("%02d%02d%02d",$y % 100,$m+1,$d);^M
        #return ($Base."\\".$datstr."\\".$str."_Ch".($Ch+0));^M
        return ($Base."/".$datstr."/".$str."_Ch".($Ch+0));^M
}^M
=====

つまり、 TS ファイルへのパスを設定して、パスを UNIX 風に '/' に置き換えてやるだけ。

これで TS ファイルを保存できるので、対応プレーヤーがあれば、後から字幕放送とかも見れちゃう。

lenny で無線LAN

手元に Intel Mac mini も、 WN-G54CBL もあるし、どちらも lenny で madwifi なのでやってみよう、という軽い気持ちで。
 

/etc/apt/sources.list を編集し、 contrib と non-free を追加する。そして、

# apt-get update
# apt-get install linux-image-2.6-686
# apt-get install madwifi-source madwifi-tools madwifi-doc
# apt-get install wireless-tools
# m-a prepare
# m-a a-i madwifi
# modprobe ath_pci

とすると、 ath0 にてデバイスが見えるようになるので、 /etc/network/interfaces を以下のように編集する。

auto ath0
iface ath0 inet static
#wpa-driver madwifi
wpa-driver wext
wpa-scan-ssid 1
wpa-ap-scan 2
wpa-ssid "ESSID"
wpa-key-mgmt WPA-PSK
wpa-proto WPA
wpa-pairwise CCMP
wpa-group CCMP
wpa-psk "AESpasswd"
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.1

WPA は madwifi を指定しても、 wext を使用すると言われるが、普通に動く。

ただ、しばらく通信していると途切れてしまうので、まだあんまり実用的じゃないかも。

FirefoxPortable で Flash

FirefoxPortable で持ち出し可能な Flash 再生環境の構築法。

C:\WINDOWS\system32\Macromed\Flash\ にある flashplayer.xpt, NPSWF32.dll を FirefoxPortable のインストール先の Data\plugins\ にコピーするだけ。

これで、 FirefoxPortable を持ち出した先に Flash がなくても再生できるようになる。

お外で 24時間ワンセグ野郎を見るときなどに便利〜。

FON で FreeWLAN

FreeWLAN で飛んでくる方がいるので、作り方をおさらい。

  1. 初期化ボタンを 15〜20 秒くらい押して初期化。
  2. ケーブルで接続して 169.254.255.1 か、 MyPlace に接続してアクセス。
  3. DNS に 88.198.165.155 を設定。
  4. Public SSID を FON_ADDON に変更。
  5. ケーブルを LAN につないで再起動。
ちなみに、 WAN ポートを bridge した場合には Private Wifi と bridge されるので注意。 WAN との bridge には、現バージョンでは SSH などでログインして設定する必要がある。

2009年04月29日

lenny で24時間ワンセグ野郎(その4)

今回は EPG 番組データを地方に合わせる方法。と言ってもいじるのは define.pl だけ。

define.pl を開き、以下の行を編集。

# IEPG用の設定、必要な物は、適当に追加すること。
# チャンネル: 放送局名(カンマ区切で複数指定可)
@iepg_chan = (
"24:NHK総合,NHK総合,NHK,NHK",
"13:NHK教育,NHK教育",
"15:日本テレビ",
"21:TBSテレビ,TBSテレビ,TBS,TBS",
"27:フジテレビ",
"17:テレビ朝日",
"18:テレビ東京"
"20:MXテレビ,MXテレビ"
);

チャンネルはすぐに分かると思うが、放送局名は一字一句間違えてもいけない。放送局名の調べ方は、 http://tv.nikkansports.com/ で自分の住んでいるところのページを開き、各番組内の EPG データをクリックして .php ファイルをローカルに保存。中を見ると、

-----
Content-type: application/x-tv-program-info; charset=shift_jis
version: 1
station: NHK
year: 2009
month: 04
date: 29
start: 08:35
end: 11:39
以下略
-----

となっている。この station: にある放送局名を使えばよい。私の環境では以下のようになった。

# IEPG用の設定、必要な物は、適当に追加すること。
# チャンネル: 放送局名(カンマ区切で複数指定可)
@iepg_chan = (
"24:NHK総合,NHK総合,NHK,NHK",
"13:NHK教育,NHK教育",
"15:日本テレビ,RNC,西日本放送",
"21:TBSテレビ,TBSテレビ,TBS,TBS,KSB,山陽放送",
"27:フジテレビ,OHK,岡山放送",
"17:テレビ朝日,RSK,瀬戸内海放送",
"18:テレビ東京,TSCテレビせとうち"
#"20:MXテレビ,MXテレビ"
);

こんだけ。ここまでくれば、かなり快適に24時間ワンセグ野郎が使えるようになってるはず。お試しあれ。

lenny で24時間ワンセグ野郎(その3)

今日はいよいよ再生部分について構築を行おうと思う。

http://www.telnet.jp/~mia/sb/sb.cgi?cid=5 から player.pl差し替え版をとってくる。

各 perl ファイルの先頭の1行を環境に合わせて編集。たとえば、以下のようにする。

#!/perl/bin/perl^M

#!/usr/bin/perl

http://code.google.com/p/perlrtmp/downloads/list から segwrapper を拾ってきて、同じディレクトリに配置。 define.pl の $BaseDir を環境に合わせて書き直す。

また、必要な perl モジュールを以下のようにしてインストールする。

# apt-get install libtime-modules-perl
# apt-get install liblwp-useragent-determined-perl
# apt-get install libjcode-perl

以下の Win32 関係の行をコメントアウト。

use Time::Local;^M
use LWP::UserAgent;^M
#use Win32::Process;^M
#use Win32;^M
$packet_size = 4096;^M

また、親ディレクトリ上に cache ディレクトリも作ってやる。

% mkdir ../cache

このディレクトリを www 上に公開して、 CGI を実行できるようにする。そうすると、 www 上から、指定したディレクトリで東京の番組表が見えるようになる。地域によっては以下の操作で番組も閲覧できる。

http://code.google.com/p/perlrtmp/downloads/list から perlrtmp を拾ってくる。そして、
% server.pl ~/ts
(注)番組の再生がおわったら、このコマンドの終了は Ctrl+C 。

これだけ。ただ、地域ごとのチャンネルあわせを行ってやらないと別のチャンネルが見えてしまったり、まったく写らなかったりするはず。次は地域ごとの番組表の設定を行いたいと思う。

2009年04月28日

lenny で24時間ワンセグ野郎(その2)

続き。今日は録画サーバの構築について。

録画サーバは 1ch につき、ひとつの ts.pl で行う。配布されている ts.pl はワンセグデータから EPG データを引っこ抜いて番組表を構築するという優れものだけれど、私にはそこまで使いこなせないので、番組表は Web から取ってくることに。

まず、以下の行のパスを環境に合わせて変更。

my $dvbstream = '/usr/local/bin/dvbstream';

次に、 EPG データを記録しないよう、以下の行をコメントアウト。

my @programs = (
        './rec.pl',
#       './epg.pl',
);

そして、以下のようにして録画が始まれば、OK。ここでエラーが出るようなら、修正しておくべし。

./ts.pl -c 0 -f 521143 -h 21 -d ts/

で、今度は ts.pl をチャンネル分立ち上げるスクリプトを作成する。
周波数 = ch * 6000 + 395143
らしいので、 http://www.denpa-data.com/denpadata/index.htm のデジタルテレビ編を見ながら、デバイス番号、周波数、チャンネルをオプションに並べる。私の環境では以下のようになった。

#!/bin/sh

./ts.pl -c 0 -f 473143 -h 13 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 1 -f 485143 -h 15 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 2 -f 497143 -h 17 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 3 -f 503143 -h 18 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 4 -f 521143 -h 21 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 5 -f 539143 -h 24 -d /home/tam/ts/ &

sleep 3
./ts.pl -c 6 -f 557143 -h 27 -d /home/tam/ts/ &

これで起動すれば、OK。ただ、このままだと、古いデータが消えないため、いつかは HDD がパンクする。なので、以下のような cron スクリプトを組んで解決。

#!/bin/sh

find ~tam/ts/ -ctime 7 -exec rm -f {} ;

今日は簡単だけども、これまで。

2009年04月26日

lenny で24時間ワンセグ野郎(その1)

24時間わんせぐ野郎については http://mobilehackerz.jp/contents/OneSeg24 を参考にしてください。

もともと Windows 用のソフトだけど、 Linux 用のドライバも開発されてて、なんとなくできるんじゃないかな、という雰囲気の中、きちんと整理してくれる人が現れ、今に至ります。

というわけで、先人たちの知恵をまとめるだけだけど、 http://code.google.com/p/oneseg24/ からファイルをダウンロード、展開。

http://sourceforge.jp/projects/uot100/ からLinux用デバイスドライバをダウンロード、展開。

ドライバをビルドする前に、一旦カーネルのビルドを行う。
# apt-get install linux-source-2.6.26
# cd /usr/src
# tar xvfj linux-source-2.6.26.tar.bz2
# cd linux-source-2.6.26
# make oldconfig
# make

dvb-usb ディレクトリで
% patch < uot100-usbhub.patch
% patch < uot100-tuning.patch
上のディレクトリに戻って、
# cp dvb-usb/uot100.* /usr/src/linux-source-2.6.26/drivers/media/dvb/dvb-usb/
# cp frontends/mtv211.* /usr/src/linux-source-2.6.26/drivers/media/dvb/frontends/

カーネルソースの中の dvb-usb にもぐって、 uot100.c を開いて、以下のように編集。
先頭のほう
-----
#include "mt352.h"

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

static int umt_mt352_demod_init(struct dvb_frontend *fe)
-----

中ほど目
-----
        if (0 == dvb_usb_device_init(intf, &umt_properties,
                                     THIS_MODULE, NULL, adapter_nr))
                return 0;
-----

以上2点。そして、 Makefile を以下のように作成。
-----
obj-m := uot100.o

ROOTDIR := ../../../../
PWD := $(shell pwd)
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core/ -Idrivers/media/dvb/frontends/

default:
    $(MAKE) -C $(ROOTDIR) M=$(PWD) modules

clean:
    rm -f *.o *.ko
-----

# make

次に、 frontend の中にもぐって、 Makefile を以下のように作成。
-----
obj-m := mtv211.o

ROOTDIR := ../../../../
PWD := $(shell pwd)
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core/ -Idrivers/media/dvb/frontends/

default:
    $(MAKE) -C $(ROOTDIR) M=$(PWD) modules

clean:
    rm -f *.o *.ko
-----

# make


これでドライバは出来上がり。試しにロードする場合には、 /usr/src/linux-source-2.6.26/drivers/media/dvb ディレクトリで

# modprobe dvb-usb
# insmod frontends/mtv211.ko
# insmod dvb-usb/uot100.ko


次に dvbstream の作成。

http://jaist.dl.sourceforge.net/sourceforge/dvbtools/dvbstream-0.5.tar.gz からダウンロード、展開。 dvbstream-0.5 ディレクトリで

% patch < dvbstream.patch
% make


これで、ドライバ関係は完了。続きは後日。