シェルでデバイスドライバを使用しようとしていますが、そのドライバがすでにカーネルで使用されている場合はどうなりますか?

シェルでデバイスドライバを使用しようとしていますが、そのドライバがすでにカーネルで使用されている場合はどうなりますか?

これがその場合です。私は組み込みLinuxに初めてアクセスし、LEDドライバLP5521のいくつかのコマンドをテストしたいと思います。私のマザーボードには、このコントローラICを含むRGB LEDがあり、デバイスツリーで直接「ハートビート」モードを使用して初期化します。したがって、ボードが起動するとすぐにLEDが点滅し始めます。

コマンドラインでコントローラのフラッシュモードを変更し、通常LP5521を使用して慣れているように要求されました。

LP5521ドライバのマニュアルで見つかりました。https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/leds/leds-lp55xx.txtこの例:

For example, run blinking pattern in engine #1 of LP5521
echo 1 > /sys/bus/i2c/devices/xxxx/select_engine
echo 1 > /sys/class/firmware/lp5521/loading
echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
echo 0 > /sys/class/firmware/lp5521/loading
echo 1 > /sys/bus/i2c/devices/xxxx/run_engine

問題は、最初の行を試行するとエラーが発生することです。

エラー-2はlp5521への直接フ​​ァームウェアのロードに失敗します。

なぜこのようなことが起こるのか分からない。カーネルがすでにハートビートモードドライバを使用しているため、シェルから何も送信できないようですが、わかりません。

ありがとうございます! !

関連情報