linux3.4.2移植总结(s3c2440)
环境: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)相关推荐
- mplayer移植到S3C2440(二)
相信大家在前面弄了下会发现在开发板上还是不能播放文件,这里还得修改下内核: 内核版本:2.6.12 编译器版本:arm-linux-gcc 3.4.1 1 修改/arch/arm/mach-s3c2 ...
- s3c2440移植Linux内核,移植Linux-3.4.2内核到S3C2440
一.BootLoader引导内核过程 1.Bootloader的工作 1.1.将内核读入内存 1.2.保存内核启动参数到指定位置,内核启动时去这个位置解析参数 1.3.启动内核.传入机器ID 二.内核 ...
- 一、【s3c2440移植linux-3.5】移植准备
(一)编译内核 1.修改Makefile book@ubuntu:~$ cd linux-3.5/ diff -urN linux-3.5/Makefile linux-3.5_s3c2440/Mak ...
- 基于S3C2440的Linux-3.6.6移植——声卡驱动
Linux的ALSA声卡驱动较为复杂,它需要注册多个平台设备.在mach-zhaocj2440.c文件中的平台设备数组内一共有四个与ALSA相关的平台设备: &s3c_device_iis, ...
- 基于S3C2440的linux-3.6.6移植——LED驱动
目前的linux版本的许多驱动都是基于设备模型,LED也不例外. 简单地说,设备模型就是系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动.设备模型会产生一个虚拟的文件系统--sy ...
- linux3.4 内核裁剪,05-S3C2440学习之内核(移植)linux3.4.2移植(2)之yffs2文件系统移植+内核裁剪+内核制作补丁...
一.移植YFFS2文件系统 yffs文件系统更加支持nand设备 上节移植了jffs2文件系统(点击查看)到移植的内核中,这节我们将yffs2文件系统移植到刚移植好的内核中. (1)获取源码并解压 g ...
- linux 内核2.6.35.3,linux-2.6.35.3内核移植(s3c2440)
忙乎了一个下午,总算忙乎出来了,不过前期大量的搜索工作别人已经完成. 大量参考:http://blog.csdn.net /huihui1988/archive/2010/08/09/5799500. ...
- u-boot-1.3.4 移植到S3C2440 (带有某些解析)
一.预备知识: 1. 首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的. 2. 2440 和2410的区别: 2440和 2410的 ...
- u-boot-1.3.4 移植到S3C2440
2019独角兽企业重金招聘Python工程师标准>>> 一.预备知识: 1. 首先, U-Boot1.3.4 还没有支持 s3c2440 ,移植仍是用 2410 的文件稍 ...
最新文章
- HTML DOM 方法
- .pyc文件_python专题shutil高阶文件操作
- 对一千万条数据进行排序---编程珠玑第二版 第一章
- Linux RTC 驱动实验
- 【HDU - 5977】Garden of Eden(树分治)
- dwz怎么使用数据加载中提示_百度地图数据采集手把手教,从此POI数据不再是愁...
- Java基础篇:如何解决成员的访问和继承?
- 多线程 之 生产者与消费者
- 发牌游戏 java_解析扑克牌游戏发牌算法——java实现
- 关于面向对象和面向过程本质的区别(个人感悟)
- PyTorch搭建LeNet-5模型(在MNIST数据集上准确率接近100%)
- python dlib opencv人脸识别准确度_Dlib+OpenCV深度学习人脸识别
- 经典数据结构视频教程下载 (清华大学 严蔚敏)
- 12平键标准尺寸规格表_平键标准尺寸规格表
- JASS随机物品系统
- mysql execute stmt_25.2.7.10. mysql_stmt_execute()
- CSDN去广告,超清爽界面
- Preface Numbering序言页码
- 图格 Pro for mac(图片拼图切图大师)
- 矩阵条件数的定义、理解以及matlab代码
热门文章
- c#和html方法互调
- WebLogic11g-常用运维操作
- Ubuntu远程操作Linux服务器GUI程序
- RoHS、无铅制程、无卤 的基本介绍
- 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
- 学习笔记(41):Python实战编程-按钮
- 获取系统时间出错oracle-,oracle 获取系统时间(转)
- 电脑控制苹果手机_必备神器,电脑控制手机
- nacos linux启动_微服务系列之Nacos配置中心之一:Nacos介绍与安装
- pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)