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.


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.


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 .


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.