Linux: snd_bcm2835 و Pulseaudio 5 لا يتوافقان

تم إنشاؤها على ١٤ سبتمبر ٢٠١٤  ·  43تعليقات  ·  مصدر: raspberrypi/linux

لدي صوت غير موثوق به على نظام مثبت عليه Pulseaudio 5.0.
يبدو أنه عند تثبيت Pulseaudio ، وانتهاء أحد التطبيقات من تشغيل الصوت ، لا يغلق Pulseaudio جهاز الصوت على الفور ، ولكنه ينتظر 5 ثوانٍ.
إذا ظهر تطبيق آخر يريد تشغيل الصوت خلال ذلك الوقت ، فإنه يعيد استخدام نفس الاتصال.
ومع ذلك ، يبدو أن هذا لا يعمل بشكل صحيح على Pi.

إذا فعلت:

aplay /usr/share/sounds/alsa/Front_Center.wav ; sleep 4 ; aplay /usr/share/sounds/alsa/Front_Center.wav

يتم تشغيل الملف بشكل صحيح في المرة الأولى ، ولكن في المرة الثانية لا يوجد صوت ، ولا ينتهي البرنامج من التنفيذ.
إنها تطبع فقط "تشغيل WAVE '/usr/share/sounds/alsa/Front_Center.wav': توقيع 16 بت Little Endian ، معدل 48000 هرتز ، أحادي ، ويجلس هناك.
لا تحدث المشكلة عند النوم لمدة 5 ثوان على الأقل.

لا توجد فكرة عن كيفية تصحيح هذا ، وإذا كانت المشكلة في وحدة ALSA أو في Pulseaudio.
ولكن هنا هو إخراج bcm2835_snd مع تمكين التصحيح في حال كان ذلك مفيدًا لأي شخص: https://paste.ee/r/soht7

كان قادرًا على إعادة إظهار المشكلة مع كل من توزيعة Linux المخصصة لدي ، ومع نظام Arch Linux (تم تثبيت Pulse مع: "pacman -Sy pulseaudio pulseaudio-alsa alsa-utils؛ pulseaudio --start")
لا يبدو أنه يحدث مع الإصدارات القديمة جدًا من Pulse ، مثل الإصدار 2.0 الذي تحصل عليه عند تثبيته من خلال Raspbian.

Bug

التعليق الأكثر فائدة

لا يزال Pulseaudio لا يعمل مع snd_bcm2835. هل يمكنك إعادة فتح هذه المشكلة من فضلك؟

ال 43 كومينتر

أواجه مشكلة مماثلة مع Pulseaudio 6.0. يميل Pulseaudio إلى عدم اللعب على الإطلاق ، أو الإغلاق بعد بضع دقائق من التشغيل. أيضًا باستخدام Arch Linux. لقد جربت وضع المستخدم (يعمل كجذر) بالإضافة إلى وضع النظام ، حيث قمت بإعداد Pi بدون رأس.

التالي هو الخطأ المطبوع بواسطة Pulseaudio كلما توقف (بعد حوالي دقيقة أو دقيقتين من التشغيل ، عادة)

E: [alsa-sink-bcm2835 ALSA] alsa-sink.c: ALSA أيقظنا لكتابة بيانات جديدة على الجهاز ، ولكن في الواقع لم يكن هناك شيء نكتبه!
E: [alsa-sink-bcm2835 ALSA] alsa-sink.c: على الأرجح هذا خطأ في برنامج تشغيل ALSA '(فارغ)'. الرجاء الإبلاغ عن هذه المشكلة لمطوري ALSA.
E: [alsa-sink-bcm2835 ALSA] alsa-sink.c: لقد استيقظنا مع مجموعة POLLOUT - ولكن snd_pcm_avail () اللاحق أعاد 0 أو قيمة أخرى <min_avail.

