免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4828 | 回复: 1

[开发环境] Ubuntu12.04 LTS 配置arm9开发环境 [复制链接]

论坛徽章:
0
发表于 2015-05-21 10:10 |显示全部楼层
写在前面的话:学习了一段时间以后,我想直接把电脑换成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”
主要是设置串口信息,如下所示:
1.png
按enter进入,将串口设备设置为/dev/ttyUSB0,设置波特率为115200,关流控,如下所示:
2.png
设置完后,点击保存位df1,如果不保存,下次还得设置,如下所示:
3.png
然后点击退出,设置完毕。

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”
4.png
立即生效的话执行        “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。
5.png


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界面如下所示:
6.png
可以看到,与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:
7.png
这个是我后来写的,原来的目录是:
“/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 结果如下:
8.png
#sudo /etc/init.d/nfs-kernel-server restart结果如下:
9.png
这时候可以看出来,中间写着/home/ybx/work/nfs_root/first_fs不支持NFS服务,于是上网查了一大堆资料,看到几个文章提到可能是/home/ybx....这个用户目录不支持NFS挂载服务,想起来韦老师也是直接在根目录/下直接建立work文件夹的,于是把work文件夹直接拷贝到/home里面,从新修改上面一系列的东西,/etc/exports,然后重启服务,可以看到下图:
10.png
发现成功了。

4.自己在pc机上面挂载自己的文件,试试nfs服务是不是正常,如下图:
11.png
却发现怎么做也没法成功。。。。。。

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::eth0ff init=/linuxrc console=ttySAC0”
经过实验,确实能够nfs挂载了。。。。。。
12.png

通过以上几步,就可以从零构建出来一个嵌入式arm9的ubuntu开发环境。

评分

参与人数 1可用积分 +10 收起 理由
amarant + 10 赞一个!望坚持!

查看全部评分

论坛徽章:
0
发表于 2016-01-19 14:02 |显示全部楼层
学习学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP