一、准备工作:

1、Linux内核:Linux2.6.22.6,可从www.kernel.org上下载;

2、交叉工具编译链:arm-linux-gcc-3.4.5-glibc-2.3.6;

3、yaffs2文件代码;

4、ubuntu9.10;

5、JZ2440;

二、内核移植:

1、修改Makefile:

修改内核源码根目录下的Makefile文件

1 #ARCH ?=arm2 #CROSS_COMPILE ?=arm-linux-

2、make s3c2410_defconfig其实就是使用./arch/arm/configs/s3c2410_defconfig配置内核生成根目录下的.config文件,

以后就可以使用make menuconfig命令来修改配置

3、使用make uImage生成内核

4、通过nfs 30000000 192.168.1.20:/work/nfs_root/image/uImage;bootm 30000000,

结果是乱码:原因是内核配置的晶振时钟不对,开发板V3使用的是12M晶振

5、修改晶振

修改arch/arm/mach-s3c2440/mach-smdk2440.c

1 static void __init smdk2440_map_io(void)2 {3 s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));4 s3c24xx_init_clocks(12000000);5 s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));6 }

6、重新make uImage生成内核并复制到Dram中启动,结果是找不到文件系统。

7、修改MTD分区://此处需与uboot的分区参数一致,才能让内核找到文件系统

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

1 static struct mtd_partition smdk_default_nand_part[] ={2 [0] ={3 .name = "bootloader",4 .offset = 0,5 .size = 0x00040000,6 },7 [1] ={8 .name = "params",9 .offset =MTDPART_OFS_APPEND,10 .size = 0x00020000,11 },12 [2] ={13 .name = "kernel",14 .offset =MTDPART_OFS_APPEND,15 .size = 0x00200000,16 },17

18 [3] ={19 .name = "root",20 .offset =MTDPART_OFS_APPEND,21 .size =MTDPART_SIZ_FULL,22 }23 };