أنا أيضًا أواجه مشكلات فظيعة مع bcm2835 والنبض 6.
إذا بدأت تشغيل pulseaudio وقمت بتشغيل paplay محليًا (على pi) ، فسيبدأ على الفور اللعب مع الصوت المشوه بالكامل. تبدو أجزاء من PCM وكأنها خارج الترتيب. كلما طالت مدة تشغيل الصوت ، ازداد الأمر سوءًا حتى يصبح الصوت نقيًا تقريبًا.
يؤدي قتل (CTRL + C) وتشغيل المرات اللاحقة إلى نمط قابل للتكرار من تشويه الصوت أو الصمت التام ، حتى يتم تشغيل الصوت بشكل مثالي في التشغيل الثامن. قم بتشغيلها مرة أخرى وستتم إعادة تشغيل الدورة.
النمط مشوه ، صامت ، مشوه ، مشوه ، صامت ، مشوه ، صامت ، مثالي.
إذا كنت تستخدم سماعة رأس USB يعمل paplay في كل مرة.
لقد حصلت عليه حيث يتم تشغيل الصوت عبر سماعة رأس USB بشكل مثالي ، ثم أقوم بفصل دونجل USB ويتم تشغيل الصوت بشكل صحيح من المنفذ التناظري للبي. أوقف الصوت وأعد تشغيله وسيصبح مشوهًا.

الإعداد الخاص بي: pulseaudio + mpd + ncmpcpp.

إعداد الاختبار الخاص بي هو بدء أغنية وتشغيل / إيقاف مؤقت بشكل متكرر. بعد 3 مرات كحد أقصى من التشغيل / الإيقاف المؤقت ، سيتم تعليق صوت النبض ويجب إعادة تشغيله.
يحدث هذا فقط على Raspberry B + الخاص بي مع شريحة bcm2835 ، مع التوزيعات القائمة على Debian و Arch. ليس لدي أي مشاكل مع نفس الإعداد بالضبط على كمبيوتر سطح المكتب الخاص بي باستخدام شريحة صوت Intel. لم تكن المشكلة موجودة في kernel 3.6 (لكنني لا أريد استخدام توزيع قديم).

لم تنجح أي من الحلول التي يمكن العثور عليها على الويب (tsched = 0 ، تعطيل module-suspension-on-idle ، ...). سأتخلى أخيرًا عن هذه المشكلة لأنني لم أجد حلاً لأكثر من عام الآن. إما أن أشتري لنفسي Raspberry 2 أو سأستخدم mpd مع الواجهة الخلفية لـ ALSA ، لأن ذلك يعمل بشكل رائع.

@ maxnet هل تم حل هذه المشكلة؟ إذا كانت الإجابة بنعم ، فالرجاء إغلاق هذه المشكلة.

لا أعتقد ذلك. لا يعمل مع Raspberry 3 أيضًا (ولا عجب لأنه يستخدم نفس الشريحة / برنامج التشغيل: snd_bcm2835).

لدي هذه المشكلة في جهاز Raspberry 3 الذي يعمل بنظام التشغيل Ubuntu 16.04. كحل بديل ، سأضع تأخيرًا مؤقتًا لمدة 5 ثوانٍ في برنامجي ، ولكن هذا يفسد الطبيعة الطبيعية للإخراج (إنه مُركب كلام)

نفس المشكلة مع pi3 و ubuntu mate 16.04 و mpd تبدو رائعة ما لم أغير مستوى الصوت (الذي يسبب التأتأة أو فقدان الصوت) أيضًا يفقد الصوت بشكل عشوائي من بين أمور أخرى. محبط حقًا.

نفس المشكلة في Rpi B (ليس 2 أو 3) مع أحدث نواة (684be4bc8cc343f60fdc3240c6d55d41d0a5b56c)

يمكن تأكيد هذه المشكلة مع rpi3 يعمل على Linux raspberrypi 4.9.27-v7+ #997 SMP Tue May 9 19:58:37 BST 2017 armv7l GNU/Linux على raspbian .. يتوقف Pulseaudio عادة عن اللعب بين المسارات التي أقوم بتغذيتها إليها من mpd (من مضيف آخر عبر الشبكة). عند محاولة تشغيل صوت 24 بت flac عبر mpd ، يتم تشغيله لمدة ثانيتين فقط ويتجمد ..

تأكيد المشكلة في rpi3 عند تشغيل 4.9.30-v7+ . عادةً ما يعمل ملء قائمة تشغيل mpds وبدء التشغيل حتى تكتمل قائمة التشغيل ، لكن تغيير المسارات يدويًا ، والإيقاف وإعادة التشغيل ، سيوقف إخراج الصوت من العمل ، حتى أقوم بإعادة تشغيل mpd.

