05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统

发布者:平静宁静最新更新时间:2022-03-23 来源: eefocus关键字:S3C2440  内核  移植  linux3  文件系统 手机看文章 扫描二维码
随时随地手机看文章

一、框架介绍及简单修改

1.1 Bootloader如何引导内核

Bootloader的工作:


(1)讲内核读入内存中


(2)存一些内核启动参数到指定位置,内核启动时去解析


(3)启动内核,传入机器ID

1.2、内核的启动流程:

首先 内核的最终目的是挂接根文件系统,并启动应用程序。


想启动应用程序—需要挂接根文件系统—装载驱动程序(flash、网卡)--要解析参数(文件系统在哪)--根据R1判断内核是否支持该ID—支持调用初始化相关函数

每个开发板都有不同的硬件参数


内核移植过程中要决定我这个内核支持哪些硬件开发板


我在内核里针对这个开发板给他一个ID。Uboot启动的时候传入和内核中设置好的匹配起来。

1.3  移植linux3.4.2到JZ2440

(1)解压tar xjf linux-3.4.2.tar.bz2


(2)修改makefile    vi makefile


修改架构为 ARM 以及编译器



(3)选择默认配置find -name"*defconfig"


linux-3.4.2/arch/arm/configs$ ls


make s3c2410_defconfig(生成.config文件)

 



查看支持的单板

 

(4)编译make uImage

建立source insight工程


(5)拷贝生成的内核文件到nfs服务器


cp arch/arm/boot/uImage  /work/nfs_root/uImage_new

(6)下载内核到32000000


nfs 32000000  192.168.1.101:/work/nfs_root/uImage_new    (需要在linux虚拟机上设置开发板IP)


测试nfs:mount -t nfs    192.168.1.101:/work/nfs_root/ /mnt/nfs


(7)启动内核

(8)u-boot2012里默认的是193机器ID

(9)现在内核支持很多单板

随便设置一个机器ID


内核启动时提示,不支持这个设备


  

支持的如上,支持太多内核庞大


(10)设置机器ID为362 使用SMDK2440(362)

查看开发手册:






(11)


设置为16a 下载 启动----会乱码


用mini2440的机器ID 1999,设置启动参数:


set serverip 192.168.1.101


set ipaddr 192.168.1.116


set machid 7CF   


set bootargs console=ttySAC0,115200root=/dev/mtdblock3


save


nfs 32000000192.168.1.101:/work/nfs_root/uImage_new


bootm 32000000(7cf成功启动,没有乱码)


7cf  成功  已经默认12M


16a 乱码  不是12

(12)修改162单板的晶振信息


修改晶振


cd arch/arm/mach-s3c24xx/  


vi mach-smdk2440.c

cp arch/arm/boot/uImage/work/nfs_root/uImage_new


set serverip 192.168.1.101


set ipaddr 192.168.1.116


set machid 16a  


set bootargs console=ttySAC0,115200root=/dev/mtdblock3


save


nfs 32000000192.168.1.101:/work/nfs_root/uImage_new


bootm 32000000

此时内核在开发板上启动成功,有如下输出:

二、修改分区

1根据报错,搜索



有如下默认分区:

Common-smdk.c (linux-2.6.22.6archarmplat-s3c24xx)

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name= "Boot Agent",

.size= SZ_16K,

.offset= 0,

},

[1] = {

.name= "S3C2410 flash partition 1",

.offset = 0,

.size= SZ_2M,

},

[2] = {

.name= "S3C2410 flash partition 2",

.offset = SZ_4M,

.size= SZ_4M,

},

[3] = {

.name= "S3C2410 flash partition 3",

.offset= SZ_8M,

.size= SZ_2M,

},

[4] = {

.name= "S3C2410 flash partition 4",

.offset = SZ_1M * 10,

.size= SZ_4M,

},

[5] = {

.name= "S3C2410 flash partition 5",

.offset= SZ_1M * 14,

.size= SZ_1M * 10,

},

[6] = {

.name= "S3C2410 flash partition 6",

.offset= SZ_1M * 24,

.size= SZ_1M * 24,

},

[7] = {

.name= "S3C2410 flash partition 7",

.offset = SZ_1M * 48,

.size= SZ_16M,

}

};



static struct mtd_partition smdk_default_nand_part[] = {}结构体数组里的内容替换成

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "bootloader",

.size = SZ_256K,

.offset  = 0,

},

// MTDPART_OFS_APPEND表示分区开始的偏移地址紧接着上一个分区

[1] = {

.name = "params",

.offset = MTDPART_OFS_APPEND,

.size = SZ_128K,

},

[2] = {

.name = "kernel",

.offset = MTDPART_OFS_APPEND,

.size = SZ_4M,

},

//MTDPART_SIZ_FULL表示取剩余下的容量

[3] = {

.name = "rootfs",

.offset  = MTDPART_OFS_APPEND,

.size = MTDPART_SIZ_FULL,

}

};


重新编译内核,并拷贝新分区好的内核到NFS


cp arch/arm/boot/uImage /work/nfs_root/uImage_new





先下载一个已经一直好的内核









