Sirius

2007年2月3日(土) 13:37

カーネルモジュールのコンパイル

Linkstation wiki に LS-GL のソース一式があるので、カーネルモジュールのコンパイルをして、iso をマウントできるようにしてみます。
ソースは、gpl_ls-gl.zip です。
カーネルソースは、解凍したファイルの中の、linux-2.6.12_lsp.1.7.8.tgz です。

# tar xzvf linux-2.6.12_lsp.1.7.8.tgz
# cd linux-2.6.12_lsp.1.7.8
# make menuconfig
メニューから、iso ファイルシステムをモジュールでコンパイルするように設定します。ついでに、udf も有効にしました。

Makefile は、クロスコンパイル用の Makefile なのでこのファイルの中の
CROSS_COMPILE=arm-none-linux-gnueabi-
の先頭に # をつけてコメントにします。

次に環境変数に gcc のヘッダファイルのパスを設定します。
# export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/arm-gnu/buffalo-ls-gl/include:/opt/arm-gnu/buffalo-ls-gl/lib/gcc/arm-none-linux-gnueabi/3.4.4/include:/opt/arm-gnu/buffalo-ls-gl/include:/opt/arm-gnu/buffalo-ls-gl/lib/gcc/arm-none-linux-gnueabi/3.4.4/include

では、コンパイル。コンパイル時間がわかるように time コマンドを使ってみます。
# time make


real 79m15.277s
user 74m0.600s
sys 4m52.980s

約 80 分で終わりました。

# make modules_install
# mv binaries/lib/modules/2.6.12.6-arm1/kernel/fs/{isofs,udf} /lib/modules/2.6.12.6-arm1/kernel/fs/.
# depmod -a
# modprobe isofs
# lsmod
Module Size Used by
isofs 23620 0
appletalk 32372 20
psnap 3076 1 appletalk
llc 5748 1 psnap
# rmmod isofs

うん、いけそう。
マウントしてみます。
# mount -o loop test.iso /mnt/tmp
# df
 Filesystem 1k-blocks Used Available Use% Mounted on
 /dev/sda3 19532832 595524 18937308 3% /
 /dev/ram1 15360 72 15288 0% /mnt/ram
 /dev/ls_disk1_1 194443 72698 111706 39% /boot
 /dev/ls_disk1_6 57741504 6749576 50991928 12% /mnt/disk1
 /dev/sda2 493212 417064 76148 85% /mnt/rootfs
 /dev/loop0 4341354 4341354 0 100% /mnt/tmp
# ls /mnt/tmp
AUDIO_TS VIDEO_TS
# umount -d /mnt/tmp

なお、アンマウントする際に -d オプションをつけないと loop デバイスが解放されません。
ついでに USB プリンタなんかのモジュールもコンパイルしてみました。USB プリンタをつないでの確認はしていませんが、コンパイルは特にエラーもなくできました。

OK。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