yocto linux是在U盘启动的,怎么把它放进电脑硬盘里启动

Yocto令Linux羽化成蝶
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
作为开放源码运动的旗舰,Linux曾经是新兴软件企业变革传统软件产业结构的希望。可是,这些年走下来,Linux表现出来的辉煌光环似乎主要是成就了别人,例如风行全球的Android的基础就是Linux。反观Linux自身,却仍然在潜行。那么,Linux本身是否具备腾飞的基因?它需要怎样的机遇,才能羽化成蝶,一飞冲天?变革,从基因到环境回想1998年,开放源代码运动如火如荼,因为它向人们预示——软件即将免费获得。这将是改变全球软件产业结构的一场翻天覆地的革命。这些年来,这种革命真的发生了,只是如果我们不去回想以往,就会觉得目前的一切是理所当然。只要看看我们许多人手中的Android,你知道其中的软件是免费的。最重要的是,其中的软件基础——Android是免费的。尽管Android的基础是Linux,但在这个世界上知道Android的人似乎多于知道Linux的人。这一方面说明Linux是具有羽化成蝶的基因,因为在智能手机领域它已经变成举世闻名的Android;另一方面又启发我们,它应该在其他的更广泛的领域羽化成蝶,从而对整个软件产业的变革发挥更大的作用。用比较研究的思维方法来观察Linux向Android的演变,有利于我们促成Linux在其他更广的空间里发挥潜力。那么,Android发生了怎样的变异,使其从传统Linux中脱颖而出呢?纵观整个过程不难发现,统一化、一致化是Linux羽化为Android 的重要推动力。在智能手机和平板电脑领域,Linux被一股强大的力量统一于Android。在其他领域,从事Linux软件开发的工程师和团队仍然处在“家庭作坊”的状况。这并非由太多人热衷于“家庭作坊”式的开发方式。其中的痛苦他们有切身感受。从一个仅有内核和简单网络功能的操作系统开始,一点一点地编织出一个可以与特定硬件环境相配合、投入实际应用的系统,这个过程本身就像是看着别人健步如飞而自己却在爬行。此后,硬件环境哪怕有一丝一毫的改变,就可能导致全面重新修改和测试整个软件系统。而且,这个过程会无休止地循环下去,直至这个产品生命周期的结束。反观Android,这是一个相对统一化、一致化的Linux系统。开发一个Android的系统,与开发一个Linux系统相比轻松多了,要担心的事情也少多了,速度也快多了。可见,Linux也需要类似于Android那样的变革。Yocto适逢其时时光回转至2010年,开放源代码运动的精英们意识到了统一化、一致化对于Linux性命攸关,他们聚集起来,启动了Yocto计划,开始为开源社区培植变革的火种。通过提供通用的建构系统(Build System)和具备协同能力的开发技术,Yocto计划为Linux开发者启动了新的起点,重点是免除了他们浪费在Porting、Duplicating、Recreating和Maintaining这些低价值工作上的时间。这两年来,在Yocto的支持下,从最初的爬行到后来的直立行走,Linux社区的人们步伐已经越来越稳健。其中具有标志性的一环就是Yocto计划的兼容需求规范(Yocto Project Compliance Requirements)已经出炉了,这将全面推动变革与进步。那么,究竟什么是Yocto计划呢?它是一个Linux发行版本吗?我应该怎样把它用于自己的Linux项目呢? Yocto计划是一个开放源码协同计划,它提供必须的标准以及高质量的架构、工具和方法论,以便降低嵌入式Linux软件工程项目的复杂度,提高其可移植性。Yocto计划不是一个某家公司或者机构提供的Linux发行版本,但是许多硬件和软件公司都加入了Yocto计划,共同来支持嵌入式Linux开发者实现更好的跨平台兼容性和部件互操作性。那么,Yocto计划又是怎样做到这些呢? 在嵌入式环境中建立一个可伸缩的Linux系统,必须依赖一些软件和工具集。请你设想这样的情形,你可以从开放源码社区得到Kernel、Userspace和Patch等等,也会做出你自己的工作,例如特定大小的文件系统、内核配置等等,然后应用适当的工具集来建构各种特定的应用系统,例如针对IA架构做一套系统,针对ARM架构做一套系统。这跟烹调做菜十分相似——用相同的食材和工具,只要稍微改变配方比例和火候,你就可以做成不同的菜肴。现在请你设想一下,如果没有通用的、好用的工具,例如菜刀、炉灶、锅和炒菜的铲子,你的烹调技艺将会很难发挥。在嵌入式Linux领域,如果没有Yocto 计划,你所遇到的情形就是这样——没有通用的资源,从Kernel、Userspace到Cross-Architecture Build,也没有通用的工具集 (Toolchain、Makefiles、Compilers、Debuggers等等 )。Yocto计划提供了上述所缺的一切,而且不会让用户有厂商锁定的困扰。这样,用户既拥有了高质量的标准化工具,又可以自行管理其风险。对于企业战略来说,拥有自主的技术选择是成功的必要条件。Linux项目中的互操作性、可移植性和可重用性将会让开发团队受益无穷。
您的昵称:
美国的游客
(您将以游客身份发表,请 | )
什么是LINUX?
Linux是Unix克隆(Unix clone)或Unix风格(Unix alike)的操作系统(OS),在原代码级上兼容绝大部分Unix标准(指的是IEEE POSIX,System V,BSD),是一个支持多用户, 多进程,多线程,实时性较好的功能强大而稳定的操作系统.它可以运行在x86 PC,Sun Sparc,Digital Alpha,680x0,PowerPC, MIPS等平台上,可以说Linux是目前运行硬件平台最多的操作系统. Linux最大的特点在于它是GNU(Gnu's Not Unix----有点分形与混沌的意味----无限自包含,简单的说GNU是一种自由软件体系)的一员,遵循公共版权许可证(GPL),秉承“自由的思想,开放的源码”的原则,成千上万的专家/爱好者通过Internet在不断地完善并维护它,可以说Linux是计算机爱好者自己的操作系统。
LINUX是什么?
LINUX,LINUX是什么? 通过电子工程专辑网站专业编辑提供LINUX的最新相关信息,掌握最新的LINUX的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
Linux是什么?
Linux,Linux是什么? 通过电子工程专辑网站专业编辑提供Linux的最新相关信息,掌握最新的Linux的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
Yocto计划是什么?
Yocto计划,Yocto计划是什么? 通过电子工程专辑网站专业编辑提供Yocto计划的最新相关信息,掌握最新的Yocto计划的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
linux是什么?
linux,linux是什么? 通过电子工程专辑网站专业编辑提供linux的最新相关信息,掌握最新的linux的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
风河是什么?
风河,风河是什么? 通过电子工程专辑网站专业编辑提供风河的最新相关信息,掌握最新的风河的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
新添订阅功能,提供全面快捷的资讯服务!
关注电子工程专辑微信
扫描以下二维码或添加微信号“eet-china”
访问电子工程专辑手机网站
随时把握电子产业动态,请扫描以下二维码
5G网络在提供1Gbps至10Gbps吞吐量方面具有很好的前途, 并且功耗要求比今天的网络和手机都要低,同时还能为关键应用提供严格的延时性能。本期封面故事将会与您分享5G的关键技术发展,以及在4G网络上有怎样的进步。
新版社区已上线,旧版论坛、博客将停用
1、为防数据丢失,旧版论坛、博客不再接受发帖;
2、老用户只需重设密码,即可直接登录新平台;
3、新版博客将于8月底完美归来,敬请期待;
4、全新论坛、问答,体验升级、手机阅读更方便。
推荐到论坛,赢取4积分&主题:1959年 IBM超大容量硬盘出厂照片
泡网分: 20.128
帖子: 1020
注册: 2005年10月
1959年,IBM超大容量硬盘出厂。
微信扫一扫分享
&浏览:7747&&回帖:107 &&
泡网分: 11.994
主题: 1680
帖子: 11993
注册: 2014年05月
滚滚长江都是水 发表于
物理词冠:
Y(yota)尧——10^24
Z(zeta)泽——10^21
E(exa)艾——10^18
P(peta)拍——10^15
T(tera)太——10^12
G(giga)吉——10^9
M(mega)兆——10^6
k(kilo)千——10^3
h(hecto)百——10^2
da(deca)十——10
往小里说:
d(deci)分——1/10
c(centi)厘——1/10^2
m(milli)毫——1/10^3
μ(micro)微——1/10^6
n(nano)纳——1/10^9
p(pico)皮——1/10^12
f(femto)飞——1/10^15涨姿势了。
泡网分: 13.439
帖子: 4402
注册: 2009年06月
技术的发展头实可怕,想想现在体积和容量,期待SSD的大跨跃!
泡网分: 0.134
注册: 2018年02月
一线天058 发表于
都差不多,那时其他牌子的叫IBM兼容机。可惜了IBM,发明了一座金山却成就了微软。PC不是IBM发明的,而是一帮爱好者弄出来的,IBM只是仗着个头大规范了PC,而且还是三心二意的,没把PC当回事,所以许多东西都是买的凑的,最突出的一点就是OS,被BILL钻了空子,BILL拿着买来的DOS抢了IBM这单生意,最终成长为微软.
这里要是有什么教训的话,那就是IBM的大公司病,看不清PC的前景,以及BILL的精明.基本都是商业上的,与技术真没什么关系.创作DOS的那位仁兄捞到的连BILL的零头都不到.
泡网分: 0.972
注册: 2007年11月
王菲利普京 发表于
有个笑话。
你现在的手机比二十年前的电脑快好几倍,当年斯皮尔伯格做出了泰坦尼克号,如今你拿着手机玩小鸟打猪?
当然是个笑话,至于里面的具体数据,哪位给分析分析对不对大船好像是卡梅隆做的吧。
泡网分: 25.858
帖子: 10895
注册: 2006年08月
Solomage 发表于
硬盘你应该记错了,IBM XT推出时标配硬盘是10M。我记得当时8088用的软盘也有360K,应该不会有1024K的硬盘。当然那个时代用有硬盘的机器已经很奢侈了,我是直到286时代才看见硬盘的,8088从来没见过配硬盘的。学校机房用过IBM 8088 硬盘10M,彩显
泡网分: 1.695
帖子: 1691
注册: 2014年06月
据说里面是一个人和几十本书。
泡网分: 33.122
帖子: 9022
注册: 2004年01月
泡网分: 0.969
帖子: 1044
注册: 2008年05月
aaadzy 发表于
不要光看容量,你应该想想那是60年前,60年前你爷爷见过计算机这种东西吗?你知道人家当年技术有多恐怖了把?
你今天拿块128gTF卡觉得挺牛逼,没准60年后储存介质都是以YB为单位的,
你知道1YB等于多少TB吗?说出来吓死你半年前的帖子都回。。。。。。。。。。
说出来看吓不吓得死人
泡网分: 8.503
帖子: 4442
注册: 2010年01月
有个笑话。
你现在的手机比二十年前的电脑快好几倍,当年斯皮尔伯格做出了泰坦尼克号,如今你拿着手机玩小鸟打猪?
当然是个笑话,至于里面的具体数据,哪位给分析分析对不对
泡网分: 2.662
帖子: 4823
注册: 2015年05月
张3峰 发表于
中国人拨拉算盘珠子的时候恁洋祖宗们还在茹毛饮血么。...请教个问题,算盘是哪一年发明的?这我真不知道。
本帖由 samsung SM-N9200 客户端发布
泡网分: 31.319
精华: 1帖子: 16020
注册: 2008年08月
张3峰 发表于
中国人拨拉算盘珠子的时候恁洋祖宗们还在茹毛饮血么。算盘最早可追溯到公元前的古巴比伦文明
泡网分: 1.814
帖子: 6143
注册: 2012年02月
32年后我的硬盘容量才涨了7倍
泡网分: 2.891
帖子: 8316
注册: 2007年12月
Tkinwa 发表于
看过很多集成电路设计公司的大佬都是从仙童出来的硅谷的西点军校
泡网分: 31.698
帖子: 3244
注册: 2002年11月
PowerPCG6 发表于
在发明磁盘系统之前,计算机使用穿孔纸带、磁带等来存储程序与数据,这些存储方式不仅容量低、速度慢,而且有个大缺陷:它们都是顺序存储,为了读取后面的数据,必须从头开始读,无法实现随机存取数据。
  1956年9月,IBM的一个工程小组向世界展示了第一台磁盘存储系统IBM350RAMAC(RandomAccessMethodofAccountingandControl),其磁头可以直接移动到盘片上的任何一块存储区域,从而成功地实现了随机存储,这套系统的总容量只有5MB,共使用了50个直径为24英寸的磁盘,盘片表面涂有一层磁性物质,它们被叠起来固定在一起,绕着同一个轴旋转。IBM350RAMAC的出现使得航空售票、银行自动化、医疗诊断和航空航天等领域引入计算机成为了可能。
1973年,IBM又发明了Winchester(温氏)硬盘,其特点是工作时磁头悬浮在高速转动的盘片上方,而不与盘片直接接触,这便是现代硬盘的原型。IBM随后生产的3340硬盘系统即采用了温氏技术,共有两个30MB的子系统。“密封、固定并高速旋转的镀磁盘片、磁头沿盘片径向移动”是“温彻斯特”硬盘技术的精髓。今天个人电脑中的硬盘容量虽然已经高达几十GB以上,但仍然没有脱离“温彻斯特”模式。
希捷在1980年推出的名为ST-506的5.25英寸硬盘所采用的接口可以说是最早 ...
这个5M的硬盘称之为革命性的产品也不为过。
泡网分: 28.205
注册: 2003年04月
滚滚长江都是水 发表于
物理词冠:
Y(yota)尧——10^24
Z(zeta)泽——10^21
E(exa)艾——10^18
P(peta)拍——10^15
T(tera)太——10^12
G(giga)吉——10^9
M(mega)兆——10^6
k(kilo)千——10^3
h(hecto)百——10^2
da(deca)十——10
往小里说:
d(deci)分——1/10
c(centi)厘——1/10^2
m(milli)毫——1/10^3
μ(micro)微——1/10^6
n(nano)纳——1/10^9
p(pico)皮——1/10^12
f(femto)飞——1/10^15学习了。
泡网分: 0.984
帖子: 7133
注册: 2010年01月
TomTom 发表于
,中国大跃进时期,人民群众热情高涨的将自己家的铁锅饭勺扔进土高炉,相信能山寨出制造航天飞机的钢铁,谁山寨什么破硬盘。中国人拨拉算盘珠子的时候恁洋祖宗们还在茹毛饮血么。
泡网分: 0.984
帖子: 7133
注册: 2010年01月
仁魔狗漾 发表于
还有个更牛逼的仙童,后来没落了德仪也很不错哦
等待验证会员
泡网分: 3.589
注册: 2011年01月
aaadzy 发表于
不要光看容量,你应该想想那是60年前,60年前你爷爷见过计算机这种东西吗?你知道人家当年技术有多恐怖了把?
你今天拿块128gTF卡觉...物理词冠:
Y(yota)尧——10^24
Z(zeta)泽——10^21
E(exa)艾——10^18
P(peta)拍——10^15
T(tera)太——10^12
G(giga)吉——10^9
M(mega)兆——10^6
k(kilo)千——10^3
h(hecto)百——10^2
da(deca)十——10
往小里说:
d(deci)分——1/10
c(centi)厘——1/10^2
m(milli)毫——1/10^3
μ(micro)微——1/10^6
n(nano)纳——1/10^9
p(pico)皮——1/10^12
f(femto)飞——1/10^15
a(atto)阿——1/10^18
z(zepto)仄——1/10^21
y(yocto)幺——1/10^24
本帖由安卓客户端编辑于: 20:59:56
泡网分: 27.794
帖子: 4522
注册: 2004年12月
chembrs 发表于
那会照片上的人肯定觉得手里这货老牛比了,要是给他看一下现在我们手机里的tf卡,哪怕是2G的,估计立马气绝身亡不要光看容量,你应该想想那是60年前,60年前你爷爷见过计算机这种东西吗?你知道人家当年技术有多恐怖了把?
你今天拿块128gTF卡觉得挺牛逼,没准60年后储存介质都是以YB为单位的,
你知道1YB等于多少TB吗?说出来吓死你
泡网分: 20.128
帖子: 1020
注册: 2005年10月
Tkinwa 发表于
看过很多集成电路设计公司的大佬都是从仙童出来的仙童这个公司还有,中国想收购,但是被拒绝了。
泡网分: 21.275
帖子: 1416
注册: 2005年10月
仁魔狗漾 发表于
还有个更牛逼的仙童,后来没落了看过很多集成电路设计公司的大佬都是从仙童出来的
iPhone6plus iOS9.2.1 客户端发布
泡网分: 11.994
主题: 1680
帖子: 11993
注册: 2014年05月
aiminl1642 发表于
英国电影《模仿游戏》里那个巨大的“密码自动破译机器”,可能就是最早的电脑雏形了吧?那个像是转子的机械计算机,绝不是电子计算机,没见着真空管什么的。
泡网分: 19.938
帖子: 9027
注册: 2009年10月
nokia6600 发表于
1959年,IBM超大容量硬盘出厂。
不是5M,看那家伙应该是5T,重量
本帖由安卓客户端发布
泡网分: 2.121
帖子: 1943
注册: 2013年06月
mygod555 发表于
现在所谓的信息时代,大量的信息是垃圾信息。所以使得储存垃圾的介质一直在疯狂增长,最典型的就是Windows系统。也包括你硬盘里的那些岛国动作片吗?
泡网分: 2.121
帖子: 1943
注册: 2013年06月
笑笑哭哭 发表于
美国是一步一个脚印从无到有发明过来的,而中国可以直接山寨,所以还是中国发展快。所以美国是大哥 其他国家是小弟 可以这样理解是吧?
泡网分: 1.445
帖子: 2426
注册: 2011年12月
还有个更牛逼的仙童,后来没落了
泡网分: 2.393
帖子: 4918
注册: 2011年07月
mythplayer 发表于
是不是類似這樣的機器?时间太长没印象了
本帖由 HM 1S 客户端发布
泡网分: 19.916
帖子: 6377
注册: 2008年01月
zhaoyx55 发表于
1998年有幸拆过一台,比洗衣机还大,说是硬盘,但现在回忆没发现有盘片,会不会是台复印机?是不是類似這樣的機器?
本帖最后由 mythplayer 于
22:14 编辑
泡网分: 21.948
精华: 1帖子: 21795
注册: 2007年12月
老泉 发表于
个人电脑首先商用化的是乔布斯的APPLE,第二代APPLE II。
IBM推出PC是迫于无奈,在当时它并不看好它。您见识少而已……
TRS-80、Commodore PET 上市的时间跟 Apple II 差不多,而且比苹果成功得多。
Apple II 刚上市的时候,价格不低,却连浮点 BASIC 都没有,一直卖不过另外两家。
直到 Apple II+ 上市,才逐渐积累起人气。
国内很多人总是误以为 Apple II 是最早的、最成功的早期个人电脑。—— 其实,这主要是因为 Apple II 系列更新慢、生产期长而已。
泡网分: 21.948
精华: 1帖子: 21795
注册: 2007年12月
夏普空气净化器 发表于
那时候的人看日本片,用什么方法储存?8mm 电影胶片。
俺们小学时既用它看过《青春期卫生》(“树立共产主义远大理想”),也看过山口百惠退出歌坛告别演唱会。
&版权所有:&&&&没有更多推荐了,
不良信息举报
举报内容:
使用 Yocto Project 构建自定义嵌入式 Linux 发行版
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Yocto开发笔记之《根文件系统裁剪》(QQ交流群:)
时间: 22:24:13
&&&& 阅读:947
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处。
QQ群:,为避免广告骚扰,申请时请注明 &开发者& 字样
========================================================
以下内容来源于百度文库,没注明出处,侵权请告知
一、编译内核
得到bzImage
二、定制文件系统
1、创建ramdisk虚拟空间,用来放置文件系统
命令 # mke2fs &m 0 &I 2000 /dev/ram0
注释:mke2fs将会自动判断设备容量的大小并相应的配置自身,-m 0参数防止它给root保留空间,这样会腾出更多有用的空间。
2、挂载刚才创建的虚拟盘,我这里挂载在/mnt/floppy目录下
命令 # mount &t ext2 /dev/ram0 /mnt/floppy
3、创建文件系统必须目录
命令 # cd /mnt/floppy
# mkdir dev proc etc bin sbin lib mnt usr
4、确定/dev目录下我们需要的设备文件
方案一、把现有/dev目录中所有设备文件拷贝过来,然后删除不必要的设备文件(不推荐使用)
命令:# cp &dpR /dev /mnt/floppy/dev
注释:该命令会拷贝整个设备目录但不拷贝文件内容,同时dpR开关保证连接文件仍然不变,不会拷贝连接指向原来文件,而且属性不变。如果没有SCSI设备,删除所有以sd开头的设备文件,如果不使用串口设备,删除所有以cua开头的文件,然后保留一些必要的设备文件。
方案二、只拷贝必要的设备文件:
console && 控制台设备
tty* && 由控制台管理的虚拟终端
ram && 虚拟内存盘设备(以后我们的系统将运行在虚拟盘中)
null && 空设备,非常有用的字符设备文件,送入这个设备的所有东西将被忽略。如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息,因此脚本中常用它来消除本该显示在屏幕上的其他信息
zero && 零设备,只会得到空的内容,有时为了提高压缩率,需要对某空间全零填充时需要使用该设备
inintrd && 特殊的字符设备,被用来从用户空间向系统内核发送切换运行级别的信息,属于一个虚拟字符设备。
fd 0 && 软盘设备
hd 0 && 硬盘设备(该项不是必须,如果您想挂载硬盘,请选择该项)
命令:# cp &dpR /dev/console /mnt/floppy/dev
# cp &dpR /dev/tty* /mnt/floppy/dev
# cp &dpR /dev/ram /mnt/floppy/dev
注释:如果要使用多个虚拟盘,可以相应的将ram1,ram2,&&等拷贝过来
# cp &dpR /dev/null /mnt/floppy/dev
# cp &dpR /dev/zero /mnt/floppy/dev
# cp &dpR /dev/initrd /mnt/floppy/dev
6、 确定/etc目录中所需要的系统配置文件
a) rc.d/* && 系统启动所需要的脚本
b) fstab && 列出要登陆的文件系统,
c) inittab && 包含启动过程参数
先直接拷贝系统/etc目录下的以上配置文件
命令 # cp &R /dev/rc.d/* /mnt/floppy/dev/
# cp /dev/fstab /mnt/floppy/dev/
# cp /dev/inittab /mnt/floppy/dev/
然后修改启动配置脚本,用vi或者kwrite等文本编辑工具打开/dev/rc.d/rc文件
# cd /mnt/floppy/dev/rc.d/
修改rc文件为以下内容:
bin/mount -av
/bin/host name fallso
修改fstab文件内容为以下内容:
/dev/ram0 / ext2 defaults
/dev/fd0 / ext2 defaults
/proc /prco proc defaults
修改inittab文件内容:
id:2:initdefault:
si::sysinit:/etc/rc
1:2345:respawn:/sbin/getty 9600 tty1
2:23:respawn:/sbin/getty 9600 tty2
7、 确定/bin是和/sbin目录包含的命令文件
a) ls &&文件目录陈列,相当于dos的dir
d) init &&
e) mingetty &&
f) login && 登陆命令
g) mount && 挂载设备命令
h) umount && 卸载设备命令
命令:# cp /bin/ls /mnt/floppy/bin
# cp /bin/cat /mnt/floppy/bin
# cp /bin/mv /mnt/floppy/bin
# cp /bin/login /mnt/floppy/bin
# cp /bin/mount /mnt/floppy/bin
# cp /bin/umount /mnt/floppy/bin
# cp /sbin/init /mnt/floppy/bin
# cp /sbin/mingetty /mnt/floppy/bin
8、 确定/lib目录下所需要的共享函数库,如果缺少必要的函数库,系统会自动停止启动或出现一些错误信息提示。
a) 列出所有程序需要使用的libc库
命令:# cd /bin
# ls &l /lib/libc*
-rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so*
lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -& libc-2.1.1.so*
拷贝箭头右边所指文件
如 cp &dpR /lib/libc-2.1.so* /mnt/floppy/lib
b)察看每一个程序所使用的函数库
命令:# ldd /sbin/mke2fs
libext2fs.so.2 =& /lib/libext2fs.so.2 (0x)
libcom_err.so.2 =& /lib/libcom_err.so.2 (0x)
libuuid.so.1 =& /lib/libuuid.so.1 (0x)
libc.so.6 =& /lib/libc.so.6 (0x)
/lib/ld-linux.so.2 =& /lib/ld-linux.so.2 (0x)
拷贝箭头右边的函数库
如cp &dpR/lib/ld-linux.so.2 /mnt/floppy/lib
9、 关于其他目录,以下目录在软盘版linux中完全可以为空
a) /proc是一个虚拟的文件系统,用来传输资料给核心程序的目录,可以观察这些特殊的文件在内存中运行的信息;
b) /usr目录下包含系统运行的所有程序,用户经常用到的一些数据和一些配置数据,该文件系统为只读,以减少系统瘫痪的危险性
c) /mnt 挂载其他设备的临时目录
10、卸载虚拟盘,拷贝、压缩文件系统
命令:# umount /mnt/floppy
# dd if=/dev/ram0 bs=1k |gzip &v9&roofs.gz
注释:压缩后在/root下得到一个压缩的根文件系统,检查它是否超过了1.44M,如果超过还得从头再来。
三、 引导程序
裁剪后所得内核大小为850KB,压缩后文件系统大小为1.2M,二者之和大于1.44M,显然超过了软盘容量,所以本软盘版linux采用两张软盘,第一张盘放置内核及启动引导程序,第二张盘放置压缩的文件系统。系统启动过程如下:
由于linux内核无法自己引导,故在系统启动时需要引导器来加载系统内核。通常的我们使用LILO,即the LInux LOader。
微机加电后,基于x86 CPU构架的特性,CPU将去检测执行地址为FFFF0处存储的跳转指令,跳转到较低的地址。接着BIOS就会做一系列的检查操作。这一过程即POST(Power On Self Test)。最后BIOS结束自检,接着读取第一个启动设备的启动信息。一般的是从硬盘启动,但本系统基于软盘,因此,BIOS将从软盘的启动扇区读取系统启动信息,这里即为LILO的引导部分内容,并将控制权交给LILO。
LILO接管系统后将完成信息的显示、操作系统的选择(对多系统共存而言,在这里直接运行软盘上的Linux)、内核启动参数的传递,然后加载/etc/lilo.conf中对应的内核映像文件,最后将控制权交给加载到系统中的内核映像。
当软盘上的Linux的内核被LILO加载到内存后,开始掌握控制权。由于Linux的内核是压缩存储的,所以首先进行的是自解压操作。然后内核将开始检测系统硬件,并配置相应的驱动程序,同时在系统控制台上输出相应结果信息。接下来内核将挂载并检测根文件系统。若挂载成功,内核将在系统后台启动系统的第一个进程init进程。至此,内核加载过程结束。
接下来由init进程根据/etc/inittab中的信息完成Linux系统的初始化操作。本系统裁剪掉了许多不必要的服务,故而只进行下列初始化操作。
init停止在console,按inittab指示打开一个shell或者开getty+login这样用户就可以看到输入用户名的提示符,至此进入系统操作,完成整个系统引导过程。
创建软盘版linux引导程序的步骤如下:
1、 在第一张软盘上标记:系统引导及内核,然后插入软驱,执行命令
a) # mke2fs &N 24 &m 0 /dev/fd0
注释:将软盘格式化为具有24个信息节点、ext2类型的文件系统
b) # mount &o dev /dev/fd0 /mnt
注释:挂载软盘到/mnt目录
c) # mkdir /mnt/boot
注释:创建启动盘的boot目录
d) # mkdri /mnt/dev
注释:创建启动盘的dev目录
e) # cp &R /dev/null /mnt/dev
注释:拷贝空设备到软盘
f) # cp &R /dev/fd0 /mnt/dev
注释:拷贝软盘设备到目标系统的/dev目录下
g) # cp /boot/boot.b /mnt/boot
注释:拷贝启动映像文件到目标系统/dev目录下
h) # cp /boot/bzImage /mnt/boot
注释:拷贝内核到目标系统的/boot目录下
i) # rdev &r /mnt/bzImage 49152li
2、 创建修改lilo.conf文件
a) # cp /etc/lilo.conf /mnt
b) 打开lilo.conf,修改为以下内容:
boot=/dev/fd0
install=/boot/boot.b
map=/boot/map
read-write
backup=/dev/null
image=/bzImage
label=Linux
root=/dev/fd0
3、 将引导装入程序复制到软盘
命令:# lilo &v C lilo.conf &r /mnt
4、 卸载第一张软盘
命令:# umount /mnt
5、 将第二张软盘标记为:文件系统。插入软驱,拷贝压缩后的文件系统
a) # mke2fs &i8192 &m 0 /dev/fd0
注释:-i8192表示每8192位创建一个信息节点
b) # mount /dev/fd0 /mnt
注释:挂载软盘到/mnt目录
c) # cp /root/rootfs.gz /mnt
注释:拷贝文件系统到软盘
d) # umount /mnt
注释:卸载软盘
6、 重新启动电脑,进入bios设置&first boot device&为&boot from floppy disk&。测试软盘版linux系统是否能够运行。
将1号软盘插入软驱,重新启动电脑,看到屏幕上出现&lilo loading linux&,然后是一大堆的系统硬件初始化信息,引导内核后,最后看到以下提示VFS:Insert root floppy disk to be loaded into RAM disk an press ENTER
插入第二张软盘:装载文件系统
不知何故,我在插入第二张软盘后,看到如下提示:
RAMDISK:Ext2 filesystem found at block0
RAMDISK:Loading 1440 block[1disk]into ram disk done
VFS Mounted root(ext2 filesystem)
Freeing unused kernel memory:84K freed
Warining:unable to open an initial console
Kernel panic:No init found .Try passing init=option to kernel
7、 将软盘插在其他机器的软驱中,测试软盘版linux系统是否具有移植性。
呼~。。今天忙了一天,光裁剪根文件系统了。
一个1G多的文件系统,被我剪剪剪 ,成了30M了,但是还是嫌大,最理想是10M以内。
但是我真觉得没法再剪了。
bin/的东西,比较重要,只删了些不常见的命令、
lib/有很多gcc的库,也得小心删减,一裁了不该裁的,系统就起不来了。。
usr/东西特别多
usr/bin/,usr/lib/,可以删掉绝大部分,留下几个用到的就可以了
usr/share/里好多东西,删删删,使劲删,基本都删光了。
root/modules/里,很多需要加载的.ko模块,也可以删,只剩下core,sys,os的几个.ko。
var/里面也可以删很多东西,留下一个var/log/dmesg和var/run/utmp。
dev/里的东西也可以删,只要留下console和ttySA0就可以了。
etc/也可以删一些不重要的脚本。
就这样,只剩下了一个恐龙骨架~
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/alanfang/p/5131671.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 yocto 的文章

 

随机推荐