Linux内核裁剪、根文件系统制作、系统烧录

环境:

Redhat5

Mini2451开发板

linux-3.6内核

这几天学习了linux在mini2451开发板上的移植,以及后续的简单字符设备、混杂设备和平台总线驱动的编写,深入感受到了linux的强大和魅力,现将之一一记录。

一、Uboot和Superboot

这次linux移植,我没怎么用到uboot,主要还是使用三星自带的Superboot。uboot还没有来得及去学,只是简单的记录了一些编译uboot的命令,对于怎么把适配2440的uboot改成2451的uboot,这个还不太了解。

1、make distclean //清除原有残留文件

2、make ARCH=arm CROSS_COMPILE=arm-linux- mini2440_config //配置uboot为2440的配置方式

3、make ARCH=arm CROSS_COMPILE=arm-linux- //配置芯片为arm架构,交叉编译工具为arm-linux

二、linux内核的裁剪

linux内核裁剪也是固定的几个步骤,设置好配置文件,在图形化配置界面选中需要的驱动,然后编译内核,这样就完成了内核的定制和裁剪。本实验采用的是linux-3.6内核。(所以使用到的文件都会在博文最后提供下载)

1、make distclean //清除原有文件

2、cp mini2451_linux_config .config //拷贝原有的2451配置文件为.config文件

3、make menuconfig //图形化界面配置驱动等

4、make zImage //编译内核  内核编译完成之后,在linux-3.6/arch/arm/boot目录下,会出现zImage文件,这就是定制完成的内核文件。

三、根文件系统制作

根文件系统制作,本实验采用yaffs文件系统,用的的制作工具为mkyaffs2image(mktools-20130822-2451.tar.gz中)。首先在home目录下新建一个rootfs文件夹,然后在rootfs文件夹中新建etc、usr、home、mnt、tmp、opt、bin、sbin、lib、proc、sys等,将etc.tar.gz文件解压到rootfs文件下,这样在rootfs/etc目录下会生成一些配置文件。

最后一步就是生成一些其他文件夹文件,采用busybox-1.20.2-p1-Mini2451.tgz工具。

1、解压busybox-1.20.2-p1-Mini2451.tgz到home目录,进入解压后目录

2、make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig 显示图形化配置界面

3、Busybox Setting->Build options ->Build busybox as a static binary, 选中, 静态链接

4、Busybox Setting->Build options ->Cross Compiler prefix  配置编译工具为 arm-linux-

5、busybox settings--> Installation option->BusyBox installation prefix 配置安装路径

6、编译make ARCH=arm CROSS_COMPILE=arm-linux-

7、安装 make install

这几步完成之后,可以看到rootfs/usr目录下会出现很多的文件,剩下的还有一步就是复制c库:

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/ld-linux.so.3 rootfs/lib/

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/libc.so.6 rootfs/lib/

这样,简单的根文件系统就做好了,接下来就是对rootfs文件系统制作镜像,采用的是mkyaffs2image工具,生成rootfs.img镜像文件。

四、系统烧录

经过了前三个步骤,烧录的准备工作就完成了,接下来就是正式往开发板烧录系统,烧录系统有两种方法,我将之称为卡刷和线刷。

1、卡刷

准备SD卡一张,采用SD-Flasher.exe工具,将SD卡设置为需要的类型。

这边选中Mini2451,在下方点击Scran,如果Available显示No,点击ReLayout!然后在点击Scan,就可以使用卡刷了。

将image文件夹(网盘中有)拷贝到SD卡中,打开FriendlyARM.ini文件,将USB-Mode改为No,确保linux的BootLoader、Kernel和rootfs文件系统路径正确。将开发板启动模式改为SD卡启动,等待刷系统成功,再把开关拨动到Nand启动即可。

2、线刷

打开MiniTools,将开发板拨动到Nand,按住独立按键的第一个键,重启即可,选中BootLoader、Kernel和rootfs文件系统,开始刷机,刷完后按下图中选中按钮。

线刷成功!

本实验用到的工具:

Superboot:                                     http://pan.baidu.com/s/1skMWUIx

uboot:                                             http://pan.baidu.com/s/1eRI9BrG

linux-3.6内核:                                 http://pan.baidu.com/s/1micahJU

etc.tar.gz:                                          http://pan.baidu.com/s/1kVQNi31

busybox-1.20.2-p1-Mini2451.tgz:     http://pan.baidu.com/s/1jHZw2aU

