虚拟机WMWare12.5中安装Ubuntu14.04LTS并建立嵌入式Linux开发环境

1、在Win10中安装VMWare12.5;

2、在VMWare12.5中安装32位Ubuntu 14.04 LTS;

3、安装VMWare Tools;

客户操作系统Ubuntu安装完成之后,在VMWare下点击VM->Install VMWare tools,然后Ubuntu中就会将VMWare Tools的iso文件载入到虚拟光驱中,将其中的tar文件拷贝到~/tmp目录下,解压之,并运行:sudo ./vmware-install.pl,然后一路回车即可。

安装好VMWare Tools之后,即可从host操作系统之中拷贝文件到guest操作系统,虚拟机全屏后,分辨率也可以自动传递。

4、安装完成后,进入Ubuntu,安装g++;

按Ctrl+Alt+T,出现终端,输入:#sudo apt-get install g++,即可安装g++。

5. 安装QT Creator

在Ubuntu 14.04 LTS的软件中心中搜寻QT Creator,并安装;

注意点:

 最好不要升级Ubuntu,有时会出现系统崩溃的现象;

 此QT Creator只是用来对整个工程进行组织、浏览、UI设计、编码,不进行编译;

 编译从NDT工程所使用的是嵌入式Linux的编译器版本;

6、安装搜狗输入法

从搜狗输入法网站中下载x64的搜狗输入法deb安装包,双击,即可安装Ubuntu中的搜狗输入法;

此输入法在QT Creator中不能使用,因为QT Creator使用fcitx输入法框架,而Ubuntu默认安装的是ibus输入法框架,所以需要运行如下命令:

#sudo apt-get install fcitx-frontend-qt5

安装后即可在QT Creator中使用基于fcitx输入法框架的搜狗输入法;

7、拷贝已经做好的根文件系统

在其他系统中,已经做好的根文件系统,可以拷贝到其他linux中使用。

但是rootfs不能直接拷贝,其中有一些设备节点,直接拷贝不能成功。

先用tar打包:

$ tar -czvf rootfs.tar.gz ~/rootfs

然后在需要拷贝到的操作系统中,转到/home/administrator目录中:

$ cd /home/administrator

先提升权限为root用户:

$ sudo su

然后解压:

$ tar -xzvf rootfs.tar.gz

这样即可将其他系统系统中做好的rootfs拷贝到本系统中。

7、Nfs服务器安装及配置

(1)Ubuntu默认是没有安装Ubuntu nfs服务器的,因此首先安装Ubuntu nfs服务器端:

#sudo apt-get install nfs-kernel-server

(2)Ubuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。

例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:/home/administrator/rootfs *(rw,sync,no_root_squash)。

其中:/home/administrator/rootfs是要共享的目录,也是我们将来要作为S5PV210的根文件系统的共享目录。

*代表允许所有的网络段访问,

rw是可读写权限,

sync是资料同步写入内存和硬盘,

no_root_squash是Ubuntu nfs客户端分享目录使用者的权限,

如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。

要注意*和后面()之间没有空格

(3)配置完之后重启nfs服务器。

$sudo /etc/init.d/nfs-kernel-server restart

(4)测试nfs服务。例如将/rootfs挂载到/mnt下:

$ sudo mount -t nfs localhost:/home/administrator/rootfs /mnt

可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:

$ sudo umount /mnt

8、 安装tftp

(1) #sudo apt-get install tftp-hpa tftpd-hpa 前者为客户程序,后者为服务程序.

(2) #sudo mkdir ~/tftp

#sudo chmod 777 ~/tftp

(3) #cd ~/tftp

(4) #gedit test1.txt

随便输入数据保存并退出

(5) #cd ~

(6) #gedit test2.txt

随便输入数据保存并退出

(7) #sudo gedit /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/administrator/tftp"

//这里是你的tftpd-hpa的服务目录,这个想建立在哪里都行

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"

//这里是选项,-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录,上面已经指定

(8) #sudo service tftpd-hpa restart启动服务

(9)测试

#tftp localhost

tftp>get test1.txt

tftp>put test2.txt

tftp>quit #ls

会看见test1.txt

#cd tftp

#ls

test1.txt,test2.txt都存在。

如果成功,会没有任何提示,而且基本上看不见任何延时。注意严格按照以上操作,不要动xinetd的配置。只需要修改/etc/default/tftpd-hpa即可。

9、安装交叉编译工具链

(1)方法选择

我们使用的是 arm-linux-gcc-4.5.1(和 Mini6410相同),它在编译内核时会自动采用 armv7指令集,支持硬浮点运算,下面是安装它的详细步骤。

拷贝友善光盘中的如下文件到虚拟机:

arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

(4) 安装权限和安装目录

 使用上面下载的文件进行安装,安装需要使用root权限.

 默认是安装在/opt目录下的,一般的Ubuntu安装完成之后都会在根目录下有一个opt目录,如果没有就创建一个新的目录:# mkdir -p /opt

(5) 解压源文件

参考TI的安装,安装路径为/opt目录,解压源文件到/opt目录下。

#sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz –C /

(6) 设置环境变量

# sudo gedit ~/.bashrc

在.bashrc文件的末尾最后添加一行,来增加一个环境变量

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

(7) 使得刚才的设置生效

# source ~/.bashrc

(8) 查看linux的环境变量

#echo $PATH

或者

# printenv

(9) 测试安装结果

输入

# arm-linux-gcc

提示NO input file,表明安装成功。

10、安装mktools工具链

