Linux/安卓驱动编译常见错误与解决方法

linux 内核驱动提取,提取安卓的Linux内核和驱动模块 水平有限,中间可能有各种错误,欢迎拍砖指正。大家最关心的一个问题是,平板电脑或手机要是安装Linux,驱动的问题怎么解决?我们知道Linux的驱动是要加载在内核里的,而且驱动和内核要匹配才能加载。如果我们能提取安卓的Linux内核和驱动模块,它们肯定是匹配的,为什么不能用于其它Linux系统呢?于是我就去试了试,结果发现是可以用的。之前自己直接编译的触摸屏驱动用不了,声音、wifi、键鼠、屏幕休眠... 阅读详情

本贴对Linux和安卓系统驱动编译中常见的错误进行记录,并补充相应解决方法,若读者对照此方法无法解决,欢迎补充讨论。

错误一:make时提示找不到make、gcc、g++、flex等

表示当前系统缺少必要的工具包,可执行以下命令安装。

sudo apt install -y make flex bison g++ build-essential

错误二:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

表示当前编译环境会进行编译的 DATE 以及 TIME 进行检查,若有Warnings警告也作为错误处理上报。参考解决方法:

1. 驱动对应的Makefile文件中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make编译。(注:若 CFLAGS 不生效,可将关键字替换为 EXTRA_FLAGS重试)

2. 修改 /lib/modules/'uname -r'/build/Makefile 文件,找到包含 “-Werror=date-time” 这一行注释掉,然后保存退出,重新编译。

错误三:/lib/modules/xxx/build: No such file or directory

表示当前系统缺少内核开发包,为安装匹配系统架构和内核版本的包即可解决此问题。因不同系统包名和安装指令不同,如下仅给出部分系统解决方式供参考。

Ubuntu/Debian/Linux Mint上安装内核头文件

使用dpkg-query命令检查是否有可用的内核头文件。

$ dpkg-query -s linux-headers-$(uname -r)

sudo apt-get install build-essential  //install build-essential(optional)
sudo apt-get update                       
sudo apt-get install linux-headers-$(uname -r)

Fedora/CentOS/RHEL上安装内核头文件

$ rpm -qa | grep kernel-headers-$(uname -r)
$ sudo yum install kernel-headers
$ sudo yum install kernel-devel

树莓派/Raspberry Pi上安装内核头文件

sudo apt install raspberrypi-kernel-headers

其他系统解决方法类似。欢迎大家讨论补充~

