私はカーネルプログラミングにまったく慣れておらず、次のチュートリアルに従っています: USBブート認証
USBドライブの「デバイス構造体」を取得したい。USBデバイスの「dev_t」インスタンスがあります。さらに、デバイス構造体がUSBデバイスであるかどうかを確認したいと思います。どうやって始めたらいいのかわからない…
ありがとう
hiteshradiaが言ったようdev_t
に、デバイス番号(メジャー番号とマイナー番号)です。struct device
ただし、これは、ブロックデバイスがそれに関連付けられたデバイスにアクセスするためのものであるという知識とともに使用できます。これを行うには、fromを使用struct block_device *bdget(dev_t)
しlinux/fs.h
ます。これから、を使用block_device->bd_part
してデバイスのを取得しstruct hd_struct *
、最後にstruct device *part_to_dev(struct hd_struct *)
でマクロとして定義されたものを使用できますlinux/genhd.h
。
dev_t
/dev/sdb1
リンクから見たパーティションを表すデバイス番号のみです。それを使用して、基になるUSBドライブの詳細を取得することはできません。
あなたが提供したリンクにはセクションがあります
if(udev->serial != NULL)
{
if((strcmp(udev->serial, "3513001D97827E69")) == 0) /* Hard coded usb device serial here*/
{
key_dev_found = 1;
}
}
USBデバイスの詳細とstruct usb_device *udev