Armadilloフォーラム

カーネルモジュール(usb-skeleton.c)のコンパイルについて

da-takatori

2020年10月7日 15時00分

お世話になっております。
高取と申します。

さて、早速ですが、カーネルモジュールのコンパイルについてです。

専用通信プロトコルをもつUSB機器をArmadillo 640に接続して通信したいと考えています。
ATDE7-i386上で、カーネルのソースコード(linux-v4.14-at25)を用いて、out-of-treeによるコンパイルを行いたいのですが、方法が分かりません。

"drivers/usb/usb-skeleton.c"を用いてカーネルモジュールをmakeによって作成する手順をご教示いただければ幸いです。

御社のサイトを検索してみたところ、atmark-distでのカーネルモジュールの作成方法を見つけることはできたのですが、debianでのカーネルモジュールの作成方法が見当たらなかったのでご相談させていただきました。

お忙しいところ申し訳ございませんが、よろしくお願いいたします。

コメント

at_akihito.irie

2020年10月7日 17時43分

入江です。

> ATDE7-i386上で、カーネルのソースコード(linux-v4.14-at25)を用いて、out-of-treeによるコンパイルを行いたいのですが、方法が分かりません。
out-of-treeでコンパイルしなければならない事情がお有りでしょうか?

out-of-treeでなく、カーネルと同時にビルドする手順でしたら以下の様になっております。

1. linux-v4.14-at25のソースに添付のpatchを適用していただいた後に、
menuconfigにて以下の様に設定してください。

[*] Enable loadable module support  --->
    [*]   Module unloading
    [*]   Module versioning support
    [*]   Source checksum for all modules
 
Device Drivers  --->
    [*] USB support  --->
        <M>   USB skeleton driver

2. driver/usb/usb-skeleton.c を driver/usb/misc/ に配置してください。

[ATDE7 ~/linux-4.14-at25]$ cp driver/usb/usb-skeleton.c driver/usb/misc/usb-skeleton.c
[ATDE7 ~/linux-4.14-at25]$ ls driver/usb/misc/usb-skeleton.c
driver/usb/misc/usb-skeleton.c

3. カーネルをビルドしてください。

[ATDE7 ~/linux-4.14-at25]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage && \
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

4. driver/usb/misc/usb-skeleton.ko が生成されていることを確認してください。

[ATDE7 ~/linux-4.14-at25]$ ls driver/usb/misc/usb-skeleton.ko
driver/usb/misc/usb-skeleton.ko

5. Armadillo上で usb-skeleton.ko をinsmodできることを確認してください。

[armadillo]# ls usb-skeleton.ko
usb-skeleton.ko
[armadillo]# insmod usb-skeleton.ko
[   29.124929] usbcore: registered new interface driver skeleton

注意点としまして、

[*] Enable loadable module support  --->

のコンフィグレーションがされているカーネルでなければinsmodできません。
上記手順でビルドしたカーネルをお使いいただくと問題なくinsmodできます。

ファイル ファイルの説明
usb-skeleton-config.patch

da-takatori

2020年10月8日 14時42分

入江様

お世話になります。
高取です。

迅速なご回答ありがとうございます。
早速試してみたところ、無事にドライバを動作させることができました。

out-of-treeについては、特にこだわりはございません。
今回ご提示いただいた方法で満足です。

お忙しいところ、ご対応いただき、誠にありがとうございました。