So¶
Ubuntu Touch utilitza Pulseaudio com a servidor de so, assegut entre l’àudio HAL del dispositiu i les aplicacions i altres components del sistema. També és responsable de controlar l’àudio HAL per a trucades de veu i suport per auriculars Bluetooth.
Ubuntu Touch utilitza pulseaudio-modules-droid de SailfishOS per parlar amb Audio HAL. El mòdul és responsable de:
S’està carregant la HAL d’àudio apropiada des de la partició del proveïdor.
Presentar la sortida d’àudio (enfonsament) i l’entrada (font) a Pulseaudio.
Configurant correctament el HAL d’àudio per a trucades de veu, encaminant la veu a l’auricular, l’altaveu o el Bluetooth.
Execució de l’Ubuntu Touch¶
A causa de com els diferents proveïdors de dispositius implementen Android Audio HAL de manera diferent, de vegades haureu de passar arguments a pulseaudio-modules-droid. A l’Ubuntu Touch, això es fa proporcionant una clau Deviceinfo PulseaudioModulesDroid_ExtraCardArgs.
La llista completa d’opcions es pot trobar a la pàgina GitHub de pulseaudio-modules-droid. No obstant això, les següents són algunes de les opcions que podrien haver d’afegir-se:
Sembla que el droid de pulseaudio-modules detecta incorrectament la freqüència de mostreig d’àudio en alguns dispositius. Si la sortida d’àudio sona afinada i accelerada amunt/avall, proveu d’afegir
rate=48000orate=44100.hw_volume=falsees pot utilitzar si el canvi de volum sembla no fer res.use_legacy_stream_set_parameters.truees pot provar si PulseAudio falla en iniciar la crida de veu i/o la crida de veu no produeix so.
Configurar pulseaudio-modules-droid per comunicar-se amb HALs basats en Binder¶
En un petit nombre de dispositius, el droid de polsos d’àudio-mòduls pot no ser capaç de carregar l’àudio HAL directament, però ha de comunicar-se a ell a través de Binder. Com que el droid de polsos d’àudio-mòduls no ha estat dissenyat per comunicar-se amb l’àudio HAL sobre Binder, es necessita una solució.
Per comprovar si el dispositiu necessita aquesta solució de treball o no, executeu:
ls /android/*/lib64/hw/audio.primary.*
Si audio.primary.default.so és l’única sortida, normalment vol dir que es necessita la solució temporal. Seguiu els següents passos per implementar la solució:
«Overlay»
audio.primary.default.soamb un mòdul de compatibilitat col·locant l’enllaç simbòlic a la superposició. Des del repositori d’origen del dispositiu, executeu l’ordre:
ln -s \
/system/lib64/hw/audio.hidl_compat.default.so \
overlay/vendor/lib64/hw/audio.primary.default.so
audio.hidlcompat.default.so és un mòdul d’ajustament que implementa la interfície HAL d’àudio connectant-se a la HAL d’àudio real sobre Binder, permetent així que pulseaudio-modules-droid es connecti a ella.
- Superposa
init.disabled.rcde manera que el procés Hall de l’àudio no es desactiva. El procés de HAL d’àudio està desactivat de manera predeterminada, ja que s’espera que pulseaudio-modules-droid sigui capaç d’utilitzar el HAL d’àudio directament. Això es fa amb el següent: Obteniu una còpia de
init.disabled.rcdes del sistema arrencat. Això es pot fer en el sistema arrencat utilitzant ADB o SSH. Per exemple:
adb pull /system/etc/init/init.disabled.rc
Modifiqueu el fitxer comentant les seccions que mencionen
audio-hal. Tota la secció es pot comentar col·locant#al davant. Per exemple:
# service vendor.audio-hal-2-0 android.hardware.audio@2.0-service_HYBRIS_DISABLED # disabled # oneshot # override
Col·loqueu el fitxer modificat al directori de superposició al repositori d’origen del dispositiu, a
overlay/system/etc/init/init.disabled.rc.
- Superposa
Nota
Si el vostre port no ha migrat al mètode de superposició «overlaystore», necessitareu les superposicions en una ubicació diferent. Contacteu amb .UBports porting group <https://t.me/ubportsporting>. per obtenir ajuda.