U-boot、内核移植、根文件系统的构建(s3c2440)(3)
- UID
- 1029342
- 性别
- 男
|
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 |
|
|
|
|
|