Fedora 20 为内核建立可用的源码树

先抱歉一下,由于前几天比较忙,所以只列了个标题,没有实际写点儿东西,下面言归正传。

首先说一下项目背景,由于项目要求,我需要在Linux下编写一个CAN卡的驱动,并使用SocketCAN的接口,我选择的发行版是Fedora20,内核版本用的是3.17.3-200.fc20。通过yum安装了module,kernel-devel……反正是我觉得用得到的都装了,键入make xconfig修改模块添加CAN Bus subsystem support,我用的是研华的卡,所以要还要添加sja1000的模块,这个不详细说,相信你们都懂。然后退出敲入make modules,问题出现了,Linux出现如下提示:

没有规则创建syscall_32.tbl需要的目标syscall_32.h(大概是这么一个提示)

反正就是安装了所有的头文件,模块,内核工具及源码均不能解决该问题(低版本的时候从来没有这个问题),万般无奈之下去Fedora的Wiki看了一下,按照其中的方法创建了源码树才得以解决该问题,可以在本地编译模块。

我的目标不是建立一个可以安装的rpm包,而是让我当前发行版的内核可以正常编译我的驱动模块(我的机器确实不能只通过yum更新devel和module包来编译驱动模块)

按照wiki的手册(英文较新,中文比较容易懂)一直做到环境变量导出这一步

export arch=x86_64 # replace x86_64 with your arch
export ver=3.7 # replace 3.1 with your kernel version
export subver=4-204
export fedver=fc16 # replace fc16 with your fedora version 
版本号自己改改。
然后从/boot下拷贝配置文件到rpmbuild/BUILD/kernel-3.17.fc20/linux-3.17.3-200.fc20.i686并命名为.config
输入make oldconfig
输入make xconfig
做些修改退出
接着make modules && make modules_install
接着make && make install
OK至此内核修理完成
再次编译自己的模块,没有出现syscalls_32.tbl找不到的提示,问题解决!
有描述不清的地方,或者瞎写的地方,欢迎拍砖


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值