声明: 尽管我是一名Linux用户,并使用过Raspbian、Armstrong(beaglebone)和嵌入式Debian等发行版,但这是我第一次涉足嵌入式Linux领域(Ubuntu和Debian)。标题可能也看起来很普通,但我真的想不出更好的标题,我已经来回奔波了,过去几个小时一直在阅读,现在已经远超过我的睡眠时间,我将没有机会再休息到周二,所以......我对语法/语法格式错误表示歉意。
背景
像Debian、Armstrong、Ubuntu、OpenWRT等软件包是如何构建的?我的意思是,当你将镜像下载到像BeagleBone Black这样的板子上时,你需要构建u-boot、内核以及软件包,而这些发行版之间的区别在于它们的软件包(如果我错了,请纠正我)。
我一直在研究如何构建这些发行版(特别是Armstrong和OpenWRT),它们都告诉我下载他们的存储库并运行配置脚本以使发行版运行。因此,这让我想到:“(1)如果我有一个不属于BeagleBone、Raspberry Pi或任何其他知名板子配置的自定义板子会发生什么?(2)创建这些板子的创作者第一次创建独特的板子时做了什么?(3)他们如何制作自己的发行版?(4)安装我想要的任何软件包并使它们与其他发行版不同,是否可能制作自己的发行版?”
正如您所见,有4个不同的问题,因此如果必要,我将使用下一段来解释自己。
(1)如果我有一个不属于BeagleBone、Raspberry Pi或任何其他知名板子配置的自定义板子会发生什么?
好的。我尝试阅读它们运行以构建发行版的脚本,但它们太长了,现在已经很晚了,我完全迷失了方向。根据我所读的,我想象这些脚本下载u-boot、内核和软件包,构建它们并将它们放入同一个镜像中(我已经阅读过如何“手动”只使用引导加载程序和内核)。我想象有一些配置文件,在其中描述了板子等,但我无法确定。我走在正确的道路上吗?
(2) 创建这些板子的创作者第一次创建独特的板子时做了什么?
直到现在为止,您可能会想,“好吧,只需找一个看起来像您的板子,修改文件并进行操作即可”。在现实世界中,这就是我要做的事情,但现在我想学习,我只有将所有这些知识刻入脑海才能学到。问题是,有几个配置文件(根据我从u-boot和内核中学习的),我的一切都告诉我,在问这个问题之前先阅读第二版的“嵌入式Linux入门”。如果这个答案太深入了,请告诉我阅读一本书,但如果不是,请有人可以帮助我吗?(3) 他们如何制作自己的发行版?
(4) 可以通过安装任何我想要的软件包并使其与其他软件包不同来制作自己的发行版吗?
我知道发行版背后有很多开发工作,并且绝不是我的意图贬低(是否为正确的词?英语不是我的母语,根据定义似乎可以,但在此处使用时感觉“blargh”)所有这些团队所做的开发。这只是一个问题,我能否构建引导加载程序、内核、其他几个随机程序和软件包,并将其称为我自己的发行版?如果可以,如何将软件包映像构建到我的发行版中?
如果我正在从头开始开发一个知名的发行版,而不使用它们的脚本,我会构建引导加载程序、内核和所有知名发行版使用的其他内容,然后将其绑定在映像中吗?还是我只需构建u-boot和内核,然后安装所有其他源并从中构建我的新Linux映像?
编辑:我更喜欢保留上面的文本,以便新读者可以了解我的思路。我发现用少量的文字表达自己并使其成为“可关联的问题”很困难。因此,我在下面放了一个标题,这是我目前能想到的最客观的问题。我还稍微编辑了一下文本并给它起了一个标题。我只划掉了以前的问题,因为它们似乎是有效的,尽管有许多好答案,因为它可能会帮助其他与我相同的人提出问题。如果需要,我可以删除它们。
- 我能否通过下载u-boot、内核和特定的OpenWRT源代码来构建像OpenWRT这样的发行版?我的意思是我是否可以不使用它们提供的脚本来做到这一点。如果我使用它们的脚本,我知道我可以修改一些配置并将其移植到我自己的“独特”开发板上。Yocto可以成为我的起点吗?
- 我如何配置我自己独特的开发板?如果我只编译u-boot和内核,并稍后安装一些程序,这样可以吗?它是否可以用于生产?
- 许多人谈到了Linux from scratch。我发现对它的主要反对意见是它不适合生产。除了告诉我它为什么不适合生产外,您能告诉我如何使我的设置对于生产“好”吗?