当前位置: 技术问答>linux和unix
[求助]关于驱动静态编译进内核的问题!
来源: 互联网 发布时间:2016-03-12
本文导语: 我按照网上的一些文章写了个驱动,再redhat9下是可用的,可以加载和调用,但是我想把它编译到我的一块开发板(ARM9)的LINUX内核上,却出现了几个问题。 1、在redhat9下编译驱动我用的是默认GCC,编译都没有问题,...
我按照网上的一些文章写了个驱动,再redhat9下是可用的,可以加载和调用,但是我想把它编译到我的一块开发板(ARM9)的LINUX内核上,却出现了几个问题。
1、在redhat9下编译驱动我用的是默认GCC,编译都没有问题,但是我要把驱动编译成开发板能用的,我想肯定应该用交叉编译的GCC,但是设置了这个GCC的路径(路径不会有错),但是这时候出了一堆的错误,什么缺少ax,之类的很多,这个原因可能会是什么?
2、书上说把驱动编译到内核,首先要把驱动设备程序文件复制到/linux/drivers/char 目录下,但是我开发板的linux根本没有这个目录,找来找去也找不到存放字符设备驱动程序的目录,这种情况怎么办?
3、我开发板用lsmod命令连一个模块也看不到,这个命令是可用的,是不是厂商把这个linux裁减的比较厉害?我的文件系统为2.6M的ramdisk.image.gz
求助,谢谢了!
1、在redhat9下编译驱动我用的是默认GCC,编译都没有问题,但是我要把驱动编译成开发板能用的,我想肯定应该用交叉编译的GCC,但是设置了这个GCC的路径(路径不会有错),但是这时候出了一堆的错误,什么缺少ax,之类的很多,这个原因可能会是什么?
2、书上说把驱动编译到内核,首先要把驱动设备程序文件复制到/linux/drivers/char 目录下,但是我开发板的linux根本没有这个目录,找来找去也找不到存放字符设备驱动程序的目录,这种情况怎么办?
3、我开发板用lsmod命令连一个模块也看不到,这个命令是可用的,是不是厂商把这个linux裁减的比较厉害?我的文件系统为2.6M的ramdisk.image.gz
求助,谢谢了!
|
1. 交叉编译链没有正确安装。
2. 找找同类字符设备在哪,嵌入式内核较小,不一定有那么复杂的目录结构。
3. lsmod只能看到你手动insmod的模块,其他设备驱动都编译到内核去了,lsmod看不到。
2. 找找同类字符设备在哪,嵌入式内核较小,不一定有那么复杂的目录结构。
3. lsmod只能看到你手动insmod的模块,其他设备驱动都编译到内核去了,lsmod看不到。
|
就是工具链
像GCC、LD、AR,可能要手动安装一下,一般的包里都会带的
像GCC、LD、AR,可能要手动安装一下,一般的包里都会带的
|
...当然了....,
比如你的gcc是powerpc-linux-uclibc-gcc
那么对应的一般就是powerpc-linux-uclibc-ld,powerpc-linux-uclibc-ar
比如你的gcc是powerpc-linux-uclibc-gcc
那么对应的一般就是powerpc-linux-uclibc-ld,powerpc-linux-uclibc-ar