Chinaunix首页 | 论坛 | 博客
  • 博客访问: 301026
  • 博文数量: 76
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 715
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-20 20:38
文章分类
文章存档

2016年(20)

2015年(56)

分类: 嵌入式

2015-05-20 20:53:57

Ubuntu12.04 LTS 配置arm9开发环境
15年4月22日20:48:53
写在前面的话:大家看韦东山老师的视频,用的是韦老师直接构建的虚拟机开发环境,等学习了一段时间以后,我想直接把电脑换成linux系统,一来可以更加熟悉linux的指令,二可以从头构建一个开发环境,这个是去公司以后必备的技能,三是里面有安装wine+sourceinsight和串口工具minicom的步骤,这样,在linux下面也可以使用SI这么牛逼的软件了,话不多说,直接开始:

1.把U盘做成系统盘,安装ubuntu12.04系统。我用的powerISO软件做的系统盘。推荐用32位的系统。64位的系统在安装的时候很不方便,而且安装交叉编译器arm-linux时需要32的库,很麻烦~~~

2.安装好的ubuntu中,没有无线网卡驱动,而安装的时候提示不允许,这时候先对系统进行升级更新,更新完后再次安装即可,可是一直安装不完,我选择强制关机再开机。

3.更换ubuntu的更新源,要不升级更新太慢。
1)“sudo cp /etc/apt/sources.list  /etc/apt/sources.list_backup”
2)“sudo gksu gedit /etc/apt/sources.list”
3)选择合适的源,把/etc/apt/sources.list里面的东西全部替换了,保存。推荐163的源。
4)刷新列表“sudo apt-get update”

4.安装vim
1)安装
“sudo apt-get install vim”
有可能提示“vim:依赖:vim-common(......),但是......正要被安装,E:无法安装的文件包”,这时候,删除vim-common 是关键,执行“sudo apt-get remove vim-common”,成功后再次执行“sudo apt-get install vim”即可。
2)配置vim
“sudo vi /etc/vim/vimrc.local”
set nu                                “显示行号”
set tabstop=4                    “制表符宽度”
set cindent                        “C/C++语言的自动缩进方式”
set shiftwidth=4               “C/C++语言的自动缩进宽度”

5.安装串口工具minicom
1)安装
“sudo apt-get install minicom”
“sudo apt-get install lrzsz”   “安装后可以使用Zmodem传输协议传输文件”
2)配置
“sudo minicom -s”
主要是设置串口信息,如下所示:


按enter进入,将串口设备设置为/dev/ttyUSB0,设置波特率为115200,关流控,如下所示:

设置完后,点击保存位df1,如果不保存,下次还得设置,如下所示:

然后点击退出,设置完毕。

6.安装命令tree
“sudo apt-get install tree”

7.安装chkconfig命令
“sudo apt-get install chkconfig”

8.安装patch命令
“sudo apt-get install patch”

9.安装gettext
“sudo apt-get install gettext”

10.安装gtk
“sudo apt-get install libgtk2.0-dev”

11.安装交叉编译工具
1)使用制作好的工具链,在韦老师的光盘/tools里面,将它拷贝到/work目录下面:
“cd /work/tools”
“tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2”
输入”arm-linux-“以后,按tab键,会自动补全,输入”arm-linux-gcc -v“以后,会输出版本信息,自己编写一个小的程序,可以交叉编译出来,即为成功。

2)然后设置环境变量,想要永久有效的话,有两种设置方式
    (1)设置当前用户环境变量:
    “sudo vim ~/.bashrc”
    在末尾添加:“export PATH=$PATH:~/work/tools/gcc-3.4.5-glibc-2.3.6 /bin”

立即生效的话执行    “source ~/.bashrc”
这种方法对root用户无效。
(2)设置系统环境变量(对root用户生效)
“sudo vim /etc/environment”
同样在后面添加“export PATH=$PATH:/work/tools/gcc-3.4.5-glibc-2.3.6 /bin”

注意:我这个添加的是root权限下面的环境变量,后来从新在根目录下面建立了一个work文件夹,所以下面的路径是/work/tools而不是第一种方法的~/work/tools。


