U-Boot和Linux中文参考指南
目录
- 1 简述
- 2 Introduction
- 3 Embedded Linux Development Kit
- 4 System Setup
-
5 Das U-Boot
- 5.1 当前版本
- 5.2 解压源代码
- 5.3 配置
- 5.4 Installation
- 5.5 Tool Installation
- 5.6 Initialization
- 5.7 Initial Steps
- 5.8 The First Power-On
-
5.9 U-Boot Command Line Interface
- 5.9.1 Information Commands
-
5.9.2 Memory Commands
- 5.9.2.1 base - print or set address offset
- 5.9.2.2 crc32 - checksum calculation
- 5.9.2.3 cmp - memory compare
- 5.9.2.4 cp - memory copy
- 5.9.2.5 md - memory display
- 5.9.2.6 mm - memory modify (auto-incrementing)
- 5.9.2.7 mtest - simple RAM test
- 5.9.2.8 mw - memory write (fill)
- 5.9.2.9 nm - memory modify (constant address)
- 5.9.2.10 loop - infinite loop on address range
- 5.9.3 Flash Memory Commands
- 5.9.4 Execution Control Commands
-
5.9.5 Download Commands
- 5.9.5.1 bootp - boot image via network using BOOTP/TFTP protocol
- 5.9.5.2 dhcp - invoke DHCP client to obtain IP/boot params
- 5.9.5.3 loadb - load binary file over serial line (kermit mode)
- 5.9.5.4 loads - load S-Record file over serial line
- 5.9.5.5 rarpboot- boot image via network using RARP/TFTP protocol
- 5.9.5.6 tftpboot- boot image via network using TFTP protocol
- 5.9.6 Environment Variables Commands
-
5.9.7 Flattened Device Tree support
- 5.9.7.1 fdt addr - select FDT to work on
- 5.9.7.2 fdt list - print one level
- 5.9.7.3 fdt print - recursive print
- 5.9.7.4 fdt mknode - create new nodes
- 5.9.7.5 fdt set - set node properties
- 5.9.7.6 fdt rm - remove nodes or properties
- 5.9.7.7 fdt move - move FDT blob to new address
- 5.9.7.8 fdt chosen - fixup dynamic info
- 5.9.8 Special Commands
- 5.9.9 Storage devices
- 5.9.10 Miscellaneous Commands
- 5.10 U-Boot Environment Variables
- 5.11 U-Boot Scripting Capabilities
- 5.12 U-Boot Standalone Applications
- 5.13 U-Boot Image Formats
- 5.14 U-Boot Advanced Features
- 6 Embedded Linux Configuration
- 7 Booting Embedded Linux
- 8 Building and Using Modules
- 9 Advanced Topics
- 10 Debugging
- 11 Simple Embedded Linux Framework
-
12 Books, Mailing Lists, Links, etc.
- 12.1 Application Notes
-
12.2 Further Reading
- 12.2.1 Upstreaming
- 12.2.2 License Issues
- 12.2.3 Linux kernel
- 12.2.4 General Linux / Unix programming
- 12.2.5 Network Programming
- 12.2.6 C++ programming
- 12.2.7 Java programming
- 12.2.8 Internationalization And Character Sets
- 12.2.9 ARM Architecture Programming
- 12.2.10 Power Architecture® Programming
- 12.2.11 Embedded Topics
- 12.3 Mailing Lists
- 12.4 Links
- 12.5 Tools
- 13 Appendix
-
14 FAQ - Frequently Asked Questions
-
14.1 ELDK
- 14.1.1 ELDK Installation under FreeBSD
- 14.1.2 ELDK Installation Hangs
- 14.1.3 .gvfs: Permission Denied
- 14.1.4 Installation on Local Harddisk
- 14.1.5 System Include Files Missing
- 14.1.6 patch: command not found
- 14.1.7 ELDK Include Files Missing
- 14.1.8 Using the ELDK on a 64 bit platform
- 14.1.9 GDB Problems with BDI2000/BDI3000 on e500 Cores
- 14.1.10 How can I check if Floating Point support is working?
- 14.1.11 ELDK 2.x Installation Aborts
- 14.1.12 Enable SSH Access
-
14.2 U-Boot
- 14.2.1 Can U-Boot be configured such that it can be started in RAM?
- 14.2.2 Relocation cannot be done when using -mrelocatable
- 14.2.3 Source object has EABI version 4, but target has EABI version 0
- 14.2.4 U-Boot crashes after relocation to RAM
- 14.2.5 Warning - bad CRC, using default environment
- 14.2.6 Net: No ethernet found
- 14.2.7 Wrong debug symbols after relocation
- 14.2.8 Decoding U-Boot Crash Dumps
- 14.2.9 Porting Problem: cannot move location counter backwards
- 14.2.10 U-Boot Doesn't Run after Upgrading my Compiler
- 14.2.11 How Can I Reduce The Image Size?
- 14.2.12 Erasing Flash Fails
- 14.2.13 Ethernet Does Not Work
- 14.2.14 Where Can I Get a Valid MAC Address from?
- 14.2.15 Why do I get TFTP timeouts?
- 14.2.16 Why is my Ethernet operation not reliable?
- 14.2.17 How the Command Line Parsing Works
- 14.2.18 How can I load and uncompress a compressed image
- 14.2.19 How can I create an uImage from a ELF file
- 14.2.20 My standalone program does not work
- 14.2.21 Linux hangs after uncompressing the kernel
- 14.2.22 How can I implement automatic software updates?
-
14.3 Linux
- 14.3.1 Linux crashes randomly
- 14.3.2 Linux crashes when uncompressing the kernel
- 14.3.3 Linux Post Mortem Analysis
- 14.3.4 Linux kernel register usage
- 14.3.5 Linux Kernel Ignores my bootargs
- 14.3.6 Cannot configure Root Filesystem over NFS
- 14.3.7 Linux Kernel Panics because "init" process dies
- 14.3.8 Unable to open an initial console
- 14.3.9 System hangs when entering User Space (ARM)
- 14.3.10 Mounting a Filesystem over NFS hangs forever
- 14.3.11 Ethernet does not work in Linux
- 14.3.12 Loopback interface does not work
- 14.3.13 Linux kernel messages are not printed on the console
- 14.3.14 Linux ignores input when using the framebuffer driver
- 14.3.15 How to switch off the screen saver and the blinking cursor?
- 14.3.16 BogoMIPS Value too low
- 14.3.17 Linux Kernel crashes when using a ramdisk image
- 14.3.18 Ramdisk Greater than 4 MB Causes Problems
- 14.3.19 Combining a Kernel and a Ramdisk into a Multi-File Image
- 14.3.20 Adding Files to Ramdisk is Non Persistent
- 14.3.21 Kernel Configuration for PCMCIA
- 14.3.22 Configure Linux for PCMCIA Cards using the Card Services package
- 14.3.23 Configure Linux for PCMCIA Cards without the Card Services package
- 14.3.24 Boot-Time Configuration of MTD Partitions
- 14.3.25 Use NTP to synchronize system time against RTC
- 14.3.26 Configure Linux for XIP (Execution In Place)
- 14.3.27 =Space requirements and RAM saving, an example
- 14.3.28 Use SCC UART with Hardware Handshake
- 14.3.29 How can I access U-Boot environment variables in Linux?
- 14.3.30 The =appWeb= server hangs *OR* /dev/random hangs
- 14.3.31 Swapping over NFS
- 14.3.32 Using NFSv3 for NFS Root Filesystem
- 14.3.33 Using and Configuring the SocketCAN Driver
- 14.3.34 Telnet / SSH (dropbear) server not working
- 14.4 Self
- 14.5 RTAI
- 14.6 BDI2000
- 14.7 Motorola LITE5200 Board
-
14.1 ELDK
- 15 Glossary
简述
这是《嵌入式系统 PowerPC,ARM和MIPS系统的DENX Uboot引导和Linux指南手册》。
该文档介绍了如何配置,构建和使用固件Das U-Boot(通常缩写为 "U-Boot")以及用于嵌入式PowerPC,ARM和MIPS系统的操作系统 Linux。
本文档版本的重点是在Das U-Boot上。
本文件产生于2020年5月7日-02:52
Introduction
Copyright
Disclaimer
Availability
Credits
Translations
Feedback
Conventions
Embedded Linux Development Kit
ELDK Availability
ELDK Getting Help
Supported Host Systems
Supported Target Architectures
Installation
Product Packaging
Downloading the ELDK
Initial Installation
Installation and Removal of Individual Packages
Removal of the Entire Installation
Working with ELDK
Switching Between Multiple Installations
Mounting Target Components via NFS
Rebuilding ELDK Components
ELDK Source Distribution
Rebuilding Target Packages
Rebuilding ELDT Packages
ELDK Packages
List of ELDT Packages
List of Target Packages
Rebuilding the ELDK from Scratch
ELDK Build Process Overview
Setting Up ELDK Build Environment
build.sh Usage
Format of the cpkgs.lst and tpkgs.lst Files
Notes for Solaris 2.x Host Environment
System Setup
Serial Console Access
Configuring the "cu" command
Configuring the "kermit" command
Using the "minicom" program
Permission Denied Problems
Configuration of a TFTP Server
Configuration of a BOOTP / DHCP Server
Configuring a NFS Server
Das U-Boot
当前版本
Das U-Boot (或只是“U-Boot的”的简称)是开源固件的嵌入式Power架构 ®,ARM,MIPS,x86和其他处理器。U-Boot项目由DENX托管,您还可以在其中找到项目主页: http://www.denx.de/wiki/U-Boot/
可以从DENX "git "存储库中检索当前版本的U-Boot源代码。
您可以在 http://git.denx.de/ 浏览 "git"存储库。
可以通过git,HTTP和rsync协议访问这些树。例如,您可以使用以下命令之一来创建其中一个源树的本地克隆:
git clone git://git.denx.de/u-boot.git u-boot/ git clone http://git.denx.de/u-boot.git u-boot/ git clone rsync://git.denx.de/u-boot.git u-boot/
也可以通过FTP获得U-Boot的正式版本 。压缩tar档案可以从目录 ftp://ftp.denx.de/pub/u-boot/ 下载。
解压源代码
如果您使用GIT来获取U-Boot源的副本,则可以跳过此下一步,因为您已经具有解压缩的目录树。如果从DENX FTP服务器下载了压缩的tarball,则可以使用如下命令解压缩它:
$ cd /opt/eldk/usr/src $ wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.3.2.tar.bz2 $ rm -f u-boot $ bunzip2 < u-boot-1.3.2.tar.bz2 | tar xf - $ ln -s u-boot-1.3.2 u-boot $ cd u-boot
配置
使用U-Boot源代码切换到目录后,应确保没有任何先前配置留下的构建结果:
$ make distclean
以下命令为canyonlands板配置U-Boot:
$ make canyonlands_config
最后,我们可以编译工具和U-Boot本身:
$ make all
默认情况下,构建是在本地执行的,并且对象保存在源目录中。可以使用以下两种方法之一来更改此行为并将U-Boot构建到某个外部目录:
- 1.在make命令行调用中添加 O=
make O=/tmp/build distclean make O=/tmp/build canyonlands_config make O=/tmp/build all
- 请注意,如果使用 O=output/dir 选项,则必须将其用于所有的make调用。
- 2.将环境变量设置BUILD_DIR为指向所需位置:
export BUILD_DIR=/tmp/build make distclean make canyonlands_config make all