https://wiki.archlinux.org/api.php?action=feedcontributions&user=1&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:03:14ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GNOME/Keyring&diff=790895GNOME/Keyring2023-10-24T16:35:45Z<p>1: /* PAM step */ Fix intra-article link</p>
<hr />
<div>[[Category:GNOME]]<br />
[[es:GNOME (Español)/Keyring]]<br />
[[ja:GNOME/Keyring]]<br />
[[zh-hans:GNOME/Keyring]]<br />
[https://wiki.gnome.org/Projects/GnomeKeyring GNOME Keyring] is "a collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications."<br />
<br />
== Installation ==<br />
<br />
{{Pkg|gnome-keyring}} is a member of the {{Grp|gnome}} group is thus usually present on systems running GNOME. The package can otherwise be [[install]]ed on its own. {{Pkg|libsecret}} should also be installed to grant other applications access to your keyrings. Although {{Pkg|libgnome-keyring}} is deprecated (and superseded by ''libsecret''), it may still be required by certain applications.<br />
<br />
The gnome-keyring-daemon is automatically started via a systemd user service upon logging in. It can also be started upon request via a socket.<br />
<br />
Extra utilities related to GNOME Keyring include:<br />
<br />
* {{App|secret-tool|Access the GNOME Keyring (and any other service implementing the [https://specifications.freedesktop.org/secret-service/ DBus Secret Service API]) from the command line.|https://wiki.gnome.org/Projects/Libsecret|{{Pkg|libsecret}}}}<br />
* {{App|lssecret|List all secret items using ''libsecret'' (e.g. GNOME Keyring).|https://gitlab.com/GrantMoyer/lssecret|{{AUR|lssecret-git}}}}<br />
<br />
== Manage using GUI ==<br />
<br />
You can manage the contents of GNOME Keyring using Seahorse; [[install]] the {{Pkg|seahorse}} package.<br />
<br />
Passwords for keyrings (e.g., the default keyring, "Login") can be changed and even removed. See [https://help.gnome.org/users/seahorse/stable/keyring-create.html Create a new keyring] and [https://help.gnome.org/users/seahorse/stable/keyring-update-password.html Update the keyring password] in GNOME Help for more information.<br />
<br />
== Using the keyring ==<br />
<br />
The [[PAM]] module ''pam_gnome_keyring.so'' initialises GNOME Keyring partially, unlocking the default ''login'' keyring in the process. The gnome-keyring-daemon is automatically started with a systemd user service.<br />
<br />
=== PAM step ===<br />
<br />
{{Note|To use automatic unlocking '''without automatic login''', the password for the user account should be the same as the default keyring. See [[#Automatically change keyring password with user password]].}}<br />
{{Tip|<br />
* To use automatic unlocking with automatic login, you can set a blank password for the default keyring. Note that the contents of the keyring are stored unencrypted in this case.<br />
* Alternatively, if using GDM and LUKS, GDM can unlock your keyring if it matches your LUKS password. For this to work, you need to use the [[Mkinitcpio#Common hooks|systemd init in your mkinitcpio.conf]] as well as the [[Dm-crypt/System configuration#Using systemd-cryptsetup-generator|appropriate kernel parameters]]. See [https://reddit.com/r/Fedora/comments/jwnqq5/] for more details.<br />
* If you desire to skip the PAM step, the default keyring must be unlocked manually or via another method. See [[#Using gnome-keyring-daemon outside desktop environments (KDE, GNOME, XFCE, ...)]] and the [https://wiki.gnome.org/Projects/GnomeKeyring/RunningDaemon GnomeKeyring wiki].<br />
}}<br />
<br />
When using a display manager, the keyring works out of the box for most cases. [[GDM]], [[LightDM]], [[LXDM]], and [[SDDM]] already have the necessary PAM configuration. For a display manager that does not automatically unlock the keyring edit the appropriate file instead of {{ic|/etc/pam.d/login}} as mentioned below.<br />
<br />
When using console-based login, edit {{ic|/etc/pam.d/login}}:<br />
<br />
Add {{ic|auth optional pam_gnome_keyring.so}} at the end of the {{ic|auth}} section and {{ic|session optional pam_gnome_keyring.so auto_start}} at the end of the {{ic|session}} section.<br />
<br />
{{hc|/etc/pam.d/login|<br />
#%PAM-1.0<br />
<br />
auth required pam_securetty.so<br />
auth requisite pam_nologin.so<br />
auth include system-local-login<br />
'''auth optional pam_gnome_keyring.so'''<br />
account include system-local-login<br />
session include system-local-login<br />
'''session optional pam_gnome_keyring.so auto_start'''<br />
}}<br />
<br />
== SSH keys ==<br />
<br />
GNOME Keyring can act as a wrapper around [[SSH keys#ssh-agent|ssh-agent]]. In that mode, it will display a GUI password entry dialog each time you need to unlock an SSH key. The dialog includes an checkbox to remember the password you type, which, if selected, will allow fully passwordless use of that key in the future as long as your login keyring is unlocked.<br />
<br />
From GNOME 41 (released September 2021) until at least this writing (April 2023), the SSH functionality of gnome-keyring-daemon has been [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67 duplicated] into {{ic|/usr/lib/gcr-ssh-agent}}, which is part of {{Pkg|gcr}}. The eventual [https://fedoraproject.org/wiki/Changes/ModularGnomeKeyring plan] is to remove the implementation in gnome-keyring-daemon, but that effort seems to have stalled. Until that happens, you should be aware of which implementation you're using, since each is set up and used in a different way:<br />
<br />
=== gcr-ssh-agent ===<br />
<br />
The gcr-ssh-agent implementation is the more plug-and-play of the two. Since it will also eventually be the only implementation, you should use it unless you have good reason not to.<br />
<br />
All you need to do to use this implementation is<br />
# [[Enable]] the {{ic|gcr-ssh-agent.socket}} systemd [[user unit]].<br />
# Run SSH commands with the {{ic|SSH_AUTH_SOCK}} environment variable set to {{ic|$XDG_RUNTIME_DIR/gcr/ssh}}. There are [[Environment variables#Defining variables|many ways]] to set environment variables, and the one you use will depend on your specific setup and preferences.<br />
<br />
=== gnome-keyring-daemon "ssh" component ===<br />
<br />
If you do decide to use the older gnome-keyring-daemon implementation, you'll need to ensure {{ic|gnome-keyring-daemon}} gets started with '''ssh''' in its {{ic|--components}} argument. For desktop environments using [[XDG Autostart]], that's done via {{ic|/etc/xdg/autostart/gnome-keyring-ssh.desktop}} automatically. For others, you'll need to edit {{ic|ExecStart}} of the {{ic|gnome-keyring-daemon.service}} user unit, since it doesn't start the SSH component by default. See [[Systemd#Editing provided units]] for guidance.<br />
<br />
Once you've ensured the component runs, set {{ic|SSH_AUTH_SOCK}} to {{ic|$XDG_RUNTIME_DIR/keyring/ssh}} in the same manner described above. Note that gcr-ssh-agent and gnome-keyring-daemon listen on different socket paths despite containing nearly-identical implementations.<br />
<br />
=== Using ===<br />
<br />
Regardless of the implementation you choose, you can run<br />
<br />
$ ssh-add -L<br />
<br />
to list loaded SSH keys in the running agent. This can help ensure you started the appropriate service and set {{ic|SSH_AUTH_SOCK}} correctly.<br />
<br />
To permanently save the a passphrase in the keyring, use ssh-askpass from the {{pkg|seahorse}} package:<br />
<br />
$ /usr/lib/seahorse/ssh-askpass my_key<br />
<br />
To manually add an SSH key from another directory:<br />
<br />
$ ssh-add ~/.private/id_rsa<br />
Enter passphrase for ~/.private/id_rsa:<br />
<br />
{{Note|You have to have the corresponding ''.pub'' file in the same directory as the private key ({{ic|~/.ssh/id_rsa.pub}} in the example). Also, make sure that the public key is the file name of the private key plus ''.pub'' (for example, {{ic|my_key.pub}}).}}<br />
<br />
To disable all manually added keys:<br />
<br />
$ ssh-add -D<br />
<br />
=== Disabling ===<br />
<br />
If you wish to run an alternative SSH agent (e.g. [[SSH keys#ssh-agent|ssh-agent]] directly or [[gpg-agent]]), it's a good idea to disable GNOME Keyring's ssh-agent wrapper. Doing so isn't strictly necessary, since each agent listens on a different socket and {{ic|SSH_AUTH_SOCK}} can be used to choose between them, but it can make debugging issues easier.<br />
<br />
To disable the gcr-ssh-agent implementation, ensure {{ic|gcr-ssh-agent.socket}} and {{ic|gcr-ssh-agent.service}} are both disabled and stopped in systemd.<br />
<br />
To disable the gnome-keyring-daemon implementation in an account-local way, copy {{ic|/etc/xdg/autostart/gnome-keyring-ssh.desktop}} to {{ic|~/.config/autostart/}} and then append the line {{ic|1=Hidden=true}} to the copied file. Also undo any {{ic|gnome-keyring-daemon.service}} edits you made as per the above instructions.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Integration with applications ===<br />
<br />
* [[Chromium#Force a password store|Chromium]]<br />
<br />
=== Flushing passphrases ===<br />
<br />
$ gnome-keyring-daemon -r -d<br />
<br />
This command starts gnome-keyring-daemon, shutting down previously running instances.<br />
<br />
=== Git integration ===<br />
<br />
The GNOME keyring is useful in conjunction with [[Git]] when you are pushing over HTTPS. The {{Pkg|libsecret}} package [[#Installation|needs to be installed for this functionality to be available]].<br />
<br />
Configure Git to use the ''libsecret'' helper:<br />
<br />
$ git config --global credential.helper /usr/lib/git-core/git-credential-libsecret<br />
<br />
The next time you run {{ic|git push}}, you will be asked to unlock your keyring if it is not already unlocked.<br />
<br />
=== GnuPG integration ===<br />
<br />
Several applications which use GnuPG require a {{ic|pinentry-program}} to be set. Set the following to use GNOME 3 pinentry for GNOME Keyring to manage passphrase prompts.<br />
<br />
{{hc|~/.gnupg/gpg-agent.conf|<br />
pinentry-program /usr/bin/pinentry-gnome3<br />
}}<br />
<br />
Another option is to [[GnuPG#Unattended passphrase|force loopback for GPG]] which should allow the passphrase to be entered in the application.<br />
<br />
=== Renaming a keyring ===<br />
<br />
The display name for a keyring (i.e., the name that appears in Seahorse and from {{ic|file}}) can be changed by [https://ttboj.wordpress.com/2013/01/27/renaming-a-gnome-keyring-for-seahorse-the-passwords-and-keyrings-application/ changing the value of display-name in the unencrypted keyring file]. Keyrings will usually be stored in {{ic|~/.local/share/keyrings/}} with the ''.keyring'' file extension.<br />
<br />
=== Automatically change keyring password with user password ===<br />
<br />
{{Note|This only affects the default keyring.}}<br />
<br />
Add {{ic|password optional pam_gnome_keyring.so}} to the end of {{ic|/etc/pam.d/passwd}}.<br />
{{hc|/etc/pam.d/passwd|2=<br />
#%PAM-1.0<br />
<br />
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3<br />
#password required pam_unix.so sha512 shadow use_authtok<br />
password required pam_unix.so sha512 shadow nullok<br />
'''password optional pam_gnome_keyring.so'''<br />
}}<br />
<br />
=== Using gnome-keyring-daemon outside desktop environments (KDE, GNOME, XFCE, ...) ===<br />
<br />
==== Launching ====<br />
<br />
{{Accuracy|At least [[xinit]] and [[SDDM]] execute all scripts from {{ic|/etc/X11/xinit/xinitrc.d/}} and [[sway]] provides {{ic|/etc/sway/config.d/50-systemd-user.conf}} so the problem is not being "outside desktop environments". If gnome-keyring requires [[XDG Autostart]], the installation/configuration section should say so.|section=Launching gnome-keyring-daemon outside desktop environments (KDE,_GNOME,_XFCE,_...)}}<br />
<br />
If you are using sway, i3, or any window manager that does not execute<br />
<br />
* {{ic|/etc/xdg/autostart/gnome-keyring-*.desktop}}<br />
* {{ic|/etc/X11/xinit/xinitrc.d/50-systemd-user.sh}}<br />
<br />
your window manager needs to execute the following commands during window manager startup. The commands do not need to be executed in any specific order.<br />
<br />
{{bc|dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY}}<br />
or<br />
{{bc|dbus-update-activation-environment --all}}<br />
<br />
This command passes environment variables from the window manager to session dbus. Without this, GUI prompts cannot be triggered over DBus. For example, this is required for seahorse password prompt.<br />
<br />
This is required because session dbus is started before graphical environment is started. Thus, session dbus does not know about the graphical environment you are in. Someone or something has to teach session dbus about the graphical environment by passing environment variables describing the graphical environment to session dbus.<br />
<br />
{{bc|1=gnome-keyring-daemon --start --components=secrets}}<br />
<br />
During login, PAM starts {{ic|gnome-keyring-daemon --login}} which is responsible for keeping gnome-keyring unlocked with login password. If {{ic|gnome-keyring-daemon --login}} is not connected to session dbus within a few minutes, {{ic|gnome-keyring-daemon --login}} dies. If {{ic|gnome-keyring-daemon --start ...}} is started against session dbus in a window manager, {{ic|gnome-keyring-daemon --login}} is connected to session dbus. If your login session does not start {{ic|gnome-keyring-daemon --start ...}} before {{ic|gnome-keyring-daemon --login}} quits, you can also use any program that uses gnome-keyring or secret service API before {{ic|gnome-keyring-daemon --login}} dies.<br />
<br />
==== GNOME Keyring XDG Portal ====<br />
<br />
{{Accuracy|Modifies package files in {{ic|/usr/share}}, will be undone on pacman upgrades}}<br />
GNOME Keyring exposes an XDG Portal backend (for use with applications sandboxed through [[flatpak]] for example). In order for it to work outside of GNOME, one must add their desktop environment to the {{ic|/usr/share/xdg-desktop-portal/portals/gnome-keyring.portal}} configuration file by modifying the {{ic|UseIn}} key. For instance, to add [[sway]]:<br />
<br />
{{hc|/usr/share/xdg-desktop-portal/portals/gnome-keyring.portal|<br />
[portal]<br />
DBusName{{=}}org.freedesktop.secrets<br />
Interfaces{{=}}org.freedesktop.impl.portal.Secret<br />
UseIn{{=}}gnome;sway<br />
}}<br />
<br />
See [[XDG_Desktop_Portal#Backends]] for more information about XDG Desktop Portal backends.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you are prompted for a password after logging in and you find that your passwords are not saved, then you may need to create/set a default keyring. To do this using Seahorse (a.k.a. Passwords and Keys), see [https://help.gnome.org/users/seahorse/stable/keyring-create.html Create a new keyring] and [https://help.gnome.org/users/seahorse/stable/keyring-change-default.html Change the default keyring] in GNOME Help.<br />
<br />
=== Resetting the keyring ===<br />
<br />
You will need to [[#Manage using GUI|change your login keyring password]] if you receive the following error message: "The password you use to login to your computer no longer matches that of your login keyring".<br />
<br />
Alternatively, you can remove the {{ic|login.keyring}} and {{ic|user.keystore}} files from {{ic|~/.local/share/keyrings/}}. Be warned that this will permanently delete all saved keys. After removing the files, simply log out and log in again.<br />
<br />
=== Unable to locate daemon control file ===<br />
<br />
The following error may appear in the [[journal]] after logging in:<br />
<br />
gkr-pam: unable to locate daemon control file<br />
<br />
This message "can be safely ignored" if there are no other related issues [https://bbs.archlinux.org/viewtopic.php?pid=1940190#p1940190].<br />
<br />
=== No such secret collection at path: / ===<br />
<br />
If you use a custom {{ic|~/.xinitrc}} and receive this error when trying to create a new keyring with Seahorse, this may be solved by adding the following line [https://bbs.archlinux.org/viewtopic.php?pid=1640822#p1640822] <br />
<br />
{{hc|~/.xinitrc|<br />
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh<br />
}}<br />
<br />
=== Terminal gives the message "discover_other_daemon: 1" ===<br />
<br />
This is caused by ''gnome-keyring-daemon'' being started for the second time. Since a systemd service is delivered together with the daemon, you do not need to start it another way. So make sure to remove the start command from your {{ic|.zshenv}}, {{ic|.bash_profile}}, {{ic|.xinitrc}}, {{ic|config.fish}} or similar. Alternatively you can [[disable]] the {{ic|gnome-keyring-daemon.service}} and {{ic|gnome-keyring-daemon.socket}} [[user unit]]s.<br />
<br />
== See also ==<br />
<br />
* https://help.gnome.org/users/seahorse/stable/<br />
* [https://wiki.gnome.org/action/show/Projects/GnomeKeyring GNOME Wiki page]</div>1https://wiki.archlinux.org/index.php?title=Lenovo_IdeaPad_S10&diff=573558Lenovo IdeaPad S102019-05-20T09:07:16Z<p>1: Redirect to where there is still information about this model.</p>
<hr />
<div>#redirect [[Laptop/Lenovo#IdeaPad]]<br />
[[Category:Archive]]</div>1https://wiki.archlinux.org/index.php?title=Advanced_Linux_Sound_Architecture&diff=573149Advanced Linux Sound Architecture2019-05-13T19:48:09Z<p>1: /* Correctly detect microphone plugged in a 4-pin 3.5mm (TRRS) jack */ Remove hash symbol from something that isn't a command and should not be commented out. Also a typo.</p>
<hr />
<div>[[Category:Sound]]<br />
[[cs:Advanced Linux Sound Architecture]]<br />
[[de:Alsa]]<br />
[[es:Advanced Linux Sound Architecture]]<br />
[[fa:ALSA]]<br />
[[fr:Alsa]]<br />
[[he:Advanced Linux Sound Architecture]]<br />
[[it:Advanced Linux Sound Architecture]]<br />
[[ja:Advanced Linux Sound Architecture]]<br />
[[nl:Advanced Linux Sound Architecture]]<br />
[[pt:Advanced Linux Sound Architecture]]<br />
[[ru:Advanced Linux Sound Architecture]]<br />
[[sk:Advanced Linux Sound Architecture]]<br />
[[th:Advanced Linux Sound Architecture]]<br />
[[zh-hans:Advanced Linux Sound Architecture]]<br />
{{Related articles start}}<br />
{{Related|ALSA configuration examples}}<br />
{{Related|ALSA troubleshooting}}<br />
{{Related|Sound system}}<br />
{{Related|PC speaker}}<br />
{{Related|PulseAudio}}<br />
{{Related|Open Sound System}}<br />
{{Related articles end}}<br />
The [[Wikipedia:Advanced Linux Sound Architecture|Advanced Linux Sound Architecture]] ('''ALSA''') provides kernel driven sound card drivers. It replaces the original Open Sound System (OSS).<br />
<br />
Besides the sound device drivers, ALSA also bundles a user space driven library for application developers. They can then use those ALSA drivers for high level API development. This enables direct (kernel) interaction with sound devices through ALSA libraries.<br />
<br />
== Installation ==<br />
<br />
ALSA is a set of built-in GNU/Linux kernel modules. Therefore, manual installation is not necessary.<br />
<br />
[[udev]] will automatically detect your hardware and select needed drivers at boot time, therefore, your sound should already be working. However, your sound may be initially muted. If it is, see [[#Unmuting the channels|Unmuting the channels]].<br />
<br />
=== User privileges ===<br />
<br />
Usually, local users have permission to play audio and change mixer levels.<br />
<br />
To allow remote users to use ALSA, you need to [[Users and groups#Group management|add]] those users to the {{ic|audio}} group, however this is not recommended by default (see note below). <br />
<br />
{{note|Adding users to the {{ic|audio}} group allows direct access to devices. Keep in mind, that this allows applications to exclusively reserve output devices. This may break software mixing or fast-user-switching on multi-seat systems. Therefore, adding a user to the {{ic|audio}} group is '''not''' recommended by default; unless you specifically need to [https://wiki.ubuntu.com/Audio/TheAudioGroup].}}<br />
<br />
=== ALSA Utilities ===<br />
<br />
[[Install]] the {{Pkg|alsa-utils}} package. This contains (among other utilities) the {{ic|alsamixer}} and {{ic|amixer}} utilities. ''amixer'' is a shell command to change audio settings, while ''alsamixer'' provides a more intuitive [[Wikipedia:Ncurses|ncurses]] based interface for audio device configuration.<br />
<br />
If you need [[#High quality resampling|high quality resampling]] install the {{Pkg|alsa-plugins}} package to enable [[#Upmixing/downmixing|upmixing/downmixing]] and other advanced features.<br />
<br />
=== OSS compatibility ===<br />
<br />
{{Note|This is important if your application complains about missing {{ic|/dev/dsp}} or {{ic|/dev/snd/seq}}.}}<br />
<br />
ALSA has some ability to intercept [[OSS]] calls and re-route them through ALSA instead. This emulation layer is useful e.g. for legacy applications which try to open {{ic|/dev/dsp}} and write sound data to them directly. Without OSS or the emulation library, {{ic|/dev/dsp}} will be missing, and the application will not produce any sound.<br />
<br />
If you want [[OSS]] applications to work with [[#Dmix|dmix]], install the {{Pkg|alsa-oss}} package as well. Then load the {{ic|snd-seq-oss}}, {{ic|snd-pcm-oss}} and {{ic|snd-mixer-oss}} [[kernel modules]] to enable OSS emulation.<br />
<br />
=== PulseAudio compatibility ===<br />
<br />
{{AUR|apulse}} lets you use ALSA for applications that support only [[PulseAudio]] for sound. Usage is simply {{ic|$ apulse ''yourapplication''}}.<br />
<br />
=== ALSA and Systemd ===<br />
<br />
The {{Pkg|alsa-utils}} package comes with [[systemd]] unit configuration files {{ic|alsa-restore.service}} and {{ic|alsa-state.service}} by default.<br />
<br />
These are automatically installed and activated during installation. Therefore, there is no further action needed. Though, you can check their status using {{ic|systemctl}}.<br />
<br />
{{note|For reference, ALSA stores its settings in {{ic|/var/lib/alsa/asound.state}}}}<br />
<br />
=== ALSA Firmware ===<br />
<br />
The {{Pkg|alsa-firmware}} package contains firmware that may be required for certain sound cards (e.g. Creative SB0400 Audigy2).<br />
<br />
== Unmuting the channels ==<br />
<br />
By default ALSA has all channels muted. Those have to be unmuted manually. <br />
<br />
=== Unmute with amixer ===<br />
<br />
Unmuting the sound card's master volume can be done by using ''amixer'':<br />
<br />
$ amixer sset Master unmute<br />
$ amixer sset Speaker unmute<br />
$ amixer sset Headphone unmute<br />
<br />
=== Unmute with alsamixer ===<br />
<br />
Unmuting the sound card can be done using ''alsamixer'':<br />
<br />
$ alsamixer<br />
<br />
The {{ic|MM}} label below a channel indicates that the channel is muted, and {{ic|00}} indicates that it is open.<br />
<br />
Scroll to the {{ic|Master}} and {{ic|PCM}} channels with the {{ic|←}} and {{ic|→}} keys and unmute them by pressing the {{ic|m}} key. <br />
<br />
Use the {{ic|↑}} key to increase the volume and obtain a value of {{ic|0}} dB gain. The gain can be found in the upper left next to the {{ic|Item:}} field.<br />
<br />
{{Note|If gain is set above 0 dB audible distortion can become present.}}<br />
<br />
=== Unmute 5.1/7.1 sound ===<br />
<br />
To get full 5.1 or 7.1 surround sound you will likely need to unmute other channels such as {{ic|Front}}, {{ic|Surround}}, {{ic|Center}}, {{ic|LFE}} (subwoofer) and {{ic|Side}}. (Those are channel names with Intel HD Audio, they may vary with different hardware)<br />
<br />
{{note|Please take note that this will not automatically upmix stereo sources (like most music). In order to accomplish that, see [[#Upmixing/downmixing]].}}<br />
<br />
=== Enable the microphone ===<br />
<br />
To enable your microphone, switch to the Capture tab with {{ic|F4}} and enable a channel with {{ic|Space}}. See [[/Troubleshooting#Microphone]] if microphone does not work.<br />
<br />
=== Test your changes ===<br />
<br />
Next, test to see if sound works:<br />
<br />
$ speaker-test -c 2<br />
<br />
Change {{ic|-c}} to fit your speaker setup. Use {{ic|-c 8}} for 7.1, for instance:<br />
<br />
$ speaker-test -c 8<br />
<br />
If audio is being outputted to the wrong device, try manually specifying it with the argument {{ic|-D}}. <br />
<br />
$ speaker-test -D default:PCH -c 8<br />
<br />
{{ic|-D}} accepts PCM channel names as values, which can be retrieved by running the following:<br />
<br />
{{hc|<nowiki>$ aplay -L | grep :CARD</nowiki>|2=<br />
default:CARD=PCH # 'default:PCH' is the PCM channel name for -D<br />
sysdefault:CARD=PCH<br />
front:CARD=PCH,DEV=0<br />
surround21:CARD=PCH,DEV=0<br />
surround40:CARD=PCH,DEV=0<br />
surround41:CARD=PCH,DEV=0<br />
surround50:CARD=PCH,DEV=0<br />
surround51:CARD=PCH,DEV=0<br />
surround71:CARD=PCH,DEV=0<br />
}}<br />
<br />
If that does not work, consult the [[#Configuration]] section or the [[/Troubleshooting]] page.<br />
<br />
=== Additional notes ===<br />
<br />
* If your system has more than one soundcard, then you can switch between them by pressing {{ic|F6}}<br />
<br />
* Some cards need to have digital output muted or disabled in order to hear analog sound. For the Soundblaster Audigy LS mute the channel labeled {{ic|IEC958}}.<br />
<br />
* Some machines, (like the Thinkpad T61), have a {{ic|Speaker}} channel which must be unmuted and adjusted as well.<br />
<br />
* Some machines, (like the Dell E6400) may also require the {{ic|Front}} and {{ic|Headphone}} channels to be unmuted and adjusted.<br />
<br />
* If your volume adjustments seem to be lost after you reboot, try running ''alsamixer'' as root.<br />
<br />
== Configuration ==<br />
<br />
The system configuration file is {{ic|/etc/asound.conf}}, and the per-user configuration file is {{ic|~/.asoundrc}}.<br />
<br />
=== Basic syntax ===<br />
<br />
ALSA configuration files follow a simple syntax consisting of hierarchical value to parameter (key) assignments. Below are (modified) excerpts from asoundrc.txt, which is usually found in {{Pkg|alsa-lib}} package but can be also reached [http://www.alsa-project.org/alsa-doc/alsa-lib/conf.html here].<br />
<br />
==== Assignments and Separators ====<br />
<br />
Assignments define a value of a given key. There are different assignment types and styles available.<br />
<br />
{{hc|Simple assignment|2=<br />
# This is a comment. Everything after the '#' symbol to the end of the line will be ignored by ALSA.<br />
key = value # Equal signs are usually left out, since space can also be used as an separator.<br />
<br />
key value # Equivalent to the example above.<br />
}}<br />
<br />
Separators are used to indicate the start and end of an assignment, but using commas or whitespace is also possible.<br />
<br />
{{hc|Separators|2=<br />
# The following three assignments are equivalent.<br />
key value0; key valueN;<br />
key value0, key valueN,<br />
key value0 key valueN<br />
<br />
key<br />
value0<br />
key<br />
valueN<br />
}}<br />
<br />
Compound assignments use braces as separators.<br />
{{hc|Compound assignment|2=<br />
key { subkey0 value0;<br />
subkeyN valueN; }<br />
<br />
key.subkey0 value0; # Equivalent to the example above.<br />
key.subkeyN valueN;<br />
}}<br />
<br />
For easier reading, it is recommended to use first style for definitions including more than three keys.<br />
<br />
Array definitions use brackets as separators.<br />
<br />
{{hc|Single array|2=<br />
key [ "value0";<br />
"valueN"; ]<br />
<br />
key.0 "value0"; # Equivalent to the example above<br />
key.N "valueN";<br />
}}<br />
<br />
Everything depends on user preferences when it comes to different styles of configuration, however one should avoid mixing different styles. Further information on basic configuration can be found [http://www.volkerschatz.com/noise/alsa.html#basicconf here].<br />
<br />
==== Data types ====<br />
<br />
ALSA uses different data types for parameter values, which must be set in the users respective configuration file. Some keys accept multiple data types, while most do not. A list of configuration options and their respective type requirements for PCM plugins can be found [http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html here]<br />
<br />
==== Operation modes ====<br />
<br />
There are different operation modes for parsing nodes, the default mode is merge and create. If operation mode is either merge/create or merge type checking is done. Only same type assignments can be merged, so strings cannot be merged with integers. Trying to define a simple assignment in default operation mode to a compound (and vice versa) will also not work.<br />
<br />
Prefixes of operation modes:<br />
* "+" -- merge and create<br />
* "-" -- merge<br />
* "?" -- do not override<br />
* "!" -- override<br />
<br />
{{hc|Operation modes|2=<br />
# Merge/create - If a node does not exist, it is created. If it does exist and types match,<br />
# subkeyN is merged into key.<br />
key.subkeyN valueN;<br />
<br />
# Merge/create - Equivalent to above<br />
key.+subkeyN valueN;<br />
<br />
# Merge - Node key.subkeyN must already exist and must have same data type<br />
key.-subkeyN valueN;<br />
<br />
# No override - Ignore new assignment if key.subkeyN node already exists<br />
key.?subkeyN valueN;<br />
<br />
# Override - Removes subkeyN and all keys below it, then creates node key.subkeyN<br />
key.!subkeyN valueN;<br />
}}<br />
<br />
Using override operation mode, when done correctly, is usually safe, however one should bear in mind, that there might be other necessary keys in a node for proper functioning.<br />
<br />
{{warning| Overriding pcm node itself will most definitely make alsa unusable, since every plugin definition will be deleted. Therefore <b>do not use !pcm.key</b> unless you are making a configuration from scratch.}}<br />
<br />
===== An example of setting default device using "defaults" node =====<br />
<br />
Assuming that "defaults" node is set in {{ic|/usr/share/alsa/alsa.conf}}, where "defaults.pcm.card" and its "ctl" counterpart have assignment values "0" (type integer), user wants to set default pcm and control device to (third) sound card "2" or "SB" for an Azalia sound card.<br />
<br />
{{hc|Defaults node|2=<br />
defaults.ctl.card 2; # Sets default device and control to third card (counting begins with 0).<br />
defaults.pcm.card 2; # This does not change the data type.<br />
<br />
defaults.ctl.+card 2; # Equivalent to above.<br />
defaults.pcm.+card 2;<br />
<br />
defaults.ctl.-card 2; # Same effect on a default setup, however if defaults node was removed or<br />
defaults.pcm.-card 2; # type has been changed merge operation mode will result in no changes.<br />
<br />
defaults.pcm.?card 2; # This does nothing, since this assignment already exists.<br />
defaults.ctl.?card 2;<br />
<br />
defaults.pcm.!card "SB"; # The override operation mode is necessary here, because of<br />
defaults.ctl.!card "SB"; # different value types.<br />
}}<br />
<br />
Using double quotes here automatically sets values data type to string, so in the above example setting defaults.pcm.!card "2" would result in retaining last default device, in this case card 0. Using double quotes for strings is not mandatory as long as no special characters are used, which ideally should never be the case. This may be irrelevant in other assignments.<br />
<br />
{{note| From a configuration point of view those are not equivalent to setting a compound "default" pcm device, since most users specify addressing type in there also, which actually may be the same, but the assignment itself still differs. Also defaults.pcm.card is referred to multiple times in alsa configuration files, usually as a fallback assignment, where different environment variables take precedence.}}<br />
<br />
==== Nesting ====<br />
<br />
Sometimes it may be useful and even easier to read using nesting in configuration.<br />
<br />
{{hc|Nesting PCM plugins|2=<br />
pcm.azalia { type hw; card 0 }<br />
pcm.!default { type plug; slave.pcm "azalia" }<br />
<br />
# is equivalent to<br />
<br />
pcm.!default { type plug; slave.pcm { type hw; card 0; } }<br />
<br />
# which is also equivalent to<br />
<br />
pcm.!default.type plug;<br />
pcm.default.slave.pcm.type hw;<br />
pcm.default.slave.pcm.card 0;<br />
}}<br />
<br />
==== Including configuration files ====<br />
<br />
{{hc|Include other configuration files|2=<br />
</path/to/configuration-file> # Include a configuration file<br />
<confdir:/path/to/configuration-file> # Reference to a global configuration directory<br />
}}<br />
<br />
=== Set the default sound card ===<br />
<br />
{{Expansion|Explain the difference between a "card" and a "device." {{ic|amixer --help}} suggests the two are not synonymous}}<br />
<br />
{{Style|There is no previous instruction regarding {{ic|defaults.pcm.device}}.}}<br />
<br />
In addition to the previous instruction regarding {{ic|defaults.pcm.card}} and {{ic|defaults.pcm.device}}, if your sound card order changes on boot, you can specify their order in any file ending with {{ic|.conf}} in {{ic|/etc/modprobe.d}} ({{ic|/etc/modprobe.d/alsa-base.conf}} is suggested).<br />
For example, if you want your mia sound card to be #0:<br />
<br />
{{hc|/etc/modprobe.d/alsa-base.conf|2=<br />
options snd_mia index=0<br />
options snd_hda_intel index=1<br />
}}<br />
<br />
Use {{ic|$ cat /proc/asound/modules}} to get the loaded sound modules and their order. This list is usually all that is needed for the loading order. Use {{ic|<nowiki>$ lsmod | grep snd</nowiki>}} to get a devices & modules list. This configuration assumes you have one mia sound card using {{ic|snd_mia}} and one (e.g. onboard) card using {{ic|snd_hda_intel}}.<br />
<br />
You can also provide an index of {{ic|-2}} to instruct ALSA to never use a card as the primary one. Distributions such as Linux Mint and Ubuntu use the following settings to avoid USB and other "abnormal" drivers from getting index {{ic|0}}:<br />
<br />
{{hc|/etc/modprobe.d/alsa-base.conf|2=<br />
options bt87x index=-2<br />
options cx88_alsa index=-2<br />
options saa7134-alsa index=-2<br />
options snd-atiixp-modem index=-2<br />
options snd-intel8x0m index=-2<br />
options snd-via82xx-modem index=-2<br />
options snd-usb-caiaq index=-2<br />
options snd-usb-ua101 index=-2<br />
options snd-usb-us122l index=-2<br />
options snd-usb-usx2y index=-2<br />
options snd-pcsp index=-2<br />
options snd-usb-audio index=-2<br />
}}<br />
<br />
These changes require a system reboot.<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773]<br />
<br />
==== Select the default PCM via environment variable ====<br />
<br />
{{Tip|An explanation of the terminology of a "card", "device", "subdevice" (a "card" is not a "device") and "PCM" can be found on [[wikipedia:Advanced Linux Sound Architecture#Concepts]].}}<br />
<br />
Probably it is enough to set ALSA_CARD to the name of the device. First, get the names with {{ic|aplay -l}}, then set ALSA_CARD to the name which comes after the colon and before the bracket; e.g. if you have<br />
<br />
{{ic|card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]}}<br />
<br />
then set ALSA_CARD=HDMI.<br />
<br />
Other variables are also checked in the default global configuration:<br />
{{hc|/usr/share/alsa/alsa.conf|2=<br />
Variable name # Definition<br />
ALSA_CARD # pcm.default pcm.hw pcm.plughw ctl.sysdefault ctl.hw rawmidi.default rawmidi.hw hwdep.hw<br />
ALSA_CTL_CARD # ctl.sysdefault ctl.hw<br />
ALSA_HWDEP_CARD # hwdep.default hwdep.hw<br />
ALSA_HWDEP_DEVICE # hwdep.default hwdep.hw<br />
ALSA_PCM_CARD # pcm.default pcm.hw pcm.plughw<br />
ALSA_PCM_DEVICE # pcm.hw pcm.plughw<br />
ALSA_RAWMIDI_CARD # rawmidi.default rawmidi.hw<br />
ALSA_RAWMIDI_DEVICE # rawmidi.default rawmidi.hw<br />
}}<br />
<br />
Alternatively, you can override the behavior in your own configuration file, preferably the global one (/etc/asound.conf). Add:<br />
{{bc|1=<br />
pcm.!default {<br />
type plug<br />
slave.pcm {<br />
@func getenv<br />
vars [ ALSAPCM ]<br />
default "hw:Audigy2"<br />
}<br />
}<br />
}}<br />
<br />
In this case as well, replace {{ic|Audigy2}} with the name of your device. You can get the names with {{ic|aplay -l}} or you can also use PCMs like '''surround51'''. But if you need to use the microphone it is a good idea to select full-duplex PCM as default.<br />
<br />
Now you can select the sound card when starting programs by just changing the environment variable {{ic|ALSAPCM}}. It works fine for all program that do not allow to select the card, for the others ensure you keep the default card.<br />
For example, assuming you wrote a downmix PCM called {{ic|mix51to20}} you can use it with {{Pkg|mplayer}} using the commandline {{ic|ALSAPCM&#61;mix51to20 mplayer example_6_channel.wav}}<br />
<br />
{{note|Pay attention to default addressing type.}}<br />
<br />
==== Alternative method ====<br />
{{Tip|This process can be partly automated using {{AUR|asoundconf}}.}}<br />
<br />
First you will have to find out the card and device id that you want to set as the default:<br />
<br />
{{hc|$ aplay -l|2=<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: JamLab [JamLab], device 0: USB Audio [USB Audio]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 2: Audio [Altec Lansing XT1 - USB Audio], device 0: USB Audio [USB Audio]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
}}<br />
<br />
{{Warning|Simply setting a {{ic|type hw}} as default card is equivalent to addressing hardware directly, which leaves the device unavailable to other applications. This method is only recommended if it is a part of a more sophisticated setup {{ic|~/.asoundrc}} or if user deliberately wants to address sound card directly (digital output through {{ic|eic958}} or dedicated music server for example).}}<br />
<br />
For example, the last entry in this list has the card ID 2 and the device ID 0. To set this card as the default, you can either use the system-wide file {{ic|/etc/asound.conf}} or the user-specific file {{ic|~/.asoundrc}}. You may have to create the file if it does not exist. Then insert the following options with the corresponding card.<br />
{{bc|<br />
pcm.!default {<br />
type hw<br />
card 2<br />
}<br />
<br />
ctl.!default {<br />
type hw<br />
card 2<br />
}<br />
}}<br />
<br />
{{Note|For the Asus U32U series it seems that card should be set to 1 for both pcm and ctl.}}<br />
<br />
In most cases it is recommended to use sound card names instead of number references, which also solves boot order problem. Therefore the following would be correct for the above example.<br />
{{bc|<br />
pcm.!default {<br />
type hw<br />
card Audio<br />
}<br />
<br />
ctl.!default {<br />
type hw<br />
card Audio<br />
}<br />
}}<br />
<br />
To get valid ALSA card names, use ''aplay'':<br />
{{hc|<nowiki>$ aplay -l | awk -F \: '/,/{print $2}' | awk '{print $1}' | uniq</nowiki>|<br />
PCH<br />
}}<br />
<br />
Alternatively use ''cat'', which might return unused devices:<br />
{{hc|$ cat /proc/asound/card*/id|<br />
PCH<br />
ThinkPadEC<br />
}}<br />
<br />
{{Note|This method could be problematic if your system has several cards of the same (ALSA)name.}}<br />
<br />
The 'pcm' options affect which card and device will be used for audio playback while the 'ctl' option affects which card is used by control utilities like alsamixer .<br />
<br />
The changes should take effect as soon as you (re-)start an application (MPlayer etc.). You can also test with a command like ''aplay''.<br />
<br />
$ aplay -D default:PCH ''your_favourite_sound.wav''<br />
<br />
If you receive an error regarding your asound configuration, check the [http://www.alsa-project.org/main/index.php/Asoundrc#The_default_plugin upstream documentation] for possible changes to the configuration file format.<br />
<br />
=== Verifying correct sound modules are loaded ===<br />
<br />
You can assume that udev will autodetect your sound properly. You can check this with the command:<br />
<br />
{{hc|<nowiki>$ lsmod | grep '^snd' | column -t</nowiki>|2=<br />
snd_hda_codec_hdmi 22378 4<br />
snd_hda_codec_realtek 294191 1<br />
snd_hda_intel 21738 1<br />
snd_hda_codec 73739 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel<br />
snd_hwdep 6134 1 snd_hda_codec<br />
snd_pcm 71032 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec<br />
snd_timer 18992 1 snd_pcm<br />
snd 55132 9 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer<br />
snd_page_alloc 7017 2 snd_hda_intel,snd_pcm<br />
}}<br />
<br />
If the output looks similar, your sound drivers have been successfully autodetected.<br />
{{Note|Since {{ic|udev>&#61;171}}, the OSS emulation modules ({{ic|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) are not loaded by default: [[kernel modules#Manual module handling|Load them manually]], if they are needed.}}<br />
<br />
You might also want to check the directory {{ic|/dev/snd/}} for the right device files:<br />
<br />
{{hc|$ ls -l /dev/snd|2=<br />
total 0<br />
crw-rw---- 1 root audio 116, 0 Apr 8 14:17 controlC0<br />
crw-rw---- 1 root audio 116, 32 Apr 8 14:17 controlC1<br />
crw-rw---- 1 root audio 116, 24 Apr 8 14:17 pcmC0D0c<br />
crw-rw---- 1 root audio 116, 16 Apr 8 14:17 pcmC0D0p<br />
crw-rw---- 1 root audio 116, 25 Apr 8 14:17 pcmC0D1c<br />
crw-rw---- 1 root audio 116, 56 Apr 8 14:17 pcmC1D0c<br />
crw-rw---- 1 root audio 116, 48 Apr 8 14:17 pcmC1D0p<br />
crw-rw---- 1 root audio 116, 1 Apr 8 14:17 seq<br />
crw-rw---- 1 root audio 116, 33 Apr 8 14:17 timer<br />
}}<br />
<br />
{{Note|If requesting help on IRC or the forums, please post the output of the above commands, if requested.}}<br />
<br />
If you have at least the devices '''controlC0''' and '''pcmC0D0p''' or similar, then your sound modules have been detected and loaded properly.<br />
<br />
If this is not the case, your sound modules have not been detected properly. To solve this, you can try loading the modules manually:<br />
<br />
* Locate the module for your sound card: [http://www.alsa-project.org/main/index.php/Matrix:Main ALSA Soundcard Matrix] The module will be prefixed with 'snd-' (for example: {{ic|snd-via82xx}}).<br />
* [[Kernel modules#Manual module handling|Load the module]].<br />
* Check for the device files in {{ic|/dev/snd}} (see above) and/or try if {{ic|alsamixer}} or {{ic|amixer}} have reasonable output.<br />
* Configure {{ic|snd-NAME-OF-MODULE}} and {{ic|snd-pcm-oss}} to [[Kernel modules#Automatic module loading with systemd|load at boot]].<br />
<br />
=== Getting S/PDIF output ===<br />
[[wikipedia:S/PDIF|S/PDIF]] is a digital audio interface often used to connect a computer to a digital amplifier (such as a home theatre with 5.1/7.1 surround sound). <br />
{{note|With some soundcards this disables analog sound output (eg. Sound Blaster Audigy 2).}}<br />
Depending on what [[shell]] you use, add the following line to your shell's configuration file:<br />
amixer -c 0 cset name='IEC958 Playback Switch' on<br />
<br />
You can see the name of your card's digital output with:<br />
$ amixer scontrols<br />
<br />
=== System-wide equalizer ===<br />
<br />
==== Using ALSAEqual (provides UI) ====<br />
<br />
Install the {{AUR|alsaequal}} package. Also install {{AUR|lib32-alsaequal}} for 32-bit application support. <br />
<br />
After installing the package, add the following to your ALSA configuration file:<br />
<br />
{{hc|/etc/asound.conf|2=<br />
ctl.equal {<br />
type equal;<br />
}<br />
<br />
pcm.plugequal {<br />
type equal;<br />
# Modify the line below if you do not<br />
# want to use sound card 0.<br />
#slave.pcm "plughw:0,0";<br />
# by default we want to play from more sources at time:<br />
slave.pcm "plug:dmix";<br />
}<br />
<br />
# pcm.equal {<br />
# If you do not want the equalizer to be your<br />
# default soundcard comment the following<br />
# line and uncomment the above line. (You can<br />
# choose it as the output device by addressing<br />
# it with specific apps,eg mpg123 -a equal 06.Back_In_Black.mp3)<br />
pcm.!default {<br />
type plug;<br />
slave.pcm plugequal;<br />
}<br />
}}<br />
<br />
And you are ready to change your equalizer using command<br />
$ alsamixer -D equal<br />
<br />
Note that configuration file is different for each user (until not specified else) it is saved in {{ic|~/.alsaequal.bin}}.<br />
so if you want to use ALSAEqual with [[mpd]] or another software running under different user, you can configure it using<br />
$ su mpd -c 'alsamixer -D equal'<br />
or for example, you can make a symlink to your {{ic|.alsaequal.bin}} in his home...<br />
<br />
===== Managing ALSAEqual states =====<br />
<br />
Install the {{AUR|alsaequal-mgr}} package.<br />
<br />
Configure the equalizer as usual with<br />
$ alsamixer -D equal<br />
<br />
When you are satisfied with the state, you may give it a name ("foo" in this example) and save it:<br />
$ alsaequal-mgr save foo<br />
<br />
The state "foo" can then be restored at a later time with<br />
$ alsaequal-mgr load foo<br />
<br />
You can thus create different equalizer states for games, movies, music genres, VoIP apps, etc. and reload them as necessary.<br />
<br />
See the [http://xyne.archlinux.ca/projects/alsaequal-mgr/ project page] and the help message for more options.<br />
<br />
==== Using mbeq ====<br />
<br />
{{Note|This method requires the use of a [[Wikipedia:LADSPA|LADSPA]] plugin which might be CPU intensive during playback. In addition, this was made with stereophonic sound (e.g. headphones) in mind.}}<br />
<br />
Install the {{Pkg|alsa-plugins}}, {{Pkg|ladspa}} and {{Pkg|swh-plugins}} packages if you do not already have them.<br />
<br />
If you have not already created either an {{ic|~/.asoundrc}} or a {{ic|/etc/asound.conf}} file, then create either one and insert the following:<br />
<br />
{{hc|/etc/asound.conf|2=<br />
pcm.eq {<br />
type ladspa<br />
<br />
# The output from the EQ can either go direct to a hardware device<br />
# (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go<br />
# to the software mixer shown here.<br />
#slave.pcm "plughw:0,0"<br />
slave.pcm "plug:dmix"<br />
<br />
# Sometimes you may need to specify the path to the plugins,<br />
# especially if you have just installed them. Once you have logged<br />
# out/restarted this should not be necessary, but if you get errors<br />
# about being unable to find plugins, try uncommenting this.<br />
#path "/usr/lib/ladspa"<br />
<br />
plugins [<br />
{<br />
label mbeq<br />
id 1197<br />
input {<br />
# The following setting is just an example, edit to your own taste:<br />
# bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,<br />
# 50000hz, 10000hz, 20000hz<br />
controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]<br />
}<br />
}<br />
]<br />
}<br />
<br />
# Redirect the default device to go via the EQ - you may want to do<br />
# this last, once you are sure everything is working. Otherwise all<br />
# your audio programs will break/crash if something has gone wrong.<br />
pcm.!default {<br />
type plug<br />
slave.pcm "eq"<br />
}<br />
<br />
# Redirect the OSS emulation through the EQ too (when programs are running through "aoss")<br />
pcm.dsp0 {<br />
type plug<br />
slave.pcm "eq"<br />
}<br />
}}<br />
<br />
== High quality resampling ==<br />
<br />
When software mixing is enabled, ALSA is forced to resample everything to the same frequency (48 kHz by default when supported). By default, it will try to use the ''speexrate'' converter to do so, and fallback to low-quality linear interpolation if it is not available[http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_rate.c;h=2eb4b1b33933dec878d0f25ad118869adac95767;hb=HEAD#l1278].<br />
Thus, if you are getting poor sound quality due to bad resampling, the problem can be solved by simply installing the {{Pkg|alsa-plugins}} package.<br />
<br />
For even higher quality resampling, you can change the default rate converter to {{ic|speexrate_medium}} or {{ic|speexrate_best}}. Both perform well enough that in practice it does not matter which one you choose, so using the best converter is usually not worth the extra CPU cycles it requires.<br />
<br />
To change the default converter place the following contents in your {{ic|~/.asoundrc}} or {{ic|/etc/asound.conf}}:<br />
<br />
{{hc|/etc/asound.conf|<br />
defaults.pcm.rate_converter "speexrate_medium"<br />
}}<br />
<br />
{{note|It is also possible to use {{Pkg|libsamplerate}} converters, which are only about half as fast as the ''speexrate'' converters but do not achieve much higher quality. See [[Talk:Advanced_Linux_Sound_Architecture#On_high_quality_resampling|discussion]].}}<br />
{{note|It is also possible to use lavcrate resamplers that use {{Pkg|ffmpeg}} With filter sizes of lavcrate_faster:4 lavcrate_fast:8 lavcrate:16 lavcrate_high:32 lavcrate_higher:64 With the last 2 options being equal to Kodi low and medium quality resamplers respectively}}<br />
{{note|Some applications (like MPlayer and its forks) do their own resampling by default because some ALSA drivers have incorrect delay reporting when resampling is enabled (hence leading to AV desynchronization), so changing this setting will not have any effect unless you configure them to use ALSA resampling.}}<br />
<br />
== Upmixing/downmixing ==<br />
<br />
=== Upmixing ===<br />
<br />
In order for stereo sources like music to be able to saturate a 5.1 or 7.1 sound system, you need to use upmixing. In darker days this used to be tricky and error prone but nowadays plugins exist to easily take care of this task. We will use the {{ic|upmix}} plugin, included in the {{Pkg|alsa-plugins}} package.<br />
<br />
Then add the following to your ALSA configuration file of choice (either {{ic|/etc/asound.conf}} or {{ic|~/.asoundrc}}):<br />
<br />
{{bc|<br />
pcm.upmix71 {<br />
type upmix<br />
slave.pcm "surround71"<br />
delay 15<br />
channels 8<br />
}<br />
}}<br />
<br />
You can easily change this example for 7.1 upmixing to 5.1 or 4.0.<br />
<br />
The following example adds a new PCM channel that you can use for upmixing. If you want all sound sources to go through this channel, add it as a default below the previous definition like so:<br />
<br />
pcm.!default "plug:upmix71"<br />
<br />
The plugin automatically allows multiple sources to play through it without problems so setting is as a default is actually a safe choice.<br />
If this is not working, you have to setup your own dmixer for the upmixing PCM like this:<br />
{{bc|1=<br />
pcm.dmix6 {<br />
type asym<br />
playback.pcm {<br />
type dmix<br />
ipc_key 567829<br />
slave {<br />
pcm "hw:0,0"<br />
channels 6<br />
}<br />
}<br />
}<br />
<br />
}}<br />
<br />
and use "dmix6" instead of "surround71".<br />
If you experience skipping or distorted sound, consider increasing the buffer_size (to 32768, for example) or use a [[#High quality resampling|high quality resampler]].<br />
<br />
=== Downmixing ===<br />
<br />
If you want to downmix sources to stereo because you, for instance, want to watch a movie with 5.1 sound on a stereo system, use the {{ic|vdownmix}} plugin, included in the {{Pkg|alsa-plugins}} package.<br />
<br />
Again, in your configuration file, add this:<br />
<br />
{{bc|1=<br />
pcm.!surround51 {<br />
type vdownmix<br />
slave.pcm "default"<br />
}<br />
pcm.!surround40 {<br />
type vdownmix<br />
slave.pcm "default"<br />
}<br />
}}<br />
<br />
{{Note|1=This might not be enough to make downmixing working, see [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541786]. So, you might also need to add {{ic|pcm.!default "plug:surround51"}} or {{ic|pcm.!default "plug:surround40"}}. Only one {{ic|vdownmix}} plug can be used; if you have 7.1 channels, you will need to use {{ic|surround71}} instead the configuration above. A good example, which includes a configuration that makes both {{ic|vdownmix}} and {{ic|dmix}} working, can be found [https://bbs.archlinux.org/viewtopic.php?id=167275 here].}}<br />
<br />
== Dmix ==<br />
<br />
Mixing enables multiple applications to output sound at the same time. Most discrete sound cards support hardware mixing, which is enabled by default if available. Integrated motherboard sound cards (such as Intel HD Audio), usually do not support hardware mixing. On such cards, software mixing is done by an ALSA plugin called {{ic|dmix}}. This feature is enabled automatically if hardware mixing is unavailable.<br />
<br />
{{Note|Dmix is enabled by default for soundcards which do not support hardware mixing. Dmix is not enabled by default for digital output (S/PDIF) and will require the configuration snippet below.}}<br />
<br />
To manually enable dmix, add the following to your ALSA configuration file:<br />
<br />
{{hc|/etc/asound.conf|2=<br />
pcm.dsp {<br />
type plug<br />
slave.pcm "dmix"<br />
}<br />
}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hot-plugging a USB sound card ===<br />
<br />
See [http://alsa.opensrc.org/Udev Writing Udev rules for ALSA].<br />
<br />
=== Simultaneous output ===<br />
<br />
You might want to play music via external speakers connected via mini jack and internal speakers simultaneously. This can be done by unmuting '''Auto-Mute''' item using {{ic|alsamixer}} or {{ic|amixer}}:<br />
$ amixer sset "Auto-Mute" unmute<br />
<br />
and then unmuting other required items, such as '''Headphones''', '''Speaker''', '''Bass Speaker'''...<br />
{{Note|If you have a crackling sound through headphones connector (mini-jack) after, see [[/Troubleshooting#Crackling_sound_through_mini-jack_.28headphones_connector.29|here]].}}<br />
<br />
=== Keyboard volume control ===<br />
<br />
Map the following commands to your volume keys: {{ic|XF86AudioRaiseVolume}}, {{ic|XF86AudioLowerVolume}}, {{ic|XF86AudioMute}}<br />
<br />
To raise the volume:<br />
amixer set Master 5%+<br />
<br />
To lower the volume:<br />
amixer set Master 5%-<br />
<br />
To toggle mute/unmute of the volume:<br />
amixer set Master toggle<br />
<br />
=== Virtual sound device using snd-aloop ===<br />
<br />
You might want a jack alternative to create a virtual recording or play device in order to mix different sources, using the snd-aloop module:<br />
modprobe snd-aloop<br />
<br />
List your new virtual devices using:<br />
aplay -l<br />
<br />
now you can for example using ffmpeg:<br />
ffmpeg -f alsa -i hw:1,1,0 -f alsa -i hw:1,1,1 -filter_complex amerge output.mp3<br />
<br />
In the hw:R,W,N format R is your virtual card device number, W 1 recording devices 0 for writing, N is your sub device you can use all the virtual devices available and play/stop using applications like mplayer:<br />
mplayer -ao alsa:device=hw=1,0,0 fileA<br />
mplayer -ao alsa:device=hw=1,0,1 fileB <br />
<br />
Another thing you could do with this approach, is using festival to generate a voice into a recording stream using an script like this:<br />
#!/bin/bash<br />
echo $1|iconv -f utf-8 -t iso-8859-1| text2wave > "_tmp_.wav"; <br />
mplayer -ao alsa:device=hw=2,0,0 "_tmp.wav";<br />
rm "_tmp.wav";<br />
<br />
=== Debugging ALSA ===<br />
<br />
==== Retrieving the driver state ====<br />
<br />
The {{Pkg|alsa-utils}} package also contains the {{ic|alsa-info.sh}} command, which can be used to gather detailed data on the ALSA driver and user-space state.<br />
<br />
See [http://alsa-project.org/main/index.php/Bug_Tracking ALSA bug tracking] for more info.<br />
<br />
==== Reconfiguring input/output ports ====<br />
<br />
The {{Pkg|alsa-tools}} package contains the {{ic|hdajackretask}} tool, which can be used (on Intel HDA cards) to reconfigure the sound card input/output ports; for instance, to turn a microphone jack into a headphone jack.<br />
<br />
==== Resetting codecs ====<br />
<br />
The ALSA driver can fully reconfigure attached codecs (the parts of the sound system that actually process audio streams), by doing:<br />
<br />
# echo 1 > /sys/class/sound/''card''/reconfig<br />
<br />
Before doing this, all processes using the ALSA driver (such as [[PulseAudio#Running|Pulseaudio]] or [[JACK]]) must be stopped.<br />
<br />
=== Correctly detect microphone plugged in a 4-pin 3.5mm (TRRS) jack ===<br />
<br />
On some modern laptops you may have a combined 3.5mm headset jack, instead of two separated ones, which may not be correctly detected by default.<br />
To make ALSA correctly detect plug-in status on your 3.5mm jack, you could put the following line into your {{ic|/etc/modprobe.d/alsa-base.conf}} :<br />
<br />
options snd_hda_intel index=0 model=[YOUR_MODEL_SETTING]<br />
<br />
For complete list of options to put in {{ic|[YOUR_MODEL_SETTING]}}, see [http://git.alsa-project.org/?p=alsa-kernel.git;a=blob;f=Documentation/sound/alsa/HD-Audio-Models.txt;hb=HEAD HD-Audio-Models.txt].<br />
Tested with Gigabyte Aero15 2017 (P65 Model), with ALC255 and set model to {{ic|dell-headset-multi}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.alsa-project.org/ ALSA wiki]<br />
* [http://www.alsa-project.org/main/index.php/Asoundrc Asoundrc] <br />
* [http://alsa.opensrc.org/ Unofficial ALSA wiki]<br />
* [http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt Advanced ALSA module configuration]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=36815 HOWTO: compile driver from svn]<br />
* [http://www.volkerschatz.com/noise/alsa.html A close look at ALSA: ALSA concept introduction]<br />
* [http://www.sabi.co.uk/Notes/linuxSoundALSA.html Linux ALSA sound notes]</div>1https://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X1_Carbon_(Gen_6)&diff=540789Lenovo ThinkPad X1 Carbon (Gen 6)2018-09-11T14:48:53Z<p>1: /* BIOS */ fix typo</p>
<hr />
<div>[[Category:Lenovo]]<br />
[[ja:Lenovo ThinkPad X1 Carbon (Gen 6)]]<br />
{{Related articles start}}<br />
{{Related|Lenovo ThinkPad X1 Carbon}}<br />
{{Related|Lenovo ThinkPad X1 Carbon (Gen 2)}}<br />
{{Related|Lenovo ThinkPad X1 Carbon (Gen 3)}}<br />
{{Related|Lenovo ThinkPad X1 Carbon (Gen 4)}}<br />
{{Related|Lenovo ThinkPad X1 Carbon (Gen 5)}}<br />
{{Related articles end}}<br />
<br />
{{tip| A great resource for thinkpads is https://www.thinkwiki.org/wiki/ThinkWiki}}<br />
<br />
== Model description ==<br />
<br />
The Lenovo ThinkPad X1 Carbon, 6th generation is an ultrabook introduced in early 2018. It comes in several variants({{ic|20KH*}} and {{ic|20KG*}}) and features a 14" screen, 8th-gen Intel Core processors and integrated [[Intel graphics|Intel UHD 620 graphics]].<br />
<br />
To ensure you have this version, [[install]] the package {{Pkg|dmidecode}} and run:<br />
<br />
{{bc|# dmidecode -t system &#124; grep Version<br />
<br />
Version: ThinkPad X1 Carbon 6th<br />
}}<br />
<br />
=== Support ===<br />
<br />
{| class="wikitable"<br />
| '''Device''' || '''Working''' || '''Modules'''<br />
|-<br />
| [[Intel graphics]] || {{Yes}} || i915, (intel_agp)<br />
|-<br />
| [[Wireless network configuration#iwlwifi|Wireless network]] || {{Yes}} || iwlmvm<br />
|-<br />
| Native Ethernet with [https://www3.lenovo.com/us/en/accessories-and-monitors/cables-and-adapters/adapters/CABLE-BO-TP-OneLink%2B-to-RJ45-Adapter/p/4X90K06975 included dongle] || {{Yes}} || ?<br />
|-<br />
| Mobile broadband || {{No}}* || ?<br />
|-<br />
| Audio || {{Yes}} || snd_hda_intel<br />
|-<br />
| [[Touchpad]] || {{Yes}} || psmouse, rmi_smbus, i2c_i801<br />
|-<br />
| [[TrackPoint]] || {{Yes}} || psmouse, rmi_smbus, i2c_i801<br />
|-<br />
| Camera || {{Yes}} || uvcvideo<br />
|-<br />
| Fingerprint Reader || {{No}}** || ?<br />
|-<br />
| [[Power management]] || {{Yes}} || ?<br />
|-<br />
| [[Bluetooth]] || {{Yes}} || btusb<br />
|-<br />
| microSD card reader || {{Yes}} || scsi_mod<br />
|-<br />
| Keyboard Backlight || {{Yes}} || thinkpad_acpi<br />
|-<br />
| Function/Multimedia Keys || {{Yes}} || ?<br />
|}<br />
<nowiki>*</nowiki> no working linux pcie driver for Fibocom L850-GL [https://forums.lenovo.com/t5/Linux-Discussion/X1C-gen-6-Fibocom-L850-GL-Ubuntu-18-04/m-p/4078413 forum link] - also see [https://forums.lenovo.com/t5/Linux-Discussion/Linux-support-for-WWAN-LTE-L850-GL-on-T580-T480/td-p/4067969 this forum] for more progress.<br />
<br />
<nowiki>**</nowiki> [https://github.com/nmikhailov/Validity90 the Validity90 project] began reverse engineering the reader, but updates have stopped recently.<br />
<br />
== BIOS ==<br />
The most convenient way to install Arch Linux is by disabling "Secure Boot" {{ic|Security -> Secure Boot - Set to "Disabled"}}. However it is possible to self-sign your kernel and boot with it enabled. For further information have a look at the [[Secure Boot]] article.<br />
<br />
In case your {{ic|efivars}} are not properly set it is most likely due to you not being booted into [[UEFI]]. Should the problem persist be sure to consult the [[UEFI#UEFI variables]] section.<br />
<br />
=== Updates ===<br />
<br />
==== Automatic Linux Vendor Firmware Service ====<br />
<br />
[https://blogs.gnome.org/hughsie/2018/08/06/please-welcome-lenovo-to-the-lvfs/ In August of 2018 Lenovo has joined] the [https://fwupd.org/ Linux Vendor Firmware Service(LVFS)] project, which enables firmware updates from within the OS.<br />
BIOS updates (and possibly other firmware such as the Thunderbolt controller) can be queried for and installed through [[fwupd]].<br />
<br />
==== Manual Installation ====<br />
<br />
[https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x1-carbon-6th-gen-type-20kh-20kg/downloads BIOS update 1.30] was released on 2018-09-07. Obtain {{aur|geteltorito}} and run {{ic|geteltorito.pl -o bios-update.img n23ur11w.iso}} on the downloaded ISO file to create a valid [[wikipedia:El_Torito_(CD-ROM_standard)|El Torito]] image file, then flash this file on a USB drive via {{ic|dd}} like you would flash [[USB_flash_installation_media|Arch installation media]]. For further information see [[Flashing_BIOS_from_Linux#Bootable_optical_disk_emulation|flashing BIOS from Linux]].<br />
<br />
The ThinkPad X1 Carbon supports setting a custom splash image at the earliest boot stage (instead of the red "Lenovo" logo), more information can be found in the {{ic|README.TXT}} located in the {{ic|FLASH}} folder of the update image.<br />
<br />
== Suspend issues ==<br />
The 6th Generation X1 Carbon supports S0i3 (also known as Windows Modern Standby), but not S3 by default. Missing S3 also causes hybrid-suspend to go directly to hibernate. Thankfully, S3 can be enabled through a BIOS option from BIOS version 1.30 onward.<br />
<br />
=== Enabling S3 ===<br />
<br />
First, verify S3 is not currently available by running the following command and making sure S3 is not listed in the supported modes.<br />
<br />
dmesg | grep -i "acpi: (supports"<br />
<br />
To enable S3 support, make sure you have at least BIOS version 1.30 installed. Then, go into the BIOS configuration, and {{ic|Config -> Power -> Sleep State - Set to "Linux"}}. This should make S3 available. To verify, after making the changes in the BIOS configuration, boot into Linux, and run the {{ic|dmesg | grep -i "acpi: (supports"}} command again to make sure that S3 is now available.<br />
<br />
=== Disabling the memory card reader ===<br />
<br />
You might also need to disable the Realtek memory card reader (which appears to use a constant 2-3 W) either via the BIOS or via<br />
<br />
echo "2-3" | sudo tee /sys/bus/usb/drivers/usb/unbind<br />
<br />
=== BIOS configurations ===<br />
* {{ic|Config -> Thunderbolt BIOS Assist Mode - Set to "Enabled"}}. When disabled, on Linux, power usage appears to be significantly higher because of a substantial number of CPU wakeups during s2idle.<br />
<br />
== Power management/Throttling issues ==<br />
Due to wrong configured power management registers the CPU may consume a lot less power than under windows and the thermal throttling occurs at 80°C (97°C when using Windows, see [https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/ T480s throttling bug]).<br />
<br />
There is a [https://forums.lenovo.com/t5/Linux-Discussion/T480s-low-cTDP-and-trip-temperature-in-Linux/td-p/4028489 post in the official Lenovo forum] to inform Lenovo about this issue.<br />
<br />
=== Throttling fix ===<br />
<br />
An easy package has been written to address the problem until (or if) Lenovo ever solves it.<br />
<br />
Install {{Aur|lenovo-throttling-fix-git}}, then run:<br />
<br />
sudo systemctl enable --now lenovo_fix.service<br />
<br />
The script also supports more advance thermal/performance features including CPU undervolting. See the [https://github.com/erpalma/lenovo-throttling-fix lenovo-throttling-fix repository] <code>README.md</code> for details.<br />
<br />
{{Note|If you installed {{Pkg|thermald}}, it may conflict with the throttling fix in this package. Consider disabling thermald or otherwise work around this.}}<br />
<br />
== TrackPoint and Touchpad issues ==<br />
{{Note|Some models of the 6th generation X1 Carbon seem to have issues with the TrackPoint and Touchpad working at the same time.}}<br />
<br />
To get the TrackPoint and Touchpad to work at the same time, add {{ic|1=synaptics_intertouch=1}} to the {{ic|psmouse}} [[kernel module]] options, for example in the cmdline of the [[boot loader]]:<br />
[...] root=/dev/sda1 rw psmouse.synaptics_intertouch=1 [...]<br />
or by editing {{ic|/etc/modprobe.d/psmouse.conf}}:<br />
options psmouse synaptics_intertouch=1<br />
<br />
{{Note|When using [[TLP]] with default powersaving settings, there might be occasional hiccups such as dropouts of tap-to-click functionality for the Touchpad, as well as the TrackPoint not surviving suspends and needing to be re-initialized.}}<br />
<br />
Reconnecting a dead trackpad can be done via<br />
{{bc|echo -n "none" &#124; sudo tee /sys/bus/serio/devices/serio1/drvctl<br />
echo -n "reconnect" &#124; sudo tee /sys/bus/serio/devices/serio1/drvctl}}<br />
<br />
A [https://gitlab.freedesktop.org/libinput/libinput/issues/46 bug] in the libinput library that caused dropouts of the tap-to-click functionality of the touchpad on the X1 Carbon 6th Gen has been fixed in libinput 1.11.2, which was released on [https://lists.freedesktop.org/archives/wayland-devel/2018-July/038782.html 3 July 2018].<br />
<br />
== Full-disk encryption ==<br />
<br />
=== Ramdisk module ===<br />
With LUKS for root, i915 needs to be loaded in ramdisk in order to access the password prompt.<br />
Add i915 to MODULES list in {{ic|/etc/mkinitcpio.conf}} and regenerate the ramdisk.<br />
<br />
== Tools ==<br />
=== Diagnostics ===<br />
<code>s-tui</code> ({{Aur|s-tui}}): an aesthetically pleasing and useful curses-style interface that shows graphs of CPU frequency, utilization, temperature, and power consumption. It also has a built in stress tester.<br />
<br />
<code>intel_gpu_top</code> ({{Pkg|intel-gpu-tools}}): gives you some top-like info for the integrated GPU. This can be quite useful in diagnosing GPU acceleration issues.<br />
<br />
<code>powertop</code> ({{Pkg|powertop}}): provides detailed information about CPU power consumption and recommendations on how to improve it.<br />
<br />
<code>tlp-stat</code> ({{Pkg|tlp}}): a much simpler alternative to remembering which <code>cat /sys/devices/system/*</code> to run in many cases. It can give very detailed, structured information about components like the battery, processor, graphics card, etc.<br />
<br />
== References ==<br />
* [https://delta-xi.net/#056 A good night's sleep for the Lenovo X1 Carbon Gen6]: Patching ACPI DSDT tables to add S3 support<br />
* [https://forums.lenovo.com/t5/Linux-Discussion/X1-Carbon-Gen-6-cannot-enter-deep-sleep-S3-state-aka-Suspend-to/td-p/3998182/highlight/true Lenovo forums: Cannot enter deep sleep S3]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=234913 Thread: No deep sleep]: Includes DSDT patching solution and further discussion<br />
* [https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/ T480s throttling bug], affects X1C6 as well<br />
* [https://forums.lenovo.com/t5/Linux-Discussion/T480s-low-cTDP-and-trip-temperature-in-Linux/td-p/4028489 Lenovo forums: T480s low cTDP and trip temperature in Linux]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=236367 Thread: TrackPoint/Touchpad issues, 20KG model]<br />
* [https://unix.stackexchange.com/a/431820 StackExchange: Success with enabling RMI4 config flags for Touchpad and TrackPoint]<br />
* [https://patchwork.kernel.org/patch/10324633/ Kernel patch - Input: elantech - add support for SMBus devices]<br />
* [https://patchwork.kernel.org/patch/10330857/ Kernel patch - Input: synaptics - add Lenovo 80 series ids to SMBus]<br />
* [[Kernel_mode_setting#Early_KMS_start|Early KMS start]]: Adding i915 to ramdisk<br />
<br />
== Additional resources ==<br />
<br />
* [https://www.thinkwiki.org/wiki/Category:X1_Carbon_(6th_Gen) ThinkWiki X1 Carbon 6th Gen page]<br />
* Benjamin Tissoires, kernel maintainer of peripherals, has explained how input bugs get fixed in his talk [https://www.youtube.com/watch?v=Bl_0xYxcYd8 Tools to debug a broken input device] ([https://www.x.org/wiki/Events/XDC2015/Program/tissoires_input_debug_tools.html Slides]), especially interesting are slides 16 onward.<br />
* [https://gist.github.com/greigdp/bb70fbc331a0aaf447c2d38eacb85b8f Dell XPS 13 9370 quirks]: Some pointers on getting Watt usage down to ~2W, Intel video powersaving features might be interesting, see also the [[Intel_graphics|Intel Graphics]] page for interesting power-saving options.<br />
* [[Dell XPS 13 (9360)]]: Shares some hardware with the X1C6<br />
* [https://01.org/blogs/rzhang/2015/best-practice-debug-linux-suspend/hibernate-issues Intel Blog: Best practice to debug Linux* suspend/hibernate issues], including the [https://github.com/01org/pm-graph pm-graph] tool to analyze power usage during suspend</div>1https://wiki.archlinux.org/index.php?title=User:1&diff=540105User:12018-09-06T08:47:41Z<p>1: Created page with "I like wikis and I like Linux. This is the best combination of the two."</p>
<hr />
<div>I like wikis and I like Linux. This is the best combination of the two.</div>1https://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_X1_Carbon_(Gen_6)&diff=535853Talk:Lenovo ThinkPad X1 Carbon (Gen 6)2018-08-17T15:18:47Z<p>1: I believe my comment was in the wrong section.</p>
<hr />
<div><br />
== Open Issues ==<br />
<br />
* Issues with TrackPoint on NFC models, as noted [https://bbs.archlinux.org/viewtopic.php?id=236367 in this bbs thread], [https://forums.lenovo.com/t5/Linux-Discussion/Troubles-with-X1-Carbon-2018-X1C6-TouchPad-and-TrackPoint-under/td-p/4004815 on the Lenovo forums] and on [https://unix.stackexchange.com/questions/428975/lenovo-x1-carbon-gen-6-2018-touchpad-and-trackpoint-issues-with-linux Unix StackExchange]<br />
* CPU throttling<br />
* Inclusion of X1C6(and Thinkpads in general) into the <code>fwupd</code> program<br />
:* Status as of 2018-07-31: the X1C6 is [https://fwupd.org/lvfs/device/a4b51dca-8f97-4310-8821-3330f83c9135 now supported] by <code>fwupd</code>, but in my test with BIOS update 1.27 the firmware is downloaded and noticed by the BIOS at boot but updates don't seem to actually get applied. [[User:Aorth|Alan Orth]] ([[User talk:Aorth|talk]]) 12:17, 31 July 2018 (UTC)<br />
<br />
== Fingerprint reader ==<br />
<br />
See [https://github.com/nmikhailov/Validity90 github.com/nmikhailov/Validity90], especially the <code>9a</code> branch.<br />
<br />
Device id: <code>06cb:009a</code><br />
<br />
Status as of 04/2018: "Init works, leds work, scan doesn't work yet"<br />
<br />
== Other Power saving ==<br />
Investigate how to get Watt usage down to ~2W like the [https://gist.github.com/greigdp/bb70fbc331a0aaf447c2d38eacb85b8f Dell XPS 13 9360/9370], similar to the instructions on [[Dell_XPS_13_(9360)|the XPS 9360 page]], especially since the i915 video driver can be tweaked similarly [[Intel_graphics#Module-based_Powersaving_Options|with the Intel Graphics Module Powersaving Options]] since it’s also an HD 620 integrated video unit.<br />
<br />
<br />
--[[User:Mrfaber|Mrfaber]] ([[User talk:Mrfaber|talk]]) 22:42, 18 April 2018 (UTC)<br />
<br />
== NFC ==<br />
<br />
Does anyone know if the NFC itself works? I think it should be listed in the Model description > Support section's feature table.<br />
<br />
--[[User:1|1]] ([[User talk:1|talk]]) 15:09, 17 August 2018 (UTC)</div>1https://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_X1_Carbon_(Gen_6)&diff=535848Talk:Lenovo ThinkPad X1 Carbon (Gen 6)2018-08-17T15:09:29Z<p>1: /* Open Issues */ Asking whether NFC works and suggesting to list that in the supported features table.</p>
<hr />
<div><br />
== Open Issues ==<br />
<br />
* Issues with TrackPoint on NFC models, as noted [https://bbs.archlinux.org/viewtopic.php?id=236367 in this bbs thread], [https://forums.lenovo.com/t5/Linux-Discussion/Troubles-with-X1-Carbon-2018-X1C6-TouchPad-and-TrackPoint-under/td-p/4004815 on the Lenovo forums] and on [https://unix.stackexchange.com/questions/428975/lenovo-x1-carbon-gen-6-2018-touchpad-and-trackpoint-issues-with-linux Unix StackExchange]<br />
:* Does the NFC itself work? If not, I think it should be listed in the Model description > Support section's feature table. [[User:1|1]] ([[User talk:1|talk]]) 15:09, 17 August 2018 (UTC)<br />
* CPU throttling<br />
* Inclusion of X1C6(and Thinkpads in general) into the <code>fwupd</code> program<br />
:* Status as of 2018-07-31: the X1C6 is [https://fwupd.org/lvfs/device/a4b51dca-8f97-4310-8821-3330f83c9135 now supported] by <code>fwupd</code>, but in my test with BIOS update 1.27 the firmware is downloaded and noticed by the BIOS at boot but updates don't seem to actually get applied. [[User:Aorth|Alan Orth]] ([[User talk:Aorth|talk]]) 12:17, 31 July 2018 (UTC)<br />
<br />
== Fingerprint reader ==<br />
<br />
See [https://github.com/nmikhailov/Validity90 github.com/nmikhailov/Validity90], especially the <code>9a</code> branch.<br />
<br />
Device id: <code>06cb:009a</code><br />
<br />
Status as of 04/2018: "Init works, leds work, scan doesn't work yet"<br />
<br />
== Other Power saving ==<br />
Investigate how to get Watt usage down to ~2W like the [https://gist.github.com/greigdp/bb70fbc331a0aaf447c2d38eacb85b8f Dell XPS 13 9360/9370], similar to the instructions on [[Dell_XPS_13_(9360)|the XPS 9360 page]], especially since the i915 video driver can be tweaked similarly [[Intel_graphics#Module-based_Powersaving_Options|with the Intel Graphics Module Powersaving Options]] since it’s also an HD 620 integrated video unit.<br />
<br />
<br />
--[[User:Mrfaber|Mrfaber]] ([[User talk:Mrfaber|talk]]) 22:42, 18 April 2018 (UTC)</div>1