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