亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁
最近訪問板塊 發(fā)新帖
查看: 11231 | 回復(fù): 26
打印 上一主題 下一主題

請(qǐng)教關(guān)于最簡(jiǎn)單的hello world 模塊,編譯出錯(cuò)!!! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-01-11 12:05 |只看該作者 |倒序?yàn)g覽
5可用積分
本人剛開始學(xué)習(xí)LDD3驅(qū)動(dòng)編程,但再做第1個(gè)例子就出現(xiàn)問題了,請(qǐng)問有人遇到過嗎??該怎么解決,望指點(diǎn)一二,謝了
出現(xiàn)錯(cuò)誤:
[root@localhost helloworld]# make modules
make -C /usr/src/linux-2.6.8.1 M=/usr/local/driver-test/helloworld modules
make[1]: Entering directory `/usr/src/linux-2.6.8.1'
  CC [M]  /usr/local/driver-test/helloworld/hello.o
cc1: error: invalid option `preferred-stack-boundary=2'
cc1: error: bad value (i686) for -march= switch
Assembler messages:
Error: unknown architecture `i686'

make[2]: *** [/usr/local/driver-test/helloworld/hello.o] Error 1
make[1]: *** [_module_/usr/local/driver-test/helloworld] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.8.1'
make: *** [modules] Error 2

最佳答案

查看完整內(nèi)容

你可以把板子配套的Linux-2.6.8.1的kernel的src下到你的PC里,然后make menuconfig一下,接著make一下然后把配套的,編譯完后的目錄作為,KDIR = /home/liuqi/linux-2.6.8.1,這樣的目錄就可以了,就是這么簡(jiǎn)單的,不用著急

論壇徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵節(jié)徽章
日期:2015-03-06 15:50:392015亞冠之大阪鋼巴
日期:2015-06-12 16:01:352015年中國(guó)系統(tǒng)架構(gòu)師大會(huì)
日期:2015-06-29 16:11:2815-16賽季CBA聯(lián)賽之四川
日期:2018-12-17 14:10:21
2 [報(bào)告]
發(fā)表于 2008-01-11 12:05 |只看該作者
你可以把板子配套的Linux-2.6.8.1的kernel的src下到你的PC里,然后make menuconfig一下,接著make一下

然后把配套的,編譯完后的目錄作為,KDIR = /home/liuqi/linux-2.6.8.1,這樣的目錄就可以了
,就是這么簡(jiǎn)單的,不用著急

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-01-11 12:06 |只看該作者
我的hello.c程序,參照別人的
#include <linux/init.h>
#include <linux/module.h>
static int init_module(void){
        printk(KERN_ALERT"hello, violet world \n");
        return 0;
}
static void cleanup_module(void){
        printk(KERN_ALERT"goodbye cruel world \n");
                                                                                
}
MODULE_LICENSE("Dual BSD/GPL");
module_init(init_module);
module_exit(cleanup_module);

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2008-01-11 12:09 |只看該作者
我的Makefile
KERNELDIR = /usr/src/linux-2.6.8.1                #這是我內(nèi)核代碼目錄
    # The current directory is passed to sub-makes as argument
PWD := $(shell pwd)                              #當(dāng)前目錄
INSTALLDIR = /usr/local/driver-test/modules
                                                                                
CROSS_COMPILE    =/usr/local/arm/3.3.2/bin/arm-linux-      #這是我交叉編譯目錄
CC    = $(CROSS_COMPILE)gcc
                                                                                
obj-m := hello.o
                                                                                
modules:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
        cp hello.ko $(INSTALLDIR)
                                                                                
clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
                                                                                
.PHONY: modules modules_install clean

到底哪里出錯(cuò)了????????

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-01-11 13:48 |只看該作者
1。 交叉編譯環(huán)境對(duì)不對(duì)?

2。 2.4 與 2.6 的hello有區(qū)別  ,注意沒?

論壇徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵節(jié)徽章
日期:2015-03-06 15:50:392015亞冠之大阪鋼巴
日期:2015-06-12 16:01:352015年中國(guó)系統(tǒng)架構(gòu)師大會(huì)
日期:2015-06-29 16:11:2815-16賽季CBA聯(lián)賽之四川
日期:2018-12-17 14:10:21
6 [報(bào)告]
發(fā)表于 2008-01-11 14:02 |只看該作者
KERNELDIR = /usr/src/linux-2.6.8.1                #這是我內(nèi)核代碼目錄
    # The current directory is passed to sub-makes as argument
PWD := $(shell pwd)                              #當(dāng)前目錄
INSTALLDIR = /usr/local/driver-test/modules
                                                                                

CROSS_COMPILE    =/usr/local/arm/3.3.2/bin/arm-linux-      #這是我交叉編譯目錄
CC    = $(CROSS_COMPILE)gcc

                                                                                
obj-m := hello.o
                                                                                
modules:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
        cp hello.ko $(INSTALLDIR)
                                                                                
clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
                                                                                
.PHONY: modules modules_install clean



/usr/src/linux-2.6.8.1 (這個(gè)是你的pc的kernel的目錄?

CROSS_COMPILE    =/usr/local/arm/3.3.2/bin/arm-linux-      #這是我交叉編譯目錄
CC    = $(CROSS_COMPILE)gcc
++++++++++》》》》這里是啥意思 呢?

到底是編譯到pc上還是ARM上呢?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-01-11 15:02 |只看該作者
估計(jì)是你的makefile有問題 。

看來你是在ARM上運(yùn)行的

INSTALLDIR = /usr/local/driver-test/modules
modules_install:
        cp hello.ko $(INSTALLDIR)
這些就不要了。       

2.6的驅(qū)動(dòng)模塊指定了加載它的內(nèi)核文件,所以交叉編譯也不用指定了,你內(nèi)核里的makefile用的什么現(xiàn)在還是用什么,它自己知道。
所以:
CROSS_COMPILE    =/usr/local/arm/3.3.2/bin/arm-linux-      #這是我交叉編譯目錄
CC    = $(CROSS_COMPILE)gcc
也不要了。

剩下這么一點(diǎn)了,你在實(shí)驗(yàn)下。 KDIR 千萬是你arm板上跑得內(nèi)核阿,別弄成pc上的了。

# Makefile2.6

ifneq ($(KERNELRELEASE),)


myhello-objs := hllo.o
obj-m := myhello.o

else
PWD  = $(shell pwd)
KDIR = /usr/src/linux-2.6.8.1

all:
        $(MAKE) -C $(KDIR) M=$(PWD)
clean:
        rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions
       
endif

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-01-11 15:36 |只看該作者

回復(fù) #5 T-bagwell 的帖子

CROSS_COMPILE    =/usr/local/arm/3.3.2/bin/arm-linux-      #這是我交叉編譯目錄
CC    = $(CROSS_COMPILE)gcc
++++++++++》》》》這里是啥意思 呢?

到底是編譯到pc上還是ARM上呢?

我是在PC機(jī)上進(jìn)行編譯,然后想把生成的模塊在目標(biāo)板上加載,可是在PC上編譯就沒通過,
CC    = $(CROSS_COMPILE)gcc      這行是指定交叉編譯所用工具
當(dāng)然交叉編譯環(huán)境就建立在自己的PC上的

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-01-11 15:40 |只看該作者

回復(fù) #4 xpdsq 的帖子

我的交叉編譯環(huán)境是買開發(fā)板時(shí),其中自帶的
應(yīng)該沒問題,應(yīng)為我用這個(gè)交叉編譯寫過簡(jiǎn)單的應(yīng)用程序
這個(gè)程序在目標(biāo)板上運(yùn)行沒問題的

2.6下的模塊是.ko
我目標(biāo)板內(nèi)核是2.6.8.1的,PC機(jī)也剛升級(jí)了相同的內(nèi)核的

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-01-11 16:14 |只看該作者

回復(fù) #6 jojolin 的帖子

你好,我主要是在PC機(jī)上進(jìn)行編譯和調(diào)試,在目標(biāo)板(ARM)上工作只是為了驗(yàn)證得到的結(jié)果能否在目標(biāo)板上成功運(yùn)行的.
    INSTALLDIR = /usr/local/driver-test/modules            #這是我在PC板上建立的一個(gè)目錄而已,只                 #是為了能更好管理以后生成的模塊而已的
modules_install:
        cp hello.ko $(INSTALLDIR)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP