当前位置:首页 > 单片机 > 单片机
[导读]一、准备必要的文件1.首先去官方网站下载最新的llinux内核 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz22.因为linux2.6.14内核需要更新版本的编译器,所以需要下载交叉编译器ftp://ftp.handhe

一、准备必要的文件

1.首先去官方网站下载最新的llinux内核

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

2.因为linux2.6.14内核需要更新版本的编译器,所以需要下载交叉编译器

ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

二、安装文件

1、把gcc解压到/usr/local/arm/3.4.1目录下

2、接下来需要解压linux内核,输入命令:

# tar -jxvf linux-2.6.14.tar.bz2

将内核解压到linux-2.6.14目录下。

三、修改makefile文件

内 核的编译是根据makefile文件的指示进行的,Makefile文件来组织内核的各模块之间的关系,记录了各个模块之间的相互联系和依赖关系。首先修 改linux-2.6.14的根目录下的makfile文件,须改的主要内容是目标代码的类型和为编译内核指定一个编译器。注释掉以下内容:

#ARCH ?= $(SUBARCH)

#CROSS_COMPILE ?=

增加如下内容:

ARCH : = arm


CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-


四、安装根文件系统

1.首先对flash进行分区。网上的经典文章《Linux 2.6.10 以后版本对S3C2410的支持》仅提到了对Nand flash分区的方法,对Nor flash不适用。对Nor flash的分区,是通过在linux/drivers/mtd/maps下增加特定mapping驱动程序来实现。该目录下的驱动程序结构相似,可以找 一个来修改成自己的。我用的是cfi_flagadm.c这个。

cp cfi_flagadm.c s3c2410.c

将FLASH_PHYS_ADDR和FLASH_SIZE这两个宏分别修改成自己板子的flash起始地址和大小。然后修改结构体数组flagadm_parts添加自己的分区信息。

接下来告诉内核使用该驱动程序。修改maps目录下的Kconfig文件,该文件决定出现在menuconfig中的项目,在config MTD_CDB89712之后添加

config MTD_S3C2410

tristate "gggggg 2410 board"

修改该目录下的Makefile,添加如下内容:

obj-$(CONFIG_MTD_S3C2410) += s3c2410.o

现在make menuconfig时,在MTD项目中将出现gggggg 2410 board选项,选中它并重新编译内核就完成了分区工作,启动时将看到分区信息。现在,内核可以检测到分区,并找到了压缩的RAMDISK,并试图解压 缩。如果你使用smdk2410默认配置,这时会报错,类似RAMDISK:incomplete 云云。解决办法很简单,将内核配置中的BLK_DEV_RAM_SIZE的值从默认的4096改为8192即可。

2.在linux/arch/arm/mach-s3c2410/mach-smdk2410.c中添加ramdisk支持相关的代码。具体请参考我的文件贴图。

3.修改启动参数:

修改 linux/arch/arm/kernel/文件夹下的head.S文件如下:
ENTRY(stext)
/****************boot required ggggggg****************/
mov r0, #0
mov r1, #0xc1
ldr r2, =0x30000100
/*********************end****************************/
r0恒为0,r1为architecture ID。r2为启动地址。

五、支持启动时挂载devfs

为了我们的内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统,修改fs/Kconfig文件

找到menu "Pseudo filesystems"

添加如下语句:

config DEVFS_FS

bool "/dev file system support (OBSOLETE)"

default y

config DEVFS_MOUNT

bool "Automatically mount at boot"

default y

depends on DEVFS_FS

六、配置内核产生.config文件

cp arch/arm/configs/smdk2410_defconfig .config

make menuconfig

在smdk2410_defconfig基础上,我所增删的内核配置项如下:

Loadable module support >

[*] Enable loadable module support

[*] Automatic kernel module loading

System Type >

[*] S3C2410 DMA support

Boot options >

Default kernel command string:

noinitrd root=/dev/mtdblock/2 init=/linuxrc console=ttySAC0,115200

#console=ttySAC0,115200使kernel启动期间的信息全部输出到串口# # 0上.2.6内核对于串口的命名改为ttySAC0,但这不影响用户空间的串口编 #程。用户空间的串口编程针对的仍是/dev/ttyS0等

Floating point emulation >

[*] NWFPE math emulation

This is necessary to run most binaries!

#接下来要做的是对内核MTD子系统的设置

Device Drivers >

Memory Technology Devices (MTD) >

[*] MTD partitioning support

