問題タブ [scsi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java SCSI アクセス
Linux C プログラムを Java に移植したいと考えています。このプログラムは、USB ケーブルで PC に接続されたカメラを制御します。C コードは Linux SCSI Generic (sg) を使用します。
C プログラムのサンプル コード:
このプログラムを Java に移植する方法はありますか? Java 用に書かれたクロスプラットフォームの SCSI ライブラリーを探していましたが、見つかりませんでした。また、SCSI/sg を介した JNI を探していましたが、運もありませんでした。
winapi - QueryDosDevice と IOCTL_STORAGE_GET_DEVICE_NUM は LUN を個別のデバイスとして扱いますか?
同じ物理 USB ストレージ デバイス上にある を単一のデバイスQueryDosDevice()
と見なすのか、それとも各 LUN を個別のデバイスとIOCTL_STORAGE_GET_DEVICE_NUMBER
見なすのかを確認できますか?LUN
たとえば、複数の s を持つ USB サム ドライブがあり、各 LUN に:、LUN
などの論理 DOS「文字」が割り当てられている場合、呼び出した場合、すべてのsに対して同じ値が返されますか? それとも、それぞれに異なるものがありますか?C
D:
QueryDosDevice()
DeviceName
LUN
LUN
DeviceName
同様に、IOCTL_STORAGE_GET_DEVICE_NUMBER
各を使用すると、すべての で同じLUN
結果が返されますか?DeviceNumber
LUN
ご協力いただきありがとうございます!
windows - Windows が SCSI READ CAPACITY 要求を繰り返し送信する
USB ベースの大容量記憶装置を開発しています。制御は SCSI コマンド経由です。
このデバイスの LUN の 1 つが「非表示」になっています。すべてのコマンド (INQUIRY と REQUEST SENSE を除く) は COMMAND FAILED (1) を返します。REQUEST SENSE は NOT READY (MEDIUM NOT PRESENT) を返します。
それにもかかわらず、Windows は繰り返し READ CAPACITY を送信します。COMMAND FAILED を返すことに加えて、すべてゼロのデータで COMMAND PASSED (0) を返そうとしました。しかし、これにより、Windows はそれ以上のコマンドの送信をまったく停止し、デバイスの列挙が停止します。
これらの要求に対する適切な応答は何ですか?
linux - Linux で HDD が検出されたときに通知を受ける方法
スリープ モード (ハードウェア) の HDD で起動する組み込み Linux ビルドがあります。次に、ソフトウェアが起動し、ドライブへの電源が有効になります。Linux はドライブを正常に検出します。
残念ながら、ソフトウェアは上記の SCSI 検出が行われる前にドライブにアクセスしようとします。スリープを追加することもできますが、検出にかかる時間が非決定論的であることがわかっているため、これは信頼できるメカニズムではありません。
カーネル/ホットプラグなどを入手する方法はありますか? HDDが検出されたときにシステムが報告しますか?
ありがとう。
macos - Mac OS X で特定の SCSI コマンドを SCSI デバイスに送信する
SCSI ドライバに照会要求を行うことはできますか?
linux - カーネルscsi_device構造でUSBデバイスと(S)ATAデバイスを区別する方法は?
SCSIドライバーで使用されるカーネル構造struct scsi_device
(カーネル2.6.23)によると:
http://lxr.linux.no/linux+v2.6.23/include/scsi/scsi_device.h#L49
デバイスがUSBデバイスであるかATAデバイスであるかを区別するための信頼できる方法はありますか?
networking - iSCSI パケット ヘッダー
iSCSI は、SCSI パケットの上にレイヤー (TCP ヘッダー自体以外) を導入しますか? RFC 以外に iSCSI のリファレンス マニュアルはありますか? Paralan iSCSI-to-SCSI コンバーターを介して RF レシーバーを制御するために、この情報が必要です。
encryption - Linux 2.6.18 SCSI SPIN および SPOUT SG_IO ioctl を sg LTO5 デバイスに
ヒューズファイルシステムでioctlを使用して、LTO5 デバイスのハードウェア暗号化を利用しようとしています。それは非常に簡単なはずです。cdb で io_hdr をセットアップします。
選択したアルゴリズムに従ってキーページを提供します。SG_IO ioctlを実行すると、すべて 0 の SCSI センスで 0 が返されます。
さて、ここからが奇妙になります。デバイスに書き込まれるデータは暗号化されません。テープを別のドライブに切り替えて SCSI 読み取りを行うと、データはすべてクリア テキストです。
したがって、次のステップは、SCSI SPIN コマンドを実行して、SPOUT コマンドが実行されたかどうかを確認することです。SPOUT の直後に、セキュリティ ステータス ページ (0x20) の SPIN を送信します。
ここでも、SG_IO ioctlからの値 0と、すべてゼロの意味を返します。ただし、返されるページは、ドライブに入れた SPOUT キー ページです。私が送信した秘密鍵がドライブに含まれているため、これはドライブから出てこなかったに違いありません。これは間違いなく SCSI 仕様です。ところで、私は両方の SCSI コマンドにまったく異なるバッファを使用し、適切な測定のために SPIN ページをゼロに memset します。sg ドライバーは、SPIN に応答してこのデータを提供します。
誰でもこの動作に光を当てることができますか?
Linux archive.xxxxx.xxx 2.6.18-274.7.1.el5 #1 SMP Thu Oct 20 16:21:01 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
sg3_utils-libs-1.25-5.el5
sgpio-1.2.0_10-2.el5
mt-st-0.9b-2.2.2
ioctlコマンドを /dev/sg5に送信しています。
Linux ioctl システム コールが SG_ERR_DID_ERROR [0x07] sg_io_hdr_t の host_status メンバのホスト アダプタで検出された内部エラーを返すことを発見しました。
setltokey.c コードもここにあります: http://www.circlesoft.com/setltokey.c
c++ - LinuxでC/C ++のSCSIディスクのリストを取得するにはどうすればよいですか?
接続されているSCSIディスクに関する情報を含むリストまたはその他の列挙可能なクラスを取得する必要があります。情報は次のようになります。/proc/scsi/sg/devices
助けてください。事前に感謝します。
driver - 64ビットのCreateFileを介したドライバーとの通信に失敗する
私はSCSIドライバーの開発者です。
CreateFileを介してドライバーからデータを取得するユーザースペースプログラムを作成します。
32ビットWindows環境でテストする場合は問題なく動作しますが、64ビットでは次のエラーが表示されます。
CreateFileは-1を返します。GetLastError()は2を返します。(ERROR_FILE_NOT_FOUND)
IoCreateSymbolicLink
ドライバが初期化されるときに呼び出しましたが、windbgを使用してデバッグ出力を表示すると成功を返します。
誰かがこの種の問題に遭遇しましたか?