mktools-20130822-2451.tar.gz:        http://pan.baidu.com/s/1kV9mp07

MiniTools:                                         http://pan.baidu.com/s/1qYG3Dla

SD-Flasher.zip:                                 http://pan.baidu.com/s/1geDNSiR

卡刷linux包:                                    http://pan.baidu.com/s/1gf9usCj

linux移植嵌入式系统,嵌入式系统学习——S3C2451之Linux移植步骤相关推荐

  1. linux内核时钟工作原理,需要学习并了解Linux时钟的原理及其应用

    一.前言 时钟或者钟表(clock)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在你的手腕上.如果Linux也是一个普通人的话,那么她的手腕上应该有十几块手表,包括:CLOCK_R ...

  2. linux访问vdma的数据,zynq-7000学习笔记(十一)——Linux下VDMA的使用

    PC平台:WINDOWS 10 64位 + 虚拟机Ubuntu 14.04 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:Zed Board USB摄像头:罗技 ...

  3. Linux要学git吗,git学习一 基于linux ubuntu git安装与配置

    1.安装git ># sudo apt-get build-dep git-core git-doc 这个会安装git-core和git-doc依赖的库. 接下来去官网下载git的源码包.把下载 ...

  4. 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...

    资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...

  5. 嵌入式linux开发环境 cpu,嵌入式Linux开发环境的搭建之:U-Boot移植-嵌入式系统-与非网...

    5.2  U-Boot移植 5.2.1  Bootloader介绍 1.概念 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序.通过这段程序,可以 ...

  6. linux嵌入式移植培训,达内嵌入式培训大讲堂之Linux系统移植

    移植一个基本的必要的linux系统(包含存储设备,输入输出设备驱动)移植到板子里,其他的一些驱动不能移植进去,对设备的要求不高,接下来,达内嵌入式培训大讲堂将和大家讨论"Linux系统移植& ...

  7. 交叉编译VIM并移植到ARM嵌入式Linux系统

    原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任.   众所周知,vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybo ...

  8. 【转载】学习嵌入式系统需要具备的条件、方法及步骤

    事先说明,我并不是对嵌入式有多大的兴趣,但我非常希望自己能一直向底层前进,不停地去探究最底层的奥秘. 查阅了很多资料,似乎嵌入式最附合自己对底层的探求,或许它是,或许不是,但对于现在的我而言最重要的是 ...

  9. 学习嵌入式系统需要具备的条件、方法及步骤

    2019独角兽企业重金招聘Python工程师标准>>> 1.将C和C++学好学精(语言层次): 2.将数据结构.算法.操作系统学扎实(内功层次): 3.爬山成功后,深入学习.理解.运 ...

最新文章

  1. 10分钟教你看懂mongodb的npm包
  2. 王爽《汇编语言第三版》实验10-1代码实现
  3. MySQL——分页查询
  4. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
  5. 基于Xml 的IOC 容器-载入<bean>元素
  6. python nonlocal的用法_简谈Python3关键字nonlocal使用场景
  7. Angular之组件的创建
  8. 滴滴派发15亿出行消费券 覆盖快车、优享等多产品
  9. 机器学习EPD:概率密度估计
  10. (秒杀项目) 4.2 用户登录和注册
  11. NV21转YUV420P的代码,测试通过
  12. $$$$方正GBK字库内码表$$$$
  13. SQL Server安装和修改身份验证方式
  14. CS5216 Capstone DP to hdmi 1080p转换器或者转接线设计原理|CS5216 DP转HDMI转换电路原理图
  15. 解决Qt5.7.0 cannot find -lGL
  16. 一款非常不错的高仿UC浏览器源码下载
  17. spss pro网络挑战赛A题:人群疏散模拟代码
  18. QT 中控件缩放比列设置
  19. cacti安装/配置
  20. 正点原子嵌入式linux视频教程,正点原子嵌入式开发完整全套视频教程

热门文章

  1. 泰课在线夜猫的贪食蛇
  2. 模拟Vista侧边栏的CPU仪表盘(VC6)
  3. Springboot实现登录拦截的三种方式
  4. 对比Mac OS上的PF与iptables
  5. 医学图像的CT值与像素值总结及转换代码
  6. 专访钟家鸣:开源锁仓,IOST要做什么?
  7. vue3项目使用prettier格式化代码
  8. Java 17新特性,快到起飞?惊呆了!
  9. 限速限流 算法 工具
  10. html测验小题目(来源于W3School)