zoukankan      html  css  js  c++  java
  • 在编译内核的最后阶段出现sdhci_esdhc_imx_pdata未定义的错误

    遇到下面这种错误


    在网上查找资料后,发现一篇好文,提出了良好的找错误的策略:

    (1)利用grep命令查看该变量在何处使用;

    (2)查看相应的头文件是否在Kconfig中被定义且在make menuconfig中被选中

    我也是这么解决的最后,发现是Kconfig和Makefile中都有相应处理,只是make menuconfig中未选,可能的原因是我今天修改代码时不小心冲掉了选项了吧。

    原文链接:点击打开链接

    原文如下:

    在编译Linux-2.6.38.8内核的最后阶段出现s3c_device_ohci未定义的错误: 

    1. arch/arm/mach-s3c2410/built-in.o:(.init.data+0x30): undefined reference to `s3c_device_ohci'  
    2. make: *** [.tmp_vmlinux1] Error 1  

        根据错误信息可知,错误出现在arch/arm/mach-s3c2410目录下所有目标文件链接成built-in.o的时候,所以首先要找出此目录下的什么文件使用了s3c_device_ohci,方法是在此目录下使用以下命令查找: 

    1. $ grep "s3c_device_ohci" -nR .  

        查找结果: 

    1. ./mach-smdk2410.c:90:   &s3c_device_ohci,  
    2. ./mach-h1940.c:385: &s3c_device_ohci,  
    3. Binary file ./mach-smdk2410.o matches  
    4. ./mach-vr1000.c:337:    &s3c_device_ohci,  
    5. ./mach-qt2410.c:250:    &s3c_device_ohci,  
    6. ./mach-bast.c:586:  &s3c_device_ohci,  
    7. ./mach-tct_hammer.c:132:    &s3c_device_ohci,  
    8. ./mach-n30.c:381:   &s3c_device_ohci,  
    9. Binary file ./built-in.o matches  
    10. ./mach-otom.c:95:   &s3c_device_ohci,  
    11. ./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后添加选择提示,如下所示:

    1. config S3C_DEV_USB_HOST  
    2.     bool "support S3C_DEV_USB_HOST"  
    3.     help  
    4.       Compile in platform device definition for USB host.  

        (2)、执行make menuconfig并在配置界面中把它选上即可。    

    1. System Type --->  
    2.            [* ] support S3C_DEV_USB_HOST (NEW)  

  • 相关阅读:
    洛谷 P1087 【FBI树】题解
    CF584D 【Dima and Lisa】题解
    洛谷 P1042 【乒乓球】题解
    洛谷 P2010 【回文日期】题解
    洛谷 P1233 【木棍加工】题解
    STM32嵌入式开发学习笔记(五):中断
    STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时
    STM32嵌入式开发学习笔记(三):使用按键控制小灯
    STM32嵌入式开发学习笔记(二):将功能封装为库文件
    STM32嵌入式开发学习笔记(一)
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742683.html
Copyright © 2011-2022 走看看