Linuxドライバ共通FAQ

Q:ボードが正常認識されているかどうかの確認方法は?

A:
ドライバをインストールする前の状態であれば、/proc/pciファイルを見てください。
ドライバをインストールしてドライバを起動した後の状態であれば、コンフィグレーション でボード一覧にI/OアドレスとIRQが表示されているかどうかで確認できます。
又は、/proc/ioportsか、/proc/interruptsを見て、I/OアドレスとIRQが表示されているかどうか で確認できます。
また、初期化関数を実行して、戻り値が正常終了であれば、正常に認識しているとの判断ができます。

Q:ボードが認識されているのに、正常動作しません。

A:
BIOSの設定で、Plug & Play OSの設定があるならば、No になっているか確認してください。
Plug & Play OSがYesになっていると、BIOSがPCIバスボードを正常に設定しない可能性があります。
BIOSがPCIバスボードを正常に設定していない場合でも、/proc/pciにはボードが見えている場合 があります。

Q:アプリケーションを起動するとシェアードライブラリがないとのエラーが出るのですが。

A:
インストールが正常にできていない可能性があります。インストールはroot権限で行って ください。
シェアードライブラリは、/usr/libにコピーしただけでは、動作しません。
シェアードライブラリを有効にするには、ファイルをコピーしてシンボリックリンクを作成 した後に、ldconfigコマンドを実行してください。
詳細は、cdio/library/Makefileのinstallの部分を見てください。

Q:シェアードライブラリを/usr/local/libに置いて管理したいのですが。

A:
/etc/ld.so.confを書き換えてldconfigを実行するか、シェルの起動スクリプト等でLD_LIBRARY_PATH の設定を追加してください(例はbash)。
記述内容は、使用するシェルによって異なります。
詳しくは、manコマンドで調べてください。
(例).bash_profile
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

Q:ドライバのmakeに失敗します。

A-1:
ドライバ仕様 にて、対応アーキテクチャやディストリビューションであることを確認してください。

A-2:
ドライバのmakeには、Linuxのカーネルヘッダーが必要になります。
事前にカーネルヘッダーのインストールを行ってください。

A-3:
Raspberry Pi OS May 2023以降の32bitをRaspberry Pi 4 Model Bへインストールすると、OSデフォルト設定では64bitモードとなります。
このため、make時にエラーが発生したり、デバイスドライバによってはmake時にエラーが発生しなくても、デバイスドライバが正常に動作しないことがあります。
弊社での動作確認は32bitモードで行っております。
32bitモードで動作するには、/boot/firmware/config.txt(*1)を編集し、arm_64bit=0を追記します。その後、OSを再起動してください。
*1:環境によって/boot/config.txtになります

詳細は、https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit を参照ください。

Q:ドライバのロードに失敗します。

A:
PCのBIOS設定において、セキュアブートが有効になっているとドライバのロードに失敗する場合がございます。
設定ツール実行時や、ドライバ起動スクリプト実行時に以下のようなエラー表示される場合、セキュアブートを無効にして再度お試しください。

設定ツール実行時エラー例


ドライバ起動スクリプト実行時エラー例