仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 563|回复: 7
打印 上一主题 下一主题

[其他Linux] linux教程之利用initrd文件体系 U-boot引诱Linux办法

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 15:06:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于在linux中,用户权限很大,做任何事情都很自由,所以,你往往需要知道你做的每一步在干什么。
bootm0x1000000x240000
(个中:0x100000是linux内核在Flash中的地点,0x240000是initrd在flash中的地点)
setenvbootargsconsole=ttyS0,115200n8root=/dev/ramrwmem=32M
当u-boot利用下面的设置时,可以一般引诱linux加载initrd!
注重:
u-boot和linux内核之间是经由过程ATAG-TAG体例来传送启动参数的。u-boot依据上面的命令:
bootm0x1000000x240000
经由过程挪用setup_initrd_tag()在params=(structtag*)bd->bi_boot_params内存响应地位创建initd的TAG表项,向linux传送了关于initrd的内核参数,因而,不必在bootargs中再次指定initrd的相干参数了!
voiddo_bootm_linux(cmd_tbl_t*cmdtp,intflag,intargc,char*argv[],
ulongaddr,ulong*len_ptr,intverify)
{
ulonginitrd_start,initrd_end;
......
data=addr+sizeof(image_header_t);
len=ntohl(hdr->ih_size);
......
#ifdefined(CONFIG_B2)||defined(CONFIG_OSK_OMAP5912)
memmove((void*)ntohl(hdr->ih_load),(uchar*)data,len);
data=ntohl(hdr->ih_load);
#endif
......
if(data){
initrd_start=data;
initrd_end=initrd_start+len;
}
......
#ifdefined(CONFIG_SETUP_MEMORY_TAGS)||
defined(CONFIG_CMDLINE_TAG)||
defined(CONFIG_INITRD_TAG)||
setup_start_tag(bd);
......
#ifdefCONFIG_INITRD_TAG
if(initrd_start&&initrd_end)
setup_initrd_tag(bd,initrd_start,initrd_end);
#endif
......
setup_end_tag(bd);
#endif
......
theKernel(0,bd->bi_arch_number,bd->bi_boot_params);
}
#ifdefCONFIG_INITRD_TAG
staticvoidsetup_initrd_tag(bd_t*bd,ulonginitrd_start,ulonginitrd_end)
{
params->hdr.tag=ATAG_INITRD2;
params->hdr.size=tag_size(tag_initrd);
params->u.initrd.start=initrd_start;
params->u.initrd.size=initrd_end-initrd_start;
params=tag_next(params);
}
#endif
#ifdefined(CONFIG_SETUP_MEMORY_TAGS)||
defined(CONFIG_CMDLINE_TAG)||
defined(CONFIG_INITRD_TAG)||
......
staticvoidsetup_start_tag(bd_t*bd)
{
params=(structtag*)bd->bi_boot_params;
......
params=tag_next(params);
}
intboard_init(void)
{
DECLARE_GLOBAL_DATA_PTR;
gd->bd->bi_arch_number=234;
gd->bd->bi_boot_params=0x10000100;
......
}

</p>
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-18 15:39:24 | 只看该作者
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
admin 该用户已被删除
板凳
发表于 2015-1-27 07:22:11 | 只看该作者
随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。
若天明 该用户已被删除
地板
发表于 2015-2-5 05:43:48 | 只看该作者
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
因胸联盟 该用户已被删除
5#
发表于 2015-2-11 07:30:32 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
第二个灵魂 该用户已被删除
6#
 楼主| 发表于 2015-3-2 00:49:13 | 只看该作者
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-11 01:41:08 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
柔情似水 该用户已被删除
8#
发表于 2015-3-17 18:57:27 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-26 09:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表