お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-06-10 19:13:15

ken09
新しいメンバ
登録日: 2013-06-10

Ubuntu13.04でのS.M.A.R.T.情報取得(STATUSコマンド)について

以下のようなプログラムをC言語自前で組んでHDDのSMARTのSTATUS情報を取得しているのですが、
Ubuntu12.04では上手く動作するのですが、Ubuntu13.04にOSバージョンをあげた場合、
ioctl関数(Input/output error)でエラーが発生して上手く動作しません。
ATAコマンドの仕様についてUbuntu13.04からかわってしまったのでしょうか?

何か知っている方は、ご教授をよろしくお願いします。

-----------プログラム------------------------------
int fd = 0;
unsigned char cmd_str[512+16];

//Device Open
fd = open("/dev/sda", O_RDONLY);

//Get SMART STATUS
memset(cmd_str, 0, sizeof(cmd_str));

cmd_str[0] = WIN_SMART;            //0xB0
cmd_str[1] = SMART_STATUS;       //0xDA
cmd_str[4] = SMART_LCYL_PASS;   //0x4F
cmd_str[5] = SMART_HCYL_PASS;   //0xC2

if(ioctl(fd, HDIO_DRIVE_TASK, cmd_str) != 0)
{
  printf("ioctl error");
}
:
:
省略

オフライン

 

Board footer

Powered by FluxBB