再修改s3c2410_platform_nand_smdk_nand_info smdk_nand_info = { //此处可不改

1 …2 .tacls = 0,3 .twrph0 = 30,4 .twrph1=0,

8、修改支持4.3寸LCD://可先不改,但没有图形界面

copy JZ2440光盘中的“4.3寸LCD_mach_smdk2440.c”文件覆盖arch/arm/mach-s3c2440/mach_smdk2440.c

9、向内核打yaffs2补丁

cd yaffs2

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

10、内核配置:

进入内核目录,cp /arch/arm/configs/s3c2410_defconfig .config

make menuconfig

修改配置:

①.General setup ---> //可不改

[*] Configure standard kernel features (for small systems) --->

②. System Type ---->

[*] S3C2410 DMA support [*] Support ARM920T processor

S3C2410 Machines --->

[*] SMDK2410/A9M2410

S3C2440 Machines --->

[*] SMDK2440

[*] SMDK2440 with S3C2440 CPU module

③.Boot options ---> //可不改

将 (root=/dev/hda1 ro init=/bin/bash console=ttySAC0) Default kernel command string

改成 (noinitrd root=/dev/mtdblock2 console=ttySAC0,115200 init=/linuxrc )

这里要特别注意root=/dev/mtdblock2 这个参数,mtdblock2是你的根文件系统所在的位置,和你在bootloader的分配有关,当然也和上述2。步骤的密切相关。不行的话多试几次。

④.[*] Enable loadable module support ---> //可不改

[*] Module unloading

[*] Automatic kernel module loading

选择这两个,剩下的可以去掉

⑤.Device Drivers --->

Memory Technology Device (MTD) support --->

[*] MTD partitioning support

NAND Device Support --->

NAND Flash support for S3C2410/S3C2440 SoC

[ ] S3C2410 NAND Hardware ECC //这个要去掉

⑥.File systems----->

Miscellaneous filesystems --->

YAFFS2 file system support

11、重新make uImage生成内核并复制到Dram中启动,启动成功。//需要在Nand Flash上有fs_qtopia.yaffs2文件系统,还不支持nfs(network file system)

linux内核移植jz2440,Linux内核移植到JZ2440相关推荐

  1. linux中内核中machine_desc,Linux-内核-学习笔记(13):移植三星官方内核

    Linux-内核-学习笔记(13):移植三星官方内核 一.移植前的准备 当拿到源代码时,首先要在window下利用SourceInsight创建一个工程,并将uboot源代码加载到SI中,方便修改和查 ...

  2. 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统

    上一篇文章,我们从0制作jffs2文件系统,因为我们的内核本身就支持iffs2文件系统,但是它不支持yaffs文件系统.今天我们就来修改内核代码,让内核支持yaffs文件系统的格式. 1.首先我们获取 ...

  3. linux裁剪内核和移植,嵌入式Linux内核裁剪及移植的研究与实现

    摘要: 嵌入式操作系统是嵌入式系统的软件核心,它管理系统中所有的软件和硬件资源,并且满足嵌入式系统的专用性和可裁剪性.嵌入式Linux以其开源,可裁剪以及模块化设计等特点,吸引了国内外众多研发人员的青 ...

  4. imx6ull移植Linux系统第二篇——Linux内核的移植

    imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...

  5. 支持v4l2 linux内核选项 s3c2440,linux内核移植-移植2.6.35.4内核到s3c2440

    原标题:linux内核移植-移植2.6.35.4内核到s3c2440 硬件平台:FL2440 主机平台:Ubuntu 11.04 交叉编译器: - -gcc 4.3.2 原创作品,转载请标明出处htt ...

  6. omapl138移植uboot系列之启动TI官方移植的Linux内核(启动内核第一篇)

    启动TI官方移植的Linux内核 和编译uboot一样,Linux内核的编译也是三板斧,首先修改Makefile中的ARCH和CROSS_COMPILE,然后找到你要编译的板卡执行make xx_de ...

  7. linux i2c 内核初始io,linux I2C驱动移植

    linux I2C驱动移植 I²C总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信. I2C ...

  8. arm linux 内核配置,嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译

    嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Ke ...

  9. uda1341声卡的linux 2.6.29版本内核驱动在arm s3c2440上的移植

    平台信息: 目标板     :2440 OS          :Redhat9 编译器     :arm-linux-gcc-4.3.3                      移植步骤: 1.获 ...

最新文章

  1. php包含文件时显示空白页,php中添加了如下语句出现空白页 删除页面zhengchang
  2. 看完这些、你能体会到半导体与电路集成的伟大了吗?
  3. linux qemu 使用方法
  4. 三、入门实例----基于注解
  5. Zuhair and Strings
  6. 每日程序C语言41-带头结点的头插法创建链表
  7. radio 微信小程序 点击取消_微信小程序如何实现radio单选框单击打勾和取消
  8. FFmpeg 4.0版发布
  9. leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
  10. Linux tty驱动程序一 架构
  11. maven docker plugin 常见问题解决
  12. 2020-11-01
  13. linux下运行hadoop,Linux命令行下运行Hadoop单元测试
  14. 树莓派部署yolov3
  15. 014 代码重定位(三)---lds脚本解析
  16. 本地项目上传到码云gitee
  17. linux系统中怎么复制粘贴快捷键设置,复制粘贴的快捷键是什么 复制粘贴的快捷键介绍【步骤】...
  18. CKEditor5富文本编辑器在vue中的使用
  19. 段式液晶程序设计技巧
  20. IPv6-计算机网络

热门文章

  1. 单片机的停车场计数系统c51_停车场车辆计数系统的设计.doc
  2. 常德职院美和易思校企共建专业第一届PPT制作与演讲大赛圆满落幕
  3. 解决问题:The field file exceeds its maximum permitted size of 1048576 bytes
  4. 可视化分析中国500强排行榜数据后,我发现了...
  5. vc idispatchimpl 怎么实例化_京东APP订单业务楼层化技术实践解密
  6. linux进程概念(中)
  7. OpenGL3.3法线贴图
  8. [机器视觉]gocv图像水平投影和垂直投影
  9. 调度——特殊生产线介绍
  10. ABS系列一:揭开资产证券化的面纱,简单易懂,贴合实际