問題タブ [ata]
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.
linux - Linux で HDD に送信される ATA read-verify コマンドが遅くなる原因は何ですか?
MHDD のスキャンが DOS で行うように、Linux で ATA read-verify(0x40) コマンドを使用してハード ドライブをスキャンする C プログラムを作成しています。
HDIO_DRIVE_TASK を使用してコマンドを発行し、CLOCK_MONOTONIC を使用して ioctl のブロック時間を測定します。
プログラムをルートとして実行し、そのioniceをリアルタイムに設定しましたが、読み出しは常にMHDDが示すものよりも大きくなります。また、MHDD の結果はあまり変化しませんが、私のプログラムの結果はしばしば大きく異なります。
各ブロックに対してコマンドを 2 回発行し、2 回目の実行のブロック時間を測定します。これで問題の一部は修正されますが、結果は依然として大きく異なります。
コマンドが遅くなる要因は何ですか? どうすればそれらを回避できますか?
PS テスト用に、状態が異なる予備のドライブがいくつかあります。
ubuntu - UbuntuのHDDにATAコマンドを直接送信する
ATA コマンドを Ubuntu の HDD に直接送信したいと考えています。それを行うための手順は何ですか?または、それを行うためのコマンドまたは GUI はありますか?
c++ - ATA 状態レジスタを読み取るときは 0xFF
ハードドライブへの単純な PIO アクセスをセットアップしようとしていますが、目標に向けた最初のステップで壁にぶつかりました。
ATA デバイスを操作するための最初のステップは、ステート レジスタを読み取り、BSY (7 番目) ビットが Low になるまで待機することです。プログラムでそれを行っていますが、何らかの理由で状態レジスタを読み取ると、代わりに常に 0xFF が返されます。C++ で記述されたプログラム サンプルを次に示します。
スニペットを見て、何が問題なのか教えてください。
c++ - DeviceIoControl関数を介してATAコマンドを使用して大きなディスク(1、2 TBなど)を読み取る方法は?
DeviceIoControl() 経由で送信する ATA コマンドを使用して大容量ディスクを読み取りたい。構造体を使用してコマンドを送信するATA_PASS_THROUGH_EX
ことが主な問題です。実際には、タイプCurrentTaskFile[]
の arary はUCHAR
、16777215 以下のセクターを送信できません。
つまり
CurrentTaskFile[2] = 0xFF
、セクタ番号レジスタ、
CurrentTaskFile[3] = 0xFF
シリンダ下位レジスタ、
CurrentTaskFile[3] = 0xFF
シリンダ上位レジスタです。
16777215 以下のセクターを読み取りたい場合 (1 TB ディスクの最後のセクターを読み取りたい場合) はどうすればよいでしょうか。16777215以下のセクターを送信する方法。実際には、最大4 TBの容量のディスクを読み取る必要があります。
linux - Linux の新しいバージョンでは、libata-core.h とは異なるインクルードを使用していますか?
libata-core.h を含むモジュールを次のようにコンパイルしようとしています。
Debianジェシーで。コンパイラは「そのようなファイルまたはディレクトリはありません」と言います。カーネル ソースとヘッダーがインストールされており、"scripts/Makefile.build" を含むそれらの一部がこのコンパイルで見つかったので、インクルード パスは正しいと思います。find は、そのようなファイルがないことに同意します。名前変わった?モジュールは、このファイルで定義された ata_qc_new_init() のような多くの関数を使用します (少なくとも Web アクセス可能なバージョンのファイルでは)。これらは現在、で定義されているようです:
それは使用する正しいインクルードですか?
windows - Windows で ATA セキュリティ ロック解除 0xF2 を送信する
次の推奨事項を適用しようとしています: Sending ATA commands directly to device in Windows? 私の目標は、ATA 0xF2 (security unlock-0xF2) を、以前に既知のパスワードでロックされていた USB (usb to SATA) SSD 経由で接続したばかりの SSD に送信することです。Linux での同じ問題は、hdparm ユーティリティで広範囲にテストされ、正常に動作します。
このコードを Win-7、8、10 で試しました - すべてのバージョンでエラー コード 50 が返されます (リクエストはサポートされていません)。テスト目的で、0xEC コマンドを発行しました - 正常に動作しました。
この 0xF2 ATA コマンドを SSD にプッシュするにはどうすればよいですか? ヒント/考え/ヘルプは大歓迎です。
c - ATA IDE 識別
OS学習用のide ataドライバーを開発しようとしています.. IDENTIFY CMDを送信した後、システムがパニックなしでハングアップするという問題に直面しています..! 私は以下のコードを使用しています
「Sent Identify」に到達することはありません..そして、いつかSenを書き込んでハングします。
VirtualboxとVMWareでもテストしましたが、同じ結果でした。なぜそれがハングアップしているのですか?
assembly - ATAPI を使用して CD を読み取れない
これが私のコードです。ATAPI_RAWDATA 配列を 10 進数で 65535 で埋めます。エラーコードなし。セカンダリ エラー レジスタ ポートは 0 で埋められます。停止せず、cpu_triple_fault はありません。セカンダリ マスター CD デバイスを取り外すと、手順が正常に停止します。これらは、BSY ビットなどを検出するためのコードでループします。実際のハードウェアで EJECT 手順を試したので、そのコードには問題はありませんが、ATAPIREADSECTOR 手順はうまくいきません。READCD コマンドなどに問題はありますか?
私の EJECT 手順は正常に機能します。
asterisk - ATA アダプターに接続されたアスタリスク サーバーは、常に電源を入れておく必要がありますか?
私のセットアップは次のようになります。
- アスタリスクサーバーを実行しているubunutu linux pc
- VOIP ATA アダプタに接続されたアナログ電話
- イーサネット経由でアスタリスク サーバーに接続された VOIP ATA アダプター
ATA 用のアスタリスク サーバー内の拡張機能のセットアップに関する情報しか見つかりませんでした。ここでは、電話の SIP アカウントがアスタリスク内で構成されています。アスタリスク サーバーの電源を常にオンにしておく必要があることは明らかです。そうしないと、ATA は電話の送受信を行うことができません。
私の質問
アスタリスクサーバーが着信通話を監視している間、ATAアダプターにSIPアカウントを保存および管理させて(着信IDが必要です)、発信通話を開始するためにATAに目的の電話番号を送信することはできますか? これにより、Asterisk サーバーの電源がオフになっていても、ユーザーはアナログ電話を使用して ATA アダプター経由で電話をかけたり受けたりすることができます。これが可能であれば、この状況でアスタリスク拡張機能をセットアップする方法の参照またはヒントを教えてください。