Skip to content

Instantly share code, notes, and snippets.

@jbfavre
Created March 27, 2015 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbfavre/4d012fdb6b3332c16e6f to your computer and use it in GitHub Desktop.
Save jbfavre/4d012fdb6b3332c16e6f to your computer and use it in GitHub Desktop.
hdparm -I Macbook Pro
# hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: APPLE SSD SM0512F
Serial Number: S1K5NYAG225885
Firmware Revision: UXM2JA1Q
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0039)
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 977105060
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
Logical Sector-0 offset: 0 bytes
device size with M = 1024*1024: 477102 MBytes
device size with M = 1000*1000: 500277 MBytes (500 GB)
cache/buffer size = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 128, current value: 0
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
* SET_MAX security extension
Automatic Acoustic Management feature set
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Gen3 signaling speed (6.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
DMA Setup Auto-Activate optimization
* Software settings preservation
* SET MAX SETPASSWORD/UNLOCK DMA commands
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 8 blocks)
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
6min for SECURITY ERASE UNIT. 32min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5002538655584d30
NAA : 5
IEEE OUI : 002538
Unique ID : 655584d30
Integrity word not set (found 0x597b, expected 0x100a5)
@porteusconf
Copy link

For those who find this gist searching for "hdparm for macos", note that there is no hdparm command on macos. The gist shows the output of hdparm in linux looking at a Apple (re)branded SSD.

If you want to change power-management settings, like sleep time for external hard-drives, on macos, you use pmset. See also http://mckinlay.net.nz/hdapm/ which includes a LaunchDaemon plist to reset values at every boot.

hdapm --help
Usage: hdapm [OPTION]... [DEVICE]... LEVEL
Set ATA Advanced Power Management level.

Example: hdapm max
         hdapm disk0 max

DEVICE	 (Optional) BSD path of ATA device
LEVEL	 numeric value 1 - 254, or...
		 min (best power savings)
		 max (maximum performance)
		 default
OPTIONS
  -log           Write status to system log
      --help     display this help and exit
      --version  output version information a tind exite 

The 2012 binary still launches on macos12-intel, and author says it should run on 10.12. The source code for hdapm.c and xcodeproject is avail if someone wants to see if it works on m1 (apple silicon) macos. Use case might be a script for stationary imac/pro that manually uses tmutil (or rsync via CCC) to do scheduled backups. At end of each backup, unmount, but do not eject the TimeMachine volume. When unmounted, the disk should spin down. Before starting the backup, the script should (re)mount the sleeping disk, and wait a few secs for the disk to spin up before starting the backup. After weighing pros/cons, I decide to use such as script, I'll add a link here. Hope this helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment