タグ付けされた質問 「device-tree」

2
実行中のカーネルの/ sysを使用してデバイスツリーの情報を取得することは可能ですか?
一般に、アームシステムの場合、デバイスツリーはカーネルにハードウェア情報を提供します(Linux)。これらのデバイスツリーは、コンパイルされてカーネルにロードされるdts(デバイスツリーソース)ファイルとして存在します。問題は、そのようなdtsファイルにアクセスできず、ファイルにもアクセスできないことdtbです。 私はへのアクセス持っている/sysと/proc、マシン上に、私はそれは私がDTSで使用される「正しい値を推測」できるようになるならばお願いしたいですか? また、潜在的な答えは、この質問への答えがデバイスツリーインターフェイスが最初に使用されたか(つまり、a dtbが作成されてカーネルに提供されたか)に依存する場合、さらにハッキングする代わりに側面をさらに強調する可能性があります。カーネルのみのデバイス情報の問題を解決するようにカーネルにパッチを適用します」

1
Linuxでデバイスにバインドできないドライバーをデバッグする方法
次のデバイスが私のクリエーターCI20のドライバーに設定されていない理由を理解しようとしています。参考までに、私はLinuxカーネルv4.13.0を使用して、ローカルでコンパイルを行っています。 make ARCH=mips ci20_defconfig make -j8 ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage 実行中のシステムから私は見ることができます: ci20@ci20:~# find /sys | grep rng /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8 /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/compatible /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/name /sys/bus/platform/drivers/jz4780-rng /sys/bus/platform/drivers/jz4780-rng/bind /sys/bus/platform/drivers/jz4780-rng/unbind /sys/bus/platform/drivers/jz4780-rng/uevent したがって、デバイスは実行時にカーネルに表示されますが、欠けている部分がドライバーがバインドされない理由です。私はこのようなものを期待していました: /sys/bus/platform/drivers/jz4780-rng/100000d8.rng 私は実行中のシステムをデバッグする方法を説明する他のいくつかの投稿を見つけました、例えば: /programming/28406776/driver-binding-using-device-tree-without-compatible-string-in-the-driver /programming/35580862/device-tree-mismatch-probe-never-called /programming/41446737/platform-device-driver-autoloading-mechanism 実行中のカーネルの/ sysを使用してデバイスツリーの情報を取得することは可能ですか? これらの投稿の情報は正確ですが、私にはあまり役に立ちません。私はカーネルをローカルでビルドしているので(ドライバーprintkのプローブ機能に追加しましたjz4780-rng)、代わりに私の質問は次のとおりです。 カーネルがjz4780-rngドライバーのプローブ関数の呼び出しの失敗に関する正確な情報を出力するように、コンパイル時にどのオプションをオンにする必要がありますか? 特に、テスト済みのバス/ドライバーの完全なリストをどのように印刷しdriver_probe_deviceますか? printkこれをデバッグするためにコードのどこにでも追加できます。問題はむしろです:どの関数がデバイスツリーをトラバースし、probe / init関数を呼び出していますか? 参考のために: $ dtc -I fs -O dts /sys/firmware/devicetree/base | grep -A 1 rng …

2
使用しているデバイスツリーblob(dtbファイル)を確認するにはどうすればよいですか?
私は、ベースボードにプラグインされ、Yocto Linuxを実行している組み込みの「Computer on Module」であるTS-4900を使用しています。U-Bootを使用して開始し、おそらくベースボードのモデルに基づいて、開始する正しいdtbファイルを選択します。正しいファイルが見つからない場合は、モジュールの「汎用」ファイルにフォールバックします。 しかし、それはどのように/どこで正しいものを決定しますか?使用した.dtbを確認したり、使用する.dtbを設定するにはどうすればよいですか? 以下はU-Bootの起動メッセージです。 U-Boot 2014.10-g3ac6ec3 (Jan 29 2015 - 17:20:15) CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: POR Board: TS-4900 Revision: C Watchdog enabled I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected N25Q64 with page size 256 Bytes, erase size 4 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.