在Ubuntu上建立Arm Linux 开发环境

内核编译和嵌入式产品的设计与开发
回复
头像
volans
帖子: 67
注册时间: 2006-11-15 14:28
来自: Beijing
送出感谢: 0
接收感谢: 3 次

在Ubuntu上建立Arm Linux 开发环境

#1

帖子 volans » 2006-12-04 14:36

我使用的是友善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启动的时候把共享目录换成这个。
头像
volans
帖子: 67
注册时间: 2006-11-15 14:28
来自: Beijing
送出感谢: 0
接收感谢: 3 次

#2

帖子 volans » 2006-12-12 17:50

发现看的人多,回帖的人少。甚至有几个兄弟邮件联系我讨论这个问题。难道论坛不是为了讨论问题的么?你的问题别人也有可能会有,如果你在帖子里面问,别人就可能查到,这样岂不更好?
强烈建议帖子讨论。
这些用户感谢了作者 volans 于这个帖子 (主题 2):
chujiangke (2013-06-06 16:32) • silleyj (2014-06-06 14:57)
评价: 7.41%
an
帖子: 53
注册时间: 2006-11-19 0:45
来自: 杭州
送出感谢: 0
接收感谢: 0

#3

帖子 an » 2006-12-14 9:52

请问下楼主jflash怎么用?

我对php一无所知,磕磕碰碰的装上去后,一个lesson都看不到 :oops:
mjinux
帖子: 9
注册时间: 2006-10-29 8:53
送出感谢: 0
接收感谢: 0

#4

帖子 mjinux » 2006-12-14 16:52

我也正在学习arm,是在windows下,很想在ubuntn下用,一直不知道怎么弄,还好看到这个帖子,今晚就来试一下
an
帖子: 53
注册时间: 2006-11-19 0:45
来自: 杭州
送出感谢: 0
接收感谢: 0

#5

帖子 an » 2006-12-14 20:50

其他的都还好办,就是不知道怎么在linux下烧flash :cry:
wiseman
帖子: 27
注册时间: 2006-11-01 23:59
送出感谢: 0
接收感谢: 0
联系:

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

#6

帖子 wiseman » 2006-12-17 12:58

你的资源中的这些文件是从什么地方得到的呀?是从源里面下载的,还是从其它的网站下载的呀?

我们可以交流交流呀
swordzjj
帖子: 18
注册时间: 2006-11-23 18:04
送出感谢: 0
接收感谢: 0

#7

帖子 swordzjj » 2006-12-22 12:47

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

我的开发板是nano2410 sdk4.0,dubuntu
swordzjj
帖子: 18
注册时间: 2006-11-23 18:04
送出感谢: 0
接收感谢: 0

#8

帖子 swordzjj » 2006-12-22 12:49

补充一点,在RH9环境下编译的就能正常运行
zt0735
帖子: 3
注册时间: 2006-12-27 13:11
送出感谢: 0
接收感谢: 0

#9

帖子 zt0735 » 2006-12-27 13:18

楼主你好,我是通过你的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'

请问这个该如何解决?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#10

帖子 eexpress » 2006-12-27 13:24

if [
● 鸣学
zt0735
帖子: 3
注册时间: 2006-12-27 13:11
送出感谢: 0
接收感谢: 0

#11

帖子 zt0735 » 2006-12-27 16:59

eexpress 写了:if [
怒赞!确实是这个的原因。。。。。。
太不小心了我。。。
谢谢楼上的,不用麻烦楼主了:)
头像
volans
帖子: 67
注册时间: 2006-11-15 14:28
来自: Beijing
送出感谢: 0
接收感谢: 3 次

#12

帖子 volans » 2006-12-29 19:31

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

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

还有华恒论坛是很值得去的地方,宣传一个。
moonse
帖子: 30
注册时间: 2006-12-30 20:09
送出感谢: 0
接收感谢: 0

#13

帖子 moonse » 2007-01-09 11:22

lz的介绍其实在哪都能搜索到,ubuntu下关键是没有安装好现成的c++开发环境,需要自行配置。有关这些说明,可以找到。
嵌入式开发需要配置一下toolchain,一般也就是下载编译好的工具链,然后解压,设置路径,就可以了。
当然也可以自己编译,这有点麻烦。
头像
volans
帖子: 67
注册时间: 2006-11-15 14:28
来自: Beijing
送出感谢: 0
接收感谢: 3 次

#14

帖子 volans » 2007-01-09 14:35

楼上也有道理,的确是很简单的问题,但是也有无数人卡在这里,好久都不能解决。

自己编译的确麻烦,但有时候是必须的,因为网上可下载的不一定最新,也不一定满足你自己的需求。
我也发了一个编译arm-elf的帖子,需要的人可以关注一下。
RuoMu
帖子: 19
注册时间: 2006-09-05 12:58
送出感谢: 0
接收感谢: 0
联系:

#15

帖子 RuoMu » 2007-01-10 20:39

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

回到 “内核及嵌入式开发”