Як створити власну ОС для Raspberry pi з нуля?


10

Я новачок у ядрі та вбудованому Linux. Нещодавно я придбав Raspberry Pi і завантажив його за допомогою Raspbian. Мене захопило Пі, щоб дізнатися більше про Embedded я вирішив зробити систему домашньої автоматизації. Я хотів використовувати власне ядро ​​та стек. тобто я не хочу використовувати будь-яку ОС.

Для цього я завантажив Kernel, target_fs, прошивку та ланцюжок інструментів з офіційного github. Я склав ядро ​​за допомогою ланцюжка інструментів.

Тепер я не знаю, як поставити це на нову sdcard (відформатовану для нового запуску). Про що все, що я повинен подбати перед завантаженням свого стека? Оскільки я не поставив ssh або telnet-сервер / клієнт, як я можу знати, що завантаження було успішним. Де я можу отримати демона ssh / telnet для пі? Моя мета - завантажувати лише ядро ​​(або мінімальний мінімум) в Raspberry Pi.


2
Це геркуленове завдання, і я не думаю, що ви ще не маєте достатнього досвіду. Ви вважаєте, що просто налаштувати існуючий дистрибутив і заощадити 99% часу?
Thorbjørn Ravn Andersen

Я усвідомлюю, що це трохи старе, проте нещодавно я дізнався про MLL, що є ще одним способом побудови мінімальної ОС Linux. Як неофіт Linux, я виявив, що MLL сприяє навчанню процесу. Зараз я досліджую процес, за допомогою якого включати драйвери Raspberry Pi у збірку. MLL minimal.linux-bg.org/#home Удачі!
Роб

Відповіді:


9

Ядро очікує двох речей: кореневої файлової системи та initдемона, який знаходиться на ній. Ініт, що входить до програми raspbian, є системою стилю sysV . Ви не пов'язані з цим - інші системи init, які зазвичай використовуються з Linux (пам’ятайте: ядро є Linux ), є systemdі upstart- але вам потрібна якась система init.

Ви можете також помістити initв initramfs і він вбудований в ядро , в цьому випадку можна обійтися без кореневої файлової системи, але це здається безглуздим в даному випадку.

initце єдиний додаток для користувальницької програми, запущене ядром. Зазвичай він запускає процеси, які відкривають ttys з логіном, а потім інші сервіси, які можуть запустити диспетчер дисплеїв, sshd і т. Д. Можливо, вам не потрібен логін, але ви, мабуть, хочете tty; ви також можете просто запустити sshd безпосередньо замість цього.

Де я можу отримати демона ssh / telnet для пі?

Отримайте його з того самого місця, яке зробив raspbian, вихідного джерела. Жоден із цих матеріалів не був написаний спеціально для пі. Або принаймні, дуже-дуже мало цього. Він використовується у величезній кількості різноманітних систем.

Якщо ви хочете одну попередньо складену для pi ... ну, це распбіан тощо. 1

я не знаю, як поставити це на новий sdcard

Вам доведеться використовувати пі-специфічний завантажувач, який знаходиться в /bootрозділі зображення raspbian.


1. Якщо бути жорстоко чесним, я вважаю, що ви ведете масовий кіхотичний квест, який, виходячи зі знань, висловлених вашим запитанням, у вас практично не має надії на виконання цього року, якщо ви не залишите роботу та не присвятите себе навчанню на повний час, і навіть тоді ваш шанс на невдачу дуже високий, і вам знадобиться кілька місяців, щоб досягти такої точки, де у вас є шанс на успіх. Це не просто. Це не легко. Однак, навіть якщо ви не вдається, ви, напевно, навчитесь корисним речам. Однак час може бути краще витрачений на вивчення розуміння наявного дистрибутива (наприклад, raspbian) та способів його використання для створення системи домашньої автоматизації.


1
кіхотично ? Ти один із єдиних людей, яких я знаю, і які звичайно кидають виклик моєму словнику. +1 лише для цього.
Jacobm001

7

Для початку я думаю, що у вас неправильна концепція використання вбудованих комп'ютерів (особливо на рівні Raspberry Pi). Якщо ви дійсно хочете створити власну ОС, я пропоную почати з Linux з Scratch, LFS, http://www.linuxfromscratch.org/, але якщо ви хочете зрозуміти вбудовані обчислення, почніть з Googling "вбудованих систем", Wikipedia або Embedded Linux Wiki http://elinux.org/Main_Page .


1
+1 для LFS. Я хотів би зробити це в налаштуваннях крос-компіляції!
золотинки

-1

У мене була така ж проблема. Я створив колекцію скриптів оболонок саме для цієї мети.

http://www.dettus.net/detLFS


Ласкаво просимо до Raspberry Pi! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Стів Робіллард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.