Nano pi/树莓派及arm架构,Ubuntu下找不到包问题 近日,卑微的小编68米在某鱼淘了一个nanopi 2Fire(烈火版)的开发板,用来做服务器+nas。 板子就长这样,然后sd卡烧写Ubuntu 系统,正常开机,但是 快节奏的我怎么能满足于 官方源的龟速呢。所以,就换源嘛 由于开发板使用的是arm架构 ,而百度的ubuntu国内源 基本都是基于x86的。于是,就出现了下边的问题。 解决办法 首先打开配置源的文件 vim /etc/apt/sources.list 将官方源注释(前方加#)并加入以下源,亲测可用,理论基于arm架构的开发板都可用。 阅读详情

相关推荐

安卓虚拟化进阶指南:Linux内核驱动定制与模拟器适配实战

本文详细介绍了安卓虚拟化环境中Linux内核驱动定制与模拟器适配的实战指南。涵盖内核版本匹配、驱动编译、Bazel构建系统使用及常见问题排查,重点解决vermagic不匹配等核心难题,帮助开发者实现自定义硬件支持和内核调试。

dropout6artist的博客 1102

msm8953 android7.1 配置笔记

文章目录1.带有__DATE__,__TIME__等宏的代码编译失败。 1.带有__DATE__,__TIME__等宏的代码编译失败。 编译时报错的内容如下: error: expansion of date or time macro is not reproducible [-Werror,-Wdate-time] 解决方法: Ⅰ.在build/core/config.mk文件中,找到TAR...

wang 恒 的博客 2510

Linux 4.4内核移植以及Android系统编译

Android M预移植到tiny4412

xiaojimmychen的专栏 1万+

3399 配置笔记

1. adb shell 默认超级管理员 在build/core/main.mk下 将 ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1 改成ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 然后执行make bootimage重新生成 2.默认启用USB连接 在device/rockchip/rk3399/init.box.rc文件中加入以下两行: write /sys/kernel/debug/usb@fe80000

DFH0623的博客 564

保姆级教程:在RK3588 Android12上搞定ST LSM6DSR传感器驱动(附设备树配置与常见编译错误解决)

本文详细介绍了在RK3588 Android12平台上移植ST LSM6DSR传感器驱动的完整流程,包括环境准备、驱动集成、设备树配置、编译问题解决及功能验证。通过实战指南,开发者可以快速掌握在Android12系统中适配ST芯片传感器的关键技术,避免常见错误,提升开发效率。

460

Anbox编译实战:CMake与Android.mk常见错误排查指南

CMake作为跨平台构建系统生成器,是现代C++项目构建的标准工具,它通过解析CMakeLists.txt文件生成平台特定的构建脚本。Android NDK则提供了Android.mk这一基于GNU Make的构建系统,用于编译原生代码。在Linux系统上实现Android应用兼容性时,常需同时处理这两种构建系统,其技术价值在于能够高效集成Android运行时环境而不依赖硬件虚拟化。应用场景包括嵌入式系统、容器化Android环境以及定制化ROM开发。本文聚焦于Anbox项目编译过程中CMake依赖缺失、版

adiking520110的博客 462

Linux 驱动编译报错:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

编译驱动时遇到这个错误提示,表示当前编译环境中将关于 DATE 以及 TIME 的警告也作为错误来进行处理的。有如下几种方法可以参考: 1. 在编译驱动的相应 Makefile 中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make; 2. 若 CFLAGS 不生效,将关键字替换为 EXTRA_FLAGS; 3. 修改 /lib/modules/

SoldierJazz的专栏 8140

RK3568开发板实战:手把手教你编译RTL8723DU WiFi驱动(附常见错误解决)

本文详细介绍了在RK3568开发板上编译RTL8723DU WiFi驱动的完整流程,包括环境准备、Makefile配置、常见错误解决及性能优化。通过实战指南,开发者可以快速掌握驱动编译技巧,解决嵌入式开发中的WiFi模块适配问题,提升物联网设备开发效率。

weixin_30342209的博客 501

提取安卓的Linux内核和驱动

水平有限,中间可能有各种错误,欢迎拍砖指正。 转自这位大侠的空间,写得很好,真的很需要 http://user.qzone.qq.com/249811077/blog/1386423610 大家最关心的一个问题是,平板电脑或手机要是安装Linux,驱动的问题怎么解决? 我们知道Linux的驱动是要加载在内核里的,而且驱动和内核要匹配才能加载。 如果我们能提取安卓的Linux内核和驱动模

lqxandroid2012的专栏 6099

第二部分 s3c2440 移植linux内核 添加网卡支持 yaffs2文件系统支持

三、内核的移植 1、移植内核 首先,下载源码包:https://www.kernel.org/ 现在时间为2014年12月20日其主界面截图为: 在此,就在下较新的稳定的版本作为尝试。在这里有个命名问题需要说明一下,最前面的2.6或者3.18是主版本号码,后面的次版本号是比如2.6.32.65中的32,再后面的比如2.6.32.65中的65是升级版本号,主版本号为奇数的是开发本

Never too old to learn. 8180

基于深度学习的图像去雨(Opencv,Pytorch,Cnn)

最近做了一个图像去雨项目,使用的语言为Python,深度学习框架为Pytorch。去雨效果不错,具体请看效果视频!图像去雨(GAN,Opencv,Pytorch)

Czqqwer的博客 2612

安卓虚拟化实战教学(二):Linux 内核与驱动定制详解

如果有同学按照官方/本文的Guide下载了指定的内核版本,并且生成了自己的驱动文件,但是push到设备里面执行insmod xxx,你会发现模块加载失败,提示错误。分析原因发现这里是vermagic不匹配引入的。vermagic是 Linux 内核模块的重要元数据之一,表示。它的全称可以理解为,主要用于模块和内核之间的兼容性检查。

a2261281的博客 2022

YOLOv8+ByteTrack实战:5分钟搞定多目标跟踪(附鱼群检测调参秘籍)

本文详细介绍了如何利用YOLOv8和ByteTrack快速实现多目标跟踪,特别针对鱼群检测等复杂场景提供参数调优秘籍。通过环境配置、核心机制解析和专项调优技巧,开发者可在5分钟内搭建高效跟踪系统,适用于水产养殖、交通监控等实际应用。文章还包含工程落地方案和性能优化建议,帮助实现精准的鱼群计数与行为分析。

e1f2g的博客 1019

【安卓开发系列 -- 系统开发】安卓开发流程梳理 -- 从底层到 APP (Linux 驱动开发)

【安卓开发系列 -- 系统开发】安卓开发流程梳理 -- 从底层到 APP (Linux 驱动开发) 【0】开发环境简介 1. 主机,Win10;虚拟机,Ubuntu 16.04 2. 开发板,AIO-3399C 六核 AI 开发板 3. android 源码,android 7.1 【1】Linux 驱动开发 Linux 驱动开发 Makefile 文件 ifneq ($(KERNE...

CopperSun 技术博客 878

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6217

MySQL8.2.0下载安装

4、点击No thanks,just start my download,就是只是开始下载的意思,点击下载,等待下载完成。5、新建空白行,或直接双击紧挨的空白行,把复制的mysql的安装路径bin路径复制粘贴过来,确定,确定,确定。1、上面点击finish后,自动勾选了run mysql配置,自动会打开配置页面,点击Next。1、双击安装包,进入安装流程,勾选我同意 I accept,next。2、根据自己需要选择,我选的第二个,可以自己改安装路径。2、默认,点击Next,记住默认端口3306。

m0_59681797的博客 1万+

Android平台单独编译内核模块ko && insmod

第一次在android平台上单独编译内核模块并且insmod,过程比较难受,毕竟啥事第一次做都不怎么顺畅! 本文基于Android5.1 msm8909 因为笔者使用的平台物理串口只有两个,一个已经作为系统的debug调试串口,那就相当于只有一个串口供使用了,这样因为串口个数需求远大于一个,需要添加虚拟串口的驱动。 采取如下方法实现: 编写虚拟串口驱动 单独编译的时候, 1...

wang 恒 的博客 1万+

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。分别对LANDSAT 5/7/8系列数据计算FVC,其中Landsat5 和Landsat 7NDVI计算利用 B4和B3波段,Landsat8 和Landsat9 NDVI计算利用 B5和B4波段。算法从当年所有观测数据中,以低云、低探测角度和最高NDVI值为标准,选择最佳的可用像元值,并进行换算。(3) FVC的计算。

地球资源数据云的官方博客 1808

保姆级教程:在RK3588 Android12上搞定ST LSM6DSR传感器驱动(附设备树配置与常见编译问题解决)

本文详细介绍了在RK3588 Android12平台上移植ST LSM6DSR传感器驱动的完整流程,包括硬件准备、驱动源码整合、设备树配置、内核编译与问题排查等关键步骤。特别针对Linux5.10环境下的特殊问题提供解决方案,帮助开发者快速完成传感器驱动移植与调试。

436

三菱PLC FX3U温度控制系统案例

U0\G100是平均次数的设置,设置为100个数据取平均,这样数据显示更加稳定,通道1的数据显示再U0\G10里面,温度模块的数据对应是0~150°输出0~10V,对应到0~10000的数据10000是150°的66.667倍,因此把数据传送到D0后转换成浮点数,再去除以66.667,就得到实际的温度了,数据存放到D2。触摸屏软件使用EBpro软件,设计界面如下,右边的是温度的实时曲线图,左边的是温度报警表,当当前温度超过了报警温度这种时,就会在这个表格上显示对应对应的报警。(1)实时显示温度值;

u010670857的博客 4059

Cadence Virtuoso IC617:从零构建传输门与反相器的Schematic设计实战

本文详细介绍了使用Cadence Virtuoso IC617进行传输门与反相器Schematic设计的完整流程,包括环境准备、原理图绘制、Symbol创建、仿真验证及实用技巧。通过分步指导和实战经验分享,帮助初学者快速掌握集成电路设计基础,提升EDA工具应用能力。

weixin_29194693的博客 600

《Android/Linux Kernel dirver read and write memory》项目常见问题解决方案

《Android/Linux Kernel dirver read and write memory》项目常见问题解决方案 项目基础介绍 本项目是《Android/Linux Kernel dirver read and write memory》,主要提供Android/Linux内核驱动的读写内存功能。该项目的目的是为了学习和交流内核级别的内存操作技术,项目以GPL-3.0协议开源。主要使用的...

gitblog_00436的博客 310

YOLO26 多任务统一架构:检测 / 分割 / 姿态 / OBB 设计

YOLO26提出了一种多任务统一架构,整合了目标检测、实例分割、姿态估计和旋转框检测(OBB)四大计算机视觉任务。该架构采用共享Backbone和Neck的设计,配合轻量级任务特定Head,解决了传统方法中多模型并行带来的高开发成本、大内存占用和低推理效率问题。核心设计包括:1)共享特征提取层实现参数复用;2)模块化Head结构支持灵活任务组合;3)统一接口实现单模型多任务处理。实验表明,该架构在保持各任务性能的同时显著提升了系统效率,为多任务视觉系统提供了新的实现范式。

