どういうわけか記憶媒体に結びついているライセンスシステムに出くわしました。これをファイルシステムのUUIDに基づくことはかなり簡単ですが、これが当てはまるとは思いません(以下を参照)。この動作の典型的な例は次のとおりです。
次の動作を確認しました:
これにより、CFカードの一意のIDを何らかの方法で取得する方法があると結論付けることができます。 Linuxでこれをどのように達成できますか?
PS:このようなシステムがCFカードの一意のIDをどのように構築できるのか、より一般的に疑問に思っているので、製品自体の詳細は意図的に省略しました。
カードには、読み取り専用の方法で登録された多くの情報が含まれます。
記事 内部SDカード情報の読み取り は次のように述べています:
内部SDカード情報
SDカードに関する情報は、内部カードレジストリにエンコードされています。これらの1つは、カードID(CID)レジスタ、次の情報を含む16バイトコードです。カードのシリアル番号(PSN)、製造元ID番号(MID)、製造日(MDT)など、SDカードを一意に識別します。 CIDレジスタは、カードの製造時に設定され、設定後に変更することはできません。 (SDカードの仕様によると、情報は一度だけ書き込まれますが、カードが仕様に準拠していない場合、この情報は変更される可能性があります!)
SDカードからCIDを読み取る方法
CIDを読み取る1つの方法は、SDカードスロットを備えたラップトップを使用することです。ラップトップのカードリーダーは通常、PCIバス(またはIDEバス)を介して直接接続されます。カード情報を取得するコマンドが傍受され、によって理解されないため、これはUSBカードリーダーを介して機能しません。カードリーダー:カードスロットが組み込まれているすべてのコンピューターが機能するわけではありません。一部の内部カードリーダーはUSBバスを介して接続されています。
適切なハードウェアがあると仮定すると、カード情報を取得するために使用できるいくつかの方法があります。 Linuxでは、内部SDカード情報の読み取りは簡単です。カードを挿入し、
/sys/block/mmcblk0/device/
の下を確認します(この場所はデバイスによって異なる場合があります)。 CIDレジスタとその中の情報を含む利用可能ないくつかの属性が表示されます。
他の人がコメントしているように、それはCFカードが消去された方法に関連している可能性がありますが、ソフトウェアがカードのファームウェアに基づいてCFカードを識別している可能性が高いです-
この情報は通常、「udevinfo」を使用して読み取られます。たとえば、CFカードが/ dev/sdb udevinfo -a -p $(udevinfo -q path -n/dev/sdb)の場合、これには次の情報が含まれている可能性があります。カードを一意に識別します。
注:Debianベースのディストリビューションでは_udevadm info
_がudevinfo
を置き換えます:
udevadm info -a -p $( udevadm info -q path -n /dev/sdb )