Vấn đề thường gặp người dùng Ubuntu sau cài hoặc nâng cấp phiên bản mới là vấn đề âm thanh, cụ thể là vấn đề "không có âm thanh". Điều này xảy ra vì nhiều lý do. Đôi khi liên quan đến cấu hình sai cài đặt loa, hoặc phần cứng không được hỗ trợ tốt.
Đối với hầu hết mọi người, thường là vấn đề dễ giải quyết. Vì hầu hết vấn đề xuất phát từ dịch vụ chạy trên hệ thống. Bài viết này đi qua vài sửa đơn giản bạn thử. Bạn không nhất thiết thử hết. Chỉ bắt đầu từ đầu danh sách và làm xuống.
Cài Đặt Điều Khiển âm Lượng Cho PulseAudio
PulseAudio là dịch vụ âm thanh mặc định cho Ubuntu và một vài cái khác. Nó mã nguồn mở và tổng quát tin cậy, làm việc với driver ALSA và OSS đảm bảo tín hiệu âm thanh hệ thống sinh ra truyền đến loa.
Nhưng trong khi ứng dụng và môi trường máy tính để bàn đi kèm điều khiển âm lượng riêng cho PulseAudio, nó không chi tiết và không cho kiểm soát từng luồng phát lại riêng lẻ. Pavucontrol cho bạn kiểm soát hơn mỗi thiết bị âm thanh trên PC, để bạn chỉnh thanh trượt đảm bảo âm lượng loa hoặc tai nghe ở mức đúng.
Để cài pavucontrol, mở Terminal và nhập lệnh:
pulseaudio --start sudo apt install pavucontrol
Sau đó, chạy pavucontrol từ terminal hoặc tìm "PulseAudio Volume Control" trong menu khởi động môi trường máy tính để bàn. Vào tab "Output Devices" và đảm bảo loa mặc định được chọn.
Kiểm Tra Cài Đặt Loa
Khi gặp vấn đề âm thanh trên Ubuntu, điều đầu cần làm là kiểm tra tai nghe và loa cho vấn đề kết nối. Có thể cáp âm thanh cắm sai cổng hoặc không cắm.
Nếu dùng thiết bị Bluetooth, kiểm tra xem đã ghép đôi đúng chưa. Đừng quên xem điều khiển âm lượng thiết bị đảm bảo mức chấp nhận được. Bạn cũng nên xác thực âm lượng đầu ra không tắt trên máy và thiết bị đầu ra đúng được chọn.
Kiểm Tra ALSA Mixer
Dưới capa, PulseAudio dùng ALSA, module kernel điều khiển trực tiếp thiết bị âm thanh. Nếu cần kiểm soát chi tiết hơn âm lượng cấp ALSA, làm theo bước:
- Mở terminal.
- Gõ
alsamixernhấn Enter. Bạn thấy đầu ra sau trong terminal. - Chọn sound card đúng nhấn F6. Đối với tôi, mặc định ổn, nhưng thử tùy chọn khác nếu không chạy.
- Dùng left arrow và right arrow chọn điều khiển âm lượng. Mục đang chọn hiện đỏ dưới cùng.
- Dùng up arrow và down arrow tăng giảm mức âm lượng mỗi điều khiển.
- Khi điều khiển mixer bị tắt, "MM" hiện dưới thanh âm lượng. Lưu ý thanh có thể 100% nhưng vẫn tắt, nên kiểm tra. Bật tắt điều khiển nhấn m. Điều này đổi "MM" thành "OO".
- Thoát alsamixer nhấn Esc.
Lưu ý: khi tắt/bật điều khiển, pulseaudio có thể bắt nó và tắt/bật điều khiển khác. Đảm bảo xác nhận điều khiển liên quan cũng như master không tắt trước khi thoát.
Tải Lại ALSA
Điều khác thử nếu vấn đề âm thanh persists là tải lại ALSA. Làm bằng lệnh terminal:
sudo alsa force-reload
Đầu ra trông như hình sau.
Xong, nếu vẫn rắc rối âm thanh, thử
pulseaudio -k && pulseaudio -D
Bạn có thể gặp rắc rối sau tải lại ALSA nếu pulseaudio không đăng ký module đã tải lại.
Nếu vẫn không có âm thanh, thử lệnh ALSA một lần này:
alsactl restore
Cài Lại ALSA Và PulseAudio
Nếu phương pháp trên không sửa được, thử cài lại ALSA và PulseAudio như sau. Mở terminal nhập lệnh:
sudo apt remove --purge alsa-base pulseaudio sudo apt install alsa-base pulseaudio
Tải lại ALSA và reboot máy.
Khắc Phục Sự Cố Nâng Cao
Để khắc phục âm thanh sau khi hết cách, phải bẩn tay chút và vào khắc phục nâng cao:
Đầu Ra Có Thể Kích Hoạt ALSA Nhưng Không PulseAudio
Cuối cùng, nếu PulseAudio tắt đầu ra, không quan trọng ALSA nói gì. Âm thanh ra thiết bị sẽ xử lý qua ALSA nhưng không được phục vụ đến chúng qua PulseAudio.
Để vượt qua, cần ép ALSA nói với PulseAudio khi master volume dịch chuyển để đảm bảo PulseAudio theo kịp.
amixer -D pulse sset Master toggle
Thiết bị âm lượng chỉ tương tác ALSA vì lý do lạ cũng sẽ tương tác PulseAudio.
Bạn Chắc Chắn Không Chỉ Một Ứng Dụng?
Ứng dụng hành xử sai gây rắc rối hơn bạn nghĩ theo cách làm ngạc nhiên. Có thể là ứng dụng bạn không mở!
Để xem mọi thứ dùng điều khiển âm thanh, gõ:
pacmd list-sink-inputs
Để phẫu thuật hơn, gõ:
pacmd list-sink-inputs | grep application.name
Trong trường hợp tôi, như hình, Firefox là thứ duy nhất tôi nghe. Nếu dùng grep thu hẹp đầu ra terminal, dùng lệnh gốc lại và chú ý giá trị "muted:", "index:" và "volume:".
Bạn có thể đã có âm lượng trong ứng dụng nhưng nó vẫn tắt hoặc âm lượng bằng 0!
Để sửa ứng dụng tắt, gõ (thay application_index bằng số index tìm trong "index:"):
pacmd set-sink-input-mute application_index false
Để sửa ứng dụng âm lượng bất thường thấp, gõ:
pacmd set-sink-input-volume application_index 0x10000
Không Có Âm Thanh Khi Tiếp Tục Sau Ngủ/Hibernate
Đôi khi PulseAudio không muốn thức dậy cùng máy. Trong trường hợp này, chạy
pasuspender /bin/true
mang âm thanh quay từ cõi chết, nhưng đừng quá hào hứng. Điều này không sống sót reboot hoặc ngủ/hibernate khác. Làm theo mini-guide này cẩn thận để giải quyết vĩnh viễn:
- Trong terminal, gõ
sudo touch /etc/systemd/system/pulseaudio-sleep-fix@.service
tạo tệp systemd service manager.
- Mở tệp sửa:
sudo nano /etc/systemd/system/pulseaudio-sleep-fix.service
Dán (Ctrl + Shift + V cho paste terminal) này vào:
[Unit] Description=Fix PulseAudio after resume from suspend After=suspend.target [Service] User=%I Type=oneshot Environment="XDG_RUNTIME_DIR=/run/user/%U" ExecStart=/usr/bin/pasuspender /bin/true [Install] WantedBy=suspend.target
- Nhấn Ctrl + X thoát và Y trong lời nhắc lưu buffer sửa.
- Gõ sau để đăng ký systemd service.
sudo systemctl enable pulseaudio-sleep-fix@your_username.service
Nhớ thay your_username bằng giá trị phù hợp.
Bạn Có Chạy Timidity Không?
Nếu chạy gói timidity trên Ubuntu (kiểm tra chạy apt search timidity và xem [installed] cuối entry phù hợp), bạn có thể gặp vấn đề chạy PulseAudio với nó do cách xử lý âm thanh kỳ lạ.
Để timidity chạy đúng, bắt đầu thêm vào autostart (đôi khi gọi Startup Applications trong môi trường như GNOME) và sửa lệnh chạy ứng dụng thành:
timidity -iA -Os
Tiến xa hơn, gõ sau thêm root vào nhóm pulse-access
sudo usermod -a -G pulse-access root
Sau reboot, âm thanh nên chạy ổn. Nếu vẫn fail, giải pháp duy nhất khác là gỡ timidity khỏi Ubuntu.
Bây giờ bạn có service chạy chỉ khi resume sau ngủ, tắt ngay sau khi xong việc tránh thêm bloat.
Câu Hỏi Thường Gặp
1. Có thể xóa ALSA giữ PulseAudio không?
Cẩn trọng cực kỳ ở đây! PulseAudio cần module âm thanh cấp kernel để chạy. Nếu bạn dự định thay ALSA bằng cái khác chạy cấp kernel (như Open Sound System), thì cứ tiến hành. Quy trình phức tạp hơn thay module kernel Realtek cho mạng, nên nhận ra bạn có thể ngồi rất lâu gỡ rối.
2. PulseAudio có thay thế không?
Có! Thay thế phổ biến (và khả thi, nếu dùng máy tính để bàn) cho PulseAudio là PipeWire. Nó chứa hỗ trợ tích hợp tốt hơn thiết bị Bluetooth và cải thiện cách PulseAudio xử lý lấy mẫu và hậu xử lý. Nhiều distro hiện cung cấp trong kho chính thức, và độ ổn định cải thiện đáng kể năm gần đây.
Nếu muốn thiết lập âm thanh chuyên nghiệp hơn, bạn có thể chọn JACK.
3. Có thể chạy PulseAudio cùng dịch vụ khác không?
Mặc dù một số dịch vụ có thư viện và tùy chọn thiết lập làm PulseAudio chạy cùng, khuyên cao dùng một dịch vụ trên hệ thống tại một thời điểm. Hầu hết dịch vụ chỉ cạnh tranh với PulseAudio cho ứng dụng hệ thống, gây hành vi không dự đoán. Những cái khác đơn giản không chạy nếu không gỡ PulseAudio hoàn toàn. (PipeWire dùng dịch vụ pipewire-pulse, thay thế pulseaudio.)
Hy vọng lời khuyên ở đây giúp âm thanh chạy lại trên Ubuntu, để bạn tận hưởng hệ điều hành. Bạn đã thử biến trang web thành app trên Linux và cast màn hình Android lên Linux?