title: thinkpad x220 ## performances On a linux installation, disabling mitigations can [considerably increase the performances](https://linuxreviews.org/HOWTO_make_Linux_run_blazing_fast). However, it comes with serious security issues. Add the following parameter for booting your kernel: ``` mitigations=off ``` ## microphone The embbeded microphones can generate a static noise. According to the [Archlinux wiki](https://wiki.archlinux.org/title/Lenovo_ThinkPad_X220#Microphone), muting the right microphone fix this issue. > The following informations are about pulseaudio and its built-in module > system. A more modern approache would be to use easyeffects. However I > experienced noisy inputs/outputs while being on calls, and running it in the > background requires to a) keep the easyeffects window opened b) move > easyeffects to system tray. With pulseaudio/pipewire-pulse, the `remap-source` module can be loaded: ``` $ pactl load-module module-remap-source \ "source_name=${source_name}" \ "master=${source_index}" \ use_master_format=1 \ master_channel_map=front-left \ channel_map=mono \ channels=1 ``` However, the fans can still be heard, and not all voip clients handle noise cancelling. Instead, you can keep the right microphone active and use it for [noise cancellation](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#module-echo-cancel) (including the static noise). ``` $ pactl load-module module-echo-cancel \ "source_name=${source_name}" \ "master=${source_index}" \ use_master_format=1 \ aec_method="webrtc" \ aec_args='"beamforming=1 mic_geometry=-1,0,0,1,0,0"' ``` See [my dotfiles](https://git.rgoncalves.se/dots/tree/.config/pipewire) for additional information. ## audio led buttons On some ThinkPad models, audio led buttons can be broken and desynchronized on linux `5.15.x`. A quick workaround is to catch the key press events (in your dwm configuration, i3, sway, etc ...) and force the synchronization of the leds. For the microphone: ``` $ pactl get-source-mute @DEFAULT_SOURCE@ | grep no >/dev/null 2>&1 $ echo "${?}" > /sys/class/leds/platform::micmute/brightness ``` For the audio sink: ``` $ pactl get-sink-mute @DEFAULT_SINK@ | grep no >/dev/null 2>&1 $ echo "${?}" > /sys/class/leds/platform::mute/brightness ``` See my [dotfiles](https://git.rgoncalves.se/dots/tree/.bin/ag-audio) and [the related pipewire issue](https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1849). ## usb-c mod // todo