微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DENX U-Boot及Linux使用手册(全)

DENX U-Boot及Linux使用手册(全)

时间:03-26 来源: 点击:

4.3 使用minicom


minicom是另外一种非常流行的串口通信终端。很遗憾的是,很多用户发现在使用U-Boot和Linux时,minicom有很多问题,尤其是试图使用它来下载image的时候。因此,不推荐大家使用minicom。

(译者注:我使用minicom也工作的很好,没有碰到什么问题。)

4.4 配置TFTP服务器


使用U-Boot下载Linux内核或者应用程序的最快捷的方法是通过网络传输。为了这一目的,U-Boot实现了TFTP协议(参见U-Boot中的tftpboot命令)。

为了使主机支持TFTP,你必须确保TFTP后台程序/usr/sbin/in.tftpd已经安装。在RedHat系统中,你可以运行下面的命令来确认:

$ rpm -q tftp-server

如果没有安装,请从你的Linux安装盘或者其它媒介安装。

大多数的Linux发行版都默认关闭TFTP服务。以RedHat系统为例,如果要使能TFTP服务,编辑文件/etc/xinetd.d/tftp,移除这一行:

disable = yes

或者注释掉它:

# default: off

# description: The tftp server serves files using the trivial file transfer

# protocol. The tftp protocol is often used to boot diskless

# workstations, download configuration files to network-aware printers,

# and to start the installation process for some operating systems.

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

# disable = yes

per_source = 11

cps = 100 2

}



此外,确保/tftpboot目录存在,而且有访问权限(至少应该"dr-xr-xr-x")。



5. Das U-Boot


5.1 当前版本


Das U-Boot(或者简称"U-Boot")是针对嵌入式PowerPC, ARM, MIPS和x86处理器的开放源代码软件。U-Boot项目已经在Sourceforge设立,你可以访问这个官方网站:http://sourceforge.net/projects/u-boot

U-Boot最新版的源代码可以在Sourcefoge通过匿名CVS得到。当要求输入匿名用户anonymous的密码时只需要直接按下回车键。

$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot login

$ cvs -z6 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot

co -P u-boot

官方发布的U-Boot也可以通过FTP方式获取。你可以到

ftp://ftp.denx.de/pub/u-boot/

下载tar形式的压缩包。

5.2 源代码包的解压


如果你是通过CVS得到的U-Boot源代码,你可以跳过这一步,因为你得到的已经是解压后的目录树了。如果你是从FTP服务器上下载的tar压缩包,那么你需要按照以下步骤解压:

$ cd /opt/eldk/usr/src

$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-0.4.5.tar.bz2

$ rm -f u-boot

$ bunzip2 < u-boot-0.4.5.tar.bz2 | tar xf -

$ ln -s u-boot-0.4.5 u-boot

$ cd u-boot


5.3 配置


进入U-Boot源代码根目录后,可以先使用如下命令确保已经清除以前编译的结果:

$ make distclean

下一步是为TQM8xxL板配置U-Boot:

$ make tqm8xxl_config

(译者注:应该根据你自己的具体开发板配置,如

$ make <yourboard>_config,如果没有相应的开发板,应该自己照着建立相应的目录和配置文件。)

最后我们可以开始编译U-Boot了:

$ make all


5.4 安装


5.4.1 动手之前


5.4.1.1 安装所需

以下的章节假定你的开发板使用flash作为存储设备。如果不是,则以下的指令不会工作。如果你想使用U-Boot,需要换掉存储设备。

5.4.1.2 开发板识别数据


所有的TQM8xxL开发板使用一个序列号加以识别。而且开发板需要分配一个以太网MAC地址。如果这些数据丢失,你可能会失去授权。在安装U-Boot或者改变开发板的配置之前,你需要搜集足够的信息。

5.4.2 使用BDM/JTAG调试器安装U-Boot.bin


把数据烧入flash中的一个简单而又快速的办法是通过BDM或者JTAG接口的调试器或者flash烧写器。当flash中没有任何数据(比如说一块新的开发板),这种方法是唯一的选择。

我们(强烈推荐)使用Abatron公司的BDI2000(见http://www.abatron.ch/BDI/bdiGDB.html )。

其它的BDM/JTAG调试器也可以使用,但是如何操作它们不是本文档要讨论的范围。如果你想使用别的工具请参照它们的说明文档。

( 译者注:我没有使用BDI2000,故略去操作BDI2000的方法。我烧写u-boot.bin就是简单地通过JTAG口。甚至我烧写800多k的Linux内核都是用JTAG,只要你不嫌慢。)

5.4.3 使用U-Boot安装U-Boot.bin


如果U-Boot已经在你的板子上安装运行,你可以使用这些命令来下载新的U-Boot映像来代替当前的。

警告:在你安装新的映像之前,你必须擦除当前的u-boot.bin。如果出现什么差错,你的开发板将不能运行。因此强烈建议:

做一个能工作的U-Boot映像文件的备份;

你清楚如何在一个新的开发板上安装u-boot.bin。

过程如下:

=> tftp 100000 /tftpboot/uboot.bin

ARP broadcast 1

TFTP from server 10.0.0.2; our IP address is 10.0.0.100

Filename '/tftpboot/uboot.bin'.

Load address: 0x100000

Loading: ###############################

done

Bytes transferred = 155376 (25ef0 hex)

=> protect off 40000000 4003FFFF

Un-Protected 5 sectors

=> era 40000000 4003FFFF

Erase Flash from 0x40000000 to 0x4003ffff

......... done

Erased 5 sectors

=> cp.b 100000 40000000 $(filesize)

Copy to Flash... done

=> setenv filesize

=> saveenv

Saving Enviroment to Flash...

Un-Protected 1 sectors

Erasing Flash...

.. done

Erased 1 sectors

Writing to Flash... done

Protected 1 sectors

=> reset

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top