Hi, xboxhdm is availiable only for Windows, but since it mostly just wraps some common Linux tools, I thought I could do well without Windows.

However, could it be that it's build of smartctl is somewhat special?

When I try to run the command from lockhdd.bat, which is

smartctl -s security-eeprom-setpass,eeprom.bin /dev/sdx

I get

=======> INVALID ARGUMENT TO -s: security-eeprom-setpass =======> VALID ARGUMENTS ARE: on, off, aam,[N|off], apm,[N|off], lookahead,[on|off], security-freeze, standby,[N|off|now], wcache,[on|off], rcache,[on|off], wcreorder,[on|off] <=======

with smartctl 6.6.

Is the xbox using some non-standard ATA features here? I would like to doubt that as this wouldn't make it easy to replace the HDD with a larger, generic model.

So how can I lock/unlock the HDD with a current version of smartctl?

Running the provided fatx enabled distribution with my standardqemu-system-i386 works fine btw, I can read an write xbox disc images with no problems from my Linux machine :)

edit: I came across this guide which suggests it's not all that straightforward and the ATA password is actually calculated involving the serial number of the HDD - so xboxhdm's smartctl is probably patched to do just that.

It further suggests hdtool which does all the password calculation and locking if provided an EEPROM file, but this only gives me

HDIO_DRIVE_CMD(identify) failed - is drive frozen?

even though smartctl says ATA Security is: Disabled, NOT FROZEN [SEC1].

edit2: turns out the sourceforge page of xboxhdm also provides a patched version of smartctl for Linux.

This one works :)