/Knowledge/Hardware/raspberrypizero2w/otg

USB-HDDの仮想化

/Knowledge/Hardware/raspberrypizero2w/otg

USB-HDDの仮想化

Raspberry Pi Zero 2 W を使って、外付けHDDを必要とするデバイスに仮想化したHDDを割り当てる。
今回はNASのストレージの一部を、TVの録画用外付けHDDとして割り当てることでシンプル化を目指す。

内容としては、TVにOTG化したPiZero2Wを接続しPiZero2WにマウントしたNASのストレージを、あたかもTVからは直接接続されたHDDとしてみえるように構成する。

あくまで興味本位で試しているだけなので連続運用、安定性は不明。

RaspberryPiのセットアップ

Bookwormだと面倒らしいので、Bullseye(Legacy)でセットアップする。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

ひとまずUSBメモリ化してみる

/boot/config.txtに追記

/boot/config.txtdtoverlay=dwc2

再起動

すでにこの状態で、PCからはOTGデバイス(機能無し)で認識できるようになっているはず。
OTG側のケーブルをPCに挿抜するといつもの音が出る。

SDにストレージ領域を確保

exfatを使えるようにする。

$ sudo apt install exfat-fuse

SD内にUSBメモリ用のイメージファイルを作成する。countがMB単位の容量。
時間がかかるので1GBでお試し。

$ dd if=/dev/zero of=/home/pi/test_storage.img bs=1M count=1000

USBメモリ領域をexfatでフォーマット。

# exfatの場合
$ mkfs.exfat /home/pi/test_storage.img

# FAT32の場合
$ mkfs.vfat -F 32 /home/pi/test_storage.img

OTG USBマスストレージデバイスとしての有効化、無効化テスト

PCからマスストレージデバイスが見えるように有効化、無効化のテスト。

有効化

$ sudo modprobe g_mass_storage file=/home/pi/test_storage.img removable=y

無効化

$ sudo modprobe -r g_mass_storage

SMBでRPiにNASをマウントする

smbclientをインストール

$ sudo apt install smbclient

NASに作った共有フォルダをRPiにマウントしてみる

mount -t cifs //{NASのIPアドレス}/{NASの共有フォルダ名} /home/pi/nas_storage -o user={nasのログインユーザー名},password={nasのログインパスワード},vers=3.0,iocharset=utf8

マウントポイントを覗いて、NASのファイルが見えればOK

とりあえず起動時にマウントをトライするように設定する(基本ダメだけど、あとのcrontabで再接続させる)

/etc/fstab# cifs
//{NASのIPアドレス}/{NASの共有フォルダ名} /home/pi/nas_storage cifs username={nasのログインユーザー名},password={nasのログインパスワード},vers=3.0,iocharset=utf8 0 2

NASにストレージ領域を確保

NASのマウント領域内にストレージ用のイメージファイルを作成する。countがMB単位の容量。
超時間がかかる上に、1GBだと少なすぎるので、SD内に確保できる容量ならSD内に作成したあとにNAS領域にコピーした方がいいかも。というかRPiじゃなくてNAS側のターミナルで作った方が早い。

$ dd if=/dev/zero of=/home/pi/nas_storage/test_hdd.img bs=1M count=1000

USBメモリ領域をexfatでフォーマット。

# exfatの場合
$ mkfs.exfat /home/pi/nas_storage/test_hdd.img

# FAT32の場合
$ mkfs.vfat -F 32 /home/pi/nas_storage/test_hdd.img

RPi起動時にNASをマウントし、マスストレージを有効化。

crontab$ crontab -e
crontab@reboot sleep 5; mount -a && sudo modprobe g_mass_storage file=/home/pi/nas_storage/test_hdd.img removable=1

とりあえずこの作業で、LG(2023)ではストレージとして認識し、録画もできるようになった。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

でも、ストレージのアクセス速度としては心もとない感じ。
今回は、お手軽さ重視でPiZero2WのWifi経由なので、スリープから再接続までの復帰時間や安定性などに不安が残る。数回の録画は試したが、連用はしていないので各自ご確認を。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

### 参考サイト
ラズパイを録画用HDDにエミュレートする
https://synrock-tech.com/hardware/single_board/raspberry-pi-emulate-hdd/

趣味のプログラム工房 : Raspberry Pi4でUSB-OTGを使って、Regzaの外付けHDD化
https://studio.sites-mall.com/blog/entry/2020080301.html

Raspberry Pi 4BをOTG設定してUSBストレージとして使う
https://qiita.com/Saito5656/items/5f369ba8a8d419e3cbff

大画面テレビの録画用HDDの代わりにRasberry Pi4のUSB OTG機能を生かしてUSBtoLAN(NAS)なストレージゲートウェイを構成する
https://qiita.com/kthrtty/items/7243d59bb418de50f732

Contents
@[toc]
$lsx() has no contents

