On Fri, 4 Aug 2023 18:13:04 +0100
J05HYYY <lovell.josh...@gmail.com> wrote:

> > alsactl: https://github.com/LineageOS/android_external_alsa-utils
> 
> I am getting too many errors trying to compile this. It would probably
> be easier for me to write (a) busybox/toybox script(s) to save and
> restore settings using tinyalsa utils.
[...]
> On an x86_64 pc I ran alsactl from alsa-utils and stored the card
> setting. I don't think I will be able to replicate the same file
> format/behaviour if I were to write the scripts (unfortunately) ...
> the format looks a bit complicated for me to RE. Instead I will
> probably create a couple CSVs with the controls and their respective
> values, one without dialling and one in-call.
I am probably missing something here. Do you want to run GNU/Linux on
the phone? 

Because if not tinyalsa utils is probably easiest.

For instance here we can dump the status easily:
> $ adb root
> restarting adbd as root
> $ adb shell
> root@i9300:/ # tinymix
> Mixer name: 'Midas_WM1811'
> Number of controls: 260
> ctl   type    num     name                                     value
> 0     ENUM    1       AIF1DRC1 Mode                            voice call DRC
> 1     ENUM    1       AIF1DRC2 Mode                            voice call DRC
> 2     ENUM    1       AIF2DRC Mode                             voice call DRC
> 3     INT     1       AIF1DAC1 EQ1 Volume                      9
> 4     INT     1       AIF1DAC1 EQ2 Volume                      7
> 5     INT     1       AIF1DAC1 EQ3 Volume                      10
> 6     INT     1       AIF1DAC1 EQ4 Volume                      13
> 7     INT     1       AIF1DAC1 EQ5 Volume                      12
> 8     INT     1       AIF1DAC2 EQ1 Volume                      12
> 9     INT     1       AIF1DAC2 EQ2 Volume                      12
> 10    INT     1       AIF1DAC2 EQ3 Volume                      12
> 11    INT     1       AIF1DAC2 EQ4 Volume                      12
> 12    INT     1       AIF1DAC2 EQ5 Volume                      12
> 13    INT     1       AIF2 EQ1 Volume                          12
> 14    INT     1       AIF2 EQ2 Volume                          12
> 15    INT     1       AIF2 EQ3 Volume                          12
> 16    INT     1       AIF2 EQ4 Volume                          12
> 17    INT     1       AIF2 EQ5 Volume                          12
> 18    INT     1       IN1L Volume                              11
> 19    BOOL    1       IN1L Switch                              On
> 20    BOOL    1       IN1L ZC Switch                           Off
> 21    INT     1       IN1R Volume                              10
> 22    BOOL    1       IN1R Switch                              On
> 23    BOOL    1       IN1R ZC Switch                           Off
> 24    INT     1       IN2L Volume                              11
> 25    BOOL    1       IN2L Switch                              On
> 26    BOOL    1       IN2L ZC Switch                           Off
> 27    INT     1       IN2R Volume                              11
> 28    BOOL    1       IN2R Switch                              On
> 29    BOOL    1       IN2R ZC Switch                           Off
> 30    INT     1       MIXINL IN2L Volume                       1
> 31    INT     1       MIXINL IN1L Volume                       1
> 32    INT     1       MIXINL Output Record Volume              0
> 33    INT     1       MIXINL IN1LP Volume                      0
> 34    INT     1       MIXINL Direct Voice Volume               0
> 35    INT     1       MIXINR IN2R Volume                       1
> 36    INT     1       MIXINR IN1R Volume                       1
> 37    INT     1       MIXINR Output Record Volume              0
> 38    INT     1       MIXINR IN1RP Volume                      0
> 39    INT     1       MIXINR Direct Voice Volume               0
> 40    INT     1       Left Output Mixer IN2RN Volume           7
> 41    INT     1       Left Output Mixer IN2LN Volume           7
> 42    INT     1       Left Output Mixer IN2LP Volume           7
> 43    INT     1       Left Output Mixer IN1L Volume            7
> 44    INT     1       Left Output Mixer IN1R Volume            7
> 45    INT     1       Left Output Mixer Right Input Volume     7
> 46    INT     1       Left Output Mixer Left Input Volume      7
> 47    INT     1       Left Output Mixer DAC Volume             7
> 48    INT     1       Right Output Mixer IN2LN Volume          7
> 49    INT     1       Right Output Mixer IN2RN Volume          7
> 50    INT     1       Right Output Mixer IN1L Volume           7
> 51    INT     1       Right Output Mixer IN1R Volume           7
> 52    INT     1       Right Output Mixer IN2RP Volume          7
> 53    INT     1       Right Output Mixer Left Input Volume     7
> 54    INT     1       Right Output Mixer Right Input Volume    7
> 55    INT     1       Right Output Mixer DAC Volume            7
> 56    INT     2       Output Volume                            57 57
> 57    BOOL    2       Output Switch                            On On
> 58    BOOL    2       Output ZC Switch                         Off Off
> 59    BOOL    1       Earpiece Switch                          On
> 60    INT     1       Earpiece Volume                          1
> 61    INT     1       SPKL Input Volume                        1
> 62    INT     1       SPKL IN1LP Volume                        1
> 63    INT     1       SPKL Output Volume                       1
> 64    INT     1       SPKR Input Volume                        1
> 65    INT     1       SPKR IN1RP Volume                        1
> 66    INT     1       SPKR Output Volume                       1
> 67    INT     2       Speaker Mixer Volume                     3 3
> 68    INT     2       Speaker Volume                           57 57
> 69    BOOL    2       Speaker Switch                           On On
> 70    BOOL    2       Speaker ZC Switch                        Off Off
> 71    INT     2       Speaker Boost Volume                     4 4
> 72    ENUM    1       Speaker Reference                        SPKVDD/2
> 73    ENUM    1       Speaker Mode                             Class D
> 74    INT     2       Headphone Volume                         45 45
> 75    BOOL    2       Headphone Switch                         On On
> 76    BOOL    2       Headphone ZC Switch                      Off Off
> 77    BOOL    1       LINEOUT1N Switch                         Off
> 78    BOOL    1       LINEOUT1P Switch                         Off
> 79    INT     1       LINEOUT1 Volume                          1
> 80    BOOL    1       LINEOUT2N Switch                         Off
> 81    BOOL    1       LINEOUT2P Switch                         Off
> 82    INT     1       LINEOUT2 Volume                          1
> 83    INT     2       AIF1ADC1 Volume                          96 96
> 84    INT     2       AIF1ADC2 Volume                          96 96
> 85    INT     2       AIF2ADC Volume                           96 96
> 86    ENUM    1       AIF1ADCL Source                          Left
> 87    ENUM    1       AIF1ADCR Source                          Right
> 88    ENUM    1       AIF2ADCL Source                          Left
> 89    ENUM    1       AIF2ADCR Source                          Right
> 90    ENUM    1       AIF1DACL Source                          Left
> 91    ENUM    1       AIF1DACR Source                          Right
> 92    ENUM    1       AIF2DACL Source                          Left
> 93    ENUM    1       AIF2DACR Source                          Left
> 94    INT     2       AIF1DAC1 Volume                          96 96
> 95    INT     2       AIF1DAC2 Volume                          96 96
> 96    INT     2       AIF2DAC Volume                           96 96
> 97    INT     1       AIF1 Boost Volume                        0
> 98    INT     1       AIF2 Boost Volume                        0
> 99    BOOL    1       AIF1DAC1 EQ Switch                       On
> 100   BOOL    1       AIF1DAC2 EQ Switch                       Off
> 101   BOOL    1       AIF2 EQ Switch                           Off
> 102   BOOL    1       AIF1DAC1 DRC Switch                      Off
> 103   BOOL    1       AIF1ADC1L DRC Switch                     Off
> 104   BOOL    1       AIF1ADC1R DRC Switch                     Off
> 105   BOOL    1       AIF1DAC2 DRC Switch                      Off
> 106   BOOL    1       AIF1ADC2L DRC Switch                     Off
> 107   BOOL    1       AIF1ADC2R DRC Switch                     Off
> 108   BOOL    1       AIF2DAC DRC Switch                       Off
> 109   BOOL    1       AIF2ADCL DRC Switch                      Off
> 110   BOOL    1       AIF2ADCR DRC Switch                      Off
> 111   INT     1       DAC1 Right Sidetone Volume               0
> 112   INT     1       DAC1 Left Sidetone Volume                0
> 113   INT     1       DAC2 Right Sidetone Volume               12
> 114   INT     1       DAC2 Left Sidetone Volume                12
> 115   ENUM    1       Sidetone HPF Mux                         2.7kHz
> 116   BOOL    1       Sidetone HPF Switch                      Off
> 117   ENUM    1       AIF1ADC1 HPF Mode                        HiFi
> 118   BOOL    2       AIF1ADC1 HPF Switch                      Off Off
> 119   ENUM    1       AIF1ADC2 HPF Mode                        HiFi
> 120   BOOL    2       AIF1ADC2 HPF Switch                      Off Off
> 121   ENUM    1       AIF2ADC HPF Mode                         HiFi
> 122   BOOL    2       AIF2ADC HPF Switch                       Off Off
> 123   ENUM    1       ADC OSR                                  High 
> Performance
> 124   ENUM    1       DAC OSR                                  Low Power
> 125   INT     2       DAC1 Volume                              96 96
> 126   BOOL    2       DAC1 Switch                              On On
> 127   INT     2       DAC2 Volume                              96 96
> 128   BOOL    2       DAC2 Switch                              On On
> 129   INT     1       SPKL DAC2 Volume                         1
> 130   INT     1       SPKL DAC1 Volume                         1
> 131   INT     1       SPKR DAC2 Volume                         1
> 132   INT     1       SPKR DAC1 Volume                         1
> 133   INT     1       AIF1DAC1 3D Stereo Volume                0
> 134   BOOL    1       AIF1DAC1 3D Stereo Switch                Off
> 135   INT     1       AIF1DAC2 3D Stereo Volume                0
> 136   BOOL    1       AIF1DAC2 3D Stereo Switch                Off
> 137   INT     1       AIF2DAC 3D Stereo Volume                 0
> 138   BOOL    1       AIF2DAC 3D Stereo Switch                 Off
> 139   INT     1       AIF3 Boost Volume                        0
> 140   BOOL    1       AIF1DAC1 Noise Gate Switch               Off
> 141   ENUM    1       AIF1DAC1 Noise Gate Hold Time            30ms
> 142   INT     1       AIF1DAC1 Noise Gate Threshold Volume     3
> 143   BOOL    1       AIF1DAC2 Noise Gate Switch               Off
> 144   ENUM    1       AIF1DAC2 Noise Gate Hold Time            30ms
> 145   INT     1       AIF1DAC2 Noise Gate Threshold Volume     3
> 146   BOOL    1       AIF2DAC Noise Gate Switch                Off
> 147   ENUM    1       AIF2DAC Noise Gate Hold Time             30ms
> 148   INT     1       AIF2DAC Noise Gate Threshold Volume      3
> 149   BOOL    1       AIF2ADCL DAT Invert                      Off
> 150   BOOL    1       AIF2ADCR DAT Invert                      Off
> 151   BOOL    1       HP Switch                                Off
> 152   BOOL    1       SPK Switch                               On
> 153   BOOL    1       RCV Switch                               Off
> 154   BOOL    1       FM In Switch                             Off
> 155   BOOL    1       LINE Switch                              Off
> 156   BOOL    1       HDMI Switch                              Off
> 157   BOOL    1       Main Mic Switch                          Off
> 158   BOOL    1       Sub Mic Switch                           Off
> 159   BOOL    1       Third Mic Switch                         On
> 160   BOOL    1       Headset Mic Switch                       Off
> 161   ENUM    1       AIF2 Mode                                Slave
> 162   ENUM    1       KPCS Mode                               
> 163   ENUM    1       Input Clamp                              Off
> 164   ENUM    1       LineoutSwitch Mode                       Off
> 165   ENUM    1       AIF2 digital mute                        Off
> 166   ENUM    1       ADCR Mux                                 ADC
> 167   ENUM    1       ADCL Mux                                 ADC
> 168   ENUM    1       Right Headphone Mux                      Mixer
> 169   ENUM    1       Left Headphone Mux                       Mixer
> 170   BOOL    1       SPKR DAC2 Switch                         Off
> 171   BOOL    1       SPKR Input Switch                        Off
> 172   BOOL    1       SPKR IN1RP Switch                        Off
> 173   BOOL    1       SPKR Output Switch                       Off
> 174   BOOL    1       SPKR DAC1 Switch                         On
> 175   BOOL    1       SPKL DAC2 Switch                         Off
> 176   BOOL    1       SPKL Input Switch                        Off
> 177   BOOL    1       SPKL IN1LP Switch                        Off
> 178   BOOL    1       SPKL Output Switch                       Off
> 179   BOOL    1       SPKL DAC1 Switch                         On
> 180   ENUM    1       AIF3ADC Mux                              AIF2ADCDAT
> 181   ENUM    1       AIF2DACR Mux                             AIF2
> 182   ENUM    1       AIF2DACL Mux                             AIF2
> 183   ENUM    1       Mono PCM Out Mux                         None
> 184   ENUM    1       AIF2ADC Mux                              AIF2ADCDAT
> 185   ENUM    1       AIF2DAC Mux                              AIF2DACDAT
> 186   ENUM    1       AIF1DAC Mux                              AIF1DACDAT
> 187   BOOL    1       DAC1R Mixer Right Sidetone Switch        Off
> 188   BOOL    1       DAC1R Mixer Left Sidetone Switch         Off
> 189   BOOL    1       DAC1R Mixer AIF2 Switch                  Off
> 190   BOOL    1       DAC1R Mixer AIF1.2 Switch                Off
> 191   BOOL    1       DAC1R Mixer AIF1.1 Switch                On
> 192   BOOL    1       DAC1L Mixer Right Sidetone Switch        Off
> 193   BOOL    1       DAC1L Mixer Left Sidetone Switch         Off
> 194   BOOL    1       DAC1L Mixer AIF2 Switch                  Off
> 195   BOOL    1       DAC1L Mixer AIF1.2 Switch                Off
> 196   BOOL    1       DAC1L Mixer AIF1.1 Switch                On
> 197   ENUM    1       Right Sidetone                           ADC/DMIC1
> 198   ENUM    1       Left Sidetone                            ADC/DMIC1
> 199   BOOL    1       AIF2DAC2R Mixer Right Sidetone Switch    On
> 200   BOOL    1       AIF2DAC2R Mixer Left Sidetone Switch     Off
> 201   BOOL    1       AIF2DAC2R Mixer AIF2 Switch              Off
> 202   BOOL    1       AIF2DAC2R Mixer AIF1.2 Switch            Off
> 203   BOOL    1       AIF2DAC2R Mixer AIF1.1 Switch            Off
> 204   BOOL    1       AIF2DAC2L Mixer Right Sidetone Switch    Off
> 205   BOOL    1       AIF2DAC2L Mixer Left Sidetone Switch     On
> 206   BOOL    1       AIF2DAC2L Mixer AIF2 Switch              Off
> 207   BOOL    1       AIF2DAC2L Mixer AIF1.2 Switch            Off
> 208   BOOL    1       AIF2DAC2L Mixer AIF1.1 Switch            Off
> 209   BOOL    1       AIF1ADC2R Mixer DMIC Switch              Off
> 210   BOOL    1       AIF1ADC2R Mixer AIF2 Switch              Off
> 211   BOOL    1       AIF1ADC2L Mixer DMIC Switch              Off
> 212   BOOL    1       AIF1ADC2L Mixer AIF2 Switch              Off
> 213   BOOL    1       AIF1ADC1R Mixer ADC/DMIC Switch          On
> 214   BOOL    1       AIF1ADC1R Mixer AIF2 Switch              Off
> 215   BOOL    1       AIF1ADC1L Mixer ADC/DMIC Switch          On
> 216   BOOL    1       AIF1ADC1L Mixer AIF2 Switch              Off
> 217   BOOL    1       LINEOUT2P Mixer Right Output Switch      On
> 218   BOOL    1       LINEOUT2N Mixer Left Output Switch       On
> 219   BOOL    1       LINEOUT2N Mixer Right Output Switch      Off
> 220   BOOL    1       LINEOUT1P Mixer Left Output Switch       On
> 221   BOOL    1       LINEOUT1N Mixer Left Output Switch       Off
> 222   BOOL    1       LINEOUT1N Mixer Right Output Switch      On
> 223   BOOL    1       SPKR Boost Direct Voice Switch           Off
> 224   BOOL    1       SPKR Boost SPKL Switch                   Off
> 225   BOOL    1       SPKR Boost SPKR Switch                   On
> 226   BOOL    1       SPKL Boost Direct Voice Switch           Off
> 227   BOOL    1       SPKL Boost SPKL Switch                   On
> 228   BOOL    1       SPKL Boost SPKR Switch                   On
> 229   BOOL    1       Earpiece Mixer Direct Voice Switch       Off
> 230   BOOL    1       Earpiece Mixer Left Output Switch        On
> 231   BOOL    1       Earpiece Mixer Right Output Switch       On
> 232   BOOL    1       Right Output Mixer Left Input Switch     Off
> 233   BOOL    1       Right Output Mixer Right Input Switch    Off
> 234   BOOL    1       Right Output Mixer IN2LN Switch          Off
> 235   BOOL    1       Right Output Mixer IN2RN Switch          Off
> 236   BOOL    1       Right Output Mixer IN1L Switch           Off
> 237   BOOL    1       Right Output Mixer IN1R Switch           Off
> 238   BOOL    1       Right Output Mixer IN2RP Switch          Off
> 239   BOOL    1       Right Output Mixer DAC Switch            On
> 240   BOOL    1       Left Output Mixer Right Input Switch     Off
> 241   BOOL    1       Left Output Mixer Left Input Switch      Off
> 242   BOOL    1       Left Output Mixer IN2RN Switch           Off
> 243   BOOL    1       Left Output Mixer IN2LN Switch           Off
> 244   BOOL    1       Left Output Mixer IN2LP Switch           Off
> 245   BOOL    1       Left Output Mixer IN1R Switch            Off
> 246   BOOL    1       Left Output Mixer IN1L Switch            Off
> 247   BOOL    1       Left Output Mixer DAC Switch             On
> 248   BOOL    1       MIXINR IN2R Switch                       Off
> 249   BOOL    1       MIXINR IN1R Switch                       Off
> 250   BOOL    1       MIXINL IN2L Switch                       Off
> 251   BOOL    1       MIXINL IN1L Switch                       Off
> 252   BOOL    1       IN2R PGA IN2RP Switch                    On
> 253   BOOL    1       IN2R PGA IN2RN Switch                    On
> 254   BOOL    1       IN2L PGA IN2LP Switch                    On
> 255   BOOL    1       IN2L PGA IN2LN Switch                    On
> 256   BOOL    1       IN1R PGA IN1RP Switch                    On
> 257   BOOL    1       IN1R PGA IN1RN Switch                    On
> 258   BOOL    1       IN1L PGA IN1LP Switch                    On
> 259   BOOL    1       IN1L PGA IN1LN Switch                    On

If your goal is GNU/Linux, you could still do the tests on Android and
then when you have your diff, try to manually do the control changes
with alsamixer or some other tool (and also use alsactl too to be able
to restore before and after your manual changes).

Note that you can still run GNU/Linux in a chroot in the phone but
that's far from trivial to do as the kernel is old, so you'd need to
find an old version of a distribution that works on armv7 and find a
way to copy the chroot to the phone and then use the utilities there to
dump and restore the control states.

This also affect statically compiling things for ARM as here the if the
libc used in the cross compilation is built with kernel headers for
kernels that are too recent that won't work.

Denis.

Attachment: pgpB0l0IRim24.pgp
Description: OpenPGP digital signature

_______________________________________________
Replicant mailing list
Replicant@osuosl.org
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to