zedboard内核头文件各种问题分析



更换内核版本

原来digilent的内核版本是linux-3.3-digilent更改为3.3.0-xillinux-1.0-rich+

参考:http://xillybus.com/xillinux-rich-kernel

错误提示:DISAGREES ABOUT VERSION OF SYMBOL MODULE_LAYOUT,解决方法

问题描述参见:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/

参考:http://www.cnblogs.com/yzwd/archive/2013/03/27/2985086.html

机器:ubuntu 12

问题描述:编译模块的时候提示错误:-1 Invalid module format

通过命令:

dmesg

发现原因其实是:disagrees about version of symbol module_layout

解决方法:

1.先检查当前安装的内核版本

uname -r

2.检查Makefile里指定的kernel源码路径,修改指向正确的路径。保证版本号一致。

LINUX_KERNEL_PATH:=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64

2.1.如果在/usr/src/目录下没有当前安装的内核的源码,那么下载一份重新编译。

2.1.1 ubuntu 下执行命令:

1 sudo apt-get install linux-source

    centos和ret hat下执行命令:

1 yum install kernel-devel

2.1.2 上面命令完成后,在/usr/src目录下可以找到安装的源码。对于ubuntu来说因为下载的是源码所以得接着编译。

在源码目录执行命令(编译完成大概需要30分钟):

make

3.重新编译安装。

原因:Makefile里设置kernel源码的路径错误,没有和当前的内核版本一致,导致版本验证不通过,无法安装。

时间: 2024-10-13 01:40:42

zedboard内核头文件各种问题分析的相关文章

VMVare9.0, Ubuntu12.04安装VMWare Tools找不到内核头文件解决方案

VMVare9.2, Ubuntu14.04安装VMWare Tools 遇到一点问题,提示找不到内核头文件,于是baidu之,作如下总结. 首先执行: sudo apt-get install build-essential linux-headers-$(uname -r) sudo cp /lib/modules/3.13.0-24-generic/build/include/generated/uapi/linux/version.h /lib/modules/3.13.0-24-gen

linux自学心得之--安装内核头文件

对于linux初学者来说有很多的问题需要去探索,不能完全按照书本上的章节顺序学习,有些知识和问题就像是安装软件一样有依赖关系.刚安装linux系统需要安装驱动,安装驱动就要提前安装内核头文件,不然会报各种错误,比如找不到目录,xxx不存在.安装内核头文件的时候可能又会遇到"未发现软件包......"     废话少说,下面就讲一下如何安装内核头文件,本文以kali linux为例,kali linux是基于Debian的Linux发行版,本文章适用于其他基于Debian的linux. 

linux内核头文件kdev_t.h 宏定义解析

kdev_t.h 宏定义解析 这个header file反正不多,直接原因是--遇到了,就搞定它! dev_t 类型的变量定义在linux/types.h 用来保存设备编号--包括主设备号和次设备号.dev_t 是一个32位的数,其中12位用来表示设备号,其余20位用来表示次设备号. 始终不要对这32位是高12位是主设备号还是低2位是主设备号做出假定,不利于代码的可移植性,始终记得使用宏定义来处理dev_t ! 都在这里了: #define MINORBITS 20 //次设备号的占位数目 #d

linux内核头文件 cdev.h 解析

遇到一个内核API--cdev_init 就找到这里来了. #ifndef _LINUX_CDEV_H #define _LINUX_CDEV_H #include <linux/kobject.h #include <linux/kdev_t.h> #include <linux/list.h> struct file_operations; struct inode; struct module; struct cdev { struct kobject kobj; st

linux 内核头文件及内核库文件

与用户空间应用不同的是,内核不能调用标准C库或其它任何不属于内核的库.主要原因是,速度及大小的限制. 标准C库对内核而言实在是太大了. 许多常用的的 libc 函数已经在内核中实现了.内核中的库文件是在内核的根目录下 lib 目录下存放. 如常用的字符串操作函数是在 lib/string.c 中定义的,调用时主需要将头文件 <linux/string.h>包含进即可. 关于内核的头文件,内核是不能包含内核之外的头文件的,如同内核不能调用内核之外的库一样. 1)基本的头文件放在内核的 inclu

安装VMware Tools找不到内核头文件

http://blog.csdn.net/bobbat/article/details/38568885 安装VMware Tools,解决无法找到kernel header path的问题 安装 VMware Tools,运行vmware-config-tools.pl 时,总是提示 The path "" is not valid. What is the location of the directory of C header files that match your run

linux设备驱动程序该添加哪些头文件以及驱动常用头文件介绍(转)

原文链接:http://blog.chinaunix.net/uid-22609852-id-3506475.html 驱动常用头文件介绍 #include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件.#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件.#include <mach/***.h> 是在linux-2.6.29/arch/ar

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

Linux驱动开发常用头文件

头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个.这些头文件各自的功能如下: 1.主目录 <a.out.h>:a.out头文件,定义了a.out执行文件格式和一些宏.<const.h>:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位.<ctype.h>:字符类型头文件,定义了一些有关字符类型判断和转换的宏.<errno.h>:错误号头文件,包含系统中各种出错号.(