一键难忘的博客 703

解决Go-mtpfs常见问题:从编译错误到设备连接难题

Go-mtpfs是一款简单的FUSE文件系统,用于将Android设备作为文件系统挂载到Linux系统。它能快速挂载设备的所有存储区域,按需读取文件元数据,是连接Android设备与Linux系统的实用工具。本文将详细解答使用Go-mtpfs过程中可能遇到的编译错误、设备连接失败等常见问题及解决方法。 ## 编译错误及解决方法 ### 缺少libusb依赖 在编译Go-mtpfs时,最常见的

gitblog_00441的博客 623

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用libhybris技术让linux调用android库

libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于GNU C library的系统运行那些用bionic编译的库(主要是Android下的闭源HAL库)。它在Ubuntu touch, WebOS, Jolla Sailfish OS等系统中都有使用。因为这些系统都是基于glibc生态的,然而现有的硬件厂商提供的driver多是为Andro...

ging450的专栏 3218

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Agency Agents 一键安装指南:AI 编程工具 Agent 安装目标与路径全清单

**Agency Agents** 是一款开源的 AI Agent 安装器:它把 `agency-agents` 目录里成百上千个角色模板(Agent personas),按你正在使用的 AI 编程工具各自的格式与目录,**一键安装**并持续跟踪。这篇清单文章带你查清:哪些工具可以一键安装、文件到底写到哪条**安装路径**、User 全局与 Project 项目两种**安装目标**范围怎么区分,以

gitblog_01424的博客 688

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: USB转RS232串口应用
下一篇: CH340串口驱动(包含各系统平台)
PC技术小能手
博客等级 码龄7年 1万+粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值