問題タブ [device-tree]
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 - Open Firmware Device Trees の概要/リファレンス マニュアル
組み込み PowerPC ボード用のドライバーをセットアップしようとしていますが、現在これを行う正しい方法は、OpenFirmware Device Tree データ構造 (.dts ファイルからコンパイルされた .dtb ファイル) を使用することです。ツリーの作成は非常に簡単ですが、デバイス ドライバーにそのノードとその中のデータを見つけるにはどうすればよいでしょうか? 私はこれに関する適切な参考文献を見つけることができず、「Linux Device Drivers」のような本は x86 の領域に深く入り込みすぎており、主に Power Architecture ベースのマシンに関連するデバイス ツリー (Linux カーネルの arch powerpc用語)。
python - Pythonに埋め込まれたLinuxデバイスツリーパーサー?
組み込み (PPC または ARM) Linux *.dts (デバイス ツリー ソース) または *.dtb (バイナリ) ファイルを別のツールの XML 構成ファイルに対して検証するユーティリティを作成しようとしています。したがって、dts または dtb ファイルを解析する必要があります。私は本当にこれをPythonでやりたいと思っています。dts または dtb ファイルを解析する Python ライブラリまたはツールを知っている人はいますか? デバイス ツリー コンパイラ (dtc) の Python 実装は完璧ですが、まだ見たことがありません。
linux-kernel - Linuxで構造体デバイスへのポインタを取得するよりクリーンな方法はどれですか?
Linux に登録されている特定のデバイスへのポインタを取得する必要があります。簡単に言えば、このデバイスはmii_bus
オブジェクトを表します。問題は、このデバイスがバスに属していないように見えることです(それdev->bus
はですNULL
)ので、たとえば関数を使用できませんbus_for_each_dev
。ただし、デバイスは Open Firmware レイヤーによって登録されており、相対of_device
(関心のあるデバイスの親) を/sys/bus/of_platform
. 私のデバイスは にも登録されているclass
ので、 で見つけることができます/sys/class/mdio_bus
。今質問:
必要なデバイスの親であるへのポインターを使用してポインターを取得することは可能
of_device
ですか?名前だけを使用して、既にインスタンス化されたクラスへのポインターを取得するにはどうすればよいですか?可能であれば、そのクラスのデバイスを反復処理できます。
他のアドバイスはとても役に立ちます!皆さん、ありがとうございました。
linux - LinuxドライバーからFDT/DTSデバイスツリーにアクセスしてデバッグする方法(セグメンテーション違反)
FreescaleP2020RDBに基づくカスタムボードのFPGAドライバーとして機能するLinuxカーネルモジュールを作成しました。ドライバーには#defines
、さまざまなアドレス、サイズ、バス幅などを指定するためのいくつかが含まれています。ドライバー内からボードのフラットデバイスツリー(FDT)にアクセスしてこれらのアドレスを構成し、ドライバーを他のボードで使用できるようにします。 FPGAのサイズが異なるか、アドレスが異なります。
モジュールの初期化関数に次の簡単なコードを追加しました。このコードは、Linuxカーネルのソースコードツリーを巡回しているときに見つかりました。
残念ながら、モジュールを挿入すると、デバイスノードを見つけようとしているときにセグメンテーション違反が発生します。
これは何を示していますか?デバイスツリーblobが適切にロードされ、使用可能であることを確認する方法はありますか?このようなクエリの準備をするために、さらに「セットアップ」コードが必要ですか?または、ドライバーをハンマーとして使用しようとしていますか?
ありがとう!
ところで、これが私のFDT(DTS)ソースです:
kernel - エラー: 認識されていない/サポートされていないデバイス ツリーの互換性のあるリスト
あなたの助けが必要です。特別なデバイスのタッチ スクリーン サポートにカーネル 3.3 が必要なため、Linaro Kernel 3.3-rc3 ファイルをダウンロードしました。ファイルシステムを作業中の Ubuntu-Linaro インストールから ext3 に変更した後、新しいカーネルはルート コンソールで起動しますが、HDMI と USB は機能しません...
HDMI が 3.3-rc3 で正しく動作しないというインターネットのヒントがいくつかあったため、kernel.org から最新のカーネル 3.3-rc6 をコンパイルすることにしました。
次のエラーが表示されます。
元の board.dtb とカーネル ツリーのバージョンを使用しました。
しかし、成功しません。私はすでに git.linaro.org/boot/u-boot-linaro-next.git から最新の uboot を入手しましたが、変更はありません。
誰が助けることができますか?
linux - Linux カーネルで使用されるデバイス ツリー ファイル (dtb) を視覚化するツールは?
Linux カーネルで使用されるハードウェア デバイス ツリーをグラフィカルに表現できるツールを探しています。特定のアーム チップセットの Linux カーネルを理解しようとしています。持っていると本当に便利なツールになります。
linux - デバイス ツリーとは?長所と短所
Linux のデバイス ツリーとは何ですか? デバイス ツリーの長所と短所は何ですか?
デバイス ツリーの詳細を知っている方がいらっしゃいましたら、上記の質問にお答えください。
linux - Linux .dts デバイス ツリー ファイルをプログラムする方法は?
開発ボードで Linux を起動しようとしていますが、ハードウェア全体を記述する dts ファイル (デバイス ツリー ファイル) が必要です。しかし、私はこのファイルの構文についてほとんど知らないので、ボード上で Linux を適切に実行するには十分ではありません。
私が今知っているのは、ユニットの割り込み番号、頻度、アドレス、親ユニット、および互換性のあるドライバーの種類 (以下で説明) を記述する方法だけです。
その他の高度な用法や文法は、私にはなじみがありません。