12.如果上面11步做了的话,12步可以不做。我这是当初自己安装交叉编译链的时候遇见的问题等。
1)从网上下载arm-linux-gcc-4.4.3.tar.gz
2)解压到根目录中“sudo tar xvzf arm-linux-gcc-4.4.3.tar.gz  -C  /”
其中-C命令是将tar的工作目录从当前目录改为-C后面的目录了,本例中改为根目录,也可以改成其他的目录。
3)修改环境变量,跟11步的方法一样。并同时检验是不是有自动补全功能, 输入”arm-linux-gcc -v“以后,会输出版本信息。
4)自己编写一个简单的小程序,结果编译出错:“......No such File.........”什么的了忘记了,上网查资料,出现这种情况是因为64位的系统,依赖一些32位的库,执行“sudo apt-get install ia32-libs”,安装完即可。

安装的时候,多次出现“依赖:........, E:无法安装(但不会安装............)”一类的信息,最后重装系统以后,并更改更新源后才成功,所以推荐用32位的系统,64位的系统可能出现很多意想不到的问题。

13.安装wine+source insight
1)安装wine
“sudo apt-get install wine”即可,时间稍微有点长。
2)打开windows下面的source insight的  .exe 安装包,右键,打开方式,wine windows Program Loader,打开即可。

wine可以理解为在linux中构建了一个虚拟的windows平台,在里面有c盘,有Program File等东西。用wine打开SI的时候,去Program File里面打开Source Insight 3 里面的Insight3.exe,或者从ubuntu的Dash主页打开。

SI界面如下所示:


可以看到,与windows下面的一样!!

14.安装基本的开发环境
“sudo apt-get install build-essential”

15.安装语法,词法分析器
“sudo apt-get install bison flex”

16.安装C函数库的man手册
“sudo apt-get install manpages-dev”

17.安装NFS服务
这一项东西比较多,我在下面从新排版显示:

Ubuntu12.04 LTS下安装nfs服务
1.执行命令:”sudo apt-get install nfs-kernel-server”

2.修改pc机可以挂载的目录,在/etc/exports里面:‘’sudo vi /etc/exports”,配置nfs:

这个是我后来写的,原来的目录是:
“/home/ybx/work/nfs_root/first_fs *(insecure,rw,sync,no_root_squash,no_subtree_check)”

这一行的含义是:
/home/ybx/work/nfs_root/first_fs:与nfs服务客户端共享的目录。
*:允许所有的网段访问,也可以使用具体的IP。
secure
nfs通过1024以下的安全TCP/IP端口发送。

insecure
nfs通过1024以上的端口发送。
可以看到,在重启portmap的时候,端口号都是大于1024的,所以得加上这个口令。
rw:挂接此目录的客户端对该共享目录具有读写权限。
sync:资料同步写入内存和硬盘。
no_root_squash是nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。
no_subtree_check:不检查父目录的权限。

3.完成后重启一下nfs服务:
#sudo /etc/init.d/portmap restart 需要先重启portmap,nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定,然后再重启nfs。
#sudo /etc/init.d/nfs-kernel-server restart。
#sudo /etc/init.d/portmap restart 结果如下:

#sudo /etc/init.d/nfs-kernel-server restart结果如下:


这时候可以看出来,中间写着/home/ybx/work/nfs_root/first_fs不支持NFS服务,于是上网查了一大堆资料,看到几个文章提到可能是/home/ybx....这个用户目录不支持NFS挂载服务,想起来韦老师也是直接在根目录/下直接建立work文件夹的,于是把work文件夹直接拷贝到/home里面,从新修改上面一系列的东西,/etc/exports,然后重启服务,可以看到下图:

发现成功了。

4.自己在pc机上面挂载自己的文件,试试nfs服务是不是正常,如下图:

却发现怎么做也没法成功。。。。。。

5.纠结很久以后,决定直接用开发板手动挂载,想起来以前做的时候,出现ubuntu跟开发板ping不通,于是用交叉网线,却发现能挂载了。。。。。。不知道是不是交叉网线的问题。

6.从新把work目录直接拷贝在根目录下面,切换成root模式,修改/etc/exports,重启服务。

7.修改uboot的参数,直接从nfs启动:
“set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.131:/work/nfs_root/first_fs ip=192.168.1.17:192.168.1.131:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0”
经过实验,确实能够nfs挂载了。。。。。。


通过以上几步,就可以从零构建出来一个嵌入式arm9的ubuntu开发环境。
阅读(2998) | 评论(0) | 转发(0) |
2

上一篇:没有了

下一篇:从编译警告信息(Warning)中寻找原因

给主人留下些什么吧!~~