Bagaimana cara memuat modul saat boot?

32

Sebagaimana dinyatakan dalam Mengapa Output Audio (Suara) saya tidak berfungsi? , untuk menginisialisasi driver suara, Anda harus menjalankan sudo modprobe snd_bcm2835setiap kali Anda ingin mengeluarkan suara.

Bagaimana cara menjalankan ini saat boot? (yaitu sebelum masuk dan tanpa input)

Alex Chamberlain
sumber
1
Ini adalah pertanyaan lain yang bisa dianggap di luar topik. Mungkin lebih cocok untuk U&L .
Jivings
2
@Jivings: Hanya karena topik itu ada di Unix & Linux tidak menjadikannya di luar topik untuk Raspberry Pi , bukan?
Der Hochstapler
2
@ OliverSalzburg: Saya pikir ada terlalu banyak tumpang tindih dalam pertanyaan khusus ini. Tidak ada tentang pertanyaan ini yang membuatnya spesifik untuk Raspberry Pi.
Jivings
1
Tidakkah keputusan di meta.raspberrypi.stackexchange.com/questions/24/… berarti bahwa pertanyaan ini baik-baik saja di sini?
Graham Taruhan
1
@Jivings Terima kasih, hanya ingin menjelaskan bahwa untuk setiap pengunjung di masa depan karena komentar menunjuk ke arah penutupan pertanyaan. Mungkin semua komentar harus dihapus?
Graham Taruhan

Jawaban:

24

Memuat modul saat boot sedikit berbeda dengan menjalankan perintah startup.

Dalam Debian:

Tambahkan nama modul sebagai baris baru di /etc/modules

Di Arch Linux:

Tambahkan nama modul ke array modul di /etc/rc.conf, baris akan terlihat seperti ini:

modules=(snd_bcm2835)

Atau untuk konfigurasi systemd baru:

echo "snd_bcm2835" | sudo tee -a /etc/modules-load.d/snd_bcm2835.conf
Jivings
sumber
Saya menambahkan snd_bcm2835ke /etc/modulesfile di Xbian saya tetapi itu membuat loop pada saat boot. ini sepertinya tidak diizinkan ketika memulai OSMC
rubo77
@ rubo77 Menarik! Apakah Anda sampai ke dasarnya?
Jivings
Tidak yakin. Mungkin itu kebetulan. Seluruh instalasi tampaknya agak rusak sekarang ...
rubo77
14

Modprobe saat Boot - Debian

Untuk menjawab pertanyaan spesifik tentang sudo modprobe snd_bcm2835, tambahkan modul /etc/modulesdan reboot. (Anda harus rootmelakukan ini.)

Memulai layanan - Debian

Debian menggunakan skrip init untuk menginisialisasi sistem, dan Anda dapat menggunakannya untuk menjalankan perintah sewenang-wenang. Anda perlu menginstal skrip yang mirip dengan yang berikut di /etc/init.d.

#! /bin/sh
# /etc/init.d/blah
#

# Some things that run always
touch /var/lock/blah

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting script blah "
    echo "Could do more here"
    ;;
  stop)
    echo "Stopping script blah"
    echo "Could do more here"
    ;;
  *)
    echo "Usage: /etc/init.d/blah {start|stop}"
    exit 1
    ;;
esac

exit 0

Anda harus memastikan itu bisa dijalankan dan dimiliki oleh root.

sudo chmod 755 /etc/init.d/blah
sudo chown root:root /etc/init.d/blah

Maka Anda perlu mendaftarkannya untuk dijalankan saat startup.

sudo update-rc.d blah defaults

Referensi

Alex Chamberlain
sumber
1
Tidak satu pun dari hal-hal ini yang unik untuk Debian. Juga, skrip init bukan yang seharusnya Anda gunakan untuk memuat modul. Hanya bagian pertama yang relevan dengan pertanyaan.
Jivings
Tak satu pun dari mereka akan bekerja di Arch, tidak yakin tentang QtonPi.
Alex Chamberlain
Tentu saja mereka akan melakukannya.
Jivings
Oh ... mengapa jawaban Arch Anda berbeda?
Alex Chamberlain
Karena Arch mendefinisikan abstraksi yang berguna untuk acara startup.
Jivings
3

Ada banyak cara menjalankan perintah saat start-up di Linux tetapi pendekatan yang saya sukai adalah membuat skrip inisialisasi /etc/init.ddan mendaftarkannya menggunakan update-rc.d. Dengan cara ini aplikasi dimulai dan berhenti secara otomatis ketika sistem melakukan boot / shutdown.

Lihat posting ini untuk serangkaian instruksi tentang cara membuatnya di Raspberry Pi.

Martin O'Hanlon
sumber
1
Selamat datang di Raspberry Pi Beta! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Der Hochstapler
Bagaimana Anda melakukannya melalui systemdatau sistem lain?
ArchHaskeller
0

Pendekatan pilihan saya adalah menambahkan perintah pengaturan ke /etc/rc.local di mana ia akan diinisialisasi pada akhir boot, sebelum Anda diminta untuk masuk.

Theoremiser
sumber