在编译内核的最后阶段出现sdhci_esdhc_imx_pdata未定义的错误
遇到下面这种错误
在网上查找资料后,发现一篇好文,提出了良好的找错误的策略:
(1)利用grep命令查看该变量在何处使用;
(2)查看相应的头文件是否在Kconfig中被定义且在make menuconfig中被选中
我也是这么解决的最后,发现是Kconfig和Makefile中都有相应处理,只是make menuconfig中未选,可能的原因是我今天修改代码时不小心冲掉了选项了吧。
原文链接:点击打开链接
原文如下:
在编译Linux-2.6.38.8内核的最后阶段出现s3c_device_ohci未定义的错误:
- arch/arm/mach-s3c2410/built-in.o:(.init.data+0x30): undefined reference to `s3c_device_ohci'
- make: *** [.tmp_vmlinux1] Error 1
根据错误信息可知,错误出现在arch/arm/mach-s3c2410目录下所有目标文件链接成built-in.o的时候,所以首先要找出此目录下的什么文件使用了s3c_device_ohci,方法是在此目录下使用以下命令查找:
- $ grep "s3c_device_ohci" -nR .
查找结果:
- ./mach-smdk2410.c:90: &s3c_device_ohci,
- ./mach-h1940.c:385: &s3c_device_ohci,
- Binary file ./mach-smdk2410.o matches
- ./mach-vr1000.c:337: &s3c_device_ohci,
- ./mach-qt2410.c:250: &s3c_device_ohci,
- ./mach-bast.c:586: &s3c_device_ohci,
- ./mach-tct_hammer.c:132: &s3c_device_ohci,
- ./mach-n30.c:381: &s3c_device_ohci,
- Binary file ./built-in.o matches
- ./mach-otom.c:95: &s3c_device_ohci,
- ./mach-amlm5900.c:157: &s3c_device_ohci,
在arch/arm/mach-s3c2410/mach-smdk2410.c文件中的第90行,s3c_device_ohci被作为平台设备在系统初始化阶段被使用。
那么它在哪里定义的呢?
这样的定义一定与具体的平台有关,在Linux-2.6.38.8内核中它被定义在arch/arm/plat-samsung目录下的dev-usb.c文件中,因为在默认情况下dev-usb.c文件并没有被编译,而且在配置界面上也没有相关的选择提示,所以才会出现这样的错误。
现在要做的就是想办法把它配置进去,方法如下:
(1)、在arch/arm/plat-samsung/Makfile文件中找到dev-usb.o对应的配置选项CONFIG_S3C_DEV_USB_HOST,然后从当前目录下的Kconfig文件中找到S3C_DEV_USB_HOST,并在它的bool后添加选择提示,如下所示:
- config S3C_DEV_USB_HOST
- bool "support S3C_DEV_USB_HOST"
- help
- Compile in platform device definition for USB host.
(2)、执行make menuconfig并在配置界面中把它选上即可。
- System Type --->
- [* ] support S3C_DEV_USB_HOST (NEW)
在编译内核的最后阶段出现sdhci_esdhc_imx_pdata未定义的错误的更多相关文章
- IE浏览器报Promise未定义的错误
背景: 一个vue-cli构建的vue项目,一个使用angular的项目,两个项目在其他浏览器一切正常,但是ie中会报Promise未定义的错误 解决办法: vue的项目: 1. npm insta ...
- IE浏览器报Promise未定义的错误、解决vuex requires a Promise polyfill in this browser问题
一个vue-cli构建的vue项目,一个使用angular的项目,两个项目在其他浏览器一切正常,但是ie中会报Promise未定义的错误 解决办法: 一.vue的项目: 1.npm install b ...
- 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 :
1 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 : dlg1.h(23) : error C2065: 'IDD_DIALOG1' : und ...
- Linux编译内核提示'make menuconfig' requires the ncurses libraries错误
原来使用的ubuntu 11.10系统由于误操作,导致系统崩溃,重新安装了ubuntu 11.10: 在编译内核的时候,提示如下错误: dingq@wd-u1110:~/hwsvn/2sw/1prj_ ...
- gcc/g++ 编译时出现:“对’xxxx’未定义的引用,collect2: error: ld returned 1 exit status” 的错误
出现的问题: 在使用 make 编译实现一个程序时,出现了下面的错误.查看程序源文件所在的目录时发现程序已经完成了编译,并生成了 list_repo.o 的文件,说明是在程序链接生成可执行文件时发生了 ...
- 关于一个多个.cpp文件的项目中,函数出现未定义引用错误
编译的话,必须把全部的c文件都要编译的啊,只编译一个c算怎么个逻辑呢?编译实际上是2个过程,编译和链接.编译过程只检查所有的符号(变量,函数)有没有声明,即只需要h文件生命就够了.但是链接时候,需要找 ...
- [转]解决crystal report水晶报表在浏览器提示bobj未定义的错误
网上的中文文章(比如这篇文章)都是写的部署到服务器后出现的问题,同时也指出要把crystal report的aspnet_client文件夹拷贝到对应项目的根目录里,这样就可以正常显示了,但是具体到我 ...
- 解决crystal report水晶报表在浏览器提示bobj未定义的错误
网上的中文文章(比如这篇文章)都是写的部署到服务器后出现的问题,同时也指出要把crystal report的aspnet_client文件夹拷贝到对应项目的根目录里,这样就可以正常显示了,但是具体到我 ...
- vue项目,ie11 浏览器报 Promise 未定义的错误
报错: {description: "“Promise”未定义", message: "“Promise”未定义", name: "Referenc ...
随机推荐
- Java_jdbc 基础笔记之十 数据库连接 (ResultSetMetaData 类)
ResultSetMetaData 类 调用ResultSet 的getMetaData()方法得到ResultSetMetaData 类对象: 可用于获取关于 ResultSet 对象中列的类型和属 ...
- free中buffer 与 cache 的区别
通常人们所说的Cache就是指缓存SRAM. SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变. 由于CPU的速度比内存和硬盘的速 ...
- 027_MacOs上如何将多页word打印到一个页面上
工作中需要把word的多页面内容打印到同一张A4纸,所以就想了办法,首先word导出到pdf. 然后使用MacOs默认的PDF阅读器进行多页打印. 操作如下: 文件-打印布局选择每张纸需要打印的页数左 ...
- openresty开发系列34--openresty执行流程之4访问阶段
openresty开发系列34--openresty执行流程之4访问阶段 访问阶段 用途:访问权限限制 返回403 nginx:allow 允许,deny 禁止 allow ip:deny ip: 涉 ...
- 泡泡一分钟:BLVD: Building A Large-scale 5D Semantics Benchmark for Autonomous Driving
BLVD: Building A Large-scale 5D Semantics Benchmark for Autonomous Driving BLVD:构建自主驾驶的大规模5D语义基准 Jia ...
- 使用肘部法确定k-means均值的k值
import numpy as np from sklearn.cluster import KMeans from scipy.spatial.distance import cdist impor ...
- springboot打war包部署到tomcat
1:build.gradle plugins { id 'org.springframework.boot' version '2.1.5.RELEASE' id 'java' } apply plu ...
- Mongodb CPU占用率达90%的优化调整报告
1问题描述 1.1现场的数据库部署情况 服务器基本情况如下: CPU 20逻辑核,40线程 内存 64 G 硬盘 D盘 :1T SSD E盘:3T SATA F盘:3T SATA 在这台机器上同时部署 ...
- java有包名的调用没有包名的类,用反射
没有包名,就是说在根目录,普通项目就是在src下,maven项目就是在src/java目录下 // 通过全类名,没有包名就直接是类名,有包名就要加上包名,比如:com.xiaostudy.TLStri ...
- PHP检测日期格式
<?php $date1 = '2019-01-01'; $date2 = '2019-01-01 23:59'; $date3 = '2019-01-01 23:59:59'; $date4 ...