镜像——虚拟机——交叉编译器
嵌入式一般以utuntu-12.04系统为主,或fedora虚拟机,redhat虚拟机。
下载utuntu的镜像为:ubuntu-12.04.3-desktop-i386.iso
网址:http://releases.ubuntu.com/12.04/
向下滑:
稍后进行ubuntu的安装:
在编辑虚拟机设置中需要注意的点:
- 超级用户登录
以普通用户进入终端,在终端输入:sudo passwd root(需要输入密码:及root密码)
然后通过sudo vi /etc/lightdm/lightdm.conf修改/etc/lightdm/lightdm.conf文件,在文件的最后两行添加两行代码:(由于以后的实验经常需要在超级用户的工作方式下进行,所以接下里将要进行超级用户登录的设置 (即 root 用户登录))
greeter-show-manual-login=true
allow-guest=false
保存退出,输入reboot重启系统,进入登录界面。
- 安装SSH服务
作用:该服务主要提供远程登录到Ubuntu系统功能
在终端执行:
#sudo apt-get install openssh-server openssh-client
安装好后sshd服务就启动了,可以通过命令行查看服务进程
#ps -ef |grep sshd
- 建立TFTP服务
作用:该服务主要用来将Ubuntu系统中交叉编译好的程序下载到UP-MOBNET-A9-II型开发板上(相当于Windowsxp上的TFTP32.EXE软件)。
(如果Ubuntu12.04系统没有安装TFTP服务,需要下载安装该服务。该方式需要Ubuntu系统下的网络支持)
执行以下命令:
#sudo apt-get install tftpd openbsd-inetd
编辑配置文件/etc/inetd.conf
#sudo gedit /etc/inetd.conf
将文件内容改为
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
保存退出
启动或重启TFTP服务
#sudo /etc/init.d/openbsd-inetd restart
测试查看69端口是否打开
#netstat -an | more
创建tftp服务的共享目录
#sudo mkdir /tftpboot
#sudo chmod 777 /tftpboot
交叉编译好的程序复制到/tftpboot 目录,UP-MOBNET-A9-II开发平台可以通过tftp命令下载
- 添加SAMBA服务
该服务主要用于Ubuntu与Windowsxp之间实现通讯。
安装samba服务软件
执行以下命令:
#sudo apt-get install samba
#sudo apt-get install smbfs
修改samba服务的配置
#sudo gedit /etc/samba/smb.conf
在文件的最后,添加共享目录
[firmware]
path = /home/now/ //home/now 为共享的目录
read only = no
locking = no
guest ok = yes
browseable = yes
create mask = 0777
directory mask = 0777 ——添加访问用户创建文件和目录的权限,保存退出。
建立SAMBA共享目录,并增加可读写权限
#sudo mkdir /home/now
#sudo chmod 777 /home/now
重新启动samba服务
#sudo /etc/init.d/smbd restart
安装samba后,服务就自启动了,此时,在windows下进入,开始->运行输入
\\192.168.12.158\firmware Linux下的IP
第一种方法:
我的Linux宿主机的IP为10.25.100.79则有:
- “开始+r”------à输入cmd
- Start+宿主机的IP
表示连接成功(前提条件:Linux宿主机的网络设置为桥接模式,win10和Linux宿主机的IP地址在同一个网段。例如:win10 IP:10.25.100.76;Linux IP:10.25.100.79)
第二种方法:点击此电脑-->网络-->在栏目中输入Linux的IP,
我的为:10.25.100.79,之后便能看见共享文件夹
- 安装nfs服务
NFS文件共享的方式极大的方便了嵌入式软件开发,在嵌入式开发板设备存储资源有限的条件下,极大扩展了对存储容量要求大的软件程序。使用NFS共享即将宿主机Ubuntu系统内的文件目录共享,指定特定的IP地址的机器(一般为开发板设备)访问该文件夹
安装NFS服务器端及客户端:
#sudo apt-get install nfs-kernel-server nfs-common
配置挂载目录和权限
#sudo gedit /etc/exports
在exports文件末尾添加若干目录项,我的配置如下:
/nfsroot *(rw,sync,no_root_squash)
即:允许所有用户访问共享目录根据自己的IP地址进行相应的修改
在根目录下建立nfs服务的共享目录
#sudo mkdir /nfsroot
#sudo chmod 777 /nfsroot
重启NFS服务
#sudo /etc/init.d/nfs-kernel-server restart
测试,假设主机Linux的IP地址为:192.168.12.158,
#sudo mount -o nolock 192.168.12.158:/nfsroot /mnt/
- 安装vim文本编辑器
#sudo apt-get install vim
安装交叉编译器(此编译器十分重要,安装的成功与否直接关系到后面交叉编译器程序测试)
在宿主机的/usr/local/目录下建立arm目录存放交叉编译器
#mkdir /usr/local/arm
可通过samba服务实现win10和Linux之间传递文件或文件夹。
解压交叉编译器至:/usr/local/arm目录下(使用的是2009版和4.4.3版选择其中一个即可)
#sudo tar xzvf arm-2009q3-67.tar.gz -C /usr/local/arm
修改系统编译器默认搜索路径配置文件bash.bashrc
#sudo gedit /etc/bash.bashrc
修改内容:在最后一行添加如下内容
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
保存退出
#source /etc/bash.bashrc
解压交叉编译器至:/usr/local/arm目录下(使用的是4.4.3版)
#sudo tar xzvf arm-linux-gcc-4.4.3.tar.gz -C /usr/local/arm
修改系统编译器默认搜索路径配置文件bash.bashrc
#sudo gedit /etc/bash.bashrc
修改内容:在最后一行添加如下内容
export PATH=$PATH:/usr/local/arm/ opt/FriendlyARM
/toolschain/4.4.3/bin
保存退出
#source /etc/bash.bashrc
配置生效或重启生效,在终端输入编译器的部分名称来验证是否安装成功,
例如:在终端输入① arm-none双击TAB键是否自动补齐arm-none-linux-gnueabi-,② 同样可以通过which命令查看交叉编译器的存放路径:
#which arm-none-linux-gnueabi-gcc
TAB之前
TAB之后
which查看存放的路径(我所用的版本是:4.4.3)
也可以通过arm-none-linux-gnueabi-gcc -v 命令查看交叉编译器版本
显示出版本信息
开发板结构图