[原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(上)
上篇: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系统(上)相关推荐
- [原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(中)
上篇:CF卡分区, extlinux的安装 中篇:构建根文件系统 下篇:2.6内核剪裁及Busybox编译配置及其分析 一个基本的文件系统应该包括: busybox (提供 shell 命令集) 设备 ...
- 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(下)
< 工控机 (AMD LX处理器平台, 非ARM) Linux kernel & Busybox 编译选项配置 > (一) 配置并编译Busybox: 说明, 此次编译的目标机不是 ...
- linux卸载cf卡命令,嵌入式Linux 中CF卡的驱动和管理技术研究
在嵌入式Linux系统中,为了在没有PCMCIA控制器的情况下仍然要利用CompactFlash存储卡(简称CF卡)作为存储设备,作者从CF卡的硬件特性入手,在系统层基于CF卡的memory寻址访问方 ...
- 详解基于busybox、dropbear、ngnix制作完整的嵌入式Linux系统
说明: <一>:查看此博文,建议查看笔者上一篇博文(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更 ...
- Linux系统上利用nmcli命令创建网络组
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 下面我们以CentOS7系统为环 ...
- 利用紫金桥跨平台组态软件在树莓派linux系统上组态采集设备数据并Web发布手机电脑访问
一.紫金桥跨平台实时数据库介绍 紫金桥跨平台实时数据库RealHistorian是紫金桥公司于2020年2月24日正式发布!是国内首款纯国产跨平台实时数据库.跨平台组态软件! RealHi ...
- 路由器上刷linux系统,利用Openwrt在路由器上刷openflow1.3协议
1.刷机环境 Ubuntu 14.04(64bit) 一台Openwrt支持的设备 一条网线 2.下载Openwrt源码 首先到https://wiki.openwrt.org/toh/start#s ...
- 在CF卡上建立文件系统和安装引导加载程序
CF卡在嵌入式工控领域越来越多的被应用,如何在CF卡上构建嵌入式linux是开发中一个基础但非常重要的过程! 本文介绍在CF卡上建立用于PC104板卡上的根文件系统,着重介绍了针对CF卡的操作,至于具 ...
- 高性能linux构建Cf游戏,构建CF卡Linux系统的几个常见难题
关于如何在cf卡上构建linux ,从网上可以找到很多文章,如:许德新 <嵌入式Linux在PC104平台上的构建与实现>等等.这里主要介绍我在cf卡上构建linux系统中碰到的问题和 解 ...
最新文章
- 12-Generic Timer
- spring学习(13):使用junit4进行单元测试续
- FreeBSD的功能特点
- FullCalendar 二:FullCalendar日历插件说明文档
- win2003 server重启故障
- pthread_exit()
- android ndk 段错误,android crash之段错误原因及分析方法
- 【广告技术】隐私集合交集运算结合同态加密,在保障数据安全的同时追踪广告效果
- 编写一份代码,支持多种布署方式
- 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)
- java之public class和class声明区别详解 (转)
- SourcesTree使用手册3:文件贮藏与删除
- ubuntu samba
- sunlight的中文_DianaVickersSunlight中文歌词
- 你还不知道Java异或运算符的妙用?
- 重力加速度陀螺仪传感器MPU-6050(一)
- 你可以对计算机进行设置 这样用户,win10登陆界面设置 win10登陆界面壁纸
- 输入一个正整数n(n<360),输出n度的正弦余弦值
- 西安计算机专业大专排名及分数线,西安所有的大学名单及排名分数线(本科 专科)...
- 使用Python做饼图
热门文章
- 30多个WP博客推广的Wordpress插件 | 帕兰映像
- 【CentOS7】Linux下常见的命令,补充中
- 银行信息科技岗:中原银行算法工程师面试分享
- 百度与中国联通达成战略合作,携手加速区块链基础设施建设
- 【观察】当 SmartX 遇见英特尔傲腾,超融合系统性能突破新极限
- GithubPages上搭建个人主页
- 魔百和M401A刷入Armbian系统EMMC
- html5 video安排位置,js H5 video如何在关闭页面后记住播放位置,下次进入直接从该位置开始播放...
- 手机版专题页面的注意事项
- Elastic认证特训营 难点解读01——best_fields, most_fields, cross_fields 拆解认知