こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

makeによるソースのコンパイル方法について

RS485の規格で、動作する、USBとRJ45を接続するケーブルを使用したいと考えています。
Linux(Raspberrypi(debian_version9.1))で作動をさせたいのですが、ドライバーが、

https://www.exar.com/design-tools/software-drivers
のサイトにある、

Product Family /USB UART
Part Number(s)/XR21V1410, XR21V1412, XR21V1414, XR21B1411, XR21B1420, XR21B1422, XR21B1424, XR22801, XR22802, XR22804
Operating System/Linux 3.6.x and newer
Driver Version/1B

を、ダウンロードすると、

xr_usb_serial_common_lnx-3.6-and-newer-pak.zip
 Makefile
 README.txt
 xr_usb_serial_common.c
 xr_usb_serial_common.h
 xr_usb_serial_hal.c
 xr_usb_serial_ioctl.h

というファイルが入っていました。

README.txtを見て、

---------------------------------------------------------------------------
Installation
------------

* Compile and install the common usb serial driver module

# make
# insmod ./xr_usb_serial_common.ko
---------------------------------------------------------------------------

「make」というコマンドを実行しているのですが、


---------------------------------------------------------------------------
make -C /lib/modules/4.9.59-v7+/build M=/lib/modules/4.9.59-v7+/build
make[12]: ディレクトリ '/lib/modules/4.9.59-v7+/build' に入ります
---------------------------------------------------------------------------

を繰り返し表示し、

CTRL+Cを押して止めようとすると、

---------------------------------------------------------------------------
makefile:9: ターゲット 'all' のレシピで失敗しました
make[11]: *** [all] 割り込み
makefile:9: ターゲット 'all' のレシピで失敗しました
---------------------------------------------------------------------------

のようなものを繰り返し表示します。


 Linuxのコマンドはある程度わかりますが、添付されているCのファイルをコンパイル
して、ドライバーをつくるんだろうくらいしかわからない初心者です。

 このmakeはどうやったらRaspberryPiで正常にコンパイルができるようになるのでしょうか。
 具体的なやり方を、教えていただけないでしょうか。

投稿日時 - 2018-03-01 21:30:49

QNo.9434112

すぐに回答ほしいです

質問者が選んだベストアンサー

xr_usb_serial_common_lnx-3.6-and-newer-pak.zip
に入っていた
 Makefile
 README.txt
 xr_usb_serial_common.c
 xr_usb_serial_common.h
 xr_usb_serial_hal.c
 xr_usb_serial_ioctl.h
を /lib/modules/4.9.59-v7+/build に置いたりしていませんか?(質問に書かれているログを見る限りまず間違いなく置かれてると思いますが)
置いてしまうと同じ Makefile の内容を実行して、そのようになりますよ。

/lib/modules/4.9.59-v7+ にはドライバを作成するのに必要なファイルらが置かれるはずなので入手してください(私はDebianは使用していないので具体的なパッケージ名等はわかりません)。
また、そのソースはkernel 3.6.x~3.17.x でしか動作確認されていないようですから、kernel 4.9.x系のDebian9.1ではビルドできなかったりビルドはできても動作しないかもしれません。

投稿日時 - 2018-03-02 00:14:12

お礼

お礼が遅くなりまして申し訳ありません。
ご指摘いただきました通り、buildの中にも同じものを置いておりました。
実際には、ドライバーをコンパイルするための、カーネルの環境が整っていなかったという結論に達し、色々と試行錯誤の結果、ドライバーは生成されました。
とりあえず、デバイスとしての認識はしているみたいなのですが、まだ、実際の通信テスト等がこれからの状況です。
ありがとうございました。

投稿日時 - 2018-03-14 19:11:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

私のほうが初心者かもしれないですが、、、
参考になりそうなご案内をします。

メッセージはディレクトリに入れない事を示しているようですが、
該当のディレクトリは存在しているか確認ください。

ディレクトリが存在して無いなら、
おそらくそこは、関連するソースコードやライブラリが入る所です。
どこかで配布してたり、インストーラーが用意されていると思います。
(開発環境に関する情報としてまとまっているかも)

ディレクトリが存在しているなら、
アクセス権かもしれません。

あと見るとするならMakefileです。
これは、makeコマンドの動作を指定しているテキストファイルです。
(多分ディレクトリ指定する記述があると思います)


今回のご案内は自信はあまりないです。
「すでに知ってます」という内容でしたらごめんなさい。
どこかにラズパイのフォーラムがあると思いますが
それも見つけられずごめんなさい。

投稿日時 - 2018-03-01 22:35:12

お礼

お礼が遅くなりまして申し訳ありません。
ドライバーをコンパイルするための、カーネルの環境が整っていなかったという結論に達し、色々と試行錯誤の結果、ドライバーは生成されました。
とりあえず、デバイスとしての認識はしているみたいなのですが、まだ、実際の通信テスト等がこれからの状況です。
ありがとうございました。

投稿日時 - 2018-03-15 17:42:07

あなたにオススメの質問