Bagaimana cara meningkatkan Waktu Boot Raspberry Pi?

15

Saya membuat alat rumah yang digunakan sebagai Raspberry Pi secara internal untuk menangani antarmuka pengguna dan koneksi WiFi yang diperlukan. Terhubung ke R-Pi Saya memiliki layar LCD AdaFruit:

Adafruit LCD

dan dongle USB Wifi:

USB dongle WiFi

Dan juga keyboard. Tidak ada lagi. Sistem Operasi adalah OpenElec , yang merupakan sistem operasi yang cukup ramping.

Namun, ketika pengguna menyalakan perangkat, R-Pi membutuhkan beberapa detik sebelum dapat menerima input pengguna.

Mengapa perlu waktu lama jika boot dari flash? Puluhan detik sepertinya banyak perhitungan.

Adakah yang bisa dilakukan untuk membuat boot Raspberry Pi dalam waktu kurang dari 5 detik? Bisakah mereka masuk ke mode hibernasi di mana ia menulis RAM-nya ke FLASH, lalu membacanya kembali saat dihidupkan?

Kalau tidak, apakah ada alternatif untuk Raspberry-Pi, dengan kemampuan serupa (layar LCD kecil, USB untuk dongle WiFi), yang bisa boot di bawah 5 detik?

Roket
sumber
Pertanyaan yang bagus, apakah Anda bisa menempelkan log boot dan menautkannya? Tidak bisa berbuat banyak tanpa mengetahui apa yang dilakukannya selama boot;)
MDMoore313
2
Apa itu booting? Apakah Anda menjalankan OS minimal dan melepasnya ke tulang telanjang - tanpa desktop, dll ??
Scott Seidman
2
@ScottSeidman - Menambahkan OpenElec ke pertanyaan saya.
1
Saya setuju dengan @BigHomie. Sangat tidak mungkin untuk menyarankan perbaikan apa pun tanpa melihat apa yang terjadi selama boot-up.
1
@NickAlexeev - Aah, masalah Stackexchanges lama yang tumpang tindih. Saya kira semua pertanyaan R-Pi akan menjadi topik di sana.

Jawaban:

13

Saya belum pernah bekerja dengan Raspberry Pi, tetapi saya telah mengurangi waktu boot dengan sistem Linux yang tertanam jadi saya punya beberapa jawaban umum.

1) OpenElec mungkin merupakan distro tertanam yang dapat dikerjakan dengan sempurna, tetapi distro pemula / demo cenderung membuang di wastafel dapur untuk memberikan Anda luasnya kemampuan, tetapi itu sering berarti ada layanan mulai yang tidak Anda butuhkan. Jadi lihat di direktori init dan matikan atau menunda sesuatu yang tidak penting untuk tujuan Anda. Jika Anda tidak memerlukan grafis apa pun, pada sistem yang lebih lambat, X windows atau proses grafis dapat menjadi babi waktu nyata. Tidak harus karena itu tidak dapat menghasilkan gambar secara memadai, tetapi mendapatkan semua perpustakaan dimuat ke dalam memori membutuhkan waktu. Dan itu membutuhkan waktu dari memuat ketika segala sesuatu yang Anda inginkan juga memuat atau menunggu untuk memuat.

2) Kartu SD memiliki kecepatan baca yang berbeda, beli yang tercepat yang dapat ditangani perangkat. Atau mungkin melihat apakah stik USB akan memuat lebih cepat. Anda mungkin tidak akan membutuhkan kartu 40Mb / s, tetapi beralih dari kartu SD cheapie ke kartu yang dapat menangani transfer 10Mb / s dapat membuat perbedaan - lagi tergantung pada kartu SD apa yang dapat ditangani oleh Pi). Sebagai garis singgung: menjalankan kartu SD jika sistem file dapat ditulisi tidak bagus untuk stabilitas jangka panjang. Jika Anda membutuhkannya, Anda mungkin perlu mempertimbangkan untuk mengonfigurasi pengaturan boot Anda agar memperlakukan kartu sebagai hanya-baca atau, membuat pengaturan sistem lain sepenuhnya.

3) Jika Anda benar-benar membutuhkan grafik, ilusi untuk boot kadang-kadang lebih mudah untuk dicapai daripada benar-benar 100% siap untuk input apa pun. Ada konsol program boot splash screen yang dapat memunculkan grafik dengan sangat cepat sementara semua layanan lain yang Anda perlukan mulai. Saya telah melihat contoh di mana grafik panel kontrol awal digunakan sebagai layar boot statis yang diganti untuk yang berfungsi langsung ketika sistem siap - pengguna jarang benar-benar ingin memasukkan data dalam 2-3 detik dari layar yang menunjukkan naik.

Jika Anda masih mencari waktu boot yang lebih cepat, lihat di sini untuk daftar area yang perlu dilihat.


sumber
2
Terutama berkonsentrasi pada poin 2. Boot kernel dan skrip init masing-masing memakan waktu sekitar 30: 70%. Kernel kustom akan memulai sekitar 40% lebih cepat, skrip startup kustom dapat meningkatkan 90% pada aslinya, yang berarti Anda dapat dengan mudah membagi waktu startup.
SF.
Anda benar sekali, saya bertukar # 1 dan # 2 karena saya akan menghabiskan waktu dengan skrip init sebelum hal lain.
8

Mengapa perlu waktu lama jika boot dari flash?

Sebagian dari jawabannya mungkin merupakan masalah throughput belaka. Sementara Kartu SD menggunakan penyimpanan flash NAND, mereka hanya dapat mengirimkan data secara seri. Dibandingkan dengan, katakanlah, chip flash NAND yang disolder ke papan yang dapat berkomunikasi dengan CPU secara langsung dengan bus paralel. Tingkat transfer keseluruhan akan secara kasar tergantung pada beberapa hal seperti kecepatan jam bus dan ukuran file yang Anda transfer.

Kecepatan transfer kartu SD sebenarnya cukup rendah dibandingkan dengan SATA III modern atau hard drive SATA II. Pendek dari port SATA, USB 3.0 adalah alternatif lain yang memiliki tingkat transfer yang cukup tinggi dengan biaya yang relatif rendah.

Informasi lebih lanjut dapat ditemukan di sini , di sini , dan di sini .

Adakah yang bisa dilakukan untuk membuat boot Raspberry Pi dalam waktu kurang dari 5 detik?

CPU yang digunakan Pi cukup low-end (karenanya harganya). Ini berarti bahwa tidak ada antarmuka berkecepatan tinggi seperti SATA atau USB 3.0. Pendeknya emulasi perangkat lunak dari protokol-protokol ini (yang kemungkinan juga akan menderita masalah throughput besar) tidak ada banyak yang bisa dilakukan selain memangkas lemak dari OS.

Bisakah mereka masuk ke mode hibernasi di mana ia menulis RAM-nya ke FLASH, lalu membacanya kembali saat dihidupkan?

Menurut OpenElec, Pi tidak mendukung hibernasi , tetapi jika Anda membaca sedikit lebih jauh ke bawah, mereka memiliki beberapa saran tentang cara mempercepat Pi Anda .

David Freitag
sumber
3

Secara umum, membaca dari SD sangat lambat sehingga mempengaruhi secara drastis.

Cobalah bootchart dan cari tahu apakah ada gunanya untuk meningkatkan waktu boot.

Atau, Anda dapat mengkonfigurasi kernel Anda sendiri sehingga memiliki ukuran yang sangat kecil. Atau, melewatkan beberapa inisialisasi yang tidak perlu (terlihat aneh atau sesuatu) dapat membantu.

Kim Younggun
sumber