上篇:CF卡分区, extlinux的安装

中篇:构建根文件系统

下篇:2.6内核剪裁及Busybox编译配置及其分析

硬件平台:研华3355

软件:busybox-1.13.3, extlinux 3.63, linux-2.6.32

开发环境: Ubuntu 9.10

(一)CF卡的分区, 格式化:

PC机上利用多口读卡器连接CF卡,

fdisk -l  查看CF卡的分区, 例如我的CF卡对应的是/dev/sdb;

fdisk /dev/sdb,进入fdisk分区命令提示, 简单的介绍fdisk分区过程

m 打印提示;

p 打印分区信息;

d 删除分区, 假设已经存在分区/dev/sdb1, 按下d后输入1, 即删除了此分区;

n 添加分区, 这里只添加一个p(primary), 并占用所有的存储空间;

a 设置某分区为boot分区, 即可引导分区;

w 将改动写入, 并推出fdisk, 键入w之前, 先用p查看当前分区情况;

q 不做改动退出;

将分区格式化为ext2格式: mkfs.ext2 /dev/sdb1

检测ext2格式: e2fsck -a /dev/sdb1

注:如果不运行e2fsck, 系统启动的时候会报"EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended"

(二)CF卡上bootloader的创建

常见的有GRUB, LILO, syslinux, extlinux, 后两者更适合U盘/CF卡,

syslinux适用于dos分区, 而extlinux适用于ext2分区, 下载地址:

http://syslinux.zytor.com/wiki/index.php/SYSLINUX

http://syslinux.zytor.com/wiki/index.php/EXTLINUX

Ubuntu 9.10用apt-get install extlinux安装, 设备名为/dev/sdb1,挂载到/mnt/cf :mount /dev/sdb1 /mnt/cf

extlinux -i /mnt/cf

注意syslinux和extlinux的不同:

syslinux的配置文件是syslinux.cfg, 要先安装syslinux再挂载分区,例 syslinux /dev/sdb1;

extlinux的配置文件extlinux.conf, 要先把分区挂载然后安装extlinux, 例extlinux -i /mnt/cf;

在/mnt/cf创建配置文件extlinux.conf然后编辑, 内容如下:

default emblinux
timeout 10
prompt 0
label emblinux
  kernel bzImage
  append noinitrd root=/dev/sda1 rw init=/linuxrc ide=nodma

注意CF卡在工控机上被识别为sda, 而不是hda上, noinitrd表示没有挂载initrd.img,

类似于嵌入式arm平台的linux"noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"

详细解释在下面的链接

http://www.sudu.cn/info/html/edu/20080407/262839.html

(三)向CF卡拷贝Kernel

内核的剪裁及配置, 请见http://blog.csdn.net/dos5gw/archive/2010/10/26/5965992.aspx

 make mrproper #清除从前编译内核时残留的.O文件

 make menuconfig

 make dep #(确保关键文件在正确的位置)

 make clean #(确保所有有关文件都处于最新版本状态) 

 make bzImage

然后把生成的/linux-2.6.32/arch/x86/boot/bzImage拷贝至CF卡分区/dev/sdb1下.

//-----------------------------------------------

//--linux大致启动过程-------------------------

grub(bl) ->kernel -> initrd.img -> rootfs -> sbin/init(linuxrc, 仅针对busybox)

解释如下:

kernel :桌面os中一般为vmlinuz文件,或者zImage、bzImage;

initrd.img :临时的根文件系统映像全名是initial ram disk(google keywords initrd 制作),使用完后被卸载,然后转入真正的根文件,当然在有些嵌入式系统中也可以不卸载initrd,而继续作为根文件系统;

rootfs:不解释;

sbin/init: 见http://hi.baidu.com/tcxx05/blog/item/15cfc7fc0cd0d089b801a0d8.html

