ローリングコンバットピッチなう!

AIとか仮想化とかペーパークラフトとか

OpenWrtメモ: USBメモリを使える様にする

昨日BHR-4GRVにOpenWrt化、本日はこのBHR-4GRVを別のメインルーターの下にぶら下げてネットアクセス可能にしました。
最初から2台のルータのPrivate subnetがダブってなかったのでBHR-4GRVのWAN側を別のルータのLANの下にぶら下げるだけの簡単なお仕事。

で、以下のサイトあたりを参考に必要なパッケージをBHR-4GRVにインストールしていきます。
https://wiki.openwrt.org/doc/howto/usb.storage
http://y-log.net/archives/2010/05/07/0206
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?OpenWrt%2FUSBStorage

ちなみにOpenWrtではopkg(ipkgの派生らしい)というコマンドでパッケージのダウンロードとインストールをやっていきます。ざっくりとはrpmやapt-getと同じ感じですね。

https://wiki.openwrt.org/doc/techref/opkg

最低限必要なパッケージがよくわからないのだけど、
参考ページ見ながら、

  • kmod-usb-core
  • kmod-usb-uhci
  • kmod-usb2
  • kmod-usb-storage
  • kmod-fs-vfat
  • kmod-nls-cp437
  • kmod-nls-iso8859-1
  • kmod-nls-utf8

あとはusbutilsあたりを入れることに。opkg list-installed
で見るとkmod-usb-coreとkmod-usb2は入っているっぽいので、 残りをopkgコマンドで入れていきます。

root@Toy_OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_base.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/luci/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_luci.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/luci/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_packages.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/routing/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_routing.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/routing/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/telephony/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/telephony/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/management/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_management.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/management/Packages.sig.
Signature check passed.
root@Toy_OpenWrt:~# opkg install kmod-usb-uhci kmod-usb2
Installing kmod-usb-uhci (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-usb-uhci_3.18.20-1_ar71xx.ipk.
Package kmod-usb2 (3.18.20-1) installed in root is up to date.
Configuring kmod-usb-uhci.
root@Toy_OpenWrt:~# opkg install kmod-usb-storage kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8
Installing kmod-usb-storage (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-usb-storage_3.18.20-1_ar71xx.ipk.
Installing kmod-scsi-core (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-scsi-core_3.18.20-1_ar71xx.ipk.
Installing kmod-fs-vfat (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-fs-vfat_3.18.20-1_ar71xx.ipk.
Installing kmod-nls-cp437 (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-nls-cp437_3.18.20-1_ar71xx.ipk.
Installing kmod-nls-iso8859-1 (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-nls-iso8859-1_3.18.20-1_ar71xx.ipk.
Installing kmod-nls-utf8 (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-nls-utf8_3.18.20-1_ar71xx.ipk.
Configuring kmod-scsi-core.
Configuring kmod-usb-storage.
Configuring kmod-fs-vfat.
Configuring kmod-nls-utf8.
Configuring kmod-nls-cp437.
Configuring kmod-nls-iso8859-1.
root@Toy_OpenWrt:~# opkg install usbutils
Installing usbutils (007-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/usbutils_007-1_ar71xx.ipk.
Installing libusb-1.0 (1.0.19-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/libusb-1.0_1.0.19-1_ar71xx.ipk.
Installing libpthread (0.9.33.2-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/libpthread_0.9.33.2-1_ar71xx.ipk.
Installing librt (0.9.33.2-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/librt_0.9.33.2-1_ar71xx.ipk.
Installing zlib (1.2.8-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/zlib_1.2.8-1_ar71xx.ipk.
Configuring libpthread.
Configuring librt.
Configuring libusb-1.0.
Configuring zlib.
Configuring usbutils.

指が滑ってkmod-usb2もinstall指示していますが、すでに入っているので無視されています。

あとはreboot後にUSBメモリ挿入して下記にような感じでmountするとUSBメモリの中身が参照可能になります。

とりあえず参照のみできることは確認。

$ mkdir /mnt/usbfs
$ mount /dev/sda1 /mnt/usbfs -t vfat
$ ls /mnt/usbfs 

追記:
NTFSでフォーマットしたHDDが余っていたのでOpenWrtにNTFSを入れてみた。
とりあえずここに書いてある通りでOK.
https://wiki.openwrt.org/doc/howto/writable_ntfs

root@Toy_OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_base.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/luci/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_luci.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/luci/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_packages.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/routing/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_routing.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/routing/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/telephony/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/telephony/Packages.sig.
Signature check passed.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/management/Packages.gz.
Updated list of available packages in /var/opkg-lists/chaos_calmer_management.
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/management/Packages.sig.
Signature check passed.
root@Toy_OpenWrt:~# opkg install ntfs-3g
Installing ntfs-3g (2014.2.15-1-fuseint) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/ntfs-3g_2014.2.15-1-fuseint_ar71xx.ipk.
Installing kmod-fuse (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/kmod-fuse_3.18.20-1_ar71xx.ipk.
Configuring kmod-fuse.
Configuring ntfs-3g.
Create '/etc/filesystems'.
Add 'ntfs-3g' to known filesystems.
root@Toy_OpenWrt:~# ntfs-3g /dev/sda1 /mnt/usbfs -o rw,sync
root@Toy_OpenWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   28928      1536     27392   5% /
/dev/root                 2304      2304         0 100% /rom
tmpfs                    30612       964     29648   3% /tmp
/dev/mtdblock8           28928      1536     27392   5% /overlay
overlayfs:/overlay       28928      1536     27392   5% /
tmpfs                      512         0       512   0% /dev
/dev/sda1            156289020     70756 156218264   0% /mnt/usbfs
root@Toy_OpenWrt:~# umount /mnt/usbfs
root@Toy_OpenWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   28928      1536     27392   5% /
/dev/root                 2304      2304         0 100% /rom
tmpfs                    30612       964     29648   3% /tmp
/dev/mtdblock8           28928      1536     27392   5% /overlay
overlayfs:/overlay       28928      1536     27392   5% /
tmpfs                      512         0       512   0% /dev

これでsamba入れればNAS化できるはず。

【追記 2016/1/17】
sambaを入れて160GB HDD繋いで運用始めましたが、上記のマウント方法では書き込みが遅すぎるのかエラーが出ます。下記の様にマウント時のオプションを変更して安定はしましたが、動画ファイルを書き込んだりするのは激遅です。せいぜいPDFとか写真数枚とかづつ上げていくのが吉かな。フルバックアップとかには使えないです。

$ ntfs-3g  /dev/sda1 /mnt/usbfs -o rw,sync -o big_writes -o async -o noatime