Làm cách nào để tải mô-đun khi khởi động?


32

Như đã nêu trong Tại sao Đầu ra Âm thanh (Âm thanh) của tôi không hoạt động? , để khởi chạy trình điều khiển âm thanh, bạn phải chạy sudo modprobe snd_bcm2835mỗi khi bạn muốn phát âm thanh.

Làm thế nào để tôi có được điều này để chạy trên boot? (tức là trước khi đăng nhập và không có bất kỳ đầu vào nào)


1
Đây là một câu hỏi khác có thể được coi là lạc đề. Nó có thể được phù hợp tốt hơn để U & L .
Jivings

2
@Jivings: Chỉ vì nó thuộc chủ đề trên Unix & Linux mà không biến nó thành chủ đề cho Raspberry Pi , phải không?
Der Hochstapler

2
@OliverSalzburg: Tôi nghĩ rằng có quá nhiều sự trùng lặp trong câu hỏi cụ thể này. Không có gì về câu hỏi này làm cho nó cụ thể cho Raspberry Pi.
Jivings

1
Quyết định tại meta.raspberrypi.stackexchange.com/questions/24/ có nghĩa là câu hỏi này có ổn ở đây không?
Graham Wager

1
@Jivings Cảm ơn, chỉ muốn làm rõ điều đó cho bất kỳ khách truy cập nào trong tương lai khi các bình luận đang hướng tới việc đóng câu hỏi. Có lẽ tất cả các ý kiến ​​nên được xóa thay thế?
Graham Wager

Câu trả lời:


24

Tải các mô-đun khi khởi động hơi khác một chút so với chạy các lệnh khởi động.

Trong Debian:

Thêm tên mô-đun như một dòng mới trong /etc/modules

Trong Arch Linux:

Thêm tên mô-đun vào mảng mô-đun /etc/rc.conf, dòng sẽ như thế này:

modules=(snd_bcm2835)

Hoặc cho cấu hình systemd mới:

echo "snd_bcm2835" | sudo tee -a /etc/modules-load.d/snd_bcm2835.conf

Tôi đã thêm snd_bcm2835vào /etc/modulestập tin trên Xbian của tôi nhưng điều đó đã tạo ra một vòng lặp lúc khởi động. điều này dường như không được phép khi bắt đầu OSMC
rubo77

@ rubo77 Thú vị! Bạn đã đến đáy của nó?
Jivings

Không chắc. Có lẽ đó là một sự trùng hợp. Toàn bộ quá trình cài đặt có vẻ hơi bị hỏng bây giờ ...
rubo77

14

Modprobe khi khởi động - Debian

Để trả lời câu hỏi cụ thể về sudo modprobe snd_bcm2835, hãy thêm mô-đun vào /etc/modulesvà khởi động lại. (Bạn sẽ cần phải rootlàm điều này.)

Dịch vụ khởi đầu - Debian

Debian sử dụng initscripts để khởi tạo hệ thống và bạn có thể sử dụng chúng để chạy các lệnh tùy ý. Bạn cần cài đặt một tập lệnh tương tự như sau /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

Bạn nên đảm bảo nó có thể chạy được và được sở hữu bởi root.

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

Sau đó, bạn cần phải đăng ký nó để chạy khi khởi động.

sudo update-rc.d blah defaults

Tài liệu tham khảo


1
Cả hai thứ này đều là duy nhất cho Debian. Ngoài ra, init script không phải là thứ bạn nên sử dụng để tải các mô-đun. Chỉ có phần đầu tiên có liên quan đến câu hỏi.
Jivings

Không ai trong số họ sẽ làm việc trên Arch, không chắc chắn về QtonPi.
Alex Chamberlain

Tất nhiên họ sẽ.
Jivings

Oh ... tại sao câu trả lời Arch của bạn lại khác?
Alex Chamberlain

Bởi vì Arch định nghĩa một sự trừu tượng tiện dụng cho các sự kiện khởi động.
Jivings

3

Có rất nhiều cách để chạy một lệnh khi khởi động trong Linux nhưng cách tiếp cận ưa thích của tôi là tạo một tập lệnh khởi tạo /etc/init.dvà đăng ký sử dụng nó update-rc.d. Bằng cách này, ứng dụng được khởi động và dừng tự động khi hệ thống khởi động / tắt máy.

Xem bài đăng này để biết một bộ hướng dẫn về cách tạo một cái trên Raspberry Pi.


1
Chào mừng bạn đến với Raspberry Pi Beta! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Der Hochstapler

Làm thế nào bạn sẽ làm điều đó thông qua systemdhoặc các hệ thống khác?
ArchHaskeller

0

Cách tiếp cận ưa thích của tôi sẽ là thêm lệnh thiết lập vào /etc/rc.local nơi nó sẽ được khởi tạo ở cuối boot, trước khi bạn được yêu cầu đăng nhập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.