2013-07-31 49 views
20

我想学习嵌入式linux的基础知识。要做到这一点,我假设我需要去购买某种硬件板并拥有linux内核代码。学习嵌入式linux的技巧

我不知道该从哪里开始,任何提示/指针将是最受欢迎的。理想情况下,我希望人们指出一个完整的系统(例如,这些“手册”的“带有linux的板子套件”非常好)。

而且成本是一个因素,因为我个人这样做不是作为企业:)

非常感谢, 代码

+2

如果您负担得起,购买一个beaglebone Black或Raspberry Pi或您市场上的任何其他电路板。学习基本概念就像访问GPIO引脚一样,从用户空间读取ADC,I2C,SPI,UART。一旦你找到舒适的驱动程序,例如GPIO,USB等,这是你感兴趣的:)。 –

+0

为什么不使用QEMU [www.qemu.org] - 一个大量使用的免费开源模拟器项目(例如Android SDK)。您可以找到使用QEMU模拟ARM/Linux机器的教程。例如, http://balau82.wordpress.com/2010/03/22/compiling-linux-kernel-for-qemu-arm-emulator/ – kaiwan

+0

谢谢你的评论:)),从阅读下面的帖子,环顾四周其他来源似乎beagle黑色是一个流行的选择,看起来相当便宜!,但QEMU似乎也值得研究,如果它是我认为你是这样建议它:o(即你可以破解代码的PC limux模拟器) –

回答

19

你将需要:

1 - 板卡:我开始用的BeagleBoard。新的beaglebone black现在可用。有一个巨大的支持社区的小猎犬;许多howto页面herehere,并准备安装images。您也可以自己构建图像(步骤3)。这些主板具有大部分可能需要使用的外设,也可以用作额外的计算机! 2 - 书籍:正如马里指出的那样,Linux是一个快速移动的对象,但在学习的早期阶段,您需要一个可靠的参考。我建议“Embedded Linux Primer: A Practical Real-World Approach”,因为它有很多例子,并带你一步一步。还有“Building Embedded Linux Systems”。

3 - 固件:a)工具链,b)根文件系统和c)内核映像。 “Buildroot”是最简单的开始。 Openembedded和Yocto的学习曲线非常陡峭。 “Embedded Linux Primer: A Practical Real-World Approach”有一些关于如何使用buildroot的例子。

+0

非常感谢很多为您的答案!所有这些选项真的很感激,很高兴听到很多人认为类似的选择:) ...似乎像比格犬是前进的方式:) –

+0

所有答案真的很好,谢谢!,但这一个似乎最与我想要的(并且确实得到)密切匹配。我得到了BBB和两本书,其中推荐......没有工具链等......还有很多需要阅读的书! –

10

您在Olimex 也有一些很酷的板(不是很贵),Armadeus是一个很好的项目开始。

这真的取决于你想要做什么和你喜欢什么,例如Replicant 应该也很有趣。您还可以找到支持openWrt的廉价路由器。 换句话说,找一个你可以尽情玩的小项目,然后选择硬件。

在书中,我认为"Building embedded Linux Systems"是必须的,但Linux是一个快速移动的目标,所以书可能已经过时。

为了学习基础知识,我建议您使用Buildroot来构建您的第一个系统,与Open Embedded或Yocto类似的构建系统相比,这非常简单。

快乐黑客,

+0

Thnakyou非常多:)另外一个Buildroot,这似乎完成了我的名单beagle + buildroot作为我的开始。 –

+0

这似乎是一个不错的选择,用buildroot你将学到很多基础知识:如何生成一个交叉编译工具链,为arm arch构建一个内核,交叉编译并生成一个带有busybox的rootfs,以及儿子.. – Mali

6

我刚开始使用嵌入式Linux。我刚刚找到了一份工作,我在一系列产品的固件中工作。
我正在阅读这本书“Embedded Linux Primer: A Practical Real-World Approach”。
本书介绍了产品中实现的任何内容。
我强烈推荐这本书。太棒了。
对于我来说,在你潜入水中之前你应该做的第一件事是阅读本书。这本书是一个金矿。

+0

感谢,事实上,基于这些建议,这是我在业余时间用我的拖鞋和一杯茶阅读的书:)我还有“构建嵌入式Linux系统”和小猎犬骨黑色乱七八糟: ) –

+0

不错..也许我还应该读“构建嵌入式linux系统”.. –

+0

我还没有开始它,但它似乎是一个自然的进程:) –