linux 2.6内核移植_for at91rm9200_归档.doc

Similar documents
Abstract arm linux tool-chain root NET-Start! 2

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

华恒家庭网关方案

<4D F736F F D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>

Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux

DVK530/531扩展板

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

1

untitled

ebook70-22

Windows 2000 Server for T100

Windows 2000 Server for T100

ebook62-1

Microsoft Word - S3c6410移植过程.doc

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd.

Microsoft Word - linux命令及建议.doc

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

嵌入式系统实验报告之一

华恒家庭网关方案

Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2

ARM+Linux嵌入式系统开发路线

uClinux for blackfin

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

嵌入式Linux知识培训

自由軟體教學平台

自由軟體教學平台

一、

标题

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

自由軟體教學平台

嵌入式系统原理及应用教程 ( 第 2 版 )/ 清华大学出版社 EL-ARM-860 V1.2 一 实验目的 实验二 Boot Loader 引导程序 1. 了解 Boot Loader 的作用, 掌握 Boot Loader 的编程思想 二 实验设备 1. Pentium II 以上的 PC 机,

一、串口测试

05_資源分享-NFS及NIS.doc

Microsoft Word - 14.doc

ebook70-5

DVK530/531扩展板

第 1 页共 9 页 文档履历 版本号日期制 / 修订人内容描述 V 正式版本

TCA Linux 相容性認證測試流程步驟

Linux服务器构建与运维管理

Microsoft Word - 第5章.doc

本文由筱驀釹贡献

09 Linux Linux Linux Linux 009.indd /9/4 下午 12:11:10

Outline 1 SkyEye 简介 2 SkyEye 的安装 SkyEye 的安装下载 skyeye 源代码, 编译并安装 3 在 Linux 的根文件系统中添加 hello 在 Linux 的根文件系统中添加 hello 4 命令行安装 skyeye 添加 hello 到 uclinux 的根


static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

RTX3.2.0标准版 - 技术白皮书

MYE-SAM9G15/9G25

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

MYE-SAM9G15/9G25

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

投影片 1

序言

C语言的应用.PDF

嵌入式Linux块设备驱动开发解析

MarsBoard AM335X 用户手册 微雪电子 WAVESHARE ELECTRONICS MarsBoard AM335X 用户手册 产品概述 MarsBoard AM335X 是基于 TI AM335X 系列处理器的卡片式电脑 工业级别的芯片, 广泛的应用 在工业, 医疗, 消费类电子等行

Microsoft PowerPoint - Linux培训.ppt

自由軟體社群發展經驗與 Linux認證介紹

untitled

untitled

ARM JTAG实时仿真器安装使用指南

BeagleBone Black emmc 烧写全记录 ( 基于 AM335x SDK06) emmc 存储介质目前越来越广泛的应用在嵌入式系统中,AM335x 的用户也越来越多的使用 EMMC 作为系统的主要存储介质 目前 AM335x 的几款官方 demo 板中, 只有 BeagleBone B

Microsoft PowerPoint - soc_fpga_software_dev.ppt [相容模式]

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

untitled

K7VT2_QIG_v3

六盘水人资社保发〔2013〕137号


epub

ORACLE Enterprise Linux 6.3下ORACLE11g的安装

IP505SM_manual_cn.doc

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

lect03.ppt

接著以 'fdisk' 對 vmhd 做 partition 分割 $ fdisk -C u vmhd Command (m for help): n Command action e extended p primary partition (1-4) p Partition numb

