サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.keshi.org
Debian Live を用いて作成した PS3 用 Live CD Linux を公開しました。 ISO イメージはこちらで配布しています。 説明は例によって Wiki ページにまとめてあります。 配布イメージには Debian-Installer が含まれているので、 これ 1 枚で PS3 用の Debian GNU/Linux システムのテストとインストールができます。 またソースコードや 依存パッケージリポジトリを公開しており、 これを使えば独自のパッケージ構成で任意のファイルを含む オリジナル Debian Live イメージが簡単に作成できます。 Debian Live では Ubuntu Live のために開発された Casper を使用しており、 様々なブートパラメータでその動作を制御できます。 (詳しくは man casper してください)。 たとえば kboot:
PS3 Linux でテレビが見れないかと思い USB 接続のビデオキャプチャデバイスを探していたところ、 Plextor ConvertX PX-TV402U/JP という製品がチューナー制御も含めて Linux で使えるという話を聞いたので、 さっそく購入してつなげてみました。 ついでに Linux 用テレビ録画ソフトである MythTV を PS3 で動してみました。 PX-TV402U に使われている WISchip GO7007 の Video4Linux2 用ドライバは ここから入手できます。 現行バージョンの 0.9.8 ではカーネル 2.6.16 に対応しており、 PS3 Linux のカーネルでもコンパイル自体は特に問題なくできました。 udev 対応スクリプトも付属しており、 USB コネクタを挿すだけでモジュールの読み込みから ファームウェアのダウンロードまで自動でや
PLAYSTATION 3 (PS3PF) 用の Debian-Installer (powerpc) を作ってみました。 こちらからダウンロードできます。 簡単な説明は Wikiにまとめてあります。 オーバースキャンな 576x384 (72x24) のコンソールでも 破綻することなくちゃんと最後まで動きます。Newt は偉大です。 使い方について補足ですが、 kboot (20061208 版) をインストールした PS3 で、 Debian-Installer を書き込んだメディアを入れて起動すると自動的にスタートします。 あとは i386 などと同じですので、 マニュアルを参照しつつ進めてください。 partitioner 実行後、NewWorld とか PReP とかについて文句を言ってきますが (下の写真)、 PS3 では関係ないので無視して先に進んでかまいません (No を選
先週末に Binary 2.0 カンファレンス 2006 が開催されました。どの発表もたいへん興味深くおもしろかったと思います。 わたしもライトニングトークのプレゼンテーションではいい汗を流させていただきました。 発表スライドの PDF ファイルはこちらにあります。 以下は自分のプレゼンテーションの解説および反省文です。 まず発表タイトル "tty hacks for PS3 Linux" の意図したところは、 「RSX(GPU) も使えず制約の多い PS3 Linux 環境では X11 なんか使わずに Linux のあやしい tty/console ioctl を使いこなし ps3fb を直にいじっていい気分になろう」ということだったのですが、 プレゼンテーションプログラムや Wii Remote (Wii リモコン) いじりにかまけていたら 準備時間が足りなくなり、まったくそのような話
先日思わず入滅したと書いてしまった WiiLi.org ですが、 週明けにまた見にいったら復活してました。サーバの引っ越しをしてたんですね。 それで Python で書かれた Linux 用 Wii リモコンドライバ WMD にアクセスできるようになったので、これを PS3 Linux で動かしてみました。 すぐ動くかと思ったのですが実際はなかなか一筋縄ではいかず、 Python 本体モジュールからカーネルドライバまでいろいろいじる必要がありました。 要点は例によって Wiki サイト のほうにまとめておきました。 おもしろかったのは PyBluez のエンディアン問題を見つけたときですかね。 def bt_connect(addr): socket['receive'] = BluetoothSocket( L2CAP ) socket['control'] = BluetoothSoc
Randall Hyde 著 " Write Great Code: Thinking Low-level, Writing High-level" の日本語版「Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く」が本日発売されました。 昨年出版され、バイナリ界隈で好評を博した前著日本語版「Write Great Code Vol. 1 ハードウェアを知り、ソフトウェアを書く」の続編です。今回は Vol. 1 を担当した強力監訳陣の皆様と一緒に私も監訳に関わらせていただきましたので、簡単に内容を紹介させていただきます。 推薦の辞 「Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く」は、高級言語(高いレベル)で書かれ機械語(低いレベル)にコンパイルされるプログラムのパフォーマンスがテーマの本です。 GCC や Visual C
このごろは MacBook で Mac OS X を使う似非マカー (Unix 使い) の日々を送っている。 しかしながら、これまでに Debian や GNOME デスクトップ環境に過剰適応してしまった身にとって、 やはり OSX の Unix 環境は貧弱で不便に感じることが多い。 特に最重要アプリケーションである端末エミュレータソフトウェアにろくなものがないのが痛い。 Unix 環境に関しては自分で全部ビルドする (大変!!) なり fink unstable (これも微妙に古くていまいち) を使うなりして 環境構築に邁進すればよいのだろうが、そんな時間もないので、 最近は OSX を X 端末化して、 隣のサーバや Parallels 仮想マシンの Debian unstable 環境に GDM からログインして使うという、 マカーからも似非マカーからも糾弾されかねないことをしている
AMD Turion 64 を登載した HP Compaq nx6125 を有効活用すべく、 Debian sid で amd64/i386 の biarch 環境を作ってみた。 とはいっても 32bit と 64bit が混在するアグレッシブなユーザランドではなく、 基本的に カーネルは x86_64 でユーザランドは i386 とし、 amd64 ユーザランドは必要に応じて chroot で利用するというぬるい方針である。 i386 のほうをメインにしたのは Acrobat や Flash、XILINX といったところで i386 用アプリケーションが多いからだが、 Debian sarge で提供されている biarch カーネルパッケージ が どう作られているのか謎だったので調べてみたかったという理由もある。 要点は以下の通りである。 make-kpkg を使用する。オプションに
昨日は ASUS Eee PC 901-X の発売日。前から欲しいと思っていたので、金曜日に近所のヤマダ電機で予約し、発売日の午前中にゲットしました (56,800 円)。しかしながら、そのおかげで同じ日の TLUG technical meeting の準備がおろそかになってしまい、IEEE1394 ケーブルを家に置き忘れて渋谷のビックカメラで買う羽目になるなど、いろいろ散々な目にあいました。 今回の TLUG technical meeting は準備の都合でライブ中継はできませんでしたが、録画はできているので、編集したのちに公開できればと思います。お題は libpasori に DTrace と、どちらも面白い内容でした。
gdb hacks 第 6 回。前回は IA-32 で gdb がデバッグレジスタをどのように活用しているかを見ました。今回はデバッグレジスタをプロセスが自分自身で利用する方法について考えてみます。
iPod と一緒に amazon.co.jp に注文した MacBook がいまだに届かないので、 この週末は iPod 用の x86 ブートローダを書いた。 前回のエントリで iPod を PC の USB-HDD ブートデバイスにするために MBR に lilo や grub をインストールすると iTunes で使えなくなってしまうと書いたが、それを回避するためのものである。 なんだかすごそうに聞こえるかもしれないが実際はそんなに大したものではなく、 iPod Updater による復元時に MBR に書かれる x86 コードをちょっと上書きしてみただけである。 iPod の MBR は この図 のようになっており、 黄色で示した x86 コードの部分なら書き換えてもたぶん問題ない。 うまい具合に iPod の MBR の次のセクタは使われていないみたいなので、 ここに本来の実行させ
gdb hacks 第 6 回。前回は IA-32 で gdb がデバッグレジスタをどのように活用しているかを見ました。今回はデバッグレジスタをプロセスが自分自身で利用する方法について考えてみます。 IA-32 のデバッグレジスタ DR0-DR7 へのアクセスは、リアルモードまたは特権順位 0 のプロテクトモードでしか許されていません。Linux では ptrace システムコールを使ってカーネルに読み書きしてもらうことになります。 しかしながらプロセスは自分自身に対して ptrace することはできません。そこで、自分のデバッグレジスタにアクセスしたい場合は fork を使って子プロセスに ptrace をしてもらいます。 とりあえずデバッグレジスタに値を設定する関数を書いてみます (エラーチェックなどはいいかげんですので注意してください)。 #include <sys/user.h>
gdb hacks 第 5 回。プロセッサの中にはデバッグ支援機能をハードウェアで持つものがあり、例えば IA-32 アーキテクチャでは 8 本のデバッグレジスタ (DR0-DR7) というものが用意されています。gdb はこれをどのように使用しているかを見てみます。 IA-32 のデバッグ機能については Intel のマニュアル IA-32 Intel® Architecture Software Developer's Manual, Volume 3B: System Programming Guide, Part 2 の CHAPTER 18 Debugging and Performance Monitoring に完全な解説があります。 はしょって説明すると、DR0-DR3 の 4 つのレジスタで指定したリニアアドレスの示すメモリ領域にプロセッサのアクセスがあると、INT 1
gdb hacks 第 4 回。前回は gdb 電卓で使えるようになった数学関数のかっこ悪さについて不満を述べましたが、それを一部解決する方法を思いついたのでまとめておきます。 当初は sqrt といった関数シンボルに新たな型情報を設定する方法があるのではないかと思い、gdb のソースなどを調べていたのですが、どうもそんな都合のいい方法はなさそうなので、あきらめて別の方法を考えました。 gdb では convenience variable という $ で始まる任意の名前の変数を使うことができますので、それに関数シンボルのアドレスを関数ポインタ型でキャストして代入してみます。 (gdb) set $sqrt = (double (*)(double)) sqrt (gdb) set $pow = (double (*)(double, double)) pow (gdb) ptype $s
gdb hacks 第 3 回。今回は以下のトピックを扱います。 gdb を電卓の代わりに使う gdb が扱うシンボルの型情報 筆者は gdb を電卓代わりによく使っています。以下のように出力フォーマットを手軽に指定できること、C の表現式がそのまま使えること、前の計算結果を簡単に参照できることなど、他の電卓プログラムにはない魅力があります。bc や irb と比較しても gdb はよりプログラマ向きの電卓なのではないかと思います。 % gdb (gdb) p 123+456+789 $1 = 1368 (gdb) p 123+0456+0x789 $2 = 2354 (gdb) p/o $2 $3 = 04462 (gdb) p/x $3 $4 = 0x932 (gdb) p/t $4 $5 = 100100110010 (gdb) p/x 'a' $6 = 0x61 (gdb) p/c
gdb hacks 第 2 回。今回は以下のトピックを扱います。 gdb が関数の呼び出しでターゲットプロセス中に作成するデータ構造 gdb とターゲットプロセスとの通信を観察する方法 サンプルデバッグセッションのログを gdb_target_debug.txt に用意していますので参照してください。実験環境は例によって i386 の Debian GNU/Linux (sid) です。 gdb とターゲットプロセスとのやりとりは、以下のように 3 つほどデバッグスイッチを有効にすると観察することができます (infrun デバッグスイッチは gdb 6.4 以降から使えます)。 119 (gdb) set debug target 1 120 (gdb) set debug infrun 1 121 (gdb) set debug lin-lwp 1 122 (gdb) p chdir(
gdb は ptrace(2) システムコールの便利なフロントエンドインタフェースとして使えます。特にターゲットプロセス内の関数を式の中で呼ぶことができる機能は強力で、ptrace の attach 機能と組み合わせて使えば、動作中のプロセスに対してちょっかいを出すことが簡単にできます。 単純な活用例をいくつか紹介します。以下は i386 の Debian GNU/Linux (sid) のシステムで実験しました。gdb は 6.4 より前のバージョンではうまく動かない例があります。 % ps x | grep firefox 3616 ? Rl 19:40 /usr/lib/firefox/firefox-bin -a firefox % gdb -q -p 3616 (gdb) p chdir("/") [Switching to Thread -1221168480 (LWP 361
自分の発表は、 ソフトウェアプログラマ向けにハードウェアプログラミングの世界を紹介といった内容で、 HDL によるハードウェア設計のつくりかた、おすすめ基板キット製品の紹介、 Spartan-3 Plasma Kit の紹介など。 プレゼンテーションは Spartan-3 Plasma Kit の VGA 出力で行った。 スライドは OpenOffice.org Impress で作成し、PDF 出力後 Ghostscript で GIF に変換、 それをさらに ELF object に変換して、 1 ページごとにGDB を使い RS-232C 経由で基板にダウンロードして表示した (たぶん世界初の GDB プレゼンである)。 発表は例によって時間配分がなってなかったが、 プレゼン装置がトラブルなく最後まで動いてくれたのでまあまあ成功の出来としたい。 またプレゼン装置が 640x480x8
このページを最初にブックマークしてみませんか?
『www.keshi.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く