Raspberry Pi Zero 2 W を使って、外付けHDDを必要とするデバイスに仮想化したHDDを割り当てる。
今回はNASのストレージの一部を、TVの録画用外付けHDDとして割り当てることでシンプル化を目指す。

内容としては、TVにOTG化したPiZero2Wを接続しPiZero2WにマウントしたNASのストレージを、あたかもTVからは直接接続されたHDDとしてみえるように構成する。

あくまで興味本位で試しているだけなので連続運用、安定性は不明。

RaspberryPiのセットアップ

Bookwormだと面倒らしいので、Bullseye(Legacy)でセットアップする。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

ひとまずUSBメモリ化してみる

/boot/config.txtに追記

/boot/config.txtdtoverlay=dwc2

再起動

すでにこの状態で、PCからはOTGデバイス(機能無し)で認識できるようになっているはず。
OTG側のケーブルをPCに挿抜するといつもの音が出る。

SDにストレージ領域を確保

exfatを使えるようにする。

$ sudo apt install exfat-fuse

SD内にUSBメモリ用のイメージファイルを作成する。countがMB単位の容量。
時間がかかるので1GBでお試し。

$ dd if=/dev/zero of=/home/pi/test_storage.img bs=1M count=1000

USBメモリ領域をexfatでフォーマット。

# exfatの場合
$ mkfs.exfat /home/pi/test_storage.img

# FAT32の場合
$ mkfs.vfat -F 32 /home/pi/test_storage.img

OTG USBマスストレージデバイスとしての有効化、無効化テスト

PCからマスストレージデバイスが見えるように有効化、無効化のテスト。

有効化

$ sudo modprobe g_mass_storage file=/home/pi/test_storage.img removable=y

無効化

$ sudo modprobe -r g_mass_storage

SMBでRPiにNASをマウントする

smbclientをインストール

$ sudo apt install smbclient

NASに作った共有フォルダをRPiにマウントしてみる

mount -t cifs //{NASのIPアドレス}/{NASの共有フォルダ名} /home/pi/nas_storage -o user={nasのログインユーザー名},password={nasのログインパスワード},vers=3.0,iocharset=utf8

マウントポイントを覗いて、NASのファイルが見えればOK

とりあえず起動時にマウントをトライするように設定する(基本ダメだけど、あとのcrontabで再接続させる)

/etc/fstab# cifs
//{NASのIPアドレス}/{NASの共有フォルダ名} /home/pi/nas_storage cifs username={nasのログインユーザー名},password={nasのログインパスワード},vers=3.0,iocharset=utf8 0 2

NASにストレージ領域を確保

NASのマウント領域内にストレージ用のイメージファイルを作成する。countがMB単位の容量。
超時間がかかる上に、1GBだと少なすぎるので、SD内に確保できる容量ならSD内に作成したあとにNAS領域にコピーした方がいいかも。というかRPiじゃなくてNAS側のターミナルで作った方が早い。

$ dd if=/dev/zero of=/home/pi/nas_storage/test_hdd.img bs=1M count=1000

USBメモリ領域をexfatでフォーマット。

# exfatの場合
$ mkfs.exfat /home/pi/nas_storage/test_hdd.img

# FAT32の場合
$ mkfs.vfat -F 32 /home/pi/nas_storage/test_hdd.img

RPi起動時にNASをマウントし、マスストレージを有効化。

crontab$ crontab -e
crontab@reboot sleep 5; mount -a && sudo modprobe g_mass_storage file=/home/pi/nas_storage/test_hdd.img removable=1

とりあえずこの作業で、LG(2023)ではストレージとして認識し、録画もできるようになった。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

でも、ストレージのアクセス速度としては心もとない感じ。
今回は、お手軽さ重視でPiZero2WのWifi経由なので、スリープから再接続までの復帰時間や安定性などに不安が残る。数回の録画は試したが、連用はしていないので各自ご確認を。

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png

### 参考サイト
ラズパイを録画用HDDにエミュレートする
https://synrock-tech.com/hardware/single_board/raspberry-pi-emulate-hdd/

趣味のプログラム工房 : Raspberry Pi4でUSB-OTGを使って、Regzaの外付けHDD化
https://studio.sites-mall.com/blog/entry/2020080301.html

Raspberry Pi 4BをOTG設定してUSBストレージとして使う
https://qiita.com/Saito5656/items/5f369ba8a8d419e3cbff

大画面テレビの録画用HDDの代わりにRasberry Pi4のUSB OTG機能を生かしてUSBtoLAN(NAS)なストレージゲートウェイを構成する
https://qiita.com/kthrtty/items/7243d59bb418de50f732

HackMD is READY!

Click to clone page content and start to edit.

Comments

https://cdn.jsdelivr.net/emojione/assets/3.1/png/32/2693.png
GROWI 4.4.9  -/