环境:Linux version 3.5.0-23-generic (buildd@komainu)
(gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) )
ubuntu12

目标板:JZ2440
待移植内核:3.4.2
交叉编译器:arm-linux-gcc-4.3.2

1.
make s3c2410_defconfig //使用默认配置

2.
修改时钟频率
linux-3.4.2/arch/arm/mach-s3c24xx/mach-smdk2440.c

公板上用的晶振和JZ2440的不一样,不修改会导致串口输出异常等
static void __init smdk2440_map_io(void)
{s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));s3c24xx_init_clocks(12000000); //改为12Ms3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
}

3.
修改分区信息
inux-3.4.2/arch/arm/mach-s3c24xx/common-smdk.c

分区大小要和uboot的对应,否则会出错

我修改nand分区如下

/* NAND parititon from 2.4.18-swl5 */static struct mtd_partition smdk_default_nand_part[] = {[0] = {.name   = "Boot Agent",.size   = SZ_256K,.offset = 0,},[1] = {.name   = "params",.offset = MTDPART_OFS_APPEND,.size   = SZ_128K,},[2] = {.name   = "kernel",.offset = MTDPART_OFS_APPEND,.size   = SZ_2M,},[3] = {.name   = "rootfs",.offset = MTDPART_OFS_APPEND,.size   = MTDPART_SIZ_FULL,}
};

这是我内核分区后启动打印的信息

4.
由于JZ2440使用的是nand flash所以我们使用yaffs文件系统,3.4.2默 认没有支持yaffs,我们要自己移植,具体就不描述了,提一句的是注意yaffs版本和内核版本匹配,否则会出现
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b 错误 (具体解决和分析我会在后期博文写)

我使用是xshell,如果出现内核启动出现乱码可以试试设置下环境变量
set bootargs root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200

这里要提一句,我用arm-unknown-linux-gnueabi-gcc-4.6.3 编译时,内核会卡在
Uncompressing Linux… done, booting the kernel.
Booting Linux on physical CPU 0
估计是编译器版本太高

  System Type  --->    (0) S3C UART to use for low-level messages     这个表示使用串口0打印信息如果使用其他板子,要注意下这里。

完事后内核就ok了

/*******************************************************/
这里说下我文件系统制作的坑1.注意文件的权限,最好给make install 后的文件夹给个chmod 777 xxx 的权限
2.在指定编译器时最好直接修改MakefileCROSS_COMPILE ?= arm-linux-ARCH ?= arm
3.如果是动态链接的话我是复制了编译器目录/arm-none-linux-gnueabi/libc/armv4t/lib里的库启动成功的

linux3.4.2移植总结(s3c2440)相关推荐

  1. mplayer移植到S3C2440(二)

    相信大家在前面弄了下会发现在开发板上还是不能播放文件,这里还得修改下内核: 内核版本:2.6.12 编译器版本:arm-linux-gcc 3.4.1 1  修改/arch/arm/mach-s3c2 ...

  2. s3c2440移植Linux内核,移植Linux-3.4.2内核到S3C2440

    一.BootLoader引导内核过程 1.Bootloader的工作 1.1.将内核读入内存 1.2.保存内核启动参数到指定位置,内核启动时去这个位置解析参数 1.3.启动内核.传入机器ID 二.内核 ...

  3. 一、【s3c2440移植linux-3.5】移植准备

    (一)编译内核 1.修改Makefile book@ubuntu:~$ cd linux-3.5/ diff -urN linux-3.5/Makefile linux-3.5_s3c2440/Mak ...

  4. 基于S3C2440的Linux-3.6.6移植——声卡驱动

    Linux的ALSA声卡驱动较为复杂,它需要注册多个平台设备.在mach-zhaocj2440.c文件中的平台设备数组内一共有四个与ALSA相关的平台设备: &s3c_device_iis, ...

  5. 基于S3C2440的linux-3.6.6移植——LED驱动

    目前的linux版本的许多驱动都是基于设备模型,LED也不例外. 简单地说,设备模型就是系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动.设备模型会产生一个虚拟的文件系统--sy ...

  6. linux3.4 内核裁剪,05-S3C2440学习之内核(移植)linux3.4.2移植(2)之yffs2文件系统移植+内核裁剪+内核制作补丁...

    一.移植YFFS2文件系统 yffs文件系统更加支持nand设备 上节移植了jffs2文件系统(点击查看)到移植的内核中,这节我们将yffs2文件系统移植到刚移植好的内核中. (1)获取源码并解压 g ...

  7. linux 内核2.6.35.3,linux-2.6.35.3内核移植(s3c2440)

    忙乎了一个下午,总算忙乎出来了,不过前期大量的搜索工作别人已经完成. 大量参考:http://blog.csdn.net /huihui1988/archive/2010/08/09/5799500. ...

  8. u-boot-1.3.4 移植到S3C2440 (带有某些解析)

    一.预备知识: 1.       首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的. 2.       2440 和2410的区别: 2440和 2410的 ...

  9. u-boot-1.3.4 移植到S3C2440

    2019独角兽企业重金招聘Python工程师标准>>> 一.预备知识: 1.       首先, U-Boot1.3.4 还没有支持 s3c2440 ,移植仍是用 2410 的文件稍 ...

最新文章

  1. HTML DOM 方法
  2. .pyc文件_python专题shutil高阶文件操作
  3. 对一千万条数据进行排序---编程珠玑第二版 第一章
  4. Linux RTC 驱动实验
  5. 【HDU - 5977】Garden of Eden(树分治)
  6. dwz怎么使用数据加载中提示_百度地图数据采集手把手教,从此POI数据不再是愁...
  7. Java基础篇:如何解决成员的访问和继承?
  8. 多线程 之 生产者与消费者
  9. 发牌游戏 java_解析扑克牌游戏发牌算法——java实现
  10. 关于面向对象和面向过程本质的区别(个人感悟)
  11. PyTorch搭建LeNet-5模型(在MNIST数据集上准确率接近100%)
  12. python dlib opencv人脸识别准确度_Dlib+OpenCV深度学习人脸识别
  13. 经典数据结构视频教程下载 (清华大学 严蔚敏)
  14. 12平键标准尺寸规格表_平键标准尺寸规格表
  15. JASS随机物品系统
  16. mysql execute stmt_25.2.7.10. mysql_stmt_execute()
  17. CSDN去广告,超清爽界面
  18. Preface Numbering序言页码
  19. 图格 Pro for mac(图片拼图切图大师)
  20. 矩阵条件数的定义、理解以及matlab代码

热门文章

  1. c#和html方法互调
  2. WebLogic11g-常用运维操作
  3. Ubuntu远程操作Linux服务器GUI程序
  4. RoHS、无铅制程、无卤 的基本介绍
  5. 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
  6. 学习笔记(41):Python实战编程-按钮
  7. 获取系统时间出错oracle-,oracle 获取系统时间(转)
  8. 电脑控制苹果手机_必备神器,电脑控制手机
  9. nacos linux启动_微服务系列之Nacos配置中心之一:Nacos介绍与安装
  10. pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)