首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

U-boot、内核移植、根文件系统的构建(s3c2440)(3)

U-boot、内核移植、根文件系统的构建(s3c2440)(3)

/****************************************
**************linux kernel移植*************
/****************************************
1 安装ncurses

Tar xzvf ncurses.tar.gz
./configure –with-shared –prefix=/usr
Make
Make install

2 编辑kernel 顶层Makefile

#ARCH           ?= $(SUBARCH)
ARCH            ?= arm
#CROSS_COMPILE  ?=
CROSS_COMPILE   ?=arm-linux-

3 make s3c2410_defconfig

配置成s3c2410默认配置

4 make menuconfig

Y增加 n去除 m 编译成模块

5 make =

编译生成不带有校验信息的二进制文件,需要使用u-boot的mkimage工具将其转换成带有各种信息的u-boot可以加载的kernel

将u-boot的工具mkimage复制到/usr/bin目录下

6 make uimage

7 修改/arch/arm/mach-s3c2440/mach-sdmk2440.c文件

修改初始化时钟频率,否则会出现乱码
_init_clocks(12000000);

8 修改/arch/arm/plat-s3c24xx/common-smdk.c文件

修改分区,否则不能挂载跟文件系统
static struct mtd_partition smdk_default_nand_part[] = {
       [0] = {
              .name      = "Bootloader&Kernel",
              .size = SZ_2M,
              .offset     = 0,
       },
       [1] = {
              .name      = "RootYaffs2",
              .offset = MTDPART_OFS_APPEND,
              .size = SZ_16M,
       },
       [2] = {
              .name      = "RootJffs2",
              .offset     = MTDPART_OFS_APPEND,
              .size = SZ_16M,
       }
};

9 增加网卡驱动

将cs89x0.c替换/drivers/net/cs89x0.c文件
在本层Kcongfig文件修改如下,这样就可以在menuconfig中添加此网卡驱动
config CS89x0
        tristate "CS89x0 support"
        depends on (NET_PCI && (ISA || MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X))||ARCH_S3C2410


/*****************************************
*******增加Yaffs2文件系统到主线内核******
/******************************************

1 修改fs/Kconfig

source "fs/yaffs2/Kconfig"

2 修改fs/Makefile

obj-$(CONFIG_YAFFS_FS)          += yaffs2/

3 修改fs/yaffs2/Makefile

obj-$(CONFIG_YAFFS_FS) += yaffs.o

yaffs-y := yaffs_ecc.o yaffs_fs.o yaffs_guts.o yaffs_checkptrw.o
yaffs-y += yaffs_packedtags1.o yaffs_packedtags2.o yaffs_nand.o yaffs_qsort.o
yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o
yaffs-y += yaffs_mtdif.o yaffs_mtdif1.o yaffs_mtdif2.o

/********************************************
*************根文件系统移植*****************
/********************************************

1 修改busybox  Makefile

ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-

2 make

3 安装

make CONFIG_PREFIX=/work/tools/fs_mini install

4 创建目录

mkdir proc mnt root home tmp etc dev sys

5 构建/dev目录

构建console设备,字符型设备,主设备号 5 次设备号 1
sudo mknod console c 5 1
构建null设备,字符型设备主设备号 1 次设备号 3
sudo mknod null c 1 3

6 构建/etc目录

创建inittab文件
# /etc/inittab

后台执行,系统启动后最先执行rcS脚本
::sysinit:/etc/init.d/rcS
继承事业,薪火相传
返回列表