问题1:
shell脚本中source aaa.sh时提示 source: not found
原因:
ls -l ‘which sh’提示/bin/sh -> dash
这说明是用dash来进行解析的。
解决:
命令行执行:sudo dpkg-reconfigure dash
在界面中选择no(否)
再ls -l ‘which sh’提示/bin/sh -> bash
修改成功,source可以用了。
问题2:
在进行osdrv的编译时候,若执行make OSDRV_CROSS=arm-hisiv100nptl-linux all,会提示类似“找不到arm-hisiv100nptl-linux”命令的提示,解决方法如下:
- 安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。(原文档没有)
2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):
进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
注:本系统只需要安装glibc交叉编译器即可,提供问题以及解决方案以供参考。
问题3:
错误信息:1279 “mixed implicit and normal rules”,翻译为中文:混合的和隐含普通规则。起初以为是busybox包的问题,从官网上下载了低版本1.13,报同样的错误,google后发现,是由于我的系统的make工具太新,make的旧版规则已经无法兼容新版。按照以下方式,问题得到解决:
进入osdrv/busybox目录,执行chmod –R 777 ./* 然后在makefile中将431行代码
config %config: scripts_basic outputmakefile FORCE
改为:
%config: scripts_basic outputmakefile FORCE
将1279行代码:
/ %/: prepare scripts FORCE
改为:
%/: prepare scripts FORCE
即可编译通过!
问题4:
在编译的过程中可能提示缺少一个必要的包(在Ubuntu14.10中貌似是u-boot-tools),直接apt-get install u-boot-tools一下就OK了。
问题5:
在/opt/Hi3531_SDK_V2.0.A.0/osdrv/pub/bin/board_glibc/文件目录下pci文件已存在
删除pci文件,或者在对应Makefile文件中mkdir–p pci
坑点!!!
- 解决完问题一后,将Makefile中删除和解压uboot-2010.10.06的两行注释掉再执行make XXXX all命令
- 解决完问题三后,直接进/opt/Hi3531_SDK_V2.0.A.0/osdrv/pub/bin/board_glibc/中删除pci文件,进入osdrv的Makefile,将删除和重新解压busybox-1.16.1的两行注释掉,然后执行make XXXX all