最近在学习海思的3518e芯片,编译SDK时候,走了很多坑,今天做一个笔记把所有的坑记录下来,方便大家搭建环境时候和初次学习有帮助。
我的电脑配置:
1、window 7 系统
2、vm 虚拟机 V10.0版本
3、Ubuntu 为16.04 版本
4、网络连接方式为: 桥连接
芯片:
1、hi3518e
2、SDK为 Hi3518E_SDK_V1.0.4.0
Ubuntu 16.04映像文件:
链接:https://pan.baidu.com/s/1q9jfnn92hPbypNYNk5d7tQ
提取码:2bai
一、vm虚拟机安装和Ubuntu系统映射
此处就不多加记录,网上一大堆资料。大家百度一下就能全部出来。
主要注意的是: 安装vm tools以后,设置共享文件夹,文件夹无法显示,但是有/mnt/hgfs/ 这个路劲,这个需要安装一个patch 包
指令:1、sudo apt-get install open-vm-tools
指令 2、sudo vmhgfs-fuse .host:/ /mnt/hgfs
3、设置共享文件开机自动挂载(我的虚拟机,每次开机都找不到共享文件夹,需要设置,大家同样情况,可以百度进行设置)
然后重启虚拟机即可。
这个步骤不一定适用所有人,大家可以自行百度一下解决。
二、配置网络 ip 地址为静态
配置ip地址为静态,只要是为了开发板能和虚拟机连接和ping 通,这样方便后面的tftp 下载和烧录,这个步骤最好前期跳过,因为设置成功以后,后面apt-get 软件会联网失败。
设置如下:
1、ifconfig 一下,看看自己ip 是多少,这里我的ip是192.168.1.106,那么我就设置成这样
![在这里插入图片描述](https://img-blog.csdnimg.cn/5f8cdbfac6654213a4cf68d8ebf06092.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM4MDQxNA==,size_16,color_FFFFFF,t_70)
2、指令 sudo gedit /etc/network/interfaces
3、文件后面添加如下 :
auto ens33
iface ens33 inet static
address 192.168.1.106
netmask 255.255.255.0
gateway 192.168.1.1
#dhcp
#auto ens33
#iface ens33 inet dhcp
4、重启网卡既可以: sudo /etc/init.d/networking restart
三、git http 失败
我在适用 git http时候,总是无法连接,所有设置都正常,原因是需要取消HTTPS 和 http的代理。指令如下:
1、 git config --global --unset http.proxy
2、 git config --global --unset https.proxy
四、安装arm-linux-gcc-4.4.3
大家可以网盘提取:
链接:https://pan.baidu.com/s/1oni1eKGCBSQ7ZudP2V3dow
提取码:azcb
安装步骤:
1、拷贝压缩文件到虚拟机共享文件里面
2、解压: sudo tar -zxvf arm-linux-gcc-4.4.3.tar.gz -C / # 注:-C 后面有空格
3、将 /opt/FriendlyARM/toolschain/目录下的4.4.3 copy 至 /usr/local/ 目录下新建arm目录下,如下:
cd /usr/local
sudo mkdir arm
sudo chmod 777 arm
sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm
4.修改环境变量,将把arm-linux-gcc添加到PATH中。有三种方式,我这边适用了 1和2两种方式才成功,大家根据自己情况而定。
方法一:修改/etc/bash.bashrc文件,此文件只对当前用户适用
修改之前先root权限
sudo -s或sudo su -
sudo gedit /etc/bash.bashrc
在最后加上export PATH=
P
A
T
H
:
/
u
s
r
/
l
o
c
a
l
/
a
r
m
/
4.4.3
/
b
i
n
保
存
,
退
出
,
然
后
刷
新
环
境
变
量
使
其
生
效
:
s
o
u
r
c
e
/
r
o
o
t
/
.
b
a
s
h
r
c
方
法
二
:
修
改
/
e
t
c
/
p
r
o
f
i
l
e
文
件
,
此
文
件
对
所
有
用
户
适
用
s
u
d
o
g
e
d
i
t
/
e
t
c
/
p
r
o
f
i
l
e
在
最
后
加
上
:
e
x
p
o
r
t
P
A
T
H
=
PATH:/usr/local/arm/4.4.3/bin 保存,退出,然后刷新环境变量使其生效:source /root/.bashrc 方法二:修改/etc/profile文件,此文件对所有用户适用 sudo gedit /etc/profile 在最后加上: export PATH=
PATH:/usr/local/arm/4.4.3/bin保存,退出,然后刷新环境变量使其生效:source/root/.bashrc方法二:修改/etc/profile文件,此文件对所有用户适用sudogedit/etc/profile在最后加上: exportPATH=PATH:/usr/local/arm/4.4.3/bin
保存,退出,然后刷新环境变量使其生效:
source /etc/profile
方法三:修改/etc/environment文件
sudo gedit /etc/environment
在最后加上:/usr/local/arm/4.4.3/bin
保存,退出,然后重启系统
5.检查环境变量和编译器是否安装成功
echo $PATH
如输出:如果可以显示/usr/local/arm/4.4.3/bin,那么环境变量添加成功
6 检查arm-linux-gcc是否安装正确
arm-linux-gcc -v #正常会显示当前安装版本编号等
如输入arm-linux-gcc -v,输出如下错误:/usr/local/arm/arm-linux-gcc-4.4.3/bin/arm-linux-gcc: 15:exec:
/usr/local/arm/arm-linux-gcc-4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
原因:使用的是64位系统,但是编译工具是32位,需要安装32位支持库:
解决方案:命令行:sudo apt-get install lib32ncurses5 lib32z1
安装完,再次测试命令:arm-linux-gcc -v,正常情况下会输出如下:
7、更新最新库
命令行:sudo apt-get install lib32stdc++6
8、后面验证是否可以编译,大家百度找一下就行
五、安装TFTP服务
1、安装 tftp-hpa 和 tftpd-hpa :sudo apt-get install tftp-hpa tftpd-hpa
2、安装 xinetd sudo apt-get install xinetd
3、配置/etc/xinetd.conf,如果一样,不用更改
指令: gedit /etc/xinetd.conf
内容如下:
# Simple configuration file for xinetd
##
Some defaults, and include /etc/xinetd.d/
defaults
{#
Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
4、配置/etc/default/tftpd-hpa
4.1、配置 tftp 服务器 :sudo vim /etc/default/tftpd-hpa
内容如下:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
4.2 、在根目录下创建 tftpboot 文件
指令: cd /
mkdir tftpboot
sudo chmod 777 /tftpboot
4.3 、配置/etc/xinetd.d/tftp
指令:gedit /etc/xinetd.d/tftp
内容如下:
service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}
4.4、修改权限
sudo chmod -R 777 /tftpboot
4.5、重新启动一下服务。
执行次序:
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
4.6、验证是否安装好
1、在tftpboot文件下面,使用指令:vim 1.c ,然后随便写入数据,保存以后,退出。然后,随便进入一个文件里面。
2、终端中输入 sudo tftp localhost,进入 tftp 命令符下
3、输入get 1.c ,然后使用q,退出
4、当前文件下,使用指令ls ,查看是否有1.c,如果有,说明成功
六、安装NFS
1、sudo apt-get install nfs-kernel-server
2、sudo apt-get install nfs-common
3、配置配置/etc/exports
gedit /etc/exports
注意:要先创建rootfs文件,这里,我创建在/root/rootfs, 指令:mkdir root/rootfs ,然后更改文件权限,大家chmod 一下
文本末添加
/路劲/rootfs *(rw,sync,no_root_squash,no_subtree_check)
然后在终端执行 $chmod 777 -R /路劲/rootfs
4、sudo showmount -e
显示 clnt-create : RPC : Program not registered
sudo exportfs -r 更新
sudo showmount localhost -e
显示
Export list for 192.168.1.116
/root/rootfs
5、启用
sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
显示如下
- Stopping NFS kernel daemon [ OK ]
- Unexporting directories for NFS kernel daemon… [ OK ]
- Exporting directories for NFS kernel daemon… [ OK ]
- Starting NFS kernel daemon [ OK ]
挂载测试
$ mount -t nfs -o nolock localhost:/root/rootfs /mnt
执行后,进入/mnt 目录中,如果可以看到/root/rootfs 中的内容,则说明 nfs 搭建成功!
到此,环境大家搭建成功,后面SDK编译,请看SDK编译笔记