linux内核移植jz2440,Linux内核移植到JZ2440
一、准备工作:
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相关推荐
- linux中内核中machine_desc,Linux-内核-学习笔记(13):移植三星官方内核
Linux-内核-学习笔记(13):移植三星官方内核 一.移植前的准备 当拿到源代码时,首先要在window下利用SourceInsight创建一个工程,并将uboot源代码加载到SI中,方便修改和查 ...
- 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统
上一篇文章,我们从0制作jffs2文件系统,因为我们的内核本身就支持iffs2文件系统,但是它不支持yaffs文件系统.今天我们就来修改内核代码,让内核支持yaffs文件系统的格式. 1.首先我们获取 ...
- linux裁剪内核和移植,嵌入式Linux内核裁剪及移植的研究与实现
摘要: 嵌入式操作系统是嵌入式系统的软件核心,它管理系统中所有的软件和硬件资源,并且满足嵌入式系统的专用性和可裁剪性.嵌入式Linux以其开源,可裁剪以及模块化设计等特点,吸引了国内外众多研发人员的青 ...
- imx6ull移植Linux系统第二篇——Linux内核的移植
imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...
- 支持v4l2 linux内核选项 s3c2440,linux内核移植-移植2.6.35.4内核到s3c2440
原标题:linux内核移植-移植2.6.35.4内核到s3c2440 硬件平台:FL2440 主机平台:Ubuntu 11.04 交叉编译器: - -gcc 4.3.2 原创作品,转载请标明出处htt ...
- omapl138移植uboot系列之启动TI官方移植的Linux内核(启动内核第一篇)
启动TI官方移植的Linux内核 和编译uboot一样,Linux内核的编译也是三板斧,首先修改Makefile中的ARCH和CROSS_COMPILE,然后找到你要编译的板卡执行make xx_de ...
- linux i2c 内核初始io,linux I2C驱动移植
linux I2C驱动移植 I²C总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信. I2C ...
- arm linux 内核配置,嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译
嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Ke ...
- uda1341声卡的linux 2.6.29版本内核驱动在arm s3c2440上的移植
平台信息: 目标板 :2440 OS :Redhat9 编译器 :arm-linux-gcc-4.3.3 移植步骤: 1.获 ...
最新文章
- php包含文件时显示空白页,php中添加了如下语句出现空白页 删除页面zhengchang
- 看完这些、你能体会到半导体与电路集成的伟大了吗?
- linux qemu 使用方法
- 三、入门实例----基于注解
- Zuhair and Strings
- 每日程序C语言41-带头结点的头插法创建链表
- radio 微信小程序 点击取消_微信小程序如何实现radio单选框单击打勾和取消
- FFmpeg 4.0版发布
- leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
- Linux tty驱动程序一 架构
- maven docker plugin 常见问题解决
- 2020-11-01
- linux下运行hadoop,Linux命令行下运行Hadoop单元测试
- 树莓派部署yolov3
- 014 代码重定位(三)---lds脚本解析
- 本地项目上传到码云gitee
- linux系统中怎么复制粘贴快捷键设置,复制粘贴的快捷键是什么 复制粘贴的快捷键介绍【步骤】...
- CKEditor5富文本编辑器在vue中的使用
- 段式液晶程序设计技巧
- IPv6-计算机网络
热门文章
- 单片机的停车场计数系统c51_停车场车辆计数系统的设计.doc
- 常德职院美和易思校企共建专业第一届PPT制作与演讲大赛圆满落幕
- 解决问题:The field file exceeds its maximum permitted size of 1048576 bytes
- 可视化分析中国500强排行榜数据后,我发现了...
- vc idispatchimpl 怎么实例化_京东APP订单业务楼层化技术实践解密
- linux进程概念(中)
- OpenGL3.3法线贴图
- [机器视觉]gocv图像水平投影和垂直投影
- 调度——特殊生产线介绍
- ABS系列一:揭开资产证券化的面纱,简单易懂,贴合实际