嵌入式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