我想学习如何在嵌入式 linux 中进行开发。我需要什么材料?我没有实际的嵌入式设备,所以我打算为 PC 使用一些设备模拟器。我想知道如何在设备中加载内核和文件系统。
8 回答
根据您计划使用的设备,您可以使用QUEMU来模拟它。
即使没有设备,您也可以通过阅读http://www.linuxfordevices.com上的一些文章开始。
The Embedded Linux Overview Quick Reference Guide可能是一个很好的起点。
您可能想查看http://www.linuxfromscratch.org/
大多数标准 linux 发行版都是为成熟的桌面设计的。“从头开始的 linux” 方法非常适合嵌入式平台,因为您可以创建可以适应非常小的内存占用的准系统内核。
嵌入式单板计算机具有至少一个 RS-232 串行端口和至少一个以太网接口以及存储在闪存中的引导加载程序是相当普遍的。引导加载程序通常允许您使用串行端口配置多个引导选项之一,例如从板载闪存引导,可能从 SD 或 USB 闪存引导,或通过以太网使用 TFTP,有时甚至通过串行端口本身。
设备制造商应提供某种 SDK、开发环境或至少一些用于在设备上加载操作系统的文档。
您需要某种交叉编译器和链接器来为设备创建可执行文件。远程调试器会很好,但可能不可用。
在您的工作站上运行的模拟器或模拟器将非常非常有用。
您需要将数据和可执行文件移入和移出设备所需的任何硬件。这可能是以太网、RS-232、wi-fi、蓝牙、USB、光纤、eprom 刻录机或其他奇怪的东西。
如果没有关于您所针对的设备类型的更多信息,就没有更多建议了。
如果您想在真正的板子上工作而不是仿真器,您可以尝试一些流行的开发板,例如 beagle 板。下载内核源代码树并进行自己的构建,然后将引导加载程序和内核映像刷写到板上。
许多更常用的板卡使用闪存作为“磁盘”存储。学习如何创建和操作可引导映像,包括多个分区磁盘映像,将是您在此过程中学习的内容之一。
正如之前的一位发帖人所回应的那样,您确实需要确定要定位的设备,这意味着确定您打算开发的应用程序。
并不是您要求推荐,而是 pcengines 的 ALIX 板广泛可用、价格合理且入门相对简单。
另一个熟悉嵌入式 Linux 的好起点: www.embedded.org。你会在那里找到一个很好的介绍。我也在努力让自己熟悉嵌入式 Linux,这个 7 部分的介绍让我对差异、它的工作原理以及如何开始有了更多的了解。
如果你想快速开始,我建议使用 QEMU 和 Angstrom 预编译包。你可以试试这个教程:running-qt4-examples-on-embedded-linux
我建议从基础开始尝试,然后向上移动。从零开始尝试 Cross Linux http://www.linuxfromscratch.org/clfs/view/clfs-2.0/arm/?