https://wiki.archlinux.org/api.php?action=feedcontributions&user=Aouellette&feedformat=atomArchWiki - User contributions [en]2024-03-29T09:34:20ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=449410Lenovo ThinkPad T460s2016-09-04T15:43:52Z<p>Aouellette: Add links to configuration pages</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Yes}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| [[ThinkPad mobile internet|Mobile Broadband]] || {{Yes}}<br />
|-<br />
| [[Bluetooth]] || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With kernels older than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
With kernels older than 4.6, suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
A long standing kernel bug caused resume from hibernation to fail with a probability that depended on the amount of allocated RAM. This bug is fixed by [https://bugzilla.kernel.org/show_bug.cgi?id=104771 this patch], and is included in the {{AUR|linux-t460s}} package.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake support]])<br />
<br />
== See also ==<br />
<br />
* [http://support.lenovo.com/us/en/products/Laptops-and-netbooks/ThinkPad-T-Series-laptops/ThinkPad-T460s?beta=false Lenovo Support Page]<br />
* [https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=User:Aouellette&diff=449408User:Aouellette2016-09-04T15:38:22Z<p>Aouellette: </p>
<hr />
<div>{{Related articles start}}<br />
{{Related|KDE}}<br />
{{Related|I3}}<br />
{{Related|Sway}}<br />
{{Related|Lenovo ThinkPad Edge E440}}<br />
{{Related|Lenovo ThinkPad T460s}}<br />
{{Related|Raspberry Pi}}<br />
{{Related|Intel Graphics}}<br />
{{Related|SSD}}<br />
{{Related articles end}}<br />
<br />
== My Computers Running Arch ==<br />
<br />
* Lenovo Thinkpad T460s with Intel Core i7 @ 2.60 GHz Skylake HD520 Graphics, and 8GB RAM<br />
* Lenovo Thinkpad E440 with Intel Core i5 @ 2.50 GHz, Haswell HD4600 Graphics, and 4GB RAM<br />
* Raspberry Pi 2 (Arch ARM)<br />
<br />
Hopefully more coming soon ...<br />
<br />
== ==<br />
My [https://github.com/aouelete/dotfiles dotfiles]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=448662Lenovo ThinkPad T460s2016-08-29T22:13:17Z<p>Aouellette: linux 4.5.1 was released long ago, trackpoint works</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Yes}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With kernels older than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
With kernels older than 4.6, suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
A long standing kernel bug caused resume from hibernation to fail with a probability that depended on the amount of allocated RAM. This bug is fixed by [https://bugzilla.kernel.org/show_bug.cgi?id=104771 this patch], and is included in the {{AUR|linux-t460s}} package.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake support]])<br />
<br />
== See also ==<br />
<br />
* [http://support.lenovo.com/us/en/products/Laptops-and-netbooks/ThinkPad-T-Series-laptops/ThinkPad-T460s?beta=false Lenovo Support Page]<br />
* [https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=448661Lenovo ThinkPad T460s2016-08-29T22:11:08Z<p>Aouellette: /* See also */ Add link to lenovo support page</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Y| with linux-4.5.1}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With kernels older than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
With kernels older than 4.6, suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
A long standing kernel bug caused resume from hibernation to fail with a probability that depended on the amount of allocated RAM. This bug is fixed by [https://bugzilla.kernel.org/show_bug.cgi?id=104771 this patch], and is included in the {{AUR|linux-t460s}} package.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake support]])<br />
<br />
== See also ==<br />
<br />
* [http://support.lenovo.com/us/en/products/Laptops-and-netbooks/ThinkPad-T-Series-laptops/ThinkPad-T460s?beta=false Lenovo Support Page]<br />
* [https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Android&diff=445819Android2016-08-07T17:48:12Z<p>Aouellette: /* Alternative connection methods */ add kdeconnect</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Mobile devices]]<br />
[[it:Android]]<br />
[[ja:Android]]<br />
[[ru:Android]]<br />
[[zh-CN:Android]]<br />
{{Related articles start}}<br />
{{Related|Android notifier}}<br />
{{Related|Android tethering}}<br />
{{Related articles end}}<br />
<br />
== Exploring Android device ==<br />
<br />
There are few methods of exploring your device:<br />
<br />
*[[MTP]] over USB for files transferring.<br />
*[[#Alternative connection methods|Alternative methods]] (such as FTP, SSH).<br />
<br />
For more advanced usage, development, flashing and restore:<br />
*[[#Android Debug Bridge (ADB)|ADB]] mostly for development purposes.<br />
*[[#Restoring Android|Restoring Android]] for flashing and restoring Android firmwares (includes fastboot).<br />
<br />
== Android development ==<br />
<br />
There are 3 steps that need to be performed before you can develop Android applications on your Arch Linux box:<br />
<br />
# Install the Android SDK core component,<br />
# Install one or several Android SDK Platform packages,<br />
# Install one of the IDEs compatible with the Android SDK.<br />
<br />
=== Android SDK core components ===<br />
<br />
{{Note|If you are running a 64-bit system, make sure the [[multilib]] repository is enabled to avoid "error: target not found: lib32-zlib" error messages.}}<br />
<br />
{{Note|If you plan to install [[#Android Studio]] and want the IDE to manage your SDK installation, you do not need to install these packages}}<br />
<br />
Before developing Android applications, you need to install the Android SDK, which is made of 3 distinct packages, all installable from [[AUR]]:<br />
<br />
# {{AUR|android-sdk}}<br />
# {{AUR|android-sdk-platform-tools}}<br />
# {{AUR|android-sdk-build-tools}}<br />
<br />
{{AUR|android-support}} is also required if supporting older devices.<br />
<br />
Android-sdk will be installed on {{ic|/opt/android-sdk}}. This folder has root permissions, so keep in mind to run sdk manager as root, otherwise you will not be able to modify anything in this directory. If you intend to use it as a regular user, create the Android sdk users group:<br />
# groupadd sdkusers<br />
<br />
Add your user into this group:<br />
# gpasswd -a <user> sdkusers<br />
<br />
Change folder's group.<br />
# chown -R :sdkusers /opt/android-sdk/<br />
<br />
Change permissions of the folder so the user that was just added to the group will be able to write in it:<br />
# chmod -R g+w /opt/android-sdk/<br />
<br />
Re-login or as <user> log your terminal in to the newly created group:<br />
<br />
$ newgrp sdkusers<br />
<br />
{{Note|As an alternative to a global install with the [[AUR]] packages, the SDK can be installed to a user's home directory via [https://developer.android.com/sdk/index.html the upstream instructions]. You may also use the android-*-dummy packages in the [[AUR]] to handle the system dependencies.}}<br />
<br />
=== Android SDK platform API ===<br />
<br />
{{Note|If you plan to install [[#Android Studio]] and want the IDE to handle your SDK, you don't need to install these packages}}<br />
<br />
Install the desired Android SDK Platform package from the [[AUR]]:<br />
<br />
* {{aur|android-platform}} (latest)<br />
* {{aur|android-platform-23}}<br />
* {{aur|android-platform-22}}<br />
* {{aur|android-platform-21}}<br />
* {{aur|android-platform-20}}<br />
* {{aur|android-platform-19}}<br />
* {{aur|android-platform-18}}<br />
* {{aur|android-platform-17}}<br />
* {{aur|android-platform-16}}<br />
* {{aur|android-platform-15}}<br />
* {{aur|android-platform-14}}<br />
<br />
=== Development environment ===<br />
<br />
Android Studio is the new official Android development environment based on IntelliJ IDEA. Alternatively, you can use [[Eclipse]] with the official but deprecated ADT plugin, or [[Netbeans]] with the NBAndroid plugin. All are described below.<br />
<br />
==== Android Studio ====<br />
<br />
[https://developer.android.com/sdk/index.html Android Studio] is the official Android development environment based on [https://www.jetbrains.com/idea/ IntelliJ Idea]. Android Studio replaces the older [https://developer.android.com/tools/help/adt.html Eclipse Android Developer Tools] and provides integrated Android developer tools for development and debugging.<br />
<br />
You can download and install it with the {{AUR|android-studio}} package from the [[AUR]]. If you get an error about a missing SDK, refer to the section Getting Android SDK platform API above.<br />
<br />
{{Note|1=If you are using a tiling window manager other than i3wm, you may need to apply one of the fixes mentioned in [https://code.google.com/p/android/issues/detail?id=57675 this] issue page.}}<br />
{{Note|1=Make sure you properly [[Java#Change_default_Java_environment|set the Java environment]] otherwise android-studio will not start.}}<br />
{{Note|1=Bad font rendering in Android Studio can be fixed by installing the [[Infinality#Installation|infinality-bundle]] and using infinality patched openJDK 7 ({{AUR|jdk7-openjdk-infinality}}) or openJDK 8 ({{AUR|jdk8-openjdk-infinality}}) from the AUR as mentioned in [https://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-876236 this] issue page. Patched OpenJDK8 is also available from [[Unofficial user repositories#infinality-bundle|Infinality unofficial repository]]. }}<br />
<br />
Normally, apps are built through the Android Studio GUI. To build apps from the commandline (using e.g. {{ic|./gradlew assembleDebug}}), add the following to your {{ic|~/.bashrc}}:<br />
<br />
export ANDROID_HOME=/opt/android-sdk<br />
<br />
==== Eclipse ====<br />
<br />
{{Note|Since 2014-12-08, the ADT plugin is officially considered deprecated and Android Studio is now the official IDE.}}<br />
<br />
The official, but deprecated, [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT] plugin can be installed with the {{AUR|eclipse-android}} package.<br />
<br />
{{Note|<br />
* if you get a message about unresolvable dependencies, install [[Java]] manually and try again.<br />
* as an alternative, you can install the ADT via eclipse's built in "add new software" command (see instructions on ADT site).<br />
* if you are in real trouble, it is also possible to download Android SDK and use the bundled Eclipse. This usually works without problems.<br />
* if you need to install extra SDK plugins not found in the AUR, you must change the file ownership of /opt/android-sdk first. You can do this with {{ic|# chgrp -R users /opt/android-sdk ; chmod -R 0775 /opt/android-sdk}} (see [[File Permissions]] for more details).<br />
}}<br />
<br />
Enter the path to the Android SDK Location in<br />
<br />
Windows -> Preferences -> Android<br />
<br />
{{Note|<br />
If the plugins do not show up in Eclipse after the AUR package has been upgraded, then eclipse probably has out-of-date caches. Running {{ic|sudo eclipse -clean}} once should clear them. If the problem persists, uninstall eclipse and all the plugins, delete {{ic|/usr/share/eclipse}}, and reinstall everything.<br />
}}<br />
<br />
==== Netbeans ====<br />
<br />
If you prefer using [[Netbeans]] as your IDE and want to develop Android applications, download the [http://www.nbandroid.org NBAndroid] by going to:<br />
<br />
Tools -> Plugins -> Settings<br />
<br />
Add the following URL: http://nbandroid.org/release81/updates/updates.xml<br />
<br />
Then go to '''Available Plugins''' and install the '''Android''' and '''JUnit''' plugins. Once you have installed go to:<br />
<br />
Tools -> Options -> Miscellaneous -> Android<br />
<br />
and select the path where the SDK is installed (/opt/android-sdk by default). That is it, now you can create a new Android project and start developing using Netbeans.<br />
<br />
=== Android Debug Bridge (ADB) ===<br />
<br />
{{Tip|For some devices, you may have to enable MTP on the device, before ADB will work. Some other devices require enable PTP mode to work.}}<br />
{{Tip|Many devices' udev rules are included in {{Pkg|libmtp}}, so if you have this installed, the following steps may not be necessary.}}<br />
<br />
==== Connect device ====<br />
To connect to a real device or phone via ADB under Arch, you must:<br />
<br />
# Install {{Pkg|android-tools}}. In addition, you might want to install {{Pkg|android-udev}} if you wish to connect the device to the proper {{ic|/dev/}} entries.<br />
# Enable USB Debugging on your phone or device:<br />
#* Jelly Bean (4.2) and newer: Go to {{ic|Settings --> About Phone}} tap “Build Number” until you get a popup that you have become a developer (7 times). Then go to {{ic|Settings --> Developer --> USB debugging}} and enable it.<br />
#* Older versions: This is usually done from {{ic|Settings --> Applications --> Development --> USB debugging}}. Reboot the phone after checking this option to make sure USB debugging is enabled.<br />
# Add yourself to the ''adbusers'' group:<br />
# gpasswd -a ''username'' adbusers<br />
<br />
If [[#Detect the device|ADB recognizes your device]] (it is visible and accessible in IDE), you are done. Otherwise see instructions below.<br />
<br />
==== Figure out device IDs ====<br />
<br />
<br />
<br />
Each Android device has a USB vendor/product ID. An example for HTC Evo is:<br />
<br />
vendor id: 0bb4<br />
product id: 0c8d<br />
<br />
Plug in your device and execute:<br />
<br />
$ lsusb<br />
<br />
It should come up something like this:<br />
<br />
Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.<br />
<br />
==== Adding udev Rules ====<br />
<br />
Use the rules from [http://source.android.com/source/initializing.html#configuring-usb-access Android developer] or you can use the following template for your udev rules, just replace [VENDOR ID] and [PRODUCT ID] with yours. Copy these rules into {{ic|/etc/udev/rules.d/51-android.rules}}:<br />
<br />
{{hc|/etc/udev/rules.d/51-android.rules|2=<nowiki>SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0660", GROUP="adbusers"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"</nowiki>}}<br />
<br />
Then, to reload your new udev rules, execute:<br />
# udevadm control --reload-rules<br />
<br />
Make sure you are member of {{ic|adbusers}} [[group]] to access {{ic|adb}} devices.<br />
<br />
==== Configuring adb ====<br />
<br />
Instead of using udev rules, you may create/edit {{ic|~/.android/adb_usb.ini}} which contains a list of vendor IDs.<br />
<br />
$ cat ~/.android/adb_usb.ini <br />
0x27e8<br />
<br />
==== Detect the device ====<br />
<br />
After you have setup the udev rules, unplug your device and replug it.<br />
<br />
After running:<br />
<br />
$ adb devices<br />
<br />
you should see something like:<br />
<br />
List of devices attached <br />
HT07VHL00676 device<br />
<br />
==== General usage ====<br />
<br />
You can now use adb to transfer files between the device and your computer. To transfer files to the device, use<br />
$ adb push ''<what-to-copy>'' ''<where-to-place>''<br />
<br />
To transfer files from the device, use<br />
$ adb pull ''<what-to-pull>'' ''<where-to-place>''<br />
<br />
==== Notes & Troubleshooting ====<br />
<br />
* '''ADB''' can also be installed via [[#Android SDK platform API|platform tools]](usually available in {{Ic|/opt/android-sdk/platform-tools/}}), so it might not be necesarry to install {{Pkg|android-tools}} (available in {{Ic|/usr/bin/}}).<br />
<br />
* If you are getting an empty list (your device is not there), it may be because you have not enabled USB debugging on your device. You can do that by going to Settings => Applications => Development and enabling USB debugging. On Android 4.2 (Jelly Bean) the Development menu is hidden; to enable it go to Settings => About phone and tap Build number 7 times.<br />
<br />
* If there are still problems such as ''adb'' displaying {{ic|???????? no permissions}} under devices, try restarting the adb server as root.<br />
# adb kill-server<br />
# adb start-server<br />
<br />
* On moto e it could happen to have a different vendor/product id while you are on sideload or fastboot, verify again lsusb if you get no permission.<br />
<br />
=== NVIDIA Tegra platform ===<br />
<br />
If you target your application at NVIDIA Tegra platform, you might also want to install tools, samples and documentation provided by NVIDIA. In [http://developer.nvidia.com/category/zone/mobile-development NVIDIA Developer Zone for Mobile] there are two tools: <br />
<br />
# The [http://developer.nvidia.com/tegra-resources Tegra Android Development Pack] provides tools (NVIDIA Debug Manager) related to [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT] and their documentation. <br />
# The [http://developer.nvidia.com/tegra-resources Tegra Toolkit] provides tools (mostly CPU and GPU optimization related), samples and documentation. <br />
<br />
Both are currently not available in the [[AUR]] anymore, because NVIDIA requires a registration/login for the download.<br />
<br />
== Building Android ==<br />
<br />
Please note that these instructions are based on the [http://source.android.com/source/building.html official AOSP build instructions]. Other Android-derived systems such as CyanogenMod will often require extra steps.<br />
<br />
=== OS bitness ===<br />
<br />
Android 2.2.x (Froyo) and below are the only versions of Android that will build on a 32-bit system. For 2.3.x (Gingerbread) and above, you will need a 64-bit installation. <br />
<br />
=== Required packages ===<br />
<br />
To build any version of Android, you need to install these packages:<br />
<br />
* 32-bit and 64-bit systems: {{Pkg|gcc}} {{Pkg|git}} {{Pkg|gnupg}} {{Pkg|flex}} {{Pkg|bison}} {{Pkg|gperf}} {{Pkg|sdl}} {{Pkg|wxgtk}} {{Pkg|squashfs-tools}} {{Pkg|curl}} {{Pkg|ncurses}} {{Pkg|zlib}} {{Pkg|schedtool}} {{Pkg|perl-switch}} {{Pkg|zip}} {{Pkg|unzip}} {{Pkg|libxslt}} {{Pkg|python2-virtualenv}} {{Pkg|bc}}<br />
<br />
* 64-bit systems only: {{Pkg|gcc-multilib}} {{Pkg|lib32-zlib}} {{Pkg|lib32-ncurses}} {{Pkg|lib32-readline}}<br />
<br />
* AUR Packages 32-bit and 64-bit systems: {{Aur|ncurses5-compat-libs}}<br />
<br />
* AUR Packages 64-bit systems only: {{Aur|lib32-ncurses5-compat-libs}}<br />
<br />
To build Android 6+, you need to install these additional packages:<br />
<br />
* 32-bit and 64-bit systems: {{Pkg|rsync}}<br />
<br />
{{Note|1=You must now also install {{Pkg|maven}} to build CyanogenMod since, from cm-13.0, they are using maven artifacts}}<br />
<br />
=== Java Development Kit ===<br />
<br />
Android 5 (Lollipop) can be built with {{Pkg|jdk7-openjdk}}.<br />
<br />
Older versions [http://source.android.com/source/initializing.html require] a working '''Oracle JDK''' installed on your build system. It '''will not''' work with OpenJDK.<br />
*For Gingerbread through KitKat (2.3 - 4.4), Java 6 is required, which is available as {{AUR|jdk6}} from the AUR. See [[Java]] if you want to use it besides another (newer) JDK version.<br />
*For Cupcake through Froyo (1.5 - 2.2), Java 5 is required, which is no longer available for Arch Linux.<br />
<br />
=== Setting up the build environment ===<br />
<br />
[[Install]] the {{Pkg|repo}} package, then:<br />
<br />
$ mkdir ~/bin<br />
$ export PATH=~/bin:$PATH<br />
$ curl <nowiki>https://storage.googleapis.com/git-repo-downloads/repo</nowiki> > ~/bin/repo<br />
$ chmod a+x ~/bin/repo<br />
<br />
Create a directory to build.<br />
<br />
$ mkdir ~/android<br />
$ cd ~/android<br />
<br />
You will need to change the default Python from version 3 to version 2:<br />
<br />
$ virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv<br />
<br />
{{Note|During build you may receive error pertaining to missing python modules. A quick and dirty fix is to symlink /usr/lib/python2.7/* to ~/android/venv/python2.7/ (Change ~/android to reflect your build directory if different than above).<br />
Example:<br />
$ ln -s /usr/lib/python2.7/* /Data/Android_Build/venv/lib/python2.7/<br />
}}<br />
Activate the Virtualenv, which will update $PATH to point at Python 2.<br />
<br />
{{Note|this activation is only active for the current terminal session.<br />
}}<br />
<br />
$ source venv/bin/activate<br />
<br />
=== Downloading the source code ===<br />
<br />
This will clone the repositories. You '''only''' need to do this the first time you build Android, or if you want to switch branches.<br />
<br />
* The {{ic|repo}} has a {{ic|-j}} switch that operates similarly to the one used with {{ic|make}}. Since it controls the number of simultaneous downloads, you should adjust the value depending on downstream network bandwidth.<br />
<br />
* You will need to specify a '''branch''' (release of Android) to check out with the {{ic|-b}} switch. If you leave the switch out, you will get the so-called '''master branch'''.<br />
<br />
$ repo init -u https://android.googlesource.com/platform/manifest -b master<br />
$ repo sync -j4<br />
<br />
{{Note|To further decrease sync times, you can utilize the -c switch with the repo command as such:<br />
$ repo sync -j8 -c<br />
The {{ic|-c}} switch will only sync the branch which is specified in the manifest, which in turn is determined by the branch specified with the {{ic|-b}} switch, or the default branch set by the repository maintainer.<br />
}}<br />
<br />
Wait a long time. Just the uncompiled source code, along with the {{ic|.repo}} and {{ic|.git}} directories that are used to keep track of it, are well over 10 GB. As of Android 6.0.1, the entire codebase totals 40 GB.<br />
<br />
{{Note|If you want to update your local copy of the Android source, at a later time, simply enter the build directory, load the Virtualenv, and re-sync:<br />
$ repo sync<br />
}}<br />
<br />
=== Building the code ===<br />
<br />
This should do what you need for AOSP:<br />
<br />
$ source build/envsetup.sh<br />
$ lunch full-eng<br />
$ make -j4<br />
<br />
If you run '''lunch''' without arguments, it will ask what build you want to create. Use -j with a number between one and two times number of cores/threads.<br />
<br />
The build takes a very long time.<br />
<br />
{{Note|Make sure you have enough RAM.<br />
Android will use the /tmp directory heavily. By default the size of the partition the /tmp folder is mounted on is half the size of your RAM. If it fills up, the build will fail. 4GB of RAM or more is recommended.<br />
* Alternatively, you can get rid of the tmpfs from [[fstab]] all together. <br />
}}<br />
<br />
{{Note|From the [https://source.android.com/source/building-running.html#build-the-code Android Building and Running guide]:<br />
<br />
"GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32."<br />
<br />
}}<br />
=== Testing the build ===<br />
<br />
When finished, run/test the final image(s).<br />
<br />
$ emulator<br />
<br />
=== Creating a Flashable Image ===<br />
To create an image that can be flashed it is necessary to:<br />
<br />
make -j8 updatepackage<br />
<br />
This will create a zip image under '''out/target/product/hammerhead''' (hammerhead being the device name) that can be flashed.<br />
<br />
== Restoring Android ==<br />
<br />
{{Expansion}}<br />
<br />
In some cases, you want to return to the stock Android after flashing custom ROMs to your Android mobile device. For flashing instructions of your device, please use [http://forum.xda-developers.com/ XDA forums].<br />
<br />
=== Fastboot ===<br />
<br />
Fastboot (as well as [[#Android Debug Bridge (ADB)|ADB]]) comes together with a package {{Pkg|android-tools}} from the [[official repositories]].<br />
<br />
{{Note|Restoring firmwares using {{ic|fastboot}} can be quite tricky, but you might want to browse [http://www.xda-developers.com/ XDA developers forums] for a stock firmware, which is mostly a {{ic|*.zip}} file, but inside of it, comes with the firmware files and {{ic|flash-all.sh}} script. For example, [https://developers.google.com/android/nexus/images Google Nexus] firmwares include {{ic|flash-all.sh}} script or another example could be for OnePlus One - [http://forum.xda-developers.com/oneplus-one/general/guide-return-opo-to-100-stock-t2826541 XDA thread], where you can find firmwares with included {{ic|flash-all.sh}} script.}}<br />
<br />
=== Samsung devices ===<br />
<br />
Samsung devices can't be flashed using '''Fastboot''' tool. Alternatives are only '''Heimdall''' and '''Odin''' (by using Windows and VirtualBox).<br />
<br />
==== Heimdall ====<br />
<br />
[http://glassechidna.com.au/heimdall/ Heimdall] is a cross-platform open-source tool suite used to flash firmware (also known as ROMs) onto Samsung mobile devices and is also known as an alternative to [http://odindownload.com/ Odin]. It can be installed as {{Pkg|heimdall}} or {{AUR|heimdall-git}}.<br />
<br />
The flashing instructions can be found on Heimdall's [https://github.com/Benjamin-Dobell/Heimdall/tree/master/Linux GitHub page] or on [http://forum.xda-developers.com/showthread.php?t=1922461 XDA forums].<br />
<br />
==== Odin (Virtualbox) ====<br />
<br />
It is also possible to restore stock Android on the Samsung devices using [http://odindownload.com/ Odin], but inside the [[VirtualBox]]. For more information, see [http://forum.xda-developers.com/showthread.php?t=758634 XDA thread].<br />
<br />
Arch Linux related steps:<br />
# Install [[VirtualBox]] together with its [[VirtualBox#Extension_pack|extension pack]] and [[VirtualBox#Guest_additions_disc|guest additions]].<br />
# Install your preferred, but compatible with Odin, Windows operating system (with VirtualBox guest additions) into a virtual hard drive using VirtualBox<br />
# Open VirtualBox settings of your Windows operating system, navigate to '''USB''', then tick (or make sure it is ticked) '''Enable USB 2.0 (EHCI) Controller'''.<br />
# At VirtualBox running Windows operating system, click in the menu bar '''Devices''', then '''USB Devices''', then click on your Samsung mobile device connected to your computer via USB.<br />
<br />
Windows related links:<br />
* Samsung drivers can be downloaded from [http://androidxda.com/download-samsung-usb-drivers here].<br />
* Odin can be downloaded from [https://www.androidfilehost.com/?fid=23501681358557126 here].<br />
* Samsung Android firmware can be downloaded from [http://www.sammobile.com/firmwares/ here].<br />
<br />
If you want to make sure that everything is working and ready:<br />
# Turn your device into Download mode and connect to your Linux machine.<br />
# In virtual machine toolbar, select {{ic|devices}} --> {{ic|USB}} --> {{ic|...Samsung...}} device.<br />
# Open Odin. The white box (a big one at the bottom-left side) named '''Message''', should print a line similar to this:<br />
<ID:0/003> Added!!<br />
which means that your device is visible to Odin and is ready to be flashed.<br />
<br />
{{Note|There are no general instructions of restoring stock firmware on Samsung mobile devices. You have to use [https://www.google.com Google] and [http://www.xda-developers.com XDA developers forums] to find a flashing instructions for specific device. For example, this is how the [http://goo.gl/cZLyF8 thread] about the Samsung Galaxy S4 looks like}}<br />
<br />
== Alternative connection methods ==<br />
<br />
=== KDE Connect ===<br />
<br />
{{Pkg|kdeconnect}} integrates your android device with the KDE desktop. Its features include synced notifications, clipboard sync, multimedia control, and file/URL sharing.<br />
<br />
=== adb-sync ===<br />
<br />
[https://github.com/google/adb-sync adb-sync] (available in {{AUR|adb-sync-git}}) is a tool to synchronize files between a PC and an Android device using the ADB protocol.<br />
<br />
=== AirDroid ===<br />
<br />
[http://goo.gl/EZQ9GQ AirDroid] is an Android app to access files from your web browser.<br />
<br />
=== FTP ===<br />
<br />
You run a FTP server on Arch and connect to it from your phone, or the other way around: run a FTP server on your phone and connect to it from Arch.<br />
<br />
See [[List of applications/Internet#FTP]]. There are a lot of FTP clients/servers available for Android.<br />
<br />
=== SSH Server ===<br />
<br />
There are many SSH servers available for Android, it allows you to transfer files using {{ic|scp}} command. See also [[SSH]].<br />
<br />
=== Samba ===<br />
<br />
See [[Samba]].<br />
<br />
== Tips & Tricks ==<br />
<br />
=== During Debugging "Source not found" ===<br />
<br />
Most probably the debugger wants to step into the Java code. As the source code of Android does not come with the Android SDK, this leads to an error. The best solution is to use step filters to not jump into the Java source code. Step filters are not activated by default. To activate them: <br />
Window -> Preferences -> Java -> Debug -> Step Filtering<br />
Consider to select them all. If appropriate you can add the android.* package. See the forum post for more information: http://www.eclipsezone.com/eclipse/forums/t83338.rhtml<br />
<br />
=== Linux distribution on the sdcard ===<br />
<br />
You can install Debian like in this [http://forum.xda-developers.com/showthread.php?t=631389 thread]. Excellent guide to installing Arch in chroot (in parallel with Android) can be found on [http://archlinuxarm.org/forum/viewtopic.php?f=27&t=1361&start=40 archlinuxarm.org forum].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Android Studio: Android Virtual Devices show 'failed to load'. ===<br />
Make sure you've exported the variable {{ic|ANDROID_HOME}} as explained in [[#Android Studio]].<br />
<br />
=== aapt: No such file or directory ===<br />
<br />
The build tools include 32-bit binaries. For this reason they require 32-bit libraries. If you happened to install the SDK manually, you will additionally need to install<br />
'''multilib/lib32-libstdc++5''' and '''multilib/lib32-zlib'''.<br />
<br />
=== ValueError: unsupported pickle protocol ===<br />
<br />
One fix is to issue:<br />
<br />
rm ~/.repopickle_.gitconfig<br />
<br />
If that does not work, then try this:<br />
<br />
rm `find /path/to/android-root -name .repopickle_config`</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Android&diff=445817Android2016-08-07T17:35:40Z<p>Aouellette: /* Fastboot */ fix link</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Mobile devices]]<br />
[[it:Android]]<br />
[[ja:Android]]<br />
[[ru:Android]]<br />
[[zh-CN:Android]]<br />
{{Related articles start}}<br />
{{Related|Android notifier}}<br />
{{Related|Android tethering}}<br />
{{Related articles end}}<br />
<br />
== Exploring Android device ==<br />
<br />
There are few methods of exploring your device:<br />
<br />
*[[MTP]] over USB for files transferring.<br />
*[[#Alternative connection methods|Alternative methods]] (such as FTP, SSH).<br />
<br />
For more advanced usage, development, flashing and restore:<br />
*[[#Android Debug Bridge (ADB)|ADB]] mostly for development purposes.<br />
*[[#Restoring Android|Restoring Android]] for flashing and restoring Android firmwares (includes fastboot).<br />
<br />
== Android development ==<br />
<br />
There are 3 steps that need to be performed before you can develop Android applications on your Arch Linux box:<br />
<br />
# Install the Android SDK core component,<br />
# Install one or several Android SDK Platform packages,<br />
# Install one of the IDEs compatible with the Android SDK.<br />
<br />
=== Android SDK core components ===<br />
<br />
{{Note|If you are running a 64-bit system, make sure the [[multilib]] repository is enabled to avoid "error: target not found: lib32-zlib" error messages.}}<br />
<br />
{{Note|If you plan to install [[#Android Studio]] and want the IDE to manage your SDK installation, you do not need to install these packages}}<br />
<br />
Before developing Android applications, you need to install the Android SDK, which is made of 3 distinct packages, all installable from [[AUR]]:<br />
<br />
# {{AUR|android-sdk}}<br />
# {{AUR|android-sdk-platform-tools}}<br />
# {{AUR|android-sdk-build-tools}}<br />
<br />
{{AUR|android-support}} is also required if supporting older devices.<br />
<br />
Android-sdk will be installed on {{ic|/opt/android-sdk}}. This folder has root permissions, so keep in mind to run sdk manager as root, otherwise you will not be able to modify anything in this directory. If you intend to use it as a regular user, create the Android sdk users group:<br />
# groupadd sdkusers<br />
<br />
Add your user into this group:<br />
# gpasswd -a <user> sdkusers<br />
<br />
Change folder's group.<br />
# chown -R :sdkusers /opt/android-sdk/<br />
<br />
Change permissions of the folder so the user that was just added to the group will be able to write in it:<br />
# chmod -R g+w /opt/android-sdk/<br />
<br />
Re-login or as <user> log your terminal in to the newly created group:<br />
<br />
$ newgrp sdkusers<br />
<br />
{{Note|As an alternative to a global install with the [[AUR]] packages, the SDK can be installed to a user's home directory via [https://developer.android.com/sdk/index.html the upstream instructions]. You may also use the android-*-dummy packages in the [[AUR]] to handle the system dependencies.}}<br />
<br />
=== Android SDK platform API ===<br />
<br />
{{Note|If you plan to install [[#Android Studio]] and want the IDE to handle your SDK, you don't need to install these packages}}<br />
<br />
Install the desired Android SDK Platform package from the [[AUR]]:<br />
<br />
* {{aur|android-platform}} (latest)<br />
* {{aur|android-platform-23}}<br />
* {{aur|android-platform-22}}<br />
* {{aur|android-platform-21}}<br />
* {{aur|android-platform-20}}<br />
* {{aur|android-platform-19}}<br />
* {{aur|android-platform-18}}<br />
* {{aur|android-platform-17}}<br />
* {{aur|android-platform-16}}<br />
* {{aur|android-platform-15}}<br />
* {{aur|android-platform-14}}<br />
<br />
=== Development environment ===<br />
<br />
Android Studio is the new official Android development environment based on IntelliJ IDEA. Alternatively, you can use [[Eclipse]] with the official but deprecated ADT plugin, or [[Netbeans]] with the NBAndroid plugin. All are described below.<br />
<br />
==== Android Studio ====<br />
<br />
[https://developer.android.com/sdk/index.html Android Studio] is the official Android development environment based on [https://www.jetbrains.com/idea/ IntelliJ Idea]. Android Studio replaces the older [https://developer.android.com/tools/help/adt.html Eclipse Android Developer Tools] and provides integrated Android developer tools for development and debugging.<br />
<br />
You can download and install it with the {{AUR|android-studio}} package from the [[AUR]]. If you get an error about a missing SDK, refer to the section Getting Android SDK platform API above.<br />
<br />
{{Note|1=If you are using a tiling window manager other than i3wm, you may need to apply one of the fixes mentioned in [https://code.google.com/p/android/issues/detail?id=57675 this] issue page.}}<br />
{{Note|1=Make sure you properly [[Java#Change_default_Java_environment|set the Java environment]] otherwise android-studio will not start.}}<br />
{{Note|1=Bad font rendering in Android Studio can be fixed by installing the [[Infinality#Installation|infinality-bundle]] and using infinality patched openJDK 7 ({{AUR|jdk7-openjdk-infinality}}) or openJDK 8 ({{AUR|jdk8-openjdk-infinality}}) from the AUR as mentioned in [https://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-876236 this] issue page. Patched OpenJDK8 is also available from [[Unofficial user repositories#infinality-bundle|Infinality unofficial repository]]. }}<br />
<br />
Normally, apps are built through the Android Studio GUI. To build apps from the commandline (using e.g. {{ic|./gradlew assembleDebug}}), add the following to your {{ic|~/.bashrc}}:<br />
<br />
export ANDROID_HOME=/opt/android-sdk<br />
<br />
==== Eclipse ====<br />
<br />
{{Note|Since 2014-12-08, the ADT plugin is officially considered deprecated and Android Studio is now the official IDE.}}<br />
<br />
The official, but deprecated, [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT] plugin can be installed with the {{AUR|eclipse-android}} package.<br />
<br />
{{Note|<br />
* if you get a message about unresolvable dependencies, install [[Java]] manually and try again.<br />
* as an alternative, you can install the ADT via eclipse's built in "add new software" command (see instructions on ADT site).<br />
* if you are in real trouble, it is also possible to download Android SDK and use the bundled Eclipse. This usually works without problems.<br />
* if you need to install extra SDK plugins not found in the AUR, you must change the file ownership of /opt/android-sdk first. You can do this with {{ic|# chgrp -R users /opt/android-sdk ; chmod -R 0775 /opt/android-sdk}} (see [[File Permissions]] for more details).<br />
}}<br />
<br />
Enter the path to the Android SDK Location in<br />
<br />
Windows -> Preferences -> Android<br />
<br />
{{Note|<br />
If the plugins do not show up in Eclipse after the AUR package has been upgraded, then eclipse probably has out-of-date caches. Running {{ic|sudo eclipse -clean}} once should clear them. If the problem persists, uninstall eclipse and all the plugins, delete {{ic|/usr/share/eclipse}}, and reinstall everything.<br />
}}<br />
<br />
==== Netbeans ====<br />
<br />
If you prefer using [[Netbeans]] as your IDE and want to develop Android applications, download the [http://www.nbandroid.org NBAndroid] by going to:<br />
<br />
Tools -> Plugins -> Settings<br />
<br />
Add the following URL: http://nbandroid.org/release81/updates/updates.xml<br />
<br />
Then go to '''Available Plugins''' and install the '''Android''' and '''JUnit''' plugins. Once you have installed go to:<br />
<br />
Tools -> Options -> Miscellaneous -> Android<br />
<br />
and select the path where the SDK is installed (/opt/android-sdk by default). That is it, now you can create a new Android project and start developing using Netbeans.<br />
<br />
=== Android Debug Bridge (ADB) ===<br />
<br />
{{Tip|For some devices, you may have to enable MTP on the device, before ADB will work. Some other devices require enable PTP mode to work.}}<br />
{{Tip|Many devices' udev rules are included in {{Pkg|libmtp}}, so if you have this installed, the following steps may not be necessary.}}<br />
<br />
==== Connect device ====<br />
To connect to a real device or phone via ADB under Arch, you must:<br />
<br />
# Install {{Pkg|android-tools}}. In addition, you might want to install {{Pkg|android-udev}} if you wish to connect the device to the proper {{ic|/dev/}} entries.<br />
# Enable USB Debugging on your phone or device:<br />
#* Jelly Bean (4.2) and newer: Go to {{ic|Settings --> About Phone}} tap “Build Number” until you get a popup that you have become a developer (7 times). Then go to {{ic|Settings --> Developer --> USB debugging}} and enable it.<br />
#* Older versions: This is usually done from {{ic|Settings --> Applications --> Development --> USB debugging}}. Reboot the phone after checking this option to make sure USB debugging is enabled.<br />
# Add yourself to the ''adbusers'' group:<br />
# gpasswd -a ''username'' adbusers<br />
<br />
If [[#Detect the device|ADB recognizes your device]] (it is visible and accessible in IDE), you are done. Otherwise see instructions below.<br />
<br />
==== Figure out device IDs ====<br />
<br />
<br />
<br />
Each Android device has a USB vendor/product ID. An example for HTC Evo is:<br />
<br />
vendor id: 0bb4<br />
product id: 0c8d<br />
<br />
Plug in your device and execute:<br />
<br />
$ lsusb<br />
<br />
It should come up something like this:<br />
<br />
Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.<br />
<br />
==== Adding udev Rules ====<br />
<br />
Use the rules from [http://source.android.com/source/initializing.html#configuring-usb-access Android developer] or you can use the following template for your udev rules, just replace [VENDOR ID] and [PRODUCT ID] with yours. Copy these rules into {{ic|/etc/udev/rules.d/51-android.rules}}:<br />
<br />
{{hc|/etc/udev/rules.d/51-android.rules|2=<nowiki>SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0660", GROUP="adbusers"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"</nowiki>}}<br />
<br />
Then, to reload your new udev rules, execute:<br />
# udevadm control --reload-rules<br />
<br />
Make sure you are member of {{ic|adbusers}} [[group]] to access {{ic|adb}} devices.<br />
<br />
==== Configuring adb ====<br />
<br />
Instead of using udev rules, you may create/edit {{ic|~/.android/adb_usb.ini}} which contains a list of vendor IDs.<br />
<br />
$ cat ~/.android/adb_usb.ini <br />
0x27e8<br />
<br />
==== Detect the device ====<br />
<br />
After you have setup the udev rules, unplug your device and replug it.<br />
<br />
After running:<br />
<br />
$ adb devices<br />
<br />
you should see something like:<br />
<br />
List of devices attached <br />
HT07VHL00676 device<br />
<br />
==== General usage ====<br />
<br />
You can now use adb to transfer files between the device and your computer. To transfer files to the device, use<br />
$ adb push ''<what-to-copy>'' ''<where-to-place>''<br />
<br />
To transfer files from the device, use<br />
$ adb pull ''<what-to-pull>'' ''<where-to-place>''<br />
<br />
==== Notes & Troubleshooting ====<br />
<br />
* '''ADB''' can also be installed via [[#Android SDK platform API|platform tools]](usually available in {{Ic|/opt/android-sdk/platform-tools/}}), so it might not be necesarry to install {{Pkg|android-tools}} (available in {{Ic|/usr/bin/}}).<br />
<br />
* If you are getting an empty list (your device is not there), it may be because you have not enabled USB debugging on your device. You can do that by going to Settings => Applications => Development and enabling USB debugging. On Android 4.2 (Jelly Bean) the Development menu is hidden; to enable it go to Settings => About phone and tap Build number 7 times.<br />
<br />
* If there are still problems such as ''adb'' displaying {{ic|???????? no permissions}} under devices, try restarting the adb server as root.<br />
# adb kill-server<br />
# adb start-server<br />
<br />
* On moto e it could happen to have a different vendor/product id while you are on sideload or fastboot, verify again lsusb if you get no permission.<br />
<br />
=== NVIDIA Tegra platform ===<br />
<br />
If you target your application at NVIDIA Tegra platform, you might also want to install tools, samples and documentation provided by NVIDIA. In [http://developer.nvidia.com/category/zone/mobile-development NVIDIA Developer Zone for Mobile] there are two tools: <br />
<br />
# The [http://developer.nvidia.com/tegra-resources Tegra Android Development Pack] provides tools (NVIDIA Debug Manager) related to [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT] and their documentation. <br />
# The [http://developer.nvidia.com/tegra-resources Tegra Toolkit] provides tools (mostly CPU and GPU optimization related), samples and documentation. <br />
<br />
Both are currently not available in the [[AUR]] anymore, because NVIDIA requires a registration/login for the download.<br />
<br />
== Building Android ==<br />
<br />
Please note that these instructions are based on the [http://source.android.com/source/building.html official AOSP build instructions]. Other Android-derived systems such as CyanogenMod will often require extra steps.<br />
<br />
=== OS bitness ===<br />
<br />
Android 2.2.x (Froyo) and below are the only versions of Android that will build on a 32-bit system. For 2.3.x (Gingerbread) and above, you will need a 64-bit installation. <br />
<br />
=== Required packages ===<br />
<br />
To build any version of Android, you need to install these packages:<br />
<br />
* 32-bit and 64-bit systems: {{Pkg|gcc}} {{Pkg|git}} {{Pkg|gnupg}} {{Pkg|flex}} {{Pkg|bison}} {{Pkg|gperf}} {{Pkg|sdl}} {{Pkg|wxgtk}} {{Pkg|squashfs-tools}} {{Pkg|curl}} {{Pkg|ncurses}} {{Pkg|zlib}} {{Pkg|schedtool}} {{Pkg|perl-switch}} {{Pkg|zip}} {{Pkg|unzip}} {{Pkg|libxslt}} {{Pkg|python2-virtualenv}} {{Pkg|bc}}<br />
<br />
* 64-bit systems only: {{Pkg|gcc-multilib}} {{Pkg|lib32-zlib}} {{Pkg|lib32-ncurses}} {{Pkg|lib32-readline}}<br />
<br />
* AUR Packages 32-bit and 64-bit systems: {{Aur|ncurses5-compat-libs}}<br />
<br />
* AUR Packages 64-bit systems only: {{Aur|lib32-ncurses5-compat-libs}}<br />
<br />
To build Android 6+, you need to install these additional packages:<br />
<br />
* 32-bit and 64-bit systems: {{Pkg|rsync}}<br />
<br />
{{Note|1=You must now also install {{Pkg|maven}} to build CyanogenMod since, from cm-13.0, they are using maven artifacts}}<br />
<br />
=== Java Development Kit ===<br />
<br />
Android 5 (Lollipop) can be built with {{Pkg|jdk7-openjdk}}.<br />
<br />
Older versions [http://source.android.com/source/initializing.html require] a working '''Oracle JDK''' installed on your build system. It '''will not''' work with OpenJDK.<br />
*For Gingerbread through KitKat (2.3 - 4.4), Java 6 is required, which is available as {{AUR|jdk6}} from the AUR. See [[Java]] if you want to use it besides another (newer) JDK version.<br />
*For Cupcake through Froyo (1.5 - 2.2), Java 5 is required, which is no longer available for Arch Linux.<br />
<br />
=== Setting up the build environment ===<br />
<br />
[[Install]] the {{Pkg|repo}} package, then:<br />
<br />
$ mkdir ~/bin<br />
$ export PATH=~/bin:$PATH<br />
$ curl <nowiki>https://storage.googleapis.com/git-repo-downloads/repo</nowiki> > ~/bin/repo<br />
$ chmod a+x ~/bin/repo<br />
<br />
Create a directory to build.<br />
<br />
$ mkdir ~/android<br />
$ cd ~/android<br />
<br />
You will need to change the default Python from version 3 to version 2:<br />
<br />
$ virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv<br />
<br />
{{Note|During build you may receive error pertaining to missing python modules. A quick and dirty fix is to symlink /usr/lib/python2.7/* to ~/android/venv/python2.7/ (Change ~/android to reflect your build directory if different than above).<br />
Example:<br />
$ ln -s /usr/lib/python2.7/* /Data/Android_Build/venv/lib/python2.7/<br />
}}<br />
Activate the Virtualenv, which will update $PATH to point at Python 2.<br />
<br />
{{Note|this activation is only active for the current terminal session.<br />
}}<br />
<br />
$ source venv/bin/activate<br />
<br />
=== Downloading the source code ===<br />
<br />
This will clone the repositories. You '''only''' need to do this the first time you build Android, or if you want to switch branches.<br />
<br />
* The {{ic|repo}} has a {{ic|-j}} switch that operates similarly to the one used with {{ic|make}}. Since it controls the number of simultaneous downloads, you should adjust the value depending on downstream network bandwidth.<br />
<br />
* You will need to specify a '''branch''' (release of Android) to check out with the {{ic|-b}} switch. If you leave the switch out, you will get the so-called '''master branch'''.<br />
<br />
$ repo init -u https://android.googlesource.com/platform/manifest -b master<br />
$ repo sync -j4<br />
<br />
{{Note|To further decrease sync times, you can utilize the -c switch with the repo command as such:<br />
$ repo sync -j8 -c<br />
The {{ic|-c}} switch will only sync the branch which is specified in the manifest, which in turn is determined by the branch specified with the {{ic|-b}} switch, or the default branch set by the repository maintainer.<br />
}}<br />
<br />
Wait a long time. Just the uncompiled source code, along with the {{ic|.repo}} and {{ic|.git}} directories that are used to keep track of it, are well over 10 GB. As of Android 6.0.1, the entire codebase totals 40 GB.<br />
<br />
{{Note|If you want to update your local copy of the Android source, at a later time, simply enter the build directory, load the Virtualenv, and re-sync:<br />
$ repo sync<br />
}}<br />
<br />
=== Building the code ===<br />
<br />
This should do what you need for AOSP:<br />
<br />
$ source build/envsetup.sh<br />
$ lunch full-eng<br />
$ make -j4<br />
<br />
If you run '''lunch''' without arguments, it will ask what build you want to create. Use -j with a number between one and two times number of cores/threads.<br />
<br />
The build takes a very long time.<br />
<br />
{{Note|Make sure you have enough RAM.<br />
Android will use the /tmp directory heavily. By default the size of the partition the /tmp folder is mounted on is half the size of your RAM. If it fills up, the build will fail. 4GB of RAM or more is recommended.<br />
* Alternatively, you can get rid of the tmpfs from [[fstab]] all together. <br />
}}<br />
<br />
{{Note|From the [https://source.android.com/source/building-running.html#build-the-code Android Building and Running guide]:<br />
<br />
"GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32."<br />
<br />
}}<br />
=== Testing the build ===<br />
<br />
When finished, run/test the final image(s).<br />
<br />
$ emulator<br />
<br />
=== Creating a Flashable Image ===<br />
To create an image that can be flashed it is necessary to:<br />
<br />
make -j8 updatepackage<br />
<br />
This will create a zip image under '''out/target/product/hammerhead''' (hammerhead being the device name) that can be flashed.<br />
<br />
== Restoring Android ==<br />
<br />
{{Expansion}}<br />
<br />
In some cases, you want to return to the stock Android after flashing custom ROMs to your Android mobile device. For flashing instructions of your device, please use [http://forum.xda-developers.com/ XDA forums].<br />
<br />
=== Fastboot ===<br />
<br />
Fastboot (as well as [[#Android Debug Bridge (ADB)|ADB]]) comes together with a package {{Pkg|android-tools}} from the [[official repositories]].<br />
<br />
{{Note|Restoring firmwares using {{ic|fastboot}} can be quite tricky, but you might want to browse [http://www.xda-developers.com/ XDA developers forums] for a stock firmware, which is mostly a {{ic|*.zip}} file, but inside of it, comes with the firmware files and {{ic|flash-all.sh}} script. For example, [https://developers.google.com/android/nexus/images Google Nexus] firmwares include {{ic|flash-all.sh}} script or another example could be for OnePlus One - [http://forum.xda-developers.com/oneplus-one/general/guide-return-opo-to-100-stock-t2826541 XDA thread], where you can find firmwares with included {{ic|flash-all.sh}} script.}}<br />
<br />
=== Samsung devices ===<br />
<br />
Samsung devices can't be flashed using '''Fastboot''' tool. Alternatives are only '''Heimdall''' and '''Odin''' (by using Windows and VirtualBox).<br />
<br />
==== Heimdall ====<br />
<br />
[http://glassechidna.com.au/heimdall/ Heimdall] is a cross-platform open-source tool suite used to flash firmware (also known as ROMs) onto Samsung mobile devices and is also known as an alternative to [http://odindownload.com/ Odin]. It can be installed as {{Pkg|heimdall}} or {{AUR|heimdall-git}}.<br />
<br />
The flashing instructions can be found on Heimdall's [https://github.com/Benjamin-Dobell/Heimdall/tree/master/Linux GitHub page] or on [http://forum.xda-developers.com/showthread.php?t=1922461 XDA forums].<br />
<br />
==== Odin (Virtualbox) ====<br />
<br />
It is also possible to restore stock Android on the Samsung devices using [http://odindownload.com/ Odin], but inside the [[VirtualBox]]. For more information, see [http://forum.xda-developers.com/showthread.php?t=758634 XDA thread].<br />
<br />
Arch Linux related steps:<br />
# Install [[VirtualBox]] together with its [[VirtualBox#Extension_pack|extension pack]] and [[VirtualBox#Guest_additions_disc|guest additions]].<br />
# Install your preferred, but compatible with Odin, Windows operating system (with VirtualBox guest additions) into a virtual hard drive using VirtualBox<br />
# Open VirtualBox settings of your Windows operating system, navigate to '''USB''', then tick (or make sure it is ticked) '''Enable USB 2.0 (EHCI) Controller'''.<br />
# At VirtualBox running Windows operating system, click in the menu bar '''Devices''', then '''USB Devices''', then click on your Samsung mobile device connected to your computer via USB.<br />
<br />
Windows related links:<br />
* Samsung drivers can be downloaded from [http://androidxda.com/download-samsung-usb-drivers here].<br />
* Odin can be downloaded from [https://www.androidfilehost.com/?fid=23501681358557126 here].<br />
* Samsung Android firmware can be downloaded from [http://www.sammobile.com/firmwares/ here].<br />
<br />
If you want to make sure that everything is working and ready:<br />
# Turn your device into Download mode and connect to your Linux machine.<br />
# In virtual machine toolbar, select {{ic|devices}} --> {{ic|USB}} --> {{ic|...Samsung...}} device.<br />
# Open Odin. The white box (a big one at the bottom-left side) named '''Message''', should print a line similar to this:<br />
<ID:0/003> Added!!<br />
which means that your device is visible to Odin and is ready to be flashed.<br />
<br />
{{Note|There are no general instructions of restoring stock firmware on Samsung mobile devices. You have to use [https://www.google.com Google] and [http://www.xda-developers.com XDA developers forums] to find a flashing instructions for specific device. For example, this is how the [http://goo.gl/cZLyF8 thread] about the Samsung Galaxy S4 looks like}}<br />
<br />
== Alternative connection methods ==<br />
<br />
=== adb-sync ===<br />
<br />
[https://github.com/google/adb-sync adb-sync] (available in {{AUR|adb-sync-git}}) is a tool to synchronize files between a PC and an Android device using the ADB protocol.<br />
<br />
=== AirDroid ===<br />
<br />
[http://goo.gl/EZQ9GQ AirDroid] is an Android app to access files from your web browser.<br />
<br />
=== FTP ===<br />
<br />
You run a FTP server on Arch and connect to it from your phone, or the other way around: run a FTP server on your phone and connect to it from Arch.<br />
<br />
See [[List of applications/Internet#FTP]]. There are a lot of FTP clients/servers available for Android.<br />
<br />
=== SSH Server ===<br />
<br />
There are many SSH servers available for Android, it allows you to transfer files using {{ic|scp}} command. See also [[SSH]].<br />
<br />
=== Samba ===<br />
<br />
See [[Samba]].<br />
<br />
== Tips & Tricks ==<br />
<br />
=== During Debugging "Source not found" ===<br />
<br />
Most probably the debugger wants to step into the Java code. As the source code of Android does not come with the Android SDK, this leads to an error. The best solution is to use step filters to not jump into the Java source code. Step filters are not activated by default. To activate them: <br />
Window -> Preferences -> Java -> Debug -> Step Filtering<br />
Consider to select them all. If appropriate you can add the android.* package. See the forum post for more information: http://www.eclipsezone.com/eclipse/forums/t83338.rhtml<br />
<br />
=== Linux distribution on the sdcard ===<br />
<br />
You can install Debian like in this [http://forum.xda-developers.com/showthread.php?t=631389 thread]. Excellent guide to installing Arch in chroot (in parallel with Android) can be found on [http://archlinuxarm.org/forum/viewtopic.php?f=27&t=1361&start=40 archlinuxarm.org forum].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Android Studio: Android Virtual Devices show 'failed to load'. ===<br />
Make sure you've exported the variable {{ic|ANDROID_HOME}} as explained in [[#Android Studio]].<br />
<br />
=== aapt: No such file or directory ===<br />
<br />
The build tools include 32-bit binaries. For this reason they require 32-bit libraries. If you happened to install the SDK manually, you will additionally need to install<br />
'''multilib/lib32-libstdc++5''' and '''multilib/lib32-zlib'''.<br />
<br />
=== ValueError: unsupported pickle protocol ===<br />
<br />
One fix is to issue:<br />
<br />
rm ~/.repopickle_.gitconfig<br />
<br />
If that does not work, then try this:<br />
<br />
rm `find /path/to/android-root -name .repopickle_config`</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Deltup&diff=445816Deltup2016-08-07T17:26:07Z<p>Aouellette: </p>
<hr />
<div>[[Category:Package management]]<br />
[[fa:دلتا]]<br />
[[fr:Deltas]]<br />
[[it:Deltup]]<br />
[[ru:Deltup]]<br />
Delta updates save time and size in downloading and updating the system. Packages that are downloaded will be a sort of "diff" of the new package, which will be used to patch the old package into the new package at the end of the download.<br />
<br />
== Install ==<br />
<br />
[[Install]] the {{Pkg|xdelta3}} package.<br />
<br />
== Configuration ==<br />
<br />
Edit {{ic|/etc/pacman.d/mirrorlist}} and add the proper repository:<br />
<br />
{{hc|/etc/pacman.d/mirrorlist|2=<nowiki>##<br />
## Arch Linux repository mirrorlist<br />
## Generated on 2011-03-24<br />
##<br />
<br />
## Delta Archlinux.fr<br />
Server = http://delta.archlinux.fr/$repo/os/$arch<br />
.....</nowiki>}}<br />
<br />
Then edit {{ic|/etc/pacman.conf}} uncommenting the option {{ic|UseDelta}}:<br />
<br />
{{hc|/etc/pacman.conf|.....<br />
# Misc options (all disabled by default)<br />
#UseSyslog<br />
ShowSize<br />
UseDelta<br />
TotalDownload<br />
.....}}<br />
<br />
== Comparisons ==<br />
<br />
Check before activating the {{ic|UseDelta}} option how much we need to download to full update the system.<br />
{{hc|# pacman -Syu|<br />
<nowiki><br />
...<br />
<br />
Total Download Size: 416,89 MB<br />
Total Installed Size: 1933,56 MB<br />
<br />
Proceed with installation? [Y/n]</nowiki>}}<br />
<br />
Choose {{ic|n}} and not confirm the update.<br />
As shown the package to be downloaded now are 416,89 MB.<br />
<br />
After enabling delta, check again for the updates available (now the option {{ic|UseDelta}} is enabled):<br />
<br />
{{hc|# pacman -Syu|<br />
<nowiki><br />
...<br />
<br />
Total Download Size: 343,15 MB<br />
Total Installed Size: 1933,56 MB<br />
<br />
Proceed with installation? [Y/n]</nowiki>}}<br />
<br />
In this way we do not need to download 416,89 MB of packages but only 343,15 MB, so we obtain a shorter time in the update process.<br />
<br />
== Disadvantages ==<br />
<br />
This method isn't fully supported in Arch Linux as opposed to [http://www.opensuse.org OpenSuSE] or [http://www.gentoo.org Gentoo] which use this as standard for their update system. In fact the available delta repository are just a few. The results can be much better if delta have more deltup packages between previous versions in the repositories. For example, in the repository the author uses, there is only -1 version of each package.<br />
<br />
kdeartwork-kscreensaver-4.6.2-1_to_4.6.3-1-x86_64.delta 2011-May-06 22:35:41 301.8K application/octet-stream <br />
kdeartwork-kscreensaver-4.6.3-1-x86_64.pkg.tar.xz 2011-May-06 08:57:57 589.2K application/octet-stream</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=445186Lenovo ThinkPad T460s2016-08-07T00:04:25Z<p>Aouellette: /* Suspend / Resume */ wording improvement</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Y| with linux-4.5.1}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With kernels older than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
With kernels older than 4.6, suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
A long standing kernel bug caused resume from hibernation to fail with a probability that depended on the amount of allocated RAM. This bug is fixed by [https://bugzilla.kernel.org/show_bug.cgi?id=104771 this patch], and is included in the {{AUR|linux-t460s}} package.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake support]])<br />
<br />
== See also ==<br />
<br />
[https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=442288Lenovo ThinkPad T460s2016-07-20T21:45:36Z<p>Aouellette: /* Hibernate / Resume */ fix link</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Y| with linux-4.5.1}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With kernels older than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
Suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue. Kernel 4.6.0 (available via e.g. {{AUR|linux-git}}) resolves this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
A long standing kernel bug caused resume from hibernation to fail with a probability that depended on the amount of allocated RAM. This bug is fixed by [https://bugzilla.kernel.org/show_bug.cgi?id=104771 this patch], and is included in the {{AUR|linux-t460s}} package.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake support]])<br />
<br />
== See also ==<br />
<br />
[https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Back_In_Time&diff=440825Back In Time2016-07-10T19:13:20Z<p>Aouellette: /* Installation */ fix link</p>
<hr />
<div>[[Category:System recovery]]<br />
[[ja:Back In Time]]<br />
From the [https://backintime.readthedocs.io/en/latest/ Documentation]:<br />
<br />
:''Back In Time is a simple backup solution for Linux desktops. It is based on rsync and uses hard-links to reduce space used for unchanged files. It comes with a Qt4 GUI which will run on both Gnome and KDE based Desktops. Back In Time is written in Python3 and is licensed under GPL2.''<br />
<br />
== Installation ==<br />
<br />
Stable releases of Back In Time can be installed as {{AUR|backintime}} from the [[AUR]] (or {{AUR|backintime-cli}} for a CLI only interface). An unstable branch exists with {{AUR|backintime-git}}.<br />
<br />
Alternatively, pre-compiled binary packages can be installed from [http://coderkun.de/arch/ coderkun’s repo].<br />
<br />
Back In Time will automatically install a startup entry in {{ic|/etc/xdg/autostart}}. If you want to launch the GUI, then run {{ic|backintime-qt4}}. If you want to backup files other than your home user files, then consider starting Back In Time with {{ic|pkexec backintime-qt4}} instead.<br />
<br />
== Configuration ==<br />
<br />
The configuration can be done entirely via the GUI. All you have to do is configure:<br />
<br />
* Where to save snapshot<br />
* What directories to backup<br />
* When backup should be done (manual, every hour, every day, every week, every month)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Can't find snapshots folder ===<br />
<br />
If you see the error message in the status bar that BIT cannot find the snapshots folder although the snapshots are visible in the sidebar and the backup process is working correctly, then you are likely to have leftovers from a previous failed backup cron job. The status bar displays the content of the file {{ic|~/.local/share/backintime/worker.message}}. Thus deleting or renaming this file will remove the error message.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/bit-team/backintime Back In Time website]<br />
* [https://backintime.readthedocs.io/en/latest/ Documentation]<br />
* [https://github.com/bit-team/backintime/issues Upstream Bug Tracker]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Back_In_Time&diff=440824Back In Time2016-07-10T19:12:07Z<p>Aouellette: Improve description</p>
<hr />
<div>[[Category:System recovery]]<br />
[[ja:Back In Time]]<br />
From the [https://backintime.readthedocs.io/en/latest/ Documentation]:<br />
<br />
:''Back In Time is a simple backup solution for Linux desktops. It is based on rsync and uses hard-links to reduce space used for unchanged files. It comes with a Qt4 GUI which will run on both Gnome and KDE based Desktops. Back In Time is written in Python3 and is licensed under GPL2.''<br />
<br />
== Installation ==<br />
<br />
Stable releases of Back In Time can be installed as {{AUR|backintime}} from the [[AUR]] (or {{AUR|backintime-cli}} for a CLI only interface). An unstable branch exists with {{AUR|backintime-git}}.<br />
<br />
Alternatively, pre-compiled binary packages can be installed from [http://arch.coderkun.de/ coderkun’s repo].<br />
<br />
Back In Time will automatically install a startup entry in {{ic|/etc/xdg/autostart}}. If you want to launch the GUI, then run {{ic|backintime-qt4}}. If you want to backup files other than your home user files, then consider starting Back In Time with {{ic|pkexec backintime-qt4}} instead.<br />
<br />
== Configuration ==<br />
<br />
The configuration can be done entirely via the GUI. All you have to do is configure:<br />
<br />
* Where to save snapshot<br />
* What directories to backup<br />
* When backup should be done (manual, every hour, every day, every week, every month)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Can't find snapshots folder ===<br />
<br />
If you see the error message in the status bar that BIT cannot find the snapshots folder although the snapshots are visible in the sidebar and the backup process is working correctly, then you are likely to have leftovers from a previous failed backup cron job. The status bar displays the content of the file {{ic|~/.local/share/backintime/worker.message}}. Thus deleting or renaming this file will remove the error message.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/bit-team/backintime Back In Time website]<br />
* [https://backintime.readthedocs.io/en/latest/ Documentation]<br />
* [https://github.com/bit-team/backintime/issues Upstream Bug Tracker]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Back_In_Time&diff=440823Back In Time2016-07-10T19:02:55Z<p>Aouellette: /* See also */ Add link to documentation</p>
<hr />
<div>[[Category:System recovery]]<br />
[[ja:Back In Time]]<br />
'''Back In Time''' is a simple backup tool for Linux inspired by “flyback project” and “TimeVault”. The backup is done by taking snapshots of a specified set of directories.<br />
<br />
Back In Time provides a Qt4 GUI which will run on Gnome, KDE and all other DE's.<br />
<br />
== Installation ==<br />
<br />
Stable releases of Back In Time can be installed as {{AUR|backintime}} from the [[AUR]] (or {{AUR|backintime-cli}} for a CLI only interface). An unstable branch exists with {{AUR|backintime-git}}.<br />
<br />
Alternatively, pre-compiled binary packages can be installed from [http://arch.coderkun.de/ coderkun’s repo].<br />
<br />
Back In Time will automatically install a startup entry in {{ic|/etc/xdg/autostart}}. If you want to launch the GUI, then run {{ic|backintime-qt4}}. If you want to backup files other than your home user files, then consider starting Back In Time with {{ic|pkexec backintime-qt4}} instead.<br />
<br />
== Configuration ==<br />
<br />
The configuration can be done entirely via the GUI. All you have to do is configure:<br />
<br />
* Where to save snapshot<br />
* What directories to backup<br />
* When backup should be done (manual, every hour, every day, every week, every month)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Can't find snapshots folder ===<br />
<br />
If you see the error message in the status bar that BIT cannot find the snapshots folder although the snapshots are visible in the sidebar and the backup process is working correctly, then you are likely to have leftovers from a previous failed backup cron job. The status bar displays the content of the file {{ic|~/.local/share/backintime/worker.message}}. Thus deleting or renaming this file will remove the error message.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/bit-team/backintime Back In Time website]<br />
* [https://backintime.readthedocs.io/en/latest/ Documentation]<br />
* [https://github.com/bit-team/backintime/issues Upstream Bug Tracker]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Back_In_Time&diff=440822Back In Time2016-07-10T19:01:39Z<p>Aouellette: /* Installation */ Note about rsync is unnecessary as it is in the dependencies</p>
<hr />
<div>[[Category:System recovery]]<br />
[[ja:Back In Time]]<br />
'''Back In Time''' is a simple backup tool for Linux inspired by “flyback project” and “TimeVault”. The backup is done by taking snapshots of a specified set of directories.<br />
<br />
Back In Time provides a Qt4 GUI which will run on Gnome, KDE and all other DE's.<br />
<br />
== Installation ==<br />
<br />
Stable releases of Back In Time can be installed as {{AUR|backintime}} from the [[AUR]] (or {{AUR|backintime-cli}} for a CLI only interface). An unstable branch exists with {{AUR|backintime-git}}.<br />
<br />
Alternatively, pre-compiled binary packages can be installed from [http://arch.coderkun.de/ coderkun’s repo].<br />
<br />
Back In Time will automatically install a startup entry in {{ic|/etc/xdg/autostart}}. If you want to launch the GUI, then run {{ic|backintime-qt4}}. If you want to backup files other than your home user files, then consider starting Back In Time with {{ic|pkexec backintime-qt4}} instead.<br />
<br />
== Configuration ==<br />
<br />
The configuration can be done entirely via the GUI. All you have to do is configure:<br />
<br />
* Where to save snapshot<br />
* What directories to backup<br />
* When backup should be done (manual, every hour, every day, every week, every month)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Can't find snapshots folder ===<br />
<br />
If you see the error message in the status bar that BIT cannot find the snapshots folder although the snapshots are visible in the sidebar and the backup process is working correctly, then you are likely to have leftovers from a previous failed backup cron job. The status bar displays the content of the file {{ic|~/.local/share/backintime/worker.message}}. Thus deleting or renaming this file will remove the error message.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/bit-team/backintime Back In Time website]<br />
* [https://github.com/bit-team/backintime/issues Upstream Bug Tracker]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=440821Synchronization and backup programs2016-07-10T18:57:05Z<p>Aouellette: /* File-based increments */ backintime</p>
<hr />
<div>[[Category:Data compression and archiving]]<br />
[[Category:System recovery]]<br />
[[de:Backups]]<br />
[[ja:バックアッププログラム]]<br />
[[ru:Backup programs]]<br />
{{Related articles start}}<br />
{{Related|Full system backup with rsync}}<br />
{{Related|Full System Backup with tar}}<br />
{{Related|Disk cloning}}<br />
{{Related|List of applications#File sharing}}<br />
{{Related|System maintenance#Backup}}<br />
{{Related|Dotfiles#Version control}}<br />
{{Related|Snapper}}<br />
{{Related|File recovery}}<br />
{{Related articles end}}<br />
<br />
This page lists and compares applications that synchronize data between two or more locations, and those that build on top of such functionality to make incremental copies of important data for backup purposes. Because of their relationship, the two groups share several traits that justify describing them in the same article.<br />
<br />
== Backup overview ==<br />
<br />
Having backups of important data is a necessary measure to take, since human and machine processing errors are very likely to generate corruption as time passes, and also the physical media where the data is stored is inevitably destined to fail. In order to choose the best program for one's own needs, the following aspects should be considered:<br />
<br />
* The type of backup medium that is going to store the data, e.g. CD, DVD, remote server, external hard drive, etc.<br />
* The planned frequency of backups, e.g. daily, weekly, monthly, etc.<br />
* The features expected from the backup solution, e.g. compression, encryption, handles renames, etc.<br />
* The planned method to restore backups if needed.<br />
<br />
== Data synchronization ==<br />
<br />
These applications simply keep directories synchronized between multiple locations/machines, in a "mirror" fashion. Nonetheless, most of them still allow storing and reverting to old revisions of modified or deleted files.<br />
<br />
See also [[Wikipedia:Comparison of file synchronization software]].<br />
<br />
'''Legend:'''<br />
<br />
* '''Name''': the application name, linking to the official website.<br />
* '''Installation''': a link to the main ArchWiki article, if existing, or directly to the package pages.<br />
* '''Implementation''': the programming language, library, or utility that the application is based on.<br />
* '''Delta transfer''': only the modified ''parts'' of files are transferred.<br />
* '''Encrypted transfer''': data is encrypted by default when transferred over the network.<br />
* '''FS metadata''': file system permissions and attributes are synchronized.<br />
* '''Resumable''': the synchronization can be resumed without restarting it if interrupted.<br />
* '''Handles renames''': moved/renamed files are detected and not stored or transferred twice; it typically means that a checksum is computed for files or chunks thereof.<br />
* '''Version control''': the old version of files are backed up ('''reverse incremental backup''').<br />
* '''Conflict resolution''': the application handles file conflicts, either automatically or interactively, i.e. it does not silently discard conflicting files.<br />
* '''Multidirectional''': ''more'' than 2 locations can be kept in sync together.<br />
* '''FS monitoring''': the application listens to file system events to trigger the synchronization.<br />
* '''CLI''': the application is command-line driven, i.e. it is scriptable.<br />
* '''Other interfaces''': the application has the specified user interfaces, e.g. GUI, TUI, or web-based.<br />
* '''Licence''': the licence of the server and client applications.<br />
* '''Other platforms''': supported operating systems other than Linux.<br />
* '''Active''': whether the project is currently maintained.<br />
* '''Specificity''': brief notes about special features that notably set the application apart from the others.<br />
<br />
{{Expansion|Enter values in the cells marked with "?". Also replace the "Yes" with more specific values and references.}}<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Resumable<br />
! Handles renames<br />
! Version control<br />
! Conflict resolution<br />
! Multidirectional<br />
! FS monitoring<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|-<br />
| [https://www.getsync.com/ BitTorrent Sync]<br />
| [[BitTorrent Sync]]<br />
| Closed source<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{G|Web}}<br />
| Proprietary freemium<br />
| OS X, Windows, Android, iOS, Windows Phone, Amazon Kindle Fire, FreeBSD<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://freefilesync.sourceforge.net/ FreeFileSync]<br />
| {{AUR|freefilesync}}<br />
| C++<br />
| style="text-align:center;" | ?<br />
| {{G|SFTP [http://www.freefilesync.org/faq.php#features]}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{G|Yes [http://www.freefilesync.org/faq.php#features]}}<br />
| {{G|1=Yes [http://www.freefilesync.org/manual.php?topic=versioning]}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| GPL<br />
| Windows, OS X<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://git-annex.branchable.com/ git-annex]<br />
| {{Pkg|git-annex}}<br />
| Haskell, git<br />
| {{G|rsync [http://git-annex.branchable.com/transferring_data/]}}<br />
| {{G|rsync [http://git-annex.branchable.com/transferring_data/]}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{G|git remotes [http://git-annex.branchable.com/sync/]}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{G|[http://git-annex.branchable.com/assistant/ git-annex assistant]}}<br />
| GPLv3<br />
| OS X, Android<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://www.opbyte.it/grsync/ Grsync]<br />
| {{Pkg|grsync}}<br />
| rsync front-end<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{G|GTK+}}<br />
| GPLv2<br />
| <br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [https://github.com/gutenye/gutbackup gutbackup]<br />
| {{AUR|gutbackup}}<br />
| rsync wrapper<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{No}}<br />
| MIT<br />
| <br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [http://jotasync.trixon.se/ Jotasync]<br />
| {{AUR?|jotasync}}<br />
| Java gui for rsync<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{Y|limited}}<br />
| {{G|Swing}}<br />
| Apache v2<br />
| OS X, Windows<br />
| {{Yes}}<br />
| Integrated scheduler.<br />
|-<br />
| [http://luckybackup.sourceforge.net/index.html luckyBackup]<br />
| {{AUR|luckybackup}}<br />
| C++<br />
| {{G|rsync [http://luckybackup.sourceforge.net/features.html]}}<br />
| {{G|rsync [http://luckybackup.sourceforge.net/features.html]}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{Y|limited [http://luckybackup.sourceforge.net/manual.html#terminal]}}<br />
| {{G|Qt}}<br />
| GPLv3<br />
| <br />
| {{Y|frozen [http://luckybackup.sourceforge.net/index.html]}}<br />
|<br />
|-<br />
| [http://www.netpower.fr/osync osync.sh]<br />
| {{AUR?|osync}}<br />
| Shell<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{G|optional [https://github.com/deajan/osync#daemon-mode]}}<br />
| {{Yes}}<br />
| {{No}}<br />
| BSD<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://www.nongnu.org/rdiff-backup/ rdiff-backup]<br />
| {{Pkg|rdiff-backup}}<br />
| Python 2<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Y|preview changes}}<br />
| {{No}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPL<br />
| Win32<br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [http://rsync.samba.org/ rsync]<br />
| [[rsync]]<br />
| C<br />
| {{Yes}}<br />
| {{G|SSH or native protocol}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{G|<br />
* {{ic|--link-dest}} with hard links [http://www.ibm.com/developerworks/aix/library/au-spunix_rsync/index.html#backup]<br />
* {{ic|--backup}}<br />
}}<br />
| {{Y|preview changes}}<br />
| {{No}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{G|grsync}}<br />
| GPLv3<br />
| Win32<br />
| {{Yes}}<br />
| Standard install on all Linux distributions.<br />
|-<br />
| [http://sparkleshare.org/ SparkleShare]<br />
| {{Pkg|sparkleshare}}<br />
| C#<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| GPLv3<br />
| Windows, OS X<br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [https://syncthing.net/ Syncthing]<br />
| [[Syncthing]]<br />
| Go<br />
| {{G|Yes [http://docs.syncthing.net/users/faq.html#is-synchronization-fast]}}<br />
| {{G|Yes [http://docs.syncthing.net/users/security.html]}}<br />
| {{Y|partial [http://docs.syncthing.net/users/faq.html#what-things-are-synced]}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{G|Yes [http://docs.syncthing.net/users/versioning.html]}}<br />
| {{G|renames one file [https://docs.syncthing.net/users/faq.html#what-if-there-is-a-conflict]}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{G|Web, GTK}}<br />
| MPL v2<br />
| Windows, OS X, Android, BSD, Solaris<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://synkron.sourceforge.net/ Synkron]<br />
| {{AUR|synkron}}<br />
| C++<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{G|Qt}}<br />
| GPLv2<br />
| Windows, OS X<br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [https://tasktools.org/projects/taskd.html taskd]<br />
| [[Taskd]]<br />
| C++, python, <br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| MIT<br />
| Android<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://www.cis.upenn.edu/~bcpierce/unison/ Unison]<br />
| [[Unison]]<br />
| OCaml<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Y|partial [http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#perms]}}<br />
| {{G|optional [http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#speeding]}}<br />
| {{No}}<br />
| {{G|Yes [http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#backups]}}<br />
| {{G|interactive}}<br />
| {{No}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{G|GTK2}}<br />
| GPL<br />
| Windows, OS X, FreeBSD, Android<br />
| {{G|Yes [http://www.cis.upenn.edu/~bcpierce/unison/status.html]}}<br />
|<br />
|-<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Resumable<br />
! Handles renames<br />
! Version control<br />
! Conflict resolution<br />
! Multidirectional<br />
! FS monitoring<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|}<br />
<br />
== Incremental backups ==<br />
<br />
Applications that can do incremental backups remember and take into account what data has been backed up during the last run (so-called "diffs") and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.<br />
<br />
See also [[Dotfiles#Version control]].<br />
<br />
'''Legend:'''<br />
<br />
* '''Name''': the application name, linking to the official website.<br />
* '''Installation''': a link to the main ArchWiki article, if existing, or directly to the package pages.<br />
* '''Implementation''': the programming language, library, or utility that the application is based on.<br />
* '''Compressed storage''': compression is used for storage.<br />
* '''Encrypted storage''': encryption is used for storage.<br />
* '''Delta transfer''': only the modified ''parts'' of files are transferred.<br />
* '''Encrypted transfer''': data is encrypted by default when transferred over a network.<br />
* '''FS metadata''': file system permissions and attributes are backed up.<br />
* '''Easy access''': the backup is stored plainly in the file system, or is mountable as such.<br />
* '''Resumable''': the backup can be resumed without restarting it if interrupted.<br />
* '''Handles renames''': moved/renamed files are detected and not stored or transferred twice; it typically means that a checksum is computed for files or chunks thereof.<br />
* '''CLI''': the application is command-line driven, i.e. it is scriptable.<br />
* '''Other interfaces''': the application has the specified user interfaces, e.g. GUI, TUI, or web-based.<br />
* '''Licence''': the licence of the server and client applications.<br />
* '''Other platforms''': supported operating systems other than Linux.<br />
* '''Active''': whether the project is currently maintained.<br />
* '''Specificity''': brief notes about special features that notably set the application apart from the others.<br />
<br />
=== Single machine ===<br />
<br />
These applications are aimed at backing up data from the machine they are installed on, although the backup destination can be located on an external machine or storage media.<br />
<br />
==== Chunk-based increments ====<br />
<br />
If a file is modified, these applications store only its changed ''parts'' at the next snapshot. Compared to [[#File-based increments]] applications, these are more space-efficient, especially when large files receive small modifications; on the other hand, the archived snapshots have to be opened with the backup application that created them, since the files have to be reconstructed from the stored binary diffs.<br />
<br />
{{Expansion|Enter values in the cells marked with "?". Also replace the "Yes" with more specific values and references.}}<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|-<br />
| [http://areca.sourceforge.net/ Areca Backup]<br />
| {{AUR|areca}}<br />
| Java<br />
| {{G|Zip, Zip64}}<br />
| {{G|AES128, AES256}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Y|Pausing only}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| GPLv2<br />
| Windows<br />
| {{Yes}}<br />
|<br />
|-<br />
| [https://github.com/jborg/attic/ Attic]<br />
| {{AUR|attic}}<br />
| Python<br />
| {{Yes}}<br />
| {{G|AES256}}<br />
| {{Yes}}<br />
| {{G|SSH}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
| BSD<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://borgbackup.readthedocs.org/en/stable/ BorgBackup]<br />
| {{Pkg|borg}}<br />
| Python (Attic fork)<br />
| {{G|lz4, zlib, lzma}}<br />
| {{G|AES256}}<br />
| {{Yes}}<br />
| {{G|SSH}}<br />
| {{Yes}}[http://borgbackup.readthedocs.org/en/stable/faq.html#which-file-types-attributes-etc-are-preserved]<br />
| {{Yes}}[http://borgbackup.readthedocs.org/en/stable/usage.html#borg-mount]<br />
| {{Yes}}[http://borgbackup.readthedocs.org/en/stable/faq.html#if-a-backup-stops-mid-way-does-the-already-backed-up-data-stay-there]<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|third party}}<br />
| BSD<br />
| *BSD, OS X<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://viric.name/cgi-bin/btar btar]<br />
| {{AUR|btar}}{{Broken package link|{{aur-mirror|btar}}}}<br />
| C<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv3<br />
| <br />
| {{Yes}}<br />
| Redundancy, indexed extraction, multicore compression, input and output serialisation, tolerance to partial archive errors. <br />
|-<br />
| [https://bup.github.io/ bup]<br />
| {{Pkg|bup}} {{AUR|bup-git}}<br />
| C, Python, git<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|Immature}}<br />
| {{Yes}}[https://bup.github.io/man/bup-fuse.html]<br />
| {{G|pick up where you left off [https://github.com/bup/bup/blob/master/README.md#reasons-bup-is-awesome]}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|third party}}<br />
| GPLv2<br />
| Windows, OS X, NetBSD, Solaris<br />
| {{Yes}}<br />
| Same storage format as git<br />
|-<br />
| [https://github.com/emersion/bups bups]<br />
| {{AUR|bups}}<br />
| bup frontend<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|Immature}}<br />
| {{Yes}}<br />
| {{G|pick up where you left off [https://github.com/bup/bup/blob/master/README.md#reasons-bup-is-awesome]}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|GTK 3}}<br />
| MIT<br />
|<br />
| {{Yes}}<br />
|<br />
|-<br />
| [https://launchpad.net/deja-dup Déjà Dup]<br />
| [[Déjà Dup]]<br />
| duplicity front-end<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{G|GTK+}}<br />
| GPLv3<br />
| <br />
| {{Yes}}<br />
| Integrated into [[GNOME Files]].<br />
|-<br />
| [http://www.duplicati.com/ Duplicati]<br />
| {{AUR|duplicati-latest}}<br />
| C#<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{R|scheduled for 2.0 release}}<br />
| {{No}}<br />
| {{Y|Pausing only}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| LGPL<br />
| Windows<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://www.nongnu.org/duplicity/ Duplicity]<br />
| [[Duplicity]]<br />
| librsync<br />
| {{G|gzip}}<br />
| {{G|gpg}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{G|Déjà Dup}}<br />
| GPL<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://www.duply.net/ Duply]<br />
| [[Duply]]<br />
| duplicity front-end<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv2<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://kde-apps.org/content/show.php/Kup+Backup+System?content=147465 Kup Backup System]<br />
| {{Pkg|kup}}<br />
| rsync, bup front-end<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{G|Immature}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Y|bup}}<br />
| {{G|Qt}}<br />
| GPLv2<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://liw.fi/obnam/ obnam]<br />
| {{AUR|obnam}}<br />
| Python<br />
| {{Yes}}<br />
| {{G|GnuPG}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{G|checkpoints every 100MB}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv3<br />
| <br />
| {{Yes}}<br />
| <br />
|-<br />
| [http://zbackup.org/ ZBackup]<br />
| {{AUR|zbackup}}<br />
| C++<br />
| {{G|LZMA, LZO}}<br />
| {{G|AES}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{R|planned [https://github.com/zbackup/zbackup#improvements]}}<br />
| {{No}}<br />
| {{Y|Kinda through tar}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv2<br />
| <br />
| {{Yes}}<br />
| Repository consists of immutable files.<br />
|-<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|}<br />
<br />
==== File-based increments ====<br />
<br />
If a file is modified, these applications store its new version entirely at the next snapshot. Compared to [[#Chunk-based increments]] applications, these are less space-efficient, especially when large files receive small modifications; on the other hand, often the archived snapshots can be opened without the need to have the backup application installed.<br />
<br />
'''Specific legend:'''<br />
<br />
* '''Hard links''': whether unmodified files are stored as hard links to previous versions.<br />
<br />
{{Expansion|Enter values in the cells marked with "?". Also replace the "Yes" with more specific values and references.}}<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! Hard links<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|-<br />
| [[Back In Time]]<br />
| {{AUR|backintime}}<br />
| Python, rsync, diff<br />
| {{No}}<br />
| {{No}}<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{No}}<br />
| {{G|Yes [http://backintime.le-web.org/documentation/]}}<br />
| {{Yes}}<br />
| {{G|Qt}}<br />
| GPLv2<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://dar.linux.free.fr/ DAR] (Disk ARchive)<br />
| {{AUR|dar}}<br />
| C++<br />
| {{G|special archive format}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{R|No [http://dar.linux.free.fr/doc/Features.html]}}<br />
| {{Yes}}<br />
| {{G|DarGUI}}<br />
| GPL<br />
| Windows, Solaris, FreeBSD, NetBSD, MacOS X<br />
| {{Yes}}<br />
| Automatic backup using [[cron]] is possible with {{AUR|sarab}}{{Broken package link|{{aur-mirror|sarab}}}}.<br />
|-<br />
| [http://dargui.sourceforge.net/ DarGUI]<br />
| {{AUR|dargui}}<br />
| DAR front-end<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{R|No [http://dar.linux.free.fr/doc/Features.html]}}<br />
| {{No}}<br />
| {{G|GTK}}<br />
| GPL<br />
| Windows<br />
| style="text-align:center;" | ?<br />
|<br />
|-<br />
| [http://miek.nl/projects/hdup2/ hdup]<br />
| [[hdup]]<br />
| C<br />
| {{G|bzip, gzip, lzop}}<br />
| {{G|gpg}}<br />
| style="text-align:center;" | ?<br />
| {{G|SSH}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{No}}<br />
| {{No}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv2<br />
|<br />
| {{No}}<br />
| Multiple backup targets.<br />
|-<br />
| [http://www.scottlu.com/Content/Link-Backup.html Link-Backup]<br />
| {{AUR|link-backup}}<br />
| Python<br />
| {{No}}<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{G|SSH}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{R|No [http://www.scottlu.com/Content/Link-Backup.html]}}<br />
| {{Yes}}<br />
| {{No}}<br />
| MIT<br />
| <br />
| {{No}}<br />
| It copies itself to the server.<br />
|-<br />
| [https://github.com/miekg/rdup rdup]<br />
| {{AUR|rdup}}<br />
| C<br />
| {{G|tar.gz}}<br />
| {{G|gpg, blowfish and others}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv3<br />
| <br />
| {{No}}<br />
| Set of command-line tools.<br />
|-<br />
| [http://www.rsnapshot.org/ rsnapshot]<br />
| [[rsnapshot]]<br />
| rsync<br />
| {{No}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{G|Yes [http://rsnapshot.org/rsnapshot/docs/docbook/rest.html]}}<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv2<br />
| Win32<br />
| {{Yes}}<br />
| <br />
|-<br />
| [https://launchpad.net/sbackup sbackup]<br />
| {{AUR|sbackup}}<br />
| Python<br />
| {{G|gzip, bzip2}}<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{G|SSH}}<br />
| style="text-align:center;" | ?<br />
| {{No}}<br />
| {{No}}<br />
| {{No}}<br />
| {{No}}<br />
| {{No}}<br />
| {{G|GTK}}<br />
| GPLv3<br />
| <br />
| {{Yes}}<br />
|<br />
|-<br />
| [https://launchpad.net/timeshift TimeShift]<br />
| {{AUR|timeshift}}<br />
| rsync<br />
| {{No}}<br />
| {{No}}<br />
| {{G|rsync}}<br />
| {{G|rsync}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| {{No}}<br />
| {{G|GTK}}<br />
| GPLv3<br />
| Designed for full-system backups to dedicated devices.<br />
| {{Yes}}<br />
|<br />
|-<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! Hard links<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|}<br />
<br />
=== Network oriented ===<br />
<br />
These applications have been designed to centralize the backup of several machines connected to a network, through a server-client model. In general they are more complicated to deploy, compared to [[#Single machine]] solutions.<br />
<br />
'''Specific legend:'''<br />
<br />
* '''Increment type''': the strategy used to reduce used space by deduplicating data (i.e., besides compression).<br />
** '''file-based''': if a file is modified, the entire new version is stored at each snapshot.<br />
*** '''hard-links''': whether unmodified files are stored as hard links to previous versions.<br />
** '''chunk-based''': only the modified ''parts'' of files are stored at each snapshot.<br />
<br />
{{Expansion|Enter values in the cells marked with "?". Also replace the "Yes" with more specific values and references.}}<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! Increment type<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|-<br />
| [http://backuppc.sourceforge.net/index.html BackupPC]<br />
| [[BackupPC]]<br />
| Perl<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| file-based, hard links [http://backuppc.sourceforge.net/faq/BackupPC.html#Backup-basics]<br />
| {{No}}<br />
| {{G|Web}}<br />
| GPLv2<br />
| Any (no client needed)<br />
| {{Yes}}<br />
| Identical files across backups of the same or different clients are stored only once.<br />
|-<br />
| [http://www.bacula.org Bacula]<br />
| [https://aur.archlinux.org/packages/?K=bacula- bacula-*] in [[AUR]]<br />
| C++<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| file-based [http://burp.grke.org/why.html]<br />
| {{Yes}}<br />
| {{G|GUI, Web}}<br />
| AGPLv3<br />
| Windows, OS X<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://burp.grke.org burp]<br />
| {{AUR|burp-backup}}<br />
| librsync<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| chunk-based [http://burp.grke.org/why.html]<br />
| {{Yes}}<br />
| {{G|[https://git.ziirish.me/ziirish/burp-ui burp-ui]}}<br />
| AGPLv3<br />
| Windows<br />
| {{Yes}}<br />
|<br />
|-<br />
| [http://safekeep.sourceforge.net/ SafeKeep]<br />
| {{AUR|safekeep}}<br />
| rdiff-backup<br />
| {{No}}<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| chunk-based [http://safekeep.sourceforge.net/safekeep.html]<br />
| {{Yes}}<br />
| {{No}}<br />
| GPL<br />
| <br />
| {{No}}<br />
| Integrates with [[LVM]] and databases to create consistent backups. Bandwidth throttling.<br />
|-<br />
| [http://www.snebu.com Snebu]<br />
| {{AUR|snebu}}{{Broken package link|{{aur-mirror|snebu}}}}<br />
| C<br />
| {{Yes}}<br />
| {{No}}<br />
| style="text-align:center;" | ?<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| ?<br />
| {{Yes}}<br />
| {{No}}<br />
| GPLv3<br />
| <br />
| style="text-align:center;" | ?<br />
| Supports arbitrary retention schedules.<br />
|-<br />
| [http://www.initzero.it/portal/soluzioni/software-open-source/synbak-universal-backup-system_2623.html Synbak]<br />
| {{Pkg|synbak}}<br />
| Multitool wrapper<br />
| {{Yes}}<br />
| {{No}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}}<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| style="text-align:center;" | ?<br />
| ?<br />
| {{No}}<br />
| {{G|Web}}<br />
| GPLv3<br />
| <br />
| {{Yes}}<br />
| Unifies several backup methods.<br />
|-<br />
! Name<br />
! Installation<br />
! Implementation<br />
! Compressed storage<br />
! Encrypted storage<br />
! Delta transfer<br />
! Encrypted transfer<br />
! FS metadata<br />
! Easy access<br />
! Resumable<br />
! Handles renames<br />
! Increment type<br />
! CLI<br />
! Other interfaces<br />
! Licence<br />
! Other platforms<br />
! Active<br />
! Specificity<br />
|}<br />
<br />
== Cloud storage ==<br />
<br />
{{Merge|List of applications#File sharing|Remove the extra bullet points: the Wikipedia comparison table, and the respective webpages and Wikipedia articles do a better job at describing them.}}<br />
<br />
=== Third-party services ===<br />
<br />
See also [[Wikipedia:Comparison of online backup services]].<br />
<br />
* {{App|Amazon S3|Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web service interface to store and retrieve any amount of data from anywhere on the web. With Amazon S3, you pay only for the storage you actually use. There is no minimum fee and no setup cost.|http://aws.amazon.com/s3/|{{Pkg|s3cmd}}}}<br />
<br />
* {{App|CloudBacko|Enterprise-grade cloud backup tool for Linux, Mac and Windows.<br />
** Closed source. Free, Lite and Pro versions available.<br />
** Written in Java.<br />
** Encrypted backup to multiple cloud destinations. <br />
** Supports multiple cloud destinations combined as one storage pool.<br />
** No installation required in Free version.<br />
** GUI frontend for Linux in Pro version.<br />
** Virtual machine backup available in Pro version.<br />
|http://www.cloudbacko.com/}}<br />
<br />
* {{App|[[CrashPlan]]|An online/offsite backup solution.<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is free for local use.<br />
** Restore prevents simultaneous backing up<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|[[Dropbox]]|A popular file-sharing service.<br />
** A daemon monitors a specified directory, and uploads incremental changes to dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.dropbox.com|{{AUR|dropbox}} {{AUR|nautilus-dropbox}}}}<br />
<br />
* {{App|[[Wikipedia:Google Drive|Google Drive]]|A file storage and synchronization service provided by Google.<br />
** Provides cloud storage, file sharing and collaborative editing.<br />
** Multiple clients are available.<br />
|https://drive.google.com|{{AUR|google-drive-ocamlfuse}} (free), {{AUR|drive}} (free), {{AUR|grive}} (free), {{AUR|gdrivefs}} (free), [[insync]] (non-free)}}<br />
<br />
* {{App|[[Wikipedia:IDrive_Inc.|iDrive]]|Universal Online Backup.<br />
** Multiple Device Backup.<br />
** Online File Sync. <br />
** Real-Time Backup. <br />
** Backup and Access from Mobile Devices. <br />
** Remote Manage. <br />
** No GUI Front end for Linux, command line based. A wrapper script is available to make it easier to use.<br />
|https://www.idrive.com/|{{AUR|idevsutil}}{{Broken package link|{{aur-mirror|idevsutil}}}}, {{AUR|idrive-wrapper}}{{Broken package link|{{aur-mirror|idrive-wrapper}}}}}}<br />
<br />
* {{App|[[Wikipedia:Jungle Disk|Jungle Disk]]|An online backup tool that stores its data in Amazon S3 or Rackspace Cloud Files.<br />
** A GNOME Files extension.<br />
** Only paid plans available.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}{{Broken package link|{{aur-mirror|nautilus-jungledisk}}}}}}<br />
<br />
* {{App|[[Wikipedia:Mega (website)|MEGA]]|Successor to the MegaUpload file-sharing service.<br />
** Free accounts are 50GB with paid plans available for more space.<br />
** Offers encryption and de-duplication.<br />
** Usually accessed through its web interface but other tools exist.<br />
|https://mega.co.nz|{{AUR|megatools}}, {{AUR|megasync}}, {{AUR|megafuse}}{{Broken package link|{{aur-mirror|megafuse}}}}}}<br />
<br />
* {{App|Nutstore|A cloud service that lets you sync and share files anywhere.<br />
** Multiple file folders sync.<br />
** Service for Chinese users.<br />
|http://jianguoyun.com/|{{AUR|nutstore}}}}<br />
<br />
* {{App|rsync.net|Cloud storage for offsite backups.<br />
** ZFS filesystem, accessible with any SSH/SFTP/SCP tool, running on a UNIX system.<br />
** Simple rsync synchronization with daily automatic ZFS snapshots.<br />
** [http://www.rsync.net/products/attic.html Special discounted price] if used with borg or attic.<br />
|http://www.rsync.net/|[[rsync]]/[[SSH]], {{Pkg|borg}}/{{AUR|attic}}}}<br />
<br />
* {{App|[[Wikipedia:SpiderOak|SpiderOak]]|An online backup tool for Windows, Mac and Linux users to back up, share, sync, access and store their data.<br />
** Free account holds 2GB as a 60-day trial.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
|https://spideroak.com/|{{AUR|spideroak-one}}}}<br />
<br />
* {{App|[[Wikipedia:Storage Made Easy|Storage Made Easy]]|Provides unified access to numerous cloud storage services, as well as its own storage.<br />
** Free and paid version available.<br />
** Free account holds 5GB and allows access to up to three other cloud storage providers.<br />
** Supports local directory via fuse, as well as web access.<br />
** Supports many cloud storage services, such as Box, Dropbox, Google Drive, Onedrive, and others.<br />
|http://storagemadeeasy.com/|{{AUR|smestorage}}{{Broken package link|{{aur-mirror|smestorage}}}}}}<br />
<br />
* {{App|[[Wikipedia:Tarsnap|Tarsnap]]|A secure online backup service for BSD, Linux, OS X, Solaris and Windows (through Cygwin).<br />
** Compressed encrypted backups to Amazon S3 Servers.<br />
** Automate via [[cron]].<br />
** Incremental backups.<br />
** Backup any files or directories.<br />
** Command line only client.<br />
** Pay only for usage (bandwidth and storage). <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|[[Yandex Disk]]|Free cloud storage service created by Yandex.ru that gives you access to your photos, videos and documents from any internet-enabled device.|https://disk.yandex.ru/|{{AUR|yandex-disk}}}}<br />
<br />
==== Multi-service clients ====<br />
<br />
* {{App|[[Déjà Dup]]|A simple GTK+ backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Automatic, timed backup configurable in GUI.<br />
** Restore wizard.<br />
** Integrated into the GNOME Files file manager.<br />
** Inherits several features of duplicity.<br />
|https://launchpad.net/deja-dup|{{Pkg|deja-dup}}}}<br />
<br />
* {{App|Duplicati|Backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers. It works with Amazon S3, Windows Live SkyDrive, Google Drive (Google Docs), Rackspace Cloud Files or WebDAV, SSH, FTP (and many more). Duplicati is open source and free.|http://www.duplicati.com/|{{AUR|duplicati-latest}}}}<br />
<br />
* {{App|[[Duplicity]]|A simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.<br />
** Supports gpg encryption and signing.<br />
** Supports gzip compression.<br />
** Supports full or incremental backups, incremental backup stores only difference between new and old file.<br />
** Supports pushing over [http://duplicity.nongnu.org/duplicity.1.html#sect7 many protocols].<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Duply]]|Front-end for duplicity which simplifies running it by:<br />
** keeping recurring settings in profiles per backup job;<br />
** automated import/export of keys between profile and keyring;<br />
** enabling batch operations eg. backup_verify_purge;<br />
** executing pre/post scripts;<br />
** precondition checking for flawless duplicity operation.<br />
|http://www.duply.net/|{{AUR|duply}}}}<br />
<br />
* {{App|rclone|Rclone is a command line program to sync files and directories to and from Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage and The local filesystem.|http://rclone.org/|{{Pkg|rclone}}}}<br />
<br />
=== Cooperative ===<br />
<br />
A [[Wikipedia:Cooperative_storage_cloud|cooperative storage cloud]] is a decentralized model of networked online storage where data is stored on multiple computers, hosted by the participants cooperating in the cloud. <br />
<br />
* {{App|[http://www.symform.com Symform]| A peer-to-peer cloud backup service.<br />
** Unlimited free backup in exchange for 2:1 storage space contribution with an always-connected device (at least 80% uptime).<br />
** [http://www.symform.com/our-solutions/pricing/ Payment options exist].<br />
** First 10GB of backup storage is free (no contribution needed).<br />
** In addition to paid support, support plans in exchange for extended contribution (300GB+) exist.<br />
** Automatic and incremental backups.<br />
** Data is encrypted before leaving the computer, though keys are also stored on the Symform's servers.[http://virtualserverguy.com/blog/2012/12/19/symform-security-analysis]<br />
** Customizable limits for bandwidth consumption.<br />
** Ability to have a local copy ("Hot Copy") of the backed up data on a different disk or computer.<br />
** Ability to have synchronized folders between nodes (Dropbox-like).<br />
** Closed source, using mono. Windows clients available.<br />
|http://www.symform.com/|{{AUR|symform}}{{Broken package link|{{aur-mirror|symform}}}}}}<br />
<br />
=== Custom infrastructure ===<br />
<br />
* {{App|Cozy|A personal cloud you can hack, host and delete.|https://cozy.io|{{AUR|cozy-standalone}} {{AUR|cozy-nginx}} {{AUR|cozy-apache}}}}<br />
<br />
* {{App|[[OpenStack]]|Controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.|http://www.openstack.org/}}<br />
<br />
* {{App|[[ownCloud]]|Software suite that provides a location-independent storage area for data.|http://owncloud.org/|{{Pkg|owncloud}}}}<br />
<br />
* {{App|[[Pydio]]|Mature open source web application for file sharing and synchronization.|https://pydio.com/|{{AUR|pydio}}}}<br />
<br />
* {{App|[[Seafile]]|Open source cloud storage system, with advanced support for file syncing, privacy protection and teamwork.|http://seafile.com/|{{AUR|seafile-server}} {{AUR|seafile-client}} {{AUR|seafile-client-cli}} {{AUR|seafile-client-qt5}}{{Broken package link|package not found}}}}<br />
<br />
* {{App|StackSync|Open-source scalable Personal Cloud that can adapt to the necessities of organizations. It puts a special emphasis on security by encrypting data on the client side before it is sent to the server.|http://stacksync.org/}}<br />
<br />
* {{App|Syncany|Cloud storage and filesharing application with a focus on security and abstraction of storage.|https://www.syncany.org/|{{AUR|syncany}}}}<br />
<br />
== Version control systems ==<br />
<br />
{{Merge|List_of_applications#Work_environment|Also drop the extra bullets, the Wikipedia comparison table is much better than this.}}<br />
<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
See also [[Wikipedia:Comparison of revision control software]].<br />
<br />
* {{App|[[Bazaar]]|A distributed version control system that helps you track project history over time and to collaborate easily with others.<br />
** Similar commands to Subversion.<br />
** Supports working with or without a central server.<br />
** Support for working with some other revision control systems<br />
** Complete Unicode support.<br />
|http://bazaar.canonical.com/en/|{{Pkg|bzr}}}}<br />
<br />
* {{App|[[Darcs]]|A distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.<br />
** Offline mode.<br />
** Easy branching and merging.<br />
** Written in Haskell.<br />
** Not very fast.<br />
|http://darcs.net/|{{Pkg|darcs}}}}<br />
<br />
* {{App|[[Git]]|A distributed revision control and source code management system with an emphasis on speed.<br />
** Very easy creation, merging, and deletion of branches.<br />
** Nearly all operations are performed locally, giving it a huge speed advantage on centralized systems.<br />
** Has a "staging area" or "index", this is an intermediate area where commits can be formatted and reviewed before completing the commit.<br />
** Does not handle binary files very well.<br />
|http://git-scm.com/|{{Pkg|git}}}}<br />
<br />
* {{App|[[Mercurial]]|A distributed version control system written in Python and similar in many ways to Git.<br />
** Platform independent.<br />
** Support for [http://mercurial.selenic.com/wiki/UsingExtensions extensions].<br />
** A set of commands consistent with Subversion.<br />
** Supports tags.<br />
|http://mercurial.selenic.com/|{{Pkg|mercurial}}}}<br />
<br />
* {{App|[[Subversion]]|A full-featured centralized version control system originally designed to be a better CVS.<br />
** Renamed/copied/moved/removed files retain full revision history.<br />
** Native support for binary files, with space-efficient binary-diff storage.<br />
** Costs proportional to change size, not to data size.<br />
** Allows arbitrary metadata ("properties") to be attached to any file or directory. <br />
|http://subversion.apache.org/|{{Pkg|subversion}}}}<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:List of backup software]]<br />
* [[Wikipedia:Comparison of backup software]]<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]<br />
* [http://www.si-journal.org/index.php/JSI/article/view/205 Performance comparison of five remote incremental backup tools: Rsync, Rdiff-backup, Duplicity, Areca and Link-Backup]<br />
* [http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/ rsync-snapshot.sh] — Local and remote snapshot backup using rsync with hard links</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Systemd-boot&diff=438590Systemd-boot2016-06-19T21:27:12Z<p>Aouellette: /* Encrypted Root Installations */</p>
<hr />
<div>{{lowercase title}}<br />
[[Category:Boot loaders]]<br />
[[de:Gummiboot]]<br />
[[es:Gummiboot]]<br />
[[ja:Systemd-boot]]<br />
[[ru:Systemd-boot]]<br />
[[zh-cn:Systemd-boot]]<br />
{{Related articles start}}<br />
{{Related|Arch boot process}}<br />
{{Related|Boot loaders}}<br />
{{Related|Unified Extensible Firmware Interface}}<br />
{{Related articles end}}<br />
<br />
'''systemd-boot''', previously called '''gummiboot''', is a simple UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu. It is included with the {{pkg|systemd}}, which is installed on an Arch system by default.<br />
<br />
It is simple to configure, but can only start EFI executables, such as the Linux kernel [[EFISTUB]], UEFI Shell, GRUB, the Windows Boot Manager, and such.<br />
<br />
{{Warning|''systemd-boot'' simply provides a boot menu for EFISTUB kernels. In case you have issues booting EFISTUB kernels like in {{Bug|33745}}, you should use a boot loader which does not use EFISTUB, like [[GRUB]], [[Syslinux]] or [[Boot loaders#ELILO|ELILO]].}}<br />
<br />
== Installation ==<br />
<br />
=== EFI boot ===<br />
<br />
# Make sure you are booted in UEFI mode.<br />
# Verify [[Unified_Extensible_Firmware_Interface#Requirements_for_UEFI_variable_support|your EFI variables are accessible]].<br />
# Mount your [[EFI System Partition]](ESP) properly. {{ic|''esp''}} is used to denote the mountpoint in this article. {{Note|''systemd-boot'' cannot load EFI binaries from other partitions. It is therefore recommended to mount your ESP to {{ic|/boot}}. See [[#Updating]] for more information and work-around, in case you want to separate {{ic|/boot}} from the ESP.}}<br />
# Copy your kernel and initramfs onto that ESP. {{Note|For a way to automatically keep the kernel updated on the ESP, have a look at the [[EFISTUB#Using_systemd|EFISTUB article]] for some systemd units that can be adapted. If your efi partition is using automount, you may need to add {{ic|vfat}} to a file in {{ic|/etc/modules-load.d/}} to ensure the current running kernel has the {{ic|vfat}} module loaded at boot, before any kernel update happens that could replace the module for the currently running version making the mounting of {{ic|/boot/efi}} impossible until reboot.}}<br />
# Finally, Type the following command to install ''systemd-boot'': {{bc|1=# bootctl --path=''esp'' install}} It will copy the ''systemd-boot'' binary to your EFI System Partition ({{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} and {{ic|''esp''/EFI/Boot/BOOTX64.EFI}} - both of which are identical - on x64 systems) and add ''systemd-boot'' itself as the default EFI application (default boot entry) loaded by the EFI Boot Manager.<br />
<br />
=== Legacy boot ===<br />
<br />
{{Warning|This is not the recommended process.}}<br />
You can also successfully install ''systemd-boot'' if booted with a legacy OS. However, this requires that you later on tell your firmware to launch ''systemd-boot'''s EFI file on boot:<br />
* you either have a working EFI shell somewhere;<br />
* or your firmware interface provides you with a way of properly setting the EFI file that will be loaded at boot time.<br />
{{Note|E.g. on Dell's Latitude series, the firmware interface provides everything you need to setup EFI boot, and the EFI Shell won't be able to write to the computer's ROM.}}<br />
If you can do so, the installation is easier: go into your EFI shell or your firmware configuration interface, and change your machine's default EFI file to {{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} ({{ic|systemd-bootia32.efi}} on i686 systems).<br />
<br />
=== Updating ===<br />
<br />
''systemd-boot'' ({{ic|man bootctl}}, {{ic|man systemd-efi-boot-generator}}) assumes that your EFI System Partition is mounted on {{ic|/boot}}. Unlike the previous separate ''gummiboot'' package, which updated automatically on a new package release with a {{ic|post_install}} script, updates of new ''systemd-boot'' versions are now handled manually by the user: <br />
<br />
# bootctl update<br />
<br />
If the ESP is not mounted on {{ic|/boot}}, the {{ic|1=--path=}} option can pass it. For example: <br />
<br />
# bootctl --path=''esp'' update<br />
<br />
{{Note|This is also the command to use when migrating from ''gummiboot'', before removing that package. If that package has already been removed, however, run {{ic|1=bootctl --path=''esp'' install}}.}}<br />
<br />
== Configuration ==<br />
<br />
=== Basic configuration ===<br />
<br />
The basic configuration is kept in {{ic|''esp''/loader/loader.conf}}, with three possible configuration options:<br />
<br />
* {{ic|default}} – default entry to select (without the {{ic|.conf}} suffix); can be a wildcard like {{ic|arch-*}}<br />
<br />
* {{ic|timeout}} – menu timeout in seconds. If this is not set, the menu will only be shown when you hold the space key while booting.<br />
<br />
* {{ic|editor}} - whether to enable the kernel parameters editor or not. {{ic|1}} (default) is to enable, {{ic|0}} is to disable. Since the user can add {{ic|1=init=/bin/bash}} to bypass root password and gain root access, it's strongly recommended to set this option to {{ic|0}}.<br />
<br />
Example:<br />
<br />
{{hc|''esp''/loader/loader.conf|<br />
default arch<br />
timeout 4<br />
editor 0<br />
}}<br />
<br />
{{Note|The first 2 options can be changed in the boot menu itself, which will store them as EFI variables.}}<br />
<br />
=== Adding boot entries ===<br />
<br />
{{Note|''bootctl'' will automatically check for "'''Windows Boot Manager'''" ({{ic|\EFI\Microsoft\Boot\Bootmgfw.efi}}), "'''EFI Shell'''" ({{ic|\shellx64.efi}}) and "'''EFI Default Loader'''" ({{ic|\EFI\Boot\bootx64.efi}}). Where detected, entries will also automatically be generated for them as well. However, it does not auto-detect other EFI applications (unlike [[rEFInd]]), so for booting the kernel, manual configuration entries must be created.<br />
If you dual-boot Windows, it is strongly recommended to disable its default [[Dual boot with Windows#Fast_Start-Up|Fast Start-Up]] option.}}<br />
<br />
{{Tip|You can find the {{ic|PARTUUID}} for your root partition with the command {{ic|1=blkid -s PARTUUID -o value /dev/sd''xY''}}, where {{ic|''x''}} is the device letter and {{ic|''Y''}} is the partition number. This is required only for your root partition, not {{ic|''esp''}}.}}<br />
<br />
''bootctl'' searches for boot menu items in {{ic|''esp''/loader/entries/*.conf}} – each file found must contain exactly one boot entry. The possible options are:<br />
<br />
* {{ic|title}} – operating system name. '''Required.'''<br />
<br />
* {{ic|version}} – kernel version, shown only when multiple entries with same title exist. Optional.<br />
<br />
* {{ic|machine-id}} – machine identifier from {{ic|/etc/machine-id}}, shown only when multiple entries with same title and version exist. Optional.<br />
<br />
* {{ic|efi}} – EFI program to start, relative to your ESP ({{ic|''esp''}}); e.g. {{ic|/vmlinuz-linux}}. Either this or {{ic|linux}} (see below) is '''required.'''<br />
<br />
* {{ic|options}} – command line options to pass to the EFI program or kernel boot parameters. Optional, but you will need at least {{ic|1=initrd=''efipath''}} and {{ic|1=root=''dev''}} if booting Linux.<br />
<br />
For Linux, you can specify {{ic|linux ''path-to-vmlinuz''}} and {{ic|initrd ''path-to-initramfs''}}; this will be automatically translated to {{ic|efi ''path''}} and {{ic|1=options initrd=''path''}} – this syntax is only supported for convenience and has no differences in function. <br />
<br />
==== Standard root installations ====<br />
<br />
Here is an example entry for a root partition without LVM or LUKS:<br />
<br />
{{hc|''esp''/loader/entries/arch.conf|2=<br />
title Arch Linux<br />
linux /vmlinuz-linux<br />
initrd /initramfs-linux.img<br />
options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw<br />
}}<br />
<br />
Please note in the example above that {{ic|PARTUUID}}/{{ic|PARTLABEL}} identifies a GPT partition, and differs from {{ic|UUID}}/{{ic|LABEL}}, which identifies a filesystem. Using the {{ic|PARTUUID}}/{{ic|PARTLABEL}} is advantageous because it is invariant (i.e. unchanging) if you reformat the partition with another filesystem, or if the {{ic|/dev/sd* }}mapping changed for some reason. It is also useful if you do not have a filesystem on the partition (or use LUKS, which does not support {{ic|LABEL}}s).<br />
<br />
==== LVM root installations ====<br />
<br />
{{Warning|''systemd-boot'' cannot be used without a separate {{ic|/boot}} filesystem outside of LVM.}}<br />
<br />
Here is an example for a root partition using [[LVM|Logical Volume Management]]:<br />
<br />
{{hc|''esp''/loader/entries/arch-lvm.conf|2=<br />
title Arch Linux (LVM)<br />
linux /vmlinuz-linux<br />
initrd /initramfs-linux.img<br />
options root=/dev/mapper/<VolumeGroup-LogicalVolume> rw<br />
}}<br />
<br />
Replace {{ic|<VolumeGroup-LogicalVolume>}} with the actual VG and LV names (e.g. {{ic|1=root=/dev/mapper/volgroup00-lvolroot}}). Alternatively, it is also possible to use a UUID instead:<br />
....<br />
options root=UUID=<UUID identifier> rw<br />
<br />
Note that {{ic|1=root='''UUID'''=}} is used instead of {{ic|1=root='''PARTUUID'''=}}, which is used for Root partitions without LVM or LUKS.<br />
<br />
==== Encrypted Root Installations ====<br />
<br />
Here is an example configuration file for an encrypted root partition ([[Dm-crypt|DM-Crypt / LUKS]]):<br />
<br />
{{hc|''esp''/loader/entries/arch-encrypted.conf|2=<br />
title Arch Linux Encrypted<br />
linux /vmlinuz-linux<br />
initrd /initramfs-linux.img<br />
options cryptdevice=UUID=<UUID>:<mapped-name> root=/dev/mapper/<mapped-name> quiet rw<br />
}}<br />
<br />
UUID is used in this example; {{ic|PARTUUID}} should be able to replace the UUID, if so desired. You may also replace the {{ic|/dev}} path with a regular UUID. {{ic|mapped-name}} is whatever you want it to be called. See [[Dm-crypt/System configuration#Boot loader]].<br />
<br />
If you are using LVM, your cryptdevice line will look like this:<br />
<br />
{{hc|''esp''/loader/entries/arch-encrypted-lvm.conf|2=<br />
title Arch Linux Encrypted LVM<br />
linux /vmlinuz-linux<br />
initrd /initramfs-linux.img<br />
options cryptdevice=UUID=<UUID>:MyVolGroup root=/dev/mapper/MyVolGroup-MyVolRoot quiet rw<br />
}}<br />
<br />
You can also add other EFI programs such as {{ic|\EFI\arch\grub.efi}}.<br />
<br />
==== btrfs subvolume root installations ====<br />
<br />
If booting a [[btrfs]] subvolume as root, amend the {{ic|options}} line with {{ic|rootflags<nowiki>=</nowiki>subvol<nowiki>=</nowiki><root subvolume>}}. In the example below, root has been mounted as a btrfs subvolume called 'ROOT' (e.g. {{ic|mount -o subvol<nowiki>=</nowiki>ROOT /dev/sdxY /mnt}}):<br />
<br />
{{hc|''esp''/loader/entries/arch-btrfs-subvol.conf|2=<br />
title Arch Linux<br />
linux /vmlinuz-linux<br />
initrd /initramfs-linux.img<br />
options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw rootflags<nowiki>=</nowiki>subvol<nowiki>=</nowiki>ROOT<br />
}}<br />
<br />
A failure to do so will otherwise result in the following error message: {{ic|ERROR: Root device mounted successfully, but /sbin/init does not exist.}}<br />
<br />
==== EFI Shells or other EFI apps ====<br />
<br />
In case you installed EFI shells and other EFI application into the ESP, you can use the following snippets:<br />
<br />
{{hc|''esp''/loader/entries/uefi-shell-v1-x86_64.conf|2=<br />
title UEFI Shell x86_64 v1<br />
efi /EFI/shellx64_v1.efi<br />
}}<br />
<br />
{{hc|''esp''/loader/entries/uefi-shell-v2-x86_64.conf|2=<br />
title UEFI Shell x86_64 v2<br />
efi /EFI/shellx64_v2.efi<br />
}}<br />
<br />
{{Expansion|Add example on how to boot into EFI firmware setup.}}<br />
<br />
=== Support hibernation ===<br />
<br />
See [[Suspend and hibernate]].<br />
<br />
== Keys inside the boot menu ==<br />
<br />
The following keys are used inside the menu:<br />
* {{ic|Up/Down}} - select entry<br />
* {{ic|Enter}} - boot the selected entry<br />
* {{ic|d}} - select the default entry to boot (stored in a non-volatile EFI variable)<br />
* {{ic|-/T}} - decrease the timeout (stored in a non-volatile EFI variable)<br />
* {{ic|+/t}} - increase the timeout (stored in a non-volatile EFI variable)<br />
* {{ic|e}} - edit the kernel command line. It has no effect if the {{ic|editor}} config option is set to {{ic|0}}.<br />
* {{ic|v}} - show the gummiboot and UEFI version<br />
* {{ic|Q}} - quit<br />
* {{ic|P}} - print the current configuration<br />
* {{ic|h/?}} - help<br />
<br />
These hotkeys will, when pressed inside the menu or during bootup, directly boot<br />
a specific entry:<br />
<br />
* {{ic|l}} - Linux<br />
* {{ic|w}} - Windows<br />
* {{ic|a}} - OS X<br />
* {{ic|s}} - EFI Shell<br />
* {{ic|1-9}} - number of entry<br />
<br />
== Troubleshooting ==<br />
<br />
=== Manual entry using efibootmgr ===<br />
<br />
If {{ic|bootctl install}} command failed, you can create a EFI boot entry manually using {{Pkg|efibootmgr}}:<br />
<br />
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/systemd/systemd-bootx64.efi -L "Linux Boot Manager"<br />
<br />
where {{ic|/dev/sdXY}} is the [[UEFI#EFI System Partition|EFI System Partition]].<br />
<br />
=== Menu does not appear after Windows upgrade ===<br />
<br />
For example, if you upgraded from Windows 8 to Windows 8.1, and you no longer see a boot menu after the upgrade (i.e., Windows boots immediately):<br />
<br />
* Make sure Secure Boot (UEFI setting) and [[Dual boot with Windows#Fast_Start-Up|Fast Startup]] (Windows power option setting) are both disabled.<br />
* Make sure your UEFI prefers Linux Boot Manager over Windows Boot Manager (UEFI setting like Hard Drive Disk Priority).<br />
<br />
{{Note|Windows 8.x+, including Windows 10, will overwrite any UEFI choices you make and install itself as the priority boot choice after every boot. Changing the boot order in the UEFI firmware will only last until the next Windows 10 boot. Know what the ''Change Boot Option'' key is for your motherboard.}}<br />
<br />
To make Windows 8.X and above respect your boot order, you must enter a Windows group policy and have it execute a batch (''.bat'') file on startup. In Windows:<br />
<br />
# Open a command prompt with admin privlages. Type in {{ic|bcdedit /enum firmware}}<br />
# Find the Firmware Application that has "Linux" in the description, e.g. "Linux Boot Manager"<br />
# Copy the Identifier, including the brackets, e.g. {{ic|<nowiki>{31d0d5f4-22ad-11e5-b30b-806e6f6e6963}</nowiki>}}<br />
# Create a batch file (e.g. {{ic|bootorder.bat}}) somewhere on your system with the following contents: {{ic|bcdedit /set {fwbootmgr} DEFAULT {''identifier_copied_in_step_3''<nowiki>}</nowiki>}} (e.g. {{ic|<nowiki>bcdedit /set {fwbootmgr} DEFAULT {31d0d5f4-22ad-11e5-b30b-806e6f6e6963}</nowiki>}}).<br />
# Open ''gpedit'' and under ''Local Computer Policy > Computer Configuration > Windows Settings > Scripts(Startup/Shutdown)'', choose ''Startup''. That should open a window named ''Startup Properties''.<br />
# Under the ''Scripts'' tab, choose the ''Add'' button<br />
# Click ''Browse'' and select the batch file you created in step 4.<br />
<br />
Alternatively, you can make the default Windows boot loader load ''systemd-boot'' instead. In an administrator command prompt in Windows, one can change this entry as follows:<br />
<br />
# bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi<br />
<br />
== See also ==<br />
<br />
* http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=436774Lenovo ThinkPad T460s2016-05-31T00:39:39Z<p>Aouellette: </p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Y| with linux-4.5.1}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With older kernels than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
Suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue. Kernel 4.6.0 (available via e.g. {{AUR|linux-git}}) resolves this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
The kernel patch for fixing suspend resume (see above) causes hibernation resume to fail when on charger power. The workaround is to unplug the charger when resuming from hibernation.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake Support]])<br />
<br />
== See also ==<br />
<br />
[https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T460s&diff=436772Lenovo ThinkPad T460s2016-05-31T00:27:22Z<p>Aouellette: Formatting cleanup</p>
<hr />
<div>[[Category:Lenovo]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless network configuration]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Y|no beep}}<br />
|-<br />
| [[TrackPoint]] || {{Y| with linux-4.5.1}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| Fingerprint Sensor || {{No}}<br />
|-<br />
| Mobile Broadband || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}}<br />
|-<br />
| Suspend/Resume || {{Y|kernel patch}}<br />
|-<br />
| Hibernate/Resume || {{Y|without charger}}<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T460s laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Configuration ==<br />
<br />
{{Style|Please link to existing resources such as [[TrackPoint]] and [[ALSA]] rather than duplicate things here. See [[:Category:Laptops]].}}<br />
<br />
The {{AUR|linux-t460s}} package includes kernel patches that fix the mouse and suspend issues described below, which can be useful until {{Pkg|linux}} includes these patches. Alternatively, {{AUR|linux-git}} can be used.<br />
<br />
=== Touchpad/TrackPoint ===<br />
<br />
With older kernels than 4.5.1, there is a [https://bugzilla.kernel.org/show_bug.cgi?id=114321 kernel bug] which causes the physical mouse button (belonging to the TrackPoint) to report release events immediately even when pressing and holding the button. This prevents drag and drop and similar actions from working. This bug was fixed in linux-4.5.1.<br />
<br />
=== Suspend / Resume ===<br />
<br />
Suspending the T460s by closing the lid when running on battery causes the machine to freeze up entirely. This can be worked around by setting the "intel_pstate=no_hwp" kernel parameter or by compiling the kernel with the patch attached to the [https://bugzilla.kernel.org/show_bug.cgi?id=113551 kernel bug] tracking this issue. Kernel 4.6.0 (available via e.g. {{AUR|linux-git}}) resolves this issue.<br />
<br />
=== Hibernate / Resume ===<br />
<br />
The kernel patch for fixing suspend resume (see above) causes hibernation resume to fail when on charger power. The workaround is to unplug the charger when resuming from hibernation.<br />
<br />
=== Fingerprint Sensor ===<br />
<br />
The fingerprint sensor built into the T460s is currently not supported by [[Fprint]].<br />
<br />
=== ALSA Beep ===<br />
<br />
There is no "beep" input to the snd_hda_intel device, so beeps generated by terminal emulators etc. are not played.<br />
As a workaround, PulseAudio can be configured to pick up X11 bell events, see [[PulseAudio#X11 Bell Events]].<br />
<br />
=== Function keys ===<br />
<br />
Fn+Esc to enable FnLk which will make your function keys work.<br />
<br />
=== Video Issues ===<br />
<br />
With newer kernels (>= 4.5), there seems to be video flickering, i.e. the screen occasionally goes black for what seems to be a single frame. See bug reports: [https://bugs.freedesktop.org/show_bug.cgi?id=95010] [https://bugs.freedesktop.org/show_bug.cgi?id=91393].<br />
<br />
This can be worked around by using the {{ic|i915.enable_rc6&#61;0}} kernel parameter [https://bugs.freedesktop.org/show_bug.cgi?id=95010] (cf. [[Intel graphics#Skylake Support]])<br />
<br />
== See also ==<br />
<br />
[https://www.youtube.com/watch?v=fnYZAr-BaK0&list=PLiKgVPlhUNuxgKwoVH4MMUy5MLqjAE2ux&index=3 Dual boot install with bootctl]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=User:Aouellette&diff=433060User:Aouellette2016-04-28T17:20:05Z<p>Aouellette: </p>
<hr />
<div>{{Related articles start}}<br />
{{Related|KDE}}<br />
{{Related|I3}}<br />
{{Related|Sway}}<br />
{{Related|Lenovo ThinkPad Edge E440}}<br />
{{Related|Lenovo ThinkPad T460s}}<br />
{{Related|Raspberry Pi}}<br />
{{Related|Intel Graphics}}<br />
{{Related|SSD}}<br />
{{Related articles end}}<br />
<br />
== My Computers Running Arch ==<br />
<br />
* Lenovo Thinkpad E440 with Intel Core i5 @ 2.50 GHz and 4GB RAM<br />
* Raspberry Pi 2 (Arch ARM)<br />
<br />
Hopefully more coming soon ...<br />
<br />
== ==<br />
My [https://github.com/aouelete/dotfiles dotfiles]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Sway&diff=431437Sway2016-04-16T15:27:30Z<p>Aouellette: Add [community] package</p>
<hr />
<div>[[Category:Tiling WMs]]<br />
[[Category:Dynamic WMs]]<br />
[[ja:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) is an attempt to create a [[Wayland]] version of [[i3]].<br />
<br />
{{Note|This is still a work in progress so caution is advised. However, it is deemed ready for regular use by the creator.}}<br />
<br />
== Installation ==<br />
<br />
''sway'' can be [[installed]] with the {{Pkg|sway}} package (or {{AUR|sway-git}} for the latest git version). If you already use i3, then copy your i3 configuration to {{ic|~/.config/sway/config}} and it will work out of the box. Otherwise, copy the sample configuration file to {{ic|~/.config/sway/config}}. It is located at {{ic|/etc/sway/config}}, unless the {{ic|DFALLBACK_CONFIG_DIR}} flag has been set. See the sway(5) [[man page]] for information on the configuration.<br />
<br />
== Starting sway ==<br />
=== From TTY ===<br />
You can start sway by simply typing {{ic|sway}} in the TTY.<br />
<br />
=== Using a display manager ===<br />
The sway session is located at {{ic|/usr/share/wayland-sessions/sway.desktop}}. It is automatically recognized by GDM.<br />
<br />
=== From X ===<br />
If you want to start ''sway'' in an X session for testing purposes it is possible to start it as a regular program.<br />
<br />
== Configuration ==<br />
=== Keymap ===<br />
By default, sway starts with the US QWERTY keymap. You can override this behaviour by starting sway with<br />
$ XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway<br />
This will launch sway with the keyboard set to the Colemak variant of the British keymap with the 101-key keyboard model.<br />
<br />
If you are using a display manager, you can not simply prepend the above line to the {{ic|sway.desktop}} file. As root, create the following file:<br />
{{hc|/usr/bin/sway-gb-ck|2=<br />
#!/bin/sh<br />
XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway}}<br />
Then, create a {{ic|sway-gb-ck.desktop}} file that starts the above script:<br />
{{hc|/usr/share/wayland-sessions/sway.desktop|2=<br />
[Desktop Entry]<br />
Name=Sway British(Colemak)<br />
Comment=SirCmpwn's Wayland window manager with the British Colemak keyboard layout<br />
Exec=sway-gb-ck<br />
Type=Application<br />
}}<br />
<br />
=== Statusbar ===<br />
Installing the program {{Pkg|i3status}} is an easy way to get a practical, default statusbar. All one has to do is add following snippet at the end of your sway config:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}<br />
</nowiki>}}<br />
If you want to achieve colored output of i3status, you can adjust following part in the i3status configuration:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
In both examples, the system-wide installed configuration files has been copied over to the user directory and then modified.<br />
<br />
=== Wallpaper ===<br />
This line, which can be appended at the end of your sway configuration, sets a background image on all displays (output matches all with name {{ic|"*"}}):<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /home/onny/pictures/fredwang_norway.jpg fill<br />
</nowiki>}}<br />
Of course you have to replace the file name and path according to your wallpaper.<br />
<br />
=== Input devices ===<br />
Its possible to tweak specific input device configurations. For example to enable tap-to-click for a touchpad, add an input block:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
}<br />
</nowiki>}}<br />
Where as the device identifier can be queried with:<br />
swaymsg -t get_inputs<br />
Output from the command, sometimes has "\" to escape some symbols like "/" (ie {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}}) and need to be removed<br />
<br />
More documentation and options like acceleration profiles can be found with <br />
man sway-input<br />
<br />
=== Custom keybindings ===<br />
[[Extra_keyboard_keys|Special keys]] on your keyboard can be used to execute commands, for example to control your volume or your monitor brightness:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +15%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -15%<br />
bindsym XF86AudioToggle exec pactl set-sink-mute 0 toggle<br />
bindsym XF86MonBrightnessDown exec dsplight down 5<br />
bindsym XF86MonBrightnessUp exec dsplight up 5<br />
</nowiki>}}<br />
<br />
== See also ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github project]<br />
* [http://swaywm.org Website]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Raspberry_Pi&diff=423715Raspberry Pi2016-03-02T21:31:57Z<p>Aouellette: Add info for Raspberry Pi 3</p>
<hr />
<div>[[Category:ARM architecture]]<br />
[[cs:Raspberry Pi]]<br />
[[ja:Raspberry Pi]]<br />
[[ru:Raspberry Pi]]<br />
[[uk:Raspberry Pi]]<br />
[[zh-CN:Raspberry Pi]]<br />
From [[Wikipedia:Raspberry_Pi|Wikipedia]]:<br />
<br />
:"''The Raspberry Pi is a series of credit card-sized single-board computers developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.''"<br />
<br />
The original models, released in 2012, are based on the Broadcom SoC BCM2835 ([[Wikipedia:ARM11|ARM11 architecture]]). The Raspberry Pi 2, released in 2015, is shipped with a BCM2836 SoC (quad-core [[Wikipedia:ARM Cortex-A7|ARM Cortex-A7 architecture]]). In February 2016, the Pi 3 was launched which contains a BCM2837 SoC (quad-core [[Wikipedia:ARM Cortex-A53|ARM Cortex-A53 architectue]]) and built in WiFi and Bluetooth.<br />
<br />
== Article preface ==<br />
This article is not meant to be an exhaustive setup guide and assumes that the reader has setup an Arch system before. Arch newbies are encouraged to read the [[Beginners' guide]] if unsure how to perform standard tasks such as creating users, managing the system, etc.<br />
<br />
{{Note|Support for the ARM architecture is provided on http://archlinuxarm.org not through posts to the official Arch Linux Forum. Any posts related to ARM specific issues will be promptly closed per the [[Forum etiquette#Arch Linux distribution support ONLY|Arch Linux distribution support ONLY]] policy.}}<br />
<br />
== System architecture ==<br />
<br />
The Raspberry Pi is an ARM-based device and therefore needs binaries compiled for this architecture. These binaries are provided by the [http://archlinuxarm.org/about Arch Linux ARM project] which ports Arch Linux to ARM-based devices. They also have a separate community and forum on their website, while original forum does ''not'' support ARM specific issues.<br />
With the introduction of the Raspberry Pi 2 the packages needed now depend on which architecture the devices has:<br />
* ARMv6 (BCM2835): Raspberry Pi Model A, A+, B, B+, Zero<br />
* ARMv7 (BCM2836): Raspberry Pi 2 (based on Model B+)<br />
* ARMv8 (BCM2837): Raspberry Pi 3<br />
<br />
== SD card performance ==<br />
<br />
System responsiveness, particularly during operations involving disk I/O such as updating the system, can be adversely affected by poor quality/slow SD media. This is characterized by [http://archlinuxarm.org/forum/viewtopic.php?f=64&t=9467 frequent, often extended pauses] as pacman writes out files to the file system. The pauses are not due to saturation of the RPi or RPi2 bus, but are likely the bottle-neck due to a slow SD (or micro SD) card. See the [[Benchmarking#Flash media]] for more.<br />
<br />
Performance and system responsiveness can be generally improved by making adjustments to the system configuration. See especially [[Maximizing performance]] and [[SSD#Tips for minimizing disk reads/writes]].<br />
<br />
=== Enable fsck on boot ===<br />
<br />
Follow [[fsck#Boot time checking]]. Remember that kernel parameters are specified in {{ic|/boot/cmdline.txt}}.<br />
<br />
== Installing Arch Linux ARM ==<br />
<br />
See the [http://archlinuxarm.org/platforms/armv6/raspberry-pi Arch Linux ARM Pi documentation] or [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 Arch Linux ARM Pi2 documentation].<br />
<br />
== Network ==<br />
<br />
The fresh install comes preconfigured to use the onboard NIC in dhcp mode via [[systemd-networkd]] which should allow access to an official installation through [[Secure Shell]]. The root user's password is "root" and it is highly recommended to change the password and optionally set up [[SSH keys]].<br />
<br />
=== Configure WLAN without ethernet ===<br />
<br />
Users needing to establish a wireless internet connection will need to use a wireless daemon such as [[WPA supplicant]]. Consult the [[Beginners'_guide#Wireless|wireless section]] of the Beginner's Guide for additional instruction.<br />
<br />
== Audio ==<br />
{{Pkg|alsa-utils}} should supply the needed programs to use onboard sound. Default volume can be adjusted using {{ic|alsamixer}}. <br />
<br />
{{Tip|Ensure that the sole source "PCM" is not muted (denoted by {{ic|MM}} if muted, press {{ic|M}} to unmute).}}<br />
<br />
Select an audio source for output:<br />
$ amixer cset numid=3 ''x''<br />
<br />
Where {{ic|''x''}} corresponds to:<br />
*0 for Auto<br />
*1 for Analog out<br />
*2 for HDMI<br />
<br />
=== Caveats for HDMI audio ===<br />
Some applications require a setting in {{ic|/boot/config.txt}} to force audio over HDMI:<br />
hdmi_drive=2<br />
<br />
== Video ==<br />
<br />
=== HDMI / analog TV-Out ===<br />
With the default configuration, raspberry pi uses HDMI video if a [[wikipedia:HDMI|HDMI]] monitor is connected. Otherwise, it uses analog TV-Out (also known as composite output or RCA)<br />
<br />
To turn the HDMI or analog TV-Out on or off, have a look at<br />
<br />
/opt/vc/bin/tvservice<br />
<br />
Use the ''-s'' parameter to check the status; the ''-o'' parameter to turn the display off and ''-p'' parameter to power on HDMI with preferred settings.<br />
<br />
Adjustments are likely required to correct proper overscan/underscan and are easily achieved in {{ic|boot/config.txt}} in which many tweaks are set. To fix, simply uncomment the corresponding lines and setup per the commented instructions:<br />
<br />
# uncomment the following to adjust overscan. Use positive numbers if console<br />
# goes off screen, and negative if there is too much border<br />
#overscan_left=16<br />
overscan_right=8<br />
overscan_top=-16<br />
overscan_bottom=-16<br />
<br />
Users wishing to use the analog video out should consult [https://raw.github.com/Evilpaul/RPi-config/master/config.txt this] config file which contains options for non-NTSC outputs.<br />
<br />
A reboot is needed for new settings to take effect.<br />
<br />
=== Caveats for analog TV-Out ===<br />
<br />
Since Raspberry Pi 1 Model B+ and Raspberry Pi 2 Model B, the composite video socket was removed, with the replacement of composite signal through the 3.5mm video/audio jack. Some RCA cables do not follow the same standard as Raspberry Pi, in which case connect the red or white audio plug for video.[http://www.raspberrypi-spy.co.uk/2014/07/raspberry-pi-model-b-3-5mm-audiovideo-jack/]<br />
<br />
=== X.org driver ===<br />
<br />
The X.org driver for Raspberry Pi can be [[installed]] with the ''xf86-video-fbdev'' or ''xf86-video-fbturbo-git'' package.<br />
<br />
== Onboard hardware sensors ==<br />
=== Temperature ===<br />
Temperatures sensors can be queried with utils in the ''raspberrypi-firmware-tools'' package. The RPi offers a sensor on the BCM2835 SoC (CPU/GPU):<br />
<br />
{{hc|$ /opt/vc/bin/vcgencmd measure_temp|2=<br />
temp=49.8'C<br />
}}<br />
<br />
Alternatively, simply read from the file system:<br />
{{hc|$ cat /sys/class/thermal/thermal_zone0/temp|2=<br />
49768<br />
}}<br />
<br />
For human readable output:<br />
{{hc|$ awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp|2=<br />
54.1°C<br />
}}<br />
<br />
=== Voltage ===<br />
Four different voltages can be monitored via {{ic|/opt/vc/bin/vcgencmd}} as well:<br />
<br />
$ /opt/vc/bin/vcgencmd measure_volts ''<id>''<br />
<br />
Where {{ic|''<id>''}} is:<br />
*core for core voltage<br />
*sdram_c for sdram Core voltage<br />
*sdram_i for sdram I/O voltage<br />
*sdram_p for sdram PHY voltage<br />
<br />
=== Lightweight monitoring suite ===<br />
{{AUR|monitorix}} has specific support for the RPi since v3.2.0. Screenshots available [http://www.monitorix.org/screenshots.html here].<br />
<br />
== Overclocking/underclocking ==<br />
<br />
The RPi can be overclocked by editing {{ic|/boot/config.txt}}, for example:<br />
<br />
arm_freq=800<br />
arm_freq_min=100<br />
core_freq=300<br />
core_freq_min=75<br />
sdram_freq=400<br />
over_voltage=0<br />
<br />
The optional {{ic|*_min}} lines define the minimum frequency to be used for the given component. When the system is not under load, the frequencies will drop down to the minimum value. Consult the [http://elinux.org/RPiconfig#Overclocking Overclocking] article on elinux for additional options and examples.<br />
<br />
A reboot is needed for new settings to take effect.<br />
<br />
The overclocked setting for CPU clock applies only when the governor throttles up the CPU, i.e. under load. To query the current frequency of the CPU:<br />
<br />
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq<br />
<br />
See [[CPU frequency scaling]] for details on scaling governors.<br />
<br />
{{Tip|The following script will show all frequencies set on the RPi:<br />
{{bc|<nowiki><br />
#/bin/bash<br />
for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do<br />
echo -e "$src:\t$(/opt/vc/bin/vcgencmd measure_clock $src)"<br />
done<br />
</nowiki>}}<br />
}}<br />
<br />
== Serial console ==<br />
Edit the default {{ic|/boot/cmdline.txt}}, change {{ic|loglevel}} to {{ic|5}} to see boot messages:<br />
loglevel=5<br />
<br />
If the default speed of 115200 does not work properly, try changing it to 38400:<br />
console=ttyAMA0,38400 kgdboc=ttyAMA0,38400<br />
<br />
Start getty service on the Pi<br />
# systemctl start getty@ttyAMA0<br />
<br />
Enable on boot<br />
# systemctl enable getty@ttyAMA0.service<br />
<br />
Creating the proper service link:<br />
# ln -s /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyAMA0.service<br />
<br />
From a PC, connect:<br />
# screen /dev/ttyUSB0 38400<br />
<br />
== Raspberry Pi camera module ==<br />
The commands for the camera module are included as part of the ''raspberrypi-firmware-tools'' package - which is installed by default.<br />
$ /opt/vc/bin/raspistill<br />
$ /opt/vc/bin/raspivid<br />
<br />
Append to {{ic|/boot/config.txt}}:<br />
gpu_mem=128<br />
start_file=start_x.elf<br />
fixup_file=fixup_x.dat<br />
<br />
Optionally<br />
disable_camera_led=1<br />
<br />
The following is a common error:<br />
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC<br />
mmal: camera component couldn't be enabled<br />
mmal: main: Failed to create camera component<br />
mmal: Failed to run camera app. Please check for firmware updates<br />
<br />
which can be corrected by setting these values in {{ic|/boot/config.txt}}:<br />
cma_lwm=<br />
cma_hwm=<br />
cma_offline_start=<br />
<br />
Another common error:<br />
<br />
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)<br />
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)<br />
mmal: Failed to create camera component<br />
mmal: main: Failed to create camera component<br />
mmal: Only 64M of gpu_mem is configured. Try running "sudo raspi-config" and ensure that "memory_split" has a value of 128 or greater<br />
<br />
can be corrected by adding the following line into the {{ic|/etc/modprobe.d/blacklist.conf}}:<br />
blacklist i2c_bcm2708<br />
<br />
In order to use standard applications (those that look for {{ic|/dev/video0}}) the V4L2 driver must be loaded. This can be done automatically at boot by creating an autoload file such as the following.<br />
{{hc|/etc/modules-load.d/rpi-camera.conf|bcm2835-v4l2}}<br />
<br />
== Hardware random number generator ==<br />
Arch Linux ARM for the Raspberry Pi has the {{ic|bcm2708-rng}} module set to load at boot (see [http://archlinuxarm.org/forum/viewtopic.php?f=31&t=4993#p27708 this]), but install the ''rng-tools'' and tell the Hardware RNG Entropy Gatherer Daemon (''rngd'') where to find the hardware random number generator.<br />
<br />
This can be done by editing {{ic|/etc/conf.d/rngd}}:<br />
<br />
RNGD_OPTS="-o /dev/random -r /dev/hwrng"<br />
<br />
and enabling and [[start]]ing the ''rngd'' service.<br />
<br />
If [[haveged]] is running, it should be stopped and disabled, as it might compete with ''rngd'' and is only preferred when there is no hardware random number generator available.<br />
<br />
Once completed, this change ensures that data from the hardware random number generator is fed into the kernel's entropy pool at {{ic|/dev/random}}. To check the available entropy, run:<br />
<br />
# cat /proc/sys/kernel/random/entropy_avail<br />
<br />
The number it reports should be around 3000, whereas before setting up ''rngd'' it would have been closer to 1000.<br />
<br />
== GPIO ==<br />
=== SPI ===<br />
To enable the {{ic|/dev/spidev*}} devices, uncomment the following line:<br />
{{hc|head=/boot/config.txt|output=<br />
device_tree_param=spi=on<br />
}}<br />
<br />
=== Python ===<br />
To be able to use the GPIO pins from Python, use the [https://pypi.python.org/pypi/RPi.GPIO RPi.GPIO] library. Install either {{AUR|python-raspberry-gpio}} or {{AUR|python2-raspberry-gpio}}{{Broken package link|{{aur-mirror|python2-raspberry-gpio}}}} from the [[AUR]].<br />
<br />
== I2C ==<br />
<br />
Install ''i2c-tools'' and ''lm_sensors'' packages.<br />
<br />
Configure the bootloader to enable the i2c hardware by appending {{ic|/boot/config.txt}}:<br />
dtparam=i2c_arm=on<br />
<br />
Configure the {{ic|i2c-dev}} and {{ic|i2c-bcm2708}} (if you did not blacklist it for the camera) modules to be loaded at boot:<br />
<br />
{{hc|/etc/modules-load.d/raspberrypi.conf|i2c-dev<br />
i2c-bcm2708}}<br />
<br />
Reboot the Raspberry Pi and issue the following command to get the hardware address:<br />
i2cdetect -y 0<br />
<br />
Now we need to tell Linux to instantiate the device. Change the hardware address to the address found in the previous step with '0x' as prefix (e.g. 0x48) and choose a device name:<br />
echo <devicename> <hardware address> >/sys/class/i2c-adapter/i2c-0/new_device<br />
<br />
Check the dmesg command for a new entry:<br />
i2c-0: new_device: Instantiated device ds1621 at 0x48<br />
Finally, read the sensor output:<br />
sensors<br />
<br />
== QEMU chroot ==<br />
<br />
Sometimes it is easier to work directly on a disk image instead of the real Raspberry Pi. This can be achieved by mounting an SD card containing the RPi root partition and chrooting into it. From the chroot it should be possible to run ''pacman'' and install more packages, compile large libraries etc. Since the executables are for the ARM architecture, the translation to x86 needs to be performed by [[QEMU]].<br />
<br />
{{Note|As of January 2016, {{pkg|make}} won't run in QEMU for ARM so it is not possible to build packages this way. Follow the [http://archlinuxarm.org/developers/distcc-cross-compiling guide on the Arch Linux ARM website] to build a cross-compiler if building ARM packages is needed.}}<br />
<br />
Install {{AUR|binfmt-support}} and {{AUR|qemu-user-static}} from the [[AUR]].<br />
<br />
Make sure that the ARM to x86 translation is active:<br />
<br />
# update-binfmts --importdir /var/lib/binfmts/ --import<br />
# update-binfmts --display qemu-arm<br />
<br />
If ARM to x86 translation is not active, enable it using update-binfmts:<br />
<br />
# update-binfmts --enable qemu-arm<br />
<br />
Mount the SD card to {{ic|mnt/}} (the device name may be different).<br />
<br />
# mkdir mnt<br />
# mount /dev/mmcblk0p2 mnt<br />
<br />
Copy the QEMU executable, which will handle the translation from ARM, to the SD card root:<br />
<br />
# cp /usr/bin/qemu-arm-static mnt/usr/bin<br />
<br />
Finally chroot into the SD card root as described in [[Change root#Using chroot]], keeping in mind that {{ic|qemu-arm-static}} needs to be called in the {{ic|chroot}} command i.e.:<br />
<br />
# chroot /mnt/arch /usr/bin/qemu-arm-static /bin/bash<br />
<br />
== See also ==<br />
* [http://elinux.org/RPiconfig RPi Config] - Excellent source of info relating to under-the-hood tweaks.<br />
* [http://elinux.org/RPI_vcgencmd_usage RPi vcgencmd usage] - Overview of firmware command vcgencmd.<br />
* [http://archpi.dabase.com/ Arch Linux ARM on Raspberry PI] - A FAQ style site with hints and tips for running Arch Linux on the RPi<br />
* [https://github.com/phortx/Raspberry-Pi-Setup-Guide] - A really opionionated guide how to setup a RPi with Arch Linux</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_Edge_E440&diff=421136Talk:Lenovo ThinkPad Edge E4402016-02-17T20:49:28Z<p>Aouellette: </p>
<hr />
<div>== Hardware Information ==<br />
<br />
Following the style note, I removed the hardware information for the model that I have and added a lspci section at the end. If the original authors for the other models are still around, could you do the same?<br />
[[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:46, 16 February 2016 (UTC)<br />
<br />
Done for this. Regarding your recent change:<br />
<br />
From:<br />
{{bc|4.1) Unmount all '''/dev/sdb''' partitions:<br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')}}<br />
To:<br />
{{bc|## Unmount the drive: sudo umount /dev/sdb}}<br />
<br />
Do you think that these statements are equivalent?<br />
<br />
Here is a cut from '''man umount''':<br />
{{bc|Giving the special device on which the file system<br />
lives may also work, but is obsolete, mainly because it will fail in<br />
case this device was mounted on more than one directory.}}<br />
--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 06:58, 17 February 2016 (UTC)<br />
<br />
:I actually did not know about that. This could be changed back to the original wording, or the command could also be removed, since there are other ways of unmounting the drive. <br />
:- [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 14:42, 17 February 2016 (UTC)<br />
<br />
::Here is the check I performed:<br />
::{{bc|<nowiki><br />
[user@test ~]$ ls /dev | grep sdb<br />
(device connected)<br />
[user@test ~]$ ls /dev | grep sdb<br />
sdb<br />
sdb1<br />
[user@test ~]$ mount | grep sdb<br />
/dev/sdb1 on /run/media/user/{some_numbers} type ntfs (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1,uhelper=udisks2)<br />
[user@test ~]$ sudo umount /dev/sdb<br />
umount: /dev/sdb: not mounted<br />
[user@test ~]$ sudo umount /dev/sdb1<br />
[user@test ~]$ mount | grep sdb<br />
[user@test ~]$ <br />
(device disconnected)</nowiki>}}<br />
::I'd prefer not to remove but to revert to the first version of the example. More info is better: if the solution is well-described - everybody is happy, if the description is poor - users could refrain from trying it.<br />
::--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 18:59, 17 February 2016 (UTC)<br />
<br />
::: Ok, sure. Also, should we completely remove what's left of the hardware section? It definitely is not that useful anymore and anyone can easily add their lspci output to the end of the article.<br />
::: [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:05, 17 February 2016 (UTC)<br />
<br />
:::: I've notified the author of the remaining configuration. Lets wait couple of days (till Sunday 21st, for example) - if he won't appear, I'd suggest to add the model code without lspci output to the final section and completely remove the "hardware" one. Do you agree?<br />
::::--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 20:17, 17 February 2016 (UTC)<br />
<br />
::::: Sounds good. [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:49, 17 February 2016 (UTC)</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_Edge_E440&diff=421126Talk:Lenovo ThinkPad Edge E4402016-02-17T20:05:17Z<p>Aouellette: </p>
<hr />
<div>== Hardware Information ==<br />
<br />
Following the style note, I removed the hardware information for the model that I have and added a lspci section at the end. If the original authors for the other models are still around, could you do the same?<br />
[[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:46, 16 February 2016 (UTC)<br />
<br />
:I've notified the author of the remaining configuration. We should remove the "Hardware" section right after his update.<br />
:--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 19:23, 17 February 2016 (UTC)<br />
<br />
Done for this. Regarding your recent change:<br />
<br />
From:<br />
{{bc|4.1) Unmount all '''/dev/sdb''' partitions:<br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')}}<br />
To:<br />
{{bc|## Unmount the drive: sudo umount /dev/sdb}}<br />
<br />
Do you think that these statements are equivalent?<br />
<br />
Here is a cut from '''man umount''':<br />
{{bc|Giving the special device on which the file system<br />
lives may also work, but is obsolete, mainly because it will fail in<br />
case this device was mounted on more than one directory.}}<br />
--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 06:58, 17 February 2016 (UTC)<br />
<br />
:I actually did not know about that. This could be changed back to the original wording, or the command could also be removed, since there are other ways of unmounting the drive. <br />
:- [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 14:42, 17 February 2016 (UTC)<br />
<br />
::Here is the check I performed:<br />
::{{bc|<nowiki><br />
[user@test ~]$ ls /dev | grep sdb<br />
(device connected)<br />
[user@test ~]$ ls /dev | grep sdb<br />
sdb<br />
sdb1<br />
[user@test ~]$ mount | grep sdb<br />
/dev/sdb1 on /run/media/user/{some_numbers} type ntfs (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1,uhelper=udisks2)<br />
[user@test ~]$ sudo umount /dev/sdb<br />
umount: /dev/sdb: not mounted<br />
[user@test ~]$ sudo umount /dev/sdb1<br />
[user@test ~]$ mount | grep sdb<br />
[user@test ~]$ <br />
(device disconnected)</nowiki>}}<br />
::I'd prefer not to remove but to revert to the first version of the example. More info is better: if the solution is well-described - everybody is happy, if the description is poor - users could refrain from trying it.<br />
::--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 18:59, 17 February 2016 (UTC)<br />
<br />
::: Ok, sure. Also, should we completely remove what's left of the hardware section? It definitely is not that useful anymore and anyone can easily add their lspci output to the end of the article.<br />
::: [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:05, 17 February 2016 (UTC)</div>Aouellettehttps://wiki.archlinux.org/index.php?title=User:Aouellette&diff=421084User:Aouellette2016-02-17T14:55:33Z<p>Aouellette: </p>
<hr />
<div>{{Related articles start}}<br />
{{Related|KDE}}<br />
{{Related|I3}}<br />
{{Related|Sway}}<br />
{{Related|Lenovo ThinkPad Edge E440}}<br />
{{Related|Raspberry Pi}}<br />
{{Related|Intel Graphics}}<br />
{{Related|SSD}}<br />
{{Related articles end}}<br />
<br />
== My Computers Running Arch ==<br />
<br />
* Lenovo Thinkpad E440 with Intel Core i5 @ 2.50 GHz and 4GB RAM<br />
* Raspberry Pi 2 (Arch ARM)<br />
<br />
Hopefully more coming soon ...<br />
<br />
== ==<br />
My [https://github.com/aouelete/dotfiles dotfiles]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=421083Lenovo ThinkPad Edge E4402016-02-17T14:47:10Z<p>Aouellette: /* With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L */ fix wording</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
{{Style|Rather than generic information available on the manufacturer website, post a lspci ''per model'' at the ''end'' of the article, as mentioned in [[:Category:Laptops]]}}<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration<br />
|-<br />
|System||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|RAM||4GB<br />
|-<br />
|Disk||500GB<br />
|-<br />
|Display||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No<br />
|-<br />
|Fingerprint Scanner||Yes<br />
|-<br />
|Bluetooth||Yes<br />
|-<br />
|Cam||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped to Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue is present on notebooks with BIOS versions older than v2.16.<br />
Problem can be solved with a BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update the BIOS from a USB drive, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
# Download the latest firmware from the official [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads] page.<br />
# Install the {{AUR|geteltorito}} utility.<br />
# Convert ISO image (change 'XX' to match the filename of downloaded .iso): {{bc|geteltorito.pl -o bios.img j9ujXXwd.iso}}<br />
# Write the image to the USB drive. Suppose, your drive is {{ic|/dev/sdb}}. '''Warning:''' all information on USB stick will be lost!<br />
## Unmount the drive: {{bc|sudo umount /dev/sdb}}<br />
## Write image: {{bc|1=sudo dd if=bios.img of=/dev/sdb bs=1M}}<br />
# Reboot you PC and boot from your USB drive.<br />
# '''FOLLOW ALL INSTRUCTIONS''' written in the update utility!<br />
<br />
== lspci ==<br />
<br />
{{Note|Model: E440 20C500FBRT}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}<br />
<br />
{{Note|Model: E440 20C5004YUS}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_Edge_E440&diff=421081Talk:Lenovo ThinkPad Edge E4402016-02-17T14:42:49Z<p>Aouellette: /* Hardware Information */</p>
<hr />
<div>== Hardware Information ==<br />
<br />
Following the style note, I removed the hardware information for the model that I have and added a lspci section at the end. If the original authors for the other models are still around, could you do the same?<br />
[[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:46, 16 February 2016 (UTC)<br />
<br />
Done for this. Regarding your recent change:<br />
<br />
From:<br />
{{bc|4.1) Unmount all '''/dev/sdb''' partitions:<br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')}}<br />
To:<br />
{{bc|## Unmount the drive: sudo umount /dev/sdb}}<br />
<br />
Do you think that these statements are equivalent?<br />
<br />
Here is a cut from '''man umount''':<br />
{{bc|Giving the special device on which the file system<br />
lives may also work, but is obsolete, mainly because it will fail in<br />
case this device was mounted on more than one directory.}}<br />
--[[User:Soupault|Soupault]] ([[User talk:Soupault|talk]]) 06:58, 17 February 2016 (UTC)<br />
<br />
:I actually did not know about that. This could be changed back to the original wording, or the command could also be removed, since there are other ways of unmounting the drive. <br />
:- [[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 14:42, 17 February 2016 (UTC)</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420993Lenovo ThinkPad Edge E4402016-02-16T21:29:46Z<p>Aouellette: /* BIOS Update */ clean up section</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
{{Style|Rather than generic information available on the manufacturer website, post a lspci ''per model'' at the ''end'' of the article, as mentioned in [[:Category:Laptops]]}}<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|RAM||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update the BIOS from a USB drive, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
# Download the latest firmware from the official [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads] page.<br />
# Install the {{AUR|geteltorito}} utility.<br />
# Convert ISO image (change 'XX' to match the filename of downloaded .iso): {{bc|geteltorito.pl -o bios.img j9ujXXwd.iso}}<br />
# Write the image to the USB drive. Suppose, your drive is {{ic|/dev/sdb}}. '''Warning:''' all information on USB stick will be lost!<br />
## Unmount the drive: {{bc|sudo umount /dev/sdb}}<br />
## Write image: {{bc|1=sudo dd if=bios.img of=/dev/sdb bs=1M}}<br />
# Reboot you PC and boot from your USB drive.<br />
# '''FOLLOW ALL INSTRUCTIONS''' written in the update utility!<br />
<br />
== lspci ==<br />
<br />
{{Note|Model: E440 20C5004YUS}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420991Lenovo ThinkPad Edge E4402016-02-16T21:01:16Z<p>Aouellette: Undo revision 420990 by Aouellette (talk) accidental save</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
{{Style|Rather than generic information available on the manufacturer website, post a lspci ''per model'' at the ''end'' of the article, as mentioned in [[:Category:Laptops]]}}<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|RAM||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility.<br />
<br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!<br />
<br />
== lspci ==<br />
<br />
{{Note|Model: E440 20C5004YUS}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420990Lenovo ThinkPad Edge E4402016-02-16T20:59:13Z<p>Aouellette: /* BIOS Update */</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
{{Style|Rather than generic information available on the manufacturer website, post a lspci ''per model'' at the ''end'' of the article, as mentioned in [[:Category:Laptops]]}}<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|RAM||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
# Download the latest firmware from the official [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads] page.<br />
# Install the {{AUR|geteltorito}} utility.<br />
# Convert ISO image (change 'XX' to match the filename of downloaded .iso): {{ic|geteltorito.pl -o bios.img j9ujXXwd.iso}}<br />
# Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
## Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
## Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
# Reboot you PC and boot from your USB stick.<br />
# '''FOLLOW ALL INSTRUCTIONS''' written in the update utility!<br />
<br />
== lspci ==<br />
<br />
{{Note|Model: E440 20C5004YUS}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Talk:Lenovo_ThinkPad_Edge_E440&diff=420986Talk:Lenovo ThinkPad Edge E4402016-02-16T20:46:42Z<p>Aouellette: /* Hardware Information */ new section</p>
<hr />
<div>== Hardware Information ==<br />
<br />
Following the style note, I removed the hardware information for the model that I have and added a lspci section at the end. If the original authors for the other models are still around, could you do the same?<br />
[[User:Aouellette|Aouellette]] ([[User talk:Aouellette|talk]]) 20:46, 16 February 2016 (UTC)</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420985Lenovo ThinkPad Edge E4402016-02-16T20:46:32Z<p>Aouellette: move hardware info to lspci section</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
{{Style|Rather than generic information available on the manufacturer website, post a lspci ''per model'' at the ''end'' of the article, as mentioned in [[:Category:Laptops]]}}<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|RAM||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility.<br />
<br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!<br />
<br />
== lspci ==<br />
<br />
{{Note|Model: E440 20C5004YUS}}<br />
<br />
{{bc|<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)<br />
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)<br />
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)<br />
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)<br />
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)<br />
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)<br />
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)<br />
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)<br />
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)<br />
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)<br />
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)<br />
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 04)<br />
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)<br />
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)<br />
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)<br />
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)<br />
}}</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420962Lenovo ThinkPad Edge E4402016-02-16T16:48:26Z<p>Aouellette: /* Tested Configurations */ split configuration for different model</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT||E440 20C5004YUS<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz||Intel (R) Core(TM) i5-4200M @ 2.50 GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)||Intel HD 4600<br />
|-<br />
|RAM||4GB||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB||500GB 7200 rpm<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT||14" 1366x768 TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)||Intel Wireless 72600<br />
|-<br />
|Backlight Keyboard||No||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility.<br />
<br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420959Lenovo ThinkPad Edge E4402016-02-16T16:29:23Z<p>Aouellette: fix some typos and update kernel module for wifi</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || iwlwifi or ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlight Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brightness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility.<br />
<br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=420869Lenovo ThinkPad Edge E4402016-02-16T00:56:01Z<p>Aouellette: Update info: card reader does work</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{G|Working}} || <br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{R|Not working}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility.<br />
<br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Sway&diff=420250Sway2016-02-12T15:22:33Z<p>Aouellette: /* See also */</p>
<hr />
<div>[[Category:Tiling WMs]]<br />
[[Category:Dynamic WMs]]<br />
[[ja:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) is an attempt to create a [[Wayland]] version of [[i3]].<br />
<br />
{{Note|This is still a work in progress so caution is advised. However, it is deemed ready for regular use by the creator.}}<br />
<br />
== Installation ==<br />
<br />
''sway'' can be [[installed]] with the {{AUR|sway-git}} package. If you already use i3, then copy your i3 configuration to {{ic|~/.config/sway/config}} and it will work out of the box. Otherwise, copy the sample configuration file to {{ic|~/.config/sway/config}}. It is located at {{ic|/etc/sway/config}}, unless the {{ic|DFALLBACK_CONFIG_DIR}} flag has been set. See the sway(5) [[man page]] for information on the configuration.<br />
<br />
== Configuration examples ==<br />
=== Statusbar ===<br />
Installing the program {{Pkg|i3status}} is an easy way to get a practical, default statusbar. All one has to do is add following snippet at the end of your sway config:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}<br />
</nowiki>}}<br />
If you want to achieve colored output of i3status, you can adjust following part in the i3status configuration:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
In both examples, the system-wide installed configuration files has been copied over to the user directory and then modified.<br />
<br />
=== Wallpaper ===<br />
This line, which can be appended at the end of your sway configuration, sets a background image on all displays (output matches all with name {{ic|"*"}}):<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /home/onny/pictures/fredwang_norway.jpg fill<br />
</nowiki>}}<br />
Of course you have to replace the file name and path according to your wallpaper.<br />
<br />
=== Input devices ===<br />
Its possible to tweak specific input device configurations. For example to enable tap-to-click for a touchpad, add an input block:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
}<br />
</nowiki>}}<br />
Where as the device identifier can be queried with:<br />
swaymsg -t get_inputs<br />
<br />
=== Custom keybindings ===<br />
Special keys on your keyboard can be used to execute commands, for example to control your volume or your monitor brightness:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +15%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -15%<br />
bindsym XF86AudioToggle exec pactl set-sink-mute 0 toggle<br />
bindsym XF86MonBrightnessDown exec dsplight down 5<br />
bindsym XF86MonBrightnessUp exec dsplight up 5<br />
</nowiki>}}<br />
<br />
== Usage ==<br />
<br />
To actually use ''sway'', you can type in a tty:<br />
<br />
$ sway<br />
<br />
However, if you want to start ''sway'' in an X session for testing purposes it is possible to start it as a regular program or even from a [[Display manager]].<br />
<br />
== See also ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github project]<br />
* [http://swaywm.org Website]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Sway&diff=420249Sway2016-02-12T15:20:57Z<p>Aouellette: /* Input devices */</p>
<hr />
<div>[[Category:Tiling WMs]]<br />
[[Category:Dynamic WMs]]<br />
[[ja:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) is an attempt to create a [[Wayland]] version of [[i3]].<br />
<br />
{{Note|This is still a work in progress so caution is advised. However, it is deemed ready for regular use by the creator.}}<br />
<br />
== Installation ==<br />
<br />
''sway'' can be [[installed]] with the {{AUR|sway-git}} package. If you already use i3, then copy your i3 configuration to {{ic|~/.config/sway/config}} and it will work out of the box. Otherwise, copy the sample configuration file to {{ic|~/.config/sway/config}}. It is located at {{ic|/etc/sway/config}}, unless the {{ic|DFALLBACK_CONFIG_DIR}} flag has been set. See the sway(5) [[man page]] for information on the configuration.<br />
<br />
== Configuration examples ==<br />
=== Statusbar ===<br />
Installing the program {{Pkg|i3status}} is an easy way to get a practical, default statusbar. All one has to do is add following snippet at the end of your sway config:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}<br />
</nowiki>}}<br />
If you want to achieve colored output of i3status, you can adjust following part in the i3status configuration:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
In both examples, the system-wide installed configuration files has been copied over to the user directory and then modified.<br />
<br />
=== Wallpaper ===<br />
This line, which can be appended at the end of your sway configuration, sets a background image on all displays (output matches all with name {{ic|"*"}}):<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /home/onny/pictures/fredwang_norway.jpg fill<br />
</nowiki>}}<br />
Of course you have to replace the file name and path according to your wallpaper.<br />
<br />
=== Input devices ===<br />
Its possible to tweak specific input device configurations. For example to enable tap-to-click for a touchpad, add an input block:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
}<br />
</nowiki>}}<br />
Where as the device identifier can be queried with:<br />
swaymsg -t get_inputs<br />
<br />
=== Custom keybindings ===<br />
Special keys on your keyboard can be used to execute commands, for example to control your volume or your monitor brightness:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +15%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -15%<br />
bindsym XF86AudioToggle exec pactl set-sink-mute 0 toggle<br />
bindsym XF86MonBrightnessDown exec dsplight down 5<br />
bindsym XF86MonBrightnessUp exec dsplight up 5<br />
</nowiki>}}<br />
<br />
== Usage ==<br />
<br />
To actually use ''sway'', you can type in a tty:<br />
<br />
$ sway<br />
<br />
However, if you want to start ''sway'' in an X session for testing purposes it is possible to start it as a regular program or even from a [[Display manager]].<br />
<br />
== See also ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github project]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Music_Player_Daemon&diff=420104Music Player Daemon2016-02-12T01:34:39Z<p>Aouellette: /* Graphical */</p>
<hr />
<div>[[Category:Multimedia players]]<br />
[[de:Music Player Daemon]]<br />
[[es:Music Player Daemon]]<br />
[[fr:MPD]]<br />
[[it:Music Player Daemon]]<br />
[[ja:Music Player Daemon]]<br />
[[nl:Music Player Daemon]]<br />
[[pl:Music Player Daemon]]<br />
[[ru:Music Player Daemon]]<br />
[[sr:Music Player Daemon]]<br />
[[tr:Music Player Daemon]]<br />
[[zh-CN:Music Player Daemon]]<br />
{{Style|Needs improvements in structure and clarify; compare to the [http://www.musicpd.org/doc/user/index.html User's manual].|section=Style comment}}<br />
<br />
{{Related articles start}}<br />
{{Related|MPD/Tips and Tricks}}<br />
{{Related|MPD/Troubleshooting}}<br />
{{Related articles end}}<br />
<br />
'''[http://www.musicpd.org/ MPD]''' ('''m'''usic '''p'''layer '''d'''aemon) is an audio player that has a server-client architecture. It plays audio files, organizes playlists and maintains a music database all while using very few resources. In order to interface with it, a separate [[#Clients|client]] is needed.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|mpd}} package, or {{AUR|mpd-git}} for the development version.<br />
<br />
{{Note|An alternative plug-in based implementation called [http://www.mopidy.com Mopidy] exists. It is available as {{Pkg|mopidy}} and {{AUR|mopidy-git}}. Be warned that is not a complete MPD [http://docs.mopidy.com/en/latest/ext/mpd/#limitations drop-in replacement].}}<br />
<br />
== Setup ==<br />
<br />
MPD is able to run locally (per user settings), globally (settings apply to all users), and in multiple instances. The way of setting up mpd depends on the way it is intended to be used: a local configuration may prove more useful on a desktop system, for example.<br />
<br />
In order for MPD to be able to play back audio, [[ALSA]] or [[OSS]] (optionally with [[PulseAudio]]) needs to be setup and working.<br />
<br />
MPD is configured in {{ic|mpd.conf}}. The location of this file depends on how you want to run MPD (see the sections below). These are commonly used configuration options:<br />
* {{ic|pid_file}} - The file where mpd stores its process ID<br />
* {{ic|db_file}} - The music database<br />
* {{ic|state_file}} - MPD's current state is noted here<br />
* {{ic|playlist_directory}} - The folder where playlists are saved into<br />
* {{ic|music_directory}} - The folder that MPD scans for music<br />
* {{ic|sticker_file}} - The sticker database<br />
<br />
=== Global configuration ===<br />
<br />
{{Warning|Users of PulseAudio with a global mpd have to implement a [[Music Player Daemon/Tips and tricks#Local (with separate mpd user)|workaround]] in order to run mpd as its own user!}}<br />
<br />
The default {{ic|/etc/mpd.conf}} keeps the setup in {{ic|/var/lib/mpd}} and uses ''mpd'' as default user. However, {{ic|/var/lib/mpd}} is owned by ''root'' by default, we need to change this so ''mpd'' can write here:<br />
# chown -R mpd /var/lib/mpd<br />
<br />
Edit {{ic|/etc/mpd.conf}} and add a {{ic|music_directory}} line with the path to your music directory:<br />
music_directory "/path/to/music"<br />
<br />
==== Music directory ====<br />
<br />
MPD needs to have {{ic|+x}} permissions on ''all'' parent directories to the music collection and also read access to all directories containing music files. This conflicts with the default configuration of the user directory where many users store their music.<br />
<br />
While there are several solutions to this problem one of these should be most practical:<br />
* [[#Local configuration .28per user.29|run MPD as user]]<br />
* add the mpd user to your login group and grant group permission to your user directory:<br />
# gpasswd -a mpd <your login group><br />
$ chmod 710 /home/<your home dir><br />
* put your music collection to a different path (a) by moving it entirely, (b) with a bind mount or (c) with a [[Btrfs#Sub-volumes|Btrfs subvolume]] (you should make this change persistent with an entry to {{ic|/etc/fstab}} ).<br />
<br />
The MPD config must contain only one music directory. If the music collection is contained under multiple directories, create symbolic links under the main music directory in {{ic|/var/lib/mpd}}. Remember to set permissions accordingly on the directories being linked.<br />
<br />
==== Start MPD ====<br />
<br />
MPD can be controlled with {{ic|mpd.service}} [[systemd#Using units|using systemd]]. The first startup can take some time as MPD will scan your music directory.<br />
<br />
Test everything by starting a client application ({{Pkg|ncmpc}} is a light and easy to use client), and play some music!<br />
<br />
===== Socket activation =====<br />
<br />
If the {{ic|mpd.socket}} unit (provided by {{Pkg|mpd}}) is enabled while {{ic|mpd.service}} is disabled, systemd will not start mpd immediately, but it will listen on the appropriate sockets. When an mpd client attempts to connect on one of those sockets, systemd will start {{ic|mpd.service}} and transparently hand over control of those ports to the mpd process.<br />
<br />
If you prefer to listen on different UNIX sockets or network ports (even multiple sockets of each type), or if you prefer not to listen on network ports at all, [[systemd#Editing provided units|edit]] the {{ic|mpd.socket}} unit appropriately '''and''' modify {{ic|/etc/mpd.conf}} to match the configuration (see {{ic|man 5 mpd.conf}} for details).<br />
<br />
==== Configure audio ====<br />
<br />
To change the volume for mpd independent from other programs, uncomment or add this switch in mpd.conf:<br />
{{hc|/etc/mpd.conf|<br />
mixer_type "software"<br />
}}<br />
<br />
Users of [[ALSA]] will want to have the following device definition, which allows software volume control in the MPD client to control the volume separately from other applications.<br />
{{hc|/etc/mpd.conf|2=<br />
audio_output {<br />
type "alsa"<br />
name "My Sound Card"<br />
mixer_type "software" # optional<br />
}<br />
}}<br />
<br />
Users of [[PulseAudio]] will need to make the following modification:<br />
{{hc|/etc/mpd.conf|2=<br />
audio_output {<br />
type "pulse"<br />
name "pulse audio"<br />
}<br />
}}<br />
<br />
PulseAudio supports multiple advanced operations, e.g. transferring the audio to a different machine. For advanced configuration with MPD see [http://mpd.wikia.com/wiki/PulseAudio Music Player Daemon Community Wiki].<br />
<br />
==== Changing user ====<br />
<br />
Changing the group that MPD runs as may result in errors like {{ic|output: Failed to open "My ALSA Device"}}, {{ic|[alsa]: Failed to open ALSA device "default": No such file or directory}} or {{ic|player_thread: problems opening audio device while playing "Song Name.mp3"}}.<br />
<br />
This is because the MPD users need to be part of the ''audio'' group to access sound devices under {{Ic|/dev/snd/}}. To fix it add user make the MPD user part of the ''audio'' group:<br />
# gpasswd -a '''mpd''' audio<br />
<br />
==== Timeline of MPD startup ====<br />
<br />
To depict when MPD drops its superuser privileges and assumes those of the user set in the configuration, the timeline of a normal MPD startup is listed here:<br />
<br />
# Since MPD is started as root by systemd, it first reads the {{ic|/etc/mpd.conf}} file.<br />
# MPD reads the user variable in the {{ic|/etc/mpd.conf}} file, and changes from root to this user.<br />
# MPD then reads the contents of the {{ic|/etc/mpd.conf}} file and configures itself accordingly.<br />
<br />
Notice that MPD changes the running user from root to the one named in the {{ic|/etc/mpd.conf}} file. <br />
This way, uses of {{ic|~}} in the configuration file point correctly to the home user's directory, and not root's directory. <br />
It may be worthwhile to change all uses of {{ic|~}} to {{ic|/home/username}} to avoid any confusion over this aspect of MPD's behavior.<br />
<br />
=== Local configuration (per user) ===<br />
<br />
MPD can be configured per user (rather than the typical method of configuring MPD globally). Running MPD as a normal user has the benefits of:<br />
<br />
* A single directory {{ic|~/.config/mpd/}} (or any other directory under {{ic|$HOME}}) that will contain all the MPD configuration files.<br />
* Easier to avoid unforeseen read/write permission errors.<br />
<br />
Good practice is to create a single directory for the required files and playlists. It can be any directory for which you have read and write access, e.g. {{ic|~/.config/mpd/}} or {{ic|~/.mpd/}}. This section assumes it is {{ic|~/.config/mpd/}}, which corresponds to the default value of {{ic|$XDG_CONFIG_HOME}} (part of [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification]).<br />
<br />
MPD searches for a config file in {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} and then {{ic|~/.mpdconf}}. It is also possible to pass other path as command line argument.<br />
<br />
Copy the example configuration file to desired location, for example:<br />
<br />
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf<br />
<br />
Edit {{ic|~/.config/mpd/mpd.conf}} and specify the required files:<br />
<br />
{{hc|~/.config/mpd/mpd.conf|<br />
# Required files<br />
db_file "~/.config/mpd/database"<br />
log_file "~/.config/mpd/log"<br />
<br />
# Optional<br />
music_directory "~/Music"<br />
playlist_directory "~/.config/mpd/playlists"<br />
pid_file "~/.config/mpd/pid"<br />
state_file "~/.config/mpd/state"<br />
sticker_file "~/.config/mpd/sticker.sql"<br />
}}<br />
<br />
Create all the files and directories as configured above:<br />
<br />
$ mkdir ~/.config/mpd/playlists<br />
$ touch ~/.config/mpd/{database,log,pid,state,sticker.sql}<br />
<br />
When the paths of required files are configured, MPD can be started. To specify custom location of the configuration file:<br />
<br />
$ mpd ''config_file''<br />
<br />
==== Autostart on tty login ====<br />
<br />
To start MPD on login add the following to {{ic|~/.profile}} (or another [[Autostarting#Shells|autostart file]]):<br />
<br />
# MPD daemon start (if no other user instance exists)<br />
[ ! -s ~/.config/mpd/pid ] && mpd<br />
<br />
==== Autostart in X ====<br />
<br />
If you use a [[desktop environment]], place the following file in {{ic|~/.config/autostart/}}:<br />
{{hc|~/.config/autostart/mpd.desktop|<nowiki><br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Type=Application<br />
Name=Music Player Daemon<br />
Comment=Server for playing audio files<br />
Exec=mpd<br />
StartupNotify=false<br />
Terminal=false<br />
Hidden=false<br />
X-GNOME-Autostart-enabled=false<br />
</nowiki>}}<br />
<br />
If you do not use a DE, place the line from [[#Autostart on tty login]] in your [[Autostarting#Graphical|autostart file]].<br />
<br />
==== Autostart with systemd ====<br />
<br />
{{Note|It is assumed that you already have systemd user-session manager running (which should be default). See the [[systemd/User]] page for details.}}<br />
<br />
The package {{Pkg|mpd}} provides user service file in {{ic|/usr/lib/systemd/user/mpd.service}}. The configuration file is expected to exist either in {{ic|~/.mpdconf}} or {{ic|~/.config/mpd/mpd.conf}}, see [[systemd#Editing provided units]] if you would like to use different path. The process is not started as root, so you should not use the {{ic|user}} and {{ic|group}} variables in the MPD configuration file, the process already has user permissions and therefore it is not necessary to change them further.<br />
<br />
All you have to do is enable and start the {{ic|mpd}} [[systemd/User#User Services|user service]].<br />
<br />
{{Note|<br />
* {{Pkg|mpd}} provides also system service file in {{ic|/usr/lib/systemd/system/mpd.service}}, but as the process is started as root, it does not read the user configuration file and falls back to {{ic|/etc/mpd.conf}}. [[#Global configuration|Global configuration]] is described in other section.<br />
* Make sure to disable every other method of starting mpd you used before.<br />
}}<br />
<br />
==== Scripted configuration ====<br />
<br />
You can use a [http://dl.53280.de/mpdsetup.sh script] to create the proper directory structure, configuration files and prompt for the location of the user's Music directory.<br />
<br />
==== Scripted configuration for bit perfect playback ====<br />
<br />
You can use a [http://lacocina.nl/audiophile-mpd bash script] to also create a valid mpd configuration file which focusses on bit perfect audio playback. That is playback without any resampling or format conversion. It does this by setting audio output parameters to use a direct alsa hwardware address (like `hw:0,0`). The script detects and lists which playback interfaces alsa supports. When one interface is found it uses that one, if multiple are found it prompts the user which one to use. When not specified on the command line, it auto configures things like the music_directory and mpd's home directory by using freedesktop.org XDG configuration.<br />
<br />
=== Multi-mpd setup ===<br />
<br />
==== Running an icecast server ====<br />
<br />
For a second MPD (e.g., with icecast output to share music over the network) using the same music and playlist as the one above, simply copy the above configuration file and make a new file (e.g., {{ic|/home/username/.mpd/config-icecast}}), and only change the log_file, error_file, pid_file, and state_file parameters (e.g., {{ic|mpd-icecast.log}}, {{ic|mpd-icecast.error}}, and so on); using the same directory paths for the music and playlist directories would ensure that this second mpd would use the same music collection as the first one e.g., creating and editing a playlist under the first daemon would affect the second daemon as well. Users do not have to create the same playlists all over again for the second daemon. Call this second daemon the same way from {{ic|~/.xinitrc}} above. (Just be sure to have a different port number, so as to not conflict with the first mpd daemon).<br />
<br />
==== Satellite setup ====<br />
<br />
The method above works, but at least in theory could lead to issues with the database, when both mpd instances try to write to the same database file. MPD has a [http://www.musicpd.org/doc/user/advanced_config.html#satellite satellite mode] where one instance can receive the database from an already running mpd instance.<br />
<br />
in your config-icecast add this, where host and port reflect your primary mpd server.<br />
<br />
{{bc|<br />
database {<br />
plugin "proxy"<br />
host "localhost"<br />
port "6600"<br />
}<br />
}}<br />
<br />
== Clients ==<br />
<br />
A separate client is needed to control mpd. See a long list of clients at the [http://mpd.wikia.com/wiki/Clients mpd wiki]. Popular options are:<br />
<br />
=== Console ===<br />
<br />
*{{App|mpc|Command line user interface for MPD server|http://www.musicpd.org/clients/mpc/|{{Pkg|mpc}}}}<br />
*{{App|ncmpc|Ncurses client for mpd|http://www.musicpd.org/clients/ncmpc/|{{Pkg|ncmpc}}}}<br />
*{{App|[[ncmpcpp]]|Almost exact clone of ncmpc with some new features written in C++ (tag editor, search engine)|http://ncmpcpp.rybczak.net/|{{Pkg|ncmpcpp}}}}<br />
*{{App|pms|Highly configurable and accessible ncurses client|http://pms.sourceforge.net/|{{AUR|pmus-git}}}}<br />
*{{App|vimpc|Ncurses based MPD client with vi-like key bindings|http://sourceforge.net/projects/vimpc/|{{AUR|vimpc-git}}}}<br />
<br />
=== Graphical ===<br />
<br />
*{{App|Ario|Very feature-rich GTK2 GUI client for mpd, inspired by Rhythmbox|http://ario-player.sourceforge.net/|{{Pkg|ario}}}}<br />
*{{App|QmpdClient|GUI client written with Qt 4.x|http://bitcheese.net/wiki/QMPDClient|{{Pkg|qmpdclient}}}}<br />
*{{App|Sonata|Elegant Python GTK+ client|http://www.nongnu.org/sonata/|{{Pkg|sonata}}}}<br />
*{{App|gmpc|GTK2 frontend for Music Player Daemon. It is designed to be lightweight and easy to use, while providing full access to all of MPD's features. Users are presented with several different methods to browse through their music. It can be extended by plugins, of which many are available.|http://gmpclient.org/|{{Pkg|gmpc}}}}<br />
*{{App|Cantata|High-feature, Qt4, Qt5 or KDE client for MPD with very configurable interface|https://github.com/CDrummond/cantata|{{Pkg|cantata}}}}<br />
<br />
== See also ==<br />
<br />
* [http://forum.musicpd.org/ MPD Forum]<br />
* [http://www.musicpd.org/doc/user/ MPD User Manual]<br />
* [[Wikipedia:Music Player Daemon|Wikipedia article]]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Music_Player_Daemon&diff=420103Music Player Daemon2016-02-12T01:33:53Z<p>Aouellette: Update cantata website</p>
<hr />
<div>[[Category:Multimedia players]]<br />
[[de:Music Player Daemon]]<br />
[[es:Music Player Daemon]]<br />
[[fr:MPD]]<br />
[[it:Music Player Daemon]]<br />
[[ja:Music Player Daemon]]<br />
[[nl:Music Player Daemon]]<br />
[[pl:Music Player Daemon]]<br />
[[ru:Music Player Daemon]]<br />
[[sr:Music Player Daemon]]<br />
[[tr:Music Player Daemon]]<br />
[[zh-CN:Music Player Daemon]]<br />
{{Style|Needs improvements in structure and clarify; compare to the [http://www.musicpd.org/doc/user/index.html User's manual].|section=Style comment}}<br />
<br />
{{Related articles start}}<br />
{{Related|MPD/Tips and Tricks}}<br />
{{Related|MPD/Troubleshooting}}<br />
{{Related articles end}}<br />
<br />
'''[http://www.musicpd.org/ MPD]''' ('''m'''usic '''p'''layer '''d'''aemon) is an audio player that has a server-client architecture. It plays audio files, organizes playlists and maintains a music database all while using very few resources. In order to interface with it, a separate [[#Clients|client]] is needed.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|mpd}} package, or {{AUR|mpd-git}} for the development version.<br />
<br />
{{Note|An alternative plug-in based implementation called [http://www.mopidy.com Mopidy] exists. It is available as {{Pkg|mopidy}} and {{AUR|mopidy-git}}. Be warned that is not a complete MPD [http://docs.mopidy.com/en/latest/ext/mpd/#limitations drop-in replacement].}}<br />
<br />
== Setup ==<br />
<br />
MPD is able to run locally (per user settings), globally (settings apply to all users), and in multiple instances. The way of setting up mpd depends on the way it is intended to be used: a local configuration may prove more useful on a desktop system, for example.<br />
<br />
In order for MPD to be able to play back audio, [[ALSA]] or [[OSS]] (optionally with [[PulseAudio]]) needs to be setup and working.<br />
<br />
MPD is configured in {{ic|mpd.conf}}. The location of this file depends on how you want to run MPD (see the sections below). These are commonly used configuration options:<br />
* {{ic|pid_file}} - The file where mpd stores its process ID<br />
* {{ic|db_file}} - The music database<br />
* {{ic|state_file}} - MPD's current state is noted here<br />
* {{ic|playlist_directory}} - The folder where playlists are saved into<br />
* {{ic|music_directory}} - The folder that MPD scans for music<br />
* {{ic|sticker_file}} - The sticker database<br />
<br />
=== Global configuration ===<br />
<br />
{{Warning|Users of PulseAudio with a global mpd have to implement a [[Music Player Daemon/Tips and tricks#Local (with separate mpd user)|workaround]] in order to run mpd as its own user!}}<br />
<br />
The default {{ic|/etc/mpd.conf}} keeps the setup in {{ic|/var/lib/mpd}} and uses ''mpd'' as default user. However, {{ic|/var/lib/mpd}} is owned by ''root'' by default, we need to change this so ''mpd'' can write here:<br />
# chown -R mpd /var/lib/mpd<br />
<br />
Edit {{ic|/etc/mpd.conf}} and add a {{ic|music_directory}} line with the path to your music directory:<br />
music_directory "/path/to/music"<br />
<br />
==== Music directory ====<br />
<br />
MPD needs to have {{ic|+x}} permissions on ''all'' parent directories to the music collection and also read access to all directories containing music files. This conflicts with the default configuration of the user directory where many users store their music.<br />
<br />
While there are several solutions to this problem one of these should be most practical:<br />
* [[#Local configuration .28per user.29|run MPD as user]]<br />
* add the mpd user to your login group and grant group permission to your user directory:<br />
# gpasswd -a mpd <your login group><br />
$ chmod 710 /home/<your home dir><br />
* put your music collection to a different path (a) by moving it entirely, (b) with a bind mount or (c) with a [[Btrfs#Sub-volumes|Btrfs subvolume]] (you should make this change persistent with an entry to {{ic|/etc/fstab}} ).<br />
<br />
The MPD config must contain only one music directory. If the music collection is contained under multiple directories, create symbolic links under the main music directory in {{ic|/var/lib/mpd}}. Remember to set permissions accordingly on the directories being linked.<br />
<br />
==== Start MPD ====<br />
<br />
MPD can be controlled with {{ic|mpd.service}} [[systemd#Using units|using systemd]]. The first startup can take some time as MPD will scan your music directory.<br />
<br />
Test everything by starting a client application ({{Pkg|ncmpc}} is a light and easy to use client), and play some music!<br />
<br />
===== Socket activation =====<br />
<br />
If the {{ic|mpd.socket}} unit (provided by {{Pkg|mpd}}) is enabled while {{ic|mpd.service}} is disabled, systemd will not start mpd immediately, but it will listen on the appropriate sockets. When an mpd client attempts to connect on one of those sockets, systemd will start {{ic|mpd.service}} and transparently hand over control of those ports to the mpd process.<br />
<br />
If you prefer to listen on different UNIX sockets or network ports (even multiple sockets of each type), or if you prefer not to listen on network ports at all, [[systemd#Editing provided units|edit]] the {{ic|mpd.socket}} unit appropriately '''and''' modify {{ic|/etc/mpd.conf}} to match the configuration (see {{ic|man 5 mpd.conf}} for details).<br />
<br />
==== Configure audio ====<br />
<br />
To change the volume for mpd independent from other programs, uncomment or add this switch in mpd.conf:<br />
{{hc|/etc/mpd.conf|<br />
mixer_type "software"<br />
}}<br />
<br />
Users of [[ALSA]] will want to have the following device definition, which allows software volume control in the MPD client to control the volume separately from other applications.<br />
{{hc|/etc/mpd.conf|2=<br />
audio_output {<br />
type "alsa"<br />
name "My Sound Card"<br />
mixer_type "software" # optional<br />
}<br />
}}<br />
<br />
Users of [[PulseAudio]] will need to make the following modification:<br />
{{hc|/etc/mpd.conf|2=<br />
audio_output {<br />
type "pulse"<br />
name "pulse audio"<br />
}<br />
}}<br />
<br />
PulseAudio supports multiple advanced operations, e.g. transferring the audio to a different machine. For advanced configuration with MPD see [http://mpd.wikia.com/wiki/PulseAudio Music Player Daemon Community Wiki].<br />
<br />
==== Changing user ====<br />
<br />
Changing the group that MPD runs as may result in errors like {{ic|output: Failed to open "My ALSA Device"}}, {{ic|[alsa]: Failed to open ALSA device "default": No such file or directory}} or {{ic|player_thread: problems opening audio device while playing "Song Name.mp3"}}.<br />
<br />
This is because the MPD users need to be part of the ''audio'' group to access sound devices under {{Ic|/dev/snd/}}. To fix it add user make the MPD user part of the ''audio'' group:<br />
# gpasswd -a '''mpd''' audio<br />
<br />
==== Timeline of MPD startup ====<br />
<br />
To depict when MPD drops its superuser privileges and assumes those of the user set in the configuration, the timeline of a normal MPD startup is listed here:<br />
<br />
# Since MPD is started as root by systemd, it first reads the {{ic|/etc/mpd.conf}} file.<br />
# MPD reads the user variable in the {{ic|/etc/mpd.conf}} file, and changes from root to this user.<br />
# MPD then reads the contents of the {{ic|/etc/mpd.conf}} file and configures itself accordingly.<br />
<br />
Notice that MPD changes the running user from root to the one named in the {{ic|/etc/mpd.conf}} file. <br />
This way, uses of {{ic|~}} in the configuration file point correctly to the home user's directory, and not root's directory. <br />
It may be worthwhile to change all uses of {{ic|~}} to {{ic|/home/username}} to avoid any confusion over this aspect of MPD's behavior.<br />
<br />
=== Local configuration (per user) ===<br />
<br />
MPD can be configured per user (rather than the typical method of configuring MPD globally). Running MPD as a normal user has the benefits of:<br />
<br />
* A single directory {{ic|~/.config/mpd/}} (or any other directory under {{ic|$HOME}}) that will contain all the MPD configuration files.<br />
* Easier to avoid unforeseen read/write permission errors.<br />
<br />
Good practice is to create a single directory for the required files and playlists. It can be any directory for which you have read and write access, e.g. {{ic|~/.config/mpd/}} or {{ic|~/.mpd/}}. This section assumes it is {{ic|~/.config/mpd/}}, which corresponds to the default value of {{ic|$XDG_CONFIG_HOME}} (part of [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification]).<br />
<br />
MPD searches for a config file in {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} and then {{ic|~/.mpdconf}}. It is also possible to pass other path as command line argument.<br />
<br />
Copy the example configuration file to desired location, for example:<br />
<br />
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf<br />
<br />
Edit {{ic|~/.config/mpd/mpd.conf}} and specify the required files:<br />
<br />
{{hc|~/.config/mpd/mpd.conf|<br />
# Required files<br />
db_file "~/.config/mpd/database"<br />
log_file "~/.config/mpd/log"<br />
<br />
# Optional<br />
music_directory "~/Music"<br />
playlist_directory "~/.config/mpd/playlists"<br />
pid_file "~/.config/mpd/pid"<br />
state_file "~/.config/mpd/state"<br />
sticker_file "~/.config/mpd/sticker.sql"<br />
}}<br />
<br />
Create all the files and directories as configured above:<br />
<br />
$ mkdir ~/.config/mpd/playlists<br />
$ touch ~/.config/mpd/{database,log,pid,state,sticker.sql}<br />
<br />
When the paths of required files are configured, MPD can be started. To specify custom location of the configuration file:<br />
<br />
$ mpd ''config_file''<br />
<br />
==== Autostart on tty login ====<br />
<br />
To start MPD on login add the following to {{ic|~/.profile}} (or another [[Autostarting#Shells|autostart file]]):<br />
<br />
# MPD daemon start (if no other user instance exists)<br />
[ ! -s ~/.config/mpd/pid ] && mpd<br />
<br />
==== Autostart in X ====<br />
<br />
If you use a [[desktop environment]], place the following file in {{ic|~/.config/autostart/}}:<br />
{{hc|~/.config/autostart/mpd.desktop|<nowiki><br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Type=Application<br />
Name=Music Player Daemon<br />
Comment=Server for playing audio files<br />
Exec=mpd<br />
StartupNotify=false<br />
Terminal=false<br />
Hidden=false<br />
X-GNOME-Autostart-enabled=false<br />
</nowiki>}}<br />
<br />
If you do not use a DE, place the line from [[#Autostart on tty login]] in your [[Autostarting#Graphical|autostart file]].<br />
<br />
==== Autostart with systemd ====<br />
<br />
{{Note|It is assumed that you already have systemd user-session manager running (which should be default). See the [[systemd/User]] page for details.}}<br />
<br />
The package {{Pkg|mpd}} provides user service file in {{ic|/usr/lib/systemd/user/mpd.service}}. The configuration file is expected to exist either in {{ic|~/.mpdconf}} or {{ic|~/.config/mpd/mpd.conf}}, see [[systemd#Editing provided units]] if you would like to use different path. The process is not started as root, so you should not use the {{ic|user}} and {{ic|group}} variables in the MPD configuration file, the process already has user permissions and therefore it is not necessary to change them further.<br />
<br />
All you have to do is enable and start the {{ic|mpd}} [[systemd/User#User Services|user service]].<br />
<br />
{{Note|<br />
* {{Pkg|mpd}} provides also system service file in {{ic|/usr/lib/systemd/system/mpd.service}}, but as the process is started as root, it does not read the user configuration file and falls back to {{ic|/etc/mpd.conf}}. [[#Global configuration|Global configuration]] is described in other section.<br />
* Make sure to disable every other method of starting mpd you used before.<br />
}}<br />
<br />
==== Scripted configuration ====<br />
<br />
You can use a [http://dl.53280.de/mpdsetup.sh script] to create the proper directory structure, configuration files and prompt for the location of the user's Music directory.<br />
<br />
==== Scripted configuration for bit perfect playback ====<br />
<br />
You can use a [http://lacocina.nl/audiophile-mpd bash script] to also create a valid mpd configuration file which focusses on bit perfect audio playback. That is playback without any resampling or format conversion. It does this by setting audio output parameters to use a direct alsa hwardware address (like `hw:0,0`). The script detects and lists which playback interfaces alsa supports. When one interface is found it uses that one, if multiple are found it prompts the user which one to use. When not specified on the command line, it auto configures things like the music_directory and mpd's home directory by using freedesktop.org XDG configuration.<br />
<br />
=== Multi-mpd setup ===<br />
<br />
==== Running an icecast server ====<br />
<br />
For a second MPD (e.g., with icecast output to share music over the network) using the same music and playlist as the one above, simply copy the above configuration file and make a new file (e.g., {{ic|/home/username/.mpd/config-icecast}}), and only change the log_file, error_file, pid_file, and state_file parameters (e.g., {{ic|mpd-icecast.log}}, {{ic|mpd-icecast.error}}, and so on); using the same directory paths for the music and playlist directories would ensure that this second mpd would use the same music collection as the first one e.g., creating and editing a playlist under the first daemon would affect the second daemon as well. Users do not have to create the same playlists all over again for the second daemon. Call this second daemon the same way from {{ic|~/.xinitrc}} above. (Just be sure to have a different port number, so as to not conflict with the first mpd daemon).<br />
<br />
==== Satellite setup ====<br />
<br />
The method above works, but at least in theory could lead to issues with the database, when both mpd instances try to write to the same database file. MPD has a [http://www.musicpd.org/doc/user/advanced_config.html#satellite satellite mode] where one instance can receive the database from an already running mpd instance.<br />
<br />
in your config-icecast add this, where host and port reflect your primary mpd server.<br />
<br />
{{bc|<br />
database {<br />
plugin "proxy"<br />
host "localhost"<br />
port "6600"<br />
}<br />
}}<br />
<br />
== Clients ==<br />
<br />
A separate client is needed to control mpd. See a long list of clients at the [http://mpd.wikia.com/wiki/Clients mpd wiki]. Popular options are:<br />
<br />
=== Console ===<br />
<br />
*{{App|mpc|Command line user interface for MPD server|http://www.musicpd.org/clients/mpc/|{{Pkg|mpc}}}}<br />
*{{App|ncmpc|Ncurses client for mpd|http://www.musicpd.org/clients/ncmpc/|{{Pkg|ncmpc}}}}<br />
*{{App|[[ncmpcpp]]|Almost exact clone of ncmpc with some new features written in C++ (tag editor, search engine)|http://ncmpcpp.rybczak.net/|{{Pkg|ncmpcpp}}}}<br />
*{{App|pms|Highly configurable and accessible ncurses client|http://pms.sourceforge.net/|{{AUR|pmus-git}}}}<br />
*{{App|vimpc|Ncurses based MPD client with vi-like key bindings|http://sourceforge.net/projects/vimpc/|{{AUR|vimpc-git}}}}<br />
<br />
=== Graphical ===<br />
<br />
*{{App|Ario|Very feature-rich GTK2 GUI client for mpd, inspired by Rhythmbox|http://ario-player.sourceforge.net/|{{Pkg|ario}}}}<br />
*{{App|QmpdClient|GUI client written with Qt 4.x|http://bitcheese.net/wiki/QMPDClient|{{Pkg|qmpdclient}}}}<br />
*{{App|Sonata|Elegant Python GTK+ client|http://www.nongnu.org/sonata/|{{Pkg|sonata}}}}<br />
*{{App|gmpc|GTK2 frontend for Music Player Daemon. It is designed to be lightweight and easy to use, while providing full access to all of MPD's features. Users are presented with several different methods to browse through their music. It can be extended by plugins, of which many are available.|http://gmpclient.org/|{{Pkg|gmpc}}}}<br />
*{{App|Cantata|High-feature, Qt4, Qt5 or KDE4 client for MPD with very configurable interface|https://github.com/CDrummond/cantata|{{Pkg|cantata}}}}<br />
<br />
== See also ==<br />
<br />
* [http://forum.musicpd.org/ MPD Forum]<br />
* [http://www.musicpd.org/doc/user/ MPD User Manual]<br />
* [[Wikipedia:Music Player Daemon|Wikipedia article]]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=User:Aouellette&diff=414672User:Aouellette2016-01-08T01:16:51Z<p>Aouellette: </p>
<hr />
<div>== My Computers Running Arch ==<br />
<br />
Lenovo Thinkpad E440 with Intel Core i5 @ 2.50 GHz and 4GB RAM<br />
<br />
Raspberry Pi 2 (Arch ARM)<br />
<br />
Hopefully more coming soon ...<br />
<br />
== ==<br />
My dotfiles: https://github.com/aouelete/dotfiles</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Improving_performance&diff=414565Improving performance2016-01-07T00:03:03Z<p>Aouellette: /* Tuning IO schedulers */</p>
<hr />
<div>[[Category:Hardware]]<br />
[[Category:System administration]]<br />
[[ar:Maximizing performance]]<br />
[[es:Maximizing performance]]<br />
[[ja:パフォーマンスの最大化]]<br />
[[ru:Maximizing performance]]<br />
[[zh-cn:Maximizing performance]]<br />
{{Related articles start}}<br />
{{Related|ccache}}<br />
{{Related|Improve pacman performance}}<br />
{{Related|SSH#Speeding up SSH}}<br />
{{Related|LibreOffice#Speed up LibreOffice}}<br />
{{Related|Openoffice#Speed up OpenOffice}}<br />
{{Related|Laptop}}<br />
{{Related|Swap#Swappiness}}<br />
{{Related|Preload}}<br />
{{Related|Improve boot performance}}<br />
{{Related articles end}}<br />
This article provides information on basic system diagnostics relating to performance as well as steps that may be taken to reduce resource consumption or to otherwise optimize the system with the end-goal being either perceived or documented improvements to a system's performance.<br />
<br />
== The basics ==<br />
<br />
=== Know your system ===<br />
<br />
The best way to tune a system is to target bottlenecks, or subsystems which limit overall speed. The system specifications can help identify them.<br />
<br />
* If the computer becomes slow when large applications (such as OpenOffice.org and Firefox) run at the same time, check if the amount of RAM is sufficient. Use the following command, and check the "available" column:<br />
<br />
$ free -h<br />
<br />
* If boot time is slow, and applications take a long time to load at first launch (only), then the hard drive is likely to blame. The speed of a hard drive can be measured with the {{ic|hdparm}} command:<br />
<br />
# hdparm -t /dev/sdx<br />
<br />
{{Pkg|hdparm}} indicates only the pure read speed of a hard drive, and is not a valid benchmark. A value higher than 40MB/s (while idle) is however acceptable on an average system.<br />
<br />
* If CPU load is consistently high even with enough RAM available, then lowering CPU use should be a priority. This can be monitored in several ways, for example with {{Pkg|htop}}:<br />
<br />
$ htop<br />
<br />
* If only applications using direct rendering are slow (i.e those which use the GPU, such as video players and games), then improving GPU performance should help. The first step is to verify if direct rendering is actually enabled. This is indicated by the {{ic|glxinfo}} command:<br />
<br />
$ glxinfo | grep direct<br />
<br />
{{ic|glxinfo}} is part of the {{Pkg|mesa-demos}} package.<br />
<br />
===The first thing to do===<br />
<br />
The simplest and most efficient way of improving overall performance is to run lightweight environments and applications.<br />
<br />
* Use a [[window manager]] instead of a [[desktop environment]]. Choices include [[Awesome]], [[dwm]], [[Fluxbox]], [[i3]], [[JWM]], [[Openbox]], [[wmii]] and [[xmonad]]. If choosing a desktop environment, consider [[LXDE]] or [[Xfce]].<br />
* Use {{ic|pstree}} or {{Pkg|htop}} to list running daemons and their resource use.<br />
<br />
=== Benchmarking ===<br />
<br />
The effects of optimization are often difficult to judge. They can however be measured by [[benchmarking]] tools.<br />
<br />
== Storage devices ==<br />
<br />
{{Poor writing|Subjective writing}}<br />
<br />
=== Swap files ===<br />
<br />
Creating your swap files on a separate disk can also help quite a bit, especially if your machine swaps frequently. It happens if you do not have enough RAM for your environment. Using KDE with all the features and applications that come along may require several GiB of memory, whereas a tiny window manager with console applications will perfectly fit in less than 512 MiB of memory.<br />
<br />
=== RAID ===<br />
<br />
If you have multiple disks available, you can set them up as a software [[RAID]] for serious speed improvements. In a RAID 0 array there is no redundancy in case of drive failure, but for each additional disk you add to the array, the speed of the disk becomes that much faster.<br />
<br />
=== Multiple hardware paths ===<br />
<br />
An internal hardware path is how the storage device is connected to your motherboard. There are different ways to connect to the motherboard such as TCP/IP through a NIC, plugged in directly using PCIe/PCI, Firewire, Raid Card, USB, etc. By spreading your storage devices across these multiple connection points you maximize the capabilities of your motherboard, for example 6 hard-drives connected via USB would be much much slower than 3 over USB and 3 over Firewire. The reason is that each entry path into the motherboard is like a pipe, and there is a set limit to how much can go through that pipe at any one time. The good news is that the motherboard usually has several pipes.<br />
<br />
More Examples<br />
<br />
# Directly to the motherboard using pci/PCIe/ata<br />
# Using an external enclosure to house the disk over USB/Firewire<br />
# Turn the device into a network storage device by connecting over tcp/ip<br />
<br />
Note also that if you have a 2 USB ports on the front of your machine, and 4 USB ports on the back, and you have 4 disks, it would probably be fastest to put 2 on front/2 on back or 3 on back/1 on front. This is because internally the front ports are likely a separate Root Hub than the back, meaning you can send twice as much data by using both than just 1. Use the following commands to determine the various paths on your machine.<br />
<br />
{{hc|USB Device Tree|$ lsusb -tv}}<br />
<br />
{{hc|PCI Device Tree|$ lspci -tv}}<br />
<br />
=== Partitioning ===<br />
<br />
If using a traditional spinning HDD, your partition layout can influence the system's performance. Sectors at the beginning of the drive (closer to the outside of the disk) are faster than those at the end. Also, a smaller partition requires less movements from the drive's head, and so speed up disk operations. Therefore, it is advised to create a small partition (10GB, more or less depending on your needs) only for your system, as near to the beginning of the drive as possible. Other data (pictures, videos) should be kept on a separate partition, and this is usually achieved by separating the home directory ({{ic|/home/''user''}}) from the system ({{ic|/}}).<br />
<br />
=== Choosing and tuning your filesystem ===<br />
<br />
Choosing the best filesystem for a specific system is very important because each has its own strengths. The [[File systems]] article provides a short summary of the most popular ones. You can also find relevant articles [[:Category:File systems|here]].<br />
<br />
==== Mount options ====<br />
<br />
The [[fstab#atime options|noatime]] option is known to improve performance of the filesystem.<br />
<br />
Other mount options are filesystem specific, therefore see the relevant articles for the filesystems:<br />
<br />
* [[Ext3]]<br />
* [[Ext4#Tips and tricks]]<br />
* [[JFS Filesystem#Optimizations]]<br />
* [[XFS]]<br />
* [[Btrfs#Defragmentation]] and [[Btrfs#Compression]]<br />
* [[ZFS#Tuning]]<br />
<br />
===== Reiserfs =====<br />
<br />
The {{Ic|1=data=writeback}} mount option improves speed, but may corrupt data during power loss. The {{Ic|notail}} mount option increases the space used by the filesystem by about 5%, but also improves overall speed. You can also reduce disk load by putting the journal and data on separate drives. This is done when creating the filesystem: <br />
<br />
# mkreiserfs –j /dev/sd'''a1''' /dev/sd'''b1'''<br />
<br />
Replace {{ic|/dev/sd'''a1'''}} with the partition reserved for the journal, and {{ic|/dev/sd'''b1'''}} with the partition for data. You can learn more about reiserfs with this [http://www.funtoo.org/Funtoo_Filesystem_Guide,_Part_2 article].<br />
<br />
=== Tuning kernel parameters ===<br />
<br />
There are several key tunables affecting the performance of block devices, see [[sysctl#Virtual memory]] for more information.<br />
<br />
=== Tuning IO schedulers ===<br />
<br />
{{Style|Theoretical background should be described at the top or the bottom, not in the middle. Use subsections to make the structure more clear.}}<br />
<br />
The kernel officially supports the following schedulers for storage disk in-/output (IO):<br />
*[[wikipedia:CFQ|CFQ]] scheduler (Completely Fair Queuing)<br />
*[[wikipedia:NOOP_scheduler|NOOP]]<br />
*[[wikipedia:Deadline_scheduler|Deadline]].<br />
<br />
Unofficial support is available through the [[Linux-ck#How_to_enable_the_BFQ_I.2FO_Scheduler|BFQ]] (Budget Fair Scheduler) which is compiled the {{Pkg|linux-zen}} kernel as well as many kernels in the [[AUR]].<br />
<br />
A more contemporary option (since kernel version 3.16) is [https://www.thomas-krenn.com/en/wiki/Linux_Multi-Queue_Block_IO_Queueing_Mechanism_(blk-mq) Multi-Queue Block IO Queuing Mechanism] or blk-mq for short. Blk-mq leverages a CPU with multiple cores to map I/O queries to multiple queues. The tasks are distributed across multiple threads and therefore to multiple CPU cores (per-core software queues) and can speed up read/write operations vs. traditional I/O schedulers.<br />
<br />
One can be enable blk-mq by adding the following to the kernel's boot line:<br />
scsi_mod.use_blk_mq=1<br />
<br />
A HDD has spinning disks and head that move physically to the required location. Such structure leads to following characteristics:<br />
* random latency is quite high, for modern HDDs it is ~10ms (ignoring a disk controller write buffer).<br />
* sequential access provides much higher throughput. In this case the head needs to move less distance.<br />
<br />
If we have a lot of running processes that make IO requests to different parts of storage (i.e. random access) then we can expect that a disk handles ~100 IO requests per second. Because modern systems can easily generate load much higher than 100 requests per second we have a queue of requests that have to wait for access to the storage. One way to improve throughput is to linearize access, i.e. order waiting requests by its logical address and always choose the closest request. Historically this was the first Linux IO scheduler called elevator scheduler.<br />
<br />
One of the problems with the elevator algorithm is that it makes suffer processes with sequential access. Such processes read a block of data then process it for several microseconds then read next block and so on. The elevator scheduler does not know that the process is going to read another block nearby and, thus, moves to another request at some other location. To overcome the problem anticipatory IO scheduler was added. For synchronous requests this algorithm waits for a short amount of time before moving to another request.<br />
<br />
While these schedulers try to improve total throughput they also might leave some unlucky requests waiting for a very long time. As an example, imagine the majority of processes make requests at the beginning of storage space while an unlucky process makes a request at the other end of storage. So developers tried to make the algorithm more fair and the deadline scheduler was added. It has a queue ordered by address (the same as elevator). If some request sits in this queue for a long time then it moves to an "expired" queue ordered by expire time. The scheduler checks the expire queue first and processes requests from there and only then moves to elevator queue. It is important to understand that this algorithm sacrifices total throughput for fairness.<br />
<br />
CFQ (the default scheduler nowadays) aggregates all ideas from above and adds {{ic|cgroup}} support that allows to reserve some amount of IO to a specific {{ic|cgroup}}. It is useful on shared (and cloud) hosting - users who paid for 20 IO/s want to get their share if needed.<br />
<br />
The characteristics of a SSD are different. It does not have moving parts. Random access is as fast as sequential one. An SSD can handle multiple requests at the same time. Modern devices' throughput ~10K IO/s, which is higher than workload on most systems. Essentially a user cannot generate enough requests to saturate a SDD, the requests queue is effectively always empty. In this case IO scheduler does not provide any improvements. Thus, it is recommended to use the noop scheduler for an SSD.<br />
<br />
{{Accuracy|1=Bits below were restored from [https://wiki.archlinux.org/index.php?title=Solid_State_Drives&diff=next&oldid=411764]. The blk-mq scheduler discussed above may be activated differently.}}<br />
<br />
It is possible to change the scheduler at runtime and even to use different schedulers for separate storage devices at the same time. Available schedulers can be queried by viewing the contents of {{ic|/sys/block/sd'''X'''/queue/scheduler}} (the active scheduler is denoted by brackets):<br />
<br />
{{hc|$ cat /sys/block/sd'''X'''/queue/scheduler|<br />
noop deadline [cfq]<br />
}}<br />
<br />
Users can change the active scheduler at runtime without the need to reboot, for example:<br />
<br />
# echo noop > /sys/block/sd'''X'''/queue/scheduler<br />
<br />
This method is non-persistent and will be lost upon rebooting.<br />
<br />
==== Kernel parameter (for a single device) ====<br />
<br />
If the sole storage device in the system is an SSD, consider setting the I/O scheduler for the entire system via the {{ic|1=elevator=noop}} [[kernel parameter]].<br />
<br />
=== RAM disks ===<br />
<br />
{{Merge|tmpfs|Post from 2009, check if still relevant}}<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=493773#p493773].<br />
<br />
=== USB storage devices ===<br />
<br />
{{Accuracy|Commands still unclear}}<br />
<br />
If USB drives like pendrives are slow to copy files, append these three lines in a [[systemd]] tmpfile:<br />
<br />
{{hc|/etc/tmpfiles.d/local.conf|<br />
w /sys/kernel/mm/transparent_hugepage/enabled - - - - madvise<br />
w /sys/kernel/mm/transparent_hugepage/defrag - - - - madvise<br />
w /sys/kernel/mm/transparent_hugepage/khugepaged/defrag - - - - 0<br />
}}<br />
<br />
See also [[sysctl#Virtual memory]], [http://unix.stackexchange.com/questions/107703/why-is-my-pc-freezing-while-im-copying-a-file-to-a-pendrive] and [http://lwn.net/Articles/572911/].<br />
<br />
== CPU ==<br />
<br />
The only way to directly improve CPU speed is overclocking. As it is a complicated and risky task, it is not recommended for anyone except experts. The best way to overclock is through the BIOS. When purchasing your system, keep in mind that most Intel motherboards are notorious for disabling the capability to overclock.<br />
<br />
Many Intel i5 and i7 chips, even when overclocked properly through the BIOS or UEFI interface, will not report the correct clock frequency to acpi_cpufreq and most other utilities. This will result in excessive messages in dmesg about delays unless the module acpi_cpufreq is unloaded and blacklisted. The only tool known to correctly read the clock speed of these overclocked chips under Linux is i7z. The {{Pkg|i7z}} package is available in the community repo and {{AUR|i7z-git}} is available in the [[AUR]].<br />
<br />
A way to modify performance ([http://lkml.org/lkml/2009/9/6/136 ref]) is to use Con Kolivas' desktop-centric kernel patchset, which, among other things, replaces the Completely Fair Scheduler (CFS) with the Brain Fuck Scheduler (BFS).<br />
<br />
Kernel PKGBUILDs that include the BFS patch can be installed from the [[AUR]] or [[Unofficial user repositories]]. See the respective pages for {{AUR|linux-ck}} and [[Linux-ck]] wiki page, {{AUR|linux-pf}} and [[Linux-pf]] wiki page or {{AUR|linux-bfs}}{{Broken package link|{{aur-mirror|linux-bfs}}}} for more information on their additional patches.<br />
<br />
{{Note|BFS/CK are designed for desktop/laptop use and not servers. They provide low latency and work well for 16 CPUs or less. Also, Con Kolivas suggests setting HZ to 1000. For more information, see the [http://ck.kolivas.org/patches/bfs/bfs-faq.txt BFS FAQ] and [http://users.on.net/~ckolivas/kernel/ Kernel patch homepage of Con Kolivas].}}<br />
<br />
=== Verynice ===<br />
<br />
[[VeryNice]] is a daemon, available in the [[AUR]] as {{AUR|verynice}}, for dynamically adjusting the nice levels of executables. The nice level represents the priority of the executable when allocating CPU resources. Simply define executables for which responsiveness is important, like X or multimedia applications, as ''goodexe'' in {{ic|/etc/verynice.conf}}. Similarly, CPU-hungry executables running in the background, like make, can be defined as ''badexe''. This prioritization greatly improves system responsiveness under heavy load.<br />
<br />
=== cgroups ===<br />
<br />
See [[cgroups]].<br />
<br />
=== irqbalance ===<br />
<br />
The purpose of {{Pkg|irqbalance}} is distribute hardware interrupts across processors on a multiprocessor system in order to increase performance. It can be [[systemd#Using units|controlled]] by the provided {{ic|irqbalance.service}}.<br />
<br />
== Graphics ==<br />
<br />
As with CPUs, overclocking can directly improve performance, but is generally recommended against. There are several packages in the [[AUR]], such as {{AUR|rovclock}}{{Broken package link|{{aur-mirror|rovclock}}}}, {{AUR|amdoverdrivectrl}} (ATI), and {{AUR|nvclock}} (NVIDIA).<br />
<br />
=== Xorg.conf configuration ===<br />
<br />
Graphics performance may depend on the settings in {{ic|/etc/X11/xorg.conf}}; see the [[NVIDIA]], [[ATI]] and [[Intel]] articles. Improper settings may stop Xorg from working, so caution is advised.<br />
<br />
=== Driconf ===<br />
<br />
{{Pkg|driconf}} is a small utility which allows to change direct rendering settings for open source drivers. Enabling ''HyperZ'' may improve performance.<br />
<br />
== RAM and swap ==<br />
<br />
=== Relocate files to tmpfs ===<br />
<br />
{{Out of date|/tmp configured using tmpfs is now considered the standard method and is included in the beginner's installation guide.}}<br />
<br />
Relocate files, such as your browser profile, to a [[Wikipedia:tmpfs|tmpfs]] file system, including {{ic|/tmp}}, or {{ic|/dev/shm}} for improvements in application response as all the files are now stored in RAM.<br />
<br />
Use an active management script for maximal reliability and ease of use. <br />
<br />
Refer to the [[Profile-sync-daemon]] wiki article for more information on syncing browser profiles.<br />
<br />
Refer to the [[Anything-sync-daemon]] wiki article for more information on syncing any specified folder.<br />
<br />
=== Root on RAM overlay ===<br />
<br />
If running off a slow writing medium (USB, spinning HDDs) and storage requirements are low, the root may be run on a RAM overlay ontop of read only root (on disk). This can vastly improve performance at the cost of a limited writable space to root. See {{AUR|liveroot}}.<br />
<br />
=== Zram or zswap ===<br />
<br />
The [https://www.kernel.org/doc/Documentation/blockdev/zram.txt zram] kernel module (previously called '''compcache''') provides a compressed block device in RAM. If you use it as swap device, the RAM can hold much more information but uses more CPU. Still, it is much quicker than swapping to a hard drive. If a system often falls back to swap, this could improve responsiveness.<br />
<br />
Example: To set up one lz4 compressed zram device with 32GiB capacity and a higher-than-normal priority (only for the current session):<br />
<br />
# modprobe zram<br />
# echo lz4 > /sys/block/zram0/comp_algorithm<br />
# echo 32G > /sys/block/zram0/disksize<br />
# mkswap --label zram0 /dev/zram0<br />
# swapon --priority 100 /dev/zram0<br />
<br />
To disable it again, either reboot or run<br />
<br />
# swapoff /dev/zram0<br />
# rmmod zram<br />
<br />
If you want to automatically initialize zram on every boot, consider writing a [[systemd]] service for it.<br />
<br />
A detailed explanation of all steps, options and potential problems is provided in the official documentation of the module [https://www.kernel.org/doc/Documentation/blockdev/zram.txt here].<br />
<br />
The AUR package {{AUR|zramswap}} provides an automated script for setting up such swap devices with optimal settings for your system (such as RAM size and CPU core number). The script creates one zram device per CPU core with a total space equivalent to the RAM available. To do this automatically on every boot, [[enable]] {{ic|zramswap.service}}.<br />
<br />
You will have a compressed swap with higher priority than your regular swap which will utilize multiple CPU cores for compessing data.<br />
<br />
{{Tip|Using zram is also a good way to reduce disk read/write cycles due to swap on SSDs.}}<br />
<br />
Similar benefits (at similar costs) can be achieved using [[zswap]] rather than zram. The two are generally similar in intent although not operation: zswap operates as a compressed RAM cache and neither requires (nor permits) extensive userspace configuration.<br />
<br />
==== Swap on zRAM using a udev rule ====<br />
<br />
The example below describes how to set up swap on zRAM automatically at boot with a single udev rule. No extra package should be needed to make this work.<br />
<br />
First, enable the module:<br />
<br />
{{hc|/etc/modules-load.d/zram.conf|<nowiki><br />
zram<br />
</nowiki>}}<br />
<br />
Configure the number of /dev/zram nodes you need.<br />
<br />
{{hc|/etc/modprobe.d/zram.conf|<nowiki><br />
options zram num_devices=2<br />
</nowiki>}}<br />
<br />
Create the udev rule as shown in the example.<br />
<br />
{{hc|/etc/udev/rules.d/99-zram.rules|<nowiki><br />
KERNEL=="zram0", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram0", TAG+="systemd"<br />
KERNEL=="zram1", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram1", TAG+="systemd"<br />
</nowiki>}}<br />
<br />
Add /dev/zram to your fstab.<br />
<br />
{{hc|/etc/fstab|<nowiki><br />
/dev/zram0 none swap defaults 0 0<br />
/dev/zram1 none swap defaults 0 0<br />
</nowiki>}}<br />
<br />
=== Using the graphic card's RAM ===<br />
<br />
In the unlikely case that you have very little RAM and a surplus of video RAM, you can use the latter as swap. See [[Swap on video ram]].<br />
<br />
== Network ==<br />
<br />
Every time a connections is made, the system must first resolve a fully qualified domain name to an IP address before the actual connection can be done. Response times of network requests can be improved by caching DNS queries locally. Common tools for this purpose include [[pdnsd]], [[dnsmasq]], [[unbound]] and {{AUR|rescached-git}}.<br />
<br />
== Application-specific tips ==<br />
<br />
=== Firefox ===<br />
<br />
See [[Firefox tweaks#Performance]] and [[Firefox on RAM]].<br />
<br />
Firefox in the official repositories is built with the profile guided optimization flag enabled. You may want to use it in your custom build.<br />
To do this append:<br />
<br />
ac_add_options --enable-profile-guided-optimization<br />
<br />
to your {{ic|.mozconfig}} file.</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Improving_performance&diff=414564Improving performance2016-01-07T00:01:12Z<p>Aouellette: /* Tuning IO schedulers */</p>
<hr />
<div>[[Category:Hardware]]<br />
[[Category:System administration]]<br />
[[ar:Maximizing performance]]<br />
[[es:Maximizing performance]]<br />
[[ja:パフォーマンスの最大化]]<br />
[[ru:Maximizing performance]]<br />
[[zh-cn:Maximizing performance]]<br />
{{Related articles start}}<br />
{{Related|ccache}}<br />
{{Related|Improve pacman performance}}<br />
{{Related|SSH#Speeding up SSH}}<br />
{{Related|LibreOffice#Speed up LibreOffice}}<br />
{{Related|Openoffice#Speed up OpenOffice}}<br />
{{Related|Laptop}}<br />
{{Related|Swap#Swappiness}}<br />
{{Related|Preload}}<br />
{{Related|Improve boot performance}}<br />
{{Related articles end}}<br />
This article provides information on basic system diagnostics relating to performance as well as steps that may be taken to reduce resource consumption or to otherwise optimize the system with the end-goal being either perceived or documented improvements to a system's performance.<br />
<br />
== The basics ==<br />
<br />
=== Know your system ===<br />
<br />
The best way to tune a system is to target bottlenecks, or subsystems which limit overall speed. The system specifications can help identify them.<br />
<br />
* If the computer becomes slow when large applications (such as OpenOffice.org and Firefox) run at the same time, check if the amount of RAM is sufficient. Use the following command, and check the "available" column:<br />
<br />
$ free -h<br />
<br />
* If boot time is slow, and applications take a long time to load at first launch (only), then the hard drive is likely to blame. The speed of a hard drive can be measured with the {{ic|hdparm}} command:<br />
<br />
# hdparm -t /dev/sdx<br />
<br />
{{Pkg|hdparm}} indicates only the pure read speed of a hard drive, and is not a valid benchmark. A value higher than 40MB/s (while idle) is however acceptable on an average system.<br />
<br />
* If CPU load is consistently high even with enough RAM available, then lowering CPU use should be a priority. This can be monitored in several ways, for example with {{Pkg|htop}}:<br />
<br />
$ htop<br />
<br />
* If only applications using direct rendering are slow (i.e those which use the GPU, such as video players and games), then improving GPU performance should help. The first step is to verify if direct rendering is actually enabled. This is indicated by the {{ic|glxinfo}} command:<br />
<br />
$ glxinfo | grep direct<br />
<br />
{{ic|glxinfo}} is part of the {{Pkg|mesa-demos}} package.<br />
<br />
===The first thing to do===<br />
<br />
The simplest and most efficient way of improving overall performance is to run lightweight environments and applications.<br />
<br />
* Use a [[window manager]] instead of a [[desktop environment]]. Choices include [[Awesome]], [[dwm]], [[Fluxbox]], [[i3]], [[JWM]], [[Openbox]], [[wmii]] and [[xmonad]]. If choosing a desktop environment, consider [[LXDE]] or [[Xfce]].<br />
* Use {{ic|pstree}} or {{Pkg|htop}} to list running daemons and their resource use.<br />
<br />
=== Benchmarking ===<br />
<br />
The effects of optimization are often difficult to judge. They can however be measured by [[benchmarking]] tools.<br />
<br />
== Storage devices ==<br />
<br />
{{Poor writing|Subjective writing}}<br />
<br />
=== Swap files ===<br />
<br />
Creating your swap files on a separate disk can also help quite a bit, especially if your machine swaps frequently. It happens if you do not have enough RAM for your environment. Using KDE with all the features and applications that come along may require several GiB of memory, whereas a tiny window manager with console applications will perfectly fit in less than 512 MiB of memory.<br />
<br />
=== RAID ===<br />
<br />
If you have multiple disks available, you can set them up as a software [[RAID]] for serious speed improvements. In a RAID 0 array there is no redundancy in case of drive failure, but for each additional disk you add to the array, the speed of the disk becomes that much faster.<br />
<br />
=== Multiple hardware paths ===<br />
<br />
An internal hardware path is how the storage device is connected to your motherboard. There are different ways to connect to the motherboard such as TCP/IP through a NIC, plugged in directly using PCIe/PCI, Firewire, Raid Card, USB, etc. By spreading your storage devices across these multiple connection points you maximize the capabilities of your motherboard, for example 6 hard-drives connected via USB would be much much slower than 3 over USB and 3 over Firewire. The reason is that each entry path into the motherboard is like a pipe, and there is a set limit to how much can go through that pipe at any one time. The good news is that the motherboard usually has several pipes.<br />
<br />
More Examples<br />
<br />
# Directly to the motherboard using pci/PCIe/ata<br />
# Using an external enclosure to house the disk over USB/Firewire<br />
# Turn the device into a network storage device by connecting over tcp/ip<br />
<br />
Note also that if you have a 2 USB ports on the front of your machine, and 4 USB ports on the back, and you have 4 disks, it would probably be fastest to put 2 on front/2 on back or 3 on back/1 on front. This is because internally the front ports are likely a separate Root Hub than the back, meaning you can send twice as much data by using both than just 1. Use the following commands to determine the various paths on your machine.<br />
<br />
{{hc|USB Device Tree|$ lsusb -tv}}<br />
<br />
{{hc|PCI Device Tree|$ lspci -tv}}<br />
<br />
=== Partitioning ===<br />
<br />
If using a traditional spinning HDD, your partition layout can influence the system's performance. Sectors at the beginning of the drive (closer to the outside of the disk) are faster than those at the end. Also, a smaller partition requires less movements from the drive's head, and so speed up disk operations. Therefore, it is advised to create a small partition (10GB, more or less depending on your needs) only for your system, as near to the beginning of the drive as possible. Other data (pictures, videos) should be kept on a separate partition, and this is usually achieved by separating the home directory ({{ic|/home/''user''}}) from the system ({{ic|/}}).<br />
<br />
=== Choosing and tuning your filesystem ===<br />
<br />
Choosing the best filesystem for a specific system is very important because each has its own strengths. The [[File systems]] article provides a short summary of the most popular ones. You can also find relevant articles [[:Category:File systems|here]].<br />
<br />
==== Mount options ====<br />
<br />
The [[fstab#atime options|noatime]] option is known to improve performance of the filesystem.<br />
<br />
Other mount options are filesystem specific, therefore see the relevant articles for the filesystems:<br />
<br />
* [[Ext3]]<br />
* [[Ext4#Tips and tricks]]<br />
* [[JFS Filesystem#Optimizations]]<br />
* [[XFS]]<br />
* [[Btrfs#Defragmentation]] and [[Btrfs#Compression]]<br />
* [[ZFS#Tuning]]<br />
<br />
===== Reiserfs =====<br />
<br />
The {{Ic|1=data=writeback}} mount option improves speed, but may corrupt data during power loss. The {{Ic|notail}} mount option increases the space used by the filesystem by about 5%, but also improves overall speed. You can also reduce disk load by putting the journal and data on separate drives. This is done when creating the filesystem: <br />
<br />
# mkreiserfs –j /dev/sd'''a1''' /dev/sd'''b1'''<br />
<br />
Replace {{ic|/dev/sd'''a1'''}} with the partition reserved for the journal, and {{ic|/dev/sd'''b1'''}} with the partition for data. You can learn more about reiserfs with this [http://www.funtoo.org/Funtoo_Filesystem_Guide,_Part_2 article].<br />
<br />
=== Tuning kernel parameters ===<br />
<br />
There are several key tunables affecting the performance of block devices, see [[sysctl#Virtual memory]] for more information.<br />
<br />
=== Tuning IO schedulers ===<br />
<br />
{{Style|Theoretical background should be described at the top or the bottom, not in the middle. Use subsections to make the structure more clear.}}<br />
<br />
The kernel officially supports the following schedulers for storage disk in-/output (IO):<br />
*[[wikipedia:CFQ|CFQ]] scheduler (Completely Fair Queuing)<br />
*[[wikipedia:NOOP_scheduler|NOOP]]<br />
*[[wikipedia:Deadline_scheduler|Deadline]].<br />
<br />
Unofficial support is available through the [[Linux-ck#How_to_enable_the_BFQ_I.2FO_Scheduler|BFQ]] (Budget Fair Scheduler) which is compiled the {{Pkg|linux-zen}} kernel as well as many kernels in the [[AUR]].<br />
<br />
A more contemporary option (since kernel version 3.16) is [https://www.thomas-krenn.com/en/wiki/Linux_Multi-Queue_Block_IO_Queueing_Mechanism_(blk-mq) Multi-Queue Block IO Queuing Mechanism] or blk-mq for short. Blk-mq leverages a CPU with multiple cores to map I/O queries to multiple queues. The tasks are distributed across multiple threads and therefore to multiple CPU cores (per-core software queues) and can speed up read/write operations vs. traditional I/O schedulers.<br />
<br />
One can be enable blk-mq by adding the following to the kernel's boot line:<br />
scsi_mod.use_blk_mq=1<br />
<br />
A HDD has spinning disks and head that move physically to the required location. Such structure leads to following characteristics:<br />
* random latency it quite high, for modern HDD it is ~10ms (ignoring a disk controller write buffer).<br />
* sequential access provides much higher throughput. In this case head needs to move less distance.<br />
<br />
In case if we have a lot of running processes that make IO requests to different parts of storage (i.e. random access) then we can expect that a disk handles ~100 IO requests per second. Because modern systems can easily generate load much higher than 100 requests per second we have a queue of requests that have to wait for access to the storage. One way to improve throughput is to linearize access, i.e. order waiting requests by its logical address and always choose the closest request. Historically this was the first Linux IO scheduler called elevator scheduler.<br />
<br />
One of the problems with the elevator algorithm is that it makes suffer processes with sequential access. Such processes read a block of data then process it for several microseconds then read next block and so on. The elevator scheduler does not know that the process is going to read another block nearby and, thus, moves to another request at some other location. To overcome the problem anticipatory IO scheduler was added. For synchronous requests this algorithm waits for a short amount of time before moving to another request.<br />
<br />
While these schedulers try to improve total throughput they also might leave some unlucky requests waiting for a very long time. As an example, imagine the majority of processes make requests at the beginning of storage space while an unlucky process makes a request at the other end of storage. So developers tried to make the algorithm more fair and the deadline scheduler was added. It has a queue ordered by address (the same as elevator). If some request sits in this queue for a long time then it moves to an "expired" queue ordered by expire time. The scheduler checks the expire queue first and processes requests from there and only then moves to elevator queue. It is important to understand that this algorithm sacrifices total throughput for fairness.<br />
<br />
CFQ (the default scheduler nowadays) aggregates all ideas from above and adds {{ic|cgroup}} support that allows to reserve some amount of IO to a specific {{ic|cgroup}}. It is useful on shared (and cloud) hosting - users who paid for 20 IO/s want to get their share if needed.<br />
<br />
The characteristics of a SSD are different. It does not have moving parts. Random access is as fast as sequential one. An SSD can handle multiple requests at the same time. Modern devices' throughput ~10K IO/s, which is higher than workload on most systems. Essentially a user cannot generate enough requests to saturate a SDD, the requests queue is effectively always empty. In this case IO scheduler does not provide any improvements. Thus, it is recommended to use the noop scheduler for an SSD.<br />
<br />
{{Accuracy|1=Bits below were restored from [https://wiki.archlinux.org/index.php?title=Solid_State_Drives&diff=next&oldid=411764]. The blk-mq scheduler discussed above may be activated differently.}}<br />
<br />
It is possible to change the scheduler at runtime and even to use different schedulers for separate storage devices at the same time. Available schedulers can be queried by viewing the contents of {{ic|/sys/block/sd'''X'''/queue/scheduler}} (the active scheduler is denoted by brackets):<br />
<br />
{{hc|$ cat /sys/block/sd'''X'''/queue/scheduler|<br />
noop deadline [cfq]<br />
}}<br />
<br />
Users can change the active scheduler at runtime without the need to reboot, for example:<br />
<br />
# echo noop > /sys/block/sd'''X'''/queue/scheduler<br />
<br />
This method is non-persistent and will be lost upon rebooting.<br />
<br />
==== Kernel parameter (for a single device) ====<br />
<br />
If the sole storage device in the system is an SSD, consider setting the I/O scheduler for the entire system via the {{ic|1=elevator=noop}} [[kernel parameter]].<br />
<br />
=== RAM disks ===<br />
<br />
{{Merge|tmpfs|Post from 2009, check if still relevant}}<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=493773#p493773].<br />
<br />
=== USB storage devices ===<br />
<br />
{{Accuracy|Commands still unclear}}<br />
<br />
If USB drives like pendrives are slow to copy files, append these three lines in a [[systemd]] tmpfile:<br />
<br />
{{hc|/etc/tmpfiles.d/local.conf|<br />
w /sys/kernel/mm/transparent_hugepage/enabled - - - - madvise<br />
w /sys/kernel/mm/transparent_hugepage/defrag - - - - madvise<br />
w /sys/kernel/mm/transparent_hugepage/khugepaged/defrag - - - - 0<br />
}}<br />
<br />
See also [[sysctl#Virtual memory]], [http://unix.stackexchange.com/questions/107703/why-is-my-pc-freezing-while-im-copying-a-file-to-a-pendrive] and [http://lwn.net/Articles/572911/].<br />
<br />
== CPU ==<br />
<br />
The only way to directly improve CPU speed is overclocking. As it is a complicated and risky task, it is not recommended for anyone except experts. The best way to overclock is through the BIOS. When purchasing your system, keep in mind that most Intel motherboards are notorious for disabling the capability to overclock.<br />
<br />
Many Intel i5 and i7 chips, even when overclocked properly through the BIOS or UEFI interface, will not report the correct clock frequency to acpi_cpufreq and most other utilities. This will result in excessive messages in dmesg about delays unless the module acpi_cpufreq is unloaded and blacklisted. The only tool known to correctly read the clock speed of these overclocked chips under Linux is i7z. The {{Pkg|i7z}} package is available in the community repo and {{AUR|i7z-git}} is available in the [[AUR]].<br />
<br />
A way to modify performance ([http://lkml.org/lkml/2009/9/6/136 ref]) is to use Con Kolivas' desktop-centric kernel patchset, which, among other things, replaces the Completely Fair Scheduler (CFS) with the Brain Fuck Scheduler (BFS).<br />
<br />
Kernel PKGBUILDs that include the BFS patch can be installed from the [[AUR]] or [[Unofficial user repositories]]. See the respective pages for {{AUR|linux-ck}} and [[Linux-ck]] wiki page, {{AUR|linux-pf}} and [[Linux-pf]] wiki page or {{AUR|linux-bfs}}{{Broken package link|{{aur-mirror|linux-bfs}}}} for more information on their additional patches.<br />
<br />
{{Note|BFS/CK are designed for desktop/laptop use and not servers. They provide low latency and work well for 16 CPUs or less. Also, Con Kolivas suggests setting HZ to 1000. For more information, see the [http://ck.kolivas.org/patches/bfs/bfs-faq.txt BFS FAQ] and [http://users.on.net/~ckolivas/kernel/ Kernel patch homepage of Con Kolivas].}}<br />
<br />
=== Verynice ===<br />
<br />
[[VeryNice]] is a daemon, available in the [[AUR]] as {{AUR|verynice}}, for dynamically adjusting the nice levels of executables. The nice level represents the priority of the executable when allocating CPU resources. Simply define executables for which responsiveness is important, like X or multimedia applications, as ''goodexe'' in {{ic|/etc/verynice.conf}}. Similarly, CPU-hungry executables running in the background, like make, can be defined as ''badexe''. This prioritization greatly improves system responsiveness under heavy load.<br />
<br />
=== cgroups ===<br />
<br />
See [[cgroups]].<br />
<br />
=== irqbalance ===<br />
<br />
The purpose of {{Pkg|irqbalance}} is distribute hardware interrupts across processors on a multiprocessor system in order to increase performance. It can be [[systemd#Using units|controlled]] by the provided {{ic|irqbalance.service}}.<br />
<br />
== Graphics ==<br />
<br />
As with CPUs, overclocking can directly improve performance, but is generally recommended against. There are several packages in the [[AUR]], such as {{AUR|rovclock}}{{Broken package link|{{aur-mirror|rovclock}}}}, {{AUR|amdoverdrivectrl}} (ATI), and {{AUR|nvclock}} (NVIDIA).<br />
<br />
=== Xorg.conf configuration ===<br />
<br />
Graphics performance may depend on the settings in {{ic|/etc/X11/xorg.conf}}; see the [[NVIDIA]], [[ATI]] and [[Intel]] articles. Improper settings may stop Xorg from working, so caution is advised.<br />
<br />
=== Driconf ===<br />
<br />
{{Pkg|driconf}} is a small utility which allows to change direct rendering settings for open source drivers. Enabling ''HyperZ'' may improve performance.<br />
<br />
== RAM and swap ==<br />
<br />
=== Relocate files to tmpfs ===<br />
<br />
{{Out of date|/tmp configured using tmpfs is now considered the standard method and is included in the beginner's installation guide.}}<br />
<br />
Relocate files, such as your browser profile, to a [[Wikipedia:tmpfs|tmpfs]] file system, including {{ic|/tmp}}, or {{ic|/dev/shm}} for improvements in application response as all the files are now stored in RAM.<br />
<br />
Use an active management script for maximal reliability and ease of use. <br />
<br />
Refer to the [[Profile-sync-daemon]] wiki article for more information on syncing browser profiles.<br />
<br />
Refer to the [[Anything-sync-daemon]] wiki article for more information on syncing any specified folder.<br />
<br />
=== Root on RAM overlay ===<br />
<br />
If running off a slow writing medium (USB, spinning HDDs) and storage requirements are low, the root may be run on a RAM overlay ontop of read only root (on disk). This can vastly improve performance at the cost of a limited writable space to root. See {{AUR|liveroot}}.<br />
<br />
=== Zram or zswap ===<br />
<br />
The [https://www.kernel.org/doc/Documentation/blockdev/zram.txt zram] kernel module (previously called '''compcache''') provides a compressed block device in RAM. If you use it as swap device, the RAM can hold much more information but uses more CPU. Still, it is much quicker than swapping to a hard drive. If a system often falls back to swap, this could improve responsiveness.<br />
<br />
Example: To set up one lz4 compressed zram device with 32GiB capacity and a higher-than-normal priority (only for the current session):<br />
<br />
# modprobe zram<br />
# echo lz4 > /sys/block/zram0/comp_algorithm<br />
# echo 32G > /sys/block/zram0/disksize<br />
# mkswap --label zram0 /dev/zram0<br />
# swapon --priority 100 /dev/zram0<br />
<br />
To disable it again, either reboot or run<br />
<br />
# swapoff /dev/zram0<br />
# rmmod zram<br />
<br />
If you want to automatically initialize zram on every boot, consider writing a [[systemd]] service for it.<br />
<br />
A detailed explanation of all steps, options and potential problems is provided in the official documentation of the module [https://www.kernel.org/doc/Documentation/blockdev/zram.txt here].<br />
<br />
The AUR package {{AUR|zramswap}} provides an automated script for setting up such swap devices with optimal settings for your system (such as RAM size and CPU core number). The script creates one zram device per CPU core with a total space equivalent to the RAM available. To do this automatically on every boot, [[enable]] {{ic|zramswap.service}}.<br />
<br />
You will have a compressed swap with higher priority than your regular swap which will utilize multiple CPU cores for compessing data.<br />
<br />
{{Tip|Using zram is also a good way to reduce disk read/write cycles due to swap on SSDs.}}<br />
<br />
Similar benefits (at similar costs) can be achieved using [[zswap]] rather than zram. The two are generally similar in intent although not operation: zswap operates as a compressed RAM cache and neither requires (nor permits) extensive userspace configuration.<br />
<br />
==== Swap on zRAM using a udev rule ====<br />
<br />
The example below describes how to set up swap on zRAM automatically at boot with a single udev rule. No extra package should be needed to make this work.<br />
<br />
First, enable the module:<br />
<br />
{{hc|/etc/modules-load.d/zram.conf|<nowiki><br />
zram<br />
</nowiki>}}<br />
<br />
Configure the number of /dev/zram nodes you need.<br />
<br />
{{hc|/etc/modprobe.d/zram.conf|<nowiki><br />
options zram num_devices=2<br />
</nowiki>}}<br />
<br />
Create the udev rule as shown in the example.<br />
<br />
{{hc|/etc/udev/rules.d/99-zram.rules|<nowiki><br />
KERNEL=="zram0", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram0", TAG+="systemd"<br />
KERNEL=="zram1", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram1", TAG+="systemd"<br />
</nowiki>}}<br />
<br />
Add /dev/zram to your fstab.<br />
<br />
{{hc|/etc/fstab|<nowiki><br />
/dev/zram0 none swap defaults 0 0<br />
/dev/zram1 none swap defaults 0 0<br />
</nowiki>}}<br />
<br />
=== Using the graphic card's RAM ===<br />
<br />
In the unlikely case that you have very little RAM and a surplus of video RAM, you can use the latter as swap. See [[Swap on video ram]].<br />
<br />
== Network ==<br />
<br />
Every time a connections is made, the system must first resolve a fully qualified domain name to an IP address before the actual connection can be done. Response times of network requests can be improved by caching DNS queries locally. Common tools for this purpose include [[pdnsd]], [[dnsmasq]], [[unbound]] and {{AUR|rescached-git}}.<br />
<br />
== Application-specific tips ==<br />
<br />
=== Firefox ===<br />
<br />
See [[Firefox tweaks#Performance]] and [[Firefox on RAM]].<br />
<br />
Firefox in the official repositories is built with the profile guided optimization flag enabled. You may want to use it in your custom build.<br />
To do this append:<br />
<br />
ac_add_options --enable-profile-guided-optimization<br />
<br />
to your {{ic|.mozconfig}} file.</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Android&diff=409169Android2015-11-14T18:27:50Z<p>Aouellette: grammar fix</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Mobile devices]]<br />
[[it:Android]]<br />
[[ja:Android]]<br />
[[ru:Android]]<br />
[[zh-CN:Android]]<br />
{{Related articles start}}<br />
{{Related|Android notifier}}<br />
{{Related|Android tethering}}<br />
{{Related articles end}}<br />
<br />
== Exploring Android device ==<br />
<br />
There are few methods of exploring your device:<br />
<br />
*[[MTP]] over USB for files transferring.<br />
*[[#Alternative connection methods|Alternative methods]] (such as FTP, SSH).<br />
<br />
For more advanced usage, development, flashing and restore:<br />
*[[#Connecting to a real device - Android Debug Bridge (ADB)|ADB]] mostly for development purposes.<br />
*[[#Restoring Android|Restoring Android]] for flashing and restoring Android firmwares (includes fastboot).<br />
<br />
== Android development ==<br />
<br />
There are 3 steps that need to be performed before you can develop Android applications on your Arch Linux box:<br />
<br />
# Install the Android SDK core component,<br />
# Install one or several Android SDK Platform packages,<br />
# Install one of the IDEs compatible with the Android SDK.<br />
<br />
=== Android SDK core components ===<br />
<br />
{{Note|First, if you are running a 64-bit system, make sure the [[multilib]] repository is enabled in [[Pacman#Repositories|pacman.conf]]. Otherwise errors of the type: "error: target not found: lib32-zlib" will plague your installation attempt.}}<br />
<br />
Before developing Android applications, you need to install the Android SDK, which is made of 3 distinct packages, all installable from [[AUR]]:<br />
<br />
# {{AUR|android-sdk}}<br />
# {{AUR|android-sdk-platform-tools}}<br />
# {{AUR|android-sdk-build-tools}}<br />
<br />
Android-sdk will be installed on {{ic|/opt/android-sdk}}. This folder has root permissions, so keep in mind to run sdk manager as root, otherwise you will not be able to install/update/modify anything on /opt/android-sdk. However, if you intend to use it as a regular user, create an android sdk users group (or use any group name you want):<br />
# groupadd sdkusers<br />
<br />
Add your user into this group:<br />
# gpasswd -a <user> sdkusers<br />
<br />
Change folder's group.<br />
# chown -R :sdkusers /opt/android-sdk/<br />
<br />
Change permissions of the folder so the user that was just added to the group will be able to write in it:<br />
# chmod -R g+w /opt/android-sdk/<br />
<br />
Re-login or as <user> log your terminal in to the newly created group:<br />
<br />
$ newgrp sdkusers<br />
<br />
{{Note|As an alternative to a global install with the [[AUR]] packages, the SDK can be installed to a user's home directory via [https://developer.android.com/sdk/index.html the upstream instructions].}}<br />
<br />
=== Android SDK platform API ===<br />
<br />
Install the desired Android SDK Platform package from the [[AUR]]:<br />
<br />
* {{aur|android-platform}} (latest)<br />
* {{aur|android-platform-23}}<br />
* {{aur|android-platform-22}}<br />
* {{aur|android-platform-21}}<br />
* {{aur|android-platform-20}}<br />
* {{aur|android-platform-19}}{{Broken package link|{{aur-mirror|android-platform-19}}}}<br />
* {{aur|android-platform-18}}{{Broken package link|{{aur-mirror|android-platform-18}}}}<br />
* {{aur|android-platform-17}}{{Broken package link|{{aur-mirror|android-platform-17}}}}<br />
* {{aur|android-platform-16}}{{Broken package link|{{aur-mirror|android-platform-16}}}}<br />
* {{aur|android-platform-15}}{{Broken package link|{{aur-mirror|android-platform-15}}}}<br />
* {{aur|android-platform-14}}{{Broken package link|{{aur-mirror|android-platform-14}}}}<br />
* {{aur|android-platform-13}}{{Broken package link|{{aur-mirror|android-platform-13}}}}<br />
* {{aur|android-platform-12}}{{Broken package link|{{aur-mirror|android-platform-12}}}}<br />
* {{aur|android-platform-11}}{{Broken package link|{{aur-mirror|android-platform-11}}}}<br />
* {{aur|android-platform-10}}{{Broken package link|{{aur-mirror|android-platform-10}}}}<br />
* {{aur|android-platform-9}}{{Broken package link|{{aur-mirror|android-platform-9}}}}<br />
* {{aur|android-platform-8}}{{Broken package link|{{aur-mirror|android-platform-8}}}}<br />
* {{aur|android-platform-7}}{{Broken package link|{{aur-mirror|android-platform-7}}}}<br />
* {{aur|android-platform-6}}{{Broken package link|{{aur-mirror|android-platform-6}}}}<br />
* {{aur|android-platform-5}}{{Broken package link|{{aur-mirror|android-platform-5}}}}<br />
* {{aur|android-platform-4}}{{Broken package link|{{aur-mirror|android-platform-4}}}}<br />
* {{aur|android-platform-3}}{{Broken package link|{{aur-mirror|android-platform-3}}}}<br />
* {{aur|android-platform-2}}{{Broken package link|{{aur-mirror|android-platform-2}}}}<br />
<br />
=== Development environment ===<br />
<br />
Android Studio is the new official Android development environment based on IntelliJ IDEA. Alternatively, you can use [[Eclipse]] with the official but deprecated ADT plugin, or [[Netbeans]] with the NBAndroid plugin. All are described below.<br />
<br />
==== Android Studio ====<br />
<br />
[https://developer.android.com/sdk/index.html Android Studio] is the official Android development environment based on [https://www.jetbrains.com/idea/ IntelliJ Idea]. Android Studio replaces the older [https://developer.android.com/tools/help/adt.html Eclipse Android Developer Tools] and provides integrated Android developer tools for development and debugging.<br />
<br />
You can download and install it with the {{AUR|android-studio}} package from the [[AUR]]. If you get an error about a missing SDK, refer to the section Getting Android SDK platform API above.<br />
<br />
{{Note|1=If you are using a tiling window manager other than i3wm, you may need to apply one of the fixes mentioned in [https://code.google.com/p/android/issues/detail?id=57675 this] issue page.}}<br />
{{Note|1=Make sure you properly [[Java#Change_default_Java_environment|set the Java environment]] otherwise android-studio will not start.}}<br />
{{Note|1=Bad font rendering in Android Studio can be fixed by installing the [[Infinality#Installation_2|infinality-bundle]] and using infinality patched openJDK 7 ({{AUR|jdk7-openjdk-infinality}}) or openJDK 8 ({{AUR|jdk8-openjdk-infinality}}) from the AUR as mentioned in [https://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-876236 this] issue page. Patched OpenJDK8 is also available from [[Unofficial user repositories#infinality-bundle|Infinality unofficial repository]]. }}<br />
<br />
{{Note|1=Bad HiDPI scaling and text overflowing widget boundaries can be fixed by adding {{ic|1=-Dhidpi=true}} to {{ic|~/.AndroidStudio1.2/studio64.vmoptions}}.}}<br />
<br />
Normally, apps are built through the Android Studio GUI. To build apps from the commandline (using e.g. {{ic|./gradlew assembleDebug}}), add the following to your {{ic|~/.bashrc}}:<br />
<br />
export ANDROID_HOME=/opt/android-sdk<br />
<br />
==== Eclipse ====<br />
<br />
{{Note|Since 2014-12-08, the ADT plugin is officially considered deprecated and Android Studio is now the official IDE.}}<br />
<br />
Most stuff required for Android development in Eclipse is already packaged in AUR:<br />
<br />
Official plugin by Google &ndash; [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT]:<br />
# {{AUR|eclipse-android}}<br />
<br />
Dependencies:<br />
# {{AUR|eclipse-emf}}<br />
# {{AUR|eclipse-gef}}<br />
# {{AUR|eclipse-wtp}}<br />
<br />
{{Note|<br />
* if you get a message about unresolvable dependencies, install [[Java]] manually and try again.<br />
* as an alternative, you can install the ADT via eclipse's built in "add new software" command (see instructions on ADT site).<br />
* if you are in real trouble, it is also possible to download Android SDK and use the bundled Eclipse. This usually works without problems.<br />
* if you need to install extra SDK plugins not found in the AUR, you must change the file ownership of /opt/android-sdk first. You can do this with {{ic|# chgrp -R users /opt/android-sdk ; chmod -R 0775 /opt/android-sdk}} (see [[File Permissions]] for more details).<br />
}}<br />
<br />
Enter the path to the Android SDK Location in<br />
<br />
Windows -> Preferences -> Android<br />
<br />
{{Note|<br />
If the plugins do not show up in Eclipse after the AUR package has been upgraded, then eclipse probably has out-of-date caches. Running {{ic|sudo eclipse -clean}} once should clear them. If the problem persists, uninstall eclipse and all the plugins, delete {{ic|/usr/share/eclipse}}, and reinstall everything.<br />
}}<br />
<br />
==== Netbeans ====<br />
<br />
If you prefer using [[Netbeans]] as your IDE and want to develop Android applications, download the [http://www.nbandroid.org NBAndroid] by going to:<br />
<br />
Tools -> Plugins -> Settings<br />
<br />
Add the following URL: http://nbandroid.org/release81/updates/updates.xml<br />
<br />
Then go to '''Available Plugins''' and install the '''Android''' and '''JUnit''' plugins. Once you have installed go to:<br />
<br />
Tools -> Options -> Miscellaneous -> Android<br />
<br />
and select the path where the SDK is installed (/opt/android-sdk by default). That is it, now you can create a new Android project and start developing using Netbeans.<br />
<br />
=== Connecting to a real device - Android Debug Bridge (ADB) ===<br />
<br />
{{Tip|For some devices, you may have to enable MTP on the device, before ADB will work. Some other devices require enable PTP mode to work.}}<br />
<br />
To get ADB to connect to a real device or phone under Arch, you must:<br />
<br />
* Install {{Pkg|android-tools}}.<br />
* Enable USB Debugging on your phone or device:<br />
** Jelly Bean (4.2) and newer: Go to {{ic|Settings --> About Phone}} tap “Build Number” until you get a popup that you have become a developer (about 10 times). Then go to {{ic|Settings --> Developer --> USB debugging}} and enable it.<br />
** Older versions: This is usually done from {{ic|Settings --> Applications --> Development --> USB debugging}}. Reboot the phone after checking this option to make sure USB debugging is enabled.<br />
* install {{Pkg|android-udev}} to connect the device to the proper {{ic|/dev/}} entries.<br />
* Add yourself to the ''adbusers'' group. ({{ic|gpasswd -a ''username'' adbusers}})<br />
<br />
If [[#Does it work?|ADB recognizes your device]] (it is visible and accessible in IDE), you are done. Otherwise see instructions below.<br />
<br />
==== Figure out device IDs ====<br />
<br />
Each Android device has a USB vendor/product ID. An example for HTC Evo is:<br />
<br />
vendor id: 0bb4<br />
product id: 0c8d<br />
<br />
Plug in your device and execute:<br />
<br />
$ lsusb<br />
<br />
It should come up something like this:<br />
<br />
Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.<br />
<br />
==== Adding udev Rules ====<br />
<br />
Use the rules from [http://source.android.com/source/initializing.html#configuring-usb-access Android developer] or you can use the following template for your udev rules, just replace [VENDOR ID] and [PRODUCT ID] with yours. Copy these rules into {{ic|/etc/udev/rules.d/51-android.rules}}:<br />
<br />
{{hc|/etc/udev/rules.d/51-android.rules|2=<nowiki>SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0666", GROUP="adbusers"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"<br />
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"</nowiki>}}<br />
<br />
Then, to reload your new udev rules, execute:<br />
# udevadm control --reload-rules<br />
<br />
==== Configuring adb ====<br />
<br />
Instead of using udev rules, you may create/edit {{ic|~/.android/adb_usb.ini}} which contains a list of vendor IDs.<br />
<br />
$ cat ~/.android/adb_usb.ini <br />
0x27e8<br />
<br />
==== Does it work? ====<br />
<br />
After you have setup the udev rules, unplug your device and replug it.<br />
<br />
After running:<br />
<br />
$ adb devices<br />
<br />
you should see something like:<br />
<br />
List of devices attached <br />
HT07VHL00676 device<br />
<br />
You can now use adb to transfer files between the device and your computer. To transfer files to the device, use<br />
$ adb push ''<what-to-copy>'' ''<where-to-place>''<br />
<br />
To transfer files from the device, use<br />
$ adb pull ''<what-to-pull>'' ''<where-to-place>''<br />
<br />
If you do not have the '''adb''' program, it means you have installed neither [[#Android SDK platform API|platform tools]](usually available in {{Ic|/opt/android-sdk/platform-tools/}}) nor {{Pkg|android-tools}}(available in {{Ic|/usr/bin/}}).<br />
<br />
If you are getting an empty list (your device is not there), it may be because you have not enabled USB debugging on your device. You can do that by going to Settings => Applications => Development and enabling USB debugging. On Android 4.2 (Jelly Bean) the Development menu is hidden; to enable it go to Settings => About phone and tap Build number 7 times.<br />
<br />
If there are still problems such as ''adb'' displaying {{ic|???????? no permissions}} under devices, try restarting the adb server as root.<br />
# adb kill-server<br />
# adb start-server<br />
<br />
=== NVIDIA Tegra platform ===<br />
<br />
If you target your application at NVIDIA Tegra platform, you might also want to install tools, samples and documentation provided by NVIDIA. In [http://developer.nvidia.com/category/zone/mobile-development NVIDIA Developer Zone for Mobile] there are two tools: <br />
<br />
# The [http://developer.nvidia.com/tegra-resources Tegra Android Development Pack] provides tools (NVIDIA Debug Manager) related to [http://developer.android.com/sdk/eclipse-adt.html Eclipse ADT] and their documentation. <br />
# The [http://developer.nvidia.com/tegra-resources Tegra Toolkit] provides tools (mostly CPU and GPU optimization related), samples and documentation. <br />
<br />
Both are currently not available in the [[AUR]] anymore, because NVIDIA requires a registration/login for the download.<br />
<br />
== Building Android ==<br />
<br />
Please note that these instructions are based on the [http://source.android.com/source/building.html official AOSP build instructions]. Other Android-derived systems such as CyanogenMod will often require extra steps.<br />
<br />
=== OS bitness ===<br />
<br />
Android 2.2.x (Froyo) and below are the only versions of Android that will build on a 32-bit system. For 2.3.x (Gingerbread) and above, you will need a 64-bit installation. <br />
<br />
=== Required packages ===<br />
<br />
To build any version of Android, you need to install these packages:<br />
<br />
* 32-bit and 64-bit systems: {{Pkg|gcc}} {{Pkg|git}} {{Pkg|gnupg}} {{Pkg|flex}} {{Pkg|bison}} {{Pkg|gperf}} {{Pkg|sdl}} {{Pkg|wxgtk}} {{Pkg|squashfs-tools}} {{Pkg|curl}} {{Pkg|ncurses}} {{Pkg|zlib}} {{Pkg|schedtool}} {{Pkg|perl-switch}} {{Pkg|zip}} {{Pkg|unzip}} {{Pkg|libxslt}} {{Pkg|python2-virtualenv}} {{Pkg|bc}} <br />
<br />
* 64-bit systems only: {{Pkg|gcc-multilib}} {{Pkg|lib32-zlib}} {{Pkg|lib32-ncurses}} {{Pkg|lib32-readline}}<br />
<br />
* AUR Packages: {{Aur|libtinfo}}<br />
<br />
{{Note|You must now also install {{Aur|lib32-ncurses5-compat-libs}} since ncurses was updated to ncurses6 and android's prebuilt clang still depends on ncurses5. You can check what libs are still needed:<br />
<br />
{{ic|ldd prebuilts/clang/linux-x86/host/3.6/bin/clang}} and {{ic|`ldd prebuilts/clang/linux-x86/host/3.6/bin/clang}}<br />
}}<br />
<br />
=== Java Development Kit ===<br />
<br />
Android 5 (Lollipop) can be built with {{Pkg|jdk7-openjdk}}.<br />
<br />
Older versions [http://source.android.com/source/initializing.html require] a working '''Oracle JDK''' installed on your build system. It '''will not''' work with OpenJDK.<br />
*For Gingerbread through KitKat (2.3 - 4.4), Java 6 is required, which is available as {{AUR|jdk6}} from the AUR. See [[Java]] if you want to use it besides another (newer) JDK version.<br />
*For Cupcake through Froyo (1.5 - 2.2), Java 5 is required, which is no longer available for Arch Linux.<br />
<br />
=== Setting up the build environment ===<br />
<br />
Download the {{ic|repo}} utility per [https://source.android.com/source/downloading.html Android Downloading the Source guide].<br />
<br />
$ mkdir ~/bin<br />
$ export PATH=~/bin:$PATH<br />
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo<br />
$ chmod a+x ~/bin/repo<br />
<br />
Create a directory to build.<br />
<br />
$ mkdir ~/android<br />
$ cd ~/android<br />
<br />
You will need to change the default Python from version 3 to version 2:<br />
<br />
$ virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv<br />
<br />
{{Note|During build you may receive error pertaining to missing python modules. A quick and dirty fix is to symlink /usr/lib/python2.7/* to ~/android/venv/python2.7/ (Change ~/android to reflect your build directory if different than above).<br />
Example:<br />
$ ln -s /usr/lib/python2.7/* /Data/Android_Build/venv/lib/python2.7/<br />
}}<br />
Activate the Virtualenv, which will update $PATH to point at Python 2.<br />
<br />
{{Note|this activation is only active for the current terminal session.<br />
}}<br />
<br />
$ source venv/bin/activate<br />
<br />
=== Downloading the source code ===<br />
<br />
This will clone the repositories. You '''only''' need to do this the first time you build Android, or if you want to switch branches.<br />
<br />
* The {{ic|repo}} has a {{ic|-j}} switch that operates similarly to the one used with {{ic|make}}. Since it controls the number of simultaneous downloads, you should adjust the value depending on downstream network bandwidth.<br />
<br />
* You will need to specify a '''branch''' (release of Android) to check out with the {{ic|-b}} switch. If you leave the switch out, you will get the so-called '''master branch'''.<br />
<br />
$ repo init -u https://android.googlesource.com/platform/manifest -b master<br />
$ repo sync -j4<br />
<br />
{{Note|To further decrease sync times, you can utilize the -c switch with the repo command as such:<br />
$ repo sync -j8 -c<br />
The {{ic|-c}} switch will only sync the branch which is specified in the manifest, which in turn is determined by the branch specified with the {{ic|-b}} switch, or the default branch set by the repository maintainer.<br />
}}<br />
<br />
Wait a long time. Just the uncompiled source code, along with the {{ic|.repo}} and {{ic|.git}} directories that are used to keep track of it, are well over 10 GB.<br />
<br />
{{Note|If you want to update your local copy of the Android source, at a later time, simply enter the build directory, load the Virtualenv, and re-sync:<br />
$ repo sync<br />
}}<br />
<br />
=== Building the code ===<br />
<br />
This should do what you need for AOSP:<br />
<br />
$ source build/envsetup.sh<br />
$ lunch full-eng<br />
$ make -j4<br />
<br />
If you run '''lunch''' without arguments, it will ask what build you want to create. Use -j with a number between one and two times number of cores/threads.<br />
<br />
The build takes a very long time.<br />
<br />
{{Note|Make sure you have enough RAM.<br />
Android will use the /tmp directory heavily. By default the size of the partition the /tmp folder is mounted on is half the size of your RAM. If it fills up, the build will fail. 4GB of RAM or more is recommended.<br />
* Alternatively, you can get rid of the tmpfs from [[fstab]] all together. <br />
}}<br />
<br />
{{Note|From the [https://source.android.com/source/building-running.html#build-the-code Android Building and Running guide]:<br />
<br />
"GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32."<br />
<br />
}}<br />
=== Testing the build ===<br />
<br />
When finished, run/test the final image(s).<br />
<br />
$ emulator<br />
<br />
=== Creating a Flashable Image ===<br />
To create an image that can be flashed it is necessary to:<br />
<br />
make -j8 updatepackage<br />
<br />
This will create a zip image under '''out/target/product/hammerhead''' (hammerhead being the device name) that can be flashed.<br />
<br />
== Restoring Android ==<br />
<br />
{{Expansion}}<br />
<br />
In some cases, you want to return to the stock Android after flashing custom ROMs to your Android mobile device. For flashing instructions of your device, please use [http://forum.xda-developers.com/ XDA forums].<br />
<br />
=== Fastboot ===<br />
<br />
Fastboot (as well as [[#Connecting_to_a_real_device_-_Android_Debug_Bridge_.28ADB.29|ADB]]) comes together with a package {{Pkg|android-tools}} from the [[official repositories]].<br />
<br />
{{Note|Restoring firmwares using {{ic|fastboot}} can be quite tricky, but you might want to browse [http://www.xda-developers.com/ XDA developers forums] for a stock firmware, which is mostly a {{ic|*.zip}} file, but inside of it, comes with the firmware files and {{ic|flash-all.sh}} script. For example, [https://developers.google.com/android/nexus/images Google Nexus] firmwares include {{ic|flash-all.sh}} script or another example could be for OnePlus One - [http://forum.xda-developers.com/oneplus-one/general/guide-return-opo-to-100-stock-t2826541 XDA thread], where you can find firmwares with included {{ic|flash-all.sh}} script.}}<br />
<br />
=== Samsung ===<br />
<br />
Samsung does not support fastboot in any way. Using Odin is safer, easier and more popular than Heimdall, but it is up to you.<br />
<br />
==== Heimdall ====<br />
<br />
[http://glassechidna.com.au/heimdall/ Heimdall] is a cross-platform open-source tool suite used to flash firmware (also known as ROMs) onto Samsung mobile devices and is also known as an alternative to [http://odindownload.com/ Odin]. It can be installed as {{Pkg|heimdall}} or {{AUR|heimdall-git}}.<br />
<br />
The flashing instructions can be found on Heimdall's [https://github.com/Benjamin-Dobell/Heimdall/tree/master/Linux GitHub page] or on [http://forum.xda-developers.com/showthread.php?t=1922461 XDA forums].<br />
<br />
==== Odin (Virtualbox) ====<br />
<br />
It is also possible to restore stock Android on the Samsung devices using [http://odindownload.com/ Odin], but inside the [[VirtualBox]]. For more information, see [http://forum.xda-developers.com/showthread.php?t=758634 XDA thread].<br />
<br />
Arch Linux related steps:<br />
# Install [[VirtualBox]] together with its [[VirtualBox#Extension_pack|extension pack]]. Optionally, install [[VirtualBox#Guest_additions_disc|guest additions]].<br />
# Install your preferred, but compatible with Odin, Windows operating system into a virtual hard drive using VirtualBox. Optionally, install guest additions to the Windows operating system.<br />
# Open VirtualBox settings of your Windows operating system, navigate to '''USB''', then tick (or make sure it is ticked) '''Enable USB 2.0 (EHCI) Controller'''.<br />
# At VirtualBox running Windows operating system, click in the menu bar '''Devices''', then '''USB Devices''', then click on your Samsung mobile device connected to your computer via USB.<br />
<br />
Windows related links:<br />
# Samsung drivers can be downloaded from [http://androidxda.com/download-samsung-usb-drivers here].<br />
# Odin can be downloaded from [https://www.androidfilehost.com/?fid=23501681358557126 here].<br />
# Samsung Android firmwares can be downloaded from [http://www.sammobile.com/firmwares/ here].<br />
<br />
If you want to make sure that everything is working and ready, connect your Samsung device turned on into a Download mode, and open Odin. The white box (a big one at the bottom-left) named '''Message''', should print a line similar to this:<br />
<ID:0/003> Added!!<br />
which means that your device is visible to Odin and is ready to be flashed.<br />
<br />
{{Note|There are no general instructions of restoring stock firmware on Samsung mobile devices. You have to use [https://www.google.com Google] and [http://www.xda-developers.com XDA developers forums] to find a flashing instructions for specific device. For example, this is how the [http://goo.gl/cZLyF8 thread] about the Samsung Galaxy S4 looks like}}<br />
<br />
== Alternative connection methods ==<br />
<br />
=== adb-sync ===<br />
<br />
[https://github.com/google/adb-sync adb-sync] (available in {{AUR|adb-sync-git}}) is a tool to synchronize files between a PC and an Android device using the ADB<br />
<br />
=== AirDroid ===<br />
<br />
[http://goo.gl/EZQ9GQ AirDroid] is an Android app to access files from your web browser.<br />
<br />
=== FTP ===<br />
<br />
You run a FTP server on Arch and connect to it from your phone, or the other way around: run a FTP server on your phone and connect to it from Arch.<br />
<br />
See [[List of applications/Internet#FTP]]. There are a lot of FTP clients/servers available for Android.<br />
<br />
=== SSH Server ===<br />
<br />
There are many SSH servers available for Android, it allows you to transfer files using {{ic|scp}} command. See also [[SSH]].<br />
<br />
=== Samba ===<br />
<br />
See [[Samba]].<br />
<br />
== Tips & Tricks ==<br />
<br />
=== During Debugging "Source not found" ===<br />
<br />
Most probably the debugger wants to step into the Java code. As the source code of Android does not come with the Android SDK, this leads to an error. The best solution is to use step filters to not jump into the Java source code. Step filters are not activated by default. To activate them: <br />
Window -> Preferences -> Java -> Debug -> Step Filtering<br />
Consider to select them all. If appropriate you can add the android.* package. See the forum post for more information: http://www.eclipsezone.com/eclipse/forums/t83338.rhtml<br />
<br />
=== Linux distribution on the sdcard ===<br />
<br />
You can install Debian like in this [http://forum.xda-developers.com/showthread.php?t=631389 thread]. Excellent guide to installing Arch in chroot (in parallel with Android) can be found on [http://archlinuxarm.org/forum/viewtopic.php?f=27&t=1361&start=40 archlinuxarm.org forum].<br />
<br />
== Troubleshooting ==<br />
<br />
=== aapt: No such file or directory ===<br />
<br />
The build tools include 32-bit binaries. For this reason they require 32-bit libraries. If you happened to install the SDK manually, you will additionally need to install<br />
'''multilib/lib32-libstdc++5''' and '''multilib/lib32-zlib'''.<br />
<br />
=== ValueError: unsupported pickle protocol ===<br />
<br />
One fix is to issue:<br />
<br />
rm ~/.repopickle_.gitconfig<br />
<br />
If that does not work, then try this:<br />
<br />
rm `find /path/to/android-root -name .repopickle_config`</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=389586Lenovo ThinkPad Edge E4402015-08-01T15:15:14Z<p>Aouellette: </p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Graphics || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Freezing on resume ===<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
=== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ===<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
=== Blinking power LED after resume from suspend ===<br />
This is not a real problem, but can be annoying and has a very simple solution:<br />
<br />
# echo "0 on" > /proc/acpi/ibm/led<br />
<br />
For automation, create a script depending on the used [[power management]] tool.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=382494Lenovo ThinkPad Edge E4402015-07-17T01:56:37Z<p>Aouellette: /* Blinking power LED after resume from suspend */ fixed script to use systemd</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
==== Blinking power LED after resume from suspend ====<br />
This is not a real problem, but can be annoying and has a very simple solution. Put the following in {{ic|/lib/systemd/system-sleep/}}:<br />
<br />
#!/bin/bash<br />
# /lib/systemd/system-sleep/led-fix.sh<br />
# <br />
case $1/$2 in <br />
pre/*)<br />
exit 0;;<br />
post/*) <br />
echo '0 on' > /proc/acpi/ibm/led;;<br />
esac<br />
<br />
Don't forget to make the script executable.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=382310Lenovo ThinkPad Edge E4402015-07-16T01:16:42Z<p>Aouellette: /* Blinking power LED after resume from suspend */</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
==== Blinking power LED after resume from suspend ====<br />
This is not a real problem, but can be annoying and has a very simple solution. Put the following in {{ic|/etc/pm/sleep.d}}:<br />
<br />
#!/bin/bash<br />
# /etc/pm/sleep.d/00ledfix.sh<br />
# <br />
case $1 in <br />
resume) echo '0 on' > /proc/acpi/ibm/led;;<br />
esac<br />
<br />
Don't forget to make the script executable.<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=382307Lenovo ThinkPad Edge E4402015-07-16T01:15:40Z<p>Aouellette: added fix for blinking power led after resume</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
==== Blinking power LED after resume from suspend ====<br />
This is not a real problem, but can be annoying and has a very simple solution. Put the following in {{ic|/etc/pm/sleep.d}}:<br />
<br />
#!/bin/bash<br />
# /etc/pm/sleep.d/00ledfix.sh<br />
# <br />
case $1 in <br />
resume) echo '0 on' > /proc/acpi/ibm/led;;<br />
esac<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=User:Aouellette&diff=378278User:Aouellette2015-06-12T19:42:56Z<p>Aouellette: </p>
<hr />
<div>== My Computers Running Arch ==<br />
<br />
Lenovo Thinkpad E440 with Intel Core i5 @ 2.50 GHz and 4GB RAM<br />
<br />
Hopefully more comming soon ...<br />
<br />
<br />
== ==<br />
My dotfiles: https://github.com/aouelete/dotfiles</div>Aouellettehttps://wiki.archlinux.org/index.php?title=I3&diff=377905I32015-06-08T17:52:54Z<p>Aouellette: /* i3status */</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:Tiling WMs]]<br />
[[Category:Dynamic WMs]]<br />
[[ja:i3]]<br />
[[ko:i3]]<br />
[[ru:i3]]<br />
[[zh-CN:i3]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|File manager functionality}}<br />
{{Related|Window manager}}<br />
{{Related|Comparison of tiling window managers}}<br />
{{Related|Clipboard}}<br />
{{Related|Autostarting#Graphical}}<br />
{{Related articles end}}<br />
<br />
[http://i3wm.org/ i3] is a dynamic [[Wikipedia:Tiling window manager|tiling window manager]] inspired by [[wmii]] that is primarily targeted at developers and advanced users.<br />
<br />
The stated goals for i3 include clear documentation, proper multi-monitor support, a tree structure for windows, and different modes like in [[vim]].<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] the {{Grp|i3}} [[Pacman#Installing package groups|package group]] from the [[official repositories]]. It includes the window manager {{Pkg|i3-wm}}, {{Pkg|i3status}} which writes a status line to i3bar through [[Wikipedia:Standard streams#Standard output (stdout)|stdout]], and {{Pkg|i3lock}}, a screen locker.<br />
<br />
Additional packages are available in the [[Arch User Repository]]. See the section [[#Patches]] for examples.<br />
<br />
=== Display manager ===<br />
<br />
{{Pkg|i3-wm}} includes {{ic|i3.desktop}} as [[Xsession]] which starts the window manager. {{ic|i3-with-shmlog.desktop}} enables logs (useful for debugging). {{AUR|i3-gnome}} integrates {{ic|i3}} into [[GNOME]].<br />
<br />
=== xinitrc ===<br />
<br />
Edit [[Xinitrc]], and add:<br />
<br />
exec i3<br />
<br />
To log the output from i3, add this line instead:<br />
<br />
exec i3 -V >> ~/i3log-$(date +'%F-%k-%M-%S') 2>&1<br />
<br />
Nvidia binary drivers before version '''302.17''' need the {{ic|--force-xinerama}} flag. A detailed explanation can be found at [http://i3wm.org/docs/multi-monitor.html i3wm.org].<br />
<br />
exec i3 --force-xinerama<br />
<br />
If you have trouble mapping keys (e.g. {{ic|;}} as semicolon), use {{Pkg|xorg-xev}} or see [[Extra keyboard keys]].<br />
<br />
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'<br />
<br />
== Usage ==<br />
<br />
See the [http://i3wm.org/docs official documentation] for more information, namely the [http://i3wm.org/docs/userguide.html i3 User’s Guide].<br />
<br />
=== Application launcher ===<br />
<br />
i3 uses [[dmenu]] as an application launcher, which is bound by default to {{ic|$mod+d}}. As an alternative, one can use {{AUR|dmenu2}} from the AUR which has many more features including transparency and support for xft fonts.<br />
<br />
{{Pkg|i3-wm}} contains ''i3-dmenu-desktop'', a [[Wikipedia:Perl|Perl]] wrapper for ''dmenu'' which uses [[desktop entries]] to create a list of all installed applications. Alternatively, the package {{AUR|j4-dmenu-desktop-git}} can be used; it is a near-drop-in replacement for ''i3-dmenu-desktop'', but much faster[[https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md 1]].<br />
<br />
=== Keybindings ===<br />
<br />
In i3, commands are invoked with a modifier key, referred to as {{ic|$mod}}. This is {{ic|Alt}} (Mod1) by default, with {{ic|Super}} (Mod4) being a popular alternative.<br />
<br />
See the [http://i3wm.org/docs/refcard.html i3 reference card] and [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] for the defaults. See [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] to add new shortcuts.<br />
<br />
=== Containers ===<br />
<br />
{{Expansion|The User's guide explains basic use of containers, yet is not sufficiently clear to allow more advanced use cases. It also does not mention ''focus child'' as it does ''focus parent''. See also: [https://faq.i3wm.org/question/222/how-to-get-rid-of-another-container/], [https://github.com/i3/i3/issues/1326]}}<br />
<br />
i3 manages windows in a tree structure, with containers as building blocks. This structure branches with horizontal or vertical splits. Containers are tiled by default, but can be set to tabbed or stacked layouts, as well as made floating (such as for dialog windows). Floating windows are always on top.<br />
<br />
See [http://i3wm.org/docs/userguide.html#_tree i3 Tree] and [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] for details.<br />
<br />
== Configuration ==<br />
<br />
See [http://i3wm.org/docs/userguide.html#configuring Configuring i3] for details. The rest of this article assumes the ''i3'' configuration file to be in the folder {{ic|~/.config}}.<br />
<br />
=== Colorschemes ===<br />
<br />
The configuration file allows for customization of window decoration colors, but the syntax makes it impractical to create or share themes. There are several projects which make this easier and include a variety of user-contributed themes.<br />
<br />
* {{App|i3-style|Modifies your config in place from a theme stored in a JSON object, designed for frequently tweaking or changing a colorscheme|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}}<br />
* {{App|j4-make-config|Merge your config with a collection of themes or personal config parts, for example host-specific configuration, allowing quick changing of the theme and flexible, dynamic customization of the configuration|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}<br />
<br />
=== i3bar ===<br />
<br />
In addition to showing workspace information, i3bar can act as an input for i3status or an alternative, such as those mentioned in the next section. For example:<br />
<br />
{{hc|~/.config/i3/config|2=<br />
bar {<br />
output LVDS1<br />
status_command i3status<br />
position top<br />
mode hide<br />
workspace_buttons yes<br />
tray_output none<br />
<br />
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1<br />
<br />
colors {<br />
background #000000<br />
statusline #ffffff<br />
<br />
focused_workspace #ffffff #285577<br />
active_workspace #ffffff #333333<br />
inactive_workspace #888888 #222222<br />
urgent_workspace #ffffff #900000<br />
}<br />
}<br />
}}<br />
<br />
See the [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] for details.<br />
<br />
==== i3bar alternatives ====<br />
<br />
Some users may prefer panels such as those provided by conventional [[Desktop environment|Desktop Environments]]. This can be achieved within i3 by launching the panel application of choice during startup.<br />
<br />
For the [[Xfce#Panel|XFCE panel]], add the following line anywhere in {{ic|~/.config/i3/config}}:<br />
<br />
exec --no-startup-id xfce4-panel --disable-wm-check<br />
<br />
Alternatively if using {{ic|startx}}, this can be done in your [[xinitrc]]:<br />
<br />
{{hc|~/.xinitrc|<br />
xfce4-panel --disable-wm-check &<br />
}}<br />
<br />
{{Accuracy|i3 is [[Wikipedia:Extended_Window_Manager_Hints|NETWM]] compliant, so workspace management from external panels should usally work. See also [http://i3wm.org/docs/wsbar.html]}}<br />
<br />
{{Note|Panel features that are specific to the [[Desktop environment]] (e.g., widgets for managing workspaces/sessions) will most likely not work, though i3's functionality should remain unaffected.}}<br />
<br />
i3bar can be disabled by commenting out the {{ic|<nowiki>bar{ }</nowiki>}} section of {{ic|~/.config/i3/config}} or using: <br />
<br />
{{hc|~/.config/i3/config|<br />
# bar toggle, hide or show <br />
bindsym $mod+m bar mode toggle<br />
}}<br />
This way you can show or hide bar as you want.<br />
<br />
=== i3status ===<br />
<br />
Copy over the default configuration files to the home directory:<br />
<br />
$ cp /etc/i3status.conf ~/.i3status.conf<br />
<br />
Not all plugins are defined in the default configuration, see {{ic|man 1 i3status}} for details.<br />
<br />
{{Note|The example configuration file uses {{ic|eth0}} and {{ic|wlan0}} as interface names, see [[Network configuration#Device names]] if they do not match with your system. See {{ic|man i3status}} for other possible mismatches, such as the battery path.}}<br />
<br />
==== i3status replacements ====<br />
<br />
* {{App|[[conky]]| Highly extensible system monitor. For usage with i3bar see [http://i3wm.org/docs/user-contributed/conky-i3bar.html this tutorial] |http://conky.sourceforge.net/|{{Pkg|conky}}}}<br />
* {{App|i3blocks|Extensible via shell scripts. It can handle click events, interrupts, and defining of refresh intervals on a per-block basis.|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}}<br />
* {{App|i3pystatus|Extensible Python 3 status bar with many plugins and configuration options by default.|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}<br />
* {{App|i3situation|Another Python 3 status bar generator.|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}<br />
* {{App|j4status|Provides a statusline, configurable via plugins, and written in C.|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}<br />
<br />
==== i3status wrappers ====<br />
<br />
* {{App|[[h2status]]|Bash wrapper for i3status that allows custom json entries as input, and can handle click events as well as asynchronous updates of the status bar.|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}}<br />
* {{App|i3cat|A [[go]] based wrapper which can concatenate inputs from multiple external sources. It can handle click events and forwarding user specified signals to its subprocesses.|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}<br />
* {{App|py3status|An extensible i3status wrapper written in Python.|https://github.com/ultrabug/py3status|{{Aur|py3status}}}}<br />
<br />
==== Iconic fonts in the status bar ====<br />
<br />
''i3bar'' can be [[#Patches|patched]] for XBM icon support, but you can use iconic font sets instead.<br />
<br />
* {{App|ttf-font-awesome|Scalable vector icons that can be customized with CSS. A [http://fortawesome.github.io/Font-Awesome/cheatsheet/ cheatsheet] shows the Unicode point for each glyph.|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}}<br />
* {{App|ttf-font-icons|Non-overlapping and consistently sized mix of Awesome and Ionicons. This also avoids minor overlapping between DejaVu Sans and Awesome.|https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf|{{AUR|ttf-font-icons}}}}.<br />
<br />
To combine fonts, define a font fallback sequence in your configuration file, separating fonts with {{ic|,}} like so:<br />
{{hc|~/.config/i3/config|2=<br />
bar {<br />
...<br />
font pango:DejaVu Sans Mono, Icons 8<br />
...<br />
}<br />
}}<br />
<br />
In accordance with [https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax], font size is specified only once, at the end of the comma-separated list of font families. Setting a size for each font would cause all but the last font to be ignored.<br />
<br />
Add icons to the format strings in {{ic|~/.config/i3status/config}} using the unicode numbers given in the cheatsheets linked above. The input method will vary between text editors. For instance, to insert the "heart" icon (unicode number f004):<br />
<br />
{{Merge|Internationalization|Should be described in one place; see also [[ArchWiki:Requests#Input methods]].}}<br />
<br />
* in various gui text editors (e.g. [[gedit]], Leafpad) and terminals (e.g. GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}<br />
* in [[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}<br />
* in [[Vim]] (while in insert mode): {{ic|Ctrl+v}}, {{ic|uf004}}<br />
* in [[urxvt]]: while holding {{ic|Ctrl+Shift}}, type {{ic|f004}}<br />
<br />
=== Terminal emulator ===<br />
<br />
By default when pressing {{ic|$mod+Return}} it launches the {{ic|i3-sensible-terminal}} which is a script that invokes a terminal. See {{ic|man i3-sensible-terminal}} for the order terminals are invoked in.<br />
<br />
To instead launch a terminal of choice, modify this line in {{ic|~/.config/i3/config}}:<br />
<br />
bindsym $mod+Return exec i3-sensible-terminal<br />
<br />
Alternatively, [[Environment_variable#Defining_variables_locally|locally define]] the {{ic|$TERMINAL}} variable:<br />
<br />
$ export TERMINAL=''yourterminal''<br />
<br />
== Tips and tricks ==<br />
<br />
=== Advanced window navigation ===<br />
<br />
See [http://www.slackword.net/?p=657 i3 window Navigation Tips].<br />
<br />
=== Jump to open window ===<br />
<br />
*{{App|quickswitch-i3|Python utility to quickly change to and locate windows in i3|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}}<br />
*{{App|i3-wm-scripts|search for and jump to windows with particular names matching regexp|https://github.com/yiuin/i3-wm-scripts||}}<br />
*{{App|winmenupy|Launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window.|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}<br />
*{{App|rofi|Search and jump to open and scratchpad window|https://davedavenport.github.io/rofi/|{{Aur|rofi}}}}<br />
<br />
=== Jump to urgent window ===<br />
<br />
Add to {{ic|.i3/config}}: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]<br />
<br />
bindsym $mod+x [urgent=latest] focus<br />
<br />
=== Save and restore the window layout ===<br />
<br />
From version 4.8, and onward ''i3'' can save and restore workspace layouts. To do this, the following packages are needed: {{Pkg|perl-anyevent-i3}} and {{Pkg|perl-json-xs}} from the [[official repositories]].<br />
<br />
{{note| This section only provides quick tutorial on how to save the current window layout of a single workspace and how to restore it for later use. Refer to the [http://i3wm.org/docs/layout-saving.html official documentation] for more details}}<br />
<br />
==== Save the current window layout of a single workspace ====<br />
<br />
To save the current window layout, follow these steps:<br />
<br />
# First, execute various commands to open windows in a preferred workspace and resize them if needed. Make sure to write down each executed command for each window.<br />
# Now, in a new workspace, open a terminal and run the following: {{bc|i3-save-tree --workspace N > ~/.i3/workspace_N.json}} where N is the number of the preferred workspace. This will save the current layout of workspace N to the file {{ic|~/.i3/workspace_N.json}}.<br />
# The newly created file needs to be edited, however this may be done with the following commands: {{bc|<nowiki>tail -n +2 ~/.i3/workspace_N.json | fgrep -v '// splitv' | sed 's|//||g' > ~/.i3/workspace_N.json</nowiki>}}<br />
<br />
==== Restore the window layout of the workspace ====<br />
<br />
There are two ways to restore the layout of the workspace: by writing a script, or by editing {{ic|~/.i3/config}} to automatically load the layout. In this section only the first case will be considered, refer to the [http://i3wm.org/docs/layout-saving.html#_restoring_the_layout official documentation] for the second case.<br />
<br />
To restore the saved layout in the previous section, write a file named {{ic|load_layout.sh}} with the following contents:<br />
<br />
* The starting lines: {{bc|<nowiki><br />
~/#!/bin/bash<br />
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"<br />
</nowiki>}} where M is the number of the workspace in which you would like to load the previously saved layout and N is the number of workspace saved in the previous section.<br />
* And the commands used in the previous section to get the preferred windows, but enclosed in parentheses and with an ampersand appended before the last parentheses.<br />
<br />
For example, if the saved layout contained three {{ic|uxterm}} windows:<br />
<br />
{{hc|head=~/load_layout.sh|output=<br />
#!/bin/bash<br />
<br />
# First we append the saved layout of worspace N to workspace M<br />
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"<br />
<br />
# And finally we fill the containers with the programs they had<br />
(uxterm &)<br />
(uxterm &)<br />
(uxterm &)<br />
}}<br />
<br />
Then set the file as executable:<br />
<br />
chmod u+x ~/load_layout.sh<br />
<br />
And finally, the layout of worskpace N can be loaded onto to workspace M by running:<br />
<br />
~/load_layout.sh<br />
<br />
{{tip|Adding {{ic|bindsym $mod+g exec ~/load_layout.sh}} to {{ic|~/.i3/config}} and restarting i3 will bind Mod+g to run the above script.}}<br />
<br />
{{note|If the above script does not work properly, refer to the [http://i3wm.org/docs/layout-saving.html#_editing_layout_files official documentation]. The ''swallows'' sections of {{ic|~/.i3/workspace_N.json}} needs to be manually edited.}}<br />
<br />
=== Scratchpad containers ===<br />
<br />
By default, [http://i3wm.org/docs/userguide.html#_scratchpad scratchpads] only contain a single window. However, containers can also be made a scratchpad.<br />
<br />
Create a new container (for example, {{ic|Mod+Enter}}), split it ({{ic|Mod+v}}) and create another container. Focus the parent ({{ic|Mod+a}}), split in the opposite direction ({{ic|Mod+h}}), and create again. <br />
<br />
Focus the first container (with focus parent as needed), make the window floating ({{ic|Mod+Shift+Space}}), and move it to the scratchpad ({{ic|Mod+Shift+-}}). You can now split containers to preference.<br />
<br />
{{Note|Containers cannot be resized individually in floating windows. Resize the containers before making windows floating.}}<br />
{{Tip|When only using terminal applications, consider a multiplexer such as [[tmux]] instead.}}<br />
<br />
See also [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] for multiple scratchpads.<br />
<br />
=== Screensaver and power management ===<br />
<br />
You can use [[DPMS]] to blank your screen or to suspend/poweroff your monitor. Adding the following line to your {{ic|~/.config/i3/config}} will suspend your monitor after 10 minutes.<br />
<br />
exec --no-startup-id xset dpms 600<br />
<br />
With {{AUR|xss-lock-git}} you can register a screenlocker for your i3 session. xss-lock subscribes to the systemd-events {{ic|suspend}}, {{ic|hibernate}}, {{ic|lock-session}}, and {{ic|unlock-session}} with appropriate actions (run locker and wait for user to unlock or kill locker). It also reacts to the [[Display Power Management Signaling#xset screen-saver control|X screensaver]] and runs or kills the locker in response to the x-server signals. Start xss-lock in your autostart like this:<br />
<br />
xss-lock -- i3lock -i ''background_image.png'' &<br />
<br />
Additionally, you can use {{Pkg|xautolock}} to lock the screen after a given time period:<br />
<br />
xautolock -time 10 -locker "i3lock -i ''background_image.png''" &<br />
<br />
See also [[#Shutdown, reboot, lock screen]] and [[Pm-utils#Creating your own hooks]].<br />
<br />
=== Shutdown, reboot, lock screen ===<br />
<br />
As there are no Shutdown, Reboot, or Lock Screen buttons, we can add some hotkey combinations to help us out. The below assumes you have {{Pkg|polkit}} installed to allow unprivileged users to run [[systemd#Power_management|power management]] commands.<br />
<br />
Add the following lines to your {{ic|~/.config/i3/config}} Once completed you will be presented with a prompt whenever you press {{ic|$mod+pause}}.<br />
<br />
{{bc|<br />
set $Locker i3lock && sleep 1<br />
<br />
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown<br />
mode "$mode_system" {<br />
bindsym l exec --no-startup-id $Locker, mode "default"<br />
bindsym e exec --no-startup-id i3-msg exit, mode "default"<br />
bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"<br />
bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"<br />
bindsym r exec --no-startup-id systemctl reboot, mode "default"<br />
bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" <br />
<br />
# back to normal: Enter or Escape<br />
bindsym Return mode "default"<br />
bindsym Escape mode "default"<br />
}<br />
<br />
bindsym $mod+Pause mode "$mode_system"<br />
}}<br />
<br />
{{Note|1=<br><br />
* {{ic|sleep 1}} adds a small delay to prevent possible race conditions with suspend [https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]<br />
* The {{ic|-i}} argument for {{ic|systemctl poweroff}} causes a shutdown even if other users are logged-in (this requires {{Pkg|polkit}}) or when ''logind'' (wrongly) assumes so. [https://bugs.freedesktop.org/show_bug.cgi?id=62676]<br />
* If you use {{AUR|xss-lock-git}}, call {{ic|xset s activate}} to start the locker. With {{Pkg|xautolock}} the command is {{ic|xautolock -locknow}}<br />
* You can use a separate script for more complex behaviour, and refer to it in the mode. See [https://gist.github.com/anonymous/c8cd0a59bf4acb273068] for an example.<br />
}}<br />
<br />
For a list of alternative screen lockers, see [[List of applications/Security#Screen lockers]].<br />
<br />
=== Tabbed or stacked web-browsing ===<br />
<br />
Some web-browsers intentionally do not implement tabs, since managing tabs is considered to be the task of the window manager, not the task of the browser.<br />
<br />
To let i3 manage your tab-less web-browser, in this example for [[uzbl]], add the following line to your {{ic|~/.config/i3/config}}<br />
<br />
for_window [class="Uzbl-core"] focus child, layout stacking, focus<br />
<br />
This is for stacked web browsing, meaning that the windows will be shown vertically. The advantage over tabbed browsing is that the window-titles are fully visible, even if a lot of browser windows are open.<br />
<br />
If you prefer tabbed browsing, with windows in horizontal direction ('tabs'), use<br />
<br />
for_window [class="Uzbl-core"] focus child, layout tabbed, focus<br />
<br />
=== Workspace variables ===<br />
<br />
As workspaces are defined multiple times in i3, assigning workspace variables can be helpful. For example [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:<br />
<br />
set $WS1 term<br />
set $WS2 web<br />
set $WS3 misc<br />
set $WS4 media<br />
set $WS5 code<br />
<br />
Then replace workspace names with their matching variables:<br />
<br />
bindsym $mod+1 workspace $WS1<br />
...<br />
bindsym $mod+Shift+1 move container to workspace $WS1<br />
<br />
See [http://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] for more information.<br />
<br />
=== Correct handling of floating dialogs ===<br />
<br />
While dialogs should open in floating mode by default [http://i3wm.org/docs/userguide.html#_floating], many still open in tiling mode. To change this behaviour, check the dialog's {{ic|WM_WINDOW_ROLE}} with {{pkg|xorg-xprop}} and add the correct rules to {{ic|~/.i3/config}}:<br />
<br />
for_window [window_role="pop-up"] floating enable<br />
for_window [window_role="task_dialog"] floating enable<br />
<br />
You can also use title rules and regular expressions:<br />
<br />
for_window [title="Preferences$"] floating enable<br />
<br />
or {{ic|WM_CLASS}}:<br />
<br />
for_window [class="(?i)mplayer"] floating enable<br />
<br />
{{Tip|i3 uses {{Pkg|pcre}} to parse regular expressions [https://faq.i3wm.org/question/3199/why-doesnt-regex-work-the-same-in-the-i3-config/?answer&#61;3207#post-id-3207], hence you may separate names with {{ic|<nowiki>|</nowiki>}} instead of creating new entries. For example:<br />
for_window <nowiki>[window_role="pop-up|task_dialog"]</nowiki> floating enable<br />
}}<br />
<br />
=== Network Download/Upload speed on statusbar ===<br />
<br />
You might adapt this upstream [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash script]. For that,<br />
<br />
* rename both network cards according to your system (use {{ic|ip addr}})<br />
* find them on {{ic|/sys/devices}} then replace them appropriately:<br />
$ find /sys/devices -name ''network_interface''<br />
<br />
{{Tip|Use {{ic|/sys/class/net/''interface''/statistics/}} to not depend on PCI location.}}<br />
<br />
Now, just save the script in a suitable place (for example {{ic|~/.config/i3}}) and point your status program to it.<br />
<br />
== Patches ==<br />
<br />
Packages with patches not merged upstream are available in the [[AUR]]:<br />
<br />
* {{App|i3bar-icons-git|Display XBM icons in i3bar|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}}<br />
* {{App|i3-smart-border|Smart borders|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}}<br />
* {{App|i3-wm-iconpatch|Titlebar icon support|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== General ===<br />
<br />
{{Expansion|Official debugging instructions may not work as expected, so expand on this topic}}<br />
<br />
In many cases, bugs are fixed in the development version {{AUR|i3-git}} (from the [[AUR]]) and upstream will ask to reproduce any errors with this version. [http://i3wm.org/docs/debugging.html] <br />
<br />
{{Warning|Debugging symbols are removed in the AUR package. See [[Debug - Getting Traces#General]] before sending backtraces upstream.}}<br />
<br />
=== Buttons in the i3 message bar do not work ===<br />
<br />
Buttons such as "Edit config" in {{ic|i3-msg}} call {{ic|i3-sensible-terminal}}, so make sure your [[#Terminal_emulator|Terminal emulator]] is recognized by i3.<br />
<br />
=== Faulty line wraps in tiled terminals ===<br />
<br />
i3 v4.3 and higher ignore size increment hints for tiled windows [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]. This may cause terminals to wrap lines prematurely, amongst other issues. As a workaround, make the offending window floating, before tiling it again.<br />
<br />
=== Mouse cursor remains in waiting mode ===<br />
<br />
When starting a script or application which does not support startup notifications, the mouse cursor will remain in busy/watch/clock mode for 60 seconds.<br />
<br />
To solve this for a particlar application, use the {{ic|--no-startup-id}} parameter, for example:<br />
exec --no-startup-id ~/script<br />
bindsym $mod+d exec --no-startup-id dmenu_run<br />
<br />
To disable this animation globally, see [[Cursor themes#Create links to missing cursors]].<br />
<br />
=== Unresponsive key bindings ===<br />
<br />
Some tools such as [[Taking_a_screenshot#scrot|scrot]] may not work when used with a regular key binding (executed after key press). In those cases, execute commands after key release with the {{ic|--release}} argument[http://i3wm.org/docs/userguide.html#keybindings]:<br />
<br />
bindsym --release Print exec --no-startup-id scrot '%Y-%m-%d$<br />
bindsym --release Shift+Print exec --no-startup-id scrot '%Y$<br />
<br />
=== Tearing ===<br />
<br />
i3 does [https://github.com/i3/i3/issues/661 not properly implement double buffering] hence tearing or flickering may occur. To prevent this, install and configure [[compton]]. [https://faq.i3wm.org/question/3279/do-i-need-a-composite-manager-compton/?answer=3282#post-id-3282]<br />
<br />
== See also ==<br />
<br />
* [http://i3wm.org Official website]<br />
* [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]<br />
* [http://code.stapelberg.de/git/i3 i3 Source code]<br />
* [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches<br />
* [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - A library for i3 extensions<br />
* [https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby<br />
* [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3<br />
<br />
'''Arch Linux Forums'''<br />
* [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3<br />
* [https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]<br />
<br />
'''Screencasts'''<br />
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast]</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=377660Lenovo ThinkPad Edge E4402015-06-06T20:30:23Z<p>Aouellette: </p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Always, do it at your own risk!'''<br />
<br />
To update BIOS, follow these steps (alternatively, you can download the iso, burn it to a CD, and then boot from the CD):<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and boot from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=377659Lenovo ThinkPad Edge E4402015-06-06T20:18:27Z<p>Aouellette: Added information</p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version (2.18), hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Anyways, do it on your own risk!'''<br />
<br />
To update BIOS, follow these steps:<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads E440 Downloads]<br />
<br />
2) Install the {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and load from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellettehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_Edge_E440&diff=377658Lenovo ThinkPad Edge E4402015-06-06T20:15:39Z<p>Aouellette: </p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Style|See [[:Category:Laptops]]}}<br />
<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Intel || {{G|Working}} || xf86-video-intel<br />
|-<br />
| Ethernet || {{G|Working}} || r8169<br />
|-<br />
| Wireless || {{G|Working}} || ath9k<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || xf86-input-synaptics<br />
|-<br />
| Camera || {{G|Working}} || linux-uvc<br />
|-<br />
| Card Reader || {{Y|Not tested}} ||<br />
|-<br />
| Bluetooth || {{Y|Not tested}} || <br />
|-<br />
| Fingerprint scanner || {{Y|Not tested}} || <br />
|}<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
=== Tested Configurations ===<br />
Lenovo ThinkPad E440 comes with a wide range of available configurations.<br />
{{Tip|Below are the tested configurations at the time.}}<br />
{| class="wikitable sortable"<br />
! Feature !! Configuration !! Configuration<br />
|-<br />
|System||E440 20C500FBRT||E440 20C5005LRT<br />
|-<br />
|CPU||Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz or i5-4200M @ 2.50 GHz||Intel(R) Pentium(R) CPU 3550M @ 2.30GHz<br />
|-<br />
|Graphics||Intel HD 4600||Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)<br />
|-<br />
|Ram||4GB||4GB<br />
|-<br />
|Disk||500GB 7200 rpm HDD||500GB<br />
|-<br />
|Display||14" TFT 1366x768||14" TFT<br />
|-<br />
|Wi-Fi||Intel Corporation Wireless 7260||Intel Corporation Wireless 7260 (rev 73)<br />
|-<br />
|Backlit Keyboard||No||No<br />
|-<br />
|Fingerprint Scanner||Yes||Yes<br />
|-<br />
|Bluetooth||Yes||Yes<br />
|-<br />
|Cam||Yes||Yes<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== ClickPad ===<br />
Works out of the box.<br />
<br />
The only tweak you may want is to resize active area. With default config, you can cosily use as pointer only top 1/3 of ClickPad. See [[Touchpad Synaptics#Buttonless touchpads (aka ClickPads)]] for instructions.<br />
<br />
=== Keyboard ===<br />
'''Fn and Ctrl keys''' can be swapped in BIOS.<br />
<br />
'''Fn key''' lock can be switched with '''Fn + Esc'''.<br />
<br />
=== Backlight ===<br />
Backlight control in GNOME with multimedia keys ('''Fn + F[5/6]''') works out of the box.<br />
To configure brigthness level on startup see [[Backlight#Udev rule]].<br />
<br />
=== Audio ===<br />
Out of box configuration could point to non-existent device because numbering of HDMI devices does not start with 0. Suggested solution is to set<br />
PCH device to default by placing a configuration file into /etc/modprobe.d. The following thread contains alternative solutions and detailed <br />
instructions: [https://bbs.archlinux.org/viewtopic.php?pid=1446773#p1446773 Fixing ALSA device selection].<br />
<br />
== Troubleshooting ==<br />
<br />
==== Freezing on resume ====<br />
When system is being suspended, it could freeze on wake up. Most likely, this bug occurs with BIOS v2.16.<br />
<br />
Simple solution is to disable USB 3.0 in BIOS.<br />
Better solution is to update BIOS to v2.18. Instructions on update can be found below.<br />
<br />
Even with new BIOS version, hibernation still does not fully work. Use the LTS kernel to fix issues.<br />
<br />
==== With Fn and Ctrl_L keys swapped, Ctrl_L+s hotkey is mapped into Alt_L ====<br />
[http://forums.lenovo.com/t5/ThinkPad-Edge-S-series/ThinkPad-E440-Ctrl-L-S-maps-as-Alt-L/td-p/1772489 Lenovo Forums topic]<br />
<br />
Issue can be meet on notebook with BIOS older than v2.16.<br />
Problem can be solved with BIOS update up to v2.16 or newer. [http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16ww.txt BIOS v2.16 update changelog].<br />
<br />
== BIOS Update ==<br />
Steps below were tested by contributors of this page and work perfectly. '''Anyways, do it on your own risk!'''<br />
<br />
To update BIOS, follow these steps:<br />
<br />
1) Download firmware from official support page:<br />
<br />
BIOS v2.16:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj16wd.iso</nowiki><br />
BIOS v2.18:<br />
<nowiki><br />
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/j9uj18wd.iso</nowiki><br />
Newest version can be found at http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-edge-e440?TabName=Downloads<br />
<br />
2) Install '''geteltorito''' {{AUR|geteltorito}} utility:<br />
<nowiki><br />
yaourt -S aur/geteltorito</nowiki><br />
3) Convert ISO image (change 'XX' to match the filename of downloaded .iso):<br />
<nowiki><br />
geteltorito.pl -o bios.img j9ujXXwd.iso</nowiki><br />
4) Use USB stick to write image to. Suppose, you stick is '''/dev/sdb'''. '''Warning:''' all information on USB stick will be lost!<br />
<br />
4.1) Unmount all '''/dev/sdb''' partitions:<br />
<nowiki><br />
sudo umount /dev/sdbX (where 'X' is a partition of 'sdb')</nowiki><br />
4.2) Write image:<br />
<nowiki><br />
sudo dd if=bios.img of=/dev/sdb bs=1M</nowiki><br />
5) Reboot you PC and load from your USB stick.<br />
<br />
6) FOLLOW ALL INSTRUCTIONS written in the update utility!</div>Aouellette