要把目标文件系统全部写入开发板中,一般还需要先把目标文件系统目录制作成单个的映像文件以便烧写或者复制, Linux内核启动时,一般会根据命令行参数挂在不同格式的系统,比如 yaffs2, ubifs, ext2等。在此需要使用 mkyaffs2image-128Mmkyaffs2image-mlc2这两个工具。

mkyaffs2image-128M工具适用于 SLC NAND flash,而mkyaffs2image-mlc2工具适用于 MLC NAND flash,它们都用来压制 yaffs2格式的映像文件。

先将光盘中的 mktools-YYYYMMDD.tar.gz文件拷贝到 home目录下,执行以下命令安装 mktools工具链: #tar xvzf mktools-20120518.tar.gz –C / ( 注:YYYYMMDD 替换为实际的日期 ) 将会在 /usr/sbin目录下创建生成相应的工具集。 注意:C是大写的, C后面有个空格,C是改变解压安装目录的意思

说明:如果你以前安装过 mini2440或者 mini6410使用的 mkyaffs2image系列工具,它们将会被覆盖,请不必担心,它们功能都是相同的。

10、 安装必要的工具软件tmake

该软件下载地址为:http://www.embeddedlinux.org.cn/emblinuxappdev/80.html

(1)#cd linuxtools

(2)#tar -vxjf tmake-2.12.tar.bz2

(3)#sudo gedit ~/.bashrc 修改~/.bashrc文件,在后面添加如下内容

export TMAKEPATH=“/home/administrator/linuxtools/tmake/lib/linux-g++”

export PATH=”$PATH:/home/administrator/linuxtools/tmake/bin“

此处的tmake根据个人解压缩包的名字,我的为tmake-2.12,所以上边要在

~/.bashrc后面添加的内容为

export TMAKEPATH=“/home/administrator/linuxtools/tmake-2.12/lib/linux-g++”

export PATH=”$PATH:/home/administrator/linuxtools/tmake-2.12/bin“

11、 安装jpeg-6b

(1) #cd linuxtools/jpeg-6b

(2) #./configure

(3) #make

(4) #make test

12、 安装zlib

(1) #cd linuxtools/zlib-1.2.3

(2) #./configure

(3) #make

(4) #sudo make install

13、 安装libpng-1.2.14

(1) #cd linuxtools/libpng-1.2.14

(2) #./configure –prefix=/home/administrator/linuxtools/armqt

(3) #make

(4) #sudo make install

14、 安装qt-embedded-linux-opensource-4.5.3

(1) #cd linuxtools

(2) #tar -xzvf qt-embedded-linux-opensource-src-4.5.3.tar.gz

(3) #cd qt-embedded-linux-opensource-4.5.3/mkspecs/qws/linux-arm-g++

(4) #cd ~/linuxtools/qt-embedded-opensource-4.5.3

(5) #./configure --prefix=/home/administrator/linuxtools/armqt -opensource -fast -no-largefile -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -no-armfpa -little-endian -host-little-endian -nomake demo -nomake examples -nomake tools -nomake docs -depths 8,16,18,24 -no-glib -qt-kbd-usb -qt-kbd-usb -qt-kbd-tty -qt-mouse-pc -no-glib

注意:

 --prefix=/home/administrator/linuxtools/armqt指定了该嵌入式版本QT的安装路径

 如果要清除上述配置,需要#make confclean

(7) #make

(8) #sudo make install

15、 编译NDT工程

(1) 拷贝NDT工程至~/NDT/目录下,并解压;

(2) 进入该目录下

#cd ~/NDT/NDT_app

(3) 首先允许qmake产生嵌入式版本编译所需要的Makefile

#~/linuxtools/armqt/bin/qmake NDT.pro

~/linuxtools/armqt/bin/qmake为嵌入式版本的QT的qmake的绝对路径,此qmake处理NDT的工程文件NDT.pro,生成Makefile

(4) 编译NDT工程

#make

编译后将生产NDT可执行文件,此文件将拷贝到~/rootfs路径下作为NFS挂载到ARM板上,供运行、调试。

#cp ./NDT ~/rootfs

16、安装Minicom,实现调试

(1)首先需要安装minicom,在Ubuntu下执行如下命令:

#sudoapt-getinstallminicom

(2)然后,插入USB转串口的线,这里我们使用的USB转串口芯片是英国FTDI公司的FT232。Linux内核自带驱动,线插上后,驱动就装好了。

(3)看一下usb情况,命令如下:

#lsusb

此时会看到系统上连接的USB设备的情况,应该会看到FTDI的芯片的相关信息。

(4)接下来看一下串口的情况,命令如下:

#dmesg|grepttyUSB

可以看到USB转串口设备已经连接。

(5)输入sudo minicom–s配置minicom:

+----[configuration]----+

|Filenamesandpaths |

|Filetransferprotocols |

|Serialportsetup |

|Modemanddialing |

|Screenandkeyboard |

|Savesetupasdfl |

|Savesetupas.. |

|Exit |

|ExitfromMinicom |

+-----------------------+

选择进入Serialportsetup,按照之前查看的信息进行配置

一定要把硬件流关掉,否则无法连接,这个和windows下面是一致的,只是容易忽略。enter推出,选择Savesetupasdfl 保存为默认配置,注意需要root权限,这样就配置好了。

(6)然后打开minicom,用USB转串口线和双母头串口线连接开发板,打开开发板电源,会看到minicom中相应的输出信息。板子的启动过程为ROMboot->Superboot->Kernel,从minicom中可以其依次启动的过程。