如何构建Linux发行版?

如何构建Linux发行版?,linux,embedded-linux,u-boot,linux-distro,distro,Linux,Embedded Linux,U Boot,Linux Distro,Distro,免责声明: 这是我第一次深入研究嵌入式Linux世界(Ubuntu和Debian),尽管我已经使用Linux一段时间了 发行版,如Raspbian、Armstrong(beaglebone)和嵌入式debian。 这个标题看起来也很普通,但我真的想不出一个合适的名字 更好的一个,我上下班了,我读了很多书 在过去的几个小时里,我已经过了上床睡觉的时间,吃得饱饱的 美容睡眠,直到星期二我才有机会再睡,所以 ... 我为语法/语法/格式错误道歉 背景 Debian、Armstrong、Ubuntu、O

免责声明: 这是我第一次深入研究嵌入式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、内核和包,构建它们并将它们放在同一个映像中(我已经阅读了如何仅使用BootLoader和内核“手动完成”)。我想象有一些配置文件,一些描述了电路板的文件等等,但我不能确定。我走的路对吗

(2) 上述董事会的创造者在第一次创建一个独特的董事会时做了什么

直到你可能会想,“好吧,找一块看起来像你的板子的板子,修改文件,然后继续”。在现实世界中,我会这么做,但现在我想学习,只有把这些知识刻进我的头脑中,我才能学习。问题是,有几个配置文件(根据我从u-boot和内核学习的内容),我身体里的所有东西都告诉我在问这个问题之前先阅读Embedded Linux Primer,第二版。如果这个问题的答案过于深入,请告诉我读一本书,如果不是,有人能帮我吗

(3) 他们是如何制作自己的发行版的

(4) 是否可以通过安装我想要的任何软件包来制作我自己的发行版,并使它们与其他软件包不同

我知道发行版背后有很多开发,我绝不打算诋毁(这个词对吗?英语不是我的母语,根据定义,它似乎还可以,但在这里使用时不知何故感觉“废话”)所有这些团队的开发。这只是一个问题,我可以构建引导加载程序、内核、其他一些随机程序和包,并将其称为我自己的发行版吗?如果是这样,我如何将包映像构建到发行版中

如果我从头开始开发一个知名发行版,而不使用他们的脚本,我会构建引导加载程序、内核和知名发行版使用的所有东西,然后将其绑定到映像中吗?我是否只需要构建u-boot和内核,然后安装所有其他源代码并从中构建新的linux映像

编辑:我希望留下上面的文字,以便新读者了解我的思路。我发现很难用几句话来表达自己,也很难把它变成一个“相关的问题”。所以我在下面加了一个标题,这是我目前能想到的最客观的问题。我还编辑了一段文字并给它起了个标题。我只是把前面的问题删掉,因为它们似乎是有效的,尽管有各种各样的好答案,因为它可能会帮助别人回答我同样的问题。如果需要,我可以删除它们

跳转到问题上来 有几个问题我想得到答案,我尽量客观地回答

  • 我可以通过下载u-boot、内核和特定的OpenWRT源代码从源代码构建一个类似OpenWRT的发行版吗?我的意思是,如果我不需要使用他们提供的脚本就可以做到。如果我使用他们的脚本,我知道我可以修改一些配置并将其移植到我自己的“独特”开发板。yocto能成为我的出发点吗

  • 我如何配置自己独特的开发板?如果我只是编译u-boot和内核,然后在上面安装一些程序,可以吗?生产准备好了吗

  • 许多人从零开始谈论Linux。我发现反对它的主要理由是,它对生产是可怕的。与其告诉我为什么这对生产来说很糟糕,不如告诉我如何让我的设置对生产“有利”


  • 如今,首批“站点”之一将是帮助您构建分发内容的工具包。但当然,这只是这种工具的一个例子,而且还有很多


    2016年,再也没有人“从头开始手工”制作发行版了。

    yocto会为您完成大部分工作。 你看过lfs吗 也可以安装set o