moby: patch alsa instead of special-casing PinePhone config
unfortunately, this forces us to recompile *everything* above alsa, without leveraging the nixos.org cache. several hours, and probably necessary after any nixpkgs update, so not super practical.
This commit is contained in:
parent
5ed7888710
commit
0cc2295233
|
@ -72,14 +72,5 @@
|
|||
# enable rotation sensor
|
||||
hardware.sensor.iio.enable = true;
|
||||
|
||||
# from https://gitlab.manjaro.org/manjaro-arm/packages/community/phosh/alsa-ucm-pinephone
|
||||
# mobile-nixos does this same thing, with *slightly different settings*.
|
||||
# i trust manjaro more because the guy maintaining that is actively trying to upstream into alsa-ucm-conf.
|
||||
# an alternative may be to build a custom alsa with the PinePhone config patch applied:
|
||||
# - <https://github.com/alsa-project/alsa-ucm-conf/pull/134>
|
||||
# that would make this be not device-specific
|
||||
environment.variables.ALSA_CONFIG_UCM2 = "${./ucm2}";
|
||||
systemd.services.pulseaudio.environment.ALSA_CONFIG_UCM2 = "${./ucm2}";
|
||||
|
||||
users.groups.feedbackd.gid = config.sane.allocations.feedbackd-gid;
|
||||
}
|
||||
|
|
|
@ -1,148 +0,0 @@
|
|||
SectionVerb {
|
||||
EnableSequence [
|
||||
cset "name='Headphone Playback Switch' off"
|
||||
cset "name='Headphone Source Playback Route' DAC"
|
||||
cset "name='Line In Playback Switch' off"
|
||||
cset "name='Line Out Playback Switch' off"
|
||||
cset "name='Line Out Source Playback Route' Mono Differential"
|
||||
cset "name='Mic1 Playback Switch' off"
|
||||
cset "name='Mic2 Playback Switch' off"
|
||||
cset "name='AIF1 DA0 Playback Volume' 160"
|
||||
cset "name='AIF3 ADC Source Capture Route' None"
|
||||
cset "name='AIF2 DAC Source Playback Route' AIF2"
|
||||
cset "name='DAC Playback Switch' on"
|
||||
cset "name='DAC Playback Volume' 160"
|
||||
cset "name='ADC Digital DAC Playback Switch' off"
|
||||
cset "name='AIF1 Slot 0 Digital DAC Playback Switch' on"
|
||||
cset "name='AIF2 Digital DAC Playback Switch' off"
|
||||
cset "name='DAC Reversed Playback Switch' off"
|
||||
cset "name='Earpiece Playback Switch' off"
|
||||
cset "name='Earpiece Source Playback Route' DACL"
|
||||
|
||||
cset "name='Line In Capture Switch' off"
|
||||
cset "name='Mic1 Capture Switch' off"
|
||||
cset "name='Mic1 Boost Volume' 7"
|
||||
cset "name='Mic2 Capture Switch' off"
|
||||
cset "name='Mic2 Boost Volume' 7"
|
||||
cset "name='Mixer Capture Switch' off"
|
||||
cset "name='Mixer Reversed Capture Switch' off"
|
||||
cset "name='ADC Capture Volume' 160"
|
||||
cset "name='ADC Gain Capture Volume' 7"
|
||||
cset "name='AIF1 AD0 Capture Volume' 160"
|
||||
cset "name='AIF1 Data Digital ADC Capture Switch' on"
|
||||
cset "name='AIF2 ADC Mixer ADC Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF2 DAC Rev Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
]
|
||||
|
||||
Value {
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Internal speaker"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
|
||||
cset "name='Line Out Playback Switch' on"
|
||||
cset "name='Line Out Playback Volume' 100%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Line Out Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Line Out Playback Volume"
|
||||
PlaybackSwitch "Line Out Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 300
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
}
|
||||
}
|
||||
SectionDevice."Earpiece" {
|
||||
Comment "Internal Earpiece"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
|
||||
cset "name='Earpiece Playback Switch' on"
|
||||
cset "name='Earpiece Playback Volume' 100%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Earpiece Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Earpiece Playback Volume"
|
||||
PlaybackSwitch "Earpiece Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 200
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
}
|
||||
}
|
||||
SectionDevice."Mic" {
|
||||
Comment "Internal Microphone"
|
||||
ConflictingDevice [
|
||||
"Headset"
|
||||
]
|
||||
EnableSequence [
|
||||
cset "name='Mic1 Capture Switch' on"
|
||||
]
|
||||
DisableSequence [
|
||||
cset "name='Mic1 Capture Switch' off"
|
||||
]
|
||||
Value {
|
||||
CapturePriority 100
|
||||
CapturePCM "hw:${CardId},0"
|
||||
CaptureChannels 2
|
||||
CaptureMixerElem "ADC"
|
||||
CaptureVolume "ADC Capture Volume"
|
||||
CaptureSwitch "Mic1 Capture Switch"
|
||||
}
|
||||
}
|
||||
SectionDevice."Headset" {
|
||||
Comment "Headset Microphone"
|
||||
ConflictingDevice [
|
||||
"Mic"
|
||||
]
|
||||
EnableSequence [
|
||||
cset "name='Mic2 Capture Switch' on"
|
||||
]
|
||||
DisableSequence [
|
||||
cset "name='Mic2 Capture Switch' off"
|
||||
]
|
||||
Value {
|
||||
CapturePriority 500
|
||||
CapturePCM "hw:${CardId},0"
|
||||
CaptureChannels 2
|
||||
CaptureMixerElem "ADC"
|
||||
CaptureVolume "ADC Capture Volume"
|
||||
CaptureSwitch "Mic2 Capture Switch"
|
||||
JackControl "Headset Microphone Jack"
|
||||
}
|
||||
}
|
||||
SectionDevice."Headphones" {
|
||||
Comment "Headphones"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
|
||||
cset "name='Headphone Playback Switch' on"
|
||||
cset "name='Headphone Playback Volume' 70%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Headphone Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Headphone Playback Volume"
|
||||
PlaybackSwitch "Headphone Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 500
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
JackControl "Headphone Jack"
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
Syntax 2
|
||||
|
||||
SectionUseCase."HiFi" {
|
||||
File "HiFi.conf"
|
||||
Comment "Default"
|
||||
}
|
||||
|
||||
SectionUseCase."Voice Call" {
|
||||
File "VoiceCall.conf"
|
||||
Comment "Phone call"
|
||||
}
|
|
@ -1,153 +0,0 @@
|
|||
SectionVerb {
|
||||
EnableSequence [
|
||||
cset "name='Headphone Playback Switch' off"
|
||||
cset "name='Headphone Source Playback Route' DAC"
|
||||
cset "name='Line In Playback Switch' off"
|
||||
cset "name='Line Out Playback Switch' off"
|
||||
cset "name='Line Out Source Playback Route' Mono Differential"
|
||||
cset "name='Mic1 Playback Switch' off"
|
||||
cset "name='Mic2 Playback Switch' off"
|
||||
cset "name='AIF1 DA0 Playback Volume' 160"
|
||||
cset "name='AIF2 DAC Playback Volume' 160"
|
||||
cset "name='AIF3 ADC Source Capture Route' None"
|
||||
cset "name='AIF2 DAC Source Playback Route' AIF2"
|
||||
cset "name='DAC Playback Switch' on"
|
||||
cset "name='DAC Playback Volume' 160"
|
||||
cset "name='ADC Digital DAC Playback Switch' off"
|
||||
cset "name='AIF1 Slot 0 Digital DAC Playback Switch' on"
|
||||
cset "name='AIF2 Digital DAC Playback Switch' on"
|
||||
cset "name='DAC Reversed Playback Switch' off"
|
||||
cset "name='Earpiece Playback Switch' off"
|
||||
cset "name='Earpiece Source Playback Route' DACL"
|
||||
|
||||
cset "name='Line In Capture Switch' off"
|
||||
cset "name='Mic1 Capture Switch' off"
|
||||
cset "name='Mic1 Boost Volume' 0"
|
||||
cset "name='Mic1 Playback Volume' 7"
|
||||
cset "name='Mic2 Capture Switch' off"
|
||||
cset "name='Mic2 Boost Volume' 0"
|
||||
cset "name='Mic2 Playback Volume' 7"
|
||||
cset "name='Mixer Capture Switch' off"
|
||||
cset "name='Mixer Reversed Capture Switch' off"
|
||||
cset "name='ADC Capture Volume' 160"
|
||||
cset "name='ADC Gain Capture Volume' 7"
|
||||
cset "name='AIF1 AD0 Capture Volume' 160"
|
||||
cset "name='AIF1 Data Digital ADC Capture Switch' on"
|
||||
cset "name='AIF2 ADC Capture Volume' 160"
|
||||
cset "name='AIF2 ADC Mixer ADC Capture Switch' on"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF2 DAC Rev Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackRate 8000
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Internal speaker"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
|
||||
cset "name='Line Out Playback Switch' on"
|
||||
cset "name='Line Out Playback Volume' 100%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Line Out Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Line Out Playback Volume"
|
||||
PlaybackSwitch "Line Out Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 300
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
}
|
||||
}
|
||||
SectionDevice."Earpiece" {
|
||||
Comment "Internal Earpiece"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
|
||||
cset "name='Earpiece Playback Switch' on"
|
||||
cset "name='Earpiece Playback Volume' 100%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Earpiece Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Earpiece Playback Volume"
|
||||
PlaybackSwitch "Earpiece Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 500
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
}
|
||||
}
|
||||
SectionDevice."Mic" {
|
||||
Comment "Internal Microphone"
|
||||
ConflictingDevice [
|
||||
"Headset"
|
||||
]
|
||||
EnableSequence [
|
||||
cset "name='Mic1 Capture Switch' on"
|
||||
]
|
||||
DisableSequence [
|
||||
cset "name='Mic1 Capture Switch' off"
|
||||
]
|
||||
Value {
|
||||
CapturePriority 200
|
||||
CapturePCM "hw:${CardId},0"
|
||||
CaptureMixerElem "ADC"
|
||||
CaptureVolume "ADC Capture Volume"
|
||||
CaptureSwitch "Mic1 Capture Switch"
|
||||
CaptureChannels 2
|
||||
}
|
||||
}
|
||||
SectionDevice."Headset" {
|
||||
Comment "Headset Microphone"
|
||||
ConflictingDevice [
|
||||
"Mic"
|
||||
]
|
||||
EnableSequence [
|
||||
cset "name='Mic2 Capture Switch' on"
|
||||
]
|
||||
DisableSequence [
|
||||
cset "name='Mic2 Capture Switch' off"
|
||||
]
|
||||
Value {
|
||||
CapturePriority 500
|
||||
CapturePCM "hw:${CardId},0"
|
||||
CaptureChannels 2
|
||||
CaptureMixerElem "ADC"
|
||||
CaptureVolume "ADC Capture Volume"
|
||||
CaptureSwitch "Mic2 Capture Switch"
|
||||
JackControl "Headset Microphone Jack"
|
||||
}
|
||||
}
|
||||
SectionDevice."Headphones" {
|
||||
Comment "Headphones"
|
||||
EnableSequence [
|
||||
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
|
||||
cset "name='Headphone Playback Switch' on"
|
||||
cset "name='Headphone Playback Volume' 100%"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Headphone Playback Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackVolume "Headphone Playback Volume"
|
||||
PlaybackSwitch "Headphone Playback Switch"
|
||||
PlaybackChannels 2
|
||||
PlaybackPriority 500
|
||||
PlaybackPCM "hw:${CardId},0"
|
||||
JackControl "Headphone Jack"
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
Syntax 3
|
||||
|
||||
UseCasePath {
|
||||
legacy {
|
||||
Directory "PinePhone"
|
||||
File "PinePhone.conf"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs }:
|
||||
|
||||
(pkgs.alsa-ucm-conf.overrideAttrs (upstream: {
|
||||
patches = (upstream.patches or []) ++ [
|
||||
(pkgs.fetchpatch {
|
||||
# "Add UCM for PinePhone"
|
||||
# we need this for audio to work on the Pinephone
|
||||
url = "https://github.com/alsa-project/alsa-ucm-conf/pull/134.diff";
|
||||
sha256 = "sha256-hFpp8jQo8fQRqKrSnBEi5eh1Zf/x+1o+p40ML5iuWJM=";
|
||||
})
|
||||
];
|
||||
}))
|
||||
|
|
@ -21,6 +21,7 @@
|
|||
};
|
||||
|
||||
#### customized packages
|
||||
alsa-ucm-conf = prev.callPackage ./alsa-ucm-conf { pkgs = prev; };
|
||||
fluffychat-moby = prev.callPackage ./fluffychat-moby { pkgs = prev; };
|
||||
gpodder-configured = prev.callPackage ./gpodder-configured { pkgs = prev; };
|
||||
# nixos-unstable pleroma is too far out-of-date for our db
|
||||
|
|
Loading…
Reference in New Issue