Edit History:Diff
Changes of debian-amd64 since 2007/05/31 07:02:46 JST
- + added lines
- - deleted lines
Return to the edit history
+ (すごく古い文書。obsolete)
+
* Debian AMD64(x86_64)情報
64ビットの世界を知れ。
** インストール前の覚悟
- めんどくさいことをやりたくないなら、x86(i386)互換でそのまま動かしたほうがいい。普通にdebian-installerでインストールすれば利用できる。
- ネイティブ64ビット(pure64)にするメリット
-- 64ビット空間でメモリを扱える。大きいメモリを使える、効率がよい
-- 計算が速いかも?
-- 今後のトレンドをお先に体験
-- めくるめくハックの世界。64ビットならではの問題を修正だ(ってあまりないんだけどね)
- ネイティブ64ビットにするデメリット
-- 32ビット依存なアプリ、カーネル、ドライバが動作しなくなる。
-- アプリはchroot環境を使うことで対処可能だが、特にカーネルドライバは鬼門になる可能性あり。無線LANドライバとか使いたいならpure64はやめたほうがいい
-- ハマったときに、ぐぐっても日本語の情報はあまりない。英語アレルギーの人はやめたほうがいい
** インストール
# http://debian-amd64.alioth.debian.org/debian-installer/current からインストールイメージをダウンロードする。
-- cdrom: CDインストールイメージ。といっても、CD ISOがあるわけじゃなく、要素となるファイルがいくつか置いてあるだけ。こいつらを取ってきてmkisofs(あるいはラッパーGUIツール)でISO作って焼く、ということになる。
-- hd-media: USB用イメージ。boot.img.gzを伸張して、ddかrawrite2で書き込めばいい。
-- monolithic: インストーラローダブルコンポーネントがぜんぶ入ってるもの。あぁ、ここにisoファイルあるやね。cdromの代わりにこれ使うといいのかも。
-- netboot: PXEboot用イメージ。netboot.tar.gzがあればいい。これをTFTP Debianサーバの/var/lib/tftpbootの中で展開する。
# pure64を使おうという人なら、すでに別のx86マシンを持っているだろう。netbootでセットアップするのが一番簡単。ここではTFTPサーバーとDHCPサーバーをそのx86マシンにセットアップする。ここではx86マシンをdonkey、AMD64マシンをamd64と呼ぶことにしよう)。donkeyでapt-get install dhcp3-server tftpd-hpa。tftpd-hpaのdebconf質問では、inetdから呼ぶようにする。
# donkeyの/var/lib/tftpbootの中にnetboot.tar.gzを展開する。特にいじることはない(USBキーボードの場合はpxelinux.cfg/defaultのtimeout値を10とかにしたほうがいいかも?)。
# donkeyの/etc/dhcp3/dhcpd.confを適当に設定する。で、インストールしたいマシンだけこんな感じでPXEbootするように。ho:ge:ho:ge:ho:geとかはamd64マシンのMACアドレスなので、amd64のBIOSかknoppixなどで調べておこう。
{{{
host amd64 {
hardware ethernet ho:ge:ho:ge:ho:ge;
fixed-address 192.168.1.250;
filename "/pxelinux.0";
}
}}}
# donkeyで/etc/init.d/dhcp3-server startを実行(その前に編集が必要だっけ?)。これで準備完了。
# ネットワークにつないで、amd64を起動。PXEbootするようにBIOSメニューか途中でキーを押して、PXEbootさせる。
# うまくいけば、Debianぐるぐるのロゴが出てくる。だめな場合には、donkeyのログをチェック。ちなみにin.tftpdがTCP wrappersで蹴られてたというのを体験した(笑)
# あとは普通のdebian-installerと変わらない、のだが
# ミラーの選択ではどれを選んでも「i386」のミラーばかりで、「amd64」アーキテクチャを持つミラーはない。エラーになるはず。
# 「手動で選択」を選び、https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html にあるミラーを選択。たとえばホスト名にdebian-amd64.alioth.debian.org、ディレクトリ名に/pure64(aliothは遅いが、なんかbach.hpc2n.umu.seだとsargeディレクトリがなくてエラーになったので…)。
# ダウンロードが遅い以外はこのstageで問題が発生することはないはず。
# GeForceの場合、2nd stageでフレームバッファを取り込めなくて英語になる。まぁ大した問題ではない。
# ミラーでまた同様に問題が発生するので設定。
# 手元ではパッケージのダウンロードでこけてそのままexim4の設定→base-configのプロセスの終了になってしまったため、apt-getでいろいろ突っ込むことになった…
{{{
# arch
x86_64
# uname -a
Linux amd64 2.6.9-9-amd64-k8 #1 Wed Nov 10 19:02:19 CET 2004 x86_64 GNU/Linux
# ls /lib/ld-linux*
/lib/ld-2.3.2.so /lib/ld-linux-x86-64.so.2
}}}
うひょひょ。
** Xの設定
NVidia GeForce FX 5200は、Xのnvドライバだと動かなかった。nvidia-kernel-sourceは32ビット用なのでビルドエラーになる。
# http://www.nvidia.com/object/linux_display_amd64_1.0-6629.html (URLは変わるかも)からNVIDIA-Linux-x86_64-1.0-6629-pkg2.runをダウンロード。
# apt-get install build-essential gcc-3.4 kernel-headers-2.6.9-9-amd64-k8 で必要なファイルを準備しておく(kernel-headersはsmpだったりp4系だったりすると変わる。uname -aやdpkg -lで現在どのカーネルを使っているか調べておこう)。
# export CC=gcc-3.4を実行して、Cコンパイラを標準のgcc-3.3からgcc-3.4に変更しておく。
# sh NVIDIA-Linux-x86_64-1.0-6629-pkg2.run でインストーラを実行。
# LICENSE AGREEMENTを済ませたら、自力ビルドするを選んで、先に進む。この段階でエラーが出たらメッセージをよく読んで対処して再度sh NVIDIA...をしよう。
# GLXもげとか出てきた気がする。これもYesに。
# うまくできるとnvidia.oモジュールがインストールされる。nvidia-kernel-commonパッケージをインストールして、今後これを使うようにしておこう。
# nvidia-kernel-commonの効果は再起動しないとだめなので、とりあえずここではmodprobe nvidia で手動で入れてしまう。エラーが出なければOK。
# /etc/X11/XF86Config-4を編集。ビデオドライバ(DeviceセクションのDriver)を"nvidia"に変更。UseFBDevは"false"にしたほうがよいかも。
# startxで確認。NVidiaロゴのあとにちゃんと起動できれば作業終了。だめなときにはコンソールログや/var/log/XFree86.0.logを見れ。
** chroot
だいたいのものはDebian AMD64チームによってがんがんポーティングされているので、apt-get installするだけで使える。
ただ、
- OpenOffice.org
- mplayer(のコーデック)
- flashplugin-nonfree
とかは32ビットじゃないと動かなかったりするので(OOoはビルド問題か)、32ビット環境を作ってそこから呼ぶようにする。
# chrootを作りたい場所を決める(ここでは/var/chroot/ia32とする)。mkdir -p /var/chroot/ia32 でディレクトリ作成。
# debootstrap --arch i386 sid /var/chroot/ia32 を実行し、sidのchroot環境を作る。ここでなんか変なパッケージエラーが出たら、それは現在のsidがぶっ壊れているという地雷だ。「sarge」に変えるとうまくいくかもしれない。
# 作ったchrootに入るには、「# chroot /var/chroot/ia32」で入れる(Zシェルなどまだインストールしてないシェルを現在使っている場合には、3つめの引数として/bin/shとしておく)。
# chrootの中で/etc/apt/sources.listを編集したり(普通のi386のapt-lineを使う)、/etc/passwd、/etc/groupを適当にいじったり、apt-getでパッケージをインストールしたり。
# exitで抜けて、残りの作業をする。まずは、ldのsymlinkを作る。
{{{
# cd /lib; ln -s /var/chroot/ia32/lib/ld-2.3.2.so ld-linux.so.2
}}}
# 次に、chroot環境のほうに、親環境と同じ/home、/tmp、procを共有するようにしておく。/etc/fstabにこんなかんじで。書き終わったらmount /var/chroot/ia32/home、…で3つともマウントしておく。
{{{
/home /var/chroot/ia32/home none bind 0 0
/tmp /var/chroot/ia32/tmp none bind 0 0
proc /var/chroot/ia32/proc proc defaults 0 0
}}}
# /etc/ld.so.confを編集。ここでchrootの中のディレクトリをライブラリ検索対象にしてやるわけだ。
{{{
/usr/X11R6/lib
/var/chroot/ia32/lib
/var/chroot/ia32/usr/lib
/var/chroot/ia32/usr/X11R6/lib
/var/chroot/ia32/usr/local/lib
}}}
こんな感じ。
# ldconfigで更新。ldconfig -pで確認できる。
# apt-get install dchrootを実行。これは一般ユーザ権限でchrootを使えるようにするもの。/etc/dchroot.confを編集。こんな感じで追加。
{{{
ia32 /var/chroot/ia32
}}}
# これで、dchroot -c ia32 のようにして一般ユーザがchroot環境に入れる。dchroot -c ia32 <コマンド> みたいな使い方も。
# chrootの中から環境変数DISPLAYをexport DISPLAY=:0のように設定するか、dchroot -c ia32 -dのようにすれば(こちらはDISPLAYを勝手に設定してくれる)、ローカルディスプレイにウィンドウ表示するようになる、はず。
# けれど、現状ではXアプリを起動しようとすると権限エラーが出ることがある。親のXが-no-listen tcpで動いているとだめ?kdmでは/etc/kde3/kdm/Xserversを編集して/etc/init.d/kdm restart。
# たとえばFlashを使えるMozillaを起動したいなら、chrootの中にmozilla、flashplugin-nonfreeを入れておき、親から「dchroot -c ia32 -d mozilla」で起動できる。
** VMware
これが使えないと仕事にならないのだが、結構難儀した。
# VMwareのアーカイブと、ライセンスキーファイルを用意。
# http://ftp.cvut.cz/vmware/ からAMD64対応してあるvmware-any-any-update84.tar.gzをダウンロード。
# apt-get install g++-3.4 build-essential gcc-3.4 kernel-headers-2.6.9-9-amd64-k8をしておく。
# gcc-3.4じゃないとビルドできないが、環境変数CCを変えるのでは許してくれないので、
{{{
# cd /usr/bin; ln -sf gcc-3.4 gcc
}}}
# VMwareアーカイブの展開後、vmware-distribでインストール。モジュールでこけるが気にしない。
# vmware-any-update84アーカイブの展開後、その中のrunme.plを実行。上記の作業をしておけばうまくいく、はず?
# とりあえず無事にvmwareデーモンが起動したら一安心。
# この段階でvmwareを起動すると、たいへんな量のpixbufモゲが見つからねーエラーとともに死ぬ(それ以前にXライブラリが見つからなくて死ぬかもしれないが)。どうもpixbufライブラリが32ビットで、ライブラリパスに見つからなくて死亡ということらしい。
# chrootのほうに必要なライブラリをインストール。libxtst6とlibgdk-pixbuf2かな?
# libgdk-pixbuf2のライブラリを見つけられるよう、次のパスを親の/etc/ld.so.confに追加、ldconfig。
{{{
/var/chroot/ia32/usr/lib/gdk-pixbuf/loaders
}}}
# で、どうですかね。なんか最初のサスペンドで死んだ以外は普通に使えてるみたい。
- [http://namazu.org/~tsuchiya/ tsuchiya] Vmware Player 2.0だとamd64対応のバイナリがあり、それを使うとchrootせずに実行できます.ただ、最初に試したときには、以下のようなエラーメッセージで怒られました.ia32-libsパッケージをインストールしておく必要があるようです.
{{{
/usr/local/bin/vmware-vmx: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
}}}
** Cool'n Quiet
入れておくとBIOSが勝手にファンを適切に回したりクロック落としたりしてくれる優れ者。Windowsではソフトを入れるだけだが…
LinuxではACPI + powernow-k8モジュールでいけるらしい。
- K8T800ではモジュール登録エラー…。
** どうでもいい小技
- chroot環境でホーム共有だと今chrootなのかそうでないのかわからん。ということで、/etc/chrootというファイルをchroot環境では置くようにして、この中に適当な名前(たとえばia32)を入れてみた。で、Zシェルの~/.zshrcで
{{{
prompt='%m{%n}%# '
[ -f /etc/chroot ] && prompt="%m-`cat /etc/chroot`{%n}%# "
}}}
** 参考
*** サイトリンク
- http://www.debian.org/ports/amd64/ (「AMD64 上の Debian」。下の各リンクへのポータル)
- https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html (FAQ。まずはこれを読め)
- http://lists.debian.org/debian-amd64/ (Debian.org上のAMD64に関するML)
- http://debian-amd64.alioth.debian.org/debian-installer/ (Debian Installer for AMD64)
- http://ftp.cvut.cz/vmware/ (AMD64に対応しているVMWareモジュール)
*** kmutoの使っているマシン
- AMD Athlon(tm) 64 Processor 3000+ 2GHz
- MSI K8T800
- DDR 512M x 2
- RTL8169 Giga NIC (r8169モジュール)
- GeForce FX 5200 (nvidiaモジュール)
- PATA HDD (ide-diskモジュール)
- IEEE1394 (ieee1394モジュール)
{{{
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01)
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800 South]
0000:00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
0000:00:0e.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
0000:00:0f.0 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [K8T800 South]
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:01:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1)
}}}
- sensorsで見ると、temp1、2ともにだいたい50度くらい。ちと熱い。
- Cool'n Quietできるはずなんだけど(Windows用の説明がある)、powernow-k8は
{{{
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09b)
powernow-k8: BIOS error - no PSB
}}}
でだめ(2.6.9-9-amd64-k8)。ASUSマザーだと動いてるという話があるんだけどねぇ。
- VIAオーディオはsnd_via82xxで認識されてるけど、USB audioをつなげてるのでVIAのほうは使ってない。
- sensorsはi2c-viapro、i2c-isa、eeprom、w83627hfのモジュールの登録にて動作(sensors-detectでわかる)。
- sataはsata_viaモジュールで利用可能らしい。