4

私はカーネルプログラミングにまったく慣れておらず、次のチュートリアルに従っています: USBブート認証

USBドライブの「デバイス構造体」を取得したい。USBデバイスの「dev_t」インスタンスがあります。さらに、デバイス構造体がUSBデバイスであるかどうかを確認したいと思います。どうやって始めたらいいのかわからない…

ありがとう

4

2 に答える 2

3

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

于 2014-02-13T17:28:11.133 に答える
1

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

于 2013-02-19T10:58:10.257 に答える