嵌入式Linux开发环境——以海思3516dv300为例


1、安装 Ubuntu 虚拟机 (这一步网上很多资料):

2、安装发开工具:

1> 换国内源 (国内源安装工具速度会快点)

2> 安装 NFS :

1) sudo apt install nfs-kernel-server

2) 配置 nfs 服务sudo vi /etc/exports :

添加 /path *(rw, sync, no_root_squash), path 为要通过 NFS 共享的路径

3) 创建 /path 

4) 开启服务: sudo /etc/init.d/nfs-kernel-server restart

3> 安装 samba 服务

1) sudo apt install samba samba-common

2) 创建文件夹(并设定相应的访问权限) 

3) 创建用户并设置密码:sudo smbpasswd -a userName

4) 配置samba 服务 sudo vim /etc/samba/smb.conf  (以下仅供参考,具体参数含义该文件中有解释):

[ share]

comment = share

browseable=yes

path=/path

create mask = 0777

directory mask = 0777

valid users = userName

force user = userName

force group = groupName

public = yes

available = yes

writable = yes

5) 重启 samba 服务:sudo /etc/init.d/smbd restart

4> 安装tftp服务

  sudo apt-get install tftpd-hpa

  

5> 安装gcc开发环境:sudo apt install build-essential

6> 安装交叉工具链:将开发板厂商提供的交叉工具链拷贝到 linux 虚拟机中,解压并进入目录,执行 xxxx.install, source /etc/profile,之后就可以使用工具链了

在编译 SDK 及其他程序之前需要安装一些依赖文件,以下以 16dv300及19av100 为例说明:

1) lib32z1-dev : 我们的虚拟机一般都是 64 位的,而开发板一般都是32位的(不是绝对的), 那么虚拟机执行32位的程序就缺少32位的依赖文件,故需要安装该库提供32支持,具体表现位,安装交叉工具链后运行交叉工具链,显示命令不存在

2) libncurses-dev:在编译内核是一般会用到,如make menuconfig,如果缺少该库就无法完成内核的编译

3) u-boot-tools : 该依赖在编译 U-boot 时需要,如果未安装,会报 mkimg command not found

4) uuid-dev, pkg-config, autonake : 这几个依赖在编译 SDK 时需要

 

7> 问题记录

  1) 问题

    NFS: bad mount option value specified: minorversion=1

   解决方案:mount -t nfs -o nfsvers=3 -o nolock -o tcp 192.168.xx.xx:/xxx/ /mnt