4150
- 收藏
- 点赞
- 分享
- 举报
系统地编译Hi3519过程及其处理问题思路
本帖最后由 laocheng 于 2017-2-13 14:56 编辑
开发Hi3519,非常需要查看论坛:易白纳 [url=http://www.ebaina.com/bbs/?fromuser=laocheng]http://www.ebaina.com/bbs/?fromuser=laocheng[/url]
网友在编译过程中遇见或解决的问题
[url=http://blog.csdn.net/mengxihe29/article/details/52439098]http://blog.csdn.net/mengxihe29/article/details/52439098[/url]
sdk.cleanup和sdk.unpack都是使用bash,而ubanntu默认使用sh,所以出现下面错误
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10994]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10994[/url]
首先是查看:ls -l /bin/sh //当前bash/dash设置
[code]xiao@ubuntu:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 2 17:15 /bin/sh -> bash[/code]
或者直接在编译make时指定SHELL=/bin/bash也可以
这样就可以执行脚本,展开SDK
交叉编译工具链已经安装好,却提示:
arm-linux-gcc: Command not found
[url=http://blog.csdn.net/tigerjibo/article/details/]http://blog.csdn.net/tigerjibo/article/details/[/url]
总结:在编译osdrv过程中,需要使用sudo权限,而sudo + xx(需要执行的命令)是需要利用sudo(输入密码)创建一个新的shell(没有继承环境变量),所以找不到对应的命令(也就是/etc/profile失效了)。
上面的执行测试发现,并没有真正解决问题:实际上是环境变量的问题,所以,查看下面知识点;
linux的环境变量:
[url=http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html]http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html[/url]
上面并没有真正解决问题,而是仅仅讲述了环境变量的基本知识。(可以直接跳过这部分的链接和解析)
要在 Bourne、Korn 或 BASH shell中设置此变量,
以便它应用于所有用户,请将该命令添加到文件 /etc/profile。
要仅对特定用户设置此变量,请将该命令添加到该用户的主目录中的文件 .profile
经过思考,其实可以继承环境变量
对sudo命令的思考,通过su去继承环境变量,也就是使用su - root 命令去继承普通用户下的环境变量(已经设在/etc/profile文件中的路径)
[url]http://renlifeng.blog.51cto.com/2076113/[/url] (讲解su命令的几种报错)
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=13857]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=13857[/url] (结合hi3519解析,解答看laocheng)
好不容易弄好了环境变量问题:你会发现依然错误百出,因为存在各种依赖问题,所以:
通过查看SDK包内每一个PC工具的源码,然后去获知到底这个源码会生成什么工具。
其实也可以直接参考SDK里面的osdrv/readme_cn.txt,里面有提供工具树,你就知道什么回事了。
可以使用到的技巧:
[code]root@H265:osdrv# apt-cache search mkimage
jigit - tools for working with jigdo files
u-boot-tools - companion tools for Das U-Boot bootloader[/code]
这样继续:
[code]root@H265:osdrv# apt-get install u-boot-tools[/code]
如此类推,少那个,补那个。
再次clean还是无法编译出jffs2_tool
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=12147]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=12147[/url](解答看laocheng)
解决的思路:
1. 首先是查看编译错误提示(参考上面链接),获知jffs2_tool编译失败
2. 先将osdrv/Makefile中的jffs2_tool部分注释(不再编译sdk提供的源码包)
3. 然后自己从源上下载mkfs.jffs2(apt-get install mtd-utils)
4. 并且将执行文件(mkfs.jffs2)放到pub/pc目录下
5. 然后再重新在osdrv/下编译(注意clean掉之前发生错误部分,不需要全部clean,选择hipctools_clean)
注意:上面的思路,必须要亲自查看osdrv/Makefile内容,观察每一步到底操作了什么,才能明白,为何这样做是可行的。
从3519提供的两种交叉编译链(针对3519 SDK来说,是500、600的区别)
思考,为何需要提供:uclibc、glibc呢?
[url=https://code.google.com/archive/p/openwrt-for-embedded/issues/6]https://code.google.com/archive/p/openwrt-for-embedded/issues/6[/url]
思考:通过理解他们的区别,这是选择他们的依据。
开发Hi3519,非常需要查看论坛:易白纳 [url=http://www.ebaina.com/bbs/?fromuser=laocheng]http://www.ebaina.com/bbs/?fromuser=laocheng[/url]
网友在编译过程中遇见或解决的问题
[url=http://blog.csdn.net/mengxihe29/article/details/52439098]http://blog.csdn.net/mengxihe29/article/details/52439098[/url]
sdk.cleanup和sdk.unpack都是使用bash,而ubanntu默认使用sh,所以出现下面错误
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10994]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10994[/url]
首先是查看:ls -l /bin/sh //当前bash/dash设置
[code]xiao@ubuntu:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 2 17:15 /bin/sh -> bash[/code]
或者直接在编译make时指定SHELL=/bin/bash也可以
这样就可以执行脚本,展开SDK
交叉编译工具链已经安装好,却提示:
arm-linux-gcc: Command not found
[url=http://blog.csdn.net/tigerjibo/article/details/]http://blog.csdn.net/tigerjibo/article/details/[/url]
总结:在编译osdrv过程中,需要使用sudo权限,而sudo + xx(需要执行的命令)是需要利用sudo(输入密码)创建一个新的shell(没有继承环境变量),所以找不到对应的命令(也就是/etc/profile失效了)。
上面的执行测试发现,并没有真正解决问题:实际上是环境变量的问题,所以,查看下面知识点;
linux的环境变量:
[url=http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html]http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html[/url]
上面并没有真正解决问题,而是仅仅讲述了环境变量的基本知识。(可以直接跳过这部分的链接和解析)
要在 Bourne、Korn 或 BASH shell中设置此变量,
以便它应用于所有用户,请将该命令添加到文件 /etc/profile。
要仅对特定用户设置此变量,请将该命令添加到该用户的主目录中的文件 .profile
经过思考,其实可以继承环境变量
对sudo命令的思考,通过su去继承环境变量,也就是使用su - root 命令去继承普通用户下的环境变量(已经设在/etc/profile文件中的路径)
[url]http://renlifeng.blog.51cto.com/2076113/[/url] (讲解su命令的几种报错)
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=13857]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=13857[/url] (结合hi3519解析,解答看laocheng)
好不容易弄好了环境变量问题:你会发现依然错误百出,因为存在各种依赖问题,所以:
通过查看SDK包内每一个PC工具的源码,然后去获知到底这个源码会生成什么工具。
其实也可以直接参考SDK里面的osdrv/readme_cn.txt,里面有提供工具树,你就知道什么回事了。
可以使用到的技巧:
[code]root@H265:osdrv# apt-cache search mkimage
jigit - tools for working with jigdo files
u-boot-tools - companion tools for Das U-Boot bootloader[/code]
这样继续:
[code]root@H265:osdrv# apt-get install u-boot-tools[/code]
如此类推,少那个,补那个。
再次clean还是无法编译出jffs2_tool
[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=12147]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=12147[/url](解答看laocheng)
解决的思路:
1. 首先是查看编译错误提示(参考上面链接),获知jffs2_tool编译失败
2. 先将osdrv/Makefile中的jffs2_tool部分注释(不再编译sdk提供的源码包)
3. 然后自己从源上下载mkfs.jffs2(apt-get install mtd-utils)
4. 并且将执行文件(mkfs.jffs2)放到pub/pc目录下
5. 然后再重新在osdrv/下编译(注意clean掉之前发生错误部分,不需要全部clean,选择hipctools_clean)
注意:上面的思路,必须要亲自查看osdrv/Makefile内容,观察每一步到底操作了什么,才能明白,为何这样做是可行的。
从3519提供的两种交叉编译链(针对3519 SDK来说,是500、600的区别)
思考,为何需要提供:uclibc、glibc呢?
[url=https://code.google.com/archive/p/openwrt-for-embedded/issues/6]https://code.google.com/archive/p/openwrt-for-embedded/issues/6[/url]
思考:通过理解他们的区别,这是选择他们的依据。
我来回答
回答4个
时间排序
认可量排序
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2018-09-12 14:05:10
-
2018-09-13 13:14:53
-
2012-12-24 14:36:42
-
2018-12-10 15:14:29
-
2017-09-16 08:50:00
-
2018-04-11 14:24:10
-
2018-12-05 15:12:34
-
2017-03-01 17:04:08
-
2019-03-30 13:17:16
-
2017-08-05 19:24:19
-
2015-03-16 09:27:42
-
2017-07-11 17:38:56
-
2017-07-19 18:48:11
-
2017-09-19 19:33:32
-
2019-01-04 11:04:54
-
2020-04-02 09:26:31
-
2018-10-29 14:55:33
-
2018-12-20 16:06:49
-
2018-11-28 14:19:36
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认