Hi3531调试记录-编译

今天开始尝试编译osdrv文件夹里的内容

-----------------------------------------------------------//这是分割线

编译内核:

进入kernel文件夹,发现内核文件并没有解压

先进行内核文件解压  tar zxvf linux-3.0.y.tgz 

进入内核源代码目录后,执行以下操作

cp arch/arm/configs/godnet_defconfig .config
sudo make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig 报错!


缺少ncurses lib   赶紧用apt-get install ncurses-dev    //注意 不是ncurses-devel  会提示找不到此软件

安装好继续

sudo make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig 正常通过

sudo make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage       报错!!


较为奇怪,为什么osdrv文件夹里面都是一些压缩包,我怀疑要先make整个osdrv文件夹

暂停继续调研,转为先编译整个文件夹

-------------------------------------------------------------------------------------------------------

sudo make OSDRV_CROSS=arm-hisiv200-linux clean  脚本跑了一段时间后报错!!!


解决方案:

   # mv  /bin/sh   /bin/sh-mod

   # ln -s /bin/bash /bin/sh

sudo make OSDRV_CROSS=arm-hisiv200-linux clean 成功。

sudo make OSDRV_CROSS=arm-hisiv200-linux all  失败  提示找不到arm-hisiv200-linux-gcc 命令


原因是没有使用root权限,导致调用的其他MakeFile文件权限不对,

sudo -i 切换到root权限,再次编译成功


因为整体编译文件时依然报错,又转为测试单独编译的效果

-----------------------------------------------------------------------------------------

单独编译内核遇到两个问题:

1、Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/opt/ARM/mini6410/linux/linux-2.6.38/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:916: recipe for target 'kernel' failed
make: *** [kernel] Error 2

解决对策:

删除
@val = @{$canned_values{$hz}};
if (!defined(@val)) {
@val = compute_values($hz);
}
output前面加入
$cv = $canned_values{$hz};
@val = defined($cv) ? @$cv : compute_values($hz);

2、找不到mkimage 命令

解决对策: cp uboot/tools/mkimage /usr/bin


至此:编译内核成功


未完待续。。。。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值