2011-09-15 2 views
3

を必要としていました。libudevのアドバイスは、私はそれが他のクールなものの束を行うために行く前に、リムーバブルメディア(例えばUSBサムドライブ)のデバイスIDを確認する必要がありますプログラミングプロジェクトに着手しています

鉱山の何人かの友人は、シリアル番号を使用しての方に私を指摘し、udevadmコマンドを使用して予備試験は、これが動作する必要があることを示します。私はいくつかの追加チェックを行いました。libudevで動作するソフトウェアを入手できれば、ubuntu、slackware、gentooで(最小限)コンパイルする必要があります。これは本当に素晴らしいメリットです。

だから私はそれが非常によく書かれたチュートリアルのチュートリアルを見つけるためにビングを使用し、信号11サイト(http://www.signal11.us/oss/udev/)を得ました。それは実際に私が必要とするすべてを持っているようです。コードをダウンロードします。いくつかのプラットフォーム固有のバグを修正し、コンパイルします。ブーム! Gccはエラーなしでコンパイルします。ここまでは順調ですね。

しかし、私が実行しようとすると、いくつかのバグが発生します。私は、バグを修正し、作業用のソフトウェアを出すのに十分なlibudevを理解できるように、さらにチュートリアルを読む必要があることを認識しています。 。問題は実際には私が見つけることができる他のチュートリアルではなく、最近のサーバーの妥協の後でライブラリ文書の(唯一の既知の?)サイトであるkernel.orgサイトがダウンしているということです。

私はudevadmディレクティブをsystem()に発行して結果を解析することを検討しましたが、これはソフトウェアをまとめるのに本当に面倒な方法です。私が書き終わったらコミュニティに公開する予定です。

それでは、どのよう最善の私にとってlibudevを学ぶために?

答えて

1

libudevは非常にシンプルなライブラリです。ライブラリを読んだ後で、APIのドキュメントを使用して(サイトは間もなく始まるはずです)、私は自分が望むものを得ることができました。 udevadmは大きな助けです。# udevadm info --query=all --name=/path/to/devを発行すると、udevがこのデバイスについて持っているすべての情報が得られます。さらに重要なのは、プロパティー機能で使用されるパラメータです(例:udev_device_get_property_value(device, "ID_VENDOR"))。ですから、libudevを学ぶ最も良い方法は、signal11チュートリアル、APIドキュメント、udevadm情報の助けを借りて使用することです。

EDIT:libudevは現在にsystemdの一部である - ドキュメントはマニュアルページとして利用可能である - https://www.freedesktop.org/software/systemd/man/libudev.html#

+0

この答えではいくつかの参照を見て素晴らしいだろう。 – karlphillip

+2

@karlphillipチュートリアル:http://www.signal11.us/oss/udev/ API:http://kernel.org/pub/linux/utils/kernel/hotplug/libudev/ – Maciej

+0

悲しいことに、APIへのリンク参照が壊れています。 :-( –

関連する問題