Как я могу создать дистрибутив Linux?
Отказ от ответственности: я впервые вникну в мир встраиваемых 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?
РЕДАКТИРОВАТЬ: Я предпочитаю оставить текст выше, чтобы новые читатели могли понять мою линию мысли. Мне трудно выразить себя несколькими словами и сделать это "важным вопросом". Поэтому я поместил заголовок ниже, которые являются наиболее объективными вопросами, которые я могу думать на данный момент. Я также отредактировал немного текста и дал ему название. Я просто отвечаю на предыдущие вопросы, потому что они кажутся правильными, хотя и с множеством хороших ответов, потому что это может помочь другим с моими такими же вопросами. При необходимости я могу просто удалить их.
Перейти к вопросам
Есть несколько вопросов, на которые я хотел бы получить ответ, и я стараюсь быть максимально объективным с ними
Могу ли я создать дистрибутив, такой как OpenWRT, из исходного кода, загрузив u-boot, ядро и конкретные исходные коды OpenWRT? Я имею в виду, могу ли я сделать это без использования предоставленных им скриптов. Если я использую их сценарии, я знаю, что могу изменить некоторые конфигурации и перенести их на свою "уникальную" плату разработчика. Может ли Yocto быть моей отправной точкой?
Как я могу настроить свою собственную уникальную плату разработчика? Это нормально, если я просто скомпилирую u-boot и ядро и установлю на него некоторые программы позже? Готово ли производство?
Многие говорили о Linux с нуля. Главный аргумент против этого я нашел, что это было ужасно для производства. Вместо того, чтобы сказать мне, почему это ужасно для производства, не могли бы вы сказать мне, как я могу сделать мои настройки "хорошими" для производства?
2 ответа
В настоящее время одной из первых первых "остановок" станет инструментарий Yocto, который поможет вам создать контент для распространения. Но, конечно, это только один пример такого инструмента, и есть много других.
В 2016 году никто больше не будет делать дистрибутив "вручную с нуля".
Yocto сделает большую часть работы за вас. Вы заглянули в lfs http://www.linuxfromscratch.org/ Также возможно установить набор пакетов в среду chroot и создать файловую систему. Однако для установки загрузочного образа потребуется дополнительная работа для установки grub или любого загрузчика.