当前位置:  技术问答>linux和unix

我编译了内核,pci_register_driver不能使用,我也大量发分~~~ 大量发分~~~

    来源: 互联网  发布时间:2016-01-24

    本文导语:  为什么编译时错误:pci_register_driver没有声明~~~!!!!  怎么挂接到他的内核上啊~~~~~ 我按照下面的方法做了一遍为什么还不能编译 pci_register_driver 啊~~~ 1、下载内核文件如:linux-2.6.20.tar.gz ftp://ftp.kernel.org/pub/linux/ke...

为什么编译时错误:pci_register_driver没有声明~~~!!!! 
怎么挂接到他的内核上啊~~~~~
我按照下面的方法做了一遍为什么还不能编译 pci_register_driver 啊~~~

1、下载内核文件如:linux-2.6.20.tar.gz ftp://ftp.kernel.org/pub/linux/kernel/ 拷贝到/usr/src目录并解压缩。
# cd /usr/src
# tar zvxf linux-2.6.20.tar.gz
2、进入解压目录。(/usr/src/linux-2.6.20.tar.gz,视文件名而定)

ln –s linux-2.6.20 linux,因为在ipvs-1.24中的makefile文件中默认指定Kernel Source的路径为:KERNELSOURCE = /usr/src/linux 
# cd /usr/src/linux-2.6.20.tar.gz
# make mrproper
# make xconfig
# make menuconfig(如果需要 Virtual Server Configuration,则需要执行此项)执行make menuconfig时,我们将进入一个图形化的界面,在其中可以对Linux Kernel进行详细设置。与LVS相关的kernel选项都在“Networking options”中,进入“Networking options”,可以查看到“IP: Virtual Server Configuration”选项,将其它所有的子选项都选上。
3、进行选译,自己设定个性化的内核。完后点“save and exit”
4、进行编译。
# make dep
# make clean
# make bzImage (I要大写哟)
5、编译模块。
# make modules
# make modules_install
# depmod -a
6、编译完成,开始替换文件。
# cd /boot
# rm System.map
# rm vmlinuz
# mv /usr/src/linux-2.6.20/System.map System.map
# mv /usr/src/linux-2.6.20/arch/i386/boot/bzImage vmlinux
7.修改开机设定。
GRUB是 /boot/grub/grub.conf文件
lilo是/etc/lilo.conf文件
可以用命令
# mkinitrd /boot/initrd-2.6.20.img 2.6.20来生成initrd文件。如果用命令,则会自动生成System.map vmlinux 还会修改grub.conf文件,最后之后检查一下,看是否正确。
用GRUB来举例子说。(红色部分)

|
#include      
  #include      
  #include      
int main()
{
pci_enable_device(0,0);
return 0;
}


这段代码概念错误,无论是mm.h, kernel.h, pci.h都是内核态的头文件,你可以在模块中include他们,但你的这段main代码明显是用户态的,怎么可以包含内核头文件,模块的编译也不是g++ -c 那么简单的。

建议参考Linux Device Driver 3rd中关于模块的介绍

|
http://dukeandbyl.bokee.com/1479853.html

|
少量接分

    
 
 

您可能感兴趣的文章:

  • 为什么编译时错误:pci_register_driver没有声明~~~!!!!
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • GCC3.4可以编译2.4内核吗 如何查看某版本内核是用哪个版本gcc编译的
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • [求教]内核加载模块后,这部分内容编译在内核里的吗?
  • 编译新内核后怎么进入原来内核
  • 关于如何把编译进内核的编译成模块
  • 不重新编译内核能修改内核函数吗?
  • 为什么我自己编译的内核比系统自带的内核大了10倍左右?
  • Linux 编译内核之后 没办法选择内核版本
  • 内核编译出现:没有编译规则/driver/pci/devlist.h。
  • *******是不是对内核模块编程然后再重新编译内核就可以把此模块整合到linux系统中
  • 修改内核代码问题:如何编译修改的单个文件而不用重建整个内核?
  • 想问一下,编译LINUX内核时,是否可以只编译其中的一个模块?
  • 新手的菜鸟问题:不同内核版本下编译的程序能否互相调用,是否需要在同一内核下重新编译.
  • 编译新内核时提示内核太大无法把装入软盘,如何解决?
  • 问一个小白问题,在交叉编译时,系统内核和开发板的内核有没有相关性?
  • 我现在要重新编译内核,要怎样才能保留原来的内核
  • 【求助】基于2.6.29内核编译的驱动程序能否应用于2.6.32内核的系统?
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • intel e1000网卡无法加载,内核是2.4.28,想重新编译内核,应该注意哪些步骤!
  • 请问重新编译LINUX内核是否能将没有用的外设的驱动程序删除并减少内核占有内存的资源?请好心人仕指教!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编译GCC时能不能只编译C/C++的编译器?
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 请问:在proc程序中,若里面有模板的类型,能不能通过预编译啊,(编译时老是无法识别类型,我的头文件都已包含了)
  • 用jdk编译Java能不能让编译生成的.class文件自动保存到一个文件夹下?
  • 请问用javac编译一般*.java能通过,但不能编译Servlet写的*.java.提示javax.servlet.http不存在。
  • g++编译过了不能运行
  • 在linux下用CC编译的程序不能执行
  • 现要在一台Pentium100上安装LINUX操作系统,能不能不选用别的品牌的LINUX,而直接用内核编译,然后再加上编译器和SHELL等等其它东西?如
  • 100分请帮忙,我不能编译servlet程序
  • 在redhat7.2中用gcc命令编译程序 却不能运行
  • 为什么GCC编译过的C程序,为什么不能运行。
  • Linux下重编译PHP后Apache竟然不能解析.php文件?
  • 我的UWIN2.9.1不能编译
  • ESQL/C能不能编译C++程序
  • 编译内核后不能启动
  • redhat9.0编译的新核心不能启动,求助!
  • 重编译内核能不能mount ntfs?
  • 急急!!跪求mplayer的编译过程(我的命令行下可以播放,加皮肤不能播)
  • 编译内核2.6.0(test5)后光驱不能用!
  • 求助:程序能编译但不能链接,重新安装了GCC也是那样的问题
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 请教:JSP编译器编译成字节码,跟别的编译器编译出来的有什么不同呢?
  • 高速的网络抓包库PF_ring介绍及编译安装
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • 问:关于gcc编译器和g++编译器
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 在cygwin编译驱动程序要不要交叉编译?
  • C编译器 c++编译器 wieldylcc


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3