audio_output {
        type            "alsa"
        name            "ALSA Output"
#       device          "hw:0,0"        # optional
        mixer_type      "software"      # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
#       auto_resample   "no"
#       auto_channels   "no"
#       auto_format     "no"
}

وجود نفس السلوك الإشكالي الذي وصفه flittermice : بخيبة أمل:
النظام هو RPi2 يقوم بتشغيل تثبيت جديد لـ Raspbian Stretch (9.1) مع pulseaudio v10.0-1 + deb9u1، kernel 4.9.59+
كنت أقرأ المقالات / البرامج التعليمية / المواضيع ذات الصلة ، لكن تشغيل MPD يتوقف كما هو موضح أعلاه ، حتى أقوم بقتل وإعادة تشغيل pulseaudio.

هل وجد أحد حلا لهذا حتى الآن؟ : crossed_fingers:: ابتسامة:

وجدت شيئًا مثيرًا للاهتمام (ربما):
عند تعليق pulseaudio (كما هو موضح أعلاه) ، يؤدي إصدار أمر "paplay" مرتين (!) إلى استئناف تشغيل الصوت:
$ paplay /usr/share/sounds/alsa/Front_Center.wav

  • في المرة الأولى ، تنتهي مهلة أمر paplay (أو يمكن مقاطعته بواسطة Ctrl + C)
  • في المرة الثانية التي يعمل فيها الأمر paplay ، يتم استئناف الصوت من MPD الآن.

يعمل لفترة زمنية عشوائية ، ثم يعود إلى سلوك flittermice : sob:

لقد قمت بتصحيح الأخطاء بشكل أكبر في هذه المشكلة ، ووجدت أن استخدام Pulseaudio لميزة ALSA مقصورة على فئة معينة تسمى "الترجيع" يسبب هذه المشكلة.
لسوء الحظ ، لا يوجد خيار تكوين لمنع PA من استخدام هذه الميزة.
يقوم هذا الفرع بتعطيله بشكل دائم في كود المصدر: https://github.com/strfry/pulseaudio/tree/no_rewind
إذا كان بإمكانك بناءه وتثبيته على نظامك ، فيرجى التحقق مما إذا كان ذلك سيؤدي إلى حل مشكلتك.

لقد قمت بتصحيح الأخطاء بشكل أكبر في هذه المشكلة ، ووجدت أن استخدام Pulseaudio لميزة ALSA الباطنية
يسمى "اللف" يسبب هذه المشكلة.
لسوء الحظ ، لا يوجد خيار تكوين لمنع PA من استخدام هذه الميزة.

ولكن هل يمكن أن يعمل Pulse بشكل صحيح إذا ألغيت هذه الميزة؟

ضع في اعتبارك أن جزءًا من الوظائف التي يوفرها كخادم الصوت هو خلط الصوت الذي يمكن أن ينشأ من تطبيقات متعددة معًا.
ويمكنني أن أتخيل أنه إذا كنت تريد أن تكون قادرًا على السماح للتطبيقات الجديدة بإضافة أصوات إلى المزيج على الفور ، فأنت بحاجة إلى طريقة لتجاهل جزء من المخزن المؤقت الحالي.
خلاف ذلك ، يمكنك فقط إضافة صوت جديد في نهاية المخزن المؤقت ، وستتأخر ، والذي قد لا يتوقعه التطبيق. والتي قد تكون مشكلة لبعض الأغراض (مثل الفيديو مع الصوت)

maxnet إن الإصلاح المناسب (ليس لي) من شأنه إصلاح زمن الانتقال بقيمة منخفضة نوعًا ما ، مما يلغي الحاجة إلى إعادة اللف ، بتكلفة تحميل / استهلاك طاقة وحدة المعالجة المركزية أعلى قليلاً.
إنه يعمل بشكل جيد مع تطبيقي ذي زمن الاستجابة المنخفض ، ولتشغيل الموسيقى باستخدام MPD ، قد يكون من المزعج بعض الشيء عدم الإرجاع (بدون تصحيح PA للقيام بالمخازن المؤقتة بزمن انتقال منخفض فقط).

