Come creare un sistema operativo personalizzato per Raspberry Pi da zero?


10

Sono nuovo del kernel e di Linux incorporato. Di recente ho acquistato un Raspberry Pi e l'ho avviato utilizzando Raspbian. Sono stato affascinato dal Pi, per saperne di più su Embedded ho deciso di realizzare un sistema di automazione domestica. Volevo usare il mio kernel e stack. cioè non voglio usare nessuno del sistema operativo.

Per questo ho scaricato Kernel, target_fs, firmware e catena di strumenti dal github ufficiale. Ho compilato il kernel usando la catena di strumenti.

Ora non so come inserirlo in una nuova sdcard (formattata per un nuovo inizio). Cosa devo fare prima di avviare il mio stack? Dal momento che non ho inserito server / client ssh o telnet, come posso sapere se l'avvio è andato a buon fine. Dove posso trovare un demone ssh / telnet per il pi? Il mio obiettivo è di avviare solo il kernel (o il minimo indispensabile) in Raspberry Pi.


2
Questo è un compito erculeo e non credo che tu abbia ancora abbastanza esperienza. Considerato solo la regolazione di una distribuzione esistente e risparmi il 99% delle volte?
Thorbjørn Ravn Andersen,

Mi rendo conto che questo è un po 'vecchio, tuttavia di recente ho imparato a conoscere MLL, che è un altro modo per creare un sistema operativo Linux minimo. Come neofita di Linux, ho trovato MLL fondamentale per l'apprendimento del processo. Attualmente sto studiando il processo con cui includere i driver Raspberry Pi nella build. MLL minimal.linux-bg.org/#home Buona fortuna!
Rob,

Risposte:


9

Il kernel si aspetta due cose: un filesystem di root e un initdemone che risiede su di esso. L'init incluso in raspbian è un sistema in stile sysV . Non siete legati a questo - altri sistemi init comunemente usati con Linux (ricordate: il kernel è linux ) lo sono systemde upstart- ma avete bisogno di un sistema init di qualche tipo.

Puoi anche inserire initun initramfs e averlo incorporato nel kernel , nel qual caso potresti scappare senza un filesystem di root, ma in questo caso sembra inutile.

initè l'unica applicazione userland avviata dal kernel. Normalmente, quindi avvia processi che aprono ttys con un login e quindi altri servizi che possono avviare un display manager, sshd, ecc. Potrebbe non essere necessario il login, ma probabilmente si desidera tty; puoi anche semplicemente avviare sshd direttamente invece.

Dove posso trovare un demone ssh / telnet per il pi?

Ottienilo dallo stesso posto che ha fatto raspbian, la fonte a monte. Nessuna di queste cose è stata scritta appositamente per il pi. O almeno, molto poco. È stato utilizzato su una grande varietà di sistemi diversi.

Se vuoi uno pre-compilato per il pi ... beh, questo è raspbian, ecc. 1

non so come inserirlo in una nuova sdcard

Dovrai utilizzare il bootloader specifico per pi che si trova nella /bootpartizione dell'immagine raspbian.


1. Ad essere brutalmente onesto, penso che tu stia intraprendendo una ricerca massicciamente donchisciottesca che, in base alle conoscenze implicite nella tua domanda, non hai praticamente alcuna speranza di realizzare quest'anno se non lasci il tuo lavoro e ti dedichi all'apprendimento a tempo pieno, e anche allora la tua possibilità di fallimento è molto alta e ci vorranno mesi per raggiungere un punto in cui hai qualche possibilità di successo. Non è semplice Non è facile. Detto questo, anche se fallisci, probabilmente imparerai alcune cose utili lungo la strada. Tuttavia, il tempo potrebbe essere speso meglio imparando a comprendere una distribuzione esistente (come raspbian) e come usarlo per creare il tuo sistema di automazione domestica.


1
donchisciottesco ? Sei una delle uniche persone che conosco che sfidano abitualmente il mio vocabolario. +1 solo per quello.
Jacobm001

7

Per iniziare, penso che tu abbia il concetto sbagliato di usare i computer embedded (specialmente a livello di Raspberry Pi). Se vuoi davvero costruire un sistema operativo personalizzato ti suggerisco di iniziare da Linux da Scratch, LFS, http://www.linuxfromscratch.org/ ma se vuoi capire il calcolo embedded inizia con google "sistemi incorporati", Wikipedia o Embedded Linux Wiki http://elinux.org/Main_Page .


1
+1 per LFS. Vorrei farlo in un ambiente di compilazione incrociata!
Riccioli d'oro

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.