[Suzaku:00724] Re: デバイスモジュールのmakeについて

email@hidden
2007年 1月 12日 (金) 13:57:54 JST


大川様

お世話になっております。 伊藤です。

> SUZAKU用にクロスコンパイルされていないですね。 
についてですが、dpkgコマンドでクロス開発パッケージのインストールは確認しています。
また、gccでコンパイルしていますし...大変すみませんが、何を持ってクロスコンパイル
されていないと言われるのか教えて頂けませんか?

また、makefileは『SUZAKU スターターキットガイド (Linux開発編)』、「7.デバイスドライバ開発」
「7.2.2. サンプルドライバモジュールの Makefile」を参考にし以下の様にしました。(一部変更あり)
##makefile#################################
ifndef ROOTDIR
ROOTDIR=/home/somebody/uClinux-dist-20051110-suzaku6 <-------変更
endif
PATH := $(PATH):$(ROOTDIR)/tools
UCLINUX_BUILD_USER = 1
include $(ROOTDIR)/.config
LIBCDIR = $(CONFIG_LIBCDIR)
include $(ROOTDIR)/config.arch

OBJS = dd.o	<---------変更
#########################
CFLAGS = -Wal  <-------追加
CC = gcc     <-------追加
#########################
all: $(OBJS)

clean:
    -rm -f $(OBJS)

%.o: %.c
  $(CC) -c $(CFLAGS) -o $@ $<
########################################

##ソース#################################
#define __KERNEL__
#define	MODULE
#include	<linux/module.h>
#include	<linux/kernel.h>
#include	<linux/fs.h>
#include	<linux/string.h>
#include	<asm/uaccess.h>

static int dd_open(struct inode *inode, struct file *fp)
{
    printk(“dd_open\n”);
    return 0;
}
static struct file_operations fops = {
    open = dd_open,
};
int init_module(void) {
    int ret;
    ret = register_chrdev( 60, "dd", &fopes);
    printk( KERN_INFO "dd Module Install\n" );
    return 0;
}

void cleanup_module(void) {
    unregister_chrdev(60, "dd");
    printk( KERN_INFO  "dd Module Uninstall\n" );
}
#########################################

初歩的で申し訳ありませんが、よろしくお願いいたします。

-----Original Message-----
From: email@hidden [mailto:email@hidden] On Behalf Of Tetsuya OHKAWA
Sent: Friday, January 12, 2007 10:53 AM
To: SUZAKU general discussion list
Subject: [Suzaku:00723] Re: デバイスモジュールのmakeについて

大川です。

下記、頂いた内容を拝見すると、
SUZAKU用にクロスコンパイルされていないですね。

一度、『SUZAKU スターターキットガイド (Linux開発編)』をご覧頂くと
SUZAKUでの開発方法(デバイスドライバやアプリケーションの作成方法)について
理解が深まるかと思います。
#スターターキットをお持ちでない方も、活用いただけます。

本書は、ダウンロードサイトから取得できます。
http://download.atmark-techno.com/suzaku-starter-kit/suzaku_starter_kit_guide_linux-1.2.0.pdf



Itou Akira wrote:
> いつもお世話になっております。
> 伊藤と申します。
>
> 早速ですが表題の件...
> デバイスドライバの勉強で以下
> (1)のモジュールを作成し、
> (2)の内容でMakeを掛けましたが、設定ができてないようで、
> (3)のエラーとなりデバイスモジュールが作成できません。
>
> 以下環境でMakeを掛けました。
>  1)uClinux-dist-20051110-suzaku6/フォルダにdd_drive/を新たに作成。
>  2)(1)及び(2)のdd.c、Makefileをdd_drive/フォルダにコピー
>  3)dd_drive/フォルダに移動しMakeを実行
>    email@hidden:~/uClinux-dist-20051110-suzaku6/dd_drive$ make
>
> 色々とMakefileの内容を変えてみたり、dd_drive/の位置を変えてみたりしましたが
> ダメでした。
> 大変申し分けありませんが、御教授よろしくお願いします。
>
> #####(1)↓ dd.c##########################################
> #include	<linux/init.h>
> #include	<linux/module.h>
>
> static int dd_init( void )
> {
>     printk( KERN_INFO "dd Module Install\n" );
>     return 0;
> }
>
> void dd_cleanup( void )
> {
>     printk( KERN_INFO  "dd Module Uninstall\n" ); }
>
> int init_module(void)
> {
>     return dd_init();
> }
> void cleanup_module(void)
> {
>     dd_cleanup();
> }
> #####(1)↑##############################################
> ###########################################################
> #####(2)↓Makefile######################################
> INCDIR = -I../usr/src/linux-2.4.x/include/linux
> CFLAGS = -O2 -Wall -c -D__KERNEL__ -DMODULE $(INCDIR) DRIVER  = dd
>
> all: $(DRIVER).o $(DRIVER)
>
> $(DRIVER).o:   $(DRIVER).c 
> 	gcc $(CFLAGS) $(DRIVER).c
>
> device:
> 	mknod -m 666 /dev/dd c 60 0
> #####(2)↑##############################################
> ###########################################################
> #####(3)↓コンパイルエラー##############################
> gcc -O2 -Wall -c -D__KERNEL__ -DMODULE -I ../linux-2.4x/include/linux 
> dd.c In file included from /user/include/asm/system.h:5,
>                  from /user/include/asm/prosessor.h:18,
>                  from /user/include/asm/thread_info.h:13,
>                  from /user/include/linux/thread_info.h:21,
>                  from /user/include/linux/spinlock.h:19,
>                  from /user/include/linux/capability.h:45,
>                  from /user/include/linux/sched.h:7,
>                  from /user/include/linux/moduley.h:10,
>                  from dd.c:2:
> /userinclude/linux/kerner.h:72 error: syntax error before "size_t"
> /userinclude/linux/kerner.h:74 error: syntax error before "size_t"
>>   省略
>> make: ***[dd.o] Error 1
> #####(3)↑##############################################
>
> 尚、環境は以下の通りです。
> ・SUZAKU-V
> ・uClinux-dist-20051110-suzaku6
>
> 以上、よろしくお願いいたします。
>
>   

_______________________________________________
suzaku mailing list
email@hidden
http://lists.atmark-techno.com/mailman/listinfo/suzaku




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