وجود زمن انتقال منخفض دائمًا ، يعني استخدام مخازن مؤقتة صغيرة.
الذي لا يبدو مثاليا بالنسبة لي أيضا.

قد يجادل بأن الإصلاح المناسب سيكون في وحدة kernel ...

strfry :

D: [alsa-sink-bcm2835 ALSA] source.c: معالجة الترجيع ...

ومع ذلك ، أتفق إلى حد ما مع maxnet ، وربما يكون هناك سبب لفعل ALSA هذا في المقام الأول ...: wink:

هل هذا لا يعمل فقط على Raspberry Pi أو مشكلة عامة من pulseaudio + ALSA؟
لا تزال مشكلة منذ أكثر من 3 سنوات حتى الآن ، هل يجب علينا إبلاغ pulseaudio / ALSA devs بدلاً من هنا؟

@ pjotrek-b إنه غير وظيفي فقط مع "بطاقة" الصوت المضمنة في Raspberry PI. نحن نستخدم pulseaudio كخادم صوت للشبكة بنجاح مع بطاقة صوت USB لعدد من الأشهر دون مشاكل.

يمكنني تأكيد تصريحjekhor .
يعمل نفس التكوين بشكل مثالي مع بطاقة صوت USB (snd_usb_audio) على Raspberry Pi.

كما يقول ملف السجل: "E: [alsa-sink-bcm2835 ALSA] alsa-sink.c: على الأرجح هذا خطأ في برنامج تشغيل ALSA '(فارغ)'. يرجى إبلاغ مطوري ALSA بهذه المشكلة.". لا أحد يعرف كيفية القيام بذلك؟

jekhor : شكرا

الأمر المحير الآن هو أنني اعتقدت دائمًا أنه مثل هذا:
application > pulseaudio > ALSA > driver > hardware

إذا كان الأمر كذلك ، فكيف يمكن أن تعمل التطبيقات نفسها التي بها هذه المشكلة بشكل لا تشوبه شائبة عند استخدام ALSA مباشرة؟
application > ALSA > driver > hardware

الآن إذا كانت هذه المشكلة خاصة ببطاقة / شريحة الصوت المضمنة في RPi ، فكيف لا تظهر هذه المشكلات مع استخدام alsa-only أيضًا؟ :مشوش:

strfry : لقد عثرت على مقال تفصيلي تمامًا حول "اللف" في وثائق pulseaudio .

لقد قرأت أجزاءً منه ولا يبدو لي الآن أنه "مقصور على فئة معينة". منذ أن نظرت إلى الكود الخاص به: هل هناك أي أفكار يمكن أن تجعله يجعل نبض الصوت "يتعطل"؟
كما ذكرت أعلاه ، يبدو أن تنفيذ "paplay" مرتين يعطيها "دفعة" للعودة إلى العمل مرة أخرى ...: ابتسم:

@ pjotrek-b بالتأكيد هذا منطقي نظرًا لأهداف تصميم Pulseaudio. إنه "مقصور على فئة معينة" بمعنى أن 99٪ من تطبيقات ALSA العادية لن تستخدم الترجيع أبدًا ، وبالتالي تؤدي إلى مسار أقل اختبارًا في برنامج تشغيل ALSA. لسوء الحظ ، يفتقر Pulseaudio إلى خيار تعطيل استخدام هذه الميزة التي يحتمل أن تكون عربات التي تجرها الدواب (مثل غيرها ، على سبيل المثال ، الجدولة القائمة على المؤقت)
لم أقم بتصحيح التفاصيل الدقيقة ، لكن Pulseaudio بشكل أساسي عالق في حلقة لا نهاية لها ، لأن ALSA يفشل في الإبلاغ بشكل صحيح عن الوقت المناسب لكتابة البيانات الصوتية على الجهاز مرة أخرى.
على الرغم من احتمالات حل هذا الأمر من جانب Pulseaudio ، فإن هذا خطأ في برنامج تشغيل ALSA.
أشك في أن إصدار تدفقات جديدة سيولد الأحداث التي ينتظرها Pulseaudio عندما يتعطل.

flittermice أعتقد في هذه الحالة ، أن مطور ALSA المسؤول هو أحد مطوري نواة Raspberry Pi الذي كتب برنامج التشغيل snd_bcm2835 ، لذلك سيكون هذا المستودع هو المكان المناسب للإبلاغ عن هذا.

