第一节:搭建嵌入式环境和简单编译buildroot

第一步:新建一个虚拟机
1. 下载ubuntu的iso镜像文件
http://ftp.sjtu.edu.cn/ubuntu-cd/16.04.4/
64位: ubuntu-16.04.4-desktop-amd64.iso
32位: ubuntu-16.04.4-desktop-i386.iso
最好选用32位的
2. 安装方式
http://blog.csdn.net/github_35160620/article/details/52383788

第二步: 搭建嵌入式开发环境
2.1. 硬件环境搭建
需要一台笔记本电脑 + 一个显示器 + 开发板与镜头
2.2. 软件开发环境
(1). PC Windows软件环境
1. 安装SecureCRT超级终端
功能: 串口调试信息显示和命令行输入
2. 安装TFTP Server
功能: 内核/文件系统下载
3. 安装虚拟机VMware
(2). PC Linux软件环境
1. VMware上安装Linux Ubuntu 14.04操作系统开发环境(建议用32位的)
2. 在Ubuntu下安装Samba软件
Samba: 用于Windows系统和Linux虚拟机之间的文件访问.
安装命令: sudo apt-get install -y samba
3. 在Ubuntu下安装NFS Server
NFS Server: 用于调试时从NFS加载根文件系统
安装命令: sudo apt-get install -y nfs-kernel-server
4. 在Ubuntu下安装TFTP Server
TFTP Server: 用于调试时从服务器上下载文件
安装命令: sudo apt-get install -y tftpd tftp openbsd-inetd
5. 安装SVN和Git
SVN: 用于SVN上传和下载代码
安装命令: sudo apt-get install -y git subversion
Git: 用于Git上传和下载代码
安装命令: sudo apt-get install -y vim ssh ncurses-dev g++
(3). TFTP服务器配置
原理: 文件传输协议,是TCP/IP协议族中一个用来在客户机与服务器之间进行简单文件传输的协议.
功能:将buildroot编译生成build/image下的image文件下载到SGK6802目标板上的内存里.
安装: 1. sudo apt-get install -y tftpd tftp openbsd-inetd 安装 TFTP 软件(-y 是自动确认安装)
已安装可忽略
2. sudo vim /etc/inetd.conf 打开 TFTP 配置文件
第一节:搭建嵌入式环境和简单编译buildroot_第1张图片
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd
/home/harry/TftpRoot
根据图 7-1 所示,默认为/srv/tftp,注释掉默认的,新增一行,只需要修最后面的路径,为
/home/harry/TftpRoot 根目下面有一个/home(用户操作基本上都在这个目录下)、harry
是用户名(根据自己安装时输入的名字而定)、TftpRoot 是目录(可以随意定义文件夹的
名字,个人喜欢就好)
,存放 image 的文件夹,后面会用到这个目录。
3. sudo mkdir /home/harry/TftpRoot
在 harry 的帐户下创建 TftpRoot 文件夹
4. sudo chmod 777 /home/harry/TftpRoot 改变文件夹的读写权 限,所有人都有读写权限
5. sudo /etc/init.d/openbsd-inetd restart 上述配置完成后,重新启动 TFTP 软件,立即生效
6. netstat -an | more | grep udp 查看 69 端口是否有打开如:udp 0 0 0.0.0.0:69 0.0.0.0:*
7. 本机测试:
第 8 页SGKS6802 Linux SDK 开发环境用户指南
嵌入式开发环境
a. 在/home/harry/TftpRoot 下新建 1.txt 文件
b. 在其他目录下测试:
tftp127.0.0.1IP(IP) tftp> get 1.txt 下载 1.txt 文件
Received 48 bytes in 0.0 seconds 接收文件打印
$tftp> quit 退出 TFTP 服务连接, 表示验证成功.
第一节:搭建嵌入式环境和简单编译buildroot_第2张图片
(4). NFS服务器设置
原理: NFS,网络文件系统. 它允许网络中的计算机之间 通过TCP/IP网
络共享资源.
功能:安装在Ubuntu操作系统上, 主要用途是把buildroot编译生成的build/target(rootfs)文件系统通过以太网SGK6802目标板上的内存里, 方便调试应用和驱动程序.
安装步骤:
1. sudo apt-get install -y nfs-kernel-server
2. mkdir /home/harry/NfsRoot 建立一个 nfs 服务的专有的文件夹(私有)
3. sudo vim /etc/exports 配置 nfs
第一节:搭建嵌入式环境和简单编译buildroot_第3张图片
4. 在文件的最后一行添加:/home/harry/NfsRoot
*(rw,sync,no_root_squash,no_subtree_check)
/home/harry/NfsRoot 含义同 TFTP 解释一样,不过需要注意,这里是放 rootfs(target)
文件系统,这个路径和 uboot 环境参数的 rootpath 和/home/harry/NfsRoot/rootfs 要一
样才能正确的挂载文件系统,否则 NFS 网络挂载不成功,后续 NFS 挂载 rootfs 会说明。
*:允许所有的网段访问,也可以使用具体的 IP。
rw:挂接此目录的客户端对该共享目录具有读写权限。
sync:资料同步写入内存和硬盘。
no_root_squash:root 用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。
5. 修改完上述配置文件保存退出
6. sudo /etc/init.d/nfs-kernel-server restart 重新启动 NFS 服务,立即生效
(5). Samba服务器配置
原理: Samba是Linux系统上实现SMB协议的一个免费软件, 由服务器及客户端程序构成. SMB是一种在局域网上共享文件和打印机的一种通讯协议, 它为局域网内的不同计算机之间提供文件及打印等资源的共享服务.
功能: windows和ubuntu系统可以相互copy文件,共享文件.
安装方式:
1. sudo apt-get install -y samba
2. sudo vim /etc/samba/smb.conf
第一节:搭建嵌入式环境和简单编译buildroot_第4张图片
重点:[harry] 是指的 windows 在映射时的路径名如:\192.168.1.1\harry
path=/home/harry 是指的 windows 映射 时进入的哪个工作目录,也不是当前目录
valid user=harry 是指的登录的用户名,其它的参数照抄就可以了
3. sudo smbpasswd -a harry windows 映射时的登录名和密码,需要在这里设定
4. windows 如何映射到 ubuntu,首先查看 linux 的 IP 地址命令为 ifconfig,通过 IP 地址来映射,以 windows10 为例:
首先查看ubuntu的IP地址: 192.168.247.128
其次在windows10下\192.168.247.128,即可查看到ubuntu下的文件.
第一节:搭建嵌入式环境和简单编译buildroot_第5张图片
第一节:搭建嵌入式环境和简单编译buildroot_第6张图片
第一节:搭建嵌入式环境和简单编译buildroot_第7张图片

  1. 输入用户名和密码
  2. 映射成功

