linux设备驱动开发中有关scull模块的编译问题

2023-05-16

        昨天运行了一下《linux设备驱动程序》第三章的那个scull例子,发现出现如下错误提示:
        error: linux/config.h: No such file or directory
我的系统内核版本是2.6.35的,config.h这个头文件貌似在2.6.19的内核版本后就没有了,搜了搜网上的文章,有些人说打过patch的没问题,这是肯定的,如果不打patch,就只有改代码了,又有人说只要在access.c中添加 #include <linux/sched.h>和#include <linux/capability.h>就能通过编译,不过,出现了如下错误:
        error: 'struct task_struct' has no member named 'uid'
        error: 'struct task_struct' has no member named 'euid'
        
下面是我的解决办法:
    1. 在 pipi.c 文件中添加 #include <linux/sched.h>
    2. 去掉 main.c 中的 #include <linux/config.h>
    3. 在 access.c 文件中添加 #include <linux/sched.h>
    4. struct task_struct定义在include/linux/sched.h中,原来task_struct结构体定义有所改动,将uid和euid等挪到 cred中,见            
       include/linux/sched.h和include/linux/cred.h。
    因此只需要将报error的代码所在的文件做如下修改
    current->uid 修改为 current->cred->uid
    current->euid 修改为 current->cred->euid
    5. 将Makefile中的
    CFLAGS += $(DEBFLAGS)

      CFLAGS += -I$(LDDINC)

      修改为:

      EXTRA_CFLAGS += $(DEBFLAGS)

      EXTRA_CFLAGS += -I$(LDDINC)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux设备驱动开发中有关scull模块的编译问题 的相关文章

  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少

随机推荐

  • windows环境变量配置你知道吗?

    1 什么是windows环境变量 xff1f 我们直接看百度的专业解释 环境变量 xff08 environment variables xff09 一般是指在操作系统中用来指定操作系统运行环境的一些参数 xff0c 如 xff1a 临时文
  • C# 远程RDP共享桌面,控制桌面,远程桌面登录注销,用户切换,包括客户端,服务端软件及代码

    可以一次打开16个桌面 可以支持登录切换用户 包含客户端NoteWin exe WINDOWS服务NoteWinService exe xff0c 当前用户服务NoteWService exe xff0c 远程启动服务AppLoad exe
  • 树莓派3B+ 网页控制GPIO(WebIOPi)

    树莓派3B 43 网页控制GPIO xff08 WebIOPi xff09 对于没接触编程的小白来说 xff0c 让他们编程控制树莓派的GPIO口输出输入 xff0c 那简直就是折磨人 xff0c WebOPi就是一个开源 方便 实用的网页
  • 解决Win10 自动更新问题(可以认为永久关闭更新)

    解决Win10 自动更新问题 xff08 可以认为永久关闭更新 xff09 这是我意外想到的一个方法 xff0c 步骤十分简单 xff0c 什么都不用设置 xff0c 不过每隔35天就要操作一下 xff0c 因为win10最多临时暂停35天
  • * failed to start daemon *解决方法

    16 11 23 error could not install smartsocket listener cannot bind to 127 0 0 1 5037 通常每个套接字地址 协议 网络地址 端口 只允许使用一次 10048 1
  • 【工具】验证是否安装cuda和cuDNN

    验证是否安装cuda 验证cuda是否安装方法1 span class token keyword import span torch span class token keyword print span span class token
  • 常用的url链接

    maven库 xff1a https mvnrepository com 一些基本工具的安装和语法 xff0c 如mysql docker https www runoob com docker centos docker install
  • 达梦7数据库后台导入导出命令解释

    达梦7使用的dexp和dimp xff0c 用法和exp和imp类似 xff0c 在命令后直接加上help可以查看帮助 吐槽一下竟然没有 dexp dimp help或 xff1f 这种操作 xff0c 必须是help才可以识别 格式 de
  • 麒麟V10修改root密码

    不知为何 xff0c root密码登录不上去 xff0c 几番测试都说是密码错误 基本环境 xff1a 国产服务器和麒麟V10 人不在机房 步骤如下 xff1a 1 连接服务器 xff0c 打开带外界面 2 打开控制台界面 3 重启电脑 x
  • python 图片文字提取

    转载 xff1a python怎么读取png python 图像处理 天道酬勤 花开半夏 图像处理不是一件简单的工作 对你来说 xff0c 一看到某样东西 xff0c 马上就知道你在看什么很容易 但是 xff0c 电脑不是这样工作的 对你来
  • C++ MFC调用JS代码获取返回值

    C 43 43 有时候会需要调用JS代码 xff0c 这对于C 43 43 来说或者对于国内来说一直是比较蛋疼的问题 xff0c 主要是资料少 xff0c 微软提供了一个COM组件 xff0c 里面包含有JS引擎 xff0c 这个组件就是
  • Python类基本概念 类对象、类属性、实例化、实例对象、实例属性、类方法、类构造函数、类继承

    想看视频的直接移步 python类对象类属性类的实例化实例对象实例属性 哔哩哔哩 bilibili python类方法类构造函数实例方法静态方法 哔哩哔哩 bilibili python类的继承代码实现 哔哩哔哩 bilibili 类对象
  • 用API获取IP地址

    设计蜂巢IP地址查询接口 xff1a http www hujuntao com api ip ip php腾讯IP地址查询接口 xff1a http fw qq com ipaddress新浪IP地址查询接口 xff1a http int
  • 打印出所有的水仙花数 Java实现

    题目 xff1a 打印出所有的水仙花数 所谓水仙花数是指一个三位数 xff0c 其各位数字立方和等于该数本身 例如 xff1a 153是一个 水仙花数 xff0c 因为153 61 1的三次方 xff0b 5的三次方 xff0b 3的三次方
  • iOS CGContext实现绘制任意圆角

    少说废话直接上代码 CGSize size 61 view bounds size UIGraphicsBeginImageContextWithOptions size NO UIScreen mainScreen scale CGCon
  • Kali Linux安装(VM环境下2022版本)

    目录 1 Kali虚拟机创建 2 Kali系统安装 1 Kali虚拟机创建 1 下载安装VM xff08 VMware Workstation xff09 软件 官网下载地址 xff1a 下载 VMware Workstation Pro
  • 为树莓派更换国内镜像源

    使用管理员权限 xff08 经由sudo xff09 xff0c 编辑 etc apt sources list文件 参考命令行为 xff1a span class token function sudo span span class t
  • LINK : fatal error LNK1104: cannot open file “kernel32.lib

    场景 xff1a 使用 VC6 0English 软件时 xff0c 提示 xff1a LINK fatal error LNK1104 cannot open file 34 kernel32 lib 解决方案 配置 Link 项的 In
  • 利用FFmpeg完成 mp4格式转avi格式

    我们可以用ffmpeg来完成一些很有用的功能 这篇文章就来说说 xff0c 怎样用ffmpeg来完成视频格式的转换 首先在我们搭建好ffmpeg环境的基础上 xff0c 如下链接所示 https blog csdn net laibowon
  • linux设备驱动开发中有关scull模块的编译问题

    昨天运行了一下 linux设备驱动程序 第三章的那个scull例子 xff0c 发现出现如下错误提示 xff1a error linux config h No such file or directory 我的系统内核版本是2 6 35的