Bagaimana membangun OS khusus untuk Raspberry pi dari awal?

10

Saya baru mengenal kernel dan embedded Linux. Saya baru saja membeli Raspberry Pi dan mem-boot-nya menggunakan Raspbian. Saya terpesona oleh Pi, untuk mempelajari lebih lanjut tentang Tertanam Saya telah memutuskan untuk membuat sistem otomasi rumah. Saya ingin menggunakan kernel saya sendiri, dan stack. yaitu saya tidak ingin menggunakan OS.

Untuk itu saya mengunduh Kernel, target_fs, firmware, dan rantai alat dari github resmi. Saya telah mengkompilasi kernel menggunakan rantai-alat.

Sekarang saya tidak tahu bagaimana cara memasukkan ini ke kartu sd baru (diformat untuk awal yang baru). Apa semua hal yang harus saya perhatikan sebelum mem-boot stack saya? Karena saya belum meletakkan ssh atau telnet server / Client, bagaimana saya bisa tahu boot berhasil. Di mana saya bisa mendapatkan daemon ssh / telnet untuk pi? Tujuan saya adalah hanya mem-boot kernel (atau minimum) di Raspberry Pi.

CenTauR
sumber
2
Ini adalah tugas yang sangat besar dan saya pikir Anda belum memiliki pengalaman yang cukup. Dianggap hanya menyesuaikan distribusi yang ada dan menghemat 99% dari waktu?
Thorbjørn Ravn Andersen
Saya menyadari ini agak lama, namun saya baru-baru ini belajar tentang MLL, yang merupakan cara lain untuk membangun os Linux minimal. Sebagai seorang neophite Linux sendiri, saya menemukan MLL berperan dalam mempelajari prosesnya. Saat ini saya sedang meneliti proses untuk memasukkan driver Raspberry Pi dalam pembuatan. MLL minimal.linux-bg.org/#home Semoga sukses!
Rob

Jawaban:

9

Kernel mengharapkan dua hal: sistem file root, dan initdaemon yang berada di dalamnya. Init yang disertakan dengan raspbian adalah sistem gaya sysV . Anda tidak terikat dengan itu - sistem init lain yang biasa digunakan dengan linux (ingat: kernel adalah linux ) adalah systemddan upstart- tetapi Anda memang membutuhkan semacam sistem init.

Anda juga dapat memasukkan initramfs dan memasangnya initdi kernel , sehingga Anda bisa lolos tanpa sistem file root, tetapi hal itu sepertinya tidak ada gunanya dalam kasus ini.

initadalah satu-satunya aplikasi userland yang dimulai oleh kernel. Biasanya, ini akan memulai proses yang membuka ttys dengan login, dan kemudian layanan lain yang dapat memulai manajer tampilan, sshd, dll. Anda mungkin tidak memerlukan login, tetapi Anda mungkin menginginkan tty; Anda juga bisa langsung memulai sshd sebagai gantinya.

Di mana saya bisa mendapatkan daemon ssh / telnet untuk pi?

Dapatkan dari tempat yang sama dengan raspbian, sumber hulu. Tidak satu pun dari hal ini ditulis khusus untuk pi. Atau setidaknya, sangat sedikit. Ini telah digunakan pada berbagai macam sistem yang berbeda.

Jika Anda menginginkan satu pra-kompilasi untuk pi ... yah, itu raspbian, dll. 1

saya tidak tahu bagaimana memasukkan ini ke kartu sd baru

Anda harus menggunakan bootloader khusus pi yang ada di /bootpartisi gambar raspbian.


1. Sejujurnya secara brutal, saya pikir Anda sedang melakukan pencarian besar-besaran quixotic yang, berdasarkan pengetahuan yang tersirat oleh pertanyaan Anda, Anda hampir tidak memiliki harapan untuk mencapai tahun ini kecuali Anda berhenti dari pekerjaan Anda dan mengabdikan diri Anda untuk belajar penuh waktu, dan bahkan saat itu peluang kegagalan Anda sangat tinggi dan Anda akan membutuhkan waktu berbulan - bulan untuk mencapai titik di mana Anda memiliki peluang untuk berhasil. Itu tidak sederhana. Ini tidak mudah. Yang mengatakan, bahkan jika Anda gagal, Anda mungkin akan belajar beberapa hal yang bermanfaat di sepanjang jalan. Namun, waktu mungkin lebih baik dihabiskan belajar untuk memahami distribusi yang ada (seperti raspbian) dan bagaimana menggunakannya untuk membuat sistem otomasi rumah Anda.

goldilocks
sumber
1
pemurah ? Anda adalah satu-satunya orang yang saya kenal yang secara rutin menantang kosa kata saya. +1 untuk itu saja.
Jacobm001
7

Untuk memulai, saya pikir Anda memiliki konsep yang salah menggunakan komputer tertanam (terutama di tingkat Raspberry Pi). Jika Anda benar-benar ingin membangun OS khusus, saya sarankan Anda mulai di Linux dari Scratch, LFS, http://www.linuxfromscratch.org/ tetapi jika Anda ingin memahami komputasi tertanam, mulailah dengan Googling "embedded system", Wikipedia, atau Embedded Linux Wiki http://elinux.org/Main_Page .

Joe Zilch
sumber
1
+1 untuk LFS. Saya ingin melakukan itu dalam pengaturan lintas-kompilasi!
goldilocks
-1

Saya memiliki masalah yang sama. Saya membuat koleksi skrip shell, untuk tujuan itu.

http://www.dettus.net/detLFS

Thomas Dettbarn
sumber
Selamat datang di Raspberry Pi! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Steve Robillard