arm版linux如何引导,有关ARM Linux引导的一些详细信息

我试图了解在arm体系结构上进行Linux引导的详细信息.尽管我每次阅读文章都会带来很多其他新术语,但我在互联网上进行了大量搜索并了解了一些细节,但这使事情变得更加复杂.我确实有2个运行linux的主板,一个olimex 9261和一个beaglebone黑色.我在嵌入式系统(尤其是arm)方面的专业知识非常出色,但是在linux上并没有发挥太多(除了某些用户空间程序和内核中的char驱动程序).

这是我的问题:

一块板我有以下uboot输出(Linux 2.6.30):

bootargs=mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2

bootcmd= cp.b 0xC0042000 0x22000000 0x00199954; bootm 0x22000000

该板具有64MB RAM(映射为0x20000000),512MB nand闪存(到目前为止找不到映射)和2MB数据闪存(映射为0xc0000000).

我在这里不明白的是:

>为什么bootargs中有一个mem = 64?这不应该以ATAG或DTB的形式提供吗?

>当我们将控件传递给内核时,为什么会有一个控制台作为参数?使用tty的内核是否已经由uboot配置?

> initrd与rootfs.我仍然不清楚.我知道initrd可以作为一个块设备包含在内核中,也可以作为uboot必须将地址详细信息传递给内核的单独映像使用(true?).我们可以有一个没有initrd的内核包含另一个文件系统,例如jffs2,该内核将从该文件系统运行其余的驱动程序吗?实际上,我无法理解启动时内核使用的文件系统的全部详细信息.在这个设置中,我有4个文件:uImage,bootstrap,env.bin和jffs2文件系统.因此没有initrd.怎么运作的?以及在上面的bootargs中指出的根文件系统的过程如何?以我的理解,内核应该首先访问jffs2文件系统,然后获取在/ dev / mtdblock1中找到的映像并将其挂载.也许我的理解是错误的.实际上,内核和文件系统之间的这种交互是我似乎不了解的.

在上面的bootcmd中,内核从nand复制到sdram,然后bootm跳转到它.但是内核如何在启动时找到jff?

我在引导过程中看到以下输出行:

VFS:在设备31:1上安装了根(jffs2文件系统).

在董事会用户指南中,我发现了这一点:

警告:由于AT91SAM9261芯片勘误从NAND闪存引导

不支持.

512MB NAND闪存(在Linux中为硅驱动器).

>编译内核后,我观察到System.map并不包含所有符号.我检查了vmlinux,它是一样的.有人知道为什么吗?也许编译器配置不正确?

非常感谢,

丹尼尔

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值