此时内核可以正常启动,并打印出设置好的分区信息,但没有挂接上根文件系统


三、制作根文件系统

内核用哪个编译器,文件系统制作就用哪个编译器


(1)    编译busybox


rm -rf  busybox-1.20.0


tar xjf busybox-1.20.0.tar.bz2


配置编译环境


Make


创建安装路径:


mkdir fs_mini_mdev_new


指定路径下安装


make install CONFIG_PREFIX=/work/nfs_root/fs_mini_mdev_new/

 

安装库glibc:


查看交叉工具类地址


使用这两个库:

创建LIB目录


cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* /work/nfs_root/fs_mini_mdev_new/lib -d

-d:如果是链接文件  则当做链接文件拷贝,而不拷贝实际对应文件

创建usr/lib  


-p  不存在则直接创建全部文件


mkdir /work/nfs_root/fs_mini_mdev_new/usr/lib -p

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*so* /work/nfs_root/fs_mini_mdev_new/usr/lib -d

  


创建etc目录:

cp fs_mini_mdev/etc/ fs_mini_mdev_new/ -rf


执行这个脚本:


然后启动sheel


改为:

执行完脚本后,启动sheel,shell从console得到设备输入。


console对应什么设备呢?对应传入的命令行参数,console=ttySAC0,串口0。



创建dev目录:


创建其他目录:

制作镜像文件 jffs2


先安装jffs2工具


生成文件系统


mkfs.jffs2 -n -s 2048 -e 128KiB -d fs_mini_mdev_new -o fs_mini_mdev_new.jffs2

-s nand扇区大小  -e 可擦除块 (根据使用的nand flash信息来配置)


出现如下问题

内核中查找 exitcode


开启内核的Eabi接口




到此内核启动成功,能打印正确的分区信息,并可以挂接上移植好的文件系统。


但是此时内核:


(1)不支持yaffs文件系统


(2)支持太多单板,过于庞大


(3)一些驱动不支持,如网卡驱动,flash驱动,led按键驱动等等。


简单移植内核操作:


cp arch/arm/boot/uImage /work/nfs_root/uImage_new

set machid 16a

set serverip 192.168.1.101


set ipaddr 192.168.1.116


set bootargs console=ttySAC0,115200root=/dev/mtdblock3


save


nfs 32000000192.168.1.101:/work/nfs_root/uImage_new


移植文件系统操作:

nfs 30000000 192.168.1.101:/work/nfs_root/fs_mini_mdev_new.jffs2(可能会出错,怀疑上网络不稳定)

nand erase.part rootfs(需要uboot支持)

nand write.jffs2 30000000 260000  $filesize(1.1.6的uboot 需要带括号)

set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2 


nfs 32000000 192.168.1.101:/work/nfs_root/uImage_eabi

bootm 32000000


关键字:S3C2440  内核  移植  linux3  文件系统 引用地址:05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统

上一篇:05-S3C2440学习之内核(移植)linux3.4.2移植(2) yffs2文件系统移植+内核裁剪+内核制作补丁
下一篇:04-S3C2440u-boot学习之u-boot分析(5)_uboot启动内核

推荐阅读最新更新时间:2024-11-13 22:51