第三步: 在SVN上下载buildroot 的 SDK 开发包.

第四步: 打开README文件,按照上面的进行make即可. (编译buildroot)
中途出现 You may have to install ‘g++’ on your build machine
You must install ‘git’ on your build machine
……
按照上面的顺序安装即可
1. 最小文件系统, NFS网络挂载文件 run ‘make sgks_sgks6802_min_nfs_defconfig’
2. 如果用户不配置,选择默认的话,就可以跳过这一步
run ‘make menuconfig’
3. 直接编绎,默认是采用8线程编绎,等待编绎完成,生成最小rootfs系统 run ‘make’
4. 配置ADI和GPU模块,选择Target packages -> SGKS6802 EVB development … 选择ADI和GPU
ADI: 视频接口
GPU: GPU接口
run ‘make menuconfig’
5. 再编绎buildroot,测生成ADI和GPU的应用程序和库及驱动到/home目录下 run ‘make’
6. 编绎完成则在buildroot/output/image目录下,对应的文件image文件 find the kernel, bootloader, root filesystem, etc. in output/images

备注:
如果需要自行开发应用程序,脱离buildroot的编译环境,在整个buildroot编译完成一次之后,用户可以运行build_app_env.sh这个脚本,则可以独立的编译应用程序.

此时编译全部完成

嵌入式开发环境:
硬件环境: PC(Windows上安装虚拟机) + Sensor板与镜头 + 显示设备
软件环境: 使用Linux操作系统的TFTP服务器 + NFS网络挂载rootfs ,来开发调试应用及驱动程序.

你可能感兴趣的:(Arm/Ubuntu)