关于编译Linux-2.6.38.8内核时s3c_device_ohci未定义问题的分析

开发平台:Ubuntu11.04

目 标板:优龙FS2410

编 译器:arm-gcc-4.1.1.tar.bz2 (下载见 )

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

arch/arm/mach-s3c2410/built-in.o:(.init.data+0x30):undefinedreferenceto`s3c_device_ohci’make:***[.tmp_vmlinux1]Error1

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

$grep”s3c_device_ohci”-nR.

查找结果:

在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后添加选择提示,如下所示:

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

SystemType—>[*]supportS3C_DEV_USB_HOST(NEW)

蚁穴虽小,溃之千里。

关于编译Linux-2.6.38.8内核时s3c_device_ohci未定义问题的分析

相关文章:

你感兴趣的文章:

标签云: