关于linux kernel及文件系统在jz2440的移植

结合网上及书上的讲解,记录下linux kernel及yaffs2文件系统的移植过程及问题,以便以后查询!

部分转自:http://blog.sina.com.cn/s/blog_9d7f02120101gvnk.html

一,内核移植

修改晶振

修改arch/arm/mach-s3c2440/mach-smdk2440.c
    static void __init smdk2440_map_io(void)
{
    s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
    s3c24xx_init_clocks(12000000);

s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
}

3、修改MTD分区:

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

static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "kernel",
.offset = 0,
.size = SZ_2M,
},
[1] = {
.name = "jffs2",
.offset = MTDPART_OFS_APPEND,
.size = SZ_8M,
},

[2] = {
.name = "yaffs2",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};

(注:本步骤为修改MTD分区,修改与书及原文有所不同,主要是由于后期是使用yaffs2文件系统)

再修改s3c2410_platform_nand_smdk_nand_info smdk_nand_info = {

.tacls = 0,
.twrph0 = 30,
.twrph1=0,

(注:本步骤在书上并未介绍,未知及具体用途,猜测为nand flash的时序操作)

4、向内核打yaffs2补丁

cd yaffs2

./patch-ker.sh c /linux-2.6.22.6

6、内核配置:

进入内核目录,

(cp /arch/arm/configs/s3c2410_defconfig .config 本步骤若下步可执行,就不大必要执行)

make s3c2410_defconfig(注意此处与书上不同,主要是不存在smdk2410_defconfig)

make menuconfig

(具体配置由于不大清楚用途,故可参考书上配置)

7、制作uImage

make uImage 即可

8.烧写uImage

可用jz2440自带uboot的kernel uImage利用usb烧写,注意若烧写出现错误或结果多次不符,可先用erase或format擦除nand flash,这步比较重要!,如不用自带uboot。可用串口或tftp先传文件,然后nand write 文件,如果这样,注意烧写位置英语自带uboot烧kernel位置一致,具体位置可观察自带uboot烧写位置,另外uImage与zImage以及vmlinux的关系可查资料 http://www.cnblogs.com/pigeon84/articles/2212404.html

时间: 2024-08-10 17:09:01

关于linux kernel及文件系统在jz2440的移植的相关文章

Linux Kernel文件系统写I/O流程代码分析(一)

Linux Kernel文件系统写I/O流程代码分析(一) 在Linux VFS机制简析(二)这篇博客上介绍了struct address_space_operations里底层文件系统需要实现的操作,实际编码过程中发现不是那么清楚的知道这里面的函数具体是干啥,在什么时候调用.尤其是写IO相关的操作,包括write_begin, write_end, writepage, writepages, direct_IO以及set_page_dirty等函数指针. 要搞清楚这些函数指针,就需要纵观整个

Linux Kernel - Debug Guide (Linux内核调试指南 )

http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环

Linux Kernel 4.7 RC2已发布

Linux内核(英语:Linux kernel),是一种计算机操作系统内核,以C语言和汇编语言写成,符合POSIX标准,以GNU通用公共许可证发布.Linux内核最早是由芬兰黑客林纳斯·托瓦兹为尝试在自己的英特尔x86架构计算机上提供自由免费的类Unix系统而开发的. Linus Torvalds于6月5号(星期天)宣布了Linux Kernel 4.7的第二个候选发布版本(rc2),而rc1的发布则是在5月29号那天,预计Linux Kernel 4.7会在7月的第二或第三周迎来稳定版.Lin

Linux Kernel Module(LKM) Init、Delete Code Principle Learning

目录 1. Linux模块(LKM)简介 2. 使用Linux模块 3. LKM模块加载原理 4. LKM模块卸载原理 1. Linux模块(LKM)简介 模块是一种向linux内核添加"设备驱动程序"."文件系统"."其他组件"的有效方法,而无须重新编译内核或重启系统,这消除了许多限制,同时带来了很多的优点 1. 通过使用模块,内核程序员能够预先编译大量驱动程序,而不会致使内核映像的尺寸发生膨胀.在自动检测硬件或用户提示后,安装例程会选择适当的

Linux基础之文件系统及基本命令

Linux文件系统: Linux:glibc(glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc) 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:kernel, application 文件系统:层级结构 FHS: Filesystem Hierarchy Standard /bin:所有

CentOS启动流程、Grub legacy配置、linux kernel模块管理、伪文件系统介绍

写在前面: 博客书写牢记5W1H法则:What,Why,When,Where,Who,How. 本篇主要内容: ● 启动相关基础概念汇总 ● 启动流程 ● init程序类型     /etc/rc.d/rc     chkconfig     /etc/rc.d/rc.sysinit ● GRUB legacy     命令行接口     配置文件 ● Linux Kernel     内核模块查看与管理         lsmod         modinfo         modprob

Linux kernel parameter command line设置

现在CPU2核以上比较普遍了,平时用linux上上网可能用不着双核甚至4核,大部分发行版内核都启用了CPU_HOTPLUG,到/sys/devices/system/cpu下可以看到文件夹cpu0.cpu1,除cpu0(这个不能关)每个文件夹下都有一个online文件,往里面写0就可以关闭核心,比如我的T7300,echo '0' >/sys/devices/system/cpu/cpu1/online 就可以关闭第二个核,不影响小型应用.要开启,往里面echo 1就行.这个操作好像要root完

Linux内核,文件系统移植过程中出现的一些问题与解决办法

1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行.因此此时的entry point必须设置为load address + 0x40.如果kernel boot过程没有到uncompressing the kernel,就可能是这里设置不对. boom address == load address == entry point - 0x40 2.

#26 Linux kernel(内核)详解与uname、lsmod、modinfo、depmod、insmod、rmmod、modprobe...命令用法

Linux kernel: 内核设计流派: 单内核设计,但是充分借鉴了微内核体系设计的优点,为内核引入了模块化机制,内核高度模块化: 内核被模块化之后,一些最为基本最为重要的内容,被编译到内核核心:而其他更多的功能则以模块的方式来提供:而且支持动态装载和卸载各内核模块: 内核的组成部分: kernel:内核核心文件,一般为bzimage,经过压缩处理的镜像文件:通常内核核心文件保存在/boot/目录下,名称为vmlinuz-version-release kernel object(ko):内核