2020年2月中国彩电市场的整体零售量情况如何?
2020年年初,彩电市场受到严峻考验,下滑明显。据奥维云网监测数据显示,2020年2月,中国彩电市场整体零售量为179万台,同比下滑27.1%;整体零售额为36亿元,同比下滑45.4%。 随着疫情被控制,各级政府正在积极促进各类企业复工复产,线下实体门店逐渐恢复,彩电市场顺势进行产品升级,谋求发展。 大尺寸趋势明显,彩电企业发布众多新品 由于疫情的发展,2020年年初,彩电市场受到严峻考验,下滑明显,据奥维云网监测数据显示,2020年2月,中国彩电市场整体零售量为179万台,同比下滑27.1%;整体零售额为36亿元,同比下滑45.4%。 随着消费升级,越来越多的年轻人选择个性化、大尺寸、高科技、智能化的彩电产品,消费者
[嵌入式]
2020年<font color='red'>2</font>月中国彩电市场的整体零售量情况如何?
s3c2440之IIS(4S3C2440的I2S控制器
I2S音频总线学习(三)S3C2440的I2S控制器 一、I2S控制器结构框图 S3C2440A的Inter-IC Sound (IIS)总线接口作为一个编解码接口连接外部8/16位立体声音频解码IC用于迷你碟机和可携式应用。IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式取代了中断。它可以在同一时间接收和发送数据。 图1 结构框图 1 、总线接口,寄存器组和状态机(BRFC):总线接口逻辑和FIFO 访问由状态机控制。 2、5 位双预定标器(IPSR):一个预定标器用于IIS 总线接口的主时钟发生器,另外一个用作外部编解码时钟发生器。 3、64 位FIF
[单片机]
英美瑞士三国4大微型机器人盘点,最轻仅259毫克,靠太阳能飞行
导语:世界各国在微型机器人领域已经取得了不少研究成果,“昆虫”机器人可以检修管道,“蚂蚁”机器人能够翻越路障,“蜜蜂”机器人靠太阳能飞行。 最近,瑞士联邦理工、哈佛机器人实验室、英国谢菲尔德大学和麻省理工纷纷公布了最新研发的微型机器人,可以应用于工业、通信和航空等各个领域,甚至还有能够组装任意种类机器人的微型电机。 微型机器人的应用非常广泛,可以进入人类无法到达的环境进行勘查,将图像等信息传输回来,帮助人类完成许多困难任务。 为了更加了解这些不同种类的微型机器人的能力,我们盘点了瑞士、英国和美国4种在技术上取得了新突破的代表性机器人,为大家做详细介绍。 瑞士联邦理工研发“蚂蚁”机器人 瑞士联邦理工学院研究小组受到蚂蚁的
[机器人]
小米全新蓝牙耳机AirDots 2上架:达12小时续航
去年3月,红米推出旗下首款真无线耳机——Redmi真无线蓝牙耳机AirDots,售价仅99.9元,仅6个月累计销量破300万!   今年4月,Redmi AirDots S真无线蓝牙耳机发布,售价129.9元,新版升级了连接方式,不限制主从设备,单耳/双耳 模式无缝切换。戴上任一耳机使用单声道,再戴上另一只恢复立体声,无需重新配对。   现在,全新的Redmi AirDots 2也已在小米商城众筹上架,将于7月22日开启众筹,众筹价仅79元,未来零售价99元。   官方介绍,Redmi AirDots 2配备最新蓝牙5.0芯片,数据传输速率相比上一代蓝牙4.2提升至2倍,连接更快更稳定,听歌、玩游戏更爽更流畅。   不仅
[手机便携]
Apple Pay在中美两国新增了20多家银行支持,中国4
    eeworld网4月19日上午消息,苹果的移动支付服务Apple Pay仍没有停止扩张的脚步,最近他们在中国与美国新增20多家银行或农村信用合作社的支持。   在中国大陆,新增的这四家银行是:   长城华西银行   锦州银行   深圳农村商业银行   海南省农村信用社   可以看出,Apple Pay在覆盖中国银行/工商银行等一线城市的大银行之后,正在转向地方性的银行甚至农村信用合作社。苹果显然希望将自己这个重要业务覆盖的人群及城市范围更广泛一点。   而在美国,新增的银行则包括:   Agriculture Federal Credit Union   Al-Gar Federal Credit Union   Alab
[手机便携]
5G出现后4G网络会变慢?韩国用户也感同身受
在 5G 网络正式商用后,有不少用户反映现有的 4G 网络开始变慢。不仅在国内如此,似乎韩国的用户也有切身的感受。 据央视财经报道,韩国信息通信部近日公布了通信质量评估报告,首次承认了 4G 网络变慢这一问题,并将矛头指向 5G。 报告显示,韩国的 5G 用户已破千万,相当于韩国人口总数的 1/5。5G 网络平均下载速度较上半年提升约 5.2%。但是,4G 网络平均下载速度减少 4%,上传速度下降了 9%。这是自韩国 4G 网络开通以来,首次出现网速下降情况。 为了 5G 的快速商用化,韩国采用了 4G、5G 共同组网的方式建设。尽管这种方法能够利用现有基站,但是随着 5G用户数量增加,对原有 4G 网络的影响也体现了
[手机便携]
雷军:iPhone X发布之后,小米MIX2卖得更好了
  9月17日消息,在今天下午由耶鲁北京中心举办的领袖论坛上, 小米 公司董事长兼CEO雷军发表了《 小米 创新的故事》主题演讲,他表示,iPhone X发布之后, 小米 MIX2 卖得更好了。下面就随网络通信小编一起来了解一下相关内容吧。   按照惯例,在演讲的开始雷军先介绍了下小米公司。他列举了小米成立7年来的一些里程碑式的发展,如做手机两年半,问鼎中国第一、世界第三;2014年营业额超过100亿美金。   但辉煌之后,过去的两年小米过得并不轻松。根据IDC数据显示,2016年小米手机出货量为4150万台,同比下跌达36%,跌出全球前五。经历了2015年的不“OK”,和2016年的“开心就好”之后,今年上半年小米最困难的时候
[网络通信]
4G无线带来高清机遇 手机监控发展前途无限
    手机监控的发展存在其必然性,随着技术的不断发展,网络视频监控突破了地域的限制,实现了远程监控,用户也提出了更高的需求,随着手机及Pad的发展,人们每天使用手机的频率及时间越来越长,监控不再满足于在监控室里、在PC上来实现,手机作为客户端进行监控的需求日益显现,“AnyTime、AnyWhere、AnyDevice”,普通的网络视频监控已经不能满足用户日益增长的多元化需求。在这种情况下,手机监控逐渐走入公众用户,走入人们的家庭生活。       4G推动高清无线监控深入发展      3G网络应用的局限性可想而知,而对于中国移动新布局的4G网络企业同样有着新的期待。业内人士认为,3G网络在实现高清监控时具有其本身的局限性,但是
[安防电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved