分页: 1 / 11

在Ubuntu上建立Arm Linux 开发环境

发表于 : 2006-12-04 14:36
volans
我使用的是友善2410的板子,以前都是用Fedora,现在家里的电脑被我转为Linux专用的了,装的是Ubuntu。但是嵌入式还是要玩的,在装载过程中也遇到一些小麻烦。在此记录一下,一来自己比较健忘,二来也希望能给一些没弄过的人一点启示。

目的:
把ARM linux的交叉开发环境,kernel, filesystem, bootloder安装,并配置,使其可以编译bootloder, kernel, 可以nfs更新文件系统;

资源:

代码: 全选

arm-linux-toolchains.tgz
matrix5-kernel-v5.5.tgz
vivi.tar.gz
Jflash.tgz
root-for-nfs-v5.5.tgz
规划:
交叉编译器装在:/usr/local/
kernel, bootloder放在: /home/volans/arm/
用于启动的nfs文件系统放在:/home/armnfs/

准备工作:

代码: 全选

sudo mkdir /home/armnfs
sudo chmod 777 /home/armnfs
mkdir ~/arm
上面前两句的目的是在/home下建立armnfs目录,为了开发的方便,把这个目录设成所有用户可rwx。
然后把上面提到的资源全部拷贝到~/arm/下。
安装配置:

代码: 全选

安装标准的C开发环境,由于Ubuntu安装默认是不安装的,所以需要先安装一下:
sudo apt-get install gcc g++ libgcc1 libg++ make gdb

代码: 全选

安装交叉编译器
cd /
sudo tar zxvf /home/volans/arm/arm-linux-toolchains.tgz
请在执行完成后查看是否存在/usr/local/arm文件夹。
把交叉编译器的路径加入到PATH,以方便使用:
sudo vi /etc/bash_bashrc
在后面加入如下代码:
if [ -d /usr/local/arm ] ; then
    PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
fi

代码: 全选

解压bootloader, kernel和flash烧写工具Jflash
cd ~/arm
tar zxvf matrix5-kernel-v5.5.tgz
tar zxvf vivi.tar.gz
tar zxvf Jflash.tgz

代码: 全选

解压用于启动的NFS文件系统
cd /home/armnfs
tar zxvf /home/volans/root-for-nfs-v5.5.tgz

代码: 全选

启动NFS服务
请参照我前几篇文章,关于启动NFS服务器的相关内容。
在/etc/exports中加入如下内容:
/home/armnfs/root    192.168.0.69(rw)

代码: 全选

安装ncurse
基本上上述配置已经基本可以满足开发需求,但现在去编译kernel 或vivi的时候,运行make menuconfig会提示ncurses找不到,这是因为menuconfig 用到了ncurses库。解决办法如下:
sudo apt-get install ncurses-dev

代码: 全选

安装minicom串口工具
sudo atp-get install minicom
然后配置:
sudo minicom -s
配置和友善的文档就一样了,我就不多废话。

其他的基本就没什么了,有两点要注意,nfs的共享目录是/home/armnfs/root, 所以在目标版使用NFS启动的时候把共享目录换成这个。

发表于 : 2006-12-12 17:50
volans
发现看的人多,回帖的人少。甚至有几个兄弟邮件联系我讨论这个问题。难道论坛不是为了讨论问题的么?你的问题别人也有可能会有,如果你在帖子里面问,别人就可能查到,这样岂不更好?
强烈建议帖子讨论。

发表于 : 2006-12-14 9:52
an
请问下楼主jflash怎么用?

我对php一无所知,磕磕碰碰的装上去后,一个lesson都看不到 :oops:

发表于 : 2006-12-14 16:52
mjinux
我也正在学习arm,是在windows下,很想在ubuntn下用,一直不知道怎么弄,还好看到这个帖子,今晚就来试一下

发表于 : 2006-12-14 20:50
an
其他的都还好办,就是不知道怎么在linux下烧flash :cry:

Re: 在Ubuntu上建立Arm Linux 开发环境

发表于 : 2006-12-17 12:58
wiseman
你的资源中的这些文件是从什么地方得到的呀?是从源里面下载的,还是从其它的网站下载的呀?

我们可以交流交流呀

发表于 : 2006-12-22 12:47
swordzjj
不行啊,我就写了个hello,编译下到板子上运行就出错:
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!

我的开发板是nano2410 sdk4.0,dubuntu

发表于 : 2006-12-22 12:49
swordzjj
补充一点,在RH9环境下编译的就能正常运行

发表于 : 2006-12-27 13:18
zt0735
楼主你好,我是通过你的blog看到这个的,很不错的介绍,无奈今天网速有点问题,进你的blog慢之又慢,还好发现这也有你的贴。我也是用的友善之臂
在设置arm-linux path变量有个小问题想请教
我按照它的手册进行安装后,arm-linux的编译工具并不在/usr目录下,而是在解压目录下它自动新建了一个usr文件,比如我在/home下tar -zxvf arm-linux-toolchains.tgz ,解压后编译器的目录如下:/home/usr/local/arm/2.95.3
这样是有问题么?还有,按照你给的格式,我在/etc/bash.bashrc中添加如下代码:
if[ -d /home/usr/local/arm ]; then
PATH=/home/usr/local/arm/2.95.3/bin:"${PATH}"
fi
以后再开terminal标签就会有出错提示:
bash: /etc/bash.bashrc: line 49: syntax error near unexpected token `then'
bash: /etc/bash.bashrc: line 49: `if[ -d /home/usr/local/arm ]; then'

请问这个该如何解决?

发表于 : 2006-12-27 13:24
eexpress
if [

发表于 : 2006-12-27 16:59
zt0735
eexpress 写了:if [
怒赞!确实是这个的原因。。。。。。
太不小心了我。。。
谢谢楼上的,不用麻烦楼主了:)

发表于 : 2006-12-29 19:31
volans
这几天受到台湾地震的影响,所以在公司访问不了ubuntucn的论坛,加班比较狠,也没有过来看。竟然加了精华,真是曼意外的,谢谢支持。
an 写了:其他的都还好办,就是不知道怎么在linux下烧flash :cry:
不是有JFlash的源代码么,在linux下面自己编译就可以了。
wiseman 写了:你的资源中的这些文件是从什么地方得到的呀?是从源里面下载的,还是从其它的网站下载的呀?

我们可以交流交流呀
这些资源都是买板子的时候光盘里有的,所有的工具你可以在www.arm.linux.org.uk下载,这个是arm linux的官方网站。

还有华恒论坛是很值得去的地方,宣传一个。

发表于 : 2007-01-09 11:22
moonse
lz的介绍其实在哪都能搜索到,ubuntu下关键是没有安装好现成的c++开发环境,需要自行配置。有关这些说明,可以找到。
嵌入式开发需要配置一下toolchain,一般也就是下载编译好的工具链,然后解压,设置路径,就可以了。
当然也可以自己编译,这有点麻烦。

发表于 : 2007-01-09 14:35
volans
楼上也有道理,的确是很简单的问题,但是也有无数人卡在这里,好久都不能解决。

自己编译的确麻烦,但有时候是必须的,因为网上可下载的不一定最新,也不一定满足你自己的需求。
我也发了一个编译arm-elf的帖子,需要的人可以关注一下。

发表于 : 2007-01-10 20:39
RuoMu
刚开始玩嵌入式Linux,有一个问题想请教一下大家
按照楼主的步骤只是安装了arm-linux的交叉编译器,
但是用arm-linux-gcc来编译程序的时候它应该会默认去连接pc机上使用的c库吧?
不需要arm专用的c库吗?