[Suzaku:01559] Re: デバイスドライバに関する質問

Ken-ichiro Ishikawa email@hidden
2009年 7月 29日 (水) 18:31:32 JST


こんにちは、SUZAKU開発者メーリングリストの皆様。

石川です。

2009/07/28 18:37 に mizo<email@hidden> さんは書きました:
> 溝渕です。

 ご回答ありがとうございます。

> Ken-ichiro Ishikawa wrote:
>> FPGAの出力を受け取るためのキャラクタ型デバイスドライバを開発したつもりになって、
>> SUZAKUに書き込んでinsmodしてみました。
>> insmodそのものはエラーもなく実行できたのですが、lsmodとしてみると
>>
>> Module                  Size  Used by    Not tainted
>> timesync_driver 2928 0 - Live 0xc3007000
>>
>> と253と表示されるべきところが2928と表示され、
> 1行目のヘッダ部分に2番目の項目はSizeであると書いてあります。ATDEなどで
> [ATDE ~]$ lsmod
> とすると2番目の項目がメジャー番号で無いことがわかると思います。

 すいません、勘違いしていました。

>> 実際にアプリケーションからオープンしようとするとオープンできません。
> 何をオープンしようとしたのでしょうか?

 勝手に/dev/timesync_driverが作成されるものだと勘違いしていました。

>> SUZAKU上で
>> ls /dev
>> としても開発したデバイスドライバであるtimesync_driverは表示されません。
> mknodで作成してみてください。
>
> # mknod timesync_driver c 253 0

 作成することができました。
ありがとうございます。

 失礼します。

>
>>  timesync_driverの初期化部分は
>>
>> static int __init timesync_init(void)
>> {
>>   int error;
>>
>>   error = register_chrdev(253, "timesync", &timesync_fops);
>>   if(error < 0){
>>     printk("Timesync driver can't get major number 253\n");
>>     return error;
>>   }
>>
>>   timesync_major = error;
>>   printk("Timesync driver initizalized !\n");
>>
>>   return 0;
>> }
>>
>> となっています。
>> insmodしてもTimesync driver can't get major number 253は表示されません。
>>
>> module_init(timesync_init);
>> は宣言しています。
>>
>> Makefileの主要部分は次のとおりです。
>> MODULES = timesync_driver.o
>> MODULE = timesync_driver.ko
>>
>> ifneq ($(KERNELRELEASE), )
>> obj-m := $(MODULES)
>> else
>> ROOTDIR = /home/ishikawa/atmark-dist-20090318
>> ROMFSDIR = $(ROOTDIR)/romfs
>> include $(ROOTDIR)/.config
>> include $(ROOTDIR)/config.arch
>> MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
>>
>> ROMFSINST     = romfs-inst.sh
>> PATH          := $(PATH):$(ROOTDIR):$(ROOTDIR)/tools:$(GCCDIR):$(GCCDIR)/bin
>>
>> LINUXDIR = $(CONFIG_LINUXDIR)
>> KERNELRELEASE = ${shell make -sC $(ROOTDIR)/$(LINUXDIR) kernelrelease}
>>
>> modules:
>>       $(MAKEARCH) -C $(ROOTDIR)/$(LINUXDIR) M=${shell pwd} modules
>>
>> デバイスドライバ開発時には特別なことをしなければならないのでしょうか?
>> それとも根本的に間違っているのでしょうか?
>>
>> 分かる方教えてください。
>> _______________________________________________
>> suzaku mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
>>
>
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
>



suzaku メーリングリストの案内