ویرگول
ورودثبت نام
Farhad Fallahi
Farhad Fallahiیک برنامه نویس فرانت اند که به دنبال تکلونوژی های جذاب Js هستش :)
Farhad Fallahi
Farhad Fallahi
خواندن ۲ دقیقه·۲ ماه پیش

رفع مشکل خش‌خش و قطع‌ووصل صدا در لینوکس (Pop!_OS با سخت‌افزار AMD)


مقدمه

اگر از لینوکس (مثل Pop!_OS یا Arch) روی لپ‌تاپی با سخت‌افزار AMD (مثل HP 255 G8 با Ryzen 3 3300U) استفاده می‌کنید و موقع پخش آهنگ یا فیلم با خش‌خش، پت‌پت، یا قطع‌ووصل صدا مواجه شدید، این مقاله برای شماست! من این مشکل رو داشتم و با چند قدم ساده تونستم صدامو کامل درست کنم. این راهنما خلاصه‌ای از راه‌حل‌هاییه که با کمک Grok (هوش مصنوعی xAI) پیدا کردم و روی Pop!_OS 22.04 با کارت صوتی Realtek ALC236 و گرافیک AMD Vega 6 جواب داد.

مشکل

هر بار که سیستم بوت می‌شد، صدا خش‌خش یا پت‌پت (قطع‌ووصل لحظه‌ای) داشت. این مشکل تو پخش آهنگ، فیلم، یا حتی تست ساده با speaker-test دیده می‌شد. جالب اینجاست که تو ویندوز هیچ مشکلی نبود! مشخصات سیستم من:

- مدل: HP 255 G8 Notebook PC

- پردازنده: AMD Ryzen 3 3300U with Radeon Vega Mobile Gfx

- گرافیک: AMD Radeon Vega 6

- رم: 16GB

- سیستم‌عامل: Pop!_OS 22.04 LTS (64-bit)

- صدا: PipeWire (روی PulseAudio) با کارت صوتی Realtek ALC236

مشکل اصلی به خاطر ناهماهنگی PipeWire موقع بوت بود که قبل از لود کامل درایورهای صوتی (ALSA) استارت می‌کرد.

راه‌حل‌ها

این قدم‌ها مشکل رو کامل حل کرد. از ساده‌ترین شروع کنید و بعد از هر قدم تست کنید، مثل دستور زیر:

speaker-test -c 2 -t sine -f 440

وقتی دستور بالا رو در ترمینال وارد کردید، تست صدا فعال میشه(اگه پکیج speaker-test را نصب کرده باشید) و اون موقع اگه صدای خش خش و پت پت یا صدا شفاف نبود مراحل رو دنبال کنید:

۱. ری‌استارت سرویس‌های PipeWire

چرا؟ گاهی PipeWire موقع بوت درست لود نمی‌شه و ری‌استارت دستی مشکل رو موقتاً حل می‌کنه.

دستور:

systemctl --user restart pipewire pipewire-pulse wireplumber

نتیجه: این کار خش‌خش و پت‌پت رو موقتاً برطرف کرد، ولی باید خودکار می‌شد.

  • اگه با این دستور هم مشکل صدا برطرف نشد، احتمال داره که مشکل صدا از سخت افزاری باشه

۲. خودکارسازی ری‌استارت PipeWire موقع بوت

برای اینکه نیازی به دستور دستی نباشه، یه سرویس systemd ساختیم که ۵ ثانیه بعد از بوت، PipeWire رو ری‌استارت کنه:

mkdir -p ~/.config/systemd/user/ nano ~/.config/systemd/user/fix-audio-startup.service

محتوایی که در داخل این فایل قرار میدید:

[Unit] Description=Fix audio services on startup After=pipewire.service pipewire-pulse.service wireplumber.service [Service] Type=oneshot ExecStart=/bin/sleep 5 ExecStart=/usr/bin/systemctl --user restart pipewire pipewire-pulse wireplumber RemainAfterExit=yes [Install] WantedBy=default.target

و بعد دوباره فعال سازی کنید:

systemctl --user enable fix-audio-startup.service systemctl --user start fix-audio-startup.service

سپس سیستم را مجدداْ راه اندازی کنید و دوباره تست صدا انجام بدید.

نتیجه: این سرویس مشکل لود نادرست PipeWire موقع بوت رو حل کرد.


باز هم اگر سوالی چیزی داشتید یا جایی به مشکل بر خوردید توی کامنت ها بهم بگید.

صداlinux
۰
۰
Farhad Fallahi
Farhad Fallahi
یک برنامه نویس فرانت اند که به دنبال تکلونوژی های جذاب Js هستش :)
شاید از این پست‌ها خوشتان بیاید