Ya, itu mungkin tetapi akan memerlukan beberapa pekerjaan pengembangan khusus dan tidak sepele dan kodenya akan spesifik untuk chip jembatan USB->SATA DI DALAM enklosur Anda.
Kesepakatannya adalah bahwa jembatan USB berfungsi lebih dari sekadar konverter listrik. HDD yang terpasang USB mengemulasi drive SCSI yang memiliki rangkaian perintah berbeda. Sementara perintah baca/tulis/cari standar menerjemahkan sepanjang waktu, putaran atas/bawah yang lebih eksotis tidak. Kebanyakan chip tidak akan melakukan itu. Selain itu, BUKAN API level chip universal. Jadi, jika saya menulis kode, saya harus memiliki manual pemrograman untuk chip jembatan USB.
Intinya, kecuali Anda memiliki spesifikasi pemrograman pada chip dan terbiasa dengan set instruksi ATA dan SCSI dan mengenkapsulasi perintah pass-through, maka Anda harus melakukannya tanpa. Terlalu banyak pekerjaan dan tidak ada standar.
Sangat mungkin bahwa sinyal yang Anda kirimkan diabaikan. Anda tidak memberikan output dari
sudo hdparm -I /dev/sdX
yang akan memberi tahu kami kemampuan disk, tetapi banyak disk tidak merespons perintah ini.
Untungnya, ada utilitas yang sangat nyaman, hd-idle, yang dapat Anda unduh dari sini, memungkinkan Anda untuk memaksa disk berputar setelah selang waktu tertentu. Program ini telah dikembangkan khusus untuk Debian, (tetapi bekerja pada Linux pada umumnya), sehingga pemasangannya akan sangat mudah bagi Anda. Saya hanya berharap ini juga berfungsi pada arsitektur ARM, sesuatu yang tidak dapat saya uji.
Sunting:itu mengkompilasi dan menginstal dengan benar di raspbian.
Saya tidak beruntung dengan hd-idle; itu berjalan tetapi tidak berfungsi. Saya akhirnya menulis skrip di bawah ini:
#!/bin/bash
# This script looks for recent disk access, and if nothing has changed, puts /dev/"drive" into spindown mode.
# This should be used only is the hdparm power management function is not working.
# Call this script with cron or manually as desired
#
#
#
# Change which drive this script looks at by changing the drive variable below:
drive="sda"
#
#
current=`date`
caller=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
filename="/tmp/diskaccess.txt"
if [ -f "$filename" ]; then
stat_old=`cat "$filename" | tr -dc "[:digit:]"`
stat_new=`cat /sys/block/"$drive"/stat | tr -dc "[:digit:]"`
if [ "$stat_old" == "$stat_new" ]; then
stat="0"
echo "The disk hasn't been used; spinning down /dev/$drive"
echo $stat_old
hdparm -y /dev/$drive > /dev/null
else
stat="1"
echo $stat_old
echo $stat_new
echo "The drive has been used..."
echo $stat_new > $filename
fi
else
echo "/tmp/diskaccess.txt file does not exist; creating it now."
echo $stat_new > $filename
fi
echo $stat " - " $drive " - " $current " - by: " $caller >> /tmp/diskaccesslog.txt