SquashFS filesystem のサポート

LS-VL

SquashFS filesystem が必要になったのだが、 私のところには Linux マシンが LinkStation しかないので、 LS-VL で SquashFS filesystem が使えないか見てみた。

カーネルのバージョン

SquashFS filesystem がサポートされたのは 2.6.29 からとのこと。
LS-VLでコンパイルできるカーネルは、2.6.31.8 。

いける!

でも、、、

yasunari@vl:~$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   tmpfs
nodev   inotifyfs
nodev   devpts
        ext3
        ext2
nodev   ramfs
nodev   nfs
nodev   nfs4
nodev   nfsd
nodev   jffs2
nodev   autofs
nodev   fuse
        fuseblk
nodev   fusectl
        xfs
nodev   rpc_pipefs
nodev   ubifs
nodev   usbfs
yasunari@vl:~$
もちろん今のカーネルには含まれていない。

カーネルのコンフィギュレーション

しかたがないので、カーネルを作る
yasunari@vl:~$ cd /usr/src/linux-2.6.31.8
yasunari@vl:/usr/src/linux-2.6.31.8$ make menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
	:
File systems --->
Miscellaneous filesystems --->
SquashFS 4.0 - Squashed file system support
を組み込む。
yasunari@vl:/usr/src/linux-2.6.31.8$ diff -c .config.old .config
*** .config.old Sat Mar 17 19:14:42 2012
--- .config     Sun Feb 17 23:37:18 2013
***************
*** 1,7 ****
  #
  # Automatically generated make config: don't edit
  # Linux kernel version: 2.6.31.8
! # Sat Mar 17 19:14:42 2012
  #
  CONFIG_ARM=y
  CONFIG_SYS_SUPPORTS_APM_EMULATION=y
--- 1,7 ----
  #
  # Automatically generated make config: don't edit
  # Linux kernel version: 2.6.31.8
! # Sun Feb 17 23:37:18 2013
  #
  CONFIG_ARM=y
  CONFIG_SYS_SUPPORTS_APM_EMULATION=y
***************
*** 1503,1509 ****
  CONFIG_UBIFS_FS_ZLIB=y
  # CONFIG_UBIFS_FS_DEBUG is not set
  # CONFIG_CRAMFS is not set
! # CONFIG_SQUASHFS is not set
  # CONFIG_VXFS_FS is not set
  # CONFIG_MINIX_FS is not set
  # CONFIG_OMFS_FS is not set
--- 1503,1511 ----
  CONFIG_UBIFS_FS_ZLIB=y
  # CONFIG_UBIFS_FS_DEBUG is not set
  # CONFIG_CRAMFS is not set
! CONFIG_SQUASHFS=y
! # CONFIG_SQUASHFS_EMBEDDED is not set
! CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
  # CONFIG_VXFS_FS is not set
  # CONFIG_MINIX_FS is not set
  # CONFIG_OMFS_FS is not set
yasunari@vl:/usr/src/linux-2.6.31.8$
CONFIG_SQUASHFS_EMBEDDED も組み込んだほうがいいのだろうか???

カーネルコンパイル

yasunari@vl:/usr/src/linux-2.6.31.8$ make -j2 uImage
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf -s arch/arm/Kconfig
  CHK     include/linux/version.h
  SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
	:
	:
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-2.6.31.8
Created:      Sun Feb 17 23:41:41 2013
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2791264 Bytes = 2725.84 kB = 2.66 MB
Load Address: 0x00008000
Entry Point:  0x00008000
  Image arch/arm/boot/uImage is ready
yasunari@vl:/usr/src/linux-2.6.31.8$
続いて、モジュールのコンパイル。
まぁ、モジュールは変更していないんだけど、念のため。
yasunari@vl:/usr/src/linux-2.6.31.8$ make modules
  CHK     include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CALL    scripts/checksyscalls.sh
:1351:2: warning: #warning syscall migrate_pages not implemented
:1407:2: warning: #warning syscall pselect6 not implemented
:1411:2: warning: #warning syscall ppoll not implemented
:1451:2: warning: #warning syscall epoll_pwait not implemented
  Building modules, stage 2.
  MODPOST 108 modules
yasunari@vl:/usr/src/linux-2.6.31.8$
案の定、すぐ終わった。

インストール

まずはモジュール
yasunari@vl:/usr/src/linux-2.6.31.8$ sudo make modules_install
[sudo] password for yasunari:
  INSTALL crypto/authenc.ko
  INSTALL crypto/ecb.ko
  INSTALL crypto/pcbc.ko
  INSTALL drivers/char/hw_random/rng-core.ko
	:
	:
  INSTALL net/xfrm/xfrm_ipcomp.ko
  INSTALL net/xfrm/xfrm_user.ko
  DEPMOD  2.6.31.8
yasunari@vl:/usr/src/linux-2.6.31.8$
つづいて、uImage。一応バックアップはとっておく

yasunari@vl:/usr/src/linux-2.6.31.8$ ls -l /boot/
total 15796
-rwxrwxrwx 1 root root 10648542 Mar  9  2012 initrd.buffalo
drwx------ 2 root root    16384 Mar  9  2012 lost+found
-rw-r--r-- 1 root root  2754204 Mar 11  2012 uImage.buffalo
-rw-r--r-- 1 root root  2724508 Jun  1  2011 uImage.buffalo.orig
yasunari@vl:/usr/src/linux-2.6.31.8$ sudo mv /boot/uImage.buffalo{,.120311}
yasunari@vl:/usr/src/linux-2.6.31.8$ sudo cp arch/arm/boot/uImage /boot/uImage.buffalo
yasunari@vl:/usr/src/linux-2.6.31.8$

リブート

yasunari@vl:/usr/src/linux-2.6.31.8$ sudo reboot

ログイン


Linux 2.6.31.8 (shinjuw.yamasita.jp) (pts/0)

vl login: yasunari
Password:
Last login: Sat Jan  1 00:03:01 JST 2000 from shinjuw.yamasita.jp on pts/0
Linux vl 2.6.31.8 #11 Sun Feb 17 23:41:21 JST 2013 armv5tel

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
yasunari@vl:~$ uname -a
Linux vl 2.6.31.8 #11 Sun Feb 17 23:41:21 JST 2013 armv5tel GNU/Linux
yasunari@vl:~$
ちゃんと起動してきた。
yasunari@vl:~$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   tmpfs
nodev   inotifyfs
nodev   devpts
        ext3
        ext2
        squashfs
nodev   ramfs
nodev   nfs
nodev   nfs4
nodev   nfsd
nodev   jffs2
nodev   autofs
nodev   fuse
        fuseblk
nodev   fusectl
        xfs
nodev   rpc_pipefs
nodev   ubifs
nodev   usbfs
yasunari@vl:~$
squashfs が増えている。

よーし!。
続きは、 MeoBankSDをハックしよう!



LS-VL

楽天市場
Amazon
livedoor デパート
バッファローダイレクト
Yahoo!ショッピング


標準ファーム 1.64 はインストールしないほうが良いみたい
ハックの記録
LinkStation/玄箱 をハックしよう

ファームウェア 1.64 のインストール

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

Copyright (C) 2003-2013 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市