[原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(上)相关推荐

  1. [原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(中)

    上篇:CF卡分区, extlinux的安装 中篇:构建根文件系统 下篇:2.6内核剪裁及Busybox编译配置及其分析 一个基本的文件系统应该包括: busybox (提供 shell 命令集) 设备 ...

  2. 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(下)

    < 工控机 (AMD LX处理器平台, 非ARM) Linux kernel & Busybox 编译选项配置 > (一) 配置并编译Busybox: 说明, 此次编译的目标机不是 ...

  3. linux卸载cf卡命令,嵌入式Linux 中CF卡的驱动和管理技术研究

    在嵌入式Linux系统中,为了在没有PCMCIA控制器的情况下仍然要利用CompactFlash存储卡(简称CF卡)作为存储设备,作者从CF卡的硬件特性入手,在系统层基于CF卡的memory寻址访问方 ...

  4. 详解基于busybox、dropbear、ngnix制作完整的嵌入式Linux系统

    说明:         <一>:查看此博文,建议查看笔者上一篇博文(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更 ...

  5. Linux系统上利用nmcli命令创建网络组

    网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 下面我们以CentOS7系统为环 ...

  6. 利用紫金桥跨平台组态软件在树莓派linux系统上组态采集设备数据并Web发布手机电脑访问

    一.紫金桥跨平台实时数据库介绍    紫金桥跨平台实时数据库RealHistorian是紫金桥公司于2020年2月24日正式发布!是国内首款纯国产跨平台实时数据库.跨平台组态软件!    RealHi ...

  7. 路由器上刷linux系统,利用Openwrt在路由器上刷openflow1.3协议

    1.刷机环境 Ubuntu 14.04(64bit) 一台Openwrt支持的设备 一条网线 2.下载Openwrt源码 首先到https://wiki.openwrt.org/toh/start#s ...

  8. 在CF卡上建立文件系统和安装引导加载程序

    CF卡在嵌入式工控领域越来越多的被应用,如何在CF卡上构建嵌入式linux是开发中一个基础但非常重要的过程! 本文介绍在CF卡上建立用于PC104板卡上的根文件系统,着重介绍了针对CF卡的操作,至于具 ...

  9. 高性能linux构建Cf游戏,构建CF卡Linux系统的几个常见难题

    关于如何在cf卡上构建linux ,从网上可以找到很多文章,如:许德新 <嵌入式Linux在PC104平台上的构建与实现>等等.这里主要介绍我在cf卡上构建linux系统中碰到的问题和 解 ...

最新文章

  1. 12-Generic Timer
  2. spring学习(13):使用junit4进行单元测试续
  3. FreeBSD的功能特点
  4. FullCalendar 二:FullCalendar日历插件说明文档
  5. win2003 server重启故障
  6. pthread_exit()
  7. android ndk 段错误,android crash之段错误原因及分析方法
  8. 【广告技术】隐私集合交集运算结合同态加密,在保障数据安全的同时追踪广告效果
  9. 编写一份代码,支持多种布署方式
  10. 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)
  11. java之public class和class声明区别详解 (转)
  12. SourcesTree使用手册3:文件贮藏与删除
  13. ubuntu samba
  14. sunlight的中文_DianaVickersSunlight中文歌词
  15. 你还不知道Java异或运算符的妙用?
  16. 重力加速度陀螺仪传感器MPU-6050(一)
  17. 你可以对计算机进行设置 这样用户,win10登陆界面设置 win10登陆界面壁纸
  18. 输入一个正整数n(n<360),输出n度的正弦余弦值
  19. 西安计算机专业大专排名及分数线,西安所有的大学名单及排名分数线(本科 专科)...
  20. 使用Python做饼图

热门文章

  1. 30多个WP博客推广的Wordpress插件 | 帕兰映像
  2. 【CentOS7】Linux下常见的命令,补充中
  3. 银行信息科技岗:中原银行算法工程师面试分享
  4. 百度与中国联通达成战略合作,携手加速区块链基础设施建设
  5. 【观察】当 SmartX 遇见英特尔傲腾,超融合系统性能突破新极限
  6. GithubPages上搭建个人主页
  7. 魔百和M401A刷入Armbian系统EMMC
  8. html5 video安排位置,js H5 video如何在关闭页面后记住播放位置,下次进入直接从该位置开始播放...
  9. 手机版专题页面的注意事项
  10. Elastic认证特训营 难点解读01——best_fields, most_fields, cross_fields 拆解认知