第 十 一 期 2015 年 2 月 关 于 车 辆 购 置 税 征 收 管 理 有 关 问 题 的 公 告 ( 点 击 跳 转 至 全 文 ) 国 家 税 务 总 局 公 告 2015 年 第 4 号 关 于 电 池 涂 料 消 费 税 征 收 管 理 有 关 问 题 的 公 告 ( 点 击 跳

嵌入式操作系统uClinux软件开发环境的建立及驱动程序的开发

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

103年林鳳國小正確用藥教育教學方案

Microsoft PowerPoint - lect01.ppt

Outline 1 简介编译 简单分析 源码 2 简介 的下载 编译和运行 的简单分析 3

MarsBoard AM335X 用户手册 微雪电子 WAVESHARE ELECTRONICS MarsBoard AM335X 用户手册 产品概述 MarsBoard AM335X 是基于 TI AM335X 系列处理器的卡片式电脑 工业级别的芯片, 广泛的应用 在工业, 医疗, 消费类电子等行

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

《將進酒》

21 flash

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

C/C++ - 字符串与字符串函数

华清远见嵌入式培训课件

地 理 志 鏡 止 煞, 來 達 到 安 宅 的 效 果 4. 門 神 符 紙 : 於 門 板 繪 製 門 神, 作 為 宅 第 的 守 護, 民 宅 所 使 用 的 門 神 題 材, 多 為 天 官 賜 福 或 文 武 官 員 符 紙 是 以 畫 了 符 咒 的 紙 懸 掛 室 內, 或 加 框

嵌入式 Linux 系统与单片机比较及快速搭建系统 嵌入式 Linux 系统与单片机比较及快速搭建系统 作为入门, 首选 JZ2440 开发板, 资料丰富, 视频齐全 原理是相同的, 使用 JZ2440 所学知识完全适用于其他板子 本文使用 nanopi 作为例子, 所涉及主要知识都来自 JZ244

untitled

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

目 录

網路安全:理論與實務 第二版

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6

Simulator By SunLingxi 2003

RC总监办主要职责.doc

ebook8-30

投影片 1

Ch03_嵌入式作業系統建置_01

陕西职业技术学院(用标志)

Transcription:

Linux 2.6 内核移植 (for AT91rm9200) 文档 一.U-boot 编译及改动 1. 获得 U-boot 2. 修改 u-boot-1.0.0 部分源代码 3. 修改 U-boot 传递给内核的参数 4. 编译 U-boot 二. 获得 linux kernel 源码及相应硬件的 patch 1. 下载 linux 2.6.12 内核源代码 2. 下载 for at91rm9200 patch 三. 编译内核 1. 交叉编译环境的建立 2. 配置内核的详细步骤 3. 修改网卡驱动 四. 更新 Ramdisk 及工具集 (busybox) 1. 关于 Ramdisk 的介绍 2. 制作 Ramdisk 方法一 3. 制作 Ramdisk 方法二 4. 使用新版本的 busybox 五. 一些有用的网站 第 1 页共 13 页

一. U-boot 编译及改动 1. 获得 U-boot U-boot1.0.0, 可以从 http://sourceforge.net/projects/u-boot 网站下载 推荐使用更高一级的版本 将下载到的 u-boot-1.0.0.tar.bz2 在 linux 环境下解压缩 # tar jxvf u-boot-1.0.0.tar.bz2 2. 修改 u-boot-1.0.0 部分源代码 a. 更改网口驱动程序 原版 u-boot 的网口 I/O 配置不符合自产板要求, 更换文件 # /u-boot/cpu/at91rm9200/at91rm9200_ether.c 可根据网口芯片选型情况, 采用 at91rm9200_ether(dvcom).c 或 at91rm9200_ether(lxt971).c 进行替换 详情见文件内注释 b. 添加 intel flash 驱动及命令将 #/u-boot/common/cmd_mem.c 用 cmd_mem(intel).c 文件进行替换 使其具备对 intel flash 的通过 fl 命令, 写及删除能力 若使用 mem29lv160 芯片, 可将 /u-boot/board/at91rm9200dk/flash.c 文件用 flash(fuji).c 文件替换 此时用 u-boot 本身具备的命令 ( cp, erase 等 ) 进行 flash 操作 c. 加入 xdownload 命令在 /u-boot/common/ 目录下添加 xmodem.c cmd_xdownload 文件将 /u-boot/common/makefile 文件第 50 行修改为 : virtex2.o xilinx.o cmd_xdownload.o xmodem.o d. 加入 ping 命令将 /u-boot/include/configs/at91rm9200dk.h 用 at91rm9200dk(liqi) 进行替换, 以配置 mac 地址 ip 地址及系统其他相应参数 第 2 页共 13 页

e. 加入 linux 参数传递函数及 linux 引导代码将 /u-boot/common/main.c 用 at91rm9200dk(liqi) 进行替换, 以加入引导代码 f. 根据本板情况划分内存空间根据本板属性更改 /u-boot/include/configs/at91rm9200dk.h 文件使用 64MB SDRAM 内存配置参考如下 : #define COMMAND_LINE "initrd=0x20800000,32m root=/dev/ram init=/linuxrc console=ttys0" #define CONFIG_BOOTARGS "initrd=0x20800000,64m root=/dev/ram init=/linuxrc console=ttys0,115200" #define BOOT_COMMAND "go 20c00000" #define INITRD_START 0x20400000 #define INITRD_LEN 0x00400000 #define FLASH_UBOOT_START0x10020000 #define FLASH_KERNEL_START 0x10040000 #define FLASH_RAMDISK_START 0x10140000 #define FLASH_BASEBOOT_LEN #define FLASH_UBOOT_LEN 0x00020000 0x00020000 #define FLASH_KERNEL_LEN 0x00100000 #define FLASH_RAMDISK_LEN INITRD_LEN #define RAM_UBOOT_START 0x21f00000 #define RAM_KERNEL_LOAD_START 0x23000000 #define RAM_RAMDISK_START INITRD_START 使用 16MB SDRAM 内存配置参考如下 : 第 3 页共 13 页

#define COMMAND_LINE "initrd=0x20400000,8m root=/dev/ram init=/linuxrc console=ttys0" #define CONFIG_BOOTARGS "initrd=0x20400000,8m root=/dev/ram init=/linuxrc console=ttys0,115200" #define BOOT_COMMAND "go 20c00000" #define INITRD_START 0x20400000 #define INITRD_LEN 0x00400000 #define FLASH_UBOOT_START0x10020000 #define FLASH_KERNEL_START 0x10040000 #define FLASH_RAMDISK_START 0x10140000 #define FLASH_BASEBOOT_LEN #define FLASH_UBOOT_LEN 0x00020000 0x00020000 #define FLASH_KERNEL_LEN 0x00100000 #define FLASH_RAMDISK_LEN INITRD_LEN #define RAM_UBOOT_START 0x20f00000 #define RAM_KERNEL_LOAD_START 0x20c00000 #define RAM_RAMDISK_START INITRD_START 3. 修改 U-boot 传递给内核的参数在 /u-boot/include/configs/at91rm9200dk.h 28 行中修改 U-boot 传递给内核的参数 : #define COMMAND_LINE initrd=0x20800000,0x1377c4 root=/dev/ram init=/linuxrc console=ttys0,115200 注意 : 在 2.6 内核中, initrd= 后的格式为 start_address,size 其中 size 为 Ramdisk.gz 大小, 否则在启动后导致 shell 启动不了 第 4 页共 13 页

4. 编译 U-boot # make distclean # make at91rm9200dk_config # make 生成 u-boot.bin, 并将其写入 flash 相应地址 二. 获得 linux kernel 源码及相应硬件的 patch 1. 下载 linux 2.6.12 内核源代码 在 www.kernel.org 上下载 linux-2.6.12-rc1.tar.gz 2. 下载 for at91rm9200 patch 在 www.maxim.org.za/at91arm9200/2.6/ ( 附录 1) 下载 2.6.12-rc1-at91.patch.gz 三. 编译内核 1. 交叉编译环境的建立 参考 linux-2.6.12-rc1/readme 中关于编译环境的说明 : ***************************************************** COMPILING the kernel: Make sure you have gcc 2.95.3 available. Gcc 2.91.66 (egcs-1.1.2), and gcc 2.7.2.3 are known to miscompile some parts of the kernel, and are *no longer supported*. Also remember to upgrade your binutils package (for as/ld/nm and company) ***************************************************** 若使用 cross-3.2.tar.gz 作为交叉编译器, 在编译内核时出现如下错误 : 第 5 页共 13 页

若使用华恒提供版本为 2.95.3 的编译器, 在编译内核时会出现如下错误 : 使用版本号为 3.4.1 的 arm-linux-gcc-3.4.1.tar.bz2 做为编译环境, 编译成功 注意 : 文中所提到的交叉编译器在所附文件中有备份 将交叉编译器 (cross compiler) 解压到适当目录下, 相应的交叉编译环境就建成了 相应命令为 :( 注意适当调整路径 ) # mkdir /cross # cd /cross # tar jxvf arm-linux-gcc-3.4.1.tar.bz2 此时的交叉编译环境的路径为 : /cross/usr/local/arm/3.4.1/bin/arm-linux-gcc 2. 配置内核的详细步骤 相应文档参考 ( 在所附文件中有备份 ): http://www.arm.linux.org.uk/docs/kerncomp.php # cd /src/linux-2.6.12-rc1 第 6 页共 13 页

# zcat /2.6.12-rc1-at91.patch.gz patch p1 注意 : 这时会打印一些信息, 查看是否有错误报告, 若有错误, 从下几个方面查找 :patch 版本是否匹配,patch 与 2.6 源代码是否完整 # vi Makefile 查找到如下 : ARCH?= $(SUBARCH) CROSS_COMPILE?= 修改为 : ARCH CROSS_COMPILE?= arm?= 相应交叉编译环境 # make at91rm9200dk_defconfig # make menuconfig->system type 显示如下, 则配置基本成功 # make menuconfig 进行内核的相应配置 # make 注意 : 在 /src/linux-2.6.12-rc1/arch/arm/boot/ 下生成 zimage 编译时间较长,P4 2.8G, 512M 约为 30 分钟 (linux 在虚拟机中运行 ) 将 zimage 写入 flash, 启动成功, 但网卡 MAC 地址全为 0, 网络不通 第 7 页共 13 页

3. 修改网卡驱动 驱动源码在 /src/linux-2.6.12-rc1/drivers/net/arm/at91_ether.c 293 行 : 在 get_mac_address() 中指定 MAC 地址, static char default_ether_addr [] = {0x00,0x01,0x02,0x03,0x04,0x09}; 修改后源代码如下 :( 原始文件与修改后文件均在所附文件中有备份 ) ***************************************** static void get_mac_address(struct net_device *dev) { AT91PS_EMAC regs = (AT91PS_EMAC) dev->base_addr; char addr[6]; /*add by vcom*/ static char default_ether_addr [] = {0x00,0x01,0x02,0x03,0x04,0x09}; } /*end add by vcom*/ unsigned int hi, lo; /* Check if bootloader set address in Specific-Address 1 */ hi = regs->emac_sa1h; lo = regs->emac_sa1l; memcpy(dev->dev_addr,&default_zhong_ether_addr,6); **************************************** 在 /src/linux-2.6.12-rc1/include/asm-arm/arch-at91rm9200/pio.h 75 行 : 修改为如下所示 : *************************************** /* * Configure Ethernet for MII mode. */ /*static inline void AT91_CfgPIO_EMAC_MII(void) { AT91_SYS->PIOA_PDR = AT91C_PA16_EMDIO AT91C_PA15_EMDC AT91C_PA14_ERXER AT91C_PA13_ERX1 AT91C_PA12_ERX0 AT91C_PA11_ECRS_ECRSDV AT91C_PA10_ETX1 AT91C_PA9_ETX0 AT91C_PA8_ETXEN AT91C_PA7_ETXCK_EREFCK; AT91_SYS->PIOB_PDR = AT91C_PB19_ERXCK AT91C_PB18_ECOL AT91C_PB17_ERXDV 第 8 页共 13 页

AT91C_PB16_ERX3 AT91C_PB15_ERX2 AT91C_PB14_ETXER AT91C_PB13_ETX3 AT91C_PB12_ETX2; AT91_SYS->PIOB_BSR = AT91C_PB19_ERXCK AT91C_PB18_ECOL AT91C_PB17_ERXDV AT91C_PB16_ERX3 AT91C_PB15_ERX2 AT91C_PB14_ETXER AT91C_PB13_ETX3 AT91C_PB12_ETX2; }*/ /*liqi add here*/ static inline void AT91_CfgPIO_EMAC_MII(void) { AT91_SYS->PIOA_PDR = AT91C_PA16_EMDIO AT91C_PA15_EMDC AT91C_PA14_ERXER AT91C_PA13_ERX1 AT91C_PA12_ERX0 AT91C_PA11_ECRS_ECRSDV AT91C_PA7_ETXCK_EREFCK; AT91_SYS->PIOD_PDR = AT91C_PD0_ETX0 AT91C_PD1_ETX1 AT91C_PD4_ETXEN AT91C_PD2_ETX2 AT91C_PD3_ETX3 AT91C_PD5_ETXER ; AT91_SYS->PIOB_PDR = AT91C_PB25_EF100 AT91C_PB19_ERXCK AT91C_PB18_ECOL AT91C_PB17_ERXDV AT91C_PB16_ERX3 AT91C_PB15_ERX2; AT91_SYS->PIOD_BSR = AT91C_PD2_ETX2 AT91C_PD3_ETX3 AT91C_PD5_ETXER ; AT91_SYS->PIOB_BSR = AT91C_PB25_EF100 AT91C_PB19_ERXCK AT91C_PB18_ECOL AT91C_PB17_ERXDV AT91C_PB16_ERX3 AT91C_PB15_ERX2 ; } /*liqi add end*/ ************************************* 修改后 MII 接口的网络也可正常使用 此时, 该驱动可以支持 MII 接口与 RMII 接口网络,( 在配置内核时选择适当的网络设备配置 ) 重新编译内核, 将内 核写入 flash, 重启板子, 网络可用 四. 更新 Ramdisk 及工具集 (busybox) 内核启动正常后, 若使用 2.4 版本的 ramdisk(busybox-1.00-pre10), 在使用 shell 命令时会出现如下错误或告警 : 第 9 页共 13 页

或出现 : 命令版本与内核版本不匹配等, 此时需更新 ramdisk 1. 关于 RAMDISK 的介绍 把 ramdisk.image.gz 解压后 mount -o loop 到一个目录上 (mount o loop ramdisk.img /mnt), 这样就可以看到 ramdisk 里面的文件系统内容, 这时再把你的新编译的 busybox 的可执行文件复制到这个目录的 bin 目录下面覆盖原来的文件, 重新建立链接,umount 这个目录, 再 gzip 压缩, 这样你所作的改动就被带到这个新生成的 ramdisk.image.gz 文件里面了, 然后你烧写这个文件就可以看到新的文件系统了 简单的步骤 : # gunzip ramdisk.image.gz # mount -o loop ramdisk.image /mnt # cp -f busybox /mnt/bin # umount /mnt # gzip ramdisk.image 注意 : 要自己调整目录路径 2. 制作 Ramdisk 方法一 创建一个简单的基于 Ext2fs 的 Ramdisk # mke2fs -vm0 /dev/ram 4096 # mount -t ext2 /dev/ram /mnt # cd /mnt # cp /bin, /sbin, /etc, /dev... files in mnt # cd../ # umount /mnt # dd if=/dev/ram bs=1k count=4096 of=ramdisk.img 说明 : 第 10 页共 13 页

mke2fs 是用于在任何设备上创建 ext2 文件系统的实用程序 它创建超级块 索引节点以及索引节点表等等 在上面的用法中,/dev/ram 是上面构建有 4096 个块的 ext2 文件系统的设备 然后, 将这个设备 (/dev/ram) 挂装在名为 /mnt 的临时目录上并且复制所有必需的文件 一旦复制完这些文件, 就卸装这个文件系统并且设备 (/dev/ram) 的内容被转储到一个文件 (ext2ramdisk) 中, 它就是所需的 Ramdisk(Ext2 文件系统 ) 上面的顺序创建了一个 4 MB 的 Ramdisk, 并用必需的文件实用程序来填充它 一些要包含在 Ramdisk 中的重要目录是 : /bin 保存大多数像 init busybox shell 文件管理实用程序等二进制文件 /dev 包含用在设备中的所有设备节点 /etc 包含系统的所有配置文件 /lib 包含所有必需的库, 如 libc libdl 等 3. 制作 ramdisk 的方法二 (1) 建立 loop 设备的临时挂接点和一个大小为 6M( 大小可以调节 ) 的临时文件, 并将其清零 : # mkdir /mnt/loop 2>/dev/null # dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=6144 >/dev/null (2) 将 loop 设备与临时文件联系起来 # losetup /dev/loop0 /tmp/loop_tmp (3)Linux 內核识别两种可以直接拷贝到 RAMDISK 的文件系统, 它们是 minix 和 ext2,ext2 性能更好 : # mke2fs -m 0 /dev/loop0 2>/dev/null mke2fs 将会自动判断设备容量的大小并相应地配置自身, -m 0 参数防止它给 root 保留空, 这样会腾出更多地有用空间 (4) 接着把虚拟盘挂在节点 /mnt 上 : # mount /dev/loop0 /mnt/loop -t ext2 (5) 将制作好的 root 文件系统拷贝到所挂的节点上, 卸下挂接点, 刪除建 第 11 页共 13 页

立的挂接点 # cp -a /ramdisk/* /mnt/loop # umount /mnt/loop 现在制作的 /tmp/loop_tmp 就是一个 6M 的 ramdisk 文件 4. 使用新版本的 busybox (1) 在 busybox.net 上下载新版本的 busybox-1.00.tar.gz (2) 解压,make menuconfig->build Options 选定 [*]Do you want to Build Busybox with a Cross Compiler? 并修改交叉编译环境注意 : 新版的 busybox 使用的编译器为附带的 2.95.2 的编译器 make menuconfig->coreutils->[]usleep 取消选择, 否则编译会出错, 跳过 usleep 修改 src/busybox/shell/ash.c 中约 6479 行 : /* ofd=fd=open(_patch_tty,o_rdwd);*/ 修改为 : ofd=fd=open( /dev/ttys0,o_rdwd); 否则可能会出现不能使用 Ctrl+C 的情况 调试 busybox 时可采用逐步增删的方法, 最终形成所需的 busybox (3)make 生成 busybox 及 busybox.links 替换 Ramdisk 中的 busybox, 并重新建立链接, 例如 : # cd /bin # ln s /bin/busybox insmod 第 12 页共 13 页

五. 一些有用的网站 www.kernel.org Linux 内核源码下载, 内核开发相关新闻 www.arm.linux.org.uk arm linux 开发者一定要去的地方,arm linux 开发的最新进展, 新的驱动, 还有相应的 patch 下载, 还可在 mail list 中找到你所需要的东西 www.linuxforum.net 关于 linux 开发的论坛, 很多最新的资料在上面 www.busybox.net busybox 源码下载,busybox 相关新闻,mail list 注意 : 宿主机开发环境为 RedHat 9.0 第 13 页共 13 页