免责声明: 这是我第一次深入研究嵌入式 Linux 世界(Ubuntu 和 Debian),尽管我已经使用 Linux 一段时间并且使用过 Raspbian、Armstrong(beaglebone) 和嵌入式 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 和内核中研究的内容),我身体里的所有东西都告诉我在问这个之前阅读 Embedded Linux Primer, 2nd edition。如果这个问题的答案太深入,请告诉我读一本书,但如果没有,有人可以帮助我吗?
(3)他们是如何制作自己的发行版的?
(4) 是否可以通过安装我想要的任何软件包来制作我自己的发行版并使它们与其他软件包不同?
我知道发行版背后有很多发展,绝不是我的意图诋毁(这是正确的词吗?英语不是我的母语,根据定义它似乎还可以,但是当此处使用)所有这些团队所做的开发。这只是一个问题,我可以构建引导加载程序、内核、其他一些随机程序和软件包并将其称为我自己的发行版吗?如果是这样,我如何将包映像构建到我的发行版中?
如果我从头开始开发一个知名发行版,而不使用他们的脚本,我会构建引导加载程序、内核以及知名发行版使用的所有内容,然后将其绑定到映像中吗?我是否只需构建 u-boot 和内核,然后安装所有其他源并从中构建我的新 linux 映像?
编辑:我喜欢留下上面的文字,以便新读者可以了解我的思路。我发现很难用几句话来表达自己,并把它变成一个“相关的问题”。所以我在下面放了一个标题,这是我目前能想到的最客观的问题。我还编辑了一些文本并给了它一个标题。我只是通过前面的问题,因为它们似乎是有效的,尽管有各种各样的好答案,因为它可以帮助其他人解决我同样的问题。如果需要,我可以删除它们。
跳转到问题
有几个问题我想得到答案,我尽量对他们保持客观
我可以通过下载 u-boot、内核和特定的 OpenWRT 源代码从源代码构建像 OpenWRT 这样的发行版吗?我的意思是如果我不使用他们提供的脚本就可以做到这一点。如果我使用他们的脚本,我知道我可以修改一些配置并将其移植到我自己的“独特”开发板上。yocto 可以成为我的起点吗?
如何配置自己独特的开发板?如果我只是编译 u-boot 和内核然后在上面安装一些程序可以吗?准备好生产了吗?
许多人从头开始谈论 Linux。我发现反对它的主要论据是它对生产来说太可怕了。不要告诉我为什么它对生产来说很糟糕,你能告诉我如何让我的设置对生产“好”吗?