#支持MTD分区,这样我们在前面设置的分区才有意义

[*] Command line partition table parsing

#支持从命令行设置flash分区信息,灵活

RAM/ROM/Flash chip drivers >

<*> Detect flash chips by Common Flash

Interface (CFI) probe

<*> Detect nonCFI

AMD/JEDECcompatible

flash chips

<*> Support for Intel/Sharp flash chips

<*> Support for AMD/Fujitsu flash chips

<*> Support for ROM chips in bus mapping

NAND Flash Device Drivers >

<*> NAND Device Support

<*> NAND Flash support for S3C2410/S3C2440 SoC

Character devices >

[*] Nonstandard

serial port support

[*] S3C2410 RTC Driver

#接下来做的是针对文件系统的设置,本人实验时目标板上要上的文件系统是ext2,故做如下配置

File systems >

<*> Second extended fs support #ext2的支持

Pseudo filesystems >

[*] /proc file system support

[*] Virtual memory file system support (former shm fs)

[*] /dev file system support (OBSOLETE)

[*] Automatically mount at boot (NEW)

#这里会看到我们前先修改fs/Kconfig的成果,devfs已经被支持上了

Miscellaneous filesystems >

<*> Compressed ROM file system support (cramfs)

#支持cramfs

Network File Systems >

<*> NFS file system support

保存退出,产生.config文件.

.config文件能从提供的2.4.14.1的内核包中找到,文件名为config.back.

七、编译内核

make zImage

八、下载到开发板就可以启动了。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2023年2月16日 /美通社/ -- 近日,诺华中国宣布与中国红十字基金会正式启动"中国地中海贫血救助项目"广西地区专项援助,将在当地定向资助困难家庭地中海贫血患儿,同时通过相关医生培...

关键字: BSP 控制 移植 大众

北京2022年12月7日 /美通社/ -- 2022年12月3日,由高博医学(血液病)广东研究中心南方春富(儿童)血液病研究院、南方医科大学南方医院共同主办的高博医学论坛·华南造血干细胞移植论坛通过线下线上...

关键字: 移植 HD PID 血细胞

捐款近4000万 上海2022年12月7日 /美通社/ -- 2022年12月7日下午,中芯国际"芯肝宝贝计划"十年纪念暨2022年度捐赠仪式在上海仁济医院举行。十年来,该项目捐赠善款总额近4000...

关键字: 中芯国际 移植

北京2022年11月14日 /美通社/ -- 2022年10月,高博医学(血液病)北京研究中心北京高博博仁医院造血干细胞移植科迎来了五周岁"生日"。在吴彤主任带领下,移植科于2017年从无到有,历经五...

关键字: 移植 OS MT CD

上海2022年11月6日 /美通社/ -- 在第五届中国国际进口博览会期间,武田制药携5款创新产品亮相武田罕见遗传与血液疾病领域专场发布会。用于移植后抗巨细胞病毒(CMV)感染或疾病治疗[1]的马立巴韦[2]迎来&quo...

关键字: 移植 BSP CD FDA

亘喜生物科技集团宣布正在中国开展的、旨在全面评估GC007g治疗复发/难治性急性B淋巴细胞白血病效果的1/2期注册性临床试验顺利进入2期研究阶段,首例入组患者已给药。GC007g是亘喜生物旗下的一款靶向CD19的供者来源...

关键字: 移植 CD

北京2022年9月9日 /美通社/ -- 诺诚健华(香港联交所代码:09969)今天宣布,tafasitamab (Minjuvi®)联合来那度胺治疗不适合自体干细胞移植 (ASCT) 条件的复发/难治弥漫性大B...

关键字: VI NJU BSP 移植

苏州2022年8月19日 /美通社/ -- 近日,华中科技大学同济医学院附属协和医院心外科董念国教授团队运用与心擎医疗联合研发的短中期体外全磁悬浮心室辅助装置MoyoAssist®,成功救治三例危重的终...

关键字: 磁悬浮 移植 IC 静脉

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和细胞治疗的上海邦耀生物科技有限公司(以下简称"邦耀生物")宣布,其...

关键字: CD 移植 BSP ISP

苏州2022年6月28日 /美通社/ -- 2022年6月23日,首都医科大学附属北京安贞医院(以下简称安贞医院)与苏州心擎医疗技术有限公司(以下简称心擎)在北京、苏州两地线上连线,隆重召开体外心室辅助系统临床...

关键字: BSP 磁悬浮 创始人 移植
关闭
关闭