移动硬盘省电一法

本文讨论如何用软件方式断开USB设备以实现联机USB设备的节电。

问题

买3D打印机时满减凑单,选了一个移动硬盘座。4盘位,想着把旧硬盘放上去,用来做备份用。为了全自动化,需要把移动硬盘座一直插在服务器上(服务器是Mac mini,装的Linux)。

移动硬盘座和Mac mini

测了下硬盘座的功率:

  • 不插硬盘:5.6W
  • 插一个硬盘:14W
  • 插两个硬盘:21W

这个功率真不低。而且它也不会休眠节电啥的,不管有没有数据读写,一直是21W.

做备份用,其实每天只需要开机20分钟。本想用WiFi插座定时开关电源,结果硬盘座上有一个电子开关(非机械开关),上电时一定要按一下才能开机,真要命。

试了下umount,功耗也一样。

作为对比,西数的移动硬盘盒(含一个硬盘)在联机时功耗只有5.7W(这里可能有硬盘不同的因素,没有交叉对比),而且umount时功耗接近于0。所以,这个硬盘座有点鸡肋。

解决方案

我甚至想到了用机械指去按一下那个开机键。但这毕竟有点杀鸡牛刀。

经过观察发现,如果硬盘座开机但不联机,功耗也是大约6W。

剩下的问题就是看能不能用软件把USB断开。

搜寻网络,发现还是有办法的。但对不同的Linux内核,办法可能不同。长话短说,我们现在应该很少有机会碰到2.6及以前的内核了。那就只关心新内核上的做法:

echo "2-1.2" > /sys/bus/usb/drivers/usb/unbind
echo "2-1.2" > /sys/bus/usb/drivers/usb/bind

就是把设备标识写入USB驱动的unbind或bind文件,就能实现断开或连接USB的效果。

具体地说:

  • 先用 lsusb 看看设备的总线和设备编号(图中是总线2设备4);顺便记下设备的VID和PID(图中是152d和0567)
  • 然后用 lsusb -t 找到设备的端口(图中是总线2-端口1-端口2,所以魔法字符串是 “2-1.2")
用lsusb查看USB设备

这样就可以用 bind/unbind控制了,顺便看看这个目录的内容。bind/unbind两个文件是只写的,端口编号都是一些符号链接。

USB drivers目录

实现

在主机重启的时候,这些端口编号是有可能变化的,所以不能用固定的数字,而是要把查找魔法字符串的过程自动化。

但上面用lsusb查找的方式并不很适合于程序。对程序更友好的方式是遍历 /sys/bus/usb/drivers/usb 的子目录,看哪个子目录里的 idVendor及idProduct 能和目标 VID及PID 匹配。

而在需要重新“插入”设备时,这些文件都不存在了(因为设备已断开),所以需要事先把魔法字符串保存下来。

另外,在服务器启动/重启后,需要马上将移动硬盘“断开”。

具体实现请看这里

效果

下图是通过小米ZigBee插座记录的功率历史。从4/27开始,每天凌晨一次备份任务,图中显示为一条竖线。4/27服务器有一次手动重启,所以图中有两条竖线。在4/26之前,理论上每天也只应该凌晨有一次峰值,但实际上并不规律。

功率历史记录

下图是每日耗电。

每日电量统计

理论上,在节电方案前应该是0.5度(21W*24h)左右。4/26因为在调试节电方案,反复重启,插拔,耗电很高是可以理解的。但平时的波动还是有点超出预期。

理论上,在节电方案后应该接近0.15度(6W*24h)。但图中相对较高的4/29都只有0.025度。这让我怀疑小米插座的功率计的准确性。

扩展应用

本文主要实现了通过软件断开USB移动硬盘(物理上,USB设备是一直上电和连接USB的),确认可以起到节电的效果。

这个方法适用于其它需要软件断开/连接USB设备的场合。但要注意,它并没有断开USB设备的供电(测试过手机充电),应该是相当于“数据线的断开”。所以,想用这种办法控制USB小夜灯或风扇之类的应该是不行的。

参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,601评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,367评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,249评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,539评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,967评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,929评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,098评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,825评论 0 207
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,609评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,796评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,282评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,603评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,277评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,159评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,959评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,079评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,874评论 2 277

推荐阅读更多精彩内容