Fix opening devices to throw an IOError if the device isn't present