https://wiki.archlinux.org/api.php?action=feedcontributions&user=Clfarron4&feedformat=atomArchWiki - User contributions [en]2024-03-28T20:56:24ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Arch_User_Repository&diff=415934Arch User Repository2016-01-17T15:47:45Z<p>Clfarron4: AUR package submission requires a "User aur" entry for submissions to be made.</p>
<hr />
<div>[[Category:Arch User Repository]]<br />
[[Category:Package development]]<br />
[[Category:Package management]]<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[de:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
[[tr:Arch Kullanıcı Deposu]]<br />
[[uk:Arch User Repository]]<br />
[[zh-CN:Arch User Repository]]<br />
[[zh-TW:Arch User Repository]]<br />
{{Related articles start}}<br />
{{Related|AUR helpers}}<br />
{{Related|AurJson}}<br />
{{Related|AUR Trusted User Guidelines}}<br />
{{Related|PKGBUILD}}<br />
{{Related|makepkg}}<br />
{{Related|pacman}}<br />
{{Related|Official repositories}}<br />
{{Related|Arch Build System}}<br />
{{Related|Creating packages}}<br />
{{Related articles end}}<br />
<br />
The Arch User Repository (AUR) is a community-driven repository for Arch users. It contains package descriptions ([[PKGBUILD]]s) that allow you to compile a package from source with [[makepkg]] and then install it via [[pacman#Additional commands|pacman]]. The AUR was created to organize and share new packages from the community and to help expedite popular packages' inclusion into the [[community]] repository. This document explains how users can access and utilize the AUR.<br />
<br />
A good number of new packages that enter the official repositories start in the AUR. In the AUR, users are able to contribute their own package builds (PKGBUILD and related files). The AUR community has the ability to vote for or against packages in the AUR. If a package becomes popular enough &mdash; provided it has a compatible license and good packaging technique &mdash; it may be entered into the ''community'' repository (directly accessible by [[pacman]] or [[abs]]).<br />
<br />
== Getting started ==<br />
<br />
Users can search and download PKGBUILDs from the [https://aur.archlinux.org AUR Web Interface]. These PKGBUILDs can be built into installable packages using [[makepkg]], then installed using pacman.<br />
<br />
* Ensure the {{Grp|base-devel}} package group is installed ({{ic|pacman -S --needed base-devel}}).<br />
* Glance over the [[#FAQ]] for answers to the most common questions.<br />
* You may wish to adjust {{ic|/etc/makepkg.conf}} to optimize for your processor prior to building packages from the AUR. A significant improvement in compile times can be realized on systems with multi-core processors by adjusting the MAKEFLAGS variable. Users can also enable hardware-specific optimizations in GCC via the CFLAGS variable. See [[makepkg]] for more information.<br />
<br />
== History ==<br />
<br />
In the beginning, there was {{ic|<nowiki>ftp://ftp.archlinux.org/incoming</nowiki>}}, and people contributed by simply uploading the PKGBUILD, the needed supplementary files, and the built package itself to the server. The package and associated files remained there until a [[Package Maintainer]] saw the program and adopted it.<br />
<br />
Then the Trusted User Repositories were born. Certain individuals in the community were allowed to host their own repositories for anyone to use. The AUR expanded on this basis, with the aim of making it both more flexible and more usable. In fact, the AUR maintainers are still referred to as TUs (Trusted Users).<br />
<br />
Between 2015-06-08 and 2015-08-08 the AUR transitioned from version 3.5.1 to 4.0.0, introducing the use of Git repositories for publishing the PKGBUILDs.<br />
<br />
== Searching ==<br />
<br />
The AUR web interface can be found at https://aur.archlinux.org/, and an interface suitable for accessing the AUR from a script can be found at https://aur.archlinux.org/rpc.php.<br />
<br />
Queries search package names and descriptions via a MySQL LIKE comparison. This allows for more flexible search criteria (e.g. try searching for {{ic|tool%like%grep}} instead of {{ic|tool like grep}}). If you need to search for a description that contains {{ic|%}}, escape it with {{ic|\%}}.<br />
<br />
== Installing packages ==<br />
Installing packages from the AUR is a relatively simple process. Essentially:<br />
<br />
# Acquire the tarball which contains the [[PKGBUILD]] and possibly other required files, like [[systemd]] units and patches (but often not the actual code).<br />
# Extract the tarball (preferably in a directory set aside just for builds from the AUR) with {{ic|tar -xvf ''pkgname''.tar.gz}}.<br />
# Verify that the [[PKGBUILD]] and accompanying files are not malicious or untrustworthy.<br />
# Run {{ic|makepkg -sri}} in the directory where the files are saved. This will download the code, resolve the dependencies with [[pacman]], compile it, package it, install the package, and finally remove the build-time dependencies, which are no longer needed.<br />
<br />
=== Prerequisites ===<br />
<br />
First ensure that the necessary tools are installed:<br />
<br />
# pacman -S --needed base-devel<br />
<br />
The package group {{grp|base-devel}} should be sufficient; it includes {{pkg|make}} and other tools needed for compiling from source.<br />
<br />
{{Note|Packages in the AUR assume that the {{grp|base-devel}} group is installed, i.e. they do not list the group's members as dependencies explicitly.}}<br />
<br />
Next choose an appropriate build directory. A build directory is simply a directory where the package will be made or "built" and can be any directory. The examples in the following sections will use {{ic|~/builds}} as the build directory.<br />
<br />
=== Acquire build files ===<br />
<br />
Locate the package in the AUR. This is done using the search feature (text field at the top of the [https://aur.archlinux.org/ AUR home page]). Clicking the application's name in the search list brings up an information page on the package. Read through the description to confirm that this is the desired package, note when the package was last updated, and read any comments.<br />
<br />
There are three well-known methods to aquire the build files without the use of an AUR helper:<br />
<br />
* Download the necessary build files by clicking on the "Download snapshot" link under "Package Actions" on the right hand side. This file should be saved to the build directory or otherwise copied to the directory after downloading. In this example, the file is called {{ic|foo.tar.gz}} (standard format is {{ic|''pkgname''.tar.gz}}, if it has been properly submitted).<br />
<br />
* Alternatively you can download the tarball from the terminal, changing directories to the build directory first:<br />
<br />
$ cd ~/builds<br />
$ curl -L -O <nowiki>https://aur.archlinux.org/cgit/aur.git/snapshot/foo.tar.gz</nowiki><br />
<br />
* It is also possible to clone the [[Git]] repository that is labeled as the "Git Clone URL" in the "Package Details":<br />
<br />
$ cd ~/build-repos<br />
$ git clone https://aur.archlinux.org/foo.git<br />
<br />
=== Build and install the package ===<br />
<br />
Change directories to the build directory if not already there, then extract the previously downloaded package:<br />
<br />
$ cd ~/builds<br />
$ tar -xvf foo.tar.gz<br />
<br />
This should create a new directory called {{ic|foo}} in the build directory.<br />
<br />
{{Note|In the case of a git clone, the extraction process is unnecessary. The git clone has already created the directory {{ic|foo}}.}}<br />
<br />
{{Warning|'''Carefully check all files.''' {{ic|cd}} to the newly created directory and carefully check the {{ic|PKGBUILD}} and any {{ic|.install}} file for malicious commands. {{ic|PKGBUILD}}s are [[bash]] scripts containing functions to be executed by ''makepkg'': these functions can contain ''any'' valid commands or Bash syntax, so it is totally possible for a {{ic|PKGBUILD}} to contain dangerous commands through malice or ignorance on the part of the author. Since ''makepkg'' uses ''fakeroot'' (and should never be run as root), there is some level of protection but you should never count on it. If in doubt, do not build the package and seek advice on the forums or mailing list.}}<br />
<br />
$ cd foo<br />
$ nano PKGBUILD<br />
$ nano foo.install<br />
<br />
Make the package. After manually confirming the integrity of the files, run [[makepkg]] as a normal user:<br />
<br />
$ makepkg -sri<br />
<br />
The {{ic|-s}}/{{ic|--syncdeps}} switch will automatically resolve and install any dependencies with [[pacman]] before building, {{ic|-r}}/{{ic|--rmdeps}} removes the build-time dependencies after build, as they are no longer needed, and {{ic|-i}}/{{ic|--install}} will install the package itself.<br />
<br />
{{Note|The above example is only a brief summary of the build process. It is '''highly''' recommended to read the [[makepkg]] and [[ABS]] articles for more details.}}<br />
<br />
== Feedback ==<br />
<br />
The [https://aur.archlinux.org AUR Web Interface] has a comments facility that allows users to provide suggestions and feedback on improvements to the PKGBUILD contributor. Avoid pasting patches or PKGBUILDs into the comments section: they quickly become obsolete and just end up needlessly taking up lots of space. Instead email those files to the maintainer, or even use a [[pastebin]].<br />
<br />
One of the easiest activities for '''all''' Arch users is to browse the AUR and '''vote''' for their favourite packages using the online interface. All packages are eligible for adoption by a TU for inclusion in the [[community]] repository, and the vote count is one of the considerations in that process; it is in everyone's interest to vote!<br />
<br />
== Sharing and maintaining packages ==<br />
<br />
{{Note|Please see [[Talk:Arch User Repository#Scope of the AUR4 section]] before making changes to this section.}}<br />
<br />
Users can '''share''' PKGBUILDs using the Arch User Repository. It does not contain any binary packages but allows users to upload PKGBUILDs that can be downloaded by others. These PKGBUILDs are completely unofficial and have not been thoroughly vetted, so they should be used at your own risk.<br />
<br />
=== Submitting packages ===<br />
<br />
{{Warning|Before attempting to submit a package you are expected to familiarize yourself with [[Arch packaging standards]] and all the articles under "Related articles".}}<br />
<br />
==== Rules of submission ====<br />
<br />
When submitting a package, observe the following rules:<br />
<br />
* Check the [https://www.archlinux.org/packages/ official package database] for the package. If '''any version''' of it exists, '''do not''' submit the package. If the official package is out-of-date, flag it as such. If the official package is broken or is lacking a feature, then please file a [https://bugs.archlinux.org/ bug report].<br />
* Check the AUR for the package. If it is currently maintained, changes can be submitted in a comment for the maintainer's attention. If it is unmaintained, the package can be adopted and updated as required. Do not create duplicate packages.<br />
* Verify carefully that what you are uploading is correct. All contributors must read and adhere to the [[Arch packaging standards]] when writing PKGBUILDs. This is essential to the smooth running and general success of the AUR. Remember that you are not going to earn any credit or respect from your peers by wasting their time with a bad PKGBUILD.<br />
* Packages that contain binaries or that are very poorly written may be deleted without warning.<br />
* If you are unsure about the package (or the build/submission process) in any way, submit the PKGBUILD to the [https://mailman.archlinux.org/mailman/listinfo/aur-general AUR mailing list] or the [https://bbs.archlinux.org/viewforum.php?id=4 AUR forum] on the Arch forums for public review before adding it to the AUR.<br />
* Make sure the package is useful. Will anyone else want to use this package? Is it extremely specialized? If more than a few people would find this package useful, it is appropriate for submission.<br />
* The AUR and official repositories are intended for packages which install generally software and software-related content, including one or more of the following: executable(s); config file(s); online or offline documentation for specific software or the Arch Linux distribution as a whole; media intended to be used directly by software.<br />
* Gain some experience before submitting packages. Build a few packages to learn the process and then submit.<br />
<br />
==== Creating a new package ====<br />
<br />
For write access to the AUR, users need to have an [[SSH keys|SSH key pair]]. The content of the public key needs to be copied to the user profile in ''My Account'', and the corresponding private key configured for the {{ic|aur.archlinux.org}} host. For example:<br />
{{hc|~/.ssh/config|<br />
Host aur.archlinux.org<br />
IdentityFile ~/.ssh/aur<br />
User aur}}<br />
<br />
It is recommended that you [[SSH_keys#Generating_an_SSH_key_pair|create a new key pair]] rather than use an existing one, so that you could selectively revoke the keys should something happen.<br />
<br />
In order to upload a package, simply clone the Git repository with the corresponding name:<br />
<br />
$ git clone <nowiki>ssh://</nowiki>aur@aur.archlinux.org/''foobar''.git<br />
<br />
Cloning from, or pushing to, a non-existing repository will automatically create a new one.<br />
<br />
You can now add the source files to the local copy of the Git repository. When making changes to the repository, make sure you always include the {{ic|PKGBUILD}} and {{ic|.SRCINFO}} in the top-level directory. You can create {{ic|.SRCINFO}} files using {{ic|mksrcinfo}}, provided by {{Pkg|pkgbuild-introspection}}. <br />
<br />
{{Note|{{ic|.SRCINFO}} contains source package metadata, see [[#AUR metadata]] for details.}}<br />
<br />
==== Updating packages ====<br />
<br />
In order to submit new versions of a package base to the AUR, add the new {{ic|PKGBUILD}}, {{ic|.SRCINFO}} and possibly helper files (like {{ic|.install}} files or local source files like {{ic|.patch}}) to the ''staging area'' with {{ic|git add}}, commit them to your local tree with a commit message with {{ic|git commit}}, and finally publish the changes to the AUR with {{ic|git push}}.<br />
<br />
For example, to create and submit the initial commit:<br />
<br />
$ mksrcinfo<br />
$ git add ''PKGBUILD .SRCINFO''<br />
$ git commit -m 'Initial import'<br />
$ git push origin master<br />
<br />
{{Warning|If you do not want to publish your system-wide identity, do not forget to set a local user name and email address via {{ic|git config user.name [...]}} and {{ic|git config user.email [...]}}! It is much more difficult to rewrite already published history, see: {{Bug|45425}}. Review your commits before pushing them!}}<br />
<br />
To update a package, edit the {{ic|PKGBUILD}} and run the following commands to track the changes in the AUR Git repository:<br />
<br />
$ mksrcinfo<br />
$ git commit -am 'Update to ''1.0.0-2'''<br />
$ git push<br />
<br />
See [[Git]] for more information.<br />
<br />
{{Tip|If you forget to commit the {{ic|.SRCINFO}} and add it in a later commit, the AUR will still reject your pushes because the {{ic|.SRCINFO}} must exist for ''every'' commit. To solve this problem you can use [https://git-scm.com/docs/git-rebase git rebase] with the {{ic|--root}} option or [https://git-scm.com/docs/git-filter-branch git filter-branch] with the {{ic|--tree-filter}} option.}}<br />
<br />
=== Maintaining packages ===<br />
<br />
* If you maintain a package and want to update the PKGBUILD for your package just resubmit it.<br />
* Check for feedback and comments from other users and try to incorporate any improvements they suggest; consider it a learning process!<br />
* Please do not leave a comment containing the version number every time you update the package. This keeps the comment section usable for valuable content mentioned above. [[AUR helpers]] are suited better to check for updates.<br />
* Please do not just submit and forget about packages! It is the maintainer's job to maintain the package by checking for updates and improving the PKGBUILD.<br />
* If you do not want to continue to maintain the package for some reason, {{ic|disown}} the package using the AUR web interface and/or post a message to the AUR Mailing List.<br />
<br />
=== Other requests ===<br />
<br />
* Disownment requests and removal requests can be created by clicking on the "File Request" link under "Package actions" on the right hand side. This automatically sends a notification email to the current package maintainer and to the [https://mailman.archlinux.org/mailman/listinfo/aur-requests aur-requests mailing list] for discussion. [[Trusted Users]] will then either accept or reject the request.<br />
* Disownment requests will be granted after two weeks if the current maintainer did not react.<br />
* '''Package merging has been implemented''', users still have to resubmit a package under a new name and may request merging of the old version's comments and votes.<br />
* Removal requests require the following information:<br />
** Reason for deletion, at least a short note <br> '''Notice:''' A package's comments does not sufficiently point out the reasons why a package is up for deletion. Because as soon as a TU takes action, the only place where such information can be obtained is the aur-requests mailing list.<br />
** Supporting details, like when a package is provided by another package, if you are the maintainer yourself, it is renamed and the original owner agreed, etc.<br />
** For merge requests: Name of the package base to merge into.<br />
<br />
Removal requests can be disapproved, in which case you will likely be advised to disown the package for a future packager's reference.<br />
<br />
== Git repositories for AUR3 packages ==<br />
<br />
On 08/08/2015 unmaintained packages have been removed from the AUR with the migration to a [[Git]] backend.<br />
A [[Git]] repository of the old AUR contents is available at {{ic|<nowiki>git://pkgbuild.com/aur-mirror.git</nowiki>}}. It was generally updated once per day and is now read-only. If the repository's [http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History commit history] is not needed, then cloning with the {{ic|1=--depth=1}} option will be much quicker:<br />
<br />
<nowiki>$ git clone --depth=1 git://pkgbuild.com/aur-mirror.git</nowiki><br />
<br />
You can also visit {{ic|<nowiki>http://pkgbuild.com/git/aur-mirror.git/tree/<packagename></nowiki>}} directly as trying to load {{ic|<nowiki>http://pkgbuild.com/git/aur-mirror.git/tree</nowiki>}} in a web browser is going to use a lot of time and memory.<br />
<br />
For more information, see the following: [http://pkgbuild.com/git/aur-mirror.git/ Git Web interface], [https://bbs.archlinux.org/viewtopic.php?id=113099 forum thread].<br />
<br />
There is also the [https://github.com/aur-archive AUR Archive] on GitHub with a repository for every package that was in AUR 3 during the migration to AUR 4.<br />
<br />
== AUR metadata ==<br />
<br />
{{Style|This section was originally in a separate page, it may need adaptations to better fit into this article.}}<br />
<br />
In order to display information in the [[AUR]] web interface, the AUR's back-end code attempts to parse [[PKGBUILD]] files and salvage package name, version, and other information from it. {{ic|PKGBUILD}}s are [[Bash]] scripts, and correctly parsing Bash scripts without executing them is a huge challenge, which is why [[makepkg]] is a Bash script itself: it includes the PKGBUILD of the package being built via the {{ic|source}} directive. AUR metadata files were created to get rid of some hacks, used by AUR package maintainers to work around incorrect parsing in the web interface. See also {{Bug|25210}}, {{Bug|15043}}, and {{Bug|16394}}.<br />
<br />
=== How it works ===<br />
By adding a metadata file called {{ic|.SRCINFO}} to source tarballs to overwrite specific PKGBUILD fields. An outdated format of this file was described in the [https://mailman.archlinux.org/pipermail/aur-dev/2013-March/002428.html AUR 2.1.0 release announcement]. {{ic|.SRCINFO}} files are parsed line-by-line. The syntax for each line is {{ic|1=key[_arch] = value}}. Exactly one space must be on each side of the equals sign, even for an empty value, and do not include quotes around the values.<br />
<br />
The {{ic|key}} is a field name, based on the names of the corresponding [[PKGBUILD Variables]]. Some field names may optionally be suffixed with an architecture name. Fields are grouped into sections, each headed by one of the following two field names:<br />
<br />
* pkgbase: This is required by AUR 3, otherwise the infamous “only lowercase letters are allowed” error is reported. (Pacman uses the first ''pkgname'' if ''pkgbase'' is omitted.) Repeat pkgname if unsure. There is only one ''pkgbase'' section. The field values from this section are inherited unless overridden in the ''pkgname'' sections that follow it. An empty field value in the ''pkgname'' section cancels the inheritance.<br />
* pkgname: There may be multiple ''pkgname'' sections.<br />
<br />
The following field names are associated with a single value for the section:<br />
<br />
* epoch<br />
* pkgver: package version, may be formatted as [''epoch'':]''pkgver'' if the epoch field is not given separately<br />
* pkgrel: release number of the package specific to Arch Linux<br />
* pkgdesc<br />
* url<br />
<br />
The following field names may be repeated on multiple lines in a section to add multiple values:<br />
<br />
* license: in case of multiple licenses separate them by a space<br />
* groups<br />
<br />
The following field names may be repeated, and also may optionally have an architecture suffix, separated from the field name by an underscore:<br />
<br />
* depends: dependencies, one per line<br />
* makedepends<br />
* checkdepends<br />
* optdepends<br />
* conflicts<br />
* provides<br />
* replaces<br />
* source<br />
<br />
Fields with other names are ignored. Blank lines and comment lines beginning with a hash sign (#) are also ignored. Lines may be indented. This format closely matches the {{ic|.PKGINFO}} format that is used for binary packages in [[pacman]]/libalpm.<br />
<br />
The {{ic|.SRCINFO}} can also be created from the {{ic|PKGBUILD}} with {{ic|mksrcinfo}} from {{Pkg|pkgbuild-introspection}}.<br />
<br />
== AUR translation ==<br />
<br />
See [https://projects.archlinux.org/aurweb.git/tree/TRANSLATING TRANSLATING] in the AUR source tree for information about creating and maintaining translation of the AUR web interface.<br />
<br />
== FAQ ==<br />
<br />
=== What is the AUR? ===<br />
<br />
The AUR (Arch User Repository) is a place where the Arch Linux community can upload [[PKGBUILD]]s of applications, libraries, etc., and share them with the entire community. Fellow users can then vote for their favorites to be moved into the [[community]] repository to be shared with Arch Linux users in binary form.<br />
<br />
=== What kind of packages are permitted on the AUR? ===<br />
<br />
The packages on the AUR are merely "build scripts", i.e. recipes to build binaries for pacman. For most cases, everything is permitted, subject to the abovementioned [[#Rules of submission|usefulness and scope guidelines]], as long as you are in compliance with the licensing terms of the content. For other cases, where it is mentioned that "you may not link" to downloads, i.e. contents that are not redistributable, you may only use the file name itself as the source. This means and requires that users already have the restricted source in the build directory prior to building the package. When in doubt, ask.<br />
<br />
=== How can I vote for packages in the AUR? ===<br />
<br />
Sign up on the [https://aur.archlinux.org/ AUR website] to get a "Vote for this package" option while browsing packages. After signing up it is also possible to vote from the commandline with {{AUR|aurvote-git}}.<br />
<br />
=== What is a Trusted User / TU? ===<br />
<br />
A [[AUR Trusted User Guidelines|Trusted User]], in short TU, is a person who is chosen to oversee AUR and the [[community]] repository. They are the ones who maintain popular PKGBUILDs in ''community'', and overall keep the AUR running.<br />
<br />
=== What is the difference between the Arch User Repository and the community repository? ===<br />
<br />
The Arch User Repository is where all PKGBUILDs that users submit are stored, and must be built manually with [[makepkg]]. When PKGBUILDs receive enough community interest and the support of a TU, they are moved into the [[community]] repository (maintained by the TUs), where the binary packages can be installed with [[pacman]].<br />
<br />
=== Foo in the AUR is outdated; what do I do? ===<br />
<br />
For starters, you can flag packages out-of-date. If it stays out-of-date for an extended period of time, the best thing to do is email the maintainer. If there is no response from the maintainer after two weeks, you can file an orphan request. When we are talking about a package which is flagged out of date for more than 3 months and is in general not updated for a long time, please add this in your orphan request.<br />
<br />
In the meantime, you can try updating the package yourself by editing the PKGBUILD - sometimes updates do not require any changes to the build or package process, in which case simply updating the {{ic|pkgver}} or {{ic|source}} array is sufficient.<br />
<br />
=== Foo in the AUR does not compile when I run makepkg; what should I do? ===<br />
<br />
You are probably missing something trivial.<br />
<br />
# Run {{ic|pacman -Syyu}} before compiling anything with {{ic|makepkg}} as the problem may be that your system is not up-to-date.<br />
# Ensure you have both "base" and "base-devel" groups installed.<br />
# Try using the "{{ic|-s}}" option with {{ic|makepkg}} to check and install all the dependencies needed before starting the build process.<br />
<br />
Be sure to first read the PKGBUILD and the comments on the AUR page of the package in question.<br />
The reason might not be trivial after all. Custom CFLAGS, LDFLAGS and MAKEFLAGS can cause failures. It is also possible that the PKGBUILD is broken for everyone. If you cannot figure it out on your own, just report it to the maintainer e.g. by posting the errors you are getting in the comments on the AUR page.<br />
<br />
=== How do I make a PKGBUILD? ===<br />
<br />
The best resource is the wiki page about [[creating packages]]. Remember to look in AUR before creating the PKGBUILD as to not duplicate efforts.<br />
<br />
=== I have a PKGBUILD I would like to submit; can someone check it to see if there are any errors? ===<br />
<br />
If you would like to have your PKGBUILD critiqued, post it on the [https://mailman.archlinux.org/mailman/listinfo/aur-general aur-general mailing list] to get feedback from the TUs and fellow AUR members. You could also get help from the [[IRC channel]], #archlinux on irc.freenode.net. You can also use [[namcap]] to check your PKGBUILD and the resulting package for errors.<br />
<br />
=== How to get a PKGBUILD into the community repository? ===<br />
<br />
Usually, at least 10 votes are required for something to move into [[community]]. However, if a TU wants to support a package, it will often be found in the repository.<br />
<br />
Reaching the required minimum of votes is not the only requirement, there has to be a TU willing to maintain the package. TUs are not required to move a package into the ''community'' repository even if it has thousands of votes.<br />
<br />
Usually when a very popular package stays in the AUR it is because:<br />
<br />
* Arch Linux already has another version of a package in the repositories<br />
* The package is AUR-centric (e.g. an [[AUR helper]])<br />
* Its license prohibits redistribution<br />
<br />
See also [[DeveloperWiki:Community repo candidates]] and [[AUR Trusted User Guidelines#Rules for Packages Entering the .5Bcommunity.5D Repo|Rules for Packages Entering the community Repo]].<br />
<br />
=== How can I speed up repeated build processes? ===<br />
<br />
If you frequently compile code that uses GCC - say, a Git or SVN package - you may find [[ccache]], short for "compiler cache", useful.<br />
<br />
=== What is the difference between foo and foo-git packages? ===<br />
<br />
Many AUR packages are presented in regular ("stable") and development versions ("unstable"). A development package usually has a suffix such as {{ic|-cvs}}, {{ic|-svn}}, {{ic|-git}}, {{ic|-hg}}, {{ic|-bzr}} or {{ic|-darcs}}. While development packages are not intended for regular use, they may offer new features or bugfixes. Because these packages download the latest available source when you execute {{ic|makepkg}}, a package version to track possible updates is not directly available for these. Likewise, these packages cannot perform an authenticity checksum, instead it is relied on the maintainer(s) of the Git repository. <br />
<br />
See also [[Enhancing Arch Linux Stability#Avoid development packages]].<br />
<br />
=== Why has foo disappeared from the AUR? ===<br />
<br />
Packages may be deleted, if they did not fulfill the [[#Rules of submission]]. See the [https://lists.archlinux.org/pipermail/aur-requests/ aur-requests archives] for the reason for deletion.<br />
<br />
If the package used to exist in AUR3, it might not have been [https://lists.archlinux.org/pipermail/aur-general/2015-August/031322.html migrated to AUR4]. See the [[#Git repositories for AUR3 packages]] where these are preserved.<br />
<br />
=== How do I find out if any of my installed packages disappeared from AUR? ===<br />
<br />
You can use the following script:<br />
<br />
$ for pkg in $(pacman -Qqm); do cower -s $pkg &>/dev/null || echo "$pkg not in AUR"; done<br />
<br />
(retrieved from https://bbs.archlinux.org/viewtopic.php?id=202160)<br />
<br />
== See also ==<br />
* [https://aur.archlinux.org AUR Web Interface]<br />
* [https://www.archlinux.org/mailman/listinfo/aur-general AUR Mailing List]<br />
* [http://pkgbuild.com/git/aur-mirror.git/ AUR Mirror Git repository]</div>Clfarron4https://wiki.archlinux.org/index.php?title=Kernel&diff=359286Kernel2015-02-04T01:50:13Z<p>Clfarron4: /* AUR packages */</p>
<hr />
<div>[[Category:Kernel]]<br />
[[cs:Kernel Compilation]]<br />
[[es:Kernel Compilation]]<br />
[[fr:Noyaux_Linux]]<br />
[[it:Kernels]]<br />
[[ja:Kernels]]<br />
[[zh-CN:Kernels]]<br />
{{Related articles start}}<br />
{{Related|Kernel modules}}<br />
{{Related|Kernel Panics}}<br />
{{Related|Linux-ck}}<br />
{{Related|sysctl}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Kernel (computing)|Wikipedia]]:<br />
:''the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components).''<br />
<br />
There are various alternative kernels available for Arch Linux in addition to the mainline Linux kernel. This article lists some of the options available in the repositories with a brief description of each. There is also a description of patches that can be applied to the system's kernel. The article ends with an overview of custom kernel compilation with links to various methods.<br />
<br />
==Precompiled kernels==<br />
===Official packages===<br />
;{{Pkg|linux}}<br />
:The Linux kernel and modules from the [core] repository. Vanilla kernel with [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux a few patches applied].<br />
<br />
;{{Pkg|linux-lts}}<br />
:Long term support (LTS) Linux kernel and modules from the [core] repository.<br />
<br />
;{{Pkg|linux-grsec}}<br />
:The Linux Kernel and modules with [[Grsecurity Patchset]] and PaX patches for increased security.<br />
<br />
===AUR packages===<br />
;{{AUR|linux-aufs_friendly}}<br />
:The aufs-compatible linux kernel and modules, useful when using [[docker]].<br />
<br />
;{{AUR|linux-bfs}}<br />
:Linux kernel and modules with the [[Wikipedia:Brain_Fuck_Scheduler|Brain Fuck Scheduler]] (BFS) - created by Con Kolivas for desktop computers with fewer than 4096 cores, with BFQ I/O scheduler as optional.<br />
<br />
;{{AUR|linux-ck}}<br />
:Linux Kernel built with Con Kolivas' ck1 patchset.<br />
:Additional options which can be toggled on/off in the [[PKGBUILD]] include: BFQ scheduler, nconfig, localmodconfig and use running kernel's config.<br />
:These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The ck patches include BFS.<br />
:For further information and installation instructions, please read the [[linux-ck]] main article.<br />
<br />
;{{AUR|linux-eee-ck}}<br />
:The Linux Kernel and modules for the Asus Eee PC 701, built with Con Kolivas' ck1 patchset.<br />
<br />
;{{AUR|linux-fbcondecor}}<br />
:The Linux Kernel and modules with [[Fbsplash|fbcondecor support]]. <br />
<br />
;{{AUR|linux-mainline}}<br />
:The Mainline Linux Kernel and modules.<br />
<br />
;{{AUR|linux-pax}}<br />
:The Linux Kernel and modules with PaX patches for increased security.<br />
<br />
;{{AUR|linux-ice}}<br />
:The Linux Kernel and modules with gentoo-sources patchset and [[TuxOnIce]] support.<br />
<br />
;{{AUR|linux-lqx}}<br />
:[http://liquorix.net Liquorix] is a distro kernel replacement built using a Debian-targeted configuration and the ZEN kernel sources. Designed for desktop, multimedia, and gaming workloads, it is often used as a Debian Linux performance replacement kernel. Damentz, the maintainer of the Liquorix patchset, is a developer for the ZEN patchset as well.<br />
<br />
;{{AUR|linux-lts34}}<br />
:The Linux 3.4 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts310}}<br />
:The Linux 3.10 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts312}}<br />
:The Linux 3.12 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-pf}}<br />
:Linux kernel and modules with the pf-kernel patch [-ck patchset (BFS included), TuxOnIce, BFQ] and aufs3.<br />
<br />
;{{AUR|linux-zen}}<br />
:The [http://zen-kernel.org ZEN Kernel] is a the result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for every day systems. Builds of a ZEN kernel are available [https://bbs.archlinux.org/viewtopic.php?id=117157 in this repository].<br />
<br />
;{{AUR|linux-libre}}<br />
:The Linux Kernel without "binary blobs".<br />
<br />
;{{AUR|kernel-netbook}}<br />
:Static kernel for netbooks with Intel Atom N270/N280/N450/N550 such as the Eee PC with the add-on of external firmware ({{AUR|broadcom-wl}}) and patchset (BFS + TuxOnIce + BFQ optional) - Only Intel GPU<br />
<br />
;{{AUR|linux-tresor}}/{{AUR|linux-lts-tresor}}<br />
:The current/LTS Linux Kernel and modules with integrated [https://www1.informatik.uni-erlangen.de/tresor TRESOR]<br />
<br />
;{{AUR|linux-git}}<br />
:Linux kernel and modules built using sources from [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Linus Torvalds' Git repository].<br />
<br />
;{{AUR|linux-chromebook}}<br />
:The Linux kernel with patches added to support chromebook hardware.<br />
<br />
==Patches and Patchsets==<br />
<br />
There are lots of reasons to patch your kernel, the major ones are for performance or support for non-mainline features such as reiser4 file system support. Other reasons might include fun and to see how it is done and what the improvements are.<br />
<br />
However, it is important to note that the best way to increase the speed of your system is to first tailor your kernel to your system, especially the architecture and processor type. For this reason using pre-packaged versions of custom kernels with generic architecture settings is not recommended or really worth it. A further benefit is that you can reduce the size of your kernel (and therefore build time) by not including support for things you do not have or use. For example, you might start with the stock kernel config when a new kernel version is released and remove support for things like bluetooth, video4linux, 1000Mbit ethernet, etc.; functionality you know you will not require for your specific machine. Although this page is not about customizing your kernel config, it is recommended as a first step--before moving on to using a patchset once you have grasped the fundamentals involved.<br />
<br />
The config files for the Arch kernel packages can be used as a starting point. They are in the Arch package source files, for example [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux] linked from {{Pkg|linux}}. The config file of your currently running kernel is also always available in your file system at {{ic|/proc/config.gz}}.<br />
<br />
===How to install===<br />
<br />
The installation process of custom kernel packages relies on the Arch Build System (ABS). If you have not built any custom packages yet you may consult the following articles: [[Arch Build System]] and [[Creating packages]].<br />
<br />
If you have not actually patched or customized a kernel before it is not that hard and there are many PKGBUILDs on the forum for individual patchsets. However, you are advised to start from scratch with a bit of research on the benefits of each patchset, rather than just arbitrarily picking one. This way you will learn much more about what you are doing rather than just choosing a kernel at startup and then be left wondering what it actually does.<br />
<br />
See [[#Compilation]].<br />
<br />
{{note|Do not forget to change the boot options in your bootloader, e.g. [[grub]], to use the new kernel.}}<br />
<br />
===Major patchsets===<br />
<br />
First of all it is important to note that patchsets are developed by a variety of people. Some of these people are actually involved in the production of the linux kernel and others are hobbyists, which may reflect its level of reliability and stability.<br />
<br />
It is also worth noting that some patchsets are built on the back of other patchsets (which may or may not be reflected in the title of the patch). Patchsets (and kernel updates) can be released '''very''' frequently and often it is not worth keeping up with ALL of them so do not go crazy, unless you make it your hobby!<br />
<br />
You can search google for more sets - remember to use quotes {{ic|"-nitro"}} for example otherwise google will deliberately '''NOT''' show the results you want!<br />
<br />
{{note|This section is for '''information only''' - clearly no guarantees of stability or reliability are implied by inclusion on this page.}}<br />
<br />
====-ck====<br />
[[Linux-ck]] contains patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://users.on.net/~ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.<br />
<br />
The -ck patches can be found at http://ck.kolivas.org/patches/3.0/<br />
<br />
====-rt====<br />
<br />
This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads. <br />
<br />
It further incorporates high resolution timers - a patch set, which is independently maintained.<br />
<br />
[as said from the [https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch Real-Time Linux Wiki]]<br />
<br />
patch at https://www.kernel.org/pub/linux/kernel/projects/rt/<br />
<br />
====-bld====<br />
{{Warning|This scheduler is in development.}}<br />
BLD is best described as a O(1) CPU picking technique. Which is done by reordering CPU runqueues based on runqueue loads. In other words, it keeps the scheduler aware of the load changes, which helps scheduler to keep runqueues in an order. This technique does not depend on scheduler ticks. The two most simple things in this technique are: load tracking and runqueue ordering; these are relatively simpler operations. Load tracking will be done whenever a load change happens on the system and based on this load change runqueue will be ordered. So, if we have an ordered runqueue from lowest to highest, then picking the less (or even busiest) runqueue is easy. Scheduler can pick the lowest runqueue without calculation and comparison at the time of placing a task in a runqueue. And while trying to distribute load at sched_exec and sched_fork our best choice is to pick the lowest busiest runqueue of the system. And in this way, system remains balanced without doing any load balancing. At the time of try_to_wake_up picking the idlest runqueue is topmost priority but it has been done as per domain basis to utilize CPU cache properly and it's an area where more concentration is requires.<br />
<br />
Google Code web page: https://code.google.com/p/bld/<br />
<br />
====-grsecurity====<br />
<br />
[[Grsecurity]] is a security focused patchset. It adds numerous security related features such as Role-Based Access Control and utilizes features of the PaX project. It can be used on a desktop but a public server would receive the greatest benefit. Some applications are incompatible with the additional security measures implemented by this patchset. If this occurs, consider using a lower security level.<br />
<br />
The -grsecurity patches can be found at https://grsecurity.net<br />
<br />
====Tiny-Patches====<br />
The goal of [http://elinux.org/Linux_Tiny Linux Tiny] is to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s.<br />
<br />
Patch releases against the mainstream Linux kernel have been discontinued. The developers chose to focus on a few patches and spend their time trying to get them merged into the mainline kernel.<br />
<br />
====-pf====<br />
{{AUR|linux-pf}} is yet another Linux kernel fork which provides you with a handful of awesome features not merged into mainline. It is based on neither existing Linux fork nor patchset, although some unofficial ports may be used if required patches have not been released officially.<br />
The most prominent patches of linux-pf are TuxOnIce, the CK patchset (most notably BFS), AUFS3, LinuxIMQ, l7 filter and BFQ.<br />
<br />
===Individual patches===<br />
<br />
These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset. I have included some common ones for starters.<br />
<br />
====Reiser4====<br />
<br />
[[Reiser4]]<br />
<br />
====fbsplash====<br />
[[fbsplash]]<br />
<br />
== Compilation ==<br />
Arch Linux provides for several methods of kernel compilation.<br />
<br />
=== Using the Arch Build System ===<br />
Using the [[Arch Build System]] takes advantage of the high quality of the existing {{Pkg|linux}} [[PKGBUILD]] and the benefits of [[Wikipedia:Package management system|package management]]. The PKGBUILD is structured so that you can stop the build after the source is downloaded and configure the kernel.<br />
<br />
See [[Kernels/Compilation/Arch Build System]].<br />
<br />
=== Traditional ===<br />
This involves manually downloading a source tarball, and compiling in your home directory as a normal user. Once configured, two installation methods are available; the traditional manual method, or with [[Makepkg]] + [[Pacman]].<br />
<br />
An advantage of learning the traditional method is that it is ''not'' distribution-specific. <br />
<br />
See [[Kernels/Compilation/Traditional]].<br />
<br />
===Proprietary NVIDIA driver===<br />
See [[NVIDIA#Alternate install: custom kernel]] for instructions on using the proprietary NVIDIA driver with a custom kernel.<br />
<br />
== See also ==<br />
*[http://www.kroah.com/lkn/ O'Reilly - Linux Kernel in a Nutshell] (free ebook)</div>Clfarron4https://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=354575Unofficial user repositories2014-12-30T19:47:23Z<p>Clfarron4: Repository is now both Current and LTS kernels with TRESOR.</p>
<hr />
<div>[[Category:Package management]]<br />
[[ja:Unofficial user repositories]]<br />
[[zh-CN:Unofficial user repositories]]<br />
{{Expansion|Please fill in the missing information about repository maintainers.}}<br />
<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
{{Warning|Neither the official Arch Linux Developers nor the Trusted Users perform tests of any sort to verify the contents of these repositories; it is up to each user to decide whether to trust their maintainers, and take full responsibility for whatever their decision brings.}}<br />
<br />
In order to use these repositories, you will have to add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories]]. If a repository is signed, you will have to obtain and locally sign the associated key, as explained in [[Pacman-key#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman tips#Custom local repository]].<br />
<br />
{{Tip|To get a list of all servers listed in this page: {{bc|<nowiki>curl 'https://wiki.archlinux.org/index.php/Unofficial_user_repositories' | grep 'Server = ' | sed "s/\$arch/$(uname -m)/g" | cut -f 3 -d' '</nowiki>}} <br />
<br />
For your convenience you can, for example, open them all in a web browser to inspect the contents of their repositories.<br />
}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
== Any ==<br />
<br />
"Any" repositories are architecture-independent. In other words, they can be used on both i686 and x86_64 systems.<br />
<br />
=== Signed ===<br />
<br />
==== bioinformatics-any ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/decryptedepsilon/ decryptedepsilon]<br />
* '''Description:''' A repository containing some python packages and genome browser for Bioinformatics<br />
* '''Key-ID:''' 60442BA4<br />
<br />
{{bc|<nowiki><br />
[bioinformatics-any]<br />
Server = http://decryptedepsilon.bl.ee/repo/any<br />
</nowiki>}}<br />
<br />
==== infinality-bundle-fonts ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle-fonts repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-fonts]<br />
Server = http://bohoomil.com/repo/fonts<br />
</nowiki>}}<br />
<br />
==== xyne-any ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for "any" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{Note|Use this repository only if there is no matching {{ic|[xyne-*]}} repository for your architecture.}}<br />
<br />
{{bc|<nowiki><br />
[xyne-any]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== archlinuxgr-any ====<br />
* '''Maintainer:'''<br />
* '''Description:''' The Hellenic (Greek) unofficial Arch Linux repository with many interesting packages.<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-any]<br />
Server = http://archlinuxgr.tiven.org/archlinux/any<br />
</nowiki>}}<br />
<br />
== Both i686 and x86_64 ==<br />
<br />
Repositories with both i686 and x86_64 versions. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
=== Signed ===<br />
<br />
==== archlinuxcn ====<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], Felix Yan (felixonmars, TU), [https://twitter.com/lilydjwg lilydjwg], and others<br />
* '''Description:''' Packages by the Chinese Arch Linux community (mostly signed)<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other.<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
SigLevel = Optional TrustAll<br />
Server = http://repo.archlinuxcn.org/$arch<br />
</nowiki>}}<br />
<br />
==== atom-editor-git ====<br />
* '''Maintainer:''' Matthew Stobbs<br />
* '''Upstream page:''' https://atom.io/<br />
* '''Description:''' The Atom Editor, created by the people behind github, to mimic Sublime Text.<br />
* '''Key-ID:''' 26EBCC57<br />
{{bc|<nowiki><br />
[atom-editor-git]<br />
Server = http://repo.stobbstechnical.com/$arch<br />
</nowiki>}}<br />
<br />
==== bbqlinux ====<br />
<br />
* '''Maintainer:''' [https://plus.google.com/u/0/+DanielHillenbrand/about Daniel Hillenbrand]<br />
* '''Description:''' Packages for Android Development<br />
* '''Upstream Page:''' http://bbqlinux.org/<br />
* '''Key-ID:''' Get the ''bbqlinux-keyring'' package, as it contains the needed keys.<br />
<br />
{{bc|<nowiki><br />
[bbqlinux]<br />
Server = http://packages.bbqlinux.org/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== carstene1ns ====<br />
<br />
* '''Maintainer:''' [[User:Carstene1ns|Carsten Teibes]]<br />
* '''Description:''' AUR packages maintained and/or used by Carsten Teibes (games/Wii/lib32/Python)<br />
* '''Upstream page:''' http://repo.carsten-teibes.de<br />
* '''Key-ID:''' 2476B20B<br />
<br />
{{bc|<nowiki><br />
[carstene1ns]<br />
Server = http://repo.carsten-teibes.de/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0 | Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = http://catalyst.wirephire.com/repo/catalyst/$arch<br />
## Mirrors, if the primary server does not work or is too slow:<br />
#Server = http://70.239.162.206/catalyst-mirror/repo/catalyst/$arch<br />
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/catalyst/$arch<br />
#Server = http://mirror.hactar.bz/Vi0L0/catalyst/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst-hd234k ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0 | Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = http://catalyst.wirephire.com/repo/catalyst-hd234k/$arch<br />
## Mirrors, if the primary server does not work or is too slow:<br />
#Server = http://70.239.162.206/catalyst-mirror/repo/catalyst-hd234k/$arch<br />
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/catalyst-hd234k/$arch<br />
#Server = http://mirror.hactar.bz/Vi0L0/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
==== city ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' http://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = http://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== demz-repo-archiso ====<br />
<br />
* '''Maintainer:''' [http://demizerone.com Jesus Alvarez (demizer)]<br />
* '''Description:''' Packages for installing ZFS from an Arch ISO live disk<br />
* '''Upstream page:''' https://github.com/demizer/archzfs<br />
* '''Key-ID:''' 0EE7A126<br />
<br />
==== demz-repo-core ====<br />
<br />
* '''Maintainer:''' [http://demizerone.com Jesus Alvarez (demizer)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/demizer/archzfs<br />
* '''Key-ID:''' 0EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-core]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<br />
<br />
{{bc|<nowiki><br />
[demz-repo-archiso]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== gnome-encfs-manager ====<br />
<br />
* '''Maintainer:''' Moritz Molch<br />
* '''Description:''' The gnome-encfs-manager can be used to integrate [[EncFS]] <br />
* '''Upstream page:''' [https://launchpad.net/gencfsm Gnome EncfsM].<br />
* '''Key ID:''' <br />
<br />
{{bc|<nowiki><br />
[home_moritzmolch_gencfsm_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/moritzmolch:/gencfsm/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== haavard ====<br />
<br />
* '''Maintainer:''' Håvard Pettersson<br />
* '''Description:''' Mostly Tox-related packages<br />
* '''Upstream page:''' https://haavard.me/archlinux<br />
* '''Key-ID:''' 928988CE<br />
{{bc|<nowiki><br />
[haavard]<br />
Server = https://haavard.me/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== haskell-core ====<br />
<br />
* '''Maintainer:''' Magnus Therning<br />
* '''Description:''' Arch-Haskell repository<br />
* '''Upstream page:''' https://github.com/archhaskell/habs<br />
* '''Key-ID:''' 4209170B<br />
<br />
{{bc|<nowiki><br />
[haskell-core]<br />
Server = http://xsounds.org/~haskell/core/$arch<br />
</nowiki>}}<br />
<br />
==== infinality-bundle ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle main repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle]<br />
Server = http://bohoomil.com/repo/$arch<br />
</nowiki>}}<br />
<br />
==== libre ====<br />
<br />
* '''Maintainer:''' Parabola Linux-libre<br />
* '''Description:''' Libre variations on Core/extra packages.<br />
* '''Upstream page:''' https://wiki.parabola.nu/Repositories#libre<br />
* '''Key-ID:''' https://www.parabola.nu/master-keys/<br />
<br />
{{Warning|Placing {{ic|[libre]}} before {{ic|[core]}} in {{ic|/etc/pacman.conf}} is '''not''' supported.}}<br />
<br />
{{Note|To install {{ic|parabola-keyring}}, {{ic|1=SigLevel = PackageOptional}} should be added temporarily.}}<br />
<br />
{{bc|<nowiki><br />
[libre]<br />
Server = https://repo.parabola.nu/libre/os/$arch<br />
</nowiki>}}<br />
<br />
==== lxqt-git ====<br />
<br />
* '''Maintainer:''' [http://www.stobbstechnical.com/ stobbsm]<br />
* '''Description:''' lxqt-git weekly build repository<br />
* '''Key-ID:''' 26EBCC57<br />
<br />
{{bc|<nowiki><br />
[lxqt-git]<br />
Server = http://repo.stobbstechnical.com/$arch<br />
</nowiki>}}<br />
<br />
==== metalgamer ====<br />
<br />
* '''Maintainer:''' [http://metalgamer.eu/ metalgamer]<br />
* '''Description:''' Packages I use and/or maintain on the AUR.<br />
* '''Key ID:''' F55313FB<br />
<br />
{{bc|<nowiki><br />
[metalgamer]<br />
Server = http://repo.metalgamer.eu/$arch<br />
</nowiki>}}<br />
<br />
==== openrc-eudev ====<br />
<br />
* '''Maintainer:''' Aaditya Bagga <aaditya_gnulinux@zoho.com><br />
* '''Description:''' Repo containing OpenRC and eudev packages<br />
* '''Upstream page:''' [https://bbs.archlinux.org/viewtopic.php?pid=1462275#p1462275 Arch forum post]<br />
* '''Key-ID:''' [http://pgp.mit.edu/pks/lookup?op=get&search=0x73A60C59518B147D 518B147D]<br />
<br />
{{bc|<nowiki><br />
[openrc-eudev]<br />
Server = http://downloads.sourceforge.net/project/mefiles/Manjaro/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== pipelight ====<br />
<br />
* '''Maintainer:''' <br />
* '''Description:''' Pipelight and wine-compholio<br />
* '''Upstream page:''' [http://fds-team.de/ fds-team.de]<br />
* '''Key-ID:''' E49CC0415DC2D5CA<br />
* '''Keyfile:''' http://repos.fds-team.de/Release.key<br />
{{bc|<nowiki>[pipelight]<br />
Server = http://repos.fds-team.de/stable/arch/$arch</nowiki>}}<br />
<br />
==== repo-ck ====<br />
<br />
* '''Maintainer:''' [[User:Graysky|graysky]]<br />
* '''Description:''' Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
* '''Upstream page:''' [http://repo-ck.com repo-ck.com]<br />
* '''Wiki:''' [[repo-ck]]<br />
* '''Key-ID:''' 5EE46C4C<br />
<br />
{{bc|<nowiki><br />
[repo-ck]<br />
Server = http://repo-ck.com/$arch<br />
</nowiki>}}<br />
<br />
==== seblu ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (virtualbox-ext-oracle, linux-seblu-meta, bedup).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = http://seblu.net/a/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== sergej-repo ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== arch-deepin ====<br />
<br />
* '''Maintainer:''' [https://build.opensuse.org/project/show/home:metakcahura metak], [https://github.com/fasheng fasheng]<br />
* '''Description:''' Porting software from Linux Deepin to Archlinux.<br />
* '''Upstream page:''' https://github.com/fasheng/arch-deepin<br />
<br />
{{bc|<nowiki><br />
[home_metakcahura_arch-deepin_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/metakcahura:/arch-deepin/Arch_Extra/$arch<br />
#Server = http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/repositories/home:/metakcahura:/arch-deepin/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== archaudio ====<br />
<br />
* '''Maintainer:''' [[User:Schivmeister|Ray Rashif]], [https://aur.archlinux.org/account/jhernberg Joakim Hernberg]<br />
* '''Description:''' Pro-audio packages<br />
<br />
{{bc|<nowiki><br />
[archaudio-production]<br />
Server = http://repos.archaudio.org/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== archie-repo ====<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Kalinda/ Kalinda]<br />
* '''Description:''' Repo for wine-silverlight, pipelight, and some misc packages.<br />
<br />
{{bc|<nowiki><br />
[archie-repo]<br />
Server = http://andontie.net/archie-repo/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxfr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgis ====<br />
* '''Maintainer:'''<br />
* '''Description:''' Maintainers needed - low bandwidth<br />
<br />
{{bc|<nowiki><br />
[archlinuxgis]<br />
Server = http://archlinuxgis.no-ip.org/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr-kde4 ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
==== arsch ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' From users of orgizm.net<br />
<br />
{{bc|<nowiki><br />
[arsch]<br />
Server = http://arsch.orgizm.net/$arch<br />
</nowiki>}}<br />
<br />
==== aurbin ====<br />
{{Note|This Repository wasn't updated since October 2013}}<br />
* '''Maintainer:'''<br />
* '''Description:''' Automated build of AUR packages<br />
* '''Upstream page:''' http://aurbin.net/<br />
<br />
{{bc|<nowiki><br />
[aurbin]<br />
Server = http://aurbin.net/$arch<br />
</nowiki>}}<br />
<br />
==== cinnamon ====<br />
* '''Maintainer:''' [https://github.com/jnbek jnbek]<br />
* '''Description:''' Stable and actively developed Cinnamon packages (Applets, Themes, Extensions), plus others (Hotot, qBitTorrent, GTK themes, Perl modules, and more).<br />
<br />
{{bc|<nowiki><br />
[cinnamon]<br />
Server = http://archlinux.zoelife4u.org/cinnamon/$arch<br />
</nowiki>}}<br />
<br />
==== ede ====<br />
* '''Maintainer:'''<br />
* '''Description:''' Equinox Desktop Environment repository<br />
<br />
{{bc|<nowiki><br />
[ede]<br />
Server = http://ede.elderlinux.org/repos/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== heftig ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#heftig Jan Steffens]<br />
* '''Description:''' Includes linux-zen and aurora (Firefox development build - works alongside {{Pkg|firefox}} in the ''extra'' repository).<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = http://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
==== herecura-stable ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
<br />
{{bc|<nowiki><br />
[herecura-stable]<br />
Server = http://repo.herecura.be/herecura-stable/$arch<br />
</nowiki>}}<br />
<br />
==== herecura-testing ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' additional packages for testing build against stable arch<br />
<br />
{{bc|<nowiki><br />
[herecura-testing]<br />
Server = http://repo.herecura.be/herecura-testing/$arch<br />
</nowiki>}}<br />
<br />
==== mesa-git ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = http://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== oracle ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Oracle database client<br />
<br />
{{Warning|By adding this you are agreeing to the Oracle license at http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html}}<br />
<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== pantheon ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = http://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== paulburton-fitbitd ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains fitbitd for synchronizing FitBit trackers<br />
<br />
{{bc|<nowiki><br />
[paulburton-fitbitd]<br />
Server = http://www.paulburton.eu/arch/fitbitd/$arch<br />
</nowiki>}}<br />
<br />
==== pfkernel ====<br />
<br />
* '''Maintainer:''' [[User:Nous|nous]]<br />
* '''Description:''' Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, Aufs3, linux-pf, kernel26-pf, gdm-old, nvidia-pf, nvidia-96xx, xchat-greek, arora-git<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/11734958/x86_64/index.html or start at http://tiny.cc/linux-pf<br />
<br />
{{bc|<nowiki><br />
[pfkernel]<br />
Server = http://dl.dropbox.com/u/11734958/$arch<br />
</nowiki>}}<br />
<br />
==== rstudio ====<br />
<br />
* '''Maintainer:''' Artem Klevtsov <a.a.klevtsov@gmail.com><br />
* '''Description:''' Rstudio IDE package (git version) and depends.<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = http://rstudio.archer.tw/$arch<br />
</nowiki>}}<br />
<br />
==== suckless ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' suckless.org packages<br />
<br />
{{bc|<nowiki><br />
[suckless]<br />
Server = http://dl.suckless.org/arch/$arch<br />
</nowiki>}}<br />
<br />
==== unity ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' unity packages for Arch<br />
<br />
{{bc|<nowiki><br />
[unity]<br />
Server = http://unity.xe-xe.org/$arch<br />
</nowiki>}}<br />
<br />
==== unity-extra ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' unity extra packages for Arch<br />
<br />
{{bc|<nowiki><br />
[unity-extra]<br />
Server = http://unity.xe-xe.org/extra/$arch<br />
</nowiki>}}<br />
<br />
==== home_tarakbumba_archlinux_Arch_Extra_standard ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains a few pre-built AUR packages (zemberek, firefox-kde-opensuse, etc.)<br />
<br />
{{bc|<nowiki><br />
[home_tarakbumba_archlinux_Arch_Extra_standard]<br />
Server = http://download.opensuse.org/repositories/home:/tarakbumba:/archlinux/Arch_Extra_standard/$arch<br />
</nowiki>}}<br />
<br />
== i686 only ==<br />
<br />
=== Signed ===<br />
<br />
==== eee-ck ====<br />
* '''Maintainer:''' Gruppenpest<br />
* '''Description:''' Kernel and modules optimized for Asus Eee PC 701, with -ck patchset.<br />
* '''Key-ID:''' 27D4A19A<br />
* '''Keyfile''' http://zembla.frozenslumber.com/repo/gruppenpest.gpg<br />
<br />
{{bc|<nowiki><br />
[eee-ck]<br />
Server = http://zembla.frozenslumber.com/repo<br />
</nowiki>}}<br />
<br />
==== phillid ====<br />
* '''Maintainer:''' Phillid<br />
* '''Description:''' Various GCC-s and matching binutils-es which target bare-bones formats (for OS dev). The GCC toolchains are shrunk to ~8&nbsp;MiB each by disabling NLS and everything but the C front-end. Thrown in there is some ham-related stuff I use such as hamlib, xastir, qsstv. Also a couple of legacy packages which are a bit lengthy to build for most people (kdelibs3, qt3).<br />
* '''Key-ID:''' 28F1E6CE<br />
<br />
{{bc|<nowiki><br />
[phillid]<br />
Server = http://phillid.tk/r/i686/<br />
</nowiki>}}<br />
<br />
==== xyne-i686 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "i686" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-i686]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' each program I'm using on x86_64 is compiled for i686 too<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/i686<br />
</nowiki>}}<br />
<br />
==== esclinux ====<br />
{{Note|Off-line since 2014-07-02.}}<br />
* '''Maintainer:'''<br />
* '''Description:''' Mostly games, interactive fiction, and abc notation stuff already on the AUR.<br />
<br />
{{bc|<nowiki><br />
[esclinux]<br />
Server = http://download.tuxfamily.org/esclinuxcd/ressources/repo/i686/<br />
</nowiki>}}<br />
<br />
==== kpiche ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Stable OpenSync packages.<br />
<br />
{{bc|<nowiki><br />
[kpiche]<br />
Server = http://kpiche.archlinux.ca/repo<br />
</nowiki>}}<br />
<br />
==== kernel26-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 2.6.39<br />
<br />
{{bc|<nowiki><br />
[kernel26-pae]<br />
Server = http://kernel26-pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
==== linux-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 3.0<br />
<br />
{{bc|<nowiki><br />
[linux-pae]<br />
Server = http://pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
==== rfad ====<br />
<br />
* '''Maintainer:''' requiem [at] archlinux.us <br />
* '''Description:''' Repository made by haxit<br />
<br />
{{bc|<nowiki><br />
[rfad]<br />
Server = http://web.ncf.ca/ey723/archlinux/repo/<br />
</nowiki>}}<br />
<br />
==== studioidefix ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Precompiled boxee packages.<br />
<br />
{{bc|<nowiki><br />
[studioidefix]<br />
Server = http://studioidefix.googlecode.com/hg/repo/i686<br />
</nowiki>}}<br />
<br />
== x86_64 only ==<br />
<br />
=== Signed ===<br />
<br />
==== apathism ====<br />
<br />
* '''Maintainer:''' Koryabkin Ivan ([https://aur.archlinux.org/account/apathism/ apathism])<br />
* '''Upstream page:''' https://apathism.net/<br />
* '''Description:''' AUR packages that would take long to build, such as {{AUR|firefox-kde-opensuse}}.<br />
* '''Key-ID:''' 3E37398D<br />
* '''Keyfile:''' http://apathism.net/archlinux/apathism.key<br />
<br />
{{bc|<nowiki><br />
[apathism]<br />
Server = http://apathism.net/archlinux/<br />
</nowiki>}}<br />
<br />
==== bioinformatics ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/decryptedepsilon/ decryptedepsilon]<br />
* '''Description:''' A repository containing some software tools for Bioinformatics<br />
* '''Key-ID:''' 60442BA4<br />
<br />
{{bc|<nowiki><br />
[bioinformatics]<br />
Server = http://decryptedepsilon.bl.ee/repo/x86_64<br />
</nowiki>}}<br />
<br />
==== boyska64 ====<br />
<br />
* '''Maintainer:''' boyska<br />
* '''Description:''' Personal repository: cryptography, sdr, mail handling and misc<br />
* '''Key-ID:''' 0x7395DCAE58289CA9<br />
<br />
{{bc|<nowiki><br />
[boyska64]<br />
Server = http://boyska.s.pt-labs.net/archrepo<br />
</nowiki>}}<br />
<br />
==== coderkun-aur ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://arch.coderkun.de<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-audio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://arch.coderkun.de<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-java ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with java related software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://arch.coderkun.de<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-java]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-nonfree ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with proprietary (dropbox, nvidia, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://arch.coderkun.de<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-nonfree]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== freifunk-rheinland ====<br />
<br />
* '''Maintainer:''' nomaster<br />
* '''Description:''' Packages for the Freifunk project: batman-adv, batctl, fastd and dependencies.<br />
<br />
{{bc|<nowiki><br />
[freifunk-rheinland]<br />
Server = http://mirror.fluxent.de/archlinux-custom/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== infinality-bundle-multilib ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle multilib repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-multilib]<br />
Server = http://bohoomil.com/repo/multilib/$arch<br />
</nowiki>}}<br />
<br />
==== siosm-aur ====<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
==== siosm-selinux ====<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages required for SELinux support – work in progress (notably, missing an Arch Linux-compatible SELinux policy). See the [[SELinux]] page for details.<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-selinux]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
==== subtitlecomposer ====<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EA8CEBEE<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = http://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== xyne-x86_64 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "x86_64" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
==== quarry ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== linux-lts-ck ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Current ArchLinux LTS kernel with the CK patch<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts-ck/x86_64/index.html or start at http://tiny.cc/linux-lts-ck<br />
<br />
{{bc|<nowiki><br />
[linux-lts-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts-ck/$arch<br />
</nowiki>}}<br />
<br />
==== linux-lts31x ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Older LTS kernels (3.10 and 3.12 branch)<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts31x/x86_64/index.html or start at http://tiny.cc/linux-lts31x<br />
<br />
{{bc|<nowiki><br />
[linux-lts31x]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x/$arch<br />
</nowiki>}}<br />
<br />
==== linux-lts31x-ck ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Older LTS kernels (3.10 and 3.12 branch) with the CK patch<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts31x-ck/x86_64/index.html or start at http://tiny.cc/linux-lts31x-ck<br />
<br />
{{bc|<nowiki><br />
[linux-lts31x-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x-ck/$arch<br />
</nowiki>}}<br />
<br />
==== linux-ck-pax ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Current Arch Kernel with the CK and PaX security patchsets<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-ck-pax/x86_64/index.html or start at http://tiny.cc/linux-ck-pax<br />
<br />
{{bc|<nowiki><br />
[linux-ck-pax]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-ck-pax/$arch<br />
</nowiki>}}<br />
<br />
==== linux-tresor ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Arch Current and LTS kernels with TRESOR<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-tresor/x86_64/index.html or start at http://tiny.cc/linux-tresor<br />
<br />
{{bc|<nowiki><br />
[linux-tresor]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-tresor/$arch<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== alucryd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = http://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
==== alucryd-multilib ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = http://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.dyndns.org/doku.php/blog/repository {{Dead link|2013|11|30}}<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/x86_64<br />
</nowiki>}}<br />
<br />
==== archstudio ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Audio and Music Packages optimized for Intel Core i3, i5, and i7.<br />
* '''Upstream page:''' http://www.xsounds.org/~archstudio<br />
<br />
{{bc|<nowiki><br />
[archstudio]<br />
Server = http://www.xsounds.org/~archstudio/x86_64<br />
</nowiki>}}<br />
<br />
==== brtln ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bpiotrowski Bartłomiej Piotrowski]<br />
* '''Description:''' Some VCS packages.<br />
<br />
{{bc|<nowiki><br />
[brtln]<br />
Server = http://pkgbuild.com/~barthalion/brtln/$arch/<br />
</nowiki>}}<br />
<br />
==== hawaii ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' hawaii Qt5/Wayland-based desktop environment<br />
* '''Upstream page:''' http://www.maui-project.org/<br />
<br />
{{bc|<nowiki><br />
[hawaii]<br />
Server = http://archive.maui-project.org/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== kps ====<br />
<br />
* '''Maintainer:''' kps<br />
* '''Description:''' gmt, catalyst-test, ttf-ms-win8, rstudio, meshlab, gcc-gcj, vlc-git, ffmpeg-git (k10 & intel opt.), docear, maperitive, libressl, bkchem ...<br />
<br />
{{bc|<nowiki><br />
[kps]<br />
Server = http://kps.bplaced.net/repo/$arch<br />
</nowiki>}}<br />
<br />
==== miusystem ====<br />
<br />
* '''Maintainer:''' Theodore Keloglou <theodore.keloglou@gmail.com><br />
* '''Description:''' Packages that I use and might interest others<br />
<br />
{{bc|<nowiki><br />
[miusystem]<br />
Server = https://miusystem.com/archlinux-repo<br />
</nowiki>}}<br />
<br />
==== pnsft-pur ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/x86_64<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR updated every 8 hours.<br />
* '''Upstream page:''' http://arch.linuxx.org<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
# in 2014-12-24 it seems no one worked<br />
#Server = http://arch.linuxx.org/archlinux/$repo/os/$arch<br />
#Server = http://amr.linuxd.org/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== rakudo ====<br />
<br />
* '''Maintainer:''' spider-mario <spidermario@free.fr><br />
* '''Description:''' Rakudo Perl6<br />
<br />
{{bc|<nowiki><br />
[rakudo]<br />
Server = http://spidermario.free.fr/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== rightscale ====<br />
<br />
* '''Maintainer:''' Chris Fordham <chris@fordham-nagy.id.au><br />
* '''Description:''' Packages for RightScale including the RightLink cloud instance agent. Install the package, rightscale-agent.<br />
<br />
{{bc|<nowiki><br />
[rightscale]<br />
Server = https://s3-us-west-1.amazonaws.com/archlinux-rightscale/$arch<br />
</nowiki>}}<br />
<br />
==== seiichiro ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' VDR and some plugins, mms, foo2zjs-drivers<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = http://repo.seiichiro0185.org/x86_64<br />
</nowiki>}}<br />
<br />
==== studioidefix ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Precompiled boxee packages.<br />
<br />
{{bc|<nowiki><br />
[studioidefix]<br />
Server = http://studioidefix.googlecode.com/hg/repo/x86_64<br />
</nowiki>}}<br />
<br />
== armv6h only ==<br />
<br />
=== Unsigned ===<br />
<br />
==== arch-fook-armv6h ====<br />
<br />
* '''Maintainer:''' Jaska Kivelä <jaska@kivela.net><br />
* '''Description:''' Stuff that I have compiled for my Raspberry PI. Including Enlightenment and home automation stuff.<br />
<br />
{{bc|<nowiki><br />
[arch-fook-armv6h]<br />
Server = http://kivela.net/jaska/arch-fook-armv6h<br />
</nowiki>}}</div>Clfarron4https://wiki.archlinux.org/index.php?title=Linux-ck&diff=345106Linux-ck2014-11-17T13:44:43Z<p>Clfarron4: Addition of lts-ck repositories.</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ru:Linux-ck]]<br />
[[zh-CN:Linux-ck]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related|Repo-ck}}<br />
{{Related|Modprobed-db}}<br />
{{Related articles end}}<br />
<br />
== General package details ==<br />
<br />
{{AUR|Linux-ck}} is a package available in the [[AUR]] and in the [[Linux-ck#2_._Use_pre-compiled_packages|unofficial linux-ck repo]] that allows users to run a kernel/headers setup patched with Con Kolivas' ck1 patchset, including the Brain Fuck Scheduler (BFS). Many Archers elect to use this package for the BFS' excellent desktop interactivity and responsiveness under any load situation. Additionally, the bfs imparts performance gains beyond interactivity. For example, see: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf].<br />
<br />
=== Release cycle ===<br />
<br />
Linux-ck roughly follows the release cycle of the official ARCH kernel. The following are requirements for its release:<br />
<br />
* Upstream code<br />
* CK's Patchset<br />
* BFQ Patchset<br />
* ARCH config/config.x86_64 sets for major version jumps only<br />
<br />
=== Package defaults ===<br />
<br />
There are '''three''' modifications to the config files:<br />
# The options that the ck patchset enable/disable.<br />
# The options that the BFQ patchset need to compile without user interaction.<br />
# Apply [https://github.com/graysky2/kernel_gcc_patch GCC patch] that enables additional CPU optimizations at compile time (these options are not part of the standard linux-ck package and are only available when the user compiles custom options).<br />
<br />
'''All other options are set to the ARCH defaults outlined in the main kernel's config files.''' Users are of course free to modify them! The linux-ck package contains an option to switch on the '''nconfig''' config editor (see section below). For some suggestions, see CK's [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ].<br />
<br />
=== Long-Term Support (LTS) CK releases ===<br />
<br />
In addition to the linux-ck package, there are the following LTS kernel releases patched with the above patchsets, with the previously mentioned modifications to the config files:<br />
<br />
* {{AUR|linux-lts-ck}} - The current ArchLinux LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts310-ck}} - The 3.10 LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts312-ck}} - The 3.12 LTS kernel patched with the CK patchset<br />
<br />
'''These three packages are maintained by clfarron4. Pre-packaged versions will not be found in the unofficial ck repo.'''<br />
<br />
== Installation options ==<br />
<br />
{{Note|As with *any* additional kernel, users will need to manually edit their boot loader's config file to make it aware of the new kernel images. For example, users of [[GRUB]] should execute "grub-mkconfig -o /boot/grub/grub.cfg". Syslinux, GRUB-legacy, etc. will need to be modified as well.}}<br />
<br />
Users have two options to get these kernel packages.<br />
<br />
=== 1. Compile the package from source ===<br />
<br />
The [[AUR]] contains entries for both packages mentioned above.<br />
<br />
Users can customize the linux-ck package via tweaks in the PKGBUILD:<br />
<br />
* Optional nconfig for user specific tweaking.<br />
* Option to compile a minimal set of modules via a make localmodconfig.<br />
* Option to bypass the standard ARCH config options and simply use the current kernel's .config file.<br />
* Optionally set the [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O scheduler] as default.<br />
<br />
More details about these options are provided in the PKGBUILD itself via line comments. Be sure to read them if compiling from the AUR!<br />
<br />
{{Note|There are related PKGBUILDs in the AUR for other common modules unique to linux-ck. For example {{AUR|nvidia-ck}}, {{AUR|nvidia-304xx-ck}},{{AUR|nvidia-340xx-ck}}, and {{AUR|broadcom-wl-ck}} to name a few.}}<br />
<br />
===2 . Use pre-compiled packages ===<br />
<br />
If users would rather not spend the time to compile on their own, an unofficial repo maintained by [[User:Graysky|graysky]] is available to the community.<br />
<br />
For details, see: [[Repo-ck]].<br />
<br />
There are also unofficial repositories for the aforementioned LTS branches, available at [[Unofficial user repositories#linux-lts-ck|linux-lts-ck]] and [[Unofficial user repositories#linux-lts31x-ck|linux-lts31x-ck]], maintained by [[User:clfarron4|clfarron4]].<br />
<br />
== How to enable the BFQ I/O Scheduler ==<br />
{{Note|Do not confuse BFS (Brain Fuck Scheduler) with BFQ (Budget Fair Scheduler). The BFS is a CPU scheduler and is enabled by default whereas BFQ is an I/O scheduler and must implicitly be enabled in order to use it.}}<br />
<br />
Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput. Its creator has released some [http://www.youtube.com/watch?v=KhZl9LjCKuU benchmarks] which shows some pretty amazing latency performance.<br />
<br />
Since linux-ck-3.0.4-2, the BFQ patchset is applied to the package by default, but the scheduler must be enabled manually. Users have several options to do so.<br />
<br />
=== Enable BFQ for all devices ===<br />
<br />
If compiling from the AUR, simply set the BFQ flag to "y" in the PKGBUILD prior to building<br />
_BFQ_enable_="y"<br />
<br />
Users of [[repo-ck]] or those who have not modified the PKGBUILD prior to building may appened {{ic|1=elevator=bfq}} to the [[kernel parameters]].<br />
<br />
=== Enable BFQ for only specified devices ===<br />
<br />
An alternative method is to direct the kernel to use BFQ on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, create the following tmpfile where sdX is the desired device:<br />
{{hc|/etc/tmpfiles.d/set_IO_scheduler.conf|<br />
w /sys/block/sdX/queue/scheduler - - - - bfq}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Boot loader and Linux-ck ===<br />
The boot loader configuration needs to find the (new) kernel images.<br />
For GRUB, see [[GRUB#Generating main configuration file]]. For other boot loaders it may be necessary to add a custom entry.<br />
<br />
This is an example if adding a custom entry if using [[REFInd#Custom_Menu_Entries|REFInd]]:<br />
{{hc|refind.conf|<nowiki><br />
menuentry Linux {<br />
icon EFI/refind/icons/os_linux.png<br />
ostype Linux<br />
volume boot<br />
loader /vmlinuz-linux-ck<br />
initrd /initramfs-linux-ck.img<br />
options "root=/dev/mapper/root elevator=bfq"<br />
}<br />
</nowiki>}}<br />
<br />
=== Running VirtualBox with Linux-ck ===<br />
<br />
VirtualBox works just fine with custom kernels such as Linux-ck ''without'' the need to keep any of the official ARCH kernel-headers packages on the system!<br />
<br />
Don't forget to add users to the ''vboxusers '' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
==== Option 1. Use the unofficial repo (recommended if linux-ck is installed from Repo-ck) ====<br />
<br />
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as pre-compiled packages in the repo itself. If you built your linux-ck from the AUR you '''cannot use the repo''' as all packages in the repo are matched groups.}}<br />
<br />
See the [[Repo-ck]] article to set up http://repo-ck.com for pacman to use directly.<br />
<br />
==== Option 2. The virtualbox-ck-host-modules package (recommended if linux-ck is built by you from the AUR) ====<br />
<br />
Install the {{AUR|virtualbox-ck-host-modules}} package and then install '''virtualbox''' package.<br />
<br />
==== Option 3. Use DKMS (more complicated, recommended with LTS releases) ====<br />
<br />
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup dkms as follows:<br />
# pacman -S virtualbox virtualbox-host-dkms<br />
# dkms install vboxhost/4.3.12<br />
<br />
{{Note|Make sure to substitute the correct version number of virtualbox in the second command. At the time of writing, 4.3.12 is current.}}<br />
<br />
=== Downgrading ===<br />
<br />
Users wishing to downgrade to a previous version of linux-ck, have several options:<br />
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1. <br />
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for linux-ck dating back to linux-ck-2.6.39.3-1.<br />
<br />
=== Forum support ===<br />
<br />
Always feel free to open a thread in the forums for support. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux- ck package.<br />
<br />
== A little about the BFS ==<br />
<br />
The Brain Fuck Scheduler is a desktop orientated cpu process scheduler with extremely low latencies for excellent interactivity within normal load levels.<br />
<br />
=== BFS design goals ===<br />
<br />
The BFS has two major design goals:<br />
#Achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.<br />
#Completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design.<br />
<br />
For additional information, see the [[linux-ck#Further_Reading_on_BFS_and_CK_Patchset]] section of this article.<br />
<br />
=== An example video about queuing theory ===<br />
<br />
See [http://www.youtube.com/watch?v=F5Ri_HhziI0 this video] about queuing theory for an interesting parallel with<br />
supermarket checkouts. Quote from CK, "the relevance of that video is that BFS uses a single queue, whereas the mainline Linux kernel uses a multiple queue design. The people are tasks, and the checkouts are CPUs. Of course there's a lot more to a CPU scheduler than just the queue design, but I thought this video was very relevant."<br />
<br />
=== Some performance-based metrics: BFS vs. CFS ===<br />
<br />
A major benefit of using the BFS is increased responsiveness. The benefits however, are not limited to desktop feel. [[User:Graysky|Graysky]] put together some non-responsiveness based benchmarks to compare it to the CFS contained in the "stock" linux kernel. Seven different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Again, these end-points were never factors in the primary design goals of the bfs. Results were encouraging. <br />
<br />
For those not wanting to see the full report, here is the conclusion:<br />
Kernels patched with the ck1 patch set including the bfs outperformed the vanilla kernel using the cfs at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).<br />
<br />
Moreover, several "modern" CPUs (Intel C2D and Ci7) that represent common workstations and laptops, consistently outperformed the cfs in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.<br />
<br />
[[http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf]] is available for download.<br />
<br />
=== Check if enabled ===<br />
<br />
This start-up message should appear in the kernel ring buffer when BFS in enabled:<br />
# dmesg | grep scheduler<br />
...<br />
[ 0.380500] BFS CPU scheduler v0.420 by Con Kolivas.<br />
<br />
== BFS myths==<br />
<br />
=== BFS patched kernels CAN in fact use systemd ===<br />
<br />
It is a common mistake to think that BFS does not support cgroups. It does support cgroups, just not all the cgroup features (e. g. CPU limiting won't work).<br />
<br />
== Further Reading on BFS and CK Patchset ==<br />
<br />
* [http://ck.kolivas.org/patches/bfs/bfs-faq.txt Con Kolivas' White Paper on the BFS]<br />
* [http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler Wikipedia's BFS Article]<br />
* [http://ck-hack.blogspot.com/ Con Kolivas' Blog]</div>Clfarron4https://wiki.archlinux.org/index.php?title=Linux-ck&diff=345104Linux-ck2014-11-17T13:37:42Z<p>Clfarron4: /* Long-Term Support (LTS) CK releases */</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ru:Linux-ck]]<br />
[[zh-CN:Linux-ck]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related|Repo-ck}}<br />
{{Related|Modprobed-db}}<br />
{{Related articles end}}<br />
<br />
== General package details ==<br />
<br />
{{AUR|Linux-ck}} is a package available in the [[AUR]] and in the [[Linux-ck#2_._Use_pre-compiled_packages|unofficial linux-ck repo]] that allows users to run a kernel/headers setup patched with Con Kolivas' ck1 patchset, including the Brain Fuck Scheduler (BFS). Many Archers elect to use this package for the BFS' excellent desktop interactivity and responsiveness under any load situation. Additionally, the bfs imparts performance gains beyond interactivity. For example, see: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf].<br />
<br />
=== Release cycle ===<br />
<br />
Linux-ck roughly follows the release cycle of the official ARCH kernel. The following are requirements for its release:<br />
<br />
* Upstream code<br />
* CK's Patchset<br />
* BFQ Patchset<br />
* ARCH config/config.x86_64 sets for major version jumps only<br />
<br />
=== Package defaults ===<br />
<br />
There are '''three''' modifications to the config files:<br />
# The options that the ck patchset enable/disable.<br />
# The options that the BFQ patchset need to compile without user interaction.<br />
# Apply [https://github.com/graysky2/kernel_gcc_patch GCC patch] that enables additional CPU optimizations at compile time (these options are not part of the standard linux-ck package and are only available when the user compiles custom options).<br />
<br />
'''All other options are set to the ARCH defaults outlined in the main kernel's config files.''' Users are of course free to modify them! The linux-ck package contains an option to switch on the '''nconfig''' config editor (see section below). For some suggestions, see CK's [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ].<br />
<br />
=== Long-Term Support (LTS) CK releases ===<br />
<br />
In addition to the linux-ck package, there are the following LTS kernel releases patched with the above patchsets, with the previously mentioned modifications to the config files:<br />
<br />
* {{AUR|linux-lts-ck}} - The current ArchLinux LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts310-ck}} - The 3.10 LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts312-ck}} - The 3.12 LTS kernel patched with the CK patchset<br />
<br />
'''These three packages are maintained by clfarron4. Pre-packaged versions will not be found in the unofficial ck repo.'''<br />
<br />
== Installation options ==<br />
<br />
{{Note|As with *any* additional kernel, users will need to manually edit their boot loader's config file to make it aware of the new kernel images. For example, users of [[GRUB]] should execute "grub-mkconfig -o /boot/grub/grub.cfg". Syslinux, GRUB-legacy, etc. will need to be modified as well.}}<br />
<br />
Users have two options to get these kernel packages.<br />
<br />
=== 1. Compile the package from source ===<br />
<br />
The [[AUR]] contains entries for both packages mentioned above.<br />
<br />
Users can customize the linux-ck package via tweaks in the PKGBUILD:<br />
<br />
* Optional nconfig for user specific tweaking.<br />
* Option to compile a minimal set of modules via a make localmodconfig.<br />
* Option to bypass the standard ARCH config options and simply use the current kernel's .config file.<br />
* Optionally set the [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O scheduler] as default.<br />
<br />
More details about these options are provided in the PKGBUILD itself via line comments. Be sure to read them if compiling from the AUR!<br />
<br />
{{Note|There are related PKGBUILDs in the AUR for other common modules unique to linux-ck. For example {{AUR|nvidia-ck}}, {{AUR|nvidia-304xx-ck}},{{AUR|nvidia-340xx-ck}}, and {{AUR|broadcom-wl-ck}} to name a few.}}<br />
<br />
===2 . Use pre-compiled packages ===<br />
<br />
If users would rather not spend the time to compile on their own, an unofficial repo maintained by [[User:Graysky|graysky]] is available to the community.<br />
<br />
For details, see: [[Repo-ck]].<br />
<br />
== How to enable the BFQ I/O Scheduler ==<br />
{{Note|Do not confuse BFS (Brain Fuck Scheduler) with BFQ (Budget Fair Scheduler). The BFS is a CPU scheduler and is enabled by default whereas BFQ is an I/O scheduler and must implicitly be enabled in order to use it.}}<br />
<br />
Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput. Its creator has released some [http://www.youtube.com/watch?v=KhZl9LjCKuU benchmarks] which shows some pretty amazing latency performance.<br />
<br />
Since linux-ck-3.0.4-2, the BFQ patchset is applied to the package by default, but the scheduler must be enabled manually. Users have several options to do so.<br />
<br />
=== Enable BFQ for all devices ===<br />
<br />
If compiling from the AUR, simply set the BFQ flag to "y" in the PKGBUILD prior to building<br />
_BFQ_enable_="y"<br />
<br />
Users of [[repo-ck]] or those who have not modified the PKGBUILD prior to building may appened {{ic|1=elevator=bfq}} to the [[kernel parameters]].<br />
<br />
=== Enable BFQ for only specified devices ===<br />
<br />
An alternative method is to direct the kernel to use BFQ on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, create the following tmpfile where sdX is the desired device:<br />
{{hc|/etc/tmpfiles.d/set_IO_scheduler.conf|<br />
w /sys/block/sdX/queue/scheduler - - - - bfq}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Boot loader and Linux-ck ===<br />
The boot loader configuration needs to find the (new) kernel images.<br />
For GRUB, see [[GRUB#Generating main configuration file]]. For other boot loaders it may be necessary to add a custom entry.<br />
<br />
This is an example if adding a custom entry if using [[REFInd#Custom_Menu_Entries|REFInd]]:<br />
{{hc|refind.conf|<nowiki><br />
menuentry Linux {<br />
icon EFI/refind/icons/os_linux.png<br />
ostype Linux<br />
volume boot<br />
loader /vmlinuz-linux-ck<br />
initrd /initramfs-linux-ck.img<br />
options "root=/dev/mapper/root elevator=bfq"<br />
}<br />
</nowiki>}}<br />
<br />
=== Running VirtualBox with Linux-ck ===<br />
<br />
VirtualBox works just fine with custom kernels such as Linux-ck ''without'' the need to keep any of the official ARCH kernel-headers packages on the system!<br />
<br />
Don't forget to add users to the ''vboxusers '' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
==== Option 1. Use the unofficial repo (recommended if linux-ck is installed from Repo-ck) ====<br />
<br />
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as pre-compiled packages in the repo itself. If you built your linux-ck from the AUR you '''cannot use the repo''' as all packages in the repo are matched groups.}}<br />
<br />
See the [[Repo-ck]] article to set up http://repo-ck.com for pacman to use directly.<br />
<br />
==== Option 2. The virtualbox-ck-host-modules package (recommended if linux-ck is built by you from the AUR) ====<br />
<br />
Install the {{AUR|virtualbox-ck-host-modules}} package and then install '''virtualbox''' package.<br />
<br />
==== Option 3. Use DKMS (more complicated, recommended with LTS releases) ====<br />
<br />
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup dkms as follows:<br />
# pacman -S virtualbox virtualbox-host-dkms<br />
# dkms install vboxhost/4.3.12<br />
<br />
{{Note|Make sure to substitute the correct version number of virtualbox in the second command. At the time of writing, 4.3.12 is current.}}<br />
<br />
=== Downgrading ===<br />
<br />
Users wishing to downgrade to a previous version of linux-ck, have several options:<br />
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1. <br />
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for linux-ck dating back to linux-ck-2.6.39.3-1.<br />
<br />
=== Forum support ===<br />
<br />
Always feel free to open a thread in the forums for support. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux- ck package.<br />
<br />
== A little about the BFS ==<br />
<br />
The Brain Fuck Scheduler is a desktop orientated cpu process scheduler with extremely low latencies for excellent interactivity within normal load levels.<br />
<br />
=== BFS design goals ===<br />
<br />
The BFS has two major design goals:<br />
#Achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.<br />
#Completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design.<br />
<br />
For additional information, see the [[linux-ck#Further_Reading_on_BFS_and_CK_Patchset]] section of this article.<br />
<br />
=== An example video about queuing theory ===<br />
<br />
See [http://www.youtube.com/watch?v=F5Ri_HhziI0 this video] about queuing theory for an interesting parallel with<br />
supermarket checkouts. Quote from CK, "the relevance of that video is that BFS uses a single queue, whereas the mainline Linux kernel uses a multiple queue design. The people are tasks, and the checkouts are CPUs. Of course there's a lot more to a CPU scheduler than just the queue design, but I thought this video was very relevant."<br />
<br />
=== Some performance-based metrics: BFS vs. CFS ===<br />
<br />
A major benefit of using the BFS is increased responsiveness. The benefits however, are not limited to desktop feel. [[User:Graysky|Graysky]] put together some non-responsiveness based benchmarks to compare it to the CFS contained in the "stock" linux kernel. Seven different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Again, these end-points were never factors in the primary design goals of the bfs. Results were encouraging. <br />
<br />
For those not wanting to see the full report, here is the conclusion:<br />
Kernels patched with the ck1 patch set including the bfs outperformed the vanilla kernel using the cfs at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).<br />
<br />
Moreover, several "modern" CPUs (Intel C2D and Ci7) that represent common workstations and laptops, consistently outperformed the cfs in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.<br />
<br />
[[http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf]] is available for download.<br />
<br />
=== Check if enabled ===<br />
<br />
This start-up message should appear in the kernel ring buffer when BFS in enabled:<br />
# dmesg | grep scheduler<br />
...<br />
[ 0.380500] BFS CPU scheduler v0.420 by Con Kolivas.<br />
<br />
== BFS myths==<br />
<br />
=== BFS patched kernels CAN in fact use systemd ===<br />
<br />
It is a common mistake to think that BFS does not support cgroups. It does support cgroups, just not all the cgroup features (e. g. CPU limiting won't work).<br />
<br />
== Further Reading on BFS and CK Patchset ==<br />
<br />
* [http://ck.kolivas.org/patches/bfs/bfs-faq.txt Con Kolivas' White Paper on the BFS]<br />
* [http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler Wikipedia's BFS Article]<br />
* [http://ck-hack.blogspot.com/ Con Kolivas' Blog]</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=336656User:Clfarron42014-09-22T06:21:29Z<p>Clfarron4: </p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==My Repositories (x86_64 only for now)==<br />
[https://tiny.cc/linux-lts-ck linux-lts-ck]<br />
{{bc|<nowiki><br />
[linux-lts-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts-ck/$arch<br />
</nowiki>}}<br />
<br />
[https://tiny.cc/linux-lts31x linux-lts31x]<br />
{{bc|<nowiki><br />
[linux-lts31x]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x/$arch<br />
</nowiki>}}<br />
<br />
[https://tiny.cc/linux-lts31x-ck linux-lts31x-ck]<br />
{{bc|<nowiki><br />
[linux-lts31x-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x-ck/$arch<br />
</nowiki>}}<br />
<br />
[https://tiny.cc/linux-ck-pax linux-ck-pax]<br />
{{bc|<nowiki><br />
[linux-ck-pax]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-ck-pax/$arch<br />
</nowiki>}}<br />
<br />
[https://tiny.cc/linux-tresor linux-tresor]<br />
{{bc|<nowiki><br />
[linux-tresor]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-tresor/$arch<br />
</nowiki>}}<br />
<br />
[https://tiny.cc/arch-nuke-keys nuke-keys]<br />
{{bc|<nowiki><br />
[nuke-keys]<br />
Server = https://dl.dropboxusercontent.com/u/298301785/arch/nuke-keys/$arch<br />
</nowiki>}}<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 Claire's Github]<br />
<br />
==PGP Key==<br />
http://pgp.mit.edu/pks/lookup?op=get&search=0x49F67298E6366A92</div>Clfarron4https://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=336655Unofficial user repositories2014-09-22T06:21:06Z<p>Clfarron4: Adding Kernel Repositories</p>
<hr />
<div>[[Category:Package management]]<br />
[[zh-CN:Unofficial user repositories]]<br />
{{Expansion|Please fill in the missing information about repository maintainers.}}<br />
<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
{{Warning|Neither the official Arch Linux Developers nor the Trusted Users perform tests of any sort to verify the contents of these repositories; it is up to each user to decide whether to trust their maintainers, and take full responsibility for whatever their decision brings.}}<br />
<br />
In order to use these repositories, you will have to add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories]]. If a repository is signed, you will have to obtain and locally sign the associated key, as explained in [[Pacman-key#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman tips#Custom local repository]].<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
== Any ==<br />
<br />
"Any" repositories are architecture-independent. In other words, they can be used on both i686 and x86_64 systems.<br />
<br />
=== Signed ===<br />
<br />
==== bioinformatics-any ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/decryptedepsilon/ decryptedepsilon]<br />
* '''Description:''' A repository containing some python packages and genome browser for Bioinformatics<br />
* '''Key-ID:''' 60442BA4<br />
<br />
{{bc|<nowiki><br />
[bioinformatics-any]<br />
Server = http://decryptedepsilon.bl.ee/repo/any<br />
</nowiki>}}<br />
<br />
==== infinality-bundle-fonts ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle-fonts repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-fonts]<br />
Server = http://bohoomil.com/repo/fonts<br />
</nowiki>}}<br />
<br />
==== xyne-any ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for "any" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{Note|Use this repository only if there is no matching {{ic|[xyne-*]}} repository for your architecture.}}<br />
<br />
{{bc|<nowiki><br />
[xyne-any]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== archlinuxgr-any ====<br />
* '''Maintainer:'''<br />
* '''Description:''' The Hellenic (Greek) unofficial Arch Linux repository with many interesting packages.<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-any]<br />
Server = http://archlinuxgr.tiven.org/archlinux/any<br />
</nowiki>}}<br />
<br />
== Both i686 and x86_64 ==<br />
<br />
Repositories with both i686 and x86_64 versions. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
=== Signed ===<br />
<br />
==== arcanisrepo ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = ftp://repo.arcanis.name/repo/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxcn ====<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], Felix Yan (felixonmars, TU), [https://twitter.com/lilydjwg lilydjwg], and others<br />
* '''Description:''' Packages by the Chinese Arch Linux community (mostly signed)<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Key-ID:''' 47CD9E46 95FF0792 A403F63E<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
</nowiki>}}<br />
<br />
==== atom-editor-git ====<br />
* '''Maintainer:''' Matthew Stobbs<br />
* '''Upstream page:''' https://atom.io/<br />
* '''Description:''' The Atom Editor, created by the people behind github, to mimic Sublime Text.<br />
* '''Key-ID:''' 26EBCC57<br />
{{bc|<nowiki><br />
[atom-editor-git]<br />
Server = http://repo.stobbstechnical.com/$arch<br />
</nowiki>}}<br />
<br />
==== bbqlinux ====<br />
<br />
* '''Maintainer:''' [https://plus.google.com/u/0/+DanielHillenbrand/about Daniel Hillenbrand]<br />
* '''Description:''' Packages for Android Development<br />
* '''Upstream Page:''' http://bbqlinux.org/<br />
* '''Key-ID:''' Get the bbqlinux-keyring package, as it contains the needed keys.<br />
<br />
{{bc|<nowiki><br />
[bbqlinux]<br />
Server = http://packages.bbqlinux.org/$arch<br />
</nowiki>}}<br />
<br />
==== carstene1ns ====<br />
<br />
* '''Maintainer:''' [[User:Carstene1ns|Carsten Teibes]]<br />
* '''Description:''' AUR packages maintained and/or used by Carsten Teibes (games/Wii/lib32/Python)<br />
* '''Upstream page:''' http://repo.carsten-teibes.de<br />
* '''Key-ID:''' 2476B20B<br />
<br />
{{bc|<nowiki><br />
[carstene1ns]<br />
Server = http://repo.carsten-teibes.de/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0 | Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = http://catalyst.wirephire.com/repo/catalyst/$arch<br />
## Mirrors, if the primary server does not work or is too slow:<br />
#Server = http://70.239.162.206/catalyst-mirror/repo/catalyst/$arch<br />
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/catalyst/$arch<br />
#Server = http://mirror.hactar.bz/Vi0L0/catalyst/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst-hd234k ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0 | Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = http://catalyst.wirephire.com/repo/catalyst-hd234k/$arch<br />
## Mirrors, if the primary server does not work or is too slow:<br />
#Server = http://70.239.162.206/catalyst-mirror/repo/catalyst-hd234k/$arch<br />
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/catalyst-hd234k/$arch<br />
#Server = http://mirror.hactar.bz/Vi0L0/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
==== city ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' http://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = http://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== demz-repo-archiso ====<br />
<br />
* '''Maintainer:''' [http://demizerone.com Jesus Alvarez (demizer)]<br />
* '''Description:''' Packages for installing ZFS from an Arch ISO live disk<br />
* '''Upstream page:''' https://github.com/demizer/archzfs<br />
* '''Key-ID:''' 0EE7A126<br />
<br />
==== demz-repo-core ====<br />
<br />
* '''Maintainer:''' [http://demizerone.com Jesus Alvarez (demizer)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/demizer/archzfs<br />
* '''Key-ID:''' 0EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-core]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<br />
<br />
{{bc|<nowiki><br />
[demz-repo-archiso]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== gnome-encfs-manager ====<br />
<br />
* '''Maintainer:''' Moritz Molch<br />
* '''Description:''' The gnome-encfs-manager can be used to integrate [[EncFS]] <br />
* '''Upstream page:''' [https://launchpad.net/gencfsm Gnome EncfsM].<br />
* '''Key ID:''' <br />
<br />
{{bc|<nowiki><br />
[home_moritzmolch_gencfsm_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/moritzmolch:/gencfsm/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== haskell-core ====<br />
<br />
* '''Maintainer:''' Magnus Therning<br />
* '''Description:''' Arch-Haskell repository<br />
* '''Upstream page:''' https://github.com/archhaskell/habs<br />
* '''Key-ID:''' 4209170B<br />
<br />
{{bc|<nowiki><br />
[haskell-core]<br />
Server = http://xsounds.org/~haskell/core/$arch<br />
</nowiki>}}<br />
<br />
==== infinality-bundle ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle main repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle]<br />
Server = http://bohoomil.com/repo/$arch<br />
</nowiki>}}<br />
<br />
==== lxqt-git ====<br />
<br />
* '''Maintainer:''' [http://www.stobbstechnical.com/ stobbsm]<br />
* '''Description:''' lxqt-git weekly build repository<br />
* '''Key-ID:''' 26EBCC57<br />
<br />
{{bc|<nowiki><br />
[lxqt-git]<br />
Server = http://repo.stobbstechnical.com/$arch<br />
</nowiki>}}<br />
<br />
==== metalgamer ====<br />
<br />
* '''Maintainer:''' [http://metalgamer.eu/ metalgamer]<br />
* '''Description:''' Packages I use and/or maintain on the AUR.<br />
* '''Key ID:''' F55313FB<br />
<br />
{{bc|<nowiki><br />
[metalgamer]<br />
Server = http://repo.metalgamer.eu/$arch<br />
</nowiki>}}<br />
<br />
==== pipelight ====<br />
<br />
* '''Maintainer:''' <br />
* '''Description:''' Pipelight and wine-compholio<br />
* '''Upstream page:''' [http://fds-team.de/ fds-team.de]<br />
* '''Key-ID:''' E49CC0415DC2D5CA<br />
* '''Keyfile:''' http://repos.fds-team.de/Release.key<br />
{{bc|<nowiki>[pipelight]<br />
Server = http://repos.fds-team.de/stable/arch/$arch</nowiki>}}<br />
<br />
==== repo-ck ====<br />
<br />
* '''Maintainer:''' [[User:Graysky|graysky]]<br />
* '''Description:''' Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
* '''Upstream page:''' [http://repo-ck.com repo-ck.com]<br />
* '''Wiki:''' [[repo-ck]]<br />
* '''Key-ID:''' 5EE46C4C<br />
<br />
{{bc|<nowiki><br />
[repo-ck]<br />
Server = http://repo-ck.com/$arch<br />
</nowiki>}}<br />
<br />
==== seblu ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (virtualbox-ext-oracle, linux-seblu-meta, bedup).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = http://seblu.net/a/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== sergej-repo ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== alucryd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = http://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== archaudio ====<br />
<br />
* '''Maintainer:''' [[User:Schivmeister|Ray Rashif]], [https://aur.archlinux.org/account/jhernberg Joakim Hernberg]<br />
* '''Description:''' Pro-audio packages<br />
<br />
{{bc|<nowiki><br />
[archaudio-production]<br />
Server = http://repos.archaudio.org/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== archie-repo ====<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Kalinda/ Kalinda]<br />
* '''Description:''' Repo for wine-silverlight, pipelight, and some misc packages.<br />
<br />
{{bc|<nowiki><br />
[archie-repo]<br />
Server = http://andontie.net/archie-repo/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxfr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgis ====<br />
* '''Maintainer:'''<br />
* '''Description:''' Maintainers needed - low bandwidth<br />
<br />
{{bc|<nowiki><br />
[archlinuxgis]<br />
Server = http://archlinuxgis.no-ip.org/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr-kde4 ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
==== arsch ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' From users of orgizm.net<br />
<br />
{{bc|<nowiki><br />
[arsch]<br />
Server = http://arsch.orgizm.net/$arch<br />
</nowiki>}}<br />
<br />
==== aurbin ====<br />
{{Note|This Repository wasn't updated since October 2013}}<br />
* '''Maintainer:'''<br />
* '''Description:''' Automated build of AUR packages<br />
* '''Upstream page:''' http://aurbin.net/<br />
<br />
{{bc|<nowiki><br />
[aurbin]<br />
Server = http://aurbin.net/$arch<br />
</nowiki>}}<br />
<br />
==== ede ====<br />
* '''Maintainer:'''<br />
* '''Description:''' Equinox Desktop Environment repository<br />
<br />
{{bc|<nowiki><br />
[ede]<br />
Server = http://ede.elderlinux.org/repos/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== heftig ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#heftig Jan Steffens]<br />
* '''Description:''' Includes linux-zen and aurora (Firefox development build - works alongside {{Pkg|firefox}} in the ''extra'' repository).<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = http://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
==== herecura-stable ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
<br />
{{bc|<nowiki><br />
[herecura-stable]<br />
Server = http://repo.herecura.be/herecura-stable/$arch<br />
</nowiki>}}<br />
<br />
==== herecura-testing ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' additional packages for testing build against stable arch<br />
<br />
{{bc|<nowiki><br />
[herecura-testing]<br />
Server = http://repo.herecura.be/herecura-testing/$arch<br />
</nowiki>}}<br />
<br />
==== mesa-git ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = http://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== oracle ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Oracle database client<br />
<br />
{{Warning|By adding this you are agreeing to the Oracle license at http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html}}<br />
<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== pantheon ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = http://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== paulburton-fitbitd ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains fitbitd for synchronizing FitBit trackers<br />
<br />
{{bc|<nowiki><br />
[paulburton-fitbitd]<br />
Server = http://www.paulburton.eu/arch/fitbitd/$arch<br />
</nowiki>}}<br />
<br />
==== pfkernel ====<br />
<br />
* '''Maintainer:''' [[User:Nous|nous]]<br />
* '''Description:''' Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, Aufs3, linux-pf, kernel26-pf, gdm-old, nvidia-pf, nvidia-96xx, xchat-greek, arora-git<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/11734958/x86_64/index.html or start at http://tiny.cc/linux-pf<br />
<br />
{{bc|<nowiki><br />
[pfkernel]<br />
Server = http://dl.dropbox.com/u/11734958/$arch<br />
</nowiki>}}<br />
<br />
==== rstudio ====<br />
<br />
* '''Maintainer:''' Artem Klevtsov <a.a.klevtsov@gmail.com><br />
* '''Description:''' Rstudio IDE package (git version) and depends.<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = http://arch.upfile.es/$arch<br />
</nowiki>}}<br />
<br />
==== suckless ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' suckless.org packages<br />
<br />
{{bc|<nowiki><br />
[suckless]<br />
Server = http://dl.suckless.org/arch/$arch<br />
</nowiki>}}<br />
<br />
==== unity ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' unity packages for Arch<br />
<br />
{{bc|<nowiki><br />
[unity]<br />
Server = http://unity.xe-xe.org/$arch<br />
</nowiki>}}<br />
<br />
==== unity-extra ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' unity extra packages for Arch<br />
<br />
{{bc|<nowiki><br />
[unity-extra]<br />
Server = http://unity.xe-xe.org/extra/$arch<br />
</nowiki>}}<br />
<br />
==== home_tarakbumba_archlinux_Arch_Extra_standard ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains a few pre-built AUR packages (zemberek, firefox-kde-opensuse, etc.)<br />
<br />
{{bc|<nowiki><br />
[home_tarakbumba_archlinux_Arch_Extra_standard]<br />
Server = http://download.opensuse.org/repositories/home:/tarakbumba:/archlinux/Arch_Extra_standard/$arch<br />
</nowiki>}}<br />
<br />
== i686 only ==<br />
<br />
=== Signed ===<br />
<br />
==== bb-toolchains ====<br />
* '''Maintainer:''' Phillid<br />
* '''Description:''' Binutils and GCC which target bare-bones platforms for, eg, OS development.<br />
* '''Key-ID:''' 28F1E6CE<br />
<br />
{{bc|<nowiki><br />
[bb-toolchains]<br />
Server = http://phillid.tk/r/<br />
</nowiki>}}<br />
<br />
==== eee-ck ====<br />
* '''Maintainer:''' Gruppenpest<br />
* '''Description:''' Kernel and modules optimized for Asus Eee PC 701, with -ck patchset.<br />
* '''Key-ID:''' 27D4A19A<br />
* '''Keyfile''' http://zembla.frozenslumber.com/repo/gruppenpest.gpg<br />
<br />
{{bc|<nowiki><br />
[eee-ck]<br />
Server = http://zembla.frozenslumber.com/repo<br />
</nowiki>}}<br />
<br />
==== xyne-i686 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "i686" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-i686]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' each program I'm using on x86_64 is compiled for i686 too<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/i686<br />
</nowiki>}}<br />
<br />
==== esclinux ====<br />
{{Note|Off-line since 2014-07-02.}}<br />
* '''Maintainer:'''<br />
* '''Description:''' Mostly games, interactive fiction, and abc notation stuff already on the AUR.<br />
<br />
{{bc|<nowiki><br />
[esclinux]<br />
Server = http://download.tuxfamily.org/esclinuxcd/ressources/repo/i686/<br />
</nowiki>}}<br />
<br />
==== kpiche ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Stable OpenSync packages.<br />
<br />
{{bc|<nowiki><br />
[kpiche]<br />
Server = http://kpiche.archlinux.ca/repo<br />
</nowiki>}}<br />
<br />
==== kernel26-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 2.6.39<br />
<br />
{{bc|<nowiki><br />
[kernel26-pae]<br />
Server = http://kernel26-pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
==== linux-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 3.0<br />
<br />
{{bc|<nowiki><br />
[linux-pae]<br />
Server = http://pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
==== rfad ====<br />
<br />
* '''Maintainer:''' requiem [at] archlinux.us <br />
* '''Description:''' Repository made by haxit<br />
<br />
{{bc|<nowiki><br />
[rfad]<br />
Server = http://web.ncf.ca/ey723/archlinux/repo/<br />
</nowiki>}}<br />
<br />
==== studioidefix ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Precompiled boxee packages.<br />
<br />
{{bc|<nowiki><br />
[studioidefix]<br />
Server = http://studioidefix.googlecode.com/hg/repo/i686<br />
</nowiki>}}<br />
<br />
== x86_64 only ==<br />
<br />
=== Signed ===<br />
<br />
==== apathism ====<br />
<br />
* '''Maintainer:''' Koryabkin Ivan ([https://aur.archlinux.org/account/apathism/ apathism])<br />
* '''Upstream page:''' https://apathism.net/<br />
* '''Description:''' AUR packages that would take long to build, such as {{AUR|firefox-kde-opensuse}}.<br />
* '''Key-ID:''' 3E37398D<br />
* '''Keyfile:''' http://apathism.net/archlinux/apathism.key<br />
<br />
{{bc|<nowiki><br />
[apathism]<br />
Server = http://apathism.net/archlinux/<br />
</nowiki>}}<br />
<br />
==== bioinformatics ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/decryptedepsilon/ decryptedepsilon]<br />
* '''Description:''' A repository containing some software tools for Bioinformatics<br />
* '''Key-ID:''' 60442BA4<br />
<br />
{{bc|<nowiki><br />
[bioinformatics]<br />
Server = http://decryptedepsilon.bl.ee/repo/x86_64<br />
</nowiki>}}<br />
<br />
==== boyska64 ====<br />
<br />
* '''Maintainer:''' boyska<br />
* '''Description:''' Personal repository: cryptography, sdr, mail handling and misc<br />
* '''Key-ID:''' 0x7395DCAE58289CA9<br />
<br />
{{bc|<nowiki><br />
[boyska64]<br />
Server = http://boyska.s.pt-labs.net/archrepo<br />
</nowiki>}}<br />
<br />
==== coderkun-aur ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-audio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-nonfree ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with proprietary (dropbox, nvidia, …) software. Supporting package deltas and package and database signing.<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [http://arch.coderkun.de/coderkun.asc http://arch.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-nonfree]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== freifunk-rheinland ====<br />
<br />
* '''Maintainer:''' nomaster<br />
* '''Description:''' Packages for the Freifunk project: batman-adv, batctl, fastd and dependencies.<br />
<br />
{{bc|<nowiki><br />
[freifunk-rheinland]<br />
Server = http://mirror.fluxent.de/archlinux-custom/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== infinality-bundle-multilib ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle multilib repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-multilib]<br />
Server = http://bohoomil.com/repo/multilib/$arch<br />
</nowiki>}}<br />
<br />
==== siosm-aur ====<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://repo.siosm.fr/$repo/<br />
</nowiki>}}<br />
<br />
==== siosm-selinux ====<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages required for SELinux support – work in progress (notably, missing an Arch Linux-compatible SELinux policy). See the [[SELinux]] page for details.<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-selinux]<br />
Server = http://repo.siosm.fr/$repo/<br />
</nowiki>}}<br />
<br />
==== subtitlecomposer ====<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EA8CEBEE<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = http://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== xyne-x86_64 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "x86_64" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
==== quarry ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== linux-lts-ck ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Current ArchLinux LTS kernel with the CK patch<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts-ck/x86_64/index.html or start at http://tiny.cc/linux-lts-ck<br />
<br />
{{bc|<nowiki><br />
[linux-lts-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts-ck/$arch<br />
</nowiki>}}<br />
<br />
==== linux-lts31x ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Older LTS kernels (3.10 and 3.12 branch)<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts31x/x86_64/index.html or start at http://tiny.cc/linux-lts31x<br />
<br />
{{bc|<nowiki><br />
[linux-lts31x]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x/$arch<br />
</nowiki>}}<br />
<br />
==== linux-lts31x-ck ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Older LTS kernels (3.10 and 3.12 branch) with the CK patch<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-lts31x-ck/x86_64/index.html or start at http://tiny.cc/linux-lts31x-ck<br />
<br />
{{bc|<nowiki><br />
[linux-lts31x-ck]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-lts31x-ck/$arch<br />
</nowiki>}}<br />
<br />
==== linux-ck-pax ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Current Arch Kernel with the CK and PaX security patchsets<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-ck-pax/x86_64/index.html or start at http://tiny.cc/linux-ck-pax<br />
<br />
{{bc|<nowiki><br />
[linux-ck-pax]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-ck-pax/$arch<br />
</nowiki>}}<br />
<br />
==== linux-tresor ====<br />
<br />
* '''Maintainer:''' Claire Farron [https://aur.archlinux.org/account/clfarron4 clfarron4]<br />
* '''Description:''' Arch LTS kernel with TRESOR<br />
* '''Key-ID:''' E6366A92<br />
* '''Note:''' To browse through the repository, one needs to append {{ic|index.html}} after the server URL (this is an intentional quirk of Dropbox). For example, for x86_64, point your browser to http://dl.dropbox.com/u/298301785/arch/linux-tresor/x86_64/index.html or start at http://tiny.cc/linux-tresor<br />
<br />
{{bc|<nowiki><br />
[linux-tresor]<br />
Server = http://dl.dropbox.com/u/298301785/arch/linux-tresor/$arch<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.dyndns.org/doku.php/blog/repository {{Dead link|2013|11|30}}<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/x86_64<br />
</nowiki>}}<br />
<br />
==== archstudio ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Audio and Music Packages optimized for Intel Core i3, i5, and i7.<br />
* '''Upstream page:''' http://www.xsounds.org/~archstudio<br />
<br />
{{bc|<nowiki><br />
[archstudio]<br />
Server = http://www.xsounds.org/~archstudio/x86_64<br />
</nowiki>}}<br />
<br />
==== brtln ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bpiotrowski Bartłomiej Piotrowski]<br />
* '''Description:''' Some VCS packages.<br />
<br />
{{bc|<nowiki><br />
[brtln]<br />
Server = http://pkgbuild.com/~barthalion/brtln/$arch/<br />
</nowiki>}}<br />
<br />
==== hawaii ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' hawaii Qt5/Wayland-based desktop environment<br />
* '''Upstream page:''' http://www.maui-project.org/<br />
<br />
{{bc|<nowiki><br />
[hawaii]<br />
Server = http://archive.maui-project.org/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== kps ====<br />
<br />
* '''Maintainer:''' kps<br />
* '''Description:''' gmt, catalyst-test, ttf-ms-win8, rstudio, meshlab, gcc-gcj, vlc-git, ffmpeg-git (k10 & intel opt.), docear, maperitive, libressl, bkchem ...<br />
<br />
{{bc|<nowiki><br />
[kps]<br />
Server = http://kps.bplaced.net/repo/$arch<br />
</nowiki>}}<br />
<br />
==== miusystem ====<br />
<br />
* '''Maintainer:''' Theodore Keloglou <theodore.keloglou@gmail.com><br />
* '''Description:''' Packages that I use and might interest others<br />
<br />
{{bc|<nowiki><br />
[miusystem]<br />
Server = https://miusystem.com/archlinux-repo<br />
</nowiki>}}<br />
<br />
==== pnsft-pur ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/x86_64<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR updated every 8 hours.<br />
* '''Upstream page:''' http://arch.linuxx.org<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
Server = http://arch.linuxx.org/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== rakudo ====<br />
<br />
* '''Maintainer:''' spider-mario <spidermario@free.fr><br />
* '''Description:''' Rakudo Perl6<br />
<br />
{{bc|<nowiki><br />
[rakudo]<br />
Server = http://spidermario.free.fr/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== rightscale ====<br />
<br />
* '''Maintainer:''' Chris Fordham <chris@fordham-nagy.id.au><br />
* '''Description:''' Packages for RightScale including the RightLink cloud instance agent. Install the package, rightscale-agent.<br />
<br />
{{bc|<nowiki><br />
[rightscale]<br />
Server = https://s3-us-west-1.amazonaws.com/archlinux-rightscale/$arch<br />
</nowiki>}}<br />
<br />
==== seiichiro ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' VDR and some plugins, mms, foo2zjs-drivers<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = http://repo.seiichiro0185.org/x86_64<br />
</nowiki>}}<br />
<br />
==== studioidefix ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Precompiled boxee packages.<br />
<br />
{{bc|<nowiki><br />
[studioidefix]<br />
Server = http://studioidefix.googlecode.com/hg/repo/x86_64<br />
</nowiki>}}<br />
<br />
== armv6h only ==<br />
<br />
=== Unsigned ===<br />
<br />
==== arch-fook-armv6h ====<br />
<br />
* '''Maintainer:''' Jaska Kivelä <jaska@kivela.net><br />
* '''Description:''' Stuff that I have compiled for my Raspberry PI. Including Enlightenment and home automation stuff.<br />
<br />
{{bc|<nowiki><br />
[arch-fook-armv6h]<br />
Server = http://kivela.net/jaska/arch-fook-armv6h<br />
</nowiki>}}</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=335778User:Clfarron42014-09-16T20:07:43Z<p>Clfarron4: /* PGP Key */</p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 Claire's Github]<br />
<br />
==PGP Key==<br />
http://pgp.mit.edu/pks/lookup?op=get&search=0x49F67298E6366A92</div>Clfarron4https://wiki.archlinux.org/index.php?title=Enhance_system_stability&diff=333010Enhance system stability2014-08-29T20:59:31Z<p>Clfarron4: Minor punctuation edit.</p>
<hr />
<div>[[Category:System administration]]<br />
[[ar:Enhancing Arch Linux Stability]]<br />
[[fr:Enhancing Arch Linux Stability]]<br />
[[ja:Enhancing Arch Linux Stability]]<br />
[[pt:Enhancing Arch Linux Stability]]<br />
[[ru:Enhancing Arch Linux Stability]]<br />
[[zh-CN:Enhancing Arch Linux Stability]]<br />
{{Related articles start}}<br />
{{Related|System maintenance}}<br />
{{Related articles end}}<br />
The purpose of this wiki article is to provide tips and best practices on how to make an Arch Linux system as stable as possible. While Arch Developers and Trusted Users work hard to produce high quality packages, given Arch's rolling release system and rapid package turnover, an Arch system may not be suitable for a mission critical, commercial production environment.<br />
<br />
However, Arch is inherently stable due to its commitment to simplicity in configuration, coupled with a rapid bug-report/bug-fix cycle, and the use of unpatched upstream source code. Thus, by following the advice below on setting up and maintaining Arch, the user should be able enjoy a very stable system. Furthermore, advice is included that will ease system repair in the event of a major malfunction.<br />
<br />
How stable can Arch Linux really be? There are numerous reports in the Arch forums of skilled system administrators successfully using Arch for production servers. Archlinux.org is one such example. On the desktop, a properly configured and maintained Arch installation can offer excellent stability.<br />
<br />
== Setting Up Arch ==<br />
<br />
When first installing and configuring Arch Linux, the user has a variety of choices to make about configuration, software, and drivers. These choices will impact overall system stability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Keeping old packages in a large /var partition ====<br />
<br />
[[Pacman]] archives all of the previously installed packages in {{ic|/var/cache/pacman/pkg}}, which over time may grow to a few GB in size. If you are setting up separate partitions during installation, always be sure to allocate plenty of space for a large /var partition. 4 to 8 GB should do, although more may be required for some server uses. Retaining these packages is helpful in case a recent package upgrade causes instability, requiring a [[Downgrading packages|downgrade]] to an older, archived package. See the section below entitled, [[#Revert package upgrades that cause instability]].<br />
<br />
==== Use recommended configurations ====<br />
<br />
In the detailed Arch Linux installation and configuration documentation, there is often more than one way to configure a specific aspect of the system. Always choose the recommended, default configuration when setting up the system. The recommended, default configurations reflect best practices, chosen for optimum system stability and ease of system repair.<br />
<br />
==== Be careful with unofficial and less tested packages ====<br />
<br />
Avoid any use of the testing repository, or individual packages from testing. These packages are experimental and not suitable for a stable system.<br />
<br />
Use precaution when using packages from the [[AUR]]. Most are supplied by users and may thus not have the same standards as those in the official repositories. Be careful with [[AUR helpers]] which highly simplify installation of AUR packages. '''Always''' sanity check PKGBUILDs for signs of mistake or malicious code before building and/or installing the package.<br />
<br />
To simplify maintenance, limit the amount of AUR packages used. Make periodic checks on which are in actual use, and remove (or replace with their official counterparts) any others. To list AUR packages, see [https://bbs.archlinux.org/viewtopic.php?pid=586731#p586731].<br />
<br />
Only use 3rd party repository if absolutely necessary or if you know what you're doing. Always use 3rd party repository from a trusted source.<br />
<br />
==== Use up-to-date mirrors ====<br />
<br />
Use mirrors that are frequently updated with the latest packages from the main Arch FTP server. Review the [https://www.archlinux.org/mirrors/status/ Mirror Status webpage] to verify that your chosen mirror is up to date. By using recently rsync'd mirrors, this ensures that your system will always have the freshest packages and package databases available during the course of routine maintenance.<br />
<br />
Also, if it is used, edit the mirror list in {{ic|/etc/pacman.d}} by placing local mirrors, those within your country or region, at the top of the list. Refer to the [[Mirrors#Enabling your favorite mirror|Enabling your favorite mirror]] Arch wikipage section for additional details, including the installation of the [[Mirrors#List by speed|rankmirrors]] script to enable the fastest mirrors. These steps will ensure that the system uses the fastest, most reliable mirrors.<br />
<br />
After changing the server mirror used for updates, ensure that your system is up-to-date by doing pacman -Syu.<br />
<br />
==== Avoid development packages ====<br />
<br />
To prevent serious breakage of the system, do not install any development packages, which are usually found in AUR and occasionally in community. These are packages taken directly from upstream development branches, and usually feature one of the following words appended to the package name: dev, devel, svn, cvs, git, hg, bzr, or darcs.<br />
<br />
Most especially, avoid installing any development version of crucial system packages such as the kernel or glibc.<br />
<br />
If building a custom package using makepkg, be sure that the PKGBUILD follows the [[Arch packaging standards]], including a provides array. Use namcap to check the final .tar.gz or PKGBUILD file.<br />
<br />
==== Install the linux-lts package ====<br />
<br />
The {{Pkg|linux-lts}} package is an alternative Arch kernel package based upon Linux kernel 3.14 and is available in the [[Official repositories#core|[core]]] repository. This particular kernel version enjoys '''l'''ong-'''t'''erm '''s'''upport (LTS) from upstream, including security fixes and some feature backports, especially useful for users seeking to use Arch Linux on a server, or who want a fallback kernel in case a new kernel version causes problems.<br />
<br />
To make it available as a boot option, you will need to update the bootloader's configuration file. For [[Syslinux]], you have to edit {{ic|/boot/syslinux/syslinux.cfg}} and duplicate the current entries, except using {{ic|vmlinuz-linux-lts}} and {{ic|initramfs-linux-lts.img}}. For [[GRUB]], the recommended method is to automatically [[GRUB#Generating main configuration file|re-generate the configuration file]].<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Use the package manager to install software ====<br />
<br />
[[Pacman]] does a much better job than you at keeping track of files. If you install things manually you ''will'', sooner or later, forget what you did, where you installed to, install conflicting software, install to the wrong locations, etc.<br />
<br />
From a stability standpoint you should try to avoid unsupported package and custom software, but if you really need such things [[Creating packages|making a package]] is better than manually compiling and installing.<br />
<br />
==== Use proven software packages ====<br />
<br />
Install mature and proven software; while avoiding cutting edge software that is still buggy. Do not deploy newly developed software until it is proven to be reliable. For example, [[PulseAudio]]'s early versions could be unreliable. Users interested in maximum stability would use the [[ALSA]] sound system instead. Finally, use software that has a strong and active development community, as well as a high number of competent users.<br />
<br />
==== Choose open-source drivers ====<br />
<br />
Wherever possible, choose open source drivers. Try to avoid proprietary drivers. Most of the time, open source drivers are more stable and reliable than proprietary drivers. Open source driver bugs are fixed more easily and quickly. While proprietary drivers can offer more features and capabilities, this can come at the cost of stability. To avoid this dilemma, choose hardware components known to have mature open source driver support with full features. Information about hardware with open source Linux drivers is available at [http://www.linux-drivers.org/ linux-drivers.org].<br />
<br />
== Maintaining Arch ==<br />
<br />
In addition to configuring Arch for stability, there are steps one can take during maintenance which will enhance stability. Paying attention to a few SysAdmin details will help to ensure continued system reliability.<br />
<br />
For repetitive tasks that need to be done regularily see [[System maintenance]].<br />
<br />
=== Arch Specific Tips ===<br />
<br />
The following are considerations to take when upgrading the system with pacman.<br />
<br />
==== Read before upgrading the system ====<br />
<br />
Before upgrading Arch, always read the latest [https://www.archlinux.org/news/ Arch News] to find out if there are any major software or configuration changes with the latest packages. Before upgrading fundamental software, such as the [[kernel]], [[xorg]], [[systemd]], or {{Pkg|glibc}} to a new version, look over the appropriate [https://bbs.archlinux.org/ forum] to see if there have been any reported problems.<br />
<br />
==== Act on alerts during an upgrade ====<br />
<br />
When upgrading the system, be sure to pay attention to the alert notices provided by [[pacman]]. If any additional actions are required by the user, be sure to take care of them right away. If a pacman alert is confusing, search the forums and the recent news posts for more detailed instructions.<br />
<br />
==== Deal promptly with new configuration files ====<br />
<br />
When pacman is invoked {{ic|.pacnew}}, {{ic|.pacsave}}, and {{ic|.pacorig}} files can be created. Pacman provides notice when this happens and users must deal with these files promptly. Users are referred to the [[Pacnew and Pacsave files]] wiki page for detailed instructions.<br />
<br />
Also, think about other configuration files you you may have copied or created. If a package had an example configuration that you copied to your home directory, check to see if a new one has been created.<br />
<br />
==== Avoid certain pacman commands ====<br />
<br />
Never run {{ic|pacman -Sy}}, instead use {{ic|pacman -Syu}}.<br />
<br />
Avoid using the {{ic|--force}} option with pacman, '''especially''' in commands such as {{Ic|pacman -Syu --force}} involving more than one package. The {{ic|--force}} option ignores file conflicts and can even cause file loss when files are relocated between different packages! In a properly maintained system, it should never need to be used.<br />
<br />
Do not use {{Ic|pacman -Rdd package}}. Using the {{ic|-d}} flag skips dependency checks during package removal. As a result, a package providing a critical dependency could be removed, resulting in a broken system.<br />
<br />
==== Revert package upgrades that cause instability ====<br />
<br />
In the event that a particular package upgrade results in system instability, install the last known stable version of the package from the local pacman cache using the following command:<br />
<br />
pacman -U /var/cache/pacman/pkg/Package-Name.pkg.tar.gz<br />
<br />
For more detailed information on reverting to older packages, consult the Arch wikipage, [[Downgrading packages]].<br />
<br />
Once the package is reverted, temporarily add it to the [[Pacman#Skip package from being upgraded|IgnorePkg section of pacman.conf]], until the difficulty with the updated package is resolved. Consult the Arch wiki and/or webforums for advice, and file a bug report if necessary.<br />
<br />
==== Consider using pacmatic ====<br />
<br />
[http://kmkeen.com/pacmatic/index.html Pacmatic] is a pacman wrapper which automates the process of checking Arch News prior to upgrading. Pacmatic also ensures that the local pacman database is correctly synchronized with online mirrors, thus avoiding potential problems with botched pacman -Sy database updates. Finally, it provides more stringent warnings about updated or obsolete config files. pacman can be aliased to pacmatic, and various [[AUR helpers]] can be configured to use it instead of pacman.<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Follow NVD/CVE alerts ====<br />
<br />
Subscribe to the Common Vulnerabilities and Exposure Security Alert updates, made available by National Vulnerability Database, and found on the [http://nvd.nist.gov/download.cfm NVD Download webpage]. See also [[Arch CVE Monitoring Team]] and [[CVE-2014]].<br />
<br />
{{Warning|Do not be tempted to perform partial updates, as they are not supported by Arch Linux and may cause instability: the whole system should be upgraded when upgrading a component. Also note that infrequent system updates can complicate the update process.}}<br />
<br />
==== Test updates on a non-critical system ====<br />
<br />
If possible, test changes to configuration files, as well as updates to software packages, on a non-critical duplicate system first. Then, if no problems arise, roll out the changes to the production system.<br />
<br />
==== Always back up config files before editing ====<br />
<br />
Before editing any configuration file, always back up a known working version of that config file. In the event that changes in the config file cause problems, one can revert to the previous stable config file. Do this from a text editor by first saving the file to a backup copy before making any alterations; or execute the following command:<br />
<br />
cp config config~<br />
<br />
Using ''~'' will ensure there is a readily distinguishable human-made backup conf file if pacman creates a .pacnew, .pacsave, or .pacorig file using the active config file.<br />
<br />
{{AUR|etckeeper}} can help dealing with config files. It keeps the whole {{ic|/etc}} directory in a version control.<br />
<br />
===== Periodically clean configuration files =====<br />
<br />
Old configuration files may conflict with newer software versions, or corrupt over time. Remove unneeded configurations periodically, particularly in your home folder and {{ic|~/.config}}. For similar reasons, take care in sharing home folders between installations.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Enhance_system_stability&diff=333005Enhance system stability2014-08-29T20:50:16Z<p>Clfarron4: linux-lts is now 3.14. There are linux-lts310 and linux-lts312 for other 3.1x LTS branches in the AUR.</p>
<hr />
<div>[[Category:System administration]]<br />
[[ar:Enhancing Arch Linux Stability]]<br />
[[fr:Enhancing Arch Linux Stability]]<br />
[[ja:Enhancing Arch Linux Stability]]<br />
[[pt:Enhancing Arch Linux Stability]]<br />
[[ru:Enhancing Arch Linux Stability]]<br />
[[zh-CN:Enhancing Arch Linux Stability]]<br />
{{Related articles start}}<br />
{{Related|System maintenance}}<br />
{{Related articles end}}<br />
The purpose of this wiki article is to provide tips and best practices on how to make an Arch Linux system as stable as possible. While Arch Developers and Trusted Users work hard to produce high quality packages, given Arch's rolling release system and rapid package turnover, an Arch system may not be suitable for a mission critical, commercial production environment.<br />
<br />
However, Arch is inherently stable due to its commitment to simplicity in configuration, coupled with a rapid bug-report/bug-fix cycle, and the use of unpatched upstream source code. Thus, by following the advice below on setting up and maintaining Arch, the user should be able enjoy a very stable system. Furthermore, advice is included that will ease system repair in the event of a major malfunction.<br />
<br />
How stable can Arch Linux really be? There are numerous reports in the Arch forums of skilled system administrators successfully using Arch for production servers. Archlinux.org is one such example. On the desktop, a properly configured and maintained Arch installation can offer excellent stability.<br />
<br />
== Setting Up Arch ==<br />
<br />
When first installing and configuring Arch Linux, the user has a variety of choices to make about configuration, software, and drivers. These choices will impact overall system stability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Keeping old packages in a large /var partition ====<br />
<br />
[[Pacman]] archives all of the previously installed packages in {{ic|/var/cache/pacman/pkg}}, which over time may grow to a few GB in size. If you are setting up separate partitions during installation, always be sure to allocate plenty of space for a large /var partition. 4 to 8 GB should do, although more may be required for some server uses. Retaining these packages is helpful in case a recent package upgrade causes instability, requiring a [[Downgrading packages|downgrade]] to an older, archived package. See the section below entitled, [[#Revert package upgrades that cause instability]].<br />
<br />
==== Use recommended configurations ====<br />
<br />
In the detailed Arch Linux installation and configuration documentation, there is often more than one way to configure a specific aspect of the system. Always choose the recommended, default configuration when setting up the system. The recommended, default configurations reflect best practices, chosen for optimum system stability and ease of system repair.<br />
<br />
==== Be careful with unofficial and less tested packages ====<br />
<br />
Avoid any use of the testing repository, or individual packages from testing. These packages are experimental and not suitable for a stable system.<br />
<br />
Use precaution when using packages from the [[AUR]]. Most are supplied by users and may thus not have the same standards as those in the official repositories. Be careful with [[AUR helpers]] which highly simplify installation of AUR packages. '''Always''' sanity check PKGBUILDs for signs of mistake or malicious code before building and/or installing the package.<br />
<br />
To simplify maintenance, limit the amount of AUR packages used. Make periodic checks on which are in actual use, and remove (or replace with their official counterparts) any others. To list AUR packages, see [https://bbs.archlinux.org/viewtopic.php?pid=586731#p586731].<br />
<br />
Only use 3rd party repository if absolutely necessary or if you know what you're doing. Always use 3rd party repository from a trusted source.<br />
<br />
==== Use up-to-date mirrors ====<br />
<br />
Use mirrors that are frequently updated with the latest packages from the main Arch FTP server. Review the [https://www.archlinux.org/mirrors/status/ Mirror Status webpage] to verify that your chosen mirror is up to date. By using recently rsync'd mirrors, this ensures that your system will always have the freshest packages and package databases available during the course of routine maintenance.<br />
<br />
Also, if it is used, edit the mirror list in {{ic|/etc/pacman.d}} by placing local mirrors, those within your country or region, at the top of the list. Refer to the [[Mirrors#Enabling your favorite mirror|Enabling your favorite mirror]] Arch wikipage section for additional details, including the installation of the [[Mirrors#List by speed|rankmirrors]] script to enable the fastest mirrors. These steps will ensure that the system uses the fastest, most reliable mirrors.<br />
<br />
After changing the server mirror used for updates, ensure that your system is up-to-date by doing pacman -Syu.<br />
<br />
==== Avoid development packages ====<br />
<br />
To prevent serious breakage of the system, do not install any development packages, which are usually found in AUR and occasionally in community. These are packages taken directly from upstream development branches, and usually feature one of the following words appended to the package name: dev, devel, svn, cvs, git, hg, bzr, or darcs.<br />
<br />
Most especially, avoid installing any development version of crucial system packages such as the kernel or glibc.<br />
<br />
If building a custom package using makepkg, be sure that the PKGBUILD follows the [[Arch packaging standards]], including a provides array. Use namcap to check the final .tar.gz or PKGBUILD file.<br />
<br />
==== Install the linux-lts package ====<br />
<br />
The {{Pkg|linux-lts}} package is an alternative Arch kernel package based upon Linux kernel 3.14 and is available in the [[Official repositories#core|[core]]] repository. This particular kernel version enjoys '''l'''ong-'''t'''erm '''s'''upport (LTS) from upstream, including security fixes and some feature backports, especially useful for users seeking to use Arch Linux on a server, or who want a fallback kernel in case a new kernel version causes problems.<br />
<br />
To make it available as a boot option, you will need to update the bootloader's configuration file. For [[Syslinux]], you have to edit {{ic|/boot/syslinux/syslinux.cfg}} and duplicate the current entries, except using {{ic|vmlinuz-linux-lts}} and {{ic|initramfs-linux-lts.img}}. For [[GRUB]], the recommended method is to automatically [[GRUB#Generating main configuration file|re-generate the configuration file]].<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Use the package manager to install software ====<br />
<br />
[[Pacman]] does a much better job than you at keeping track of files. If you install things manually you ''will'', sooner or later forget what you did, where you installed to, install conflicting software, install to the wrong locations, etc.<br />
<br />
From a stability standpoint you should try to avoid unsupported package and custom software, but if you really need such things [[Creating packages|making a package]] is better than manually compiling and installing.<br />
<br />
==== Use proven software packages ====<br />
<br />
Install mature and proven software; while avoiding cutting edge software that is still buggy. Do not deploy newly developed software until it is proven to be reliable. For example, [[PulseAudio]]'s early versions could be unreliable. Users interested in maximum stability would use the [[ALSA]] sound system instead. Finally, use software that has a strong and active development community, as well as a high number of competent users.<br />
<br />
==== Choose open-source drivers ====<br />
<br />
Wherever possible, choose open source drivers. Try to avoid proprietary drivers. Most of the time, open source drivers are more stable and reliable than proprietary drivers. Open source driver bugs are fixed more easily and quickly. While proprietary drivers can offer more features and capabilities, this can come at the cost of stability. To avoid this dilemma, choose hardware components known to have mature open source driver support with full features. Information about hardware with open source Linux drivers is available at [http://www.linux-drivers.org/ linux-drivers.org].<br />
<br />
== Maintaining Arch ==<br />
<br />
In addition to configuring Arch for stability, there are steps one can take during maintenance which will enhance stability. Paying attention to a few SysAdmin details will help to ensure continued system reliability.<br />
<br />
For repetitive tasks that need to be done regularily see [[System maintenance]].<br />
<br />
=== Arch Specific Tips ===<br />
<br />
The following are considerations to take when upgrading the system with pacman.<br />
<br />
==== Read before upgrading the system ====<br />
<br />
Before upgrading Arch, always read the latest [https://www.archlinux.org/news/ Arch News] to find out if there are any major software or configuration changes with the latest packages. Before upgrading fundamental software, such as the [[kernel]], [[xorg]], [[systemd]], or {{Pkg|glibc}} to a new version, look over the appropriate [https://bbs.archlinux.org/ forum] to see if there have been any reported problems.<br />
<br />
==== Act on alerts during an upgrade ====<br />
<br />
When upgrading the system, be sure to pay attention to the alert notices provided by [[pacman]]. If any additional actions are required by the user, be sure to take care of them right away. If a pacman alert is confusing, search the forums and the recent news posts for more detailed instructions.<br />
<br />
==== Deal promptly with new configuration files ====<br />
<br />
When pacman is invoked {{ic|.pacnew}}, {{ic|.pacsave}}, and {{ic|.pacorig}} files can be created. Pacman provides notice when this happens and users must deal with these files promptly. Users are referred to the [[Pacnew and Pacsave files]] wiki page for detailed instructions.<br />
<br />
Also, think about other configuration files you you may have copied or created. If a package had an example configuration that you copied to your home directory, check to see if a new one has been created.<br />
<br />
==== Avoid certain pacman commands ====<br />
<br />
Never run {{ic|pacman -Sy}}, instead use {{ic|pacman -Syu}}.<br />
<br />
Avoid using the {{ic|--force}} option with pacman, '''especially''' in commands such as {{Ic|pacman -Syu --force}} involving more than one package. The {{ic|--force}} option ignores file conflicts and can even cause file loss when files are relocated between different packages! In a properly maintained system, it should never need to be used.<br />
<br />
Do not use {{Ic|pacman -Rdd package}}. Using the {{ic|-d}} flag skips dependency checks during package removal. As a result, a package providing a critical dependency could be removed, resulting in a broken system.<br />
<br />
==== Revert package upgrades that cause instability ====<br />
<br />
In the event that a particular package upgrade results in system instability, install the last known stable version of the package from the local pacman cache using the following command:<br />
<br />
pacman -U /var/cache/pacman/pkg/Package-Name.pkg.tar.gz<br />
<br />
For more detailed information on reverting to older packages, consult the Arch wikipage, [[Downgrading packages]].<br />
<br />
Once the package is reverted, temporarily add it to the [[Pacman#Skip package from being upgraded|IgnorePkg section of pacman.conf]], until the difficulty with the updated package is resolved. Consult the Arch wiki and/or webforums for advice, and file a bug report if necessary.<br />
<br />
==== Consider using pacmatic ====<br />
<br />
[http://kmkeen.com/pacmatic/index.html Pacmatic] is a pacman wrapper which automates the process of checking Arch News prior to upgrading. Pacmatic also ensures that the local pacman database is correctly synchronized with online mirrors, thus avoiding potential problems with botched pacman -Sy database updates. Finally, it provides more stringent warnings about updated or obsolete config files. pacman can be aliased to pacmatic, and various [[AUR helpers]] can be configured to use it instead of pacman.<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Follow NVD/CVE alerts ====<br />
<br />
Subscribe to the Common Vulnerabilities and Exposure Security Alert updates, made available by National Vulnerability Database, and found on the [http://nvd.nist.gov/download.cfm NVD Download webpage]. See also [[Arch CVE Monitoring Team]] and [[CVE-2014]].<br />
<br />
{{Warning|Do not be tempted to perform partial updates, as they are not supported by Arch Linux and may cause instability: the whole system should be upgraded when upgrading a component. Also note that infrequent system updates can complicate the update process.}}<br />
<br />
==== Test updates on a non-critical system ====<br />
<br />
If possible, test changes to configuration files, as well as updates to software packages, on a non-critical duplicate system first. Then, if no problems arise, roll out the changes to the production system.<br />
<br />
==== Always back up config files before editing ====<br />
<br />
Before editing any configuration file, always back up a known working version of that config file. In the event that changes in the config file cause problems, one can revert to the previous stable config file. Do this from a text editor by first saving the file to a backup copy before making any alterations; or execute the following command:<br />
<br />
cp config config~<br />
<br />
Using ''~'' will ensure there is a readily distinguishable human-made backup conf file if pacman creates a .pacnew, .pacsave, or .pacorig file using the active config file.<br />
<br />
{{AUR|etckeeper}} can help dealing with config files. It keeps the whole {{ic|/etc}} directory in a version control.<br />
<br />
===== Periodically clean configuration files =====<br />
<br />
Old configuration files may conflict with newer software versions, or corrupt over time. Remove unneeded configurations periodically, particularly in your home folder and {{ic|~/.config}}. For similar reasons, take care in sharing home folders between installations.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Cinnamon&diff=330307Cinnamon2014-08-14T19:42:15Z<p>Clfarron4: /* Cannot add/remove/change languages used in Cinnamon */</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[ja:Cinnamon]]<br />
[[ru:Cinnamon]]<br />
[[tr:Cinnamon_Masaüstü_Ortamı]]<br />
{{Related articles start}}<br />
{{Related|Nemo}}<br />
{{Related|GNOME}}<br />
{{Related|MATE}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related articles end}}<br />
<br />
[http://cinnamon.linuxmint.com/ Cinnamon] is a Linux desktop which provides advanced innovative features and a traditional user experience. <br />
The desktop layout is similar to GNOME Panel (GNOME 2); however, the underlying technology was forked from GNOME Shell (GNOME 3).<br />
The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience. As of version 2.0, Cinnamon is a complete desktop environment and not merely a frontend for GNOME like GNOME Shell and Unity.<br />
<br />
== Installation ==<br />
<br />
Cinnamon can be [[Pacman|installed]] with the package {{Pkg|cinnamon}}, available in the [[official repositories]].<br />
<br />
To install additional Cinnamon themes, applets and extensions, you may wish to add the [[Unofficial user repositories#cinnamon|Cinnamon unofficial repository]] to your {{ic|pacman.conf}}.<br />
<br />
== Starting Cinnamon ==<br />
<br />
=== Graphical log-in ===<br />
<br />
Choose ''Cinnamon'' or ''Cinnamon (Software Rendering)'' from the menu in a [[display manager]] of choice. Cinnamon is the 3D accelerated version, which should be normally used. If you experience problems with your video driver (e.g. artifacts or crashing), try the ''Cinnamon (Software Rendering)'' session, which disables 3D acceleration.<br />
<br />
=== Starting Cinnamon manually ===<br />
<br />
If you prefer to start Cinnamon manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
<br />
{{hc|~/.xinitrc|<br />
exec cinnamon-session<br />
}}<br />
<br />
If the ''Cinnamon (Software Rendering)'' session is required, use {{ic|cinnamon-session-cinnamon2d}} instead of {{ic|cinnamon-session}}.<br />
<br />
After the {{ic|exec}} command is placed, Cinnamon can be launched by typing {{ic|startx}}. See [[xinitrc]] for details.<br />
<br />
{{Note|Versions before Cinnamon 1.9 used the GNOME session manager. For versions of Cinnamon currently in the [[official repositories]], use {{ic|cinnamon-session}} instead of {{ic|gnome-session-cinnamon}}.}}<br />
<br />
== Configuration ==<br />
<br />
Cinnamon is quite easy to configure &mdash; a lot of the configuration that most people will want can be done graphically. Its usability can be customized with [http://cinnamon-spices.linuxmint.com/applets applets] and [http://cinnamon-spices.linuxmint.com/extensions extensions], and also it supports [http://cinnamon-spices.linuxmint.com/themes theming]. <br />
<br />
=== Cinnamon Settings ===<br />
<br />
Simply run the following command:<br />
{{bc|$ cinnamon-settings}}<br />
<br />
Each settings panel can be accessed directly with the following commands:<br />
<br />
{{bc|$ cinnamon-settings panel<br />
$ cinnamon-settings calendar<br />
$ cinnamon-settings themes<br />
$ cinnamon-settings applets<br />
$ cinnamon-settings windows<br />
$ cinnamon-settings fonts<br />
$ cinnamon-settings hotcorner}} and so on.<br />
<br />
==== Networking Support ====<br />
<br />
To enable networking support in cinnamon, install and enable [[NetworkManager]].<br />
<br />
==== Bluetooth support in cinnamon-settings and the panel ====<br />
{{warning|{{AUR|cinnamon-bluetooth}} is incompatible with GNOME 3.10. See the [[Bluetooth]] article for alternatives.}}<br />
<br />
A GNOME bluetooth frontend for Cinnamon Panel and Cinnamon Settings is available in the AUR under the name {{AUR|cinnamon-bluetooth}}.<br />
<br />
=== Installing applets/extensions ===<br />
<br />
The difference between an applet and an extension is that an '''applet''' is basically an addition to a panel, whereas an '''extension''' can completely change the Cinnamon experience and can do much more than an applet.<br />
<br />
There are quite a few packages in the [[AUR]] ([https://aur.archlinux.org/packages.php?O=0&K=cinnamon-&do_Search=Go package search]). The process described here is a generic installation process.<br />
<br />
Installing applets in Cinnamon is relatively easy. First visit [http://cinnamon-spices.linuxmint.com/applets Cinnamon Applets] to see all of the current applets. Download the zip file for the desired applet, and extract to {{ic|~/.local/share/cinnamon/applets/}} or {{ic|/usr/share/cinnamon/applets}}.<br />
<br />
Then run<br />
<br />
$ cinnamon-settings applets<br />
<br />
to bring up the graphical applets manager. If the applet does not show up, press {{ic|Alt+F2}} and type {{ic|r}} and press {{ic|Enter}}. This will restart cinnamon and likely, the new applet. The process is analogous for extensions, with the only difference being that directories titled "applets" can be changed to "extensions".<br />
<br />
== Tips and tricks ==<br />
<br />
=== Creating custom applets/themes ===<br />
<br />
The official tutorial on creating an '''applet''' can be found [http://cinnamon.linuxmint.com/?p=156 here], and on creating a '''custom theme''' can be found [http://cinnamon.linuxmint.com/?p=144 here].<br />
<br />
=== Default desktop background wallpaper path ===<br />
<br />
When you add a wallpaper from a custom path in Cinnamon Settings, Cinnamon copies it to {{ic|~/.cinnamon/backgrounds}}. Thus, with every change of your wallpaper you would have to add your updated wallpaper again from the settings menu or copy / symlink it manually to {{ic|~/.cinnamon/backgrounds}}.<br />
<br />
=== Show home, filesystem desktop icons ===<br />
<br />
By default Cinnamon starts with desktop icons enabled but with no desktop icons on screen. To show desktop icons for the home folder, the filesystem, the trash, mounted volumes and network servers open Cinnamon settings and click on desktop. Enable the checkboxes of the icons you want to see on screen.<br />
<br />
=== Adding custom command launchers to the Menu applet ===<br />
<br />
The Menu applet supports launching custom commands. Right click on the applet, click on ''Configure...'' and then ''Open the menu editor''. Select a sub-menu (or create a new one) and select ''New Item''. Set ''Name'', ''Command'' and ''Comment''. Check the launch in terminal checkbox if needed. Leave unchecked for graphical applications. Click ''OK'' and close the menu editor afterwards. The launcher is added to the menu.<br />
<br />
=== Workspaces ===<br />
<br />
A workspace pager can be added to the panel. Right click the panel and choose the option 'Add applets to the panel.' Add the 'Workspace switch applet to the panel. To change its position right click on the panel and change the 'Panel edit mode' on/off switch to on. Click and drag the switcher to the desired position and turn the panel edit mode off when finished.<br />
<br />
By default there are 2 workspaces. To add more, hit {{ic|Control+Alt+Up}} to show all workspaces. Then click on the plus sign button on the right of the screen to add more workspaces.<br />
<br />
=== Hide desktop icons ===<br />
<br />
The desktop icons rendering feature is enabled in nemo by default. To disable this feature, change the setting with the following command: <br />
<br />
$ gsettings set org.nemo.desktop show-desktop-icons false<br />
<br />
=== GTK themes and icons ===<br />
<br />
Linux Mint styled themes and icons can be installed from AUR using packages {{AUR|mint-themes}} and {{AUR|mint-x-icons}}. The theme can be edited in System <tt>Settings -> Themes -> Other settings</tt>.<br />
<br />
=== Resize windows by mouse ===<br />
<br />
To resize windows with {{ic|Alt+Right click}}, use {{ic|gsettings}}:<br />
<br />
gsettings set org.cinnamon.desktop.wm.preferences resize-with-right-button true<br />
<br />
== Troubleshooting ==<br />
<br />
=== QGtkStyle unable to detect the current theme ===<br />
<br />
Installing {{Pkg|libgnome-data}} solves the problem partially, and QGtkStyle will detect the current GTK+ theme. However, to set the same icon and cursor theme, users must specify them explicitly.<br />
<br />
The icon theme for Qt apps can be configured by the following command:<br />
<br />
$ gconftool-2 --set --type string /desktop/gnome/interface/icon_theme Faenza-Dark<br />
<br />
This sets the icon theme to Faenza-Dark located in {{ic|/usr/share/icons/Faenza-Dark}}. <br />
<br />
The cursor theme for Qt apps can be selected by creating a symbolic link:<br />
<br />
$ mkdir ~/.icons<br />
$ ln -s /usr/share/icons/Adwaita ~/.icons/default<br />
<br />
This sets the cursor theme to Adwaita located in {{ic|/usr/share/icons/Adwaita}}.<br />
<br />
=== Pressing power buttons suspend the system ===<br />
<br />
This is the default behaviour. To change the setting open the {{ic|cinnamon-settings}} panel and click on the "Power Management" option. Change the "When the power button is pressed" option to your desired behaviour.<br />
<br />
=== Volume level is not saved ===<br />
<br />
The volume level is not be saved after reboot. The volume will be at 0 but not muted. Installing {{Pkg|alsa-utils}} will solve the problem.<br />
<br />
=== Applets not working ===<br />
<br />
If audio or network applets don't work the user may be required to be added to the relevant groups (audio, network):<br />
<br />
$ gpasswd -a [user] [group]<br />
<br />
=== cinnamon-settings: No module named Image ===<br />
<br />
If {{ic|cinnamon-settings}} does not start with the message that it cannot find a certain module, e.g. the Image module, it is likely that it uses outdated compiled files which refer to no longer existing file locations. In this case remove all {{ic|*.pyc}} files in {{ic|/usr/lib/cinnamon-settings}} and its sub-folders.<br />
<br />
=== Power settings do not work ===<br />
<br />
Update {{Pkg|cinnamon-control-center}} to version 2.2.10-2, and update {{Pkg|cinnamon-settings-daemon}} to version 2.2.4-2. These packages contain compatibility patches for {{Pkg|upower}}-0.99.0.<br />
<br />
=== Cannot add/remove/change languages used in Cinnamon ===<br />
<br />
The language module was removed from the Cinnamon Control Panel with the release of Cinnamon 2.2 and provided a new package for changing the language settings.<br />
<br />
'''To add/remove languages''', see [[Locale]].<br />
<br />
'''To change between enabled languages''', install the {{AUR|mintlocale}} package.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Modprobed-db&diff=330306Modprobed-db2014-08-14T19:26:35Z<p>Clfarron4: Addition of more kernels that have modprobe_db option in PKGBUILD.</p>
<hr />
<div>[[Category:Kernel]]<br />
{{Related articles start}}<br />
{{Related|Kernels}}<br />
{{Related|Linux-ck}}<br />
{{Related articles end}}<br />
<br />
{{AUR|modprobed-db}} keeps a running list of ALL modules ever probed on a system and allow for easy recall. This is very useful for users wishing to build a minimal kernel via a {{ic|make localmodconfig}} which simply takes every module currently probed and switches everything BUT them off in the {{ic|.config}} for a kernel resulting in smaller kernel packages and reduced compilation times.<br />
<br />
== Installation and Setup ==<br />
#Download, build, and install {{AUR|modprobed-db}}.<br />
#Run {{ic|/usr/bin/modprobed-db}} which will create {{ic|$XDG_CONFIG_HOME/modprobed-db.conf}} if one does not already exist. Optionally add some modules to ignore to the IGNORE array. Some common ones are included by default.<br />
<br />
== Usage ==<br />
=== Data Collection ===<br />
The most convenient method to use modprobed-db is to simply add a crontab entry invoking {{ic|/usr/bin/modprobed-db store}} at some regular interval.<br />
<br />
Example running the script once every 20 minutes:<br />
$ crontab -e<br />
*/20 * * * * /usr/bin/modprobed-db store &> /dev/null<br />
<br />
Another way is to use systemd's built-in timer functionality. Use the following service unit and refer to [[systemd/cron functionality]] on how to create an appropriate timer.<br />
<br />
{{hc|/etc/systemd/system/modprobed_db.service|<nowiki><br />
[Unit]<br />
Description=modprobed_db update<br />
<br />
[Service]<br />
Type=oneshot<br />
User=</nowiki>''enter user here''<nowiki><br />
Nice=19<br />
IOSchedulingClass=2<br />
IOSchedulingPriority=7<br />
ExecStart=/usr/bin/modprobed_db store<br />
</nowiki>}}<br />
<br />
=== Data Recall ===<br />
As mentioned earlier, this script is meant to be used in concert with the '''make localmodconfig''' step of compiling a kernel. After the database has been adequately populated, simply invoke {{ic|/usr/bin/modprobed-db recall}} prior to compiling a kernel to load all modules followed by the '''make localmodconfig''' to do the magic.<br />
<br />
{{Note|Since {{ic|/usr/bin/modprobe}} requires root privileges, {{ic|/usr/bin/modprobed-db}} needs to be called as root or via sudo when users wish to recall the database.}}<br />
<br />
==== Using the Official Arch kernel PKGBUILD ====<br />
The official Arch kernel's PKGBUILD does not have native support for this, but it is easily modified as follows:<br />
<br />
{{bc| ...<br />
# get kernel version<br />
make prepare<br />
<br />
sudo /usr/bin/modprobed-db recall <---- insert this line<br />
make localmodconfig <---- insert this line<br />
<br />
# load configuration<br />
# Configure the kernel. Replace the line below with one of your choice.<br />
#make menuconfig # CLI menu for configuration<br />
#make nconfig # new CLI menu for configuration<br />
#make xconfig # X-based configuration<br />
#make oldconfig # using old config from previous kernel version<br />
# ... or manually edit .config<br />
...}}<br />
<br />
==== Using Some Kernels in the AUR ====<br />
Several kernel packages in the AUR have native support for modprobed-db in their PKGBUILD files.<br />
For example:<br />
*{{AUR|kernel-netbook}}<br />
*{{AUR|linux-bfs}}<br />
*{{AUR|linux-bridge-pl}}<br />
*{{AUR|linux-ck-pax}}<br />
*{{AUR|linux-ck}}<br />
*{{AUR|linux-ck-systemtap}}<br />
*{{AUR|linux-ideapad}}<br />
*{{AUR|linux-lts-ck}}, {{AUR|linux-lts310-ck}} and {{AUR|linux-lts312-ck}}<br />
*{{AUR|linux-lts310}} and {{AUR|linux-lts312}}<br />
*{{AUR|linux-lqx}}<br />
*{{AUR|linux-pf}}<br />
*{{AUR|linux-pksm}}<br />
*{{AUR|linux-rifs}}<br />
*{{AUR|linux-routes}}<br />
*{{AUR|linux-tresor}} and {{AUR|linux-lts-tresor}}<br />
*{{AUR|linux-uksm-ck}}<br />
*{{AUR|linux-uksm}}<br />
<br />
Find which other packages use it:<br />
cd /scratch<br />
git clone --depth 1 http://pkgbuild.com/git/aur-mirror.git<br />
find /scratch/aur-mirror -iname "PKGBUILD" -print0 | xargs -0 grep "modprobed-db recall" | sort<br />
<br />
{{Note|The server pkgbuild.com is rather slow and the git clone can take a while.}}<br />
<br />
Alternatively, download the .tar.xz snapshot (around 90 MB) by following [http://pkgbuild.com/git/aur-mirror.git/ this link] and then clicking on the latest commit message.<br />
<br />
== Recommendations ==<br />
It is recommended that users install the package and then "use" the system for a good amount of time to allow the database to grow based on usage and capture everything the system needs before building a kernel with a '''make localmodconfig'''. Some suggested actions to allow appropriate modules to load and get cataloged:<br />
<br />
*Insert every kind of removable media (USB, DVD, CD, etc.)<br />
*Use every device on the machine (wifi, network, USB stuff like cameras, ipods, etc.)<br />
*Mount every kind of filesystem one might typically use including ext2/3/4, fat, vfat, CIFS shares, NFS shares, etc.<br />
*Use as many applications (that one would normally use) as possible in order to capture modules on which they depend. For example, IP blocking/filtering software like {{AUR|pgl-cli}}.<br />
*Users who plan to mount iso image file should do so (this will make sure to capture the '''loop''' and '''isofs''' modules).<br />
*Users requiring encryption software such as {{Pkg|truecrypt}} should make sure to load it, and mount some encrypted containers to ensure that the needed crypto modules are in the db.<br />
<br />
== Suggested Modules ==<br />
*cifs<br />
*ext2<br />
*ext3<br />
*ext4<br />
*fat<br />
*isofs<br />
*loop<br />
*vfat<br />
<br />
== Benefits of modprobed-db with '''make localmodconfig''' in custom kernels==<br />
#Reduced kernel footprint on FS<br />
#Reduced compilation time<br />
<br />
Comparisons using version 3.8.8-1 of the Arch kernel (from ABS):<br />
<br />
{{Note| The /var/log/modprobed.db on the test machine contains 209 lines; YMMV based on specific usage and needs.}}<br />
<br />
{| border="1"<br />
| '''Machine CPU''' || '''# of threads''' || '''make localmodconfig'''||'''# of Modules''' || '''Modules' Size on HDD''' || '''Compilation Time'''<br />
|-<br />
| Intel i7-3770K @ 4.50 GHz || 8 || No || 3,025 || 129 MB || 7 min 37 sec<br />
|- <br />
| Intel i7-3770K @ 4.50 GHz || 8 || Yes || 230 || 18 MB || 1 min 13 sec<br />
|- <br />
| Intel Q9550 @ 3.40 GHz || 4 || No || 3,025 || 129 MB || 14 min 21 sec<br />
|- <br />
| Intel Q9550 @ 3.40 GHz || 4 || Yes || 230 || 18 MB || 2 min 20 sec<br />
|- <br />
| Intel E5200 @ 3.33 GHz || 2 || No || 3,025 || 129 MB || 34 min 35 sec<br />
|- <br />
| Intel E5200 @ 3.33 GHz || 2 || Yes || 230 || 18 MB || 5 min 46 sec<br />
|- <br />
|}<br />
<br />
*'''13x less modules built'''<br />
*'''7x less space'''<br />
*'''6x less compilation time'''<br />
<br />
Number of modules found by:<br />
find /scratch/linux-3.8 -name '*.ko' | wc -l<br />
<br />
Size on HDD found by:<br />
find /scratch/linux-3.8 -name '*.ko' -print0 | xargs -0 du -ch<br />
<br />
Compilation time found by entering a preconfigured linux-3.8.8 (using stock Arch config):<br />
$ time make -jx modules<br />
<br />
{{Note|The Arch standard is to gzip each module; the numbers shown in the table above are not gzip'ed but the savings ratio will be unaffected by this.}}</div>Clfarron4https://wiki.archlinux.org/index.php?title=Cinnamon&diff=328010Cinnamon2014-08-01T19:52:49Z<p>Clfarron4: /* Troubleshooting */ Cannot add/remove/change languages.</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[ja:Cinnamon]]<br />
[[ru:Cinnamon]]<br />
[[tr:Cinnamon_Masaüstü_Ortamı]]<br />
{{Related articles start}}<br />
{{Related|Nemo}}<br />
{{Related|GNOME}}<br />
{{Related|MATE}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related articles end}}<br />
<br />
[http://cinnamon.linuxmint.com/ Cinnamon] is a Linux desktop which provides advanced innovative features and a traditional user experience. <br />
The desktop layout is similar to GNOME Panel (GNOME 2); however, the underlying technology was forked from GNOME Shell (GNOME 3).<br />
The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience. As of version 2.0, Cinnamon is a complete desktop environment and not merely a frontend for GNOME like GNOME Shell and Unity.<br />
<br />
== Installation ==<br />
<br />
Cinnamon can be [[Pacman|installed]] with the package {{Pkg|cinnamon}}, available in the [[official repositories]].<br />
<br />
To install additional Cinnamon themes, applets and extensions, you may wish to add the [[Unofficial user repositories#cinnamon|Cinnamon unofficial repository]] to your {{ic|pacman.conf}}.<br />
<br />
== Starting Cinnamon ==<br />
<br />
=== Graphical log-in ===<br />
<br />
Choose ''Cinnamon'' or ''Cinnamon (Software Rendering)'' from the menu in a [[display manager]] of choice. Cinnamon is the 3D accelerated version, which should be normally used. If you experience problems with your video driver (e.g. artifacts or crashing), try the ''Cinnamon (Software Rendering)'' session, which disables 3D acceleration.<br />
<br />
=== Starting Cinnamon manually ===<br />
<br />
If you prefer to start Cinnamon manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
<br />
{{hc|~/.xinitrc|<br />
exec cinnamon-session<br />
}}<br />
<br />
If the ''Cinnamon (Software Rendering)'' session is required, use {{ic|cinnamon-session-cinnamon2d}} instead of {{ic|cinnamon-session}}.<br />
<br />
After the {{ic|exec}} command is placed, Cinnamon can be launched by typing {{ic|startx}}. See [[xinitrc]] for details.<br />
<br />
{{Note|Versions before Cinnamon 1.9 used the GNOME session manager. For versions of Cinnamon currently in the [[official repositories]], use {{ic|cinnamon-session}} instead of {{ic|gnome-session-cinnamon}}.}}<br />
<br />
== Configuration ==<br />
<br />
Cinnamon is quite easy to configure &mdash; a lot of the configuration that most people will want can be done graphically. Its usability can be customized with [http://cinnamon-spices.linuxmint.com/applets applets] and [http://cinnamon-spices.linuxmint.com/extensions extensions], and also it supports [http://cinnamon-spices.linuxmint.com/themes theming]. <br />
<br />
=== Cinnamon Settings ===<br />
<br />
Simply run the following command:<br />
{{bc|$ cinnamon-settings}}<br />
<br />
Each settings panel can be accessed directly with the following commands:<br />
<br />
{{bc|$ cinnamon-settings panel<br />
$ cinnamon-settings calendar<br />
$ cinnamon-settings themes<br />
$ cinnamon-settings applets<br />
$ cinnamon-settings windows<br />
$ cinnamon-settings fonts<br />
$ cinnamon-settings hotcorner}} and so on.<br />
<br />
==== Networking Support ====<br />
<br />
To enable networking support in cinnamon, install and enable [[NetworkManager]].<br />
<br />
==== Bluetooth support in cinnamon-settings and the panel ====<br />
{{warning|{{AUR|cinnamon-bluetooth}} is incompatible with GNOME 3.10. See the [[Bluetooth]] article for alternatives.}}<br />
<br />
A GNOME bluetooth frontend for Cinnamon Panel and Cinnamon Settings is available in the AUR under the name {{AUR|cinnamon-bluetooth}}.<br />
<br />
=== Installing applets/extensions ===<br />
<br />
The difference between an applet and an extension is that an '''applet''' is basically an addition to a panel, whereas an '''extension''' can completely change the Cinnamon experience and can do much more than an applet.<br />
<br />
There are quite a few packages in the [[AUR]] ([https://aur.archlinux.org/packages.php?O=0&K=cinnamon-&do_Search=Go package search]). The process described here is a generic installation process.<br />
<br />
Installing applets in Cinnamon is relatively easy. First visit [http://cinnamon-spices.linuxmint.com/applets Cinnamon Applets] to see all of the current applets. Download the zip file for the desired applet, and extract to {{ic|~/.local/share/cinnamon/applets/}} or {{ic|/usr/share/cinnamon/applets}}.<br />
<br />
Then run<br />
<br />
$ cinnamon-settings applets<br />
<br />
to bring up the graphical applets manager. If the applet does not show up, press {{ic|Alt+F2}} and type {{ic|r}} and press {{ic|Enter}}. This will restart cinnamon and likely, the new applet. The process is analogous for extensions, with the only difference being that directories titled "applets" can be changed to "extensions".<br />
<br />
== Tips and tricks ==<br />
<br />
=== Creating custom applets/themes ===<br />
<br />
The official tutorial on creating an '''applet''' can be found [http://cinnamon.linuxmint.com/?p=156 here], and on creating a '''custom theme''' can be found [http://cinnamon.linuxmint.com/?p=144 here].<br />
<br />
=== Default desktop background wallpaper path ===<br />
<br />
When you add a wallpaper from a custom path in Cinnamon Settings, Cinnamon copies it to {{ic|~/.cinnamon/backgrounds}}. Thus, with every change of your wallpaper you would have to add your updated wallpaper again from the settings menu or copy / symlink it manually to {{ic|~/.cinnamon/backgrounds}}.<br />
<br />
=== Show home, filesystem desktop icons ===<br />
<br />
By default Cinnamon starts with desktop icons enabled but with no desktop icons on screen. To show desktop icons for the home folder, the filesystem, the trash, mounted volumes and network servers open Cinnamon settings and click on desktop. Enable the checkboxes of the icons you want to see on screen.<br />
<br />
=== Adding custom command launchers to the Menu applet ===<br />
<br />
The Menu applet supports launching custom commands. Right click on the applet, click on ''Configure...'' and then ''Open the menu editor''. Select a sub-menu (or create a new one) and select ''New Item''. Set ''Name'', ''Command'' and ''Comment''. Check the launch in terminal checkbox if needed. Leave unchecked for graphical applications. Click ''OK'' and close the menu editor afterwards. The launcher is added to the menu.<br />
<br />
=== Workspaces ===<br />
<br />
A workspace pager can be added to the panel. Right click the panel and choose the option 'Add applets to the panel.' Add the 'Workspace switch applet to the panel. To change its position right click on the panel and change the 'Panel edit mode' on/off switch to on. Click and drag the switcher to the desired position and turn the panel edit mode off when finished.<br />
<br />
By default there are 2 workspaces. To add more, hit {{ic|Control+Alt+Up}} to show all workspaces. Then click on the plus sign button on the right of the screen to add more workspaces.<br />
<br />
=== Hide desktop icons ===<br />
<br />
The desktop icons rendering feature is enabled in nemo by default. To disable this feature, change the setting with the following command: <br />
<br />
$ gsettings set org.nemo.desktop show-desktop-icons false<br />
<br />
=== GTK themes and icons ===<br />
<br />
Linux Mint styled themes and icons can be installed from AUR using packages {{AUR|mint-themes}} and {{AUR|mint-x-icons}}. The theme can be edited in System <tt>Settings -> Themes -> Other settings</tt>.<br />
<br />
=== Resize windows by mouse ===<br />
<br />
To resize windows with {{ic|Alt+Right click}}, use {{ic|gsettings}}:<br />
<br />
gsettings set org.cinnamon.desktop.wm.preferences resize-with-right-button true<br />
<br />
== Troubleshooting ==<br />
<br />
=== QGtkStyle unable to detect the current theme ===<br />
<br />
Installing {{Pkg|libgnome-data}} solves the problem partially, and QGtkStyle will detect the current GTK+ theme. However, to set the same icon and cursor theme, users must specify them explicitly.<br />
<br />
The icon theme for Qt apps can be configured by the following command:<br />
<br />
$ gconftool-2 --set --type string /desktop/gnome/interface/icon_theme Faenza-Dark<br />
<br />
This sets the icon theme to Faenza-Dark located in {{ic|/usr/share/icons/Faenza-Dark}}. <br />
<br />
The cursor theme for Qt apps can be selected by creating a symbolic link:<br />
<br />
$ mkdir ~/.icons<br />
$ ln -s /usr/share/icons/Adwaita ~/.icons/default<br />
<br />
This sets the cursor theme to Adwaita located in {{ic|/usr/share/icons/Adwaita}}.<br />
<br />
=== Pressing power buttons suspend the system ===<br />
<br />
This is the default behaviour. To change the setting open the {{ic|cinnamon-settings}} panel and click on the "Power Management" option. Change the "When the power button is pressed" option to your desired behaviour.<br />
<br />
=== Volume level is not saved ===<br />
<br />
The volume level is not be saved after reboot. The volume will be at 0 but not muted. Installing {{Pkg|alsa-utils}} will solve the problem.<br />
<br />
=== Applets not working ===<br />
<br />
If audio or network applets don't work the user may be required to be added to the relevant groups (audio, network):<br />
<br />
$ gpasswd -a [user] [group]<br />
<br />
=== cinnamon-settings: No module named Image ===<br />
<br />
If {{ic|cinnamon-settings}} does not start with the message that it cannot find a certain module, e.g. the Image module, it is likely that it uses outdated compiled files which refer to no longer existing file locations. In this case remove all {{ic|*.pyc}} files in {{ic|/usr/lib/cinnamon-settings}} and its sub-folders.<br />
<br />
=== Power settings do not work ===<br />
<br />
Update {{Pkg|cinnamon-control-center}} to version 2.2.10-2, and update {{Pkg|cinnamon-settings-daemon}} to version 2.2.4-2. These packages contain compatibility patches for {{Pkg|upower}}-0.99.0.<br />
<br />
=== Cannot add/remove/change languages used in Cinnamon ===<br />
<br />
Cinnamon recently removed the language module from the Control Panel and provided a new package for changing the language settings.<br />
<br />
'''To add/remove languages''', see [[Locale]].<br />
<br />
'''To change between enabled languages''', install the {{AUR|mintlocale}} package.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Arch_Rollback_Machine&diff=328004Arch Rollback Machine2014-08-01T17:41:34Z<p>Clfarron4: Grammar</p>
<hr />
<div>[[Category:Package management]]<br />
[[fr:Arch Rollback Machine]]<br />
[[ja:Arch Rollback Machine]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''Arch Rollback Machine''' (ARM for short) is a daily snapshot of official '''Archlinux''' mirrors.<br />
You can use it to find an old version of a package or to change the way you upgrade your system.<br />
<br />
== Location ==<br />
<br />
The ARM is available at http://seblu.net/a/arm or ftp://seblu.net/archlinux/arm<br />
<br />
== Architecture ==<br />
<br />
The '''ARM''' stores a snapshot of each day in a filesystem hierarchy like the following.<br />
In addition there are 3 symlinks pointing to special snapshots and one packages directory.<br />
<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ └── 10<br />
│ ├── 01<br />
│ ├── 02<br />
│ ├── ...<br />
│<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
│<br />
├── all<br />
│ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ ├── ...<br />
│ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ └── ...<br />
│<br />
├── last -> 2013/09/22<br />
├── month -> 2013/09/01<br />
└── week -> 2013/09/16<br />
<br />
* The '''20xx''' hierarchy contains daily snapshots of official mirror organized by date.<br />
* The [http://seblu.net/a/arm/packages packages] hierarchy contains symlinks to all versions of each package. One directory by package.<br />
* The [http://seblu.net/a/arm/all all] hierarchy contains symlinks to all versions of each package in one flat directory. No listing.<br />
* The [http://seblu.net/a/arm/last last] symlink is updated every day and points to the last finished mirror snapshot.<br />
* The [http://seblu.net/a/arm/week week] symlink is updated every week and points to the monday of the current week.<br />
* The [http://seblu.net/a/arm/month month] symlink is updated every month and points to the first day of the current month.<br />
<br />
== Time travel ==<br />
<br />
This feature allows you to get packages and databases at a given date. You can use it to:<br />
# download an old package;<br />
# use pacman stuck on a particular day.<br />
<br />
To have '''pacman''' be stuck on 11th September 2013, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database: {{Ic|# pacman -Syy}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Time relativity ==<br />
<br />
The feature allows you to get Archlinux upgrades delayed in time.<br />
To upgrade your computer on a weekly or a monthly basis, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch than the rest of the system.}}<br />
<br />
== Future ==<br />
<br />
This is a kind a TO-DO list for '''ARM'''.<br />
<br />
* Move to official infrastructure.<br />
* Automatic clean-up after a defined amount of time.<br />
* Add AUR to ARM<br />
<br />
== Sources ==<br />
<br />
Scripts used to create this are simple.<br />
<br />
You can find them here: https://github.com/seblu/armtools<br />
<br />
== Past ==<br />
<br />
The original '''ARM''' was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Arch_Rollback_Machine&diff=328002Arch Rollback Machine2014-08-01T17:39:38Z<p>Clfarron4: Spelling and Grammar.</p>
<hr />
<div>[[Category:Package management]]<br />
[[fr:Arch Rollback Machine]]<br />
[[ja:Arch Rollback Machine]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''Arch Rollback Machine''' (ARM for short) is a daily snapshot of official '''Archlinux''' mirrors.<br />
You can use it to find an old version of a package or to change the way you upgrade your system.<br />
<br />
== Location ==<br />
<br />
The ARM is available at http://seblu.net/a/arm or ftp://seblu.net/archlinux/arm<br />
<br />
== Architecture ==<br />
<br />
The '''ARM''' stores each day snapshot in a filesystem hierarchy like the following.<br />
In addition there are 3 symlinks pointing to special snapshots and one packages directory.<br />
<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ └── 10<br />
│ ├── 01<br />
│ ├── 02<br />
│ ├── ...<br />
│<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
│<br />
├── all<br />
│ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ ├── ...<br />
│ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ └── ...<br />
│<br />
├── last -> 2013/09/22<br />
├── month -> 2013/09/01<br />
└── week -> 2013/09/16<br />
<br />
* The '''20xx''' hierarchy contains daily snapshots of official mirror organized by date.<br />
* The [http://seblu.net/a/arm/packages packages] hierarchy contains symlinks to all versions of each package. One directory by package.<br />
* The [http://seblu.net/a/arm/all all] hierarchy contains symlinks to all versions of each package in one flat directory. No listing.<br />
* The [http://seblu.net/a/arm/last last] symlink is updated every day and points to the last finished mirror snapshot.<br />
* The [http://seblu.net/a/arm/week week] symlink is updated every week and points to the monday of the current week.<br />
* The [http://seblu.net/a/arm/month month] symlink is updated every month and points to the first day of the current month.<br />
<br />
== Time travel ==<br />
<br />
This feature allows you to get packages and databases at a given date. You can use it to:<br />
# download an old package;<br />
# use pacman stuck on a particular day.<br />
<br />
To have '''pacman''' be stuck on 11th September 2013, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database: {{Ic|# pacman -Syy}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Time relativity ==<br />
<br />
The feature allows you to get Archlinux upgrades delayed in time.<br />
To upgrade your computer on a weekly or a monthly basis, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch than the rest of the system.}}<br />
<br />
== Future ==<br />
<br />
This is a kind a TO-DO list for '''ARM'''.<br />
<br />
* Move to official infrastructure.<br />
* Automatic clean-up after a defined amount of time.<br />
* Add AUR to ARM<br />
<br />
== Sources ==<br />
<br />
Scripts used to create this are simple.<br />
<br />
You can find them here: https://github.com/seblu/armtools<br />
<br />
== Past ==<br />
<br />
The original '''ARM''' was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Arch_Rollback_Machine&diff=328001Arch Rollback Machine2014-08-01T17:35:42Z<p>Clfarron4: Spelling and Grammar.</p>
<hr />
<div>[[Category:Package management]]<br />
[[fr:Arch Rollback Machine]]<br />
[[ja:Arch Rollback Machine]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''Arch Rollback Machine''' (ARM for short) is a daily snapshot of official '''Archlinux''' mirror.<br />
You can use it to find an old version of a package or to change the way you upgrade your system.<br />
<br />
== Location ==<br />
<br />
The ARM is available at http://seblu.net/a/arm or ftp://seblu.net/archlinux/arm<br />
<br />
== Architecture ==<br />
<br />
The '''ARM''' stores each day snapshot in a filesystem hierarchy like the following.<br />
In addition there are 3 symlinks pointing to special snapshots and one packages directory.<br />
<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ └── 10<br />
│ ├── 01<br />
│ ├── 02<br />
│ ├── ...<br />
│<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
│<br />
├── all<br />
│ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ ├── ...<br />
│ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ └── ...<br />
│<br />
├── last -> 2013/09/22<br />
├── month -> 2013/09/01<br />
└── week -> 2013/09/16<br />
<br />
* The '''20xx''' hierarchy contains daily snapshots of official mirror organized by date.<br />
* The [http://seblu.net/a/arm/packages packages] hierarchy contains symlinks to all versions of each package. One directory by package.<br />
* The [http://seblu.net/a/arm/all all] hierarchy contains symlinks to all versions of each package in one flat directory. No listing.<br />
* The [http://seblu.net/a/arm/last last] symlink is updated every day and points to the last finished mirror snapshot.<br />
* The [http://seblu.net/a/arm/week week] symlink is updated every week and points to the monday of the current week.<br />
* The [http://seblu.net/a/arm/month month] symlink is updated every month and points to the first day of the current month.<br />
<br />
== Time travel ==<br />
<br />
This feature allows you to get packages and databases at a given date. You can use it to:<br />
# download an old package;<br />
# use pacman stuck on a particular day.<br />
<br />
To have '''pacman''' be stuck on 11th September 2013, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database: {{Ic|# pacman -Syy}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Time relativity ==<br />
<br />
The feature allow you to get Archlinux upgrades delayed in time.<br />
To upgrade your computer on a weekly or a monthly basis, edit your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://seblu.net/a/arm/month/$repo/os/$arch<br />
#Server=http://seblu.net/a/arm/week/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|It's not safe to mix ARM and up-to-date mirrror. In case of download failure, you can fallback on a upstream package and you will have packages not from the same epoch than the rest of the system.}}<br />
<br />
== Future ==<br />
<br />
This is a kind a TODO list for '''ARM'''.<br />
<br />
* Move to official infrastructure.<br />
* Automatic cleanup after a defined amount of time.<br />
* Add AUR to ARM<br />
<br />
== Sources ==<br />
<br />
Scripts used to create this are simple.<br />
<br />
You can find them here: https://github.com/seblu/armtools<br />
<br />
== Past ==<br />
<br />
The original '''ARM''' has been closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Arch_User_Repository&diff=327692Arch User Repository2014-07-30T19:38:48Z<p>Clfarron4: /* Git repository */ Change of AUR Git Maintainer</p>
<hr />
<div>[[Category:Arch User Repository]]<br />
[[Category:Package development]]<br />
[[Category:Package management]]<br />
[[ar:Arch User Repository]]<br />
[[cs:Arch User Repository]]<br />
[[da:Arch User Repository]]<br />
[[de:Arch User Repository]]<br />
[[el:Arch User Repository]]<br />
[[es:Arch User Repository]]<br />
[[fi:AUR]]<br />
[[fr:AUR]]<br />
[[it:Arch User Repository]]<br />
[[ja:Arch User Repository]]<br />
[[nl:Arch User Repository]]<br />
[[pl:Arch User Repository]]<br />
[[pt:Arch User Repository]]<br />
[[ro:AUR]]<br />
[[ru:Arch User Repository]]<br />
[[sr:Arch User Repository]]<br />
[[tr:Arch_Kullanıcı_Deposu]]<br />
[[uk:Arch User Repository]]<br />
[[zh-CN:Arch User Repository]]<br />
{{Related articles start}}<br />
{{Related|AUR helpers}}<br />
{{Related|AurJson}}<br />
{{Related|AUR Trusted User Guidelines}}<br />
{{Related|PKGBUILD}}<br />
{{Related|makepkg}}<br />
{{Related|pacman}}<br />
{{Related|AUR Metadata}}<br />
{{Related|Official repositories}}<br />
{{Related|Arch Build System}}<br />
{{Related articles end}}<br />
<br />
The Arch User Repository (AUR) is a community-driven repository for Arch users. It contains package descriptions ([[PKGBUILD]]s) that allow you to compile a package from source with [[makepkg]] and then install it via [[pacman#Additional commands|pacman]]. The AUR was created to organize and share new packages from the community and to help expedite popular packages' inclusion into the [[community]] repository. This document explains how users can access and utilize the AUR.<br />
<br />
A good number of new packages that enter the official repositories start in the AUR. In the AUR, users are able to contribute their own package builds (PKGBUILD and related files). The AUR community has the ability to vote for or against packages in the AUR. If a package becomes popular enough &mdash; provided it has a compatible license and good packaging technique &mdash; it may be entered into the ''community'' repository (directly accessible by [[pacman]] or [[ABS|abs]]).<br />
<br />
== Getting started ==<br />
<br />
Users can search and download PKGBUILDs from the [https://aur.archlinux.org AUR Web Interface]. These PKGBUILDs can be built into installable packages using [[makepkg]], then installed using pacman. <br />
<br />
* Ensure the {{Grp|base-devel}} group package is installed ({{ic|pacman -S --needed base-devel}}).<br />
* Read the remainder of this article for more info and a short tutorial on installing AUR packages.<br />
* Visit the [https://aur.archlinux.org AUR Web Interface] to inform yourself on updates and happenings. There you will also find statistics and an up-to-date list of newest available packages available in AUR.<br />
* Glance over the [[#FAQ]] for answers to the most common questions.<br />
* You may wish to adjust {{ic|/etc/makepkg.conf}} to better optimize for your processor prior to building packages from the AUR. A significant improvement in compile times can be realized on systems with multi-core processors by adjusting the MAKEFLAGS variable. Users can also enable hardware-specific optimizations in GCC via the CFLAGS variable. See [[makepkg]] for more information.<br />
<br />
== History ==<br />
<br />
The following items are listed for historical purposes only. They have since been superseded by the AUR and are no longer available.<br />
<br />
At the beginning, there was {{ic|<nowiki>ftp://ftp.archlinux.org/incoming</nowiki>}}, and people contributed by simply uploading the PKGBUILD, the needed supplementary files, and the built package itself to the server. The package and associated files remained there until a [[Package Maintainer]] saw the program and adopted it.<br />
<br />
Then the Trusted User Repositories were born. Certain individuals in the community were allowed to host their own repositories for anyone to use. The AUR expanded on this basis, with the aim of making it both more flexible and more usable. In fact, the AUR maintainers are still referred to as TUs (Trusted Users).<br />
<br />
== Searching ==<br />
<br />
The AUR web interface can be found at https://aur.archlinux.org/, and an interface suitable for accessing the AUR from a script can be found at https://aur.archlinux.org/rpc.php.<br />
<br />
Queries search package names and descriptions via a MySQL LIKE comparison. This allows for more flexible search criteria (e.g. try searching for {{ic|tool%like%grep}} instead of {{ic|tool like grep}}). If you need to search for a description that contains {{ic|%}}, escape it with {{ic|\%}}.<br />
<br />
== Installing packages ==<br />
<br />
Installing packages from the AUR is a relatively simple process. Essentially:<br />
<br />
# Acquire the tarball which contains the [[PKGBUILD]] and possibly other required files, like systemd-units and patches (but often not the actual code).<br />
# Extract the tarball (preferably in a folder set aside just for builds from the AUR) with {{ic|tar -xvf foo.tar.gz}}.<br />
# Run {{ic|makepkg}} in the directory where the files are saved ({{ic|makepkg -s}} will automatically resolve dependencies with pacman). This will download the code, compile it and pack it.<br />
# Look for a README file in {{ic|src/}}, as it might contain information needed later on.<br />
# Install the resulting package with [[pacman]]:<br />
<br />
: {{bc|# pacman -U /path/to/pkg.tar.xz}}<br />
<br />
[[AUR helpers]] add seamless access to the AUR. They vary in their features but can ease in searching, fetching, building, and installing from PKGBUILDs found in the AUR. All of these scripts can be found in the AUR.<br />
<br />
{{Warning|There is not and will never be an ''official'' mechanism for installing build material from the AUR. '''All AUR users should be familiar with the build process.'''}}<br />
<br />
=== Prerequisites ===<br />
<br />
First ensure that the necessary tools are installed. The package group {{grp|base-devel}} should be sufficient; it includes {{pkg|make}} and other tools needed for compiling from source.<br />
<br />
{{Warning|Packages in the AUR assume the {{grp|base-devel}} group is installed, and AUR packages will not list members of this group as dependencies even if the package cannot be built without them. Please ensure this group is installed before complaining about failed builds.}}<br />
<br />
# pacman -S --needed base-devel<br />
<br />
Next choose an appropriate build directory. A build directory is simply a directory where the package will be made or "built" and can be any directory. Examples of commonly used directories are:<br />
<br />
~/builds<br />
<br />
or if using ABS (the [[Arch Build System]]):<br />
<br />
/var/abs/local<br />
<br />
For more information on ABS read the [[Arch Build System]] article. The example will use {{ic|~/builds}} as the build directory.<br />
<br />
=== Acquire build files ===<br />
<br />
Locate the package in the AUR. This is done using the search feature (text field at the top of the [https://aur.archlinux.org/ AUR home page]). Clicking the application's name in the search list brings up an information page on the package. Read through the description to confirm that this is the desired package, note when the package was last updated, and read any comments.<br />
<br />
Download the necessary build files by clicking on the "Download tarball" link under "Package actions" on the right hand side. This file should be saved to the build directory or otherwise copied to the directory after downloading. In this example, the file is called "foo.tar.gz" (standard format is ''pkgname''.tar.gz, if it has been properly submitted).<br />
<br />
Alternatively you can download the tarball from the terminal, changing directories to the build directory first:<br />
<br />
$ cd ~/builds<br />
$ curl -L -O <nowiki>https://aur.archlinux.org/packages/fo/foo/foo.tar.gz</nowiki><br />
<br />
=== Build the package ===<br />
<br />
Change directories to the build directory if not already there, then extract the previously downloaded package:<br />
<br />
$ cd ~/builds<br />
$ tar -xvf foo.tar.gz<br />
<br />
This should create a new directory called "foo" in the build directory.<br />
<br />
{{Warning|'''Carefully check all files.''' {{ic|cd}} to the newly created directory and carefully check the {{ic|PKGBUILD}} and any {{ic|.install}} file for malicious commands. {{ic|PKGBUILD}}s are bash scripts containing functions to be executed by {{ic|makepkg}}: these functions can contain ''any'' valid commands or Bash syntax, so it is totally possible for a {{ic|PKGBUILD}} to contain dangerous commands through malice or ignorance on the part of the author. Since {{ic|makepkg}} uses fakeroot (and should never be run as root), there is some level of protection but you should never count on it. If in doubt, do not build the package and seek advice on the forums or mailing list.}}<br />
<br />
$ cd foo<br />
$ nano PKGBUILD<br />
$ nano foo.install<br />
<br />
Make the package. After manually confirming the integrity of the files, run [[makepkg]] as a normal user:<br />
<br />
$ makepkg -s<br />
<br />
The {{ic|-s}} switch will use [[sudo]] to install any needed dependencies. If the use of sudo is undesirable, manually install required dependencies beforehand and exclude the {{ic|-s}} in the above command.<br />
<br />
=== Install the package ===<br />
<br />
Install the package using pacman. A tarball should have been created named:<br />
<br />
<''application name''>-<''application version number''>-<''package revision number''>-<''architecture''>.pkg.tar.xz<br />
<br />
This package can be installed using pacman's "upgrade" command:<br />
<br />
# pacman -U foo-0.1-1-i686.pkg.tar.xz <br />
<br />
These manually installed packages are called foreign packages &mdash; packages which have not originated from any repository known to pacman. To list all foreign packages:<br />
$ pacman -Qm <br />
<br />
{{Note|The above example is only a brief summary of the package building process. A visit to the [[makepkg]] and [[Arch Build System|ABS]] pages will provide more detail and is highly recommended, especially for first-time users.}}<br />
<br />
== Feedback ==<br />
<br />
The [https://aur.archlinux.org AUR Web Interface] has a comments facility that allows users to provide suggestions and feedback on improvements to the PKGBUILD contributor. Avoid pasting patches or PKGBUILDs into the comments section: they quickly become obsolete and just end up needlessly taking up lots of space. Instead email those files to the maintainer, or even use a [[List of applications#Pastebin clients|pastebin]].<br />
<br />
One of the easiest activities for '''all''' Arch users is to browse the AUR and '''vote''' for their favourite packages using the online interface. All packages are eligible for adoption by a TU for inclusion in the [[community]] repository, and the vote count is one of the considerations in that process; it is in everyone's interest to vote!<br />
<br />
== Sharing and maintaining packages ==<br />
<br />
Users can '''share''' PKGBUILDs using the Arch User Repository. It does not contain any binary packages but allows users to upload PKGBUILDs that can be downloaded by others. These PKGBUILDs are completely unofficial and have not been thoroughly vetted, so they should be used at your own risk.<br />
<br />
=== Submitting packages ===<br />
<br />
{{Warning|Before attempting to submit a package you are expected to familiarize yourself with [[Arch packaging standards]] and all articles, mentioned at the bottom of it.}}<br />
<br />
After logging in to the AUR web interface, a user can [https://aur.archlinux.org/pkgsubmit.php submit] a gzipped tarball ({{ic|.tar.gz}}) of a directory containing build files for a package. The directory inside the tarball should contain a [[PKGBUILD]], [[AUR Metadata|.AURINFO]], any {{ic|.install}} files, patches, etc. ('''absolutely''' no binaries). Examples of what such a directory should look like can be seen inside {{ic|/var/abs}} if the [[Arch Build System]] was installed.<br />
<br />
The tarball can be created with the following command which is provided by the {{Pkg|pkgbuild-introspection}} package:<br />
<br />
$ mkaurball<br />
<br />
Note that this is a gzipped tarball; assuming you are uploading a package called ''libfoo'', when you create the file it should look similar to this:<br />
<br />
{{hc|$ tar tf libfoo-0.1-1.src.tar.gz|<br />
libfoo/<br />
libfoo/.AURINFO<br />
libfoo/PKGBUILD<br />
libfoo/libfoo.install}}<br />
<br />
{{Note|The ".AURINFO" file contains source package metadata, see [[AUR Metadata]] for details.}}<br />
<br />
When submitting a package, observe the following rules:<br />
<br />
* Check the [https://www.archlinux.org/packages/ official package database] for the package. If '''any version''' of it exists, '''do not''' submit the package. If the official package is out-of-date, flag it as such. If the official package is broken or is lacking a feature, then please file a [https://bugs.archlinux.org/ bug report].<br />
* Check the AUR for the package. If it is currently maintained, changes can be submitted in a comment for the maintainer's attention. If it is unmaintained, the package can be adopted and updated as required. Do not create duplicate packages.<br />
* Verify carefully that what you are uploading is correct. All contributors must read and adhere to the [[Arch packaging standards]] when writing PKGBUILDs. This is essential to the smooth running and general success of the AUR. Remember that you are not going to earn any credit or respect from your peers by wasting their time with a bad PKGBUILD.<br />
* Packages that contain binaries or that are very poorly written may be deleted without warning.<br />
* If you are unsure about the package (or the build/submission process) in any way, submit the PKGBUILD to the [https://mailman.archlinux.org/mailman/listinfo/aur-general AUR mailing list] or the [https://bbs.archlinux.org/viewforum.php?id=4 AUR forum] on the Arch forums for public review before adding it to the AUR.<br />
* Make sure the package is useful. Will anyone else want to use this package? Is it extremely specialized? If more than a few people would find this package useful, it is appropriate for submission.<br />
* The AUR and official repositories are intended for packages which install generally software and software-related content, including one or more of the following: executable(s); config file(s); online or offline documentation for specific software or the Arch Linux distribution as a whole; media intended to be used directly by software.<br />
* Gain some experience before submitting packages. Build a few packages to learn the process and then submit.<br />
* If you submit a {{ic|package.tar.gz}} with a file named {{ic|package}} in it you will get an error: "Could not change to directory {{ic|/home/aur/unsupported/package/package}}". To resolve this, rename the file named {{ic|package}} to something else; for example, {{ic|package.rc}}. When it is installed in the {{ic|pkg}} directory, you may rename it back to {{ic|package}}.<br />
<br />
=== Maintaining packages ===<br />
<br />
* If you maintain a package and want to update the PKGBUILD for your package just resubmit it.<br />
* Check for feedback and comments from other users and try to incorporate any improvements they suggest; consider it a learning process!<br />
* Please do not leave a comment containing the version number every time you update the package. This keeps the comment section usable for valuable content mentioned above. [[AUR helpers]] are suited better to check for updates.<br />
* Please do not just submit and forget about packages! It is the maintainer's job to maintain the package by checking for updates and improving the PKGBUILD.<br />
* If you do not want to continue to maintain the package for some reason, {{ic|disown}} the package using the AUR web interface and/or post a message to the AUR Mailing List.<br />
<br />
=== Other requests ===<br />
<br />
* Disownment requests and removal requests can be created by clicking on the "File Request" link under "Package actions" on the right hand side. This automatically sends a notification email to the current package maintainer and to the [https://mailman.archlinux.org/mailman/listinfo/aur-requests aur-requests mailing list] for discussion. [[Trusted Users]] will then either accept or reject the request.<br />
* Disownment requests will be granted after two weeks if the current maintainer did not react.<br />
* '''Package merging has been implemented''', users still have to resubmit a package under a new name and may request merging of the old version's comments and votes.<br />
* Removal requests require the following information:<br />
** Reason for deletion, at least a short note <br> '''Notice:''' A package's comments does not sufficiently point out the reasons why a package is up for deletion. Because as soon as a TU takes action, the only place where such information can be obtained is the aur-requests mailing list.<br />
** Supporting details, like when a package is provided by another package, if you are the maintainer yourself, it is renamed and the original owner agreed, etc.<br />
** For merge requests: Name of the package base to merge into.<br />
<br />
Removal requests can be disapproved, in which case you will likely be advised to disown the package for a future packager's reference.<br />
<br />
== Git repository ==<br />
A Git repository of the AUR is maintained by Kyle Keen (formerly by Thomas Dziedzic), which provides package history among other things. It is updated at least once per day. To clone the repository (several hundred MB):<br />
<br />
$ git clone <nowiki>git://pkgbuild.com/aur-mirror.git</nowiki><br />
<br />
For more information: [http://pkgbuild.com/git/aur-mirror.git/ Web interface], [https://bbs.archlinux.org/viewtopic.php?id=113099 forum thread].<br />
<br />
== FAQ ==<br />
<br />
=== What is the AUR? ===<br />
<br />
The AUR (Arch User Repository) is a place where the Arch Linux community can upload [[PKGBUILD]]s of applications, libraries, etc., and share them with the entire community. Fellow users can then vote for their favorites to be moved into the [[community]] repository to be shared with Arch Linux users in binary form.<br />
<br />
=== What kind of packages are permitted on the AUR? ===<br />
<br />
The packages on the AUR are merely "build scripts", i.e. recipes to build binaries for pacman. For most cases, everything is permitted, subject to the abovementioned usefulness and scope guidelines, as long as you are in compliance with the licensing terms of the content. For other cases, where it is mentioned that "you may not link" to downloads, i.e. contents that are not redistributable, you may only use the file name itself as the source. This means and requires that users already have the restricted source in the build directory prior to building the package. When in doubt, ask.<br />
<br />
=== How can I vote for packages in AUR? ===<br />
<br />
Sign up on the [https://aur.archlinux.org/ AUR website] to get a "Vote for this package" option while browsing packages. After signing up it is also possible to vote from the commandline with {{AUR|aurvote}}.<br />
<br />
=== What is a Trusted User / TU? ===<br />
<br />
A [[AUR Trusted User Guidelines|Trusted User]], in short TU, is a person who is chosen to oversee AUR and the [[community]] repository. They are the ones who maintain popular PKGBUILDs in ''community'', and overall keep the AUR running.<br />
<br />
=== What is the difference between the Arch User Repository and the community repository? ===<br />
<br />
The Arch User Repository is where all PKGBUILDs that users submit are stored, and must be built manually with [[makepkg]]. When PKGBUILDs receive enough community interest and the support of a TU, they are moved into the [[community]] repository (maintained by the TUs), where the binary packages can be installed with [[pacman]].<br />
<br />
=== How to get a PKGBUILD into the community repository? ===<br />
<br />
Usually, at least 10 votes are required for something to move into [[community]]. However, if a TU wants to support a package, it will often be found in the repository.<br />
<br />
Reaching the required minimum of votes is not the only requirement, there has to be a TU willing to maintain the package. TUs are not required to move a package into the ''community'' repository even if it has thousands of votes.<br />
<br />
Usually when a very popular package stays in the AUR it is because:<br />
<br />
* Arch Linux already has another version of a package in the repositories<br />
* The package is AUR-centric (e.g. an [[AUR helper]])<br />
* Its license prohibits redistribution<br />
<br />
See also [[DeveloperWiki:Community repo candidates]] and [[AUR Trusted User Guidelines#Rules for Packages Entering the .5Bcommunity.5D Repo|Rules for Packages Entering the community Repo]].<br />
<br />
=== How do I make a PKGBUILD? ===<br />
<br />
The best resource is the wiki page about [[creating packages]]. Remember to look in AUR before creating the PKGBUILD as to not duplicate efforts.<br />
<br />
=== I'm trying to run "pacman -S foo"; it is not working but I know it is in the community repository ===<br />
<br />
You probably have not enabled ''community'' in your {{ic|/etc/pacman.conf}}. Just uncomment the relevant lines.<br />
<br />
If ''community'' is enabled in your {{ic|/etc/pacman.conf}} try running {{ic|pacman -Syu}} first to synchronize the pkgcache and update your system before trying to install ''foo'' again.<br />
<br />
=== Foo in AUR is outdated; what do I do? ===<br />
<br />
For starters, you can flag packages out-of-date. If it stays out-of-date for an extended period of time, the best thing to do is email the maintainer. If there is no response from the maintainer after two weeks, you can file an orphan request. When we are talking about a package which is flagged out of date for more than 3 months and is in general not updated for a long time, please add this in your orphan request.<br />
<br />
=== I have a PKGBUILD I would like to submit; can someone check it to see if there are any errors? ===<br />
<br />
If you would like to have your PKGBUILD critiqued, post it on the aur-general mailing list to get feedback from the TUs and fellow AUR members. You could also get help from the [[IRC Channel]], #archlinux on irc.freenode.net. You can also use [[namcap]] to check your PKGBUILD and the resulting package for errors.<br />
<br />
=== Foo in AUR does not compile when I run makepkg; what should I do? ===<br />
<br />
You are probably missing something trivial.<br />
<br />
# Run {{ic|pacman -Syyu}} before compiling anything with {{ic|makepkg}} as the problem may be that your system is not up-to-date.<br />
# Ensure you have both "base" and "base-devel" groups installed.<br />
# Try using the "{{ic|-s}}" option with {{ic|makepkg}} to check and install all the dependencies needed before starting the build process.<br />
<br />
Be sure to first read the PKGBUILD and the comments on the AUR page of the package in question.<br />
The reason might not be trivial after all. Custom CFLAGS, LDFLAGS and MAKEFLAGS can cause failures. It is also possible that the PKGBUILD is broken for everyone. If you cannot figure it out on your own, just report it to the maintainer e.g. by posting the errors you are getting in the comments on the AUR page.<br />
<br />
=== How can I speed up repeated build processes? ===<br />
<br />
If you frequently compile code that uses gcc - say, a git or SVN package - you may find [[ccache]], short for "compiler cache", useful.<br />
<br />
=== How do I access unsupported packages? ===<br />
<br />
See [[#Installing packages]]<br />
<br />
=== How can I upload to AUR without using the web interface? ===<br />
<br />
You can use an [[AUR helpers|AUR helper]] like {{pkg|burp}} or {{AUR|aurup}}, both are commandline programs.<br />
<br />
== See also ==<br />
* [https://aur.archlinux.org AUR Web Interface]<br />
* [https://www.archlinux.org/mailman/listinfo/aur-general AUR Mailing List]<br />
* [http://pkgbuild.com/git/aur-mirror.git/ AUR Mirror Git repository]</div>Clfarron4https://wiki.archlinux.org/index.php?title=Steam&diff=324681Steam2014-07-11T19:45:18Z<p>Clfarron4: Addition: Starting Steam in Big Picture Mode from a Display Manager.</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Related articles start}}<br />
{{Related|Steam/Wine}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Steam (software)|Wikipedia]]:<br />
: ''Steam is a digital distribution, digital rights management, multiplayer and communications platform developed by Valve Corporation. It is used to distribute games and related media online, from small independent developers to larger software houses.''<br />
<br />
[http://store.steampowered.com/about/ Steam] is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.<br />
<br />
==Installation==<br />
<br />
{{Note|<br />
* Arch Linux is '''not''' [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].<br />
* Because the Steam client is a 32-bit application, you will need to enable the [[multilib]] repository if you have a 64-bit system. It may also make sense to install {{Grp|multilib-devel}} to provide some important multilib libraries.<br />
}}<br />
<br />
Steam can be installed with the package {{Pkg|steam}}, available in the [[official repositories]]. If you have a 64-bit system, enable the [[multilib]] repository first.<br />
<br />
Steam is not supported on this distribution. As such some fixes are needed on the users part to get things functioning properly:<br />
<br />
*Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or [[#Text is corrupt or missing|the fonts provided by Steam]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
*If you have a 64-bit system, you will need to install [[Xorg#Driver installation|the 32-bit version of your graphics driver]] (the package in the ''Multilib Package'' column) to run 32-bit games.<br />
<br />
*If you have a 64-bit system, you will need to install {{pkg|lib32-alsa-plugins}} to enable sound in 32-bit games.<br />
<br />
*Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed in [[Steam/Game-specific troubleshooting]] are installed.<br />
<br />
== Starting Steam in Big Picture Mode (with a Display Manager) ==<br />
<br />
To start Steam in Big Picture Mode from a Display Manager (such as LightDM), create a {{ic|/usr/share/xsessions/steam-big-picture.desktop}} file with the following content:<br />
<br />
{{hc|/usr/share/xsessions/steam-big-picture.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=Steam Big Picture Mode<br />
Comment=Start Steam in Big Picture Mode<br />
Exec='/usr/bin/steam -bigpicture'<br />
TryExec='/usr/bin/steam -bigpicture'<br />
Icon=<br />
Type=Application</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
=== The close button only minimizes the window ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
If you start steam with the .desktop file, you need to replace the {{ic|Exec}} with following line:<br />
Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U<br />
<br />
=== Flash not working on 64-bit systems ===<br />
<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{Pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam Flash plugin folder:<br />
$ mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
$ ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
=== Text is corrupt or missing ===<br />
<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and [[fonts#Manual installation|install]] them (copying to {{ic|/usr/share/fonts/}} or {{ic|~/.fonts/}} works at least).<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
Uncomment {{ic|en_US.UTF-8 UTF-8}} in {{ic|/etc/locale.gen}} and then run {{ic|locale-gen}} as root.<br />
<br />
=== The game crashes immediately after start ===<br />
<br />
If your game crashes immediately, try disabling: ''"Enable the Steam Overlay while in-game"'' in game ''Properties''.<br />
<br />
=== OpenGL not using direct rendering ===<br />
<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457 article]<br />
<br />
You have probably not installed your 32-bit graphics driver correctly. See [[Xorg#Driver installation]] for which packages to install.<br />
<br />
You can check/test if it is installed correctly by installing {{Pkg|lib32-mesa-demos}} and running the following command:<br />
$ glxinfo32 | grep OpenGL.<br />
<br />
=== libGL error when running certain games ===<br />
<br />
If you receive an error like the following {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}, it could be due to an outdated steam runtime library. Deleting {{ic|~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1}} will force Steam to load the library version installed by pacman.<br />
<br />
=== OpenGL GLX context is not using direct rendering, which may cause performance problems, or steam crash Xorg ===<br />
<br />
Steam ships its own versions of some libraries, and they sometimes are too old to work with archlinux system libraries.<br />
Removing the library supplied by Steam means Steam has to use the newer arch-specific version. [https://bbs.archlinux.org/viewtopic.php?pid=1416098#p1416098 Forum thread].<br />
<br />
{{bc|<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6<br />
}}<br />
<br />
=== Problems with 64-bit games like XCOM ===<br />
Steam ships its own versions of some libraries, and they sometimes are too old to work with archlinux system libraries.<br />
Removing the library supplied by Steam means Steam has to use the newer arch-specific version. [https://bbs.archlinux.org/viewtopic.php?pid=1428375#p1428375].<br />
<br />
{{bc|rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6}}<br />
<br />
=== No audio in certain games ===<br />
<br />
If there is no audio in certain games, and the suggestions provided in [[Steam/Game-specific troubleshooting]] do not fix the problem, [[#Using native runtime]] may provide a successful workaround.<br />
<br />
=== You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 ===<br />
<br />
You may encounter this error when you launch Steam at first time. Make sure you have installed lib32-version of all your video driver. For example, if you have installed {{Pkg|catalyst-utils-pxp}}, {{Pkg|xf86-video-dri}}, {{Pkg|intel-dri}}, {{Pkg|mesa-libgl}} for AMD and Intel double card, then you should install {{Pkg|lib32-catalyst-utils-pxp}}, {{Pkg|lib32-intel-dri}}, {{Pkg|lib32-mesa-libgl}}.<br />
<br />
=== Games do not launch on older intel hardware ===<br />
<br />
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware doesn't directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:<br />
<br />
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%<br />
<br />
This will force the game to use the latest version of OpenGL.<br />
<br />
=== X crashes when Steam starts (Radeon open source driver) ===<br />
<br />
There is [https://bugs.freedesktop.org/show_bug.cgi?id=79325 a bug] in glamor-egl 0.6.0 (used by the open source Radeon driver) which causes X to crash when trying to start Steam. Installing the unofficial [https://aur.archlinux.org/packages/glamor-egl-git/ glamor-egl-git] from AUR is a workaround until a new glamour version is released.<br />
<br />
=== Some games fail to start ===<br />
<br />
Occationally some games fail to load with output similar to the following:<br />
{{bc|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}<br />
In these cases the included libstdc++.so is conflicting with something [https://bbs.archlinux.org/viewtopic.php?id=181171 explained here]. The solution seems to be setting the environmental variable STEAM_RUNTIME to 0, and running the following command: {{bc|rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6}}<br />
<br />
== Launching games with custom commands, such as Bumblebee/Primus ==<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag {{ic|%command%}} with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{Pkg|schedtool}}<br />
<br />
# schedtool -I -e %command% ''other arguments''<br />
<br />
=== Killing standalone compositors when launching games ===<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; nohup compton &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
== Using native runtime ==<br />
<br />
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks HRTF and surround71 support). To use your own system libraries, you can run Steam with:<br />
<br />
$ STEAM_RUNTIME=0 steam<br />
<br />
However, if you're missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:<br />
<br />
$ cd ~/.local/share/Steam/ubuntu12_32<br />
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq<br />
<br />
{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}<br />
<br />
Once you've done this, run steam again with {{ic|1=STEAM_RUNTIME=0 steam}} and verify it's not loading anything outside of the handful of steam support libraries:<br />
<br />
$ cat /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq<br />
<br />
== Skins for Steam ==<br />
<br />
{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
An extensive list of skins can be found on [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].<br />
<br />
=== Steam skin manager ===<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{AUR|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK+ theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance.<br />
<br />
== Changing the Steam friends notification placement ==<br />
<br />
{{Note|A handful of games do not support this, for example this can not work with XCOM: Enemy Unknown.}}<br />
<br />
=== Method 1: Use a skin ===<br />
You can create a skin that does nothing but change the notification corner. To save yourself from creating these manually I have uploaded them to mediafire. You can [http://www.mediafire.com/download/lnt2cjlbcdccm11/Steam-Notifications.zip download them here] and then extract them into your home folder (make sure it is not extracted into a subdirectory, i.e. the .local folder in the zip needs to go into your home directory) after that you will have to open Steam, go to it's Settings, and enter the Interface tab. Then in the drop-down list where it says '''< default skin >''' you can select the desired skin and finally move that notification out of your way!<br />
<br />
If you would like to manually create the files, here is how you can do it. First you need to create the directories:<br />
<br />
mkdir -p $HOME/Top-Right/resource<br />
cp -R $HOME/.steam/steam/resource/styles $HOME/Top-Right/resource/<br />
mv $HOME/Top-Right $HOME/.local/share/Steam/skins/<br />
cd .local/share/Steam/skins/<br />
cp -R Top-Right Top-Left && cp -R Top-Right Bottom-Right<br />
<br />
Then with a text editor of your choosing open the file you wish to modify, the '''gameoverlay.style''' will change the corner for the in-game overlay whereas the '''steam.style''' will change it for your desktop. In this example I will use nano and the in-game overlay file.<br />
<br />
nano Top-Right/resource/styles/gameoverlay.style<br />
<br />
Now find the entry: '''Notifications.PanelPosition''' in whichever file you opened and change it to the appropriate value, for example for Top-Right:<br />
<br />
Notifications.PanelPosition "TopRight"<br />
<br />
This line will look the same in both files. Repeat the process for all the 3 variants (Top-Right, Top-Left and Bottom-Left) and adjust the corners for the desktop and in-game overlay to your satisfaction for each skin, then save the files.<br />
<br />
To finish you will have to select the skin in Steam as explained above. You can use these files across distributions and even between Windows and Linux (OS X has it's own entry for the desktop notification placement)<br />
<br />
=== Method 2: On The Fly Patch ===<br />
This method is more compatible with future updates of Steams since the files in the skins above are updated as part of steam and as such if the original files change, the skin will not follow the graphics update to steam and will have to be re-created every time something like that happens. Doing things this way will also give you the ability to use per-game notification locations as you can run a patch changing the location of the notifications by specifying it in the launch options for games.<br />
<br />
Steam updates the files we need to edit everytime it updates (which is everytime it is launched) so the most effective way to do this is patching the file after Steam has already been launched.<br />
<br />
First you will need [http://www.mediafire.com/download/ao3dhpdg9omj94r/topright.patch this patch][http://pastebin.com/FWHZNdUU (pastebin ver)]. you can edit the entry and change it between "BottomRight"(default), "TopRight" "TopLeft" and "BottomLeft" but I will assume you used "TopRight" as in the original file. Save that file as '''$HOME/.steam/topright.patch'''.<br />
<br />
{{Note|For pastebin to work you need to copy the raw data from line 1 through line 12 (line 12 is whitespace, but the patch will fail without it, this is why I provided a mediafire version too) you basically need to start copying behind the "-" sign at the bottom of the raw paste data and go up from there.}}<br />
<br />
Next create an alias in your '''$HOME/.bashrc'''<br />
alias steam_topright='pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd'<br />
<br />
Log out and back in to refresh the aliases. Launch Steam and wait for it to fully load, then run the alias <br />
<br />
# steam_topright<br />
<br />
And most games you launch after this will have their notification in the upper right corner.<br />
<br />
You can also duplicate the patch and make more aliases for the other corners if you don't want all games to use the same corner so you can switch back.<br />
<br />
To automate the process you will need a script file as steam launch options cannot read your aliases. The location and name of the file could for example be '''$HOME/.scripts/steam_topright.sh''', and assuming that's the path you used, it needs to be executable<br />
chmod +755 $HOME/.scripts/steam_topright.sh<br />
<br />
The contents of the file should be the following:<br />
#!/bin/sh<br />
#<br />
pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd<br />
<br />
And the launch options should be something like the following.<br />
<br />
$HOME/.scripts/steam_topright.sh && %command%<br />
<br />
There is another file in the same folder as '''gameoverlay.style''' folder called '''steam.style''' which has an entry with the exact same function as the file we patched and will change the notification corner for the desktop only (not in-game), but for editing this file to actually work it has to be set before steam is launched and the folder set to read-only so steam cannot re-write the file. Therefore the only two ways to modify that file is to make the directory read only so steam cannot change it when it is launched (can break updates) or making a skin like in method 1.<br />
<br />
== See also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Clfarron4https://wiki.archlinux.org/index.php?title=Unofficial_user_repositories/Repo-ck&diff=324334Unofficial user repositories/Repo-ck2014-07-10T11:06:06Z<p>Clfarron4: Emphasize this is for the CK family, not the LTS-CK family.</p>
<hr />
<div>[[Category:Kernel]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related articles end}}<br />
<br />
Article details setup and usage of an unofficial Arch Linux repo containing generic and CPU-optimized kernel and support packages containing the ck1 patchset featuring the Brain Fuck Scheduler by Con Kolivas.<br />
<br />
== Packages in repo-ck ==<br />
=== Kernels and related packages ===<br />
The repo contains generic packages as well as CPU-specific packages for the linux-ck family (but not for the LTS-ck packages). Many Arch users are familiar with the concept of a generic kernel package. The official Arch kernel is available in two flavors (either i686 or x86_64) which are ''generic'' packages in that i686 will work with ''any'' compatible x86 CPU and x86_64 will work with ''any'' compatible x86_64 CPU. Users have a choice between the corresponding generic linux-ck packages or CPU-specific and optimized linux-ck packages:<br />
<br />
{| class="wikitable" align="center"<br />
|-<br />
! CPU Type !! Group Alias !! Details<br />
|-<br />
| rowspan="1" bgcolor=#e3f7e6| '''<span style="color: #409044;">Generic</span>'''<br />
| ''ck-generic'' || Compiled with generic optimizations suitable for ''any'' compatible CPU just like the official Arch linux package. This is true for both Intel and AMD processors.<br />
|-<br />
| rowspan="8" bgcolor=#e3ecf7| '''<span style="color: #2a6dc8;">Intel</span>'''<br />
| ''ck-atom'' || Intel Atom platform specific optimizations. Intel Atom CPUs have an in-order pipelining architecture and thus can benefit from accordingly optimized code.<br />
|- <br />
| ''ck-core2'' || Intel Core 2-family including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2).<br />
|- <br />
| ''ck-nehalem'' || Intel 1st Generation Core i3/i5/i7-family specific optimizations.<br />
|- <br />
| ''ck-sandybridge'' || Intel 2nd Generation Core i3/i5/i7-family specific optimizations.<br />
|- <br />
| ''ck-ivybridge'' || Intel 3rd Generation Core i3/i5/i7-family specific optimizations.<br />
|- <br />
| ''ck-haswell'' || Intel 4th Generation Core i3/i5/i7-family specific optimizations.<br />
|- <br />
| ''ck-p4'' || Intel Pentium-4 specific optimizations (P4/P4-based Celeron/Pentium-4 M/Older Xeon).<br />
|- <br />
| ''ck-pentm'' || Intel Pentium-M specific optimizations (Pentium-M notebook chips/not Pentium-4 M).<br />
|- <br />
| rowspan="6" bgcolor=#f7e3e3| '''<span style="color: #e62c2c;">AMD</span>'''<br />
| ''ck-kx'' || AMD K7/K8-family specific optimizations.<br />
|- <br />
| ''ck-k10'' || AMD K10-family specific optimizations including: 61xx Eight-Core Magny-Cours, Athlon X2 7x50, Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.<br />
|- <br />
| ''ck-barcelona'' || CPUs based on AMD Family 10h cores with x86-64 instruction set support.<br />
|-<br />
|''ck-bobcat''|| CPUs based on AMD Family 14h cores with x86-64 instruction set support.<br />
|-<br />
|''ck-bulldozer''|| CPUs based on AMD Family 15h cores with x86-64 instruction set support.<br />
|-<br />
| ''ck-piledriver'' || CPUs based on AMD Family 15h cores with x86-64 instruction set support.<br />
|- <br />
|}<br />
<br />
CPU-specific optimization are invoked at compilation by selecting the corresponding option under '''Processor type and features>Processor family''' or by setting-up the .config file accordingly. These changes setup make specific gcc options including the $CFLAGS.<br />
<br />
=== Miscellaneous packages ===<br />
Repo-ck also contains pre-compiled packages for {{AUR|chromium-scroll-pixels}} and for {{AUR|chromium-no-sse2}}.<br />
<br />
{| class="wikitable" align="center"<br />
|-<br />
! CPU Type !! Package !! Details<br />
|-<br />
| rowspan="2" bgcolor=#e3f7e6| '''<span style="color: #409044;">Generic</span>'''<br />
| ''chromium-scroll-pixels'' || Chromium browser patched to maintain the {{ic|--scroll-pixel}} functionality allowing users to set the speed of their wheel mouse's scrolling functions.<br />
|-<br />
| ''chromium-no-sse2'' || Chromium browser patched to allow hardware without the SSE2 instruction set to run chromium.<br />
|-<br />
|}<br />
<br />
== Setup ==<br />
<br />
Add the [[Unofficial user repositories#repo-ck|repo-ck]] repository into {{ic|pacman.conf}} and [[Pacman-key#Adding_unofficial_keys|sign]] Graysky's key.<br />
<br />
== Installation examples ==<br />
<br />
Use the '''ck-X''' group and select the desired packages for installation. There are 6 groups corresponding to the 13 package sets: '''ck-generic, ck-atom, ck-core2, ck-nehalem, ck-sandybridge, ck-ivybridge, ck-haswell, ck-p4, ck-pentm, ck-kx, ck-k10, ck-barcelona, ck-bulldozer, ck-piledriver'''<br />
<br />
{{bc|1=# pacman -S ck-generic<br />
:: There are 7 members in group ck-generic:<br />
:: Repository repo-ck<br />
1) broadcom-wl-ck 2) linux-ck 3) linux-ck-headers 4) nvidia-304xx-ck 5) nvidia-ck<br />
6) virtualbox-ck-guest-modules 7) virtualbox-ck-host-modules<br />
<br />
Enter a selection (default=all):}}<br />
<br />
Alternatively, simply direct pacman to install the packages directly:<br />
# pacman -S linux-ck linux-ck-headers<br />
<br />
== How to determine which CPU optimized package set to select ==<br />
<br />
Users unsure which package set to use can always install the '''ck-generic''' group which will drive any compatible CPU. For those wanting CPU-specific optimized packages, run the following command (assuming that base-devel is installed):<br />
<br />
# gcc -c -Q -march=native --help=target | grep march<br />
<br />
The resulting value is what gcc would use as the march CFLAG. Refer to the table below for a mapping of this value to the correct group.<br />
{{Note|This table has been updated to show the new simplified march options that ship with gcc v4.9+, for more see the [https://gcc.gnu.org/gcc-4.9/changes.html release notes] for this release.}}<br />
{| class="wikitable" align="center"<br />
|-<br />
! Brand !! Group !! March<br />
|-<br />
| rowspan="8" bgcolor=#e3ecf7| '''<span style="color: #2a6dc8;">Intel</span>'''<br />
| ''ck-atom'' || bonnell<br />
|- <br />
| ''ck-core2'' || core2<br />
|- <br />
| ''ck-nehalem'' || nehalem<br />
|- <br />
| ''ck-sandybridge'' || sandybridge<br />
|- <br />
| ''ck-ivybridge'' || ivybridge<br />
|- <br />
| ''ck-haswell'' || haswell<br />
|- <br />
| ''ck-p4'' || pentium4, nocona<br />
|- <br />
| ''ck-pentm'' || pentm, pentium-m<br />
|- <br />
| rowspan="6" bgcolor=#f7e3e3| '''<span style="color: #e62c2c;">AMD</span>'''<br />
| ''ck-kx'' || athlon, athlon-4, athlon-tbird, athlon-mp, athlon-xp, k8-sse3<br />
|- <br />
| ''ck-k10'' || amdfam10<br />
|- <br />
| ''ck-barcelona'' || barcelona<br />
|-<br />
|''ck-bobcat''|| btver1<br />
|-<br />
|''ck-bulldozer''|| bdver1<br />
|-<br />
| ''ck-piledriver'' || bdver2<br />
|- <br />
|}<br />
<br />
{{Note|Users are encouraged to add additional entries to this table based on their experience.}}<br />
<br />
Additional links can be used to help determine which package set to select:<br />
<br />
* http://wiki.gentoo.org/wiki/Safe_CFLAGS#Intel<br />
* http://wiki.gentoo.org/wiki/Safe_CFLAGS#AMD<br />
* http://www.linuxforge.net/docs/linux/linux-gcc.php <br />
* http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html<br />
<br />
== How much faster are the CPU optimized packages ==<br />
<br />
The answer is not ''that'' much faster. Extensive testing comparing the effect of gcc compile options on resulting binaries have been conducted by others with varying result from no change to rather significant speed ups.<br />
<br />
* [http://www.phoronix.com/scan.php?page=home phoronix labs]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=154333 Kernel patch for more CPU families offers measurable speed increases].<br />
<br />
Readers are encouraged to add to this list.<br />
<br />
== How to enable the BFQ I/O scheduler ==<br />
<br />
Since release 3.0.4-2, the BFQ patchset is applied to the package by default. Users must enable the BFQ scheduler to use it; it is dormant by default.<br />
<br />
=== Globally (for all devices) ===<br />
<br />
Add {{ic|1=elevator=bfq}} to boot loader [[Kernel parameters]].<br />
{{Note|Users building the PKG from the AUR have an option in the PKGBUILD itself to globally use the BFQ as the default I/O scheduler.}}<br />
<br />
=== Selectively (for only specified devices) ===<br />
<br />
Direct the kernel to use it on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm, simply ''cat'' the same file:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Setting this way will not survive a reboot. To make the change automatically at the next system boot, create the following tmpfile where "X" is the letter for the SSD device.<br />
<br />
{{hc|/etc/tmpfiles.d/set_IO_scheduler.conf|<nowiki><br />
w /sys/block/sdX/queue/scheduler - - - - noop<br />
</nowiki>}}<br />
<br />
== Package trivia/repository statistics ==<br />
<br />
Repo [http://repo-ck.com/stats.pdf statistics] are available (popularity of packages, which CPU is most popular, # of downloads, etc.).<br />
{{Note|The statistics are not updated daily but do give a snapshot of the data.}}<br />
<br />
== Troubleshooting ==<br />
=== Forum support ===<br />
Please use [https://bbs.archlinux.org/viewtopic.php?id=111715 this discussion thread] to voice comments, questions, suggestions, requests, etc. Note from graysky, "I can add other CPU-specific builds upon request. I just wanna be sure people will actually use them if I take the time to compile them."<br />
<br />
=== Downloads interrupt regularly ===<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1422475#p1422475]. Change the [[pacman]] downloader to [[Improve_pacman_performance#Using_wget|wget]], which automatically resumes downloads.</div>Clfarron4https://wiki.archlinux.org/index.php?title=Kernel&diff=324332Kernel2014-07-10T10:45:29Z<p>Clfarron4: Addition of the 3.4, 3.10 and 3.12 LTS kernels.</p>
<hr />
<div>[[Category:Kernel]]<br />
[[cs:Kernel Compilation]]<br />
[[es:Kernel Compilation]]<br />
[[it:Kernels]]<br />
[[ja:Kernels]]<br />
[[zh-CN:Kernels]]<br />
{{Related articles start}}<br />
{{Related|Kernel modules}}<br />
{{Related|Kernel Panics}}<br />
{{Related|Linux-ck}}<br />
{{Related|sysctl}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Kernel (computing)|Wikipedia]]:<br />
:''the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components).''<br />
<br />
There are various alternative kernels available for Arch Linux in addition to the mainline Linux kernel. This article lists some of the options available in the repositories with a brief description of each. There is also a description of patches that can be applied to the system's kernel. The article ends with an overview of custom kernel compilation with links to various methods.<br />
<br />
==Precompiled kernels==<br />
===Official packages===<br />
;{{Pkg|linux}}<br />
:The Linux kernel and modules from the [core] repository. Vanilla kernel with [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux a few patches applied].<br />
<br />
;{{Pkg|linux-lts}}<br />
:Long term support (LTS) Linux kernel and modules from the [core] repository.<br />
<br />
;{{Pkg|linux-grsec}}<br />
:The Linux Kernel and modules with [[Grsecurity Patchset]] and PaX patches for increased security.<br />
<br />
===AUR packages===<br />
;{{AUR|linux-bfs}}<br />
:Linux kernel and modules with the [[Wikipedia:Brain_Fuck_Scheduler|Brain Fuck Scheduler]] (BFS) - created by Con Kolivas for desktop computers with fewer than 4096 cores, with BFQ I/O scheduler as optional.<br />
<br />
;{{AUR|linux-ck}}<br />
:Linux Kernel built with Con Kolivas' ck1 patchset.<br />
:Additional options which can be toggled on/off in the [[PKGBUILD]] include: BFQ scheduler, nconfig, localmodconfig and use running kernel's config.<br />
:These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The ck patches include BFS.<br />
:For further information and installation instructions, please read the [[linux-ck]] main article.<br />
<br />
;{{AUR|linux-eee-ck}}<br />
:The Linux Kernel and modules for the Asus Eee PC 701, built with Con Kolivas' ck1 patchset.<br />
<br />
;{{AUR|linux-fbcondecor}}<br />
:The Linux Kernel and modules with [[Fbsplash|fbcondecor support]]. <br />
<br />
;{{AUR|linux-mainline}}<br />
:The Mainline Linux Kernel and modules.<br />
<br />
;{{AUR|linux-pax}}<br />
:The Linux Kernel and modules with PaX patches for increased security.<br />
<br />
;{{AUR|linux-ice}}<br />
:The Linux Kernel and modules with gentoo-sources patchset and [[TuxOnIce]] support.<br />
<br />
;{{AUR|linux-lqx}}<br />
:[http://liquorix.net Liquorix] is a distro kernel replacement built using a Debian-targeted configuration and the ZEN kernel sources. Designed for desktop, multimedia, and gaming workloads, it is often used as a Debian Linux performance replacement kernel. Damentz, the maintainer of the Liquorix patchset, is a developer for the ZEN patchset as well.<br />
<br />
;{{AUR|linux-lts34}}<br />
:The Linux 3.4 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts310}}<br />
:The Linux 3.10 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts312}}<br />
:The Linux 3.12 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-pf}}<br />
:Linux kernel and modules with the pf-kernel patch [-ck patchset (BFS included), TuxOnIce, BFQ] and aufs3.<br />
<br />
;{{AUR|linux-zen}}<br />
:The [http://zen-kernel.org ZEN Kernel] is a the result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for every day systems. Builds of a ZEN kernel are available [https://bbs.archlinux.org/viewtopic.php?id=117157 in this repository].<br />
<br />
;{{AUR|linux-libre}}<br />
:The Linux Kernel without "binary blobs".<br />
<br />
;{{AUR|kernel-netbook}}<br />
:Static kernel for netbooks with Intel Atom N270/N280/N450/N550 such as the Eee PC with the add-on of external firmware ({{AUR|broadcom-wl}}) and patchset (BFS + TuxOnIce + BFQ optional) - Only Intel GPU<br />
<br />
;{{AUR|linux-lts-tresor}}<br />
:The stable LTS Linux Kernel and modules with integrated [https://www1.informatik.uni-erlangen.de/tresor TRESOR]<br />
<br />
;{{AUR|linux-git}}<br />
:Linux kernel and modules built using sources from [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Linus Torvalds' Git repository].<br />
<br />
==Patches and Patchsets==<br />
<br />
There are lots of reasons to patch your kernel, the major ones are for performance or support for non-mainline features such as reiser4 file system support. Other reasons might include fun and to see how it is done and what the improvements are.<br />
<br />
However, it is important to note that the best way to increase the speed of your system is to first tailor your kernel to your system, especially the architecture and processor type. For this reason using pre-packaged versions of custom kernels with generic architecture settings is not recommended or really worth it. A further benefit is that you can reduce the size of your kernel (and therefore build time) by not including support for things you do not have or use. For example, you might start with the stock kernel config when a new kernel version is released and remove support for things like bluetooth, video4linux, 1000Mbit ethernet, etc.; functionality you know you will not require for your specific machine. Although this page is not about customizing your kernel config, it is recommended as a first step--before moving on to using a patchset once you have grasped the fundamentals involved.<br />
<br />
===How to install===<br />
<br />
The installation process of custom kernel packages relies on the Arch Build System (ABS). If you haven't built any custom packages yet you may consult the following articles: [[Arch Build System]] and [[Creating packages]].<br />
<br />
If you haven't actually patched or customized a kernel before it is not that hard and there are many PKGBUILDs on the forum for individual patchsets. However, you are advised to start from scratch with a bit of research on the benefits of each patchset, rather than just arbitrarily picking one. This way you'll learn much more about what you are doing rather than just choosing a kernel at startup and then be left wondering what it actually does.<br />
<br />
See [[#Compilation]].<br />
<br />
{{note|Don't forget to change the boot options in your bootloader, e.g. grub, to use the new kernel.}}<br />
<br />
===Major patchsets===<br />
<br />
First of all it is important to note that patchsets are developed by a variety of people. Some of these people are actually involved in the production of the linux kernel and others are hobbyists, which may reflect its level of reliability and stability.<br />
<br />
It is also worth noting that some patchsets are built on the back of other patchsets (which may or may not be reflected in the title of the patch). Patchsets (and kernel updates) can be released '''very''' frequently and often it is not worth keeping up with ALL of them so do not go crazy, unless you make it your hobby!<br />
<br />
You can search google for more sets - remember to use quotes {{ic|"-nitro"}} for example otherwise google will deliberately '''NOT''' show the results you want!<br />
<br />
{{note|This section is for '''information only''' - clearly no guarantees of stability or reliability are implied by inclusion on this page.}}<br />
<br />
====-ck====<br />
[[Linux-ck]] contains patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://users.on.net/~ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.<br />
<br />
The -ck patches can be found at http://ck.kolivas.org/patches/3.0/<br />
<br />
====-rt====<br />
<br />
This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads. <br />
<br />
It further incorporates high resolution timers - a patch set, which is independently maintained.<br />
<br />
[as said from the [https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch Real-Time Linux Wiki]]<br />
<br />
patch at https://www.kernel.org/pub/linux/kernel/projects/rt/<br />
<br />
====-bld====<br />
{{Warning|This scheduler is in development.}}<br />
BLD is best described as a O(1) CPU picking technique. Which is done by reordering CPU runqueues based on runqueue loads. In other words, it keeps the scheduler aware of the load changes, which helps scheduler to keep runqueues in an order. This technique doesn't depend on scheduler ticks. The two most simple things in this technique are: load tracking and runqueue ordering; these are relatively simpler operations. Load tracking will be done whenever a load change happens on the system and based on this load change runqueue will be ordered. So, if we have an ordered runqueue from lowest to highest, then picking the less (or even busiest) runqueue is easy. Scheduler can pick the lowest runqueue without calculation and comparison at the time of placing a task in a runqueue. And while trying to distribute load at sched_exec and sched_fork our best choice is to pick the lowest busiest runqueue of the system. And in this way, system remains balanced without doing any load balancing. At the time of try_to_wake_up picking the idlest runqueue is topmost priority but it has been done as per domain basis to utilize CPU cache properly and it's an area where more concentration is requires.<br />
<br />
Google Code web page: https://code.google.com/p/bld/<br />
<br />
====-grsecurity====<br />
<br />
[[Grsecurity]] is a security focused patchset. It adds numerous security related features such as Role-Based Access Control and utilizes features of the PaX project. It can be used on a desktop but a public server would receive the greatest benefit. Some applications are incompatible with the additional security measures implemented by this patchset. If this occurs, consider using a lower security level.<br />
<br />
The -grsecurity patches can be found at https://grsecurity.net<br />
<br />
====Tiny-Patches====<br />
The goal of [http://elinux.org/Linux_Tiny Linux Tiny] is to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s.<br />
<br />
Patch releases against the mainstream Linux kernel have been discontinued. The developers chose to focus on a few patches and spend their time trying to get them merged into the mainline kernel.<br />
<br />
====-pf====<br />
{{AUR|linux-pf}} is yet another Linux kernel fork which provides you with a handful of awesome features not merged into mainline. It is based on neither existing Linux fork nor patchset, although some unofficial ports may be used if required patches haven't been released officially.<br />
The most prominent patches of linux-pf are TuxOnIce, the CK patchset (most notably BFS), AUFS3, LinuxIMQ, l7 filter and BFQ.<br />
<br />
===Individual patches===<br />
<br />
These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset. I have included some common ones for starters.<br />
<br />
====Reiser4====<br />
<br />
[[Reiser4]]<br />
<br />
====fbsplash====<br />
[[fbsplash]]<br />
<br />
== Compilation ==<br />
Arch Linux provides for several methods of kernel compilation.<br />
<br />
=== Using the Arch Build System ===<br />
Using the [[Arch Build System]] takes advantage of the high quality of the existing {{Pkg|linux}} [[PKGBUILD]] and the benefits of [[Wikipedia:Package management system|package management]]. The PKGBUILD is structured so that you can stop the build after the source is downloaded and configure the kernel.<br />
<br />
See [[Kernels/Compilation/Arch Build System]].<br />
<br />
=== Traditional ===<br />
This involves manually downloading a source tarball, and compiling in your home directory as a normal user. Once configured, two installation methods are available; the traditional manual method, or with [[Makepkg]] + [[Pacman]].<br />
<br />
An advantage of learning the traditional method is that it is ''not'' distribution-specific. <br />
<br />
See [[Kernels/Compilation/Traditional]].<br />
<br />
===Proprietary NVIDIA driver===<br />
See [[NVIDIA#Alternate install: custom kernel]] for instructions on using the proprietary NVIDIA driver with a custom kernel.<br />
<br />
== See also ==<br />
*[http://www.kroah.com/lkn/ O'Reilly - Linux Kernel in a Nutshell] (free ebook)</div>Clfarron4https://wiki.archlinux.org/index.php?title=Linux-ck&diff=324331Linux-ck2014-07-10T10:41:07Z<p>Clfarron4: Set recommended Virtualbox option with LTS releases.</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ru:Linux-ck]]<br />
[[zh-CN:Linux-ck]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related|Repo-ck}}<br />
{{Related|Modprobed-db}}<br />
{{Related articles end}}<br />
<br />
== General package details ==<br />
<br />
{{AUR|Linux-ck}} is a package available in the [[AUR]] and in the [[#2._Use_Pre-Compiled_Packages|unofficial linux-ck repo]] that allows users to run a kernel/headers setup patched with Con Kolivas' ck1 patchset, including the Brain Fuck Scheduler (BFS). Many Archers elect to use this package for the BFS' excellent desktop interactivity and responsiveness under any load situation. Additionally, the bfs imparts performance gains beyond interactivity. For example, see: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf].<br />
<br />
=== Release cycle ===<br />
<br />
Linux-ck roughly follows the release cycle of the official ARCH kernel. The following are requirements for its release:<br />
<br />
* Upstream code<br />
* CK's Patchset<br />
* BFQ Patchset<br />
* ARCH config/config.x86_64 sets for major version jumps only<br />
<br />
=== Package defaults ===<br />
<br />
There are '''three''' modifications to the config files:<br />
# The options that the ck patchset enable/disable.<br />
# The options that the BFQ patchset need to compile without user interaction.<br />
# Apply [https://github.com/graysky2/kernel_gcc_patch GCC patch] that enables additional CPU optimizations at compile time (these options are not part of the standard linux-ck package and are only available when the user compiles custom options).<br />
<br />
'''All other options are set to the ARCH defaults outlined in the main kernel's config files.''' Users are of course free to modify them! The linux-ck package contains an option to switch on the '''nconfig''' config editor (see section below). For some suggestions, see CK's [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ].<br />
<br />
=== Long-Term Support (LTS) CK releases ===<br />
<br />
In addition to the linux-ck package, there are the following LTS kernel releases patched with the above patchsets, with the previously mentioned modifications to the config files:<br />
<br />
* {{AUR|linux-lts-ck}} - The current ArchLinux LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts310-ck}} - The 3.10 LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts312-ck}} - The 3.12 LTS kernel patched with the CK patchset<br />
<br />
'''These three packages are not maintained by graysky and pre-packaged versions will not be found in the unofficial ck repo.'''<br />
<br />
== Installation options ==<br />
<br />
{{Note|As with *any* additional kernel, users will need to manually edit their boot loader's config file to make it aware of the new kernel images. For example, users of [[GRUB]] should execute "grub-mkconfig -o /boot/grub/grub.cfg". Syslinux, GRUB-legacy, etc. will need to be modified as well.}}<br />
<br />
Users have two options to get these kernel packages.<br />
<br />
=== 1. Compile the package from source ===<br />
<br />
The [[AUR]] contains entries for both packages mentioned above.<br />
<br />
Users can customize the linux-ck package via tweaks in the PKGBUILD:<br />
<br />
* Optional nconfig for user specific tweaking.<br />
* Option to compile a minimal set of modules via a make localmodconfig.<br />
* Option to bypass the standard ARCH config options and simply use the current kernel's .config file.<br />
* Optionally set the [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O scheduler] as default.<br />
<br />
More details about these options are provided in the PKGBUILD itself via line comments. Be sure to read them if compiling from the AUR!<br />
<br />
{{Note|There are related PKGBUILDs in the AUR for other common modules unique to linux-ck. For example {{AUR|nvidia-ck}}, {{AUR|nvidia-304xx-ck}},{{AUR|lirc-ck}}, and {{AUR|broadcom-wl-ck}}.}}<br />
<br />
===2 . Use pre-compiled packages ===<br />
<br />
If users would rather not spend the time to compile on their own, an unofficial repo maintained by [[User:Graysky|graysky]] is available to the community.<br />
<br />
For details, see: [[Repo-ck]].<br />
<br />
== How to enable the BFQ I/O Scheduler ==<br />
<br />
Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput.<br />
<br />
=== Globally (for all devices) ===<br />
<br />
If compiling from the AUR, simply set the BFQ flag to yes in the PKGBUILD prior to building.<br />
_BFQ_enable_="y"<br />
<br />
If using the repo packages, append "elevator=bfq" to the kernel boot line in {{ic|/boot/grub/menu.lst}} if using grub or in {{ic|/etc/default/grub}} under the '''GRUB_CMDLINE_LINUX_DEFAULT="quiet"''' line followed by rebuilding {{ic|/boot/grub/grub.cfg}} via the standard "grub-mkconfig -o /boot/grub/grub.cfg" command.<br />
<br />
=== Selectively (for only specified devices) ===<br />
<br />
An alternative method is to direct the kernel to use it on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm, simply ''cat'' the same file:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, place lines in {{ic|/etc/tmpfiles.d/IO_scheduler.conf}}:<br />
<br />
w /sys/block/sda/queue/scheduler - - - - bfq<br />
<br />
== Troubleshooting ==<br />
<br />
=== Running Virtualbox with Linux-ck ===<br />
<br />
Virtualbox works just fine with custom kernels such as Linux-ck ''without'' the need to keep any of the official ARCH kernel-headers packages on the system!<br />
<br />
Don't forget to add users to the ''vboxusers '' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
==== Option 1. Use the unofficial repo (recommended) ====<br />
<br />
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as precompiled packages in the repo itself. If you built your linux-ck from the AUR you CANNOT USE THE REPO as all packages in the repo are matched groups.}}<br />
<br />
See the [[Repo-ck]] article to setup http://repo-ck.com for pacman to use directly.<br />
<br />
==== Option 2. The virtualbox-ck-modules package (recommended if linux-ck is built by you from the AUR) ====<br />
<br />
Install the {{AUR|virtualbox-ck-modules}} package and then install '''virtualbox''' package.<br />
<br />
==== Option 3. Use DKMS (more complicated, recommended with LTS releases) ====<br />
<br />
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup dkms as follows:<br />
# pacman -S virtualbox virtualbox-host-dkms<br />
# dkms install vboxhost/4.3.12<br />
<br />
{{Note|Make sure to substitute the correct version number of virtualbox in the second command. At the time of writing, 4.3.12 is current.}}<br />
<br />
=== Downgrading ===<br />
<br />
Users wishing to downgrade to a previous version of linux-ck, have several options:<br />
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1. <br />
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for linux-ck dating back to linux-ck-2.6.39.3-1.<br />
<br />
=== Forum support ===<br />
<br />
Always feel free to open a thread in the forums for support. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux- ck package.<br />
<br />
== A little about the BFS ==<br />
<br />
The Brain Fuck Scheduler is a desktop orientated cpu process scheduler with extremely low latencies for excellent interactivity within normal load levels.<br />
<br />
=== BFS design goals ===<br />
<br />
The BFS has two major design goals:<br />
#Achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.<br />
#Completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design.<br />
<br />
For additional information, see the [[linux-ck#Further_Reading_on_BFS_and_CK_Patchset]] section of this article.<br />
<br />
=== An example video about queuing theory ===<br />
<br />
See [http://www.youtube.com/watch?v=F5Ri_HhziI0 this video] about queuing theory for an interesting parallel with<br />
supermarket checkouts. Quote from CK, "the relevance of that video is that BFS uses a single queue, whereas the mainline Linux kernel uses a multiple queue design. The people are tasks, and the checkouts are CPUs. Of course there's a lot more to a CPU scheduler than just the queue design, but I thought this video was very relevant."<br />
<br />
=== Some performance-based metrics: BFS vs. CFS ===<br />
<br />
A major benefit of using the BFS is increased responsiveness. The benefits however, are not limited to desktop feel. [[User:Graysky|Graysky]] put together some non-responsiveness based benchmarks to compare it to the CFS contained in the "stock" linux kernel. Seven different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Again, these end-points were never factors in the primary design goals of the bfs. Results were encouraging. <br />
<br />
For those not wanting to see the full report, here is the conclusion:<br />
Kernels patched with the ck1 patch set including the bfs outperformed the vanilla kernel using the cfs at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).<br />
<br />
Moreover, several "modern" CPUs (Intel C2D and Ci7) that represent common workstations and laptops, consistently outperformed the cfs in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.<br />
<br />
[[http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf]] is available for download.<br />
<br />
=== Check if enabled ===<br />
<br />
This start-up message should appear in the kernel ring buffer when BFS in enabled:<br />
# dmesg | grep scheduler<br />
...<br />
[ 0.380500] BFS CPU scheduler v0.420 by Con Kolivas.<br />
<br />
== BFS myths==<br />
<br />
=== BFS patched kernels CAN in fact use systemd ===<br />
<br />
{{Accuracy|User sessions seem to be working fine in conjunction with Linux-ck. Please verify.}}<br />
<br />
It is a common mistake to think that BFS does not support cgroups. It does support cgroups, just not all the cgroup features. Systemd works with BFS patched kernels, though systemd user sessions are broken for now, as some of those missing features are required to start {{ic|systemd --user}}.<br />
<br />
== Further Reading on BFS and CK Patchset ==<br />
<br />
* [http://ck.kolivas.org/patches/bfs/bfs-faq.txt Con Kolivas' White Paper on the BFS]<br />
* [http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler Wikipedia's BFS Article]<br />
* [http://ck-hack.blogspot.com/ Con Kolivas' Blog]</div>Clfarron4https://wiki.archlinux.org/index.php?title=Linux-ck&diff=324330Linux-ck2014-07-10T10:32:19Z<p>Clfarron4: Correct spelling of word "writting" and bump version from 4.2.6 up to 4.3.12</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ru:Linux-ck]]<br />
[[zh-CN:Linux-ck]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related|Repo-ck}}<br />
{{Related|Modprobed-db}}<br />
{{Related articles end}}<br />
<br />
== General package details ==<br />
<br />
{{AUR|Linux-ck}} is a package available in the [[AUR]] and in the [[#2._Use_Pre-Compiled_Packages|unofficial linux-ck repo]] that allows users to run a kernel/headers setup patched with Con Kolivas' ck1 patchset, including the Brain Fuck Scheduler (BFS). Many Archers elect to use this package for the BFS' excellent desktop interactivity and responsiveness under any load situation. Additionally, the bfs imparts performance gains beyond interactivity. For example, see: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf].<br />
<br />
=== Release cycle ===<br />
<br />
Linux-ck roughly follows the release cycle of the official ARCH kernel. The following are requirements for its release:<br />
<br />
* Upstream code<br />
* CK's Patchset<br />
* BFQ Patchset<br />
* ARCH config/config.x86_64 sets for major version jumps only<br />
<br />
=== Package defaults ===<br />
<br />
There are '''three''' modifications to the config files:<br />
# The options that the ck patchset enable/disable.<br />
# The options that the BFQ patchset need to compile without user interaction.<br />
# Apply [https://github.com/graysky2/kernel_gcc_patch GCC patch] that enables additional CPU optimizations at compile time (these options are not part of the standard linux-ck package and are only available when the user compiles custom options).<br />
<br />
'''All other options are set to the ARCH defaults outlined in the main kernel's config files.''' Users are of course free to modify them! The linux-ck package contains an option to switch on the '''nconfig''' config editor (see section below). For some suggestions, see CK's [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ].<br />
<br />
=== Long-Term Support (LTS) CK releases ===<br />
<br />
In addition to the linux-ck package, there are the following LTS kernel releases patched with the above patchsets, with the previously mentioned modifications to the config files:<br />
<br />
* {{AUR|linux-lts-ck}} - The current ArchLinux LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts310-ck}} - The 3.10 LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts312-ck}} - The 3.12 LTS kernel patched with the CK patchset<br />
<br />
'''These three packages are not maintained by graysky and pre-packaged versions will not be found in the unofficial ck repo.'''<br />
<br />
== Installation options ==<br />
<br />
{{Note|As with *any* additional kernel, users will need to manually edit their boot loader's config file to make it aware of the new kernel images. For example, users of [[GRUB]] should execute "grub-mkconfig -o /boot/grub/grub.cfg". Syslinux, GRUB-legacy, etc. will need to be modified as well.}}<br />
<br />
Users have two options to get these kernel packages.<br />
<br />
=== 1. Compile the package from source ===<br />
<br />
The [[AUR]] contains entries for both packages mentioned above.<br />
<br />
Users can customize the linux-ck package via tweaks in the PKGBUILD:<br />
<br />
* Optional nconfig for user specific tweaking.<br />
* Option to compile a minimal set of modules via a make localmodconfig.<br />
* Option to bypass the standard ARCH config options and simply use the current kernel's .config file.<br />
* Optionally set the [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O scheduler] as default.<br />
<br />
More details about these options are provided in the PKGBUILD itself via line comments. Be sure to read them if compiling from the AUR!<br />
<br />
{{Note|There are related PKGBUILDs in the AUR for other common modules unique to linux-ck. For example {{AUR|nvidia-ck}}, {{AUR|nvidia-304xx-ck}},{{AUR|lirc-ck}}, and {{AUR|broadcom-wl-ck}}.}}<br />
<br />
===2 . Use pre-compiled packages ===<br />
<br />
If users would rather not spend the time to compile on their own, an unofficial repo maintained by [[User:Graysky|graysky]] is available to the community.<br />
<br />
For details, see: [[Repo-ck]].<br />
<br />
== How to enable the BFQ I/O Scheduler ==<br />
<br />
Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput.<br />
<br />
=== Globally (for all devices) ===<br />
<br />
If compiling from the AUR, simply set the BFQ flag to yes in the PKGBUILD prior to building.<br />
_BFQ_enable_="y"<br />
<br />
If using the repo packages, append "elevator=bfq" to the kernel boot line in {{ic|/boot/grub/menu.lst}} if using grub or in {{ic|/etc/default/grub}} under the '''GRUB_CMDLINE_LINUX_DEFAULT="quiet"''' line followed by rebuilding {{ic|/boot/grub/grub.cfg}} via the standard "grub-mkconfig -o /boot/grub/grub.cfg" command.<br />
<br />
=== Selectively (for only specified devices) ===<br />
<br />
An alternative method is to direct the kernel to use it on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm, simply ''cat'' the same file:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, place lines in {{ic|/etc/tmpfiles.d/IO_scheduler.conf}}:<br />
<br />
w /sys/block/sda/queue/scheduler - - - - bfq<br />
<br />
== Troubleshooting ==<br />
<br />
=== Running Virtualbox with Linux-ck ===<br />
<br />
Virtualbox works just fine with custom kernels such as Linux-ck ''without'' the need to keep any of the official ARCH kernel-headers packages on the system!<br />
<br />
Don't forget to add users to the ''vboxusers '' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
==== Option 1. Use the unofficial repo (recommended) ====<br />
<br />
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as precompiled packages in the repo itself. If you built your linux-ck from the AUR you CANNOT USE THE REPO as all packages in the repo are matched groups.}}<br />
<br />
See the [[Repo-ck]] article to setup http://repo-ck.com for pacman to use directly.<br />
<br />
==== Option 2. The virtualbox-ck-modules package (recommended if linux-ck is built by you from the AUR) ====<br />
<br />
Install the {{AUR|virtualbox-ck-modules}} package and then install '''virtualbox''' package.<br />
<br />
==== Option 3. Use DKMS (more complicated) ====<br />
<br />
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup dkms as follows:<br />
# pacman -S virtualbox virtualbox-host-dkms<br />
# dkms install vboxhost/4.3.12<br />
<br />
{{Note|Make sure to substitute the correct version number of virtualbox in the second command. At the time of writing, 4.3.12 is current.}}<br />
<br />
=== Downgrading ===<br />
<br />
Users wishing to downgrade to a previous version of linux-ck, have several options:<br />
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1. <br />
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for linux-ck dating back to linux-ck-2.6.39.3-1.<br />
<br />
=== Forum support ===<br />
<br />
Always feel free to open a thread in the forums for support. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux- ck package.<br />
<br />
== A little about the BFS ==<br />
<br />
The Brain Fuck Scheduler is a desktop orientated cpu process scheduler with extremely low latencies for excellent interactivity within normal load levels.<br />
<br />
=== BFS design goals ===<br />
<br />
The BFS has two major design goals:<br />
#Achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.<br />
#Completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design.<br />
<br />
For additional information, see the [[linux-ck#Further_Reading_on_BFS_and_CK_Patchset]] section of this article.<br />
<br />
=== An example video about queuing theory ===<br />
<br />
See [http://www.youtube.com/watch?v=F5Ri_HhziI0 this video] about queuing theory for an interesting parallel with<br />
supermarket checkouts. Quote from CK, "the relevance of that video is that BFS uses a single queue, whereas the mainline Linux kernel uses a multiple queue design. The people are tasks, and the checkouts are CPUs. Of course there's a lot more to a CPU scheduler than just the queue design, but I thought this video was very relevant."<br />
<br />
=== Some performance-based metrics: BFS vs. CFS ===<br />
<br />
A major benefit of using the BFS is increased responsiveness. The benefits however, are not limited to desktop feel. [[User:Graysky|Graysky]] put together some non-responsiveness based benchmarks to compare it to the CFS contained in the "stock" linux kernel. Seven different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Again, these end-points were never factors in the primary design goals of the bfs. Results were encouraging. <br />
<br />
For those not wanting to see the full report, here is the conclusion:<br />
Kernels patched with the ck1 patch set including the bfs outperformed the vanilla kernel using the cfs at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).<br />
<br />
Moreover, several "modern" CPUs (Intel C2D and Ci7) that represent common workstations and laptops, consistently outperformed the cfs in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.<br />
<br />
[[http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf]] is available for download.<br />
<br />
=== Check if enabled ===<br />
<br />
This start-up message should appear in the kernel ring buffer when BFS in enabled:<br />
# dmesg | grep scheduler<br />
...<br />
[ 0.380500] BFS CPU scheduler v0.420 by Con Kolivas.<br />
<br />
== BFS myths==<br />
<br />
=== BFS patched kernels CAN in fact use systemd ===<br />
<br />
{{Accuracy|User sessions seem to be working fine in conjunction with Linux-ck. Please verify.}}<br />
<br />
It is a common mistake to think that BFS does not support cgroups. It does support cgroups, just not all the cgroup features. Systemd works with BFS patched kernels, though systemd user sessions are broken for now, as some of those missing features are required to start {{ic|systemd --user}}.<br />
<br />
== Further Reading on BFS and CK Patchset ==<br />
<br />
* [http://ck.kolivas.org/patches/bfs/bfs-faq.txt Con Kolivas' White Paper on the BFS]<br />
* [http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler Wikipedia's BFS Article]<br />
* [http://ck-hack.blogspot.com/ Con Kolivas' Blog]</div>Clfarron4https://wiki.archlinux.org/index.php?title=Linux-ck&diff=324329Linux-ck2014-07-10T10:28:20Z<p>Clfarron4: Added the LTS CK kernels.</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ru:Linux-ck]]<br />
[[zh-CN:Linux-ck]]<br />
{{Related articles start}}<br />
{{Related|Linux-ck/Changelog}}<br />
{{Related|Repo-ck}}<br />
{{Related|Modprobed-db}}<br />
{{Related articles end}}<br />
<br />
== General package details ==<br />
<br />
{{AUR|Linux-ck}} is a package available in the [[AUR]] and in the [[#2._Use_Pre-Compiled_Packages|unofficial linux-ck repo]] that allows users to run a kernel/headers setup patched with Con Kolivas' ck1 patchset, including the Brain Fuck Scheduler (BFS). Many Archers elect to use this package for the BFS' excellent desktop interactivity and responsiveness under any load situation. Additionally, the bfs imparts performance gains beyond interactivity. For example, see: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf].<br />
<br />
=== Release cycle ===<br />
<br />
Linux-ck roughly follows the release cycle of the official ARCH kernel. The following are requirements for its release:<br />
<br />
* Upstream code<br />
* CK's Patchset<br />
* BFQ Patchset<br />
* ARCH config/config.x86_64 sets for major version jumps only<br />
<br />
=== Package defaults ===<br />
<br />
There are '''three''' modifications to the config files:<br />
# The options that the ck patchset enable/disable.<br />
# The options that the BFQ patchset need to compile without user interaction.<br />
# Apply [https://github.com/graysky2/kernel_gcc_patch GCC patch] that enables additional CPU optimizations at compile time (these options are not part of the standard linux-ck package and are only available when the user compiles custom options).<br />
<br />
'''All other options are set to the ARCH defaults outlined in the main kernel's config files.''' Users are of course free to modify them! The linux-ck package contains an option to switch on the '''nconfig''' config editor (see section below). For some suggestions, see CK's [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ].<br />
<br />
=== Long-Term Support (LTS) CK releases ===<br />
<br />
In addition to the linux-ck package, there are the following LTS kernel releases patched with the above patchsets, with the previously mentioned modifications to the config files:<br />
<br />
* {{AUR|linux-lts-ck}} - The current ArchLinux LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts310-ck}} - The 3.10 LTS kernel patched with the CK patchset<br />
* {{AUR|linux-lts312-ck}} - The 3.12 LTS kernel patched with the CK patchset<br />
<br />
'''These three packages are not maintained by graysky and pre-packaged versions will not be found in the unofficial ck repo.'''<br />
<br />
== Installation options ==<br />
<br />
{{Note|As with *any* additional kernel, users will need to manually edit their boot loader's config file to make it aware of the new kernel images. For example, users of [[GRUB]] should execute "grub-mkconfig -o /boot/grub/grub.cfg". Syslinux, GRUB-legacy, etc. will need to be modified as well.}}<br />
<br />
Users have two options to get these kernel packages.<br />
<br />
=== 1. Compile the package from source ===<br />
<br />
The [[AUR]] contains entries for both packages mentioned above.<br />
<br />
Users can customize the linux-ck package via tweaks in the PKGBUILD:<br />
<br />
* Optional nconfig for user specific tweaking.<br />
* Option to compile a minimal set of modules via a make localmodconfig.<br />
* Option to bypass the standard ARCH config options and simply use the current kernel's .config file.<br />
* Optionally set the [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O scheduler] as default.<br />
<br />
More details about these options are provided in the PKGBUILD itself via line comments. Be sure to read them if compiling from the AUR!<br />
<br />
{{Note|There are related PKGBUILDs in the AUR for other common modules unique to linux-ck. For example {{AUR|nvidia-ck}}, {{AUR|nvidia-304xx-ck}},{{AUR|lirc-ck}}, and {{AUR|broadcom-wl-ck}}.}}<br />
<br />
===2 . Use pre-compiled packages ===<br />
<br />
If users would rather not spend the time to compile on their own, an unofficial repo maintained by [[User:Graysky|graysky]] is available to the community.<br />
<br />
For details, see: [[Repo-ck]].<br />
<br />
== How to enable the BFQ I/O Scheduler ==<br />
<br />
Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput.<br />
<br />
=== Globally (for all devices) ===<br />
<br />
If compiling from the AUR, simply set the BFQ flag to yes in the PKGBUILD prior to building.<br />
_BFQ_enable_="y"<br />
<br />
If using the repo packages, append "elevator=bfq" to the kernel boot line in {{ic|/boot/grub/menu.lst}} if using grub or in {{ic|/etc/default/grub}} under the '''GRUB_CMDLINE_LINUX_DEFAULT="quiet"''' line followed by rebuilding {{ic|/boot/grub/grub.cfg}} via the standard "grub-mkconfig -o /boot/grub/grub.cfg" command.<br />
<br />
=== Selectively (for only specified devices) ===<br />
<br />
An alternative method is to direct the kernel to use it on a device-by-device basis. For example, to enable it for {{ic|/dev/sda}} simply:<br />
# echo bfq > /sys/block/sda/queue/scheduler<br />
<br />
To confirm, simply ''cat'' the same file:<br />
# cat /sys/block/sda/queue/scheduler<br />
noop deadline cfq [bfq] <br />
<br />
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, place lines in {{ic|/etc/tmpfiles.d/IO_scheduler.conf}}:<br />
<br />
w /sys/block/sda/queue/scheduler - - - - bfq<br />
<br />
== Troubleshooting ==<br />
<br />
=== Running Virtualbox with Linux-ck ===<br />
<br />
Virtualbox works just fine with custom kernels such as Linux-ck ''without'' the need to keep any of the official ARCH kernel-headers packages on the system!<br />
<br />
Don't forget to add users to the ''vboxusers '' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
==== Option 1. Use the unofficial repo (recommended) ====<br />
<br />
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as precompiled packages in the repo itself. If you built your linux-ck from the AUR you CANNOT USE THE REPO as all packages in the repo are matched groups.}}<br />
<br />
See the [[Repo-ck]] article to setup http://repo-ck.com for pacman to use directly.<br />
<br />
==== Option 2. The virtualbox-ck-modules package (recommended if linux-ck is built by you from the AUR) ====<br />
<br />
Install the {{AUR|virtualbox-ck-modules}} package and then install '''virtualbox''' package.<br />
<br />
==== Option 3. Use DKMS (more complicated) ====<br />
<br />
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup dkms as follows:<br />
# pacman -S virtualbox virtualbox-host-dkms<br />
# dkms install vboxhost/4.2.6<br />
<br />
{{Note|Make sure to substitute the correct version number of virtualbox in the second command. At the time of writting, 4.2.6 is current.}}<br />
<br />
=== Downgrading ===<br />
<br />
Users wishing to downgrade to a previous version of linux-ck, have several options:<br />
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1. <br />
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for linux-ck dating back to linux-ck-2.6.39.3-1.<br />
<br />
=== Forum support ===<br />
<br />
Always feel free to open a thread in the forums for support. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux- ck package.<br />
<br />
== A little about the BFS ==<br />
<br />
The Brain Fuck Scheduler is a desktop orientated cpu process scheduler with extremely low latencies for excellent interactivity within normal load levels.<br />
<br />
=== BFS design goals ===<br />
<br />
The BFS has two major design goals:<br />
#Achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.<br />
#Completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design.<br />
<br />
For additional information, see the [[linux-ck#Further_Reading_on_BFS_and_CK_Patchset]] section of this article.<br />
<br />
=== An example video about queuing theory ===<br />
<br />
See [http://www.youtube.com/watch?v=F5Ri_HhziI0 this video] about queuing theory for an interesting parallel with<br />
supermarket checkouts. Quote from CK, "the relevance of that video is that BFS uses a single queue, whereas the mainline Linux kernel uses a multiple queue design. The people are tasks, and the checkouts are CPUs. Of course there's a lot more to a CPU scheduler than just the queue design, but I thought this video was very relevant."<br />
<br />
=== Some performance-based metrics: BFS vs. CFS ===<br />
<br />
A major benefit of using the BFS is increased responsiveness. The benefits however, are not limited to desktop feel. [[User:Graysky|Graysky]] put together some non-responsiveness based benchmarks to compare it to the CFS contained in the "stock" linux kernel. Seven different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Again, these end-points were never factors in the primary design goals of the bfs. Results were encouraging. <br />
<br />
For those not wanting to see the full report, here is the conclusion:<br />
Kernels patched with the ck1 patch set including the bfs outperformed the vanilla kernel using the cfs at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).<br />
<br />
Moreover, several "modern" CPUs (Intel C2D and Ci7) that represent common workstations and laptops, consistently outperformed the cfs in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.<br />
<br />
[[http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU_Schedulers_Compared.pdf]] is available for download.<br />
<br />
=== Check if enabled ===<br />
<br />
This start-up message should appear in the kernel ring buffer when BFS in enabled:<br />
# dmesg | grep scheduler<br />
...<br />
[ 0.380500] BFS CPU scheduler v0.420 by Con Kolivas.<br />
<br />
== BFS myths==<br />
<br />
=== BFS patched kernels CAN in fact use systemd ===<br />
<br />
{{Accuracy|User sessions seem to be working fine in conjunction with Linux-ck. Please verify.}}<br />
<br />
It is a common mistake to think that BFS does not support cgroups. It does support cgroups, just not all the cgroup features. Systemd works with BFS patched kernels, though systemd user sessions are broken for now, as some of those missing features are required to start {{ic|systemd --user}}.<br />
<br />
== Further Reading on BFS and CK Patchset ==<br />
<br />
* [http://ck.kolivas.org/patches/bfs/bfs-faq.txt Con Kolivas' White Paper on the BFS]<br />
* [http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler Wikipedia's BFS Article]<br />
* [http://ck-hack.blogspot.com/ Con Kolivas' Blog]</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=315743User:Clfarron42014-05-19T15:15:46Z<p>Clfarron4: /* PGP Key */</p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 Claire's Github]<br />
<br />
==PGP Key==<br />
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x9E0AB2D87A748F20</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=314070User:Clfarron42014-05-09T11:37:15Z<p>Clfarron4: </p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 Claire's Github]<br />
<br />
==PGP Key==<br />
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x1114E278915BFFE2</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=313993User:Clfarron42014-05-08T22:29:53Z<p>Clfarron4: /* Github */</p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 Claire's Github]</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=313992User:Clfarron42014-05-08T22:29:34Z<p>Clfarron4: </p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.<br />
<br />
==Github==<br />
*[https://github.com/clfarron4 clfarron4's Github]</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=313991User:Clfarron42014-05-08T22:28:23Z<p>Clfarron4: /* My Packages */</p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.<br />
*{{AUR|linux-lts312}} - The Linux 3.12 LTS Kernel.</div>Clfarron4https://wiki.archlinux.org/index.php?title=User:Clfarron4&diff=313989User:Clfarron42014-05-08T22:27:46Z<p>Clfarron4: Created page with "==My Packages== *{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler."</p>
<hr />
<div>==My Packages==<br />
<br />
*{{AUR|linux-lts-ck}} - The ArchLinux LTS Kernel patched with the ck1 patchset and BFQ disk scheduler.</div>Clfarron4https://wiki.archlinux.org/index.php?title=LVM&diff=313009LVM2014-05-02T12:08:19Z<p>Clfarron4: lvextend -L 20G VolGroup00/lvolhome does not work. lvextend -L +20G VolGroup00/lvolhome does.</p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[Category:File systems]]<br />
[[cs:LVM]]<br />
[[de:LVM]]<br />
[[es:LVM]]<br />
[[fr:LVM]]<br />
[[it:LVM]]<br />
[[ja:LVM]]<br />
[[ru:LVM]]<br />
[[tr:LVM]]<br />
[[zh-CN:LVM]]<br />
{{Related articles start}}<br />
{{Related|Software RAID and LVM}}<br />
{{Related|System Encryption with LUKS}}<br />
{{Related|dm-crypt/Encrypting an Entire System#LVM on LUKS}}<br />
{{Related|dm-crypt/Encrypting an Entire System#LUKS on LVM}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Logical Volume Manager (Linux)]]:<br />
:LVM is a [[Wikipedia:logical volume management|logical volume manager]] for the [[Wikipedia:Linux kernel|Linux kernel]]; it manages disk drives and similar mass-storage devices.<br />
<br />
=== LVM Building Blocks ===<br />
<br />
Logical Volume Management makes use of the [http://sources.redhat.com/dm/ device-mapper] feature of the Linux kernel to provide a system of partitions independent of the underlying disk's layout. With LVM you abstract your storage and have "virtual partitions", making it easier to extend and shrink partitions (subject to potential limitations of your file system) and add/remove partitions without worrying about whether you have enough contiguous space on a particular disk, getting caught up in fdisking a disk in use (and wondering whether the kernel is using the old or new partition table), or, having to move other partitions out of the way. This is strictly an ease-of-management issue: it does not provide any security. However, it sits nicely with the other two technologies we are using.<br />
<br />
The basic building blocks of LVM are:<br />
<br />
* '''Physical volume (PV)''': Partition on hard disk (or even hard disk itself or loopback file) on which you can have volume groups. It has a special header and is divided into physical extents. Think of physical volumes as big building blocks which can be used to build your hard drive.<br />
* '''Volume group (VG)''': Group of physical volumes that are used as storage volume (as one disk). They contain logical volumes. Think of volume groups as hard drives.<br />
* '''Logical volume (LV)''': A "virtual/logical partition" that resides in a volume group and is composed of physical extents. Think of logical volumes as normal partitions.<br />
* '''Physical extent (PE)''': A small part of a disk (usually 4MiB) that can be assigned to a logical Volume. Think of physical extents as parts of disks that can be allocated to any partition.<br />
<br />
Example:<br />
'''Physical disks'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''LVM logical volumes'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
=== Advantages ===<br />
<br />
LVM gives you more flexibility than just using normal hard drive partitions:<br />
* Use any number of disks as one big disk.<br />
* Have logical volumes stretched over several disks.<br />
* Create small logical volumes and resize them "dynamically" as they get more filled.<br />
* Resize logical volumes regardless of their order on disk. It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.<br />
* Resize/create/delete logical and physical volumes online. File systems on them still need to be resized, but some support online resizing.<br />
* Online/live migration of LV being used by services to different disks without having to restart services.<br />
* Snapshots allow you to backup a frozen copy of the file system, while keeping service downtime to a minimum.<br />
<br />
These can be very helpful in a server situation, desktop less so, but you must decide if the features are worth the abstraction.<br />
<br />
=== Disadvantages ===<br />
<br />
* Linux exclusive (almost). There is no official support in most other OS (FreeBSD, Windows..).<br />
* Additional steps in setting up the system, more complicated.<br />
* If you use the [[Btrfs]] file system, its Subvolume feature will also give you the benefit of having a flexible layout. In that case, using the additional Abstraction layer of LVM may be unnecessary.<br />
<br />
== Installing Arch Linux on LVM ==<br />
<br />
You should create your LVM Volumes between the [[Partitioning]] and [[File Systems#Format a device|formatting]] steps of the Installation Procedure. Instead of directly formatting a partition to be your root file system, it will be created inside a logical volume (LV). <br />
<br />
Make sure the {{pkg|lvm2}} package is [[pacman|installed]].<br />
<br />
Quick overview: <br />
* Create partition(s) where your PV will reside. Set the partition type to 'Linux LVM', which is 8e if you use MBR, 8e00 for GPT.<br />
* Create your physical volumes (PV). If you have one disk it is best to just create one PV in one large partition. If you have multiple disks you can create partitions on each of them and create a PV on each partition.<br />
* Create your volume group (VG) and add all the PV to it.<br />
* Create logical volumes (LV) inside your VG.<br />
* Continue with “Format the partitions” step of [[Beginners' guide]].<br />
* When you reach the “Create initial ramdisk environment” step in the Beginners Guide, add the {{ic|lvm}} hook to {{ic|/etc/mkinitcpio.conf}} (see below for details).<br />
<br />
{{Warning|{{ic|/boot}} cannot reside in LVM when using [[GRUB Legacy]], which does not support LVM. [[GRUB]] users do not have this limitation. If you need to use GRUB Legacy, you must create a separate {{ic|/boot}} partition and format it directly. }}<br />
<br />
=== Create partitions ===<br />
{{Note|This step is optional and depends on the users preference. In most cases it is recommended to partition the device first, though.}}<br />
See [[Partitioning]] on how to create partitions on your device.<br />
<br />
=== Create physical volumes ===<br />
To list all your devices and their partitions:<br />
* MBR system: {{Ic|fdisk -l}}<br />
* GPT system: {{Ic|lsblk}} and then {{Ic|gdisk -l ''DEVICE''}} to show more detailed information<br />
<br />
{{Warning|Make sure you target the right devices/partitions, or below commands will result in data loss!}}<br />
<br />
Create a physical volume on them:<br />
# pvcreate ''DEVICE''<br />
<br />
As defined in [[LVM#LVM_Building_Blocks]], ''DEVICE'' can be a disk device (e.g. {{ic|/dev/sda}}), a partition (e.g. {{ic|/dev/sda2}}) or a loop back device).<br />
<br />
This command creates a header on each device/partition so it can be used for LVM.<br />
You can track created physical volumes with:<br />
# pvdisplay<br />
<br />
{{Note|If using a SSD without partitioning it first, use {{ic|pvcreate --dataalignment 1m /dev/sda2}} (for erase block size < 1MiB), see e.g. [http://serverfault.com/questions/356534/ssd-erase-block-size-lvm-pv-on-raw-device-alignment here]}}<br />
<br />
=== Create volume group ===<br />
<br />
Next step is to create a volume group on this physical volume. First you need to create a volume group on one of the new partitions and then add to it all other physical volumes you want to have in it:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Also you can use any other name you like instead of VolGroup00 for a volume group when creating it. You can track how your volume group grows with:<br />
# vgdisplay<br />
<br />
{{Note|You can create more than one volume group if you need to, but then you will not have all your storage presented as one disk.}}<br />
<br />
=== Create logical volumes ===<br />
<br />
Now we need to create logical volumes on this volume group. You create a logical volume with the next command by giving the name of a new logical volume, its size, and the volume group it will live on:<br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
This will create a logical volume that you can access later with {{ic|/dev/mapper/Volgroup00-lvolhome}} or {{ic|/dev/VolGroup00/lvolhome}}. Same as with the volume groups, you can use any name you want for your logical volume when creating it.<br />
<br />
To create swap on a logical volume, an additional argument is needed:<br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
The {{Ic|-C y}} is used to create a contiguous partition, which means that your swap space does not get partitioned over one or more disks nor over non-contiguous physical extents.<br />
<br />
If you want to fill all the free space left on a volume group, use the next command:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
You can track created logical volumes with:<br />
# lvdisplay<br />
<br />
{{Note|You may need to load the ''device-mapper'' kernel module ('''modprobe dm-mod''') for the above commands to succeed:}}<br />
<br />
{{Tip|You can start out with relatively small logical volumes and expand them later if needed. For simplicity, leave some free space in the volume group so there is room for expansion.}}<br />
<br />
=== Create file systems and mount logical volumes ===<br />
<br />
Your logical volumes should now be located in {{ic|/dev/mapper/}} and {{ic|/dev/''YourVolumeGroupName''}}. If you cannot find them, use the next commands to bring up the module for creating device nodes and to make volume groups available:<br />
# modprobe dm-mod<br />
# vgscan<br />
# vgchange -ay<br />
Now you can create file systems on logical volumes and mount them as normal partitions (if you are installing Arch linux, refer to [[Beginners' guide#Mount the partitions|mounting the partitions]] for additional details):<br />
# mkfs.ext4 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
<br />
{{Warning|When choosing mountpoints, just select your newly created logical volumes (use: {{ic|/dev/mapper/Volgroup00-lvolhome}}). Do '''not''' select the actual partitions on which logical volumes were created (do not use: {{ic|/dev/sda2}}).}}<br />
<br />
=== Add lvm hook to mkinitcpio.conf ===<br />
<br />
You will need to make sure the {{Ic|udev}} and {{Ic|lvm2}} [[mkinitcpio]] hooks are enabled.<br />
<br />
{{Ic|udev}} is there by default. Edit the file and insert {{Ic|lvm2}} between {{Ic|block}} and {{Ic|filesystem}} like so:<br />
<br />
{{hc|/etc/mkinitcpio.conf:|<nowiki>HOOKS="base udev ... block lvm2 filesystems"</nowiki>}}<br />
<br />
Afterwards, you can continue in normal installation instructions with the [[Mkinitcpio#Image_creation_and_activation|create an initial ramdisk]] step.<br />
<br />
== Configuration ==<br />
<br />
=== Advanced options ===<br />
<br />
If you need monitoring (needed for snapshots) you can enable lvmetad. <br />
For this set {{ic|1=use_lvmetad = 1}} in {{ic|/etc/lvm/lvm.conf}}.<br />
This is the default by now. <br />
<br />
You can restrict the volumes that are activated automatically by setting the {{Ic|auto_activation_volume_list}} in {{Ic|/etc/lvm/lvm.conf}}. If in doubt, leave this option commented out.<br />
<br />
=== Grow physical volume ===<br />
<br />
After changing the size of a physical volume (pv), e.g: growing a mdadm raid array, you need to grow the pv using the following command:<br />
<br />
# pvresize /dev/mdX<br />
<br />
{{Note|This command can be done while the volume is online}}<br />
<br />
=== Grow logical volume ===<br />
<br />
To grow a logical volume you first need to grow the logical volume and then the file system to use the newly created free space. Let us say we have a logical volume of 15 GB with ext3 on it, and we want to grow it to 20 GB. We need to do the following steps: <br />
# lvextend -L +20G VolGroup00/lvolhome (or lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
You may use {{Ic|lvresize}} instead of {{Ic|lvextend}}.<br />
<br />
If you want to fill all the free space on a volume group, use the next commands:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
<br />
{{Warning|Not all file systems support growing without loss of data and/or growing online.}}<br />
<br />
{{Note|If you do not resize your file system, you will still have a volume with the same size as before (volume will be bigger but partly unused).}}<br />
<br />
=== Shrink logical volume ===<br />
<br />
Because your file system is probably as big as the logical volume it resides on, you need to shrink the file system first and then shrink the logical volume. Depending on your file system, you may need to unmount it first. Let us say we have a logical volume of 15 GB with ext3 on it and we want to shrink it to 10 GB. We need to do the following steps: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome<br />
<br />
Here we shrunk the file system more than needed so that when we shrunk the logical volume we did not accidentally cut off the end of the file system. After that, we normally grow the file system to fill all free space left on logical volume. You may use {{Ic|lvresize}} instead of {{Ic|lvreduce}}.<br />
# lvresize -L -5G VolGroup00/lvolhome<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
<br />
{{Warning|<br />
* Do not reduce the file system size to less than the amount of space occupied by data or you risk data loss.<br />
* Not all file systems support shrinking without loss of data and/or shrinking online.<br />
}}<br />
<br />
{{Note|It is better to reduce the file system to a smaller size than the logical volume, so that after resizing the logical volume, we do not accidentally cut off some data from the end of the file system.}}<br />
<br />
=== Remove logical volume ===<br />
<br />
{{Warning|Before you remove a logical volume, make sure to move all data that you want to keep somewhere else; otherwise, it will be lost!}}<br />
<br />
First, find out the name of the logical volume you want to remove. You can get a list of all logical volumes installed on the system with:<br />
<br />
# lvs<br />
<br />
Next, look up the mountpoint for your chosen logical volume...:<br />
<br />
$ df -h<br />
<br />
... and unmount it:<br />
<br />
# umount /your_mountpoint<br />
<br />
Finally, remove the logical volume:<br />
<br />
# lvremove /dev/yourVG/yourLV<br />
<br />
Confirm by typing {{ic|y}} and you are done.<br />
<br />
Do not forget, to update {{ic|/etc/fstab}}!<br />
<br />
You can verify the removal of your logical volume by typing {{ic|lvs}} as root again (see first step of this section).<br />
<br />
=== Add physical volume to a volume group ===<br />
<br />
You first create a new physical volume on the block device you wish to use, then extend your volume group<br />
<br />
{{bc|1=<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
}}<br />
<br />
This of course will increase the total number of physical extents on your volume group, which can be allocated by logical volumes as you see fit.<br />
<br />
{{Note|It is considered good form to have a [[Partitioning|partition table]] on your storage medium below LVM. Use the appropriate type code: {{ic|8e}} for MBR, and {{ic|8e00}} for GPT partitions.}}<br />
<br />
=== Remove partition from a volume group ===<br />
<br />
All of the data on that partition needs to be moved to another partition. Fortunately, LVM makes this easy:<br />
# pvmove /dev/sdb1<br />
If you want to have the data on a specific physical volume, specify that as the second argument to {{Ic|pvmove}}:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Then the physical volume needs to be removed from the volume group:<br />
# vgreduce myVg /dev/sdb1<br />
Or remove all empty physical volumes:<br />
# vgreduce --all vg0<br />
<br />
And lastly, if you want to use the partition for something else, and want to avoid LVM thinking that the partition is a physical volume:<br />
# pvremove /dev/sdb1<br />
<br />
<br />
=== Deactivate volume group ===<br />
<br />
Just invoke <br />
# vgchange -a n my_volume_group<br />
<br />
This will deactivate the volume group and allow you to unmount the container it is stored in.<br />
<br />
=== Snapshots ===<br />
<br />
==== Introduction ====<br />
<br />
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).<br />
<br />
==== Configuration ====<br />
<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
Reverting the modified 'pv' logical volume to the state when the 'snap01' snapshot was taken can be done with<br />
<br />
{{ic|# lvconvert --merge /dev/vg0/snap01}}<br />
<br />
In case the origin logical volume is active, merging will occur on the next reboot.(Merging can be done even from a LiveCD)<br />
<br />
The snapshot will no longer exist after merging.<br />
<br />
Also multiple snapshots can be taken and each one can be merged with the origin logical volume at will.<br />
<br />
The snapshot can be mounted and backed up with '''dd''' or '''tar'''. The size of the backup file done with '''dd''' will be the size of the files residing on the snapshot volume. <br />
To restore just create a snapshot, mount it, and write or extract the backup to it. And then merge it with the origin.<br />
<br />
It is important to have the ''dm_snapshot'' module listed in the MODULES variable of {{ic|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/initramfs-linux.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{ic|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a file system to make backups; a backup taking two hours provides a more consistent image of the file system than directly backing up the partition.<br />
<br />
See [[Create root filesystem snapshots with LVM]] for automating the creation of clean root file system snapshots during system startup for backup and rollback.<br />
<br />
[[Dm-crypt/Encrypting an Entire System#LVM on LUKS]] and [[Dm-crypt/Encrypting an Entire System#LUKS on LVM]].<br />
<br />
If you have LVM volumes not activated via the [[Mkinitcpio|initramfs]], [[#Using units|enable]] the '''lvm-monitoring''' service, which is provided by the {{pkg|lvm2}} package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Changes that could be required due to changes in the Arch-Linux defaults ===<br />
<br />
The {{ic|1=use_lvmetad = 1}} must be set in {{ic|/etc/lvm/lvm.conf}}. This is the default now - if you have a {{ic|lvm.conf.pacnew}} file, you must merge this change.<br />
<br />
=== LVM commands do not work ===<br />
<br />
* Load proper module:<br />
# modprobe dm_mod<br />
<br />
The {{ic|dm_mod}} module should be automatically loaded. In case it does not, you can try:<br />
<br />
{{hc|/etc/mkinitcpio.conf:|<nowiki>MODULES="dm_mod ..."</nowiki>}}<br />
<br />
You will need to [[Mkinitcpio#Image_creation_and_activation|rebuild]] the initramfs to commit any changes you made.<br />
<br />
* Try preceding commands with ''lvm'' like this:<br />
# lvm pvdisplay<br />
<br />
=== Logical Volumes do not show up ===<br />
<br />
If you are trying to mount existing logical volumes, but they do not show up in {{ic|lvscan}}, you can use the following commands to activate them:<br />
<br />
# vgscan<br />
# vgchange -ay<br />
<br />
=== LVM on removable media ===<br />
<br />
Symptoms:<br />
# vgscan<br />
Reading all physical volumes. This may take a while...<br />
/dev/backupdrive1/backup: read failed after 0 of 4096 at 319836585984: Input/output error<br />
/dev/backupdrive1/backup: read failed after 0 of 4096 at 319836643328: Input/output error<br />
/dev/backupdrive1/backup: read failed after 0 of 4096 at 0: Input/output error<br />
/dev/backupdrive1/backup: read failed after 0 of 4096 at 4096: Input/output error<br />
Found volume group "backupdrive1" using metadata type lvm2<br />
Found volume group "networkdrive" using metadata type lvm2<br />
<br />
Cause:<br />
:Removing an external LVM drive without deactivating the volume group(s) first. Before you disconnect, make sure to:<br />
# vgchange -an ''volume group name''<br />
<br />
Fix: (assuming you already tried to activate the volume group with {{ic|# vgchange -ay ''vg''}}, and are receiving the Input/output errors:<br />
# vgchange -an ''volume group name''<br />
Unplug the external drive and wait a few minutes:<br />
# vgscan<br />
# vgchange -ay ''volume group name''<br />
<br />
=== Kernel options ===<br />
<br />
In kernel options, you may need {{ic|dolvm}}. {{ic|<nowiki>root=</nowiki>}} should be set to the logical volume, e.g {{ic|/dev/mapper/''vg-name''-''lv-name''}}.<br />
<br />
== See also ==<br />
<br />
* [http://sourceware.org/lvm2/ LVM2 Resource Page] on SourceWare.org<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO] article at The Linux Documentation project<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation] guide at Gentoo documentation<br />
* [http://wiki.gentoo.org/wiki/LVM LVM] article at Gentoo wiki<br />
* [http://www.joshbryan.com/blog/2008/01/02/lvm2-mirrors-vs-md-raid-1/ LVM2 Mirrors vs. MD Raid 1] post by Josh Bryan<br />
* [http://www.tutonics.com/2012/11/ubuntu-lvm-guide-part-1.html Ubuntu LVM Guide Part 1][http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html Part 2 detals snapshots]</div>Clfarron4