[NAS] 那些玄乎的USB硬盘模块的技术原理

June 7, 2019 奇怪的代码

前言

自从现在各种家用硬盘矿机普及之后,大型的矿主都得批量上架吧,那他们买一堆硬盘总是不现实的,毕竟硬盘也要钱不是?于是市场上出现了一种可以挂载 NAS 上的磁盘,然后通过 USB 口接到矿机上的模块。这个东西不贵,但是了解原理才更有意义不是?

技术原理

他们提供的各类模块,本质上里面跑的都是个 linux 系统。如果你仔细看他们提供的后台设置截图会发现基本都是一个最小的 linux 开发板系统。设置指令都逃不开一个 g_mass_storage.ko 。这个东西需要你自己编译使用,本质上就是把一个特定的镜像文件作为 USB 设备从 USB 口输出出去。说到这里就已经很明了了,原理就是把 NAS 的硬盘先通过 mount 挂载到本地,再在其中创建一个指定大小的镜像文件,然后将其作为 USB 设备插入设备的接口。

指令

首先是挂载 NAS 盘到本地,这个你用 uci 之类的都随你。然后就是使用 g_mass_storage.ko 。指令如下

insmod g_mass_storage.ko file=/test.img

这样就完事了,是不是很简单?

进阶

之前说到过需要自己编译,其实还有个原因。你默认使用的模块给你的设备名称什么的都是默认的,很容易会被封掉机器。所以你还是需要修改编译的内容,然后重新编译,以避免设备名称过于初始导致被封。

相关文章

USB gadget的简单实现

添加新评论