من المحتمل أن يكون مثال التعليمات البرمجية البسيط الذي يوضح سلوكًا خاطئًا بشكل واضح لـ ALSA عند استخدام الترجيع مفيدًا لمطوري النواة عند إلقاء نظرة فاحصة على هذا الخطأ.

@ pjotrek-b بالتأكيد هذا منطقي نظرًا لأهداف تصميم Pulseaudio. إنه "مقصور على فئة معينة" بمعنى أن 99٪ من تطبيقات ALSA العادية لن تستخدم الترجيع أبدًا ، وبالتالي تؤدي إلى مسار أقل اختبارًا في برنامج تشغيل ALSA. لسوء الحظ ، يفتقر Pulseaudio إلى خيار تعطيل استخدام هذه الميزة التي يحتمل أن تكون عربات التي تجرها الدواب (مثل غيرها ، على سبيل المثال ، الجدولة القائمة على المؤقت)
لم أقم بتصحيح التفاصيل الدقيقة ، لكن Pulseaudio بشكل أساسي عالق في حلقة لا نهاية لها ، لأن ALSA يفشل في الإبلاغ بشكل صحيح عن الوقت المناسب لكتابة البيانات الصوتية على الجهاز مرة أخرى.
على الرغم من احتمالات حل هذا الأمر من جانب Pulseaudio ، فإن هذا خطأ في برنامج تشغيل ALSA.
أشك في أن إصدار تدفقات جديدة سيولد الأحداث التي ينتظرها Pulseaudio عندما يتعطل.

flittermice أعتقد في هذه الحالة ، أن مطور ALSA المسؤول هو أحد مطوري نواة Raspberry Pi الذي كتب برنامج التشغيل snd_bcm2835 ، لذلك سيكون هذا المستودع هو المكان المناسب للإبلاغ عن هذا.

من المحتمل أن يكون مثال التعليمات البرمجية البسيط الذي يوضح سلوكًا خاطئًا بشكل واضح لـ ALSA عند استخدام الترجيع مفيدًا لمطوري النواة عند إلقاء نظرة فاحصة على هذا الخطأ.

إذا كان الأمر كذلك ، فكيف يمكن أن تعمل التطبيقات نفسها التي بها هذه المشكلة بشكل لا تشوبه شائبة عند استخدام ALSA مباشرة؟

عادةً ما لا تحتاج التطبيقات التي تستخدم ALSA مباشرةً إلى استخدام الترجيع.
إنهم يعرفون بالضبط الصوت الذي يريدون تشغيله في الثواني القادمة ، ويرسلونه إلى جهاز الصوت.

يتم استخدامه في المواقف التي يوجد فيها تغيير في الخطط.
إذا أرسل Pulse الصوت بالفعل للثانيتين التاليتين إلى الجهاز ، وفجأة يتصل عميل Pulse مختلف ويريد تشغيل الصوت أيضًا - دون الحاجة إلى الانتظار حتى تنتهي هاتان الثانيتان أولاً - يجب عليه إخبار الصوت جهاز لتجاهل المخزن المؤقت السابق ، واستبداله ببيانات جديدة بها صوت إضافي مختلط.

بالتأكيد ، إذا كنت تستخدم مخازن مؤقتة صغيرة تحتوي على مللي ثانية بدلاً من ثوانٍ من الصوت ، فيمكن للمرء الاستغناء عن الترجيع.
ومع ذلك لا أعتقد أن هذا هو المفضل.
في نظام Linux ، لا توجد ضمانات حول مقدار وقت وحدة المعالجة المركزية (CPU) الذي يحصل عليه أي تطبيق ، ولا يتم تقسيمه بالتساوي ، فهو ليس نظام تشغيل في الوقت الفعلي.
إذا كان تطبيق آخر يستخدم كثيرًا ، ولم يحصل Pulse على ما يكفي في الوقت المناسب للحفاظ على هذا المخزن المؤقت الصغير ممتلئًا في جميع الأوقات ، فسيتم تشغيله ، وسيتقطع صوتك.

