iTop4412开发板学习记录

使用自己搭建的开发环境编译iTop4412遇到了许多问题,还有网上有许多大神已经提出了相应的解决方法,将编译过程中遇到的问题及解决方法记录起来,以方便后续查阅。
相关环境:
ubuntu16.04
交叉编译器:arm-linux-gnueabihf (2017)
linux kernel 3.0.15

修改Makefile

将Makefile中的CROSS_COMPILE修改为自己的交叉编译器版本,如本人的如下图所示。
在这里插入图片描述

选择对应的.config文件

在这里插入图片描述

make zImage

执行make zImage的时候遇到了许多错误,这些错误都是通过百度查找到的解决方法
iTop4412—linux 3.0.15内核编译错误

编译过程遇到的错误

以下内容转载自[https://blog.csdn.net/kuangzuxiaon/article/details/72356335]

ARM开发板:iTop4412
内核版本:linux 3.0.15

交叉编译器:arm-2014.05

主机:Ubuntu 16.04

错误1:

CC      arch/arm/mach-exynos/cpu-exynos4.o
{standard input}: Assembler messages:
{standard input}:51: Error: selected processor does not support ARM mode `smc 0'
{standard input}:133: Error: selected processor does not support ARM mode `smc 0'
{standard input}:156: Error: selected processor does not support ARM mode `smc 0'
{standard input}:175: Error: selected processor does not support ARM mode `smc 0'
{standard input}:194: Error: selected processor does not support ARM mode `smc 0'
scripts/Makefile.build:305: recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed

解决办法:http://blog.csdn.net/kuangzuxiaon/article/details/72356335
这里补充一点,如果编译的时候报错,去掉 '+’。

错误2:

TIMEC   kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/home/yang/Work/iTOP4412/src/iTop4412_Kernel_3.0/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed

解决办法:将kernel/timeconst.pl中第373行的defined()去掉只留下@val就可以了

错误3:

 CC      drivers/media/video/samsung/mali_ics/common/mali_kernel_core.o
arm-none-linux-gnueabi-gcc: error: directory: No such file or directory
arm-none-linux-gnueabi-gcc: error: directory": No such file or directory
scripts/Makefile.build:305: recipe for target 'drivers/media/video/samsung/mali_ics/common/mali_kernel_core.o' failed
make[5]: *** [drivers/media/video/samsung/mali_ics/common/mali_kernel_core.o] Error 1
scripts/Makefile.build:441: recipe for target 'drivers/media/video/samsung/mali_ics' failed
make[4]: *** [drivers/media/video/samsung/mali_ics] Error 2
scripts/Makefile.build:441: recipe for target 'drivers/media/video/samsung' failed

解决办法:将…/mali_ics下的Makefile和Makefile.common中的-qv exported 改为:-Eqv “exported|Unversioned directory”

错误4:

 CC      drivers/media/video/samsung/ump_ics/linux/ump_kernel_linux.o
arm-none-linux-gnueabi-gcc: error: directory: No such file or directory
arm-none-linux-gnueabi-gcc: error: directory": No such file or directory
scripts/Makefile.build:305: recipe for target 'drivers/media/video/samsung/ump_ics/linux/ump_kernel_linux.o' failed
make[5]: *** [drivers/media/video/samsung/ump_ics/linux/ump_kernel_linux.o] Error 1
scripts/Makefile.build:441: recipe for target 'drivers/media/video/samsung/ump_ics' failed
make[4]: *** [drivers/media/video/samsung/ump_ics] Error 2
scripts/Makefile.build:441: recipe for target 'drivers/media/video/samsung' failed

解决方法 : 将…/ump_ics下的Makefile中的-qv exported 改为:-Eqv “exported|Unversioned directory”

错误5:

drivers/video/samsung/s3cfb_main.c: In function 's3cfb_late_resume':
drivers/video/samsung/s3cfb_main.c:464:3: warning: too many arguments for format [-Wformat-extra-args]
   printk(KERN_DEBUG, "error on lcd33 regulator enable : lcd_regulator is null\n");
   ^
drivers/video/samsung/s3cfb_main.c: In function 's3cfb_probe':
drivers/video/samsung/s3cfb_main.c:334:11: warning: 'fbdev[0]' may be used uninitialized in this function [-Wmaybe-uninitialized]
   free_irq(fbdev[i]->irq, fbdev[i]);
           ^
  CC      drivers/video/samsung/s3cfb_ops.o
drivers/video/samsung/s3cfb_ops.c:54:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
 extern int get_lcd_type();
 ^
drivers/video/samsung/s3cfb_ops.c: In function 's3cfb_set_win_params':
drivers/video/samsung/s3cfb_ops.c:709:5: warning: "CONFIG_FB_S5P_SOFTBUTTON_UI" is not defined [-Wundef]
 #if CONFIG_FB_S5P_SOFTBUTTON_UI
     ^
In file included from drivers/video/samsung/s3cfb_ops.c:31:0:
drivers/video/samsung/s3cfb_ops.c: In function 's3cfb_check_var':
drivers/video/samsung/s3cfb.h:217:36: error: inlining failed in call to always_inline 'get_fimd_global': function body not available
 extern inline struct s3cfb_global *get_fimd_global(int id);
                                    ^
drivers/video/samsung/s3cfb_ops.c:700:23: error: called from here
  struct s3cfb_global *fbdev = get_fimd_global(win->id);

解决方法 : 删除drivers/video/samsung/s3cfb.h中第217行的关键字inline

我使用的是2017的arm-linux-gnueabihf-版本,编译过程中只遇到了1和5错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值