DAQ/DAQPCの準備/OS Image の作成
概要
VMIVME用のOSのイメージを作成し、それらPXEブートに必要なファイルをtftpサーバーに配置する。
他のDAQPCがあれば、基本的にはすべてそこからコピーしてくるのが楽です。
手順
- 32bit 用の linux の kernel source をとってくる。(今回は別のDAQPCから/lib/modules/2.6.18をコピーしました。)
- クロスコンパイル(64bitマシンでvmivme用の32bit OS imageを作成する)に必要なライブラリを入れる。yum install ...
- libgcc.i686
- glibc-devel.i686
- ncurses-devel.i686
- ncurses-libs.i686
- 2.6.18/build内のMakefileを開き、CFLAGSに-m32を追加する。
- make menuconfig
- 操作画面が出る。
- Device Drivers → Network device support → Ethernet(1000Mbit) → Intel®Pro/1000Gigabit Ethernet Supportに<*> (選択してY)
- exit (x4回)
- make
- /var/tftpboot/linux-install/というフォルダを作る。
- その中にVMIVME26というフォルダを作り、/lib/modules/2.6.18/build/arch/i386/boot/bzImage をコピー。
- PXE用のブートローダpxelinux.0を/var/tftpboot/linux-install/にコピーしてくる。今回は例のごとく他のDAQPCからコピーしました。
pxelinux.0はsyslinuxに含まれているので、正しいバージョンのものをインストールすればそれをコピーしてもよいはず。 - initrd.img(Linux起動時にブートローダによってロードされる、最小限のルートファイルシステム)をコピーしてくる。これまた他のDAQPCからコピーしました。
initrd.imgはmkinitrdコマンドで作成することもできます。これはgzipとcpioで2重に圧縮されているので、順番に解凍して中身をいじることができます。 でも自分で作るのは面倒そうなのでinitを変えたいとかでなければコピー推奨です。詳細はggってください。 - /var/tftpboot/linux-install/pxelinux.cfgというフォルダを作る。
- その中にvmivmeのIPを16進数にした名前のファイルを作成(192.168.1.10ならC0A8010A)し、以下のように記述する。パスはpxelinux.0からの相対で。
default VMIVME
label VMIVME
kernel VMIVME26/bzImage
append initrd=VMIVME26/initrd.img.vmivme26 (←initrdの場所)
root=/dev/ram0
init=/init
NFSROOT=192.168.1.1:/usr/babirl/bin
ramdisk_size=20480
ETHERNET=eth1 (←vmivmeの1Gポート)
SNAPSHOT=shvmif3 (←コントローラーの名前)