كما ذكرت أعلاه ، يبدو أن تنفيذ "paplay" مرتين يعطيها "دفعة" للعودة إلى العمل مرة أخرى ...: ابتسم:

يقوم Pulse Audio أيضًا بإغلاق الاتصال بجهاز الصوت بعد 5 ثوانٍ من قطع اتصال آخر عميل يستخدمه ، إذا لم يتصل أي عملاء آخرين خلال ذلك الوقت.
ويعيد فتحه في المرة التالية التي يريد فيها العميل استخدامه.
لذلك إذا كان هناك وقت كافٍ بين أوامرك ، فقد يكون هذا أيضًا هو سبب عملها مرة أخرى.

strfry و @ maxnet :
شكرا جزيلا على هذه الإجابات التفصيلية لك!

هل يعرف أي شخص ما إذا كان هذا لا يزال يمثل مشكلة في أحدث Raspbian (مع kernel 4.14.y)؟

سيتم إغلاق هذه المشكلة في غضون 30 يومًا ما لم يتم نشر تفاعلات أخرى. إذا كنت ترغب في أن تظل هذه المشكلة مفتوحة ، يرجى إضافة تعليق. يمكن إعادة فتح قضية مغلقة إذا طلبت.

كنت أتحقق ، لكن ليس لدي الوقت الحالي لاختباره ...: بخيبة أمل:
فقط في حالة: هل يمكنني إعادة فتحه إذا اختبرته بعد 30 يومًا وما زال يمثل مشكلة؟

على الرغم من أنني متأكد تمامًا من عدم وجود تحسينات ، إلا أنني لا أستطيع المساهمة كثيرًا في هذا الخطأ المحدد. اشتريت بطاقة صوت USB خارجية مع مجموعة شرائح PCM2704 وأنا سعيد الآن ببرنامج تشغيل snd_usb_audio.
كان من الممكن أن يكون استخدام إخراج HDMI الخاص بـ raspi خيارًا جيدًا ، لكن raspi الخاص بي قد يرفض حتى التمهيد باستخدام كابل HDMI المتصل بجهاز استقبال AV ...

إغلاق بسبب قلة النشاط. يرجى طلب إعادة فتح الصفحة إذا كنت تشعر أن هذه المشكلة لا تزال ذات صلة.

يمكن أن أؤكد أن هذا يحدث لـ Rasp Pi 3
أقوم بتشغيل ArchARM مع إصدار kernel 4.14.69

يمكنني تأكيد أن هذا لا يزال يحدث على RPI3 الخاص بي:

Linux 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux

أحاول استخدام mpd مع pulseaudio أحصل على:

Nov 05 09:25:17 noise systemd[1]: Started Music Player Daemon.
Nov 05 09:25:19 noise pulseaudio[1567]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Nov 05 09:25:19 noise pulseaudio[1567]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Nov 05 09:25:20 noise pulseaudio[1567]: [alsa-sink-bcm2835 ALSA] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.
Nov 05 09:25:20 noise pulseaudio[1567]: [alsa-sink-bcm2835 ALSA] alsa-sink.c: Most likely this is a bug in the ALSA driver '(null)'. Please report this issue to the ALSA developers.
Nov 05 09:25:20 noise pulseaudio[1567]: [alsa-sink-bcm2835 ALSA] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

هل من فرصة لإعادة فتح هذه القضية؟

يمكن أن أؤكد أن هذا يحدث لـ Rasp Pi 3
أقوم بتشغيل ArchARM مع إصدار kernel 4.14.69
كان هذا بسبب إذن خاطئ ، لقد نجحت.

@ l4rzy : أنت

flittermice : عفوًا ، لقد أسأت فهم الموقف منذ أن علقت على هذا الأمر لعدة أشهر. لم يكن الأمر يتعلق بالأذونات.
حاولت إعداد Raspberry Pi 3 الخاص بي لخادم صوت Pulse للشبكة المحلية ، وقد عمل بسلاسة ولكن بعد فترة من عدم تشغيل أي شيء ، تم إيقاف تشغيل خادم Pulse الصوتي تلقائيًا. لاحقًا ، قمت بتثبيت mpd لتشغيل الموسيقى من SoundCloud ، والتي تفتح دائمًا اتصالاً بـ Pulse وتحافظ على تشغيله. ليس حلاً سيئًا على ما أعتقد.

@ l4rzy : العمل حولك هو السبيل للذهاب :-)

راجع للشغل: هل سبق لك أن حاولت عدم تحميل "module-suspension-on-idle" في default.pa؟

تحميل وحدة وحدة تعليق على الخمول

@ flittermice حاولت. لا يساعد.

لا يزال Pulseaudio لا يعمل مع snd_bcm2835. هل يمكنك إعادة فتح هذه المشكلة من فضلك؟

يمكنني أن أؤكد أنه لا يعمل معي أيضًا. لقد اختبرت كودًا مختلفًا وخيارات تجميع ولم أتمكن من تشغيله. أنا على ArchLinux ARM وجميع أحدث البرامج. يسعدني المساعدة في التصحيح إذا أمكن ذلك.

بالنسبة لي ، بالقرب من ما يمكنني قوله ، تأتي المشكلة من حجم المخزن المؤقت الذي تم الإبلاغ عنه بواسطة وحدة bcm2835_alsa. المخزن المؤقت للصوت الذي تم الإبلاغ عن نبضه هو 8816 بت ، أو يكفي فقط لحوالي 1.56 مللي ثانية من الصوت من دفق الشبكة. أنا لست مهووسًا بالأجهزة بما يكفي للعثور على المواصفات ولكن يبدو أن هناك شيئًا ما هنا. وفقًا لـ ALSA نفسها (أي ليس وحدة النبض) ، يكون حجم المخزن المؤقت أكثر منطقية بكثير 131072 بت. إذا كنت سأخمن ، يعتقد Pulse أنه لا يمكن أن يبقي المخزن المؤقت ممتلئًا للبطاقة ويحاول الترجيع لأنه قيل إنه يوجد حد للبرامج يبلغ 8816 بت ... ولكن ربما أكون بعيدًا عن القاعدة هنا.

واجهت نفس المشكلة للتو (إنها مزعجة حقًا) ،

هممم ... لا يمكنني إعادة إنتاج هذا باستخدام Raspberry Pi 3 B v1.2 وأحدث إصدار 4.19.34 kernel (تم التحديث بواسطة تحديث rpi إلى https://github.com/Hexxeh/rpi-firmware/commit/99c274691c07480762dcda91a0ebfe3c4f519307). ليس لدي أي فكرة عن السبب ، يبدو أن برنامج التشغيل لم يتغير منذ عام 2016. ربما بعض التغييرات في البرامج الثابتة VC؟

مرحبًا ، في Raspberry Pi 4 B v1.1 ، تواجه kernel 5.3.0-1014 نفس المشكلة مع تلاشي الصوت مع pulseaudio v13.0. يفقد الصوت إذا تم تحديد خرج استريو في نظام Pavucontrol. هل يوجد حل؟

acegallagher :

المخزن المؤقت للصوت الذي تم الإبلاغ عن نبضه هو 8816 بت ، أو يكفي فقط لحوالي 1.56 مللي ثانية من الصوت من دفق الشبكة.

أعتقد أن هذا يرجع إلى أن PulseAudio يكتشف الأحواض على أنها أحادية بشكل افتراضي ( بسبب هذه المشكلة ) ، وحجم المخزن المؤقت الافتراضي لها أقل.
حاول تحديث ملف تكوين ملف التعريف الافتراضي لـ PA بحيث يتم إنشاء أحواض استريو بدلاً من ذلك ، لأن هذا سيجعل السلطة الفلسطينية تنشئ أحواضًا بـ device.buffering.buffer_size = "17632" ، والذي يبدو أفضل!

ههههههههه

مرحبًا ، في Raspberry Pi 4 B v1.1 ، تواجه kernel 5.3.0-1014 نفس المشكلة مع تلاشي الصوت مع pulseaudio v13.0. يفقد الصوت إذا تم تحديد خرج استريو في نظام Pavucontrol. هل يوجد حل؟

تأكد من تحديث ملف تكوين ملف التعريف الافتراضي لـ PA بحيث يعمل إخراج الاستريو فعليًا باستخدام PA على RPI 4 ، وتأكد من أن لديك load-module module-udev-detect وليس load-module module-alsa-sink في /etc/pulse/default.pa .

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات