https://wiki.archlinux.org/api.php?action=feedcontributions&user=Zanny&feedformat=atomArchWiki - User contributions [en]2024-03-28T23:03:02ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=OpenSMTPD&diff=693090OpenSMTPD2021-08-27T15:38:51Z<p>Zanny: Bug fixed in Feb</p>
<hr />
<div>[[Category:Mail server]]<br />
[[Category:OpenBSD]]<br />
[[ja:OpenSMTPD]]<br />
{{Related articles start}}<br />
{{Related|Mail server}}<br />
{{Related articles end}}<br />
[https://www.opensmtpd.org/ OpenSMTPD] is a free [[mail transfer agent]], developed as part of the OpenBSD project. This article builds upon [[Mail server]].<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|opensmtpd}} package.<br />
<br />
== Configuration ==<br />
<br />
OpenSMTPD is configured in {{ic|/etc/smtpd/}}.<br />
<br />
{{Note|1=Starting with OpenSMTPD [https://www.opensmtpd.org/announces/release-6.4.0.txt version 6.4.0] the configuration file syntax has been completely reworked, breaking compatibility with previous configuration files. For instruction on migrating the configuration to the new syntax see https://poolp.org/posts/2018-05-21/switching-to-opensmtpd-new-config/.}}<br />
<br />
=== Local mail ===<br />
<br />
{{Out of date|OpenSMTPD 6.6.3p1 changed the default configuration to use [[Wikipedia:Maildir|Maildir]] instead of [[Wikipedia:Mbox|mbox]].}}<br />
<br />
To have local mail working, for example for [[cron]] mails, it is enough to simply [[start]] {{ic|smtpd.service}}.<br />
<br />
The default configuration of OpenSMTPD is to do local retrieval and delivery of mail, and also relay outgoing mail. See {{man|5|smtpd.conf}}.<br />
<br />
==== Local mail only ====<br />
<br />
To do only local mail, the following is enough:<br />
<br />
{{hc|/etc/smtpd/smtpd.conf|<br />
listen on localhost<br />
action "local" mbox alias <aliases><br />
match for local action "local"<br />
}}<br />
<br />
==== Hybrid : local mail and relay ====<br />
<br />
These two lines in {{ic|/etc/smtpd/smtpd.conf}} :<br />
<br />
action "local" mbox alias <aliases><br />
action "relay" relay host "smtp://smtp.foo.bar" mail-from "@foo.bar"<br />
match for local action "local"<br />
match for any action "relay"<br />
<br />
configure OpenSMTPD to :<br />
<br />
* send local email ''locally'', without going through a relay (useful for cron & at mail notifications)<br />
<br />
* use a relay to send a mail outside of localhost<br />
<br />
Simply replace ''smtp.foo.bar'' by your ISP mail server, or another server at<br />
your convenience.<br />
<br />
==== Relay only ====<br />
<br />
To send all local emails through a relay invoke [[procmail]]:<br />
<br />
{{hc|/etc/smtpd/smtpd.conf|<br />
action "local" mda "procmail -f -" virtual <aliases><br />
action "relay" relay host "smtps://label@smtp.foo.bar" auth <secrets> mail-from "@foo.bar"<br />
match for local action "local"<br />
match for any action "relay"<br />
}}<br />
<br />
The aliases option is used for the local user mapping, for a simplified mapping you can use virtual aliases with a catch all: <br />
{{hc|/etc/smtpd/aliases|<br />
@ foo@bar<br />
}}<br />
<br />
=== Simple OpenSMTPD/mbox configuration ===<br />
<br />
==== TLS ====<br />
<br />
To obtain a certificate, see [[OpenSSL#Usage]].<br />
<br />
{{Note|OpenSMTPD has solid defaults, SSLv3 is always disabled and the default {{ic|ciphers}} are not known to be insecure. You might still want to test the server as described in [[Server-side TLS]].}}<br />
<br />
==== Create user accounts ====<br />
<br />
* Create a user account on the mail server for each desired mailbox. <br />
<br />
# useradd -m -s /bin/bash roger<br />
# useradd -m -s /bin/bash shirley<br />
<br />
* OpenSMTPD will deliver messages to the user account's mbox file at {{ic|/var/spool/mail/''<username>''}} <br />
* Multiple SMTP email addresses can be routed to a given mbox if desired.<br />
<br />
==== Craft a simple smtpd.conf setup ====<br />
<br />
* A working configuration can be had in as little as nine lines!<br />
{{hc|/etc/smtpd/smtpd.conf|<br />
pki mx.domain.tld cert "/etc/smtpd/tls/smtpd.crt"<br />
pki mx.domain.tld key "/etc/smtpd/tls/smtpd.key"<br />
<br />
table creds "/etc/smtpd/creds"<br />
table vdoms "/etc/smtpd/vdoms"<br />
table vusers "/etc/smtpd/vusers"<br />
<br />
listen on eth0 tls pki mx.domain.tld<br />
listen on eth0 port 465 smtps pki mx.domain.tld auth <creds><br />
listen on eth0 port 587 tls-require pki mx.domain.tld auth <creds><br />
<br />
action receive mbox virtual <vusers><br />
action send relay<br />
<br />
match from any for domain <vdoms> action receive<br />
match for any action send<br />
}}<br />
<br />
==== Create tables ====<br />
<br />
* For the domain table file; simply put one domain per line<br />
<br />
{{hc|/etc/smtpd/vdoms|<br />
personaldomain.org<br />
businessname.com<br />
}}<br />
<br />
* For the user table file; list one inbound SMTP email address per line and then map it to an mbox user account name, SMTP email address, or any combination of the two on the right, separated by commas.<br />
<br />
{{hc|/etc/smtpd/vusers|<br />
roger@personaldomain.org roger<br />
newsletters@personaldomain.org roger,roger.rulz@gmail.com<br />
<br />
roger@businessname.com roger<br />
shirley@businessname.com shirley<br />
info@businessname.com roger,shirley<br />
contact@businessname.com info@businessname.com<br />
}}<br />
<br />
* For the creds table file; put the user name in the 1st column and the password hash in the 2nd column<br />
<br />
{{hc|/etc/smtpd/creds|<br />
roger <password hash created using 'smtpctl encrypt' command><br />
shirley <password hash created using 'smtpctl encrypt' command><br />
}}<br />
<br />
=== Test the configuration ===<br />
<br />
# smtpd -n<br />
<br />
If you get a message that says 'configuration OK' - you are ready to [[systemd|rock and roll]]. If not, work on any configuration errors and try again.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Console debugging ===<br />
<br />
If you are having problems with mail delivery, try [[stop]]ping the {{ic|smtpd.service}} and launching the daemon manually with the 'do not daemonize' and 'verbose output' options. Then watch the console for errors.<br />
<br />
# smtpd -dv<br />
<br />
=== Subsystem tracing ===<br />
<br />
Add the {{ic|-T}} flag to get real-time subsystem tracing<br />
<br />
# smtpd -dv -T smtp<br />
<br />
Alternately, use the {{ic|smtpctl trace ''<subsystem>''}} command if the daemon is already running. The trace output will appear in the console output above as well as the [[journalctl]] output for the smtpd.service. For example:<br />
<br />
# smtpctl trace expand && smtpctl trace lookup<br />
<br />
...will trace both aliases/virtual/forward expansion and user/credentials lookups<br />
<br />
=== Manual Submission port authentication ===<br />
<br />
* Encode username and password in base64<br />
<br />
# printf '\0username\0password' | base64 <br />
<br />
* Connect to submission port using {{ic|openssl s_client}} command<br />
<br />
# openssl s_client -host mx.domain.tld -port 587 -starttls smtp<br />
<br />
* enter {{ic|ehlo myhostname}} followed by {{ic|AUTH PLAIN}}. Paste in the base64 string from step above after {{ic|334}} response.<br />
<br />
250 HELP<br />
ehlo test.domain.tld<br />
250-mx.hostname.tld Hello test.domain.tld [5.5.5.5], pleased to meet you<br />
250-8BITMIME<br />
250-ENHANCEDSTATUSCODES<br />
250-SIZE 36700160<br />
250-DSN<br />
250-AUTH PLAIN LOGIN<br />
250 HELP<br />
AUTH PLAIN<br />
334 <br />
dXNlcm5hbWUAdXNlcm5hbWUAcGFzc3dvcmQ=<br />
235 2.0.0: Authentication succeeded<br />
<br />
=== "Helo command rejected: need fully-qualified hostname" ===<br />
<br />
When sending email, if you get this kind of messages, set your FQDN in the file {{ic|/etc/smtpd/mailname}}. Otherwise, the server name is derived from the local [[hostname]] returned by {{man|3p|gethostname}}, either directly if it is a fully qualified domain name, or by retrieving the associated canonical name through {{man|3|getaddrinfo}}.<br />
<br />
=== System users authentication failure ===<br />
<br />
If you are using the system users and the authentication with valid credentials fails, you have to configure [[PAM]]:<br />
<br />
{{hc|/etc/pam.d/smtpd|<br />
auth required pam_unix.so<br />
account required pam_unix.so<br />
password required pam_unix.so<br />
session required pam_unix.so<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:OpenSMTPD]]<br />
* OpenSMTPD pairs well with [[Dovecot]]. Combine the two for a nice minimalist mailserver<br />
* [https://opensmtpd.org/ OpenSMTPD project page]<br />
* [https://coderwall.com/p/eejzja Simple SMTP server with OpenSMTPD]</div>Zannyhttps://wiki.archlinux.org/index.php?title=USB_flash_installation_medium&diff=563338USB flash installation medium2019-01-15T06:42:25Z<p>Zanny: /* In GNU/Linux */ Update dates to 2019</p>
<hr />
<div>[[Category:Installation process]]<br />
[[ar:USB flash installation media]]<br />
[[bg:USB flash installation media]]<br />
[[de:Installation von einem USB-Stick]]<br />
[[es:USB flash installation media]]<br />
[[fr:Créer une clef USB avec l'ISO Arch Linux]]<br />
[[it:USB flash installation media]]<br />
[[ja:USB インストールメディア]]<br />
[[pt:USB flash installation media]]<br />
[[ru:USB flash installation media]]<br />
[[zh-hans:USB flash installation media]]<br />
[[zh-hant:USB flash installation media]]<br />
{{Related articles start}}<br />
{{Related|CD Burning}}<br />
{{Related|Archiso}}<br />
{{Related|Multiboot USB drive}}<br />
{{Related articles end}}<br />
<br />
This page discusses various multi-platform methods on how to create an Arch Linux Installer USB drive (also referred to as ''"flash drive", "USB stick", "USB key"'', etc) for booting in BIOS and UEFI systems. The result will be a LiveUSB (LiveCD-like) system that can be used for installing Arch Linux, system maintenance or for recovery purposes, and that, because of the nature of [[Wikipedia:SquashFS|SquashFS]], will discard all changes once the computer shuts down.<br />
<br />
If you would like to run a full install of Arch Linux from a USB drive (i.e. with persistent settings), see [[Installing Arch Linux on a USB key]]. If you would like to use your bootable Arch Linux USB stick as a rescue USB, see [[Change root]].<br />
<br />
== BIOS and UEFI bootable USB ==<br />
<br />
=== Using automatic tools ===<br />
<br />
==== In GNU/Linux ====<br />
<br />
===== Using dd =====<br />
<br />
{{Note|This method is recommended due to its simplicity. If it does not work, switch to the alternative method [[#Using manual formatting]] below.}}<br />
<br />
{{Warning|This will irrevocably destroy all data on {{ic|/dev/'''sdx'''}}. To restore the USB drive as an empty, usable storage device after using the Arch ISO image, the ISO 9660 filesystem signature needs to be removed by running {{ic|wipefs --all /dev/'''sdx'''}} as root, before [[repartition]]ing and [[reformat]]ing the USB drive.}}<br />
<br />
{{Tip|Find out the name of your USB drive with {{ic|lsblk}}. Make sure that it is '''not''' mounted.}}<br />
<br />
Run the following command, replacing {{ic|/dev/'''sdx'''}} with your drive, e.g. {{ic|/dev/sdb}}. (Do '''not''' append a partition number, so do '''not''' use something like {{ic|/dev/sdb'''1'''}})<br />
<br />
# dd bs=4M if=/path/to/archlinux.iso of=/dev/'''sdx''' status=progress oflag=sync<br />
<br />
See {{man|1|dd}} for more information about [[dd]]. See {{man|1|dd|DESCRIPTION}} for more information about {{ic|1=oflag=sync}}.<br />
<br />
===== Using etcher =====<br />
<br />
[https://etcher.io/ Etcher] is a OS image flasher built with node.js and Electron, capable of flashing an SDCard or USB drive. It protects you from accidentally writing to your hard-drives and ensures every byte of data was written correctly. There are 6 related packages in the AUR.<br />
<br />
==== In Windows ====<br />
<br />
===== Using Rufus =====<br />
<br />
[https://rufus.akeo.ie/ Rufus] is a multi-purpose USB ISO writer. Simply select the Arch Linux ISO, the USB drive you want to create the bootable Arch Linux onto and click ''START''.<br />
<br />
Since Rufus does not care if the drive is properly formatted or not and provides a GUI it may be the easiest and most robust tool to use.<br />
<br />
{{Note|The image has to be transferred in '''DD Image mode'''.<br />
* For Rufus version ≥ 3.0 select ''GPT'' from the ''Partition scheme'' drop-down menu. After clicking ''START'' you will get the mode selection dialog, select ''DD Image mode''.<br />
* For Rufus version < 3.0 select ''DD Image'' mode from the drop-down menu on the bottom.<br />
}}<br />
<br />
===== Using USBwriter =====<br />
<br />
This method does not require any workaround and is as straightforward as {{ic|dd}} under Linux. Just download the Arch Linux ISO, and with local administrator rights use the [https://sourceforge.net/p/usbwriter/wiki/Documentation/ USBwriter] utility to write to your USB flash memory.<br />
<br />
===== Using win32diskimager =====<br />
<br />
[https://sourceforge.net/projects/win32diskimager/ win32diskimager] is another graphical USB iso writing tool for Windows. Simply select your iso image and the target USB drive letter (you may have to format it first to assign it a drive letter), and click Write. <br />
<br />
===== Using Cygwin =====<br />
<br />
Make sure your [https://www.cygwin.com/ Cygwin] installation contains the {{ic|dd}} package.<br />
<br />
{{Tip|If you do not want to install Cygwin, you can download {{ic|dd}} for Windows from [http://www.chrysocome.net/dd here]. See the next section for more information.}}<br />
<br />
Place your image file in your home directory:<br />
<br />
C:\cygwin\home\John\<br />
<br />
Run cygwin as administrator (required for cygwin to access hardware). To write to your USB drive use the following command:<br />
<br />
dd if=image.iso of=\\.\'''x''': bs=4M<br />
<br />
where image.iso is the path to the iso image file within the {{ic|cygwin}} directory and {{ic|\\.\'''x''':}} is your USB flash drive where {{ic|'''x'''}} is the windows designated letter, e.g. {{ic|\\.\d:}}.<br />
<br />
On Cygwin 6.0, find out the correct partition with:<br />
<br />
cat /proc/partitions<br />
<br />
and write the ISO image with the information from the output. Example:<br />
<br />
{{Warning|This will irrevocably delete all files on your USB flash drive, so make sure you do not have any important files on the flash drive before doing this.}}<br />
<br />
dd if=image.iso of=/dev/sdb bs=4M<br />
<br />
===== dd for Windows =====<br />
<br />
A GPL licensed dd version for Windows is available at http://www.chrysocome.net/dd. The advantage of this over Cygwin is a smaller download. Use it as shown in instructions for Cygwin above.<br />
<br />
To begin, download the latest version of dd for Windows. Once downloaded, extract the archive's contents into Downloads or elsewhere.<br />
<br />
Now, launch your {{ic|command prompt}} as an administrator. Next, change directory ({{ic|cd}}) into the Downloads directory.<br />
<br />
If your Arch Linux ISO is elsewhere you may need to state the full path, for convenience you may wish to put the Arch Linux ISO into the same folder as the dd executable. The basic format of the command will look like this.<br />
<br />
# dd if=''archlinux-2017-XX-YY-x86_64.iso'' od=\\.\''x'': bs=4M<br />
<br />
{{Note|The Windows drive letters are linked to a partition. To allow selecting the entire disk, ''dd for Windows'' provides the {{ic|od}} parameter, which is used in the commands above. Note however that this parameter is specific to ''dd for Windows'' and cannot be found in other implementations of ''dd''.}}<br />
<br />
{{Warning|Because the {{ic|od}} is used, all partitions on the selected disk will be destroyed. Be absolutely sure that you are directing dd to the correct drive before executing.}}<br />
<br />
Simply replace the various null spots (indicated by an "x") with the correct date and correct drive letter. Here is a complete example.<br />
<br />
# dd if=ISOs\archlinux-2017.04.01-x86_64.iso od=\\.\d: bs=4M<br />
<br />
{{Accuracy|The following note may be invalid, the [http://www.chrysocome.net/dd upstream documentation] does not mention anything related to ''PhysicalDrive''.|section=dd for windows}}<br />
<br />
{{Note|Alternatively, replace the drive letter with {{ic|\\.\PhysicalDrive''X''}}, where {{ic|''X''}} is the physical drive number (starts from 0). Example:<br />
{{bc|1=# dd if=ISOs\archlinux-2017.04.01-x86_64.iso of=\\.\PhysicalDrive1 bs=4M}}<br />
You can find out the physical drive number by typing {{ic|wmic diskdrive list brief}} at the command prompt or with {{ic|dd --list}}<br />
Any Explorer window must be closed or dd will report an error.}}<br />
<br />
==== In macOS ====<br />
<br />
First, you need to identify the USB device. Open {{ic|/Applications/Utilities/Terminal}} and list all storage devices with the command:<br />
<br />
$ diskutil list<br />
<br />
Your USB device will appear as something like {{ic|/dev/disk2 (external, physical)}}. Verify that this is the device you want to erase by checking its name and size and then use its identifier for the commands below instead of /dev/diskX.<br />
<br />
A USB device is normally auto-mounted in macOS, and you have to unmount (not eject) it before block-writing to it with {{ic|dd}}. In Terminal, do:<br />
<br />
$ diskutil unmountDisk /dev/diskX<br />
<br />
Now copy the ISO image file to the device. The {{ic|dd}} command is similar to its Linux counterpart, but notice the 'r' before 'disk' for raw mode which makes the transfer much faster:<br />
<br />
# dd if=path/to/arch.iso of=/dev/'''r'''diskX bs=1m<br />
<br />
Note {{ic|diskX}} here should not include the {{ic|s1}} suffix, or else the USB device will only be bootable in UEFI mode and not legacy. After completion, macOS may complain that "The disk you inserted was not readable by this computer". Select 'Ignore'. The USB device will be bootable.<br />
<br />
=== Using manual formatting===<br />
<br />
==== In GNU/Linux ====<br />
<br />
This method is more complicated than writing the image directly with {{ic|dd}}, but it does keep the flash drive usable for data storage (that is, the ISO is installed in a specific partition within the already [[Partitioning|partitioned device]] without altering other partitions).<br />
<br />
{{Note|Here, we will denote the targeted partition as {{ic|/dev/sd'''Xn'''}}. In any of the following commands, adjust '''X''' and '''n''' according to your system.}}<br />
<br />
* Make sure that the {{Pkg|syslinux}} package is installed on the system. <br />
* If not done yet, create the partition table and/or partition on the device before continuing. The partition {{ic|/dev/sd'''Xn'''}} must be formatted to [[FAT32]].<br />
* Mount the ISO image, mount the FAT32 filesystem located in the USB flash device, and copy the contents of the ISO image to it. Then unmount the ISO image, but keep the FAT32 partition mounted (this will be used in subsequent steps). Eg:<br />
<br />
# mkdir -p /mnt/{iso,usb}<br />
# mount -o loop archlinux-2019.01.01-x86_64.iso /mnt/iso<br />
# mount /dev/sd'''Xn''' /mnt/usb<br />
# cp -a /mnt/iso/* /mnt/usb<br />
# sync<br />
# umount /mnt/iso<br />
<br />
To boot either a label or an [[UUID]] to select the partition to boot from is required. By default the label {{ic|ARCH_2019'''XX'''}} (with the appropriate release month) is used. Thus, the partition’s label has to be set accordingly, for example using ''gparted''. Alternatively, you can change this behaviour by altering the lines ending by {{ic|1=archisolabel=ARCH_2019'''XX'''}} in the file {{ic|/mnt/usb/arch/boot/syslinux/archiso_sys.cfg}} (for BIOS boot), and in {{ic|/mnt/usb/loader/entries/archiso-x86_64.conf}} (for UEFI boot). To use an UUID instead, replace those portions of lines with {{ic|1=archiso''device''=/dev/disk/by-uuid/'''YOUR-UUID'''}}. The UUID can be retrieved with {{ic|1=blkid -o value -s UUID /dev/sd'''Xn'''}}.<br />
<br />
{{Warning|Mismatching labels or wrong UUID prevents booting from the created medium.}}<br />
<br />
Syslinux is already preinstalled in {{ic|/mnt/usb/arch/boot/syslinux}}. Install it completely to that folder by following [[Syslinux#Manual install]].<br />
<br />
==== In Windows ====<br />
<br />
{{Note|<br />
* For manual formatting, do not use any '''Bootable USB Creator utility''' for creating the UEFI bootable USB. For manual formatting, do not use ''dd for Windows'' to dd the ISO to the USB drive either.<br />
* In the below commands, '''X:''' is assumed to be the USB flash drive in Windows.<br />
* Windows uses backward slash {{ic|\}} as path-separator, so the same is used in the below commands.<br />
* All commands should be run in Windows command prompt '''as administrator'''.<br />
* {{ic|>}} denotes the Windows command prompt.<br />
}}<br />
<br />
* Partition and format the USB drive using [https://rufus.akeo.ie/ Rufus USB partitioner]. Select partition scheme option as '''MBR for BIOS and UEFI''' and File system as '''FAT32'''. Uncheck "Create a bootable disk using ISO image" and "Create extended label and icon files" options.<br />
* Change the '''Volume Label''' of the USB flash drive {{ic|X:}} to match the LABEL mentioned in the {{ic|1=archisolabel=}} part in {{ic|<ISO>\loader\entries\archiso-x86_64.conf}}. This step is required for Official ISO ([[Archiso]]). This step can be also performed using Rufus, during the prior "partition and format" step.<br />
* Extract the ISO (similar to extracting ZIP archive) to the USB flash drive using [https://www.7-zip.org/ 7-Zip]. <br />
* Download official Syslinux 6.xx binaries (zip file) from https://www.kernel.org/pub/linux/utils/boot/syslinux/ and extract it. The version of Syslinux should be the same version used in the ISO image.<br />
<br />
* Run the following command (in Windows cmd prompt, as admin):<br />
<br />
> cd bios\<br />
> for /r %Y in (*.c32) do copy "%Y" "X:\arch\boot\syslinux\" /y<br />
> copy mbr\*.bin X:\arch\boot\syslinux\ /y<br />
<br />
* Install Syslinux to the USB by running (use {{ic|win64\syslinux64.exe}} for x64 Windows):<br />
<br />
> cd bios\<br />
> win32\syslinux.exe -d /arch/boot/syslinux -i -a -m X:<br />
<br />
{{Note|<br />
* The above step installs Syslinux's {{ic|ldlinux.sys}} to the VBR of the USB partition, sets the partition as "active/boot" in the MBR partition table and writes the MBR boot code to the 1st 440-byte boot code region of the USB.<br />
* The {{ic|-d}} switch expects a path with forward slash path-separator like in *unix systems.<br />
}}<br />
<br />
== Other methods for BIOS systems ==<br />
<br />
=== In GNU/Linux ===<br />
<br />
==== Using a multiboot USB drive ====<br />
<br />
This allows booting multiple ISOs from a single USB device, including the archiso. Updating an existing USB drive to a more recent ISO is simpler than for most other methods. See [[Multiboot USB drive]].<br />
<br />
==== Using GNOME Disk Utility ====<br />
<br />
Linux distributions running GNOME can easily make a live CD through {{Pkg|nautilus}} and {{Pkg|gnome-disk-utility}}. Simply right-click on the ''.iso'' file, and select ''Open With Disk Image Writer''. When GNOME Disk Utility opens, specify the flash drive from the ''Destination'' drop-down menu and click ''Start Restoring''.<br />
<br />
==== Making a USB-ZIP drive ====<br />
<br />
For some old BIOS systems, only booting from USB-ZIP drives is supported. This method allows you to still boot from a USB-HDD drive.<br />
<br />
{{Warning|This will destroy all information on your USB flash drive!}}<br />
<br />
* Download {{Pkg|syslinux}} and {{Pkg|mtools}} from the official repositories.<br />
* Find your usb drive with {{ic|lsblk}}.<br />
* Type {{ic|mkdiskimage -4 /dev/sd'''x''' 0 64 32}} (replace x with the letter of your drive). This will take a while.<br />
<br />
From here continue with the manual formatting method. The partition will be {{ic|/dev/sd'''x'''4}} due to the way ZIP drives work.<br />
<br />
{{Note|Do not format the drive as FAT32; keep it as FAT16.}}<br />
<br />
==== Using UNetbootin ====<br />
<br />
UNetbootin can be used on any Linux distribution or Windows to copy your iso to a USB device. However, Unetbootin overwrites {{ic|syslinux.cfg}}, so it creates a USB device that does not boot properly. For this reason, '''Unetbootin is not recommended''' -- please use {{ic|dd}} or one of the other methods discussed in this topic.<br />
<br />
{{Warning|UNetbootin writes over the default {{ic|syslinux.cfg}}; this must be restored before the USB device will boot properly.}}<br />
<br />
Edit {{ic|syslinux.cfg}}:<br />
<br />
{{hc|sysconfig.cfg|2=<br />
default menu.c32<br />
prompt 0<br />
menu title Archlinux Installer<br />
timeout 100<br />
<br />
label unetbootindefault<br />
menu label Archlinux_x86_64<br />
kernel /arch/boot/x86_64/vmlinuz<br />
append initrd=/arch/boot/x86_64/archiso.img archisodevice=/dev/sd'''x1''' ../../<br />
}}<br />
<br />
In {{ic|/dev/sd'''x1'''}} you must replace '''x''' with the first free letter after the last letter in use on the system where you are installing Arch Linux (e.g. if you have two hard drives, use {{ic|c}}.). You can make this change during the first phase of boot by pressing {{ic|Tab}} when the menu is shown.<br />
<br />
=== In Windows ===<br />
<br />
==== The Flashnul way ====<br />
<br />
[https://translate.google.com/translate?hl=&sl=ru&tl=en&u=http%3A%2F%2Fshounen.ru%2Fsoft%2Fflashnul%2Freadme.rus.html&sandbox=1 flashnul] is an utility to verify the functionality and maintenance of Flash-Memory (USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash etc).<br />
<br />
From a command prompt, invoke flashnul with {{ic|-p}}, and determine which device index is your USB drive, e.g.:<br />
<br />
{{hc|C:\>flashnul -p|<br />
Avaible physical drives:<br />
Avaible logical disks:<br />
C:\<br />
D:\<br />
E:\<br />
}}<br />
<br />
When you have determined which device is the correct one, you can write the image to your drive, by invoking flashnul with the device index, {{ic|-L}}, and the path to your image, e.g:<br />
<br />
C:\>flashnul '''E:''' -L ''path\to\arch.iso''<br />
<br />
As long as you are really sure you want to write the data, type yes, then wait a bit for it to write. If you get an access denied error, close any Explorer windows you have open.<br />
<br />
If under Vista or Win7, you should open the console as administrator, or else flashnul will fail to open the stick as a block device and will only be able to write via the drive handle windows provides<br />
<br />
{{Note|Confirmed that you need to use drive letter as opposed to number. flashnul 1rc1, Windows 7 x64.}}<br />
<br />
==== Loading the installation media from RAM ====<br />
<br />
{{Merge|Multiboot USB drive#Using Syslinux and memdisk|This is the same method, only Syslinux is installed from Windows. Considering that [[multiboot USB drive]] can be used to boot an installation media and it is already linked from the Related articles box at the top, maybe this section should be merged there?}}<br />
<br />
This method uses [[Syslinux]] and a [[Ramdisk]] ([https://www.syslinux.org/wiki/index.php/MEMDISK MEMDISK]) to load the entire Arch Linux ISO image into RAM. Since this will be running entirely from system memory, you will need to make sure the system you will be installing this on has an adequate amount. A minimum amount of RAM between 500 MB and 1 GB should suffice for a MEMDISK based, Arch Linux install.<br />
<br />
For more information on Arch Linux system requirements as well as those for MEMDISK see the [[Installation guide]] and [http://www.etherboot.org/wiki/bootingmemdisk#preliminaries here]. For reference, here is the [https://bbs.archlinux.org/viewtopic.php?id=135266 preceding forum thread].<br />
<br />
{{Tip|Once the installer has completed loading you can simply remove the USB stick and even use it on a different machine to start the process all over again. Utilizing MEMDISK also allows booting and installing Arch Linux to and from the same USB flash drive.}}<br />
<br />
===== Preparing the USB flash drive =====<br />
<br />
Begin by formatting the USB flash drive as '''FAT32'''. Then create the following folders on the newly formatted drive.<br />
<br />
* {{ic|Boot}}<br />
** {{ic|Boot/ISOs}}<br />
** {{ic|Boot/Settings}}<br />
<br />
===== Copy the needed files to the USB flash drive =====<br />
<br />
Next copy the ISO that you would like to boot to the {{ic|Boot/ISOs}} folder. After that, extract from the following files from the latest release of {{pkg|syslinux}} from [https://www.kernel.org/pub/linux/utils/boot/syslinux/ here] and copy them into the following folders.<br />
* {{ic|./win32/syslinux.exe}} to the Desktop or Downloads folder on your system.<br />
* {{ic|./memdisk/memdisk}} to the {{ic|Settings}} folder on your USB flash drive.<br />
<br />
===== Create the configuration file =====<br />
<br />
After copying the needed files, navigate to the USB flash drive, /boot/Settings and create a {{ic|syslinux.cfg}} file.<br />
<br />
{{Warning|On the {{ic|INITRD}} line, be sure to use the name of the ISO file that you copied to your {{ic|ISOs}} folder.}}<br />
<br />
{{hc|/Boot/Settings/syslinux.cfg|2=<br />
DEFAULT arch_iso<br />
<br />
LABEL arch_iso<br />
MENU LABEL Arch Setup<br />
LINUX memdisk<br />
INITRD /Boot/ISOs/archlinux-2017.04.01-x86_64.iso<br />
APPEND iso<br />
}}<br />
<br />
For more information on Syslinux see the [[Syslinux|Arch Wiki article]].<br />
<br />
===== Final steps =====<br />
<br />
Finally, create a {{ic|*.bat}} file where {{ic|syslinux.exe}} is located and run it ("Run as administrator" if you are on Vista or Windows 7):<br />
<br />
{{hc|C:\Documents and Settings\username\Desktop\install.bat|<br />
@echo off<br />
syslinux.exe -m -a -d /Boot/Settings X:<br />
}}<br />
<br />
== Troubleshooting ==<br />
<br />
* If you get the "device did not show up after 30 seconds" error due to the {{ic|/dev/disk/by-label/ARCH_XXXXYY}} not mounting, try renaming your USB media to {{ic|ARCH_XXXXYY}} (e.g. {{ic|ARCH_201501}}).<br />
* If you get errors, try using another USB device. There are case scenarios in which it solved all issues.<br />
<br />
== See also ==<br />
<br />
* [https://wiki.gentoo.org/wiki/LiveUSB/HOWTO Gentoo wiki - LiveUSB/HOWTO]<br />
* [https://fedoraproject.org/wiki/How_to_create_and_use_Live_USB Fedora wiki - How to create and use Live USB]<br />
* [https://en.opensuse.org/SDB:Live_USB_stick openSUSE wiki - SDB:Live USB stick]</div>Zannyhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=416935Unofficial user repositories2016-01-24T01:36:15Z<p>Zanny: /* gustawho */ No longer hosts firefox-kde-opensuse</p>
<hr />
<div>[[Category:Package management]]<br />
[[ja:非公式ユーザーリポジトリ]]<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/any<br />
# Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== pkgbuilder ====<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<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 />
<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.me/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 />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
SigLevel = Optional TrustedOnly<br />
Server = http://repo.archlinuxcn.org/$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 />
==== 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://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://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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-archiso]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-core]<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 />
See [[ArchHaskell#haskell-core]].<br />
<br />
==== haskell-happstack ====<br />
<br />
See [[ArchHaskell#haskell-happstack]].<br />
<br />
==== haskell-web ====<br />
<br />
See [[ArchHaskell#haskell-web]].<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== llvm-svn ====<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint <tt>D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525</tt><br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = http://repos.uni-plovdiv.net/archlinux/$repo/$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 />
==== miffe ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = http://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
==== nullptr_t ====<br />
<br />
* '''Maintainers:''' Sebastian Lau (nullptr_t), <br />
* '''Description:''' AUR packages that have a longer build time on some machines (e.g. {{AUR|veracrypt}} or [[plymouth]])<br />
* '''Key-ID:''' B4767A17CEC5B4E9<br />
<br />
{{bc|<nowiki><br />
[nullptr_t]<br />
Server = https://archlinux.0ptr.de/mirrors/$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 />
<br />
{{bc|<nowiki><br />
[pipelight]<br />
Server = http://repos.fds-team.de/stable/arch/$arch<br />
</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 />
==== tredaelli-systemd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#tredaelli Timothy Redaelli]<br />
* '''Description:''' systemd rebuilt with unofficial OpenVZ patch (kernel < 2.6.32-042stab111.1)<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|{{ic|[tredaelli-systemd]}} must be put before {{ic|[core]}} in {{ic|/etc/pacman.conf}}}}<br />
<br />
{{bc|<nowiki><br />
[tredaelli-systemd]<br />
Server = http://pkgbuild.com/~tredaelli/repo/systemd/$arch<br />
</nowiki>}}<br />
<br />
==== herecura ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = http://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== blackeagle-pre-community ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = http://repo.herecura.be/$repo/$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 />
==== 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 />
<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 />
==== cinnamon ====<br />
<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 />
<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 />
==== mesa-git ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<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 />
==== noware ====<br />
<br />
* '''Maintainer:''' Alexandru Thirtheu (alex_giusi_tiri2@yahoo.com) ([https://bbs.archlinux.org/profile.php?id=65036 Forums]) ([https://wiki.archlinux.org/index.php/User:AGT Wiki]) ([http://direct.noware.systems.:2 Web Site])<br />
* '''Description:''' Software which I prefer being present in a repository, than being compiled each time. It eases software maintenance, I find. Almost anything goes.<br />
<br />
{{bc|<nowiki><br />
[noware]<br />
Server = http://direct.$repo.systems.:2/repository/arch/$arch<br />
</nowiki>}}<br />
<br />
==== openrc-eudev ====<br />
<br />
* '''Maintainer:''' [[User:Aaditya|Aaditya]], [[User:Nous|Nous]]<br />
* '''Description:''' OpenRC and eudev packages, [[OpenRC#artoo|artoo's way]].<br />
{{bc|<nowiki><br />
[openrc-eudev]<br />
Server = http://downloads.sourceforge.net/project/archopenrc/$repo/$arch<br />
Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== oracle ====<br />
<br />
* '''Maintainer:''' [[User:Malvineous|Malvineous]]<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 />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<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; i.e. linux-pf[-cpu] and linux-pf-lts[-cpu]. Also, openrc and initscripts-openrc.<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://bit.do/linux-pf<br />
<br />
{{bc|<nowiki><br />
[pfkernel]<br />
Server = http://dl.dropbox.com/u/11734958/$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-for-Arch ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== Unity-for-Arch-Extra ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] extra packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch-Extra]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== home_tarakbumba_archlinux_Arch_Extra_standard ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains a few pre-built AUR packages (zemberek, 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 />
<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.duckdns.org/repo/gruppenpest.gpg<br />
<br />
{{bc|<nowiki><br />
[eee-ck]<br />
Server = http://zembla.duckdns.org/repo<br />
</nowiki>}}<br />
<br />
==== phillid ====<br />
<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 />
==== 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:''' Ivan Koryabkin ([https://aur.archlinux.org/account/apathism/ apathism])<br />
* '''Upstream page:''' https://apathism.net/<br />
* '''Description:''' Some AUR packages like {{AUR|psi-plus-git}} (with qt5 enabled).<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 />
==== ashleyis ====<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
==== atom ====<br />
<br />
* '''Maintainer:''' Nicola Squartini ([https://github.com/tensor5 tensor5])<br />
* '''Upstream page:''' https://github.com/tensor5/arch-atom<br />
* '''Description:''' Atom text editor and Electron<br />
* '''Key-ID:''' B0544167<br />
<br />
{{bc|<nowiki><br />
[atom]<br />
Server = http://noaxiom.org/$repo/$arch<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 />
==== blackleg ====<br />
<br />
* '''Maintainer:''' Blackleg ([https://aur.archlinux.org/account/blackleg blackleg])<br />
* '''Upstream page:''' [http://www.blackleg.es www.blackleg.es]<br />
* '''Description:''' My AUR's packages and some like: linux-w110er, nvidia-dkms, android-studio, odoo (OpenErp).<br />
* '''Package list:''' [http://www.blackleg.es/x86_64/index.html Blackleg x86_64 packages]<br />
* '''Key-ID:''' 611BFDE1<br />
<br />
{{bc|<nowiki><br />
[blackleg]<br />
Server = ftp://ftp.blackleg.es/archlinux/$repo/$arch/<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.degenerazione.xyz/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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== eatabrick ====<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
SigLevel = Required<br />
Server = http://repo.eatabrick.org/$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 />
==== gustawho ====<br />
<br />
* '''Maintainer:''' [https://twitter.com/gustawho Gustavo Castro] <gustawho@gmail.com><br />
* '''Description:''' Scientific tools (mostly physics/math) and AUR packages that would take long to build.<br />
* '''Package list:''' http://gustawho.x10.mx/repo/x86_64<br />
* '''Upstream page:''' http://gustawho.x10.mx<br />
* '''Key-ID:''' 2C575D76<br />
<br />
{{bc|<nowiki><br />
[gustawho]<br />
Server = http://gustawho.x10.mx/repo/x86_64<br />
</nowiki>}}<br />
<br />
* '''Note:''' If you need firefox-kde-opensuse for i686 and/or the unsigned x86_64 package, try this repo instead:<br />
<br />
{{bc|<nowiki><br />
[home_gustawho_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/gustawho/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== holo ====<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
==== Linux-pf ====<br />
<br />
{{Accuracy|Signed repositories should not use {{ic|1=SigLevel = Optional}} (by definition).}}<br />
<br />
* '''Maintainer:''' [[User:Thaodan|Thaodan]]<br />
* '''Description:''' Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, Aufs3; i.e. linux-pf, just like {{AUR|linux-pf}} from the [[AUR]] but additionally optimized for intel CPUs Sandy Bridge, Ivy Bridge, Haswell and generic of course, and some extra packages<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).<br />
<br />
{{bc|<nowiki><br />
[Linux-pf]<br />
Server = https://dl.dropboxusercontent.com/u/172590784/Linux-pf/x86_64/<br />
SigLevel = Optional<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 />
==== kc9ydn ====<br />
<br />
* '''Maintainer:''' [http://kc9ydn.us KC9YDN]<br />
* '''Description:''' Consists mostly of amateur radio related apps<br />
* '''Key-ID:''' 7DA25A0F<br />
<br />
{{bc|<nowiki><br />
[kc9ydn]<br />
Server = http://kc9ydn.us/repo/<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 />
==== markzz ====<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages to maintain a Debian package repository.<br />
* '''Sources:''' http://git.markzz.net/markzz/repositories/markzz.git/tree<br />
* '''Key ID:''' 3CADDFDD<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = http://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== openrc ====<br />
<br />
* '''Maintainer:''' [http://www.autistici.org/arch-openrc/ jaco]<br />
* '''Description:''' All packages to run OpenRC on a x86_64 machine, using Manjaro PKGBUILDS.<br />
* '''Sources:''' https://github.com/manjaro/packages-openrc<br />
* '''Key ID:''' 8C51F416<br />
* '''Keyfile:''' http://www.autistici.org/arch-openrc/jacopo.asc<br />
<br />
{{bc|<nowiki><br />
[openrc]<br />
Server = http://www.autistici.org/arch-openrc/repo/<br />
</nowiki>}}<br />
<br />
==== qt-debug ====<br />
<br />
* '''Maintainer:''' [http://blog.the-compiler.org/?page_id=36 The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/The-Compiler/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = http://qutebrowser.org/qt-debug/$arch<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 />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
# report issues at https://github.com/anatol/quarry<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== rstudio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/unikum/ Artem Klevtsov]<br />
* '''Description:''' Rstudio IDE package (git version) and depends.<br />
* '''Key-ID:''' 1CB48DD4<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = http://repo.psylab.info/archlinux/x86_64/<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 />
=== 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 />
==== 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 />
==== mazdlc ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Various packages maintained by maz-1 (mainly Qt5-based packages and multimedia-related packages )<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-deadbeef-plugins ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Plugins for the feature-rich music player DeaDBeeF.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_deadbeef-plugins_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/deadbeef-plugins/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-kde-frameworks-5 ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Unstable packages based on kde frameworks 5.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_kde-frameworks-5_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/kde-frameworks-5/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mikroskeem ====<br />
<br />
* '''Maintainer:''' mikroskeem <mikroskeem@mikroskeem.eu><br />
* '''Description:''' Openarena and i3 wm-related packages<br />
<br />
{{bc|<nowiki><br />
[mikroskeem]<br />
Server = http://nightsnack.cf/~mark/arch-pkgs<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ant32 Philip] and [https://aur.archlinux.org/account/nic96 Jeromy] Reimer<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR updated every 8 hours.<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
#Server = http://amr.linuxd.org/archlinux/$repo/os/$arch<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 />
==== 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 />
==== rightlink ====<br />
<br />
* '''Maintainer:''' Chris Fordham <chris@fordham-nagy.id.au><br />
* '''Description:''' RightLink version 10 (RL10) is a new version of RightScale's server agent that connects servers managed through RightScale to the RightScale cloud management platform.<br />
<br />
{{bc|<nowiki><br />
[rightlink]<br />
Server = https://s3-ap-southeast-2.amazonaws.com/archlinux.rightscale.me/repo<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 />
==== zrootfs ====<br />
<br />
* '''Maintainer:''' Isabell Cowan <isabellcowan@gmail.com><br />
* '''Description:''' For Haswell architecture processors with size in mind.<br />
<br />
{{bc|<nowiki><br />
[zrootfs]<br />
Server = http://www.izzette.com/izzi/zrootfs<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>}}<br />
<br />
== armv7h only ==<br />
<br />
=== Unsigned ===<br />
<br />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' [http://pietma.com/tag/aur/ http://pietma.com/tag/aur/]<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}</div>Zannyhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=416934Unofficial user repositories2016-01-24T01:34:10Z<p>Zanny: /* home_tarakbumba_archlinux_Arch_Extra_standard */ Hasn't kept firefox-kde updated.</p>
<hr />
<div>[[Category:Package management]]<br />
[[ja:非公式ユーザーリポジトリ]]<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/any<br />
# Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== pkgbuilder ====<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<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 />
<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.me/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 />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
SigLevel = Optional TrustedOnly<br />
Server = http://repo.archlinuxcn.org/$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 />
==== 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://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://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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-archiso]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-core]<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 />
See [[ArchHaskell#haskell-core]].<br />
<br />
==== haskell-happstack ====<br />
<br />
See [[ArchHaskell#haskell-happstack]].<br />
<br />
==== haskell-web ====<br />
<br />
See [[ArchHaskell#haskell-web]].<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== llvm-svn ====<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint <tt>D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525</tt><br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = http://repos.uni-plovdiv.net/archlinux/$repo/$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 />
==== miffe ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = http://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
==== nullptr_t ====<br />
<br />
* '''Maintainers:''' Sebastian Lau (nullptr_t), <br />
* '''Description:''' AUR packages that have a longer build time on some machines (e.g. {{AUR|veracrypt}} or [[plymouth]])<br />
* '''Key-ID:''' B4767A17CEC5B4E9<br />
<br />
{{bc|<nowiki><br />
[nullptr_t]<br />
Server = https://archlinux.0ptr.de/mirrors/$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 />
<br />
{{bc|<nowiki><br />
[pipelight]<br />
Server = http://repos.fds-team.de/stable/arch/$arch<br />
</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 />
==== tredaelli-systemd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#tredaelli Timothy Redaelli]<br />
* '''Description:''' systemd rebuilt with unofficial OpenVZ patch (kernel < 2.6.32-042stab111.1)<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|{{ic|[tredaelli-systemd]}} must be put before {{ic|[core]}} in {{ic|/etc/pacman.conf}}}}<br />
<br />
{{bc|<nowiki><br />
[tredaelli-systemd]<br />
Server = http://pkgbuild.com/~tredaelli/repo/systemd/$arch<br />
</nowiki>}}<br />
<br />
==== herecura ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = http://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== blackeagle-pre-community ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = http://repo.herecura.be/$repo/$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 />
==== 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 />
<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 />
==== cinnamon ====<br />
<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 />
<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 />
==== mesa-git ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<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 />
==== noware ====<br />
<br />
* '''Maintainer:''' Alexandru Thirtheu (alex_giusi_tiri2@yahoo.com) ([https://bbs.archlinux.org/profile.php?id=65036 Forums]) ([https://wiki.archlinux.org/index.php/User:AGT Wiki]) ([http://direct.noware.systems.:2 Web Site])<br />
* '''Description:''' Software which I prefer being present in a repository, than being compiled each time. It eases software maintenance, I find. Almost anything goes.<br />
<br />
{{bc|<nowiki><br />
[noware]<br />
Server = http://direct.$repo.systems.:2/repository/arch/$arch<br />
</nowiki>}}<br />
<br />
==== openrc-eudev ====<br />
<br />
* '''Maintainer:''' [[User:Aaditya|Aaditya]], [[User:Nous|Nous]]<br />
* '''Description:''' OpenRC and eudev packages, [[OpenRC#artoo|artoo's way]].<br />
{{bc|<nowiki><br />
[openrc-eudev]<br />
Server = http://downloads.sourceforge.net/project/archopenrc/$repo/$arch<br />
Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== oracle ====<br />
<br />
* '''Maintainer:''' [[User:Malvineous|Malvineous]]<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 />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<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; i.e. linux-pf[-cpu] and linux-pf-lts[-cpu]. Also, openrc and initscripts-openrc.<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://bit.do/linux-pf<br />
<br />
{{bc|<nowiki><br />
[pfkernel]<br />
Server = http://dl.dropbox.com/u/11734958/$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-for-Arch ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== Unity-for-Arch-Extra ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] extra packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch-Extra]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== home_tarakbumba_archlinux_Arch_Extra_standard ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains a few pre-built AUR packages (zemberek, 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 />
<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.duckdns.org/repo/gruppenpest.gpg<br />
<br />
{{bc|<nowiki><br />
[eee-ck]<br />
Server = http://zembla.duckdns.org/repo<br />
</nowiki>}}<br />
<br />
==== phillid ====<br />
<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 />
==== 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:''' Ivan Koryabkin ([https://aur.archlinux.org/account/apathism/ apathism])<br />
* '''Upstream page:''' https://apathism.net/<br />
* '''Description:''' Some AUR packages like {{AUR|psi-plus-git}} (with qt5 enabled).<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 />
==== ashleyis ====<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
==== atom ====<br />
<br />
* '''Maintainer:''' Nicola Squartini ([https://github.com/tensor5 tensor5])<br />
* '''Upstream page:''' https://github.com/tensor5/arch-atom<br />
* '''Description:''' Atom text editor and Electron<br />
* '''Key-ID:''' B0544167<br />
<br />
{{bc|<nowiki><br />
[atom]<br />
Server = http://noaxiom.org/$repo/$arch<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 />
==== blackleg ====<br />
<br />
* '''Maintainer:''' Blackleg ([https://aur.archlinux.org/account/blackleg blackleg])<br />
* '''Upstream page:''' [http://www.blackleg.es www.blackleg.es]<br />
* '''Description:''' My AUR's packages and some like: linux-w110er, nvidia-dkms, android-studio, odoo (OpenErp).<br />
* '''Package list:''' [http://www.blackleg.es/x86_64/index.html Blackleg x86_64 packages]<br />
* '''Key-ID:''' 611BFDE1<br />
<br />
{{bc|<nowiki><br />
[blackleg]<br />
Server = ftp://ftp.blackleg.es/archlinux/$repo/$arch/<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.degenerazione.xyz/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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== eatabrick ====<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
SigLevel = Required<br />
Server = http://repo.eatabrick.org/$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 />
==== gustawho ====<br />
<br />
* '''Maintainer:''' [https://twitter.com/gustawho Gustavo Castro] <gustawho@gmail.com><br />
* '''Description:''' Scientific tools (mostly physics/math) and AUR packages that would take long to build, such as {{AUR|firefox-kde-opensuse}}.<br />
* '''Package list:''' http://gustawho.x10.mx/repo/x86_64<br />
* '''Upstream page:''' http://gustawho.x10.mx<br />
* '''Key-ID:''' 2C575D76<br />
<br />
{{bc|<nowiki><br />
[gustawho]<br />
Server = http://gustawho.x10.mx/repo/x86_64<br />
</nowiki>}}<br />
<br />
* '''Note:''' If you need firefox-kde-opensuse for i686 and/or the unsigned x86_64 package, try this repo instead:<br />
<br />
{{bc|<nowiki><br />
[home_gustawho_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/gustawho/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== holo ====<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
==== Linux-pf ====<br />
<br />
{{Accuracy|Signed repositories should not use {{ic|1=SigLevel = Optional}} (by definition).}}<br />
<br />
* '''Maintainer:''' [[User:Thaodan|Thaodan]]<br />
* '''Description:''' Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, Aufs3; i.e. linux-pf, just like {{AUR|linux-pf}} from the [[AUR]] but additionally optimized for intel CPUs Sandy Bridge, Ivy Bridge, Haswell and generic of course, and some extra packages<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).<br />
<br />
{{bc|<nowiki><br />
[Linux-pf]<br />
Server = https://dl.dropboxusercontent.com/u/172590784/Linux-pf/x86_64/<br />
SigLevel = Optional<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 />
==== kc9ydn ====<br />
<br />
* '''Maintainer:''' [http://kc9ydn.us KC9YDN]<br />
* '''Description:''' Consists mostly of amateur radio related apps<br />
* '''Key-ID:''' 7DA25A0F<br />
<br />
{{bc|<nowiki><br />
[kc9ydn]<br />
Server = http://kc9ydn.us/repo/<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 />
==== markzz ====<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages to maintain a Debian package repository.<br />
* '''Sources:''' http://git.markzz.net/markzz/repositories/markzz.git/tree<br />
* '''Key ID:''' 3CADDFDD<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = http://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== openrc ====<br />
<br />
* '''Maintainer:''' [http://www.autistici.org/arch-openrc/ jaco]<br />
* '''Description:''' All packages to run OpenRC on a x86_64 machine, using Manjaro PKGBUILDS.<br />
* '''Sources:''' https://github.com/manjaro/packages-openrc<br />
* '''Key ID:''' 8C51F416<br />
* '''Keyfile:''' http://www.autistici.org/arch-openrc/jacopo.asc<br />
<br />
{{bc|<nowiki><br />
[openrc]<br />
Server = http://www.autistici.org/arch-openrc/repo/<br />
</nowiki>}}<br />
<br />
==== qt-debug ====<br />
<br />
* '''Maintainer:''' [http://blog.the-compiler.org/?page_id=36 The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/The-Compiler/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = http://qutebrowser.org/qt-debug/$arch<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 />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
# report issues at https://github.com/anatol/quarry<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== rstudio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/unikum/ Artem Klevtsov]<br />
* '''Description:''' Rstudio IDE package (git version) and depends.<br />
* '''Key-ID:''' 1CB48DD4<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = http://repo.psylab.info/archlinux/x86_64/<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 />
=== 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 />
==== 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 />
==== mazdlc ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Various packages maintained by maz-1 (mainly Qt5-based packages and multimedia-related packages )<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-deadbeef-plugins ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Plugins for the feature-rich music player DeaDBeeF.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_deadbeef-plugins_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/deadbeef-plugins/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-kde-frameworks-5 ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Unstable packages based on kde frameworks 5.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_kde-frameworks-5_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/kde-frameworks-5/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mikroskeem ====<br />
<br />
* '''Maintainer:''' mikroskeem <mikroskeem@mikroskeem.eu><br />
* '''Description:''' Openarena and i3 wm-related packages<br />
<br />
{{bc|<nowiki><br />
[mikroskeem]<br />
Server = http://nightsnack.cf/~mark/arch-pkgs<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ant32 Philip] and [https://aur.archlinux.org/account/nic96 Jeromy] Reimer<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR updated every 8 hours.<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
#Server = http://amr.linuxd.org/archlinux/$repo/os/$arch<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 />
==== 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 />
==== rightlink ====<br />
<br />
* '''Maintainer:''' Chris Fordham <chris@fordham-nagy.id.au><br />
* '''Description:''' RightLink version 10 (RL10) is a new version of RightScale's server agent that connects servers managed through RightScale to the RightScale cloud management platform.<br />
<br />
{{bc|<nowiki><br />
[rightlink]<br />
Server = https://s3-ap-southeast-2.amazonaws.com/archlinux.rightscale.me/repo<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 />
==== zrootfs ====<br />
<br />
* '''Maintainer:''' Isabell Cowan <isabellcowan@gmail.com><br />
* '''Description:''' For Haswell architecture processors with size in mind.<br />
<br />
{{bc|<nowiki><br />
[zrootfs]<br />
Server = http://www.izzette.com/izzi/zrootfs<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>}}<br />
<br />
== armv7h only ==<br />
<br />
=== Unsigned ===<br />
<br />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' [http://pietma.com/tag/aur/ http://pietma.com/tag/aur/]<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}</div>Zannyhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=416933Unofficial user repositories2016-01-24T01:29:31Z<p>Zanny: Mega's Arch repo is gone - you can check https://mega.co.nz/linux/MEGAsync/ to verify</p>
<hr />
<div>[[Category:Package management]]<br />
[[ja:非公式ユーザーリポジトリ]]<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/any<br />
# Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== pkgbuilder ====<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<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 />
<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.me/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 />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
SigLevel = Optional TrustedOnly<br />
Server = http://repo.archlinuxcn.org/$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 />
==== 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://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://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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-archiso]<br />
Server = http://demizerone.com/$repo/$arch<br />
</nowiki>}}<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:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[demz-repo-core]<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 />
See [[ArchHaskell#haskell-core]].<br />
<br />
==== haskell-happstack ====<br />
<br />
See [[ArchHaskell#haskell-happstack]].<br />
<br />
==== haskell-web ====<br />
<br />
See [[ArchHaskell#haskell-web]].<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 />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== llvm-svn ====<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint <tt>D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525</tt><br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = http://repos.uni-plovdiv.net/archlinux/$repo/$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 />
==== miffe ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = http://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
==== nullptr_t ====<br />
<br />
* '''Maintainers:''' Sebastian Lau (nullptr_t), <br />
* '''Description:''' AUR packages that have a longer build time on some machines (e.g. {{AUR|veracrypt}} or [[plymouth]])<br />
* '''Key-ID:''' B4767A17CEC5B4E9<br />
<br />
{{bc|<nowiki><br />
[nullptr_t]<br />
Server = https://archlinux.0ptr.de/mirrors/$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 />
<br />
{{bc|<nowiki><br />
[pipelight]<br />
Server = http://repos.fds-team.de/stable/arch/$arch<br />
</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 />
==== tredaelli-systemd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#tredaelli Timothy Redaelli]<br />
* '''Description:''' systemd rebuilt with unofficial OpenVZ patch (kernel < 2.6.32-042stab111.1)<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|{{ic|[tredaelli-systemd]}} must be put before {{ic|[core]}} in {{ic|/etc/pacman.conf}}}}<br />
<br />
{{bc|<nowiki><br />
[tredaelli-systemd]<br />
Server = http://pkgbuild.com/~tredaelli/repo/systemd/$arch<br />
</nowiki>}}<br />
<br />
==== herecura ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = http://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== blackeagle-pre-community ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = http://repo.herecura.be/$repo/$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 />
==== 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 />
<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 />
==== cinnamon ====<br />
<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 />
<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 />
==== mesa-git ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<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 />
==== noware ====<br />
<br />
* '''Maintainer:''' Alexandru Thirtheu (alex_giusi_tiri2@yahoo.com) ([https://bbs.archlinux.org/profile.php?id=65036 Forums]) ([https://wiki.archlinux.org/index.php/User:AGT Wiki]) ([http://direct.noware.systems.:2 Web Site])<br />
* '''Description:''' Software which I prefer being present in a repository, than being compiled each time. It eases software maintenance, I find. Almost anything goes.<br />
<br />
{{bc|<nowiki><br />
[noware]<br />
Server = http://direct.$repo.systems.:2/repository/arch/$arch<br />
</nowiki>}}<br />
<br />
==== openrc-eudev ====<br />
<br />
* '''Maintainer:''' [[User:Aaditya|Aaditya]], [[User:Nous|Nous]]<br />
* '''Description:''' OpenRC and eudev packages, [[OpenRC#artoo|artoo's way]].<br />
{{bc|<nowiki><br />
[openrc-eudev]<br />
Server = http://downloads.sourceforge.net/project/archopenrc/$repo/$arch<br />
Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== oracle ====<br />
<br />
* '''Maintainer:''' [[User:Malvineous|Malvineous]]<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 />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<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; i.e. linux-pf[-cpu] and linux-pf-lts[-cpu]. Also, openrc and initscripts-openrc.<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://bit.do/linux-pf<br />
<br />
{{bc|<nowiki><br />
[pfkernel]<br />
Server = http://dl.dropbox.com/u/11734958/$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-for-Arch ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== Unity-for-Arch-Extra ====<br />
<br />
* '''Maintainer:''' https://github.com/chenxiaolong<br />
* '''Description:''' [[Unity]] extra packages for Arch<br />
<br />
{{bc|<nowiki><br />
[Unity-for-Arch-Extra]<br />
SigLevel = Optional TrustAll<br />
Server = http://dl.dropbox.com/u/486665/Repos/$repo/$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 />
<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.duckdns.org/repo/gruppenpest.gpg<br />
<br />
{{bc|<nowiki><br />
[eee-ck]<br />
Server = http://zembla.duckdns.org/repo<br />
</nowiki>}}<br />
<br />
==== phillid ====<br />
<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 />
==== 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:''' Ivan Koryabkin ([https://aur.archlinux.org/account/apathism/ apathism])<br />
* '''Upstream page:''' https://apathism.net/<br />
* '''Description:''' Some AUR packages like {{AUR|psi-plus-git}} (with qt5 enabled).<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 />
==== ashleyis ====<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
==== atom ====<br />
<br />
* '''Maintainer:''' Nicola Squartini ([https://github.com/tensor5 tensor5])<br />
* '''Upstream page:''' https://github.com/tensor5/arch-atom<br />
* '''Description:''' Atom text editor and Electron<br />
* '''Key-ID:''' B0544167<br />
<br />
{{bc|<nowiki><br />
[atom]<br />
Server = http://noaxiom.org/$repo/$arch<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 />
==== blackleg ====<br />
<br />
* '''Maintainer:''' Blackleg ([https://aur.archlinux.org/account/blackleg blackleg])<br />
* '''Upstream page:''' [http://www.blackleg.es www.blackleg.es]<br />
* '''Description:''' My AUR's packages and some like: linux-w110er, nvidia-dkms, android-studio, odoo (OpenErp).<br />
* '''Package list:''' [http://www.blackleg.es/x86_64/index.html Blackleg x86_64 packages]<br />
* '''Key-ID:''' 611BFDE1<br />
<br />
{{bc|<nowiki><br />
[blackleg]<br />
Server = ftp://ftp.blackleg.es/archlinux/$repo/$arch/<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.degenerazione.xyz/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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.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://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== eatabrick ====<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
SigLevel = Required<br />
Server = http://repo.eatabrick.org/$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 />
==== gustawho ====<br />
<br />
* '''Maintainer:''' [https://twitter.com/gustawho Gustavo Castro] <gustawho@gmail.com><br />
* '''Description:''' Scientific tools (mostly physics/math) and AUR packages that would take long to build, such as {{AUR|firefox-kde-opensuse}}.<br />
* '''Package list:''' http://gustawho.x10.mx/repo/x86_64<br />
* '''Upstream page:''' http://gustawho.x10.mx<br />
* '''Key-ID:''' 2C575D76<br />
<br />
{{bc|<nowiki><br />
[gustawho]<br />
Server = http://gustawho.x10.mx/repo/x86_64<br />
</nowiki>}}<br />
<br />
* '''Note:''' If you need firefox-kde-opensuse for i686 and/or the unsigned x86_64 package, try this repo instead:<br />
<br />
{{bc|<nowiki><br />
[home_gustawho_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/gustawho/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== holo ====<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
==== Linux-pf ====<br />
<br />
{{Accuracy|Signed repositories should not use {{ic|1=SigLevel = Optional}} (by definition).}}<br />
<br />
* '''Maintainer:''' [[User:Thaodan|Thaodan]]<br />
* '''Description:''' Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, Aufs3; i.e. linux-pf, just like {{AUR|linux-pf}} from the [[AUR]] but additionally optimized for intel CPUs Sandy Bridge, Ivy Bridge, Haswell and generic of course, and some extra packages<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).<br />
<br />
{{bc|<nowiki><br />
[Linux-pf]<br />
Server = https://dl.dropboxusercontent.com/u/172590784/Linux-pf/x86_64/<br />
SigLevel = Optional<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 />
==== kc9ydn ====<br />
<br />
* '''Maintainer:''' [http://kc9ydn.us KC9YDN]<br />
* '''Description:''' Consists mostly of amateur radio related apps<br />
* '''Key-ID:''' 7DA25A0F<br />
<br />
{{bc|<nowiki><br />
[kc9ydn]<br />
Server = http://kc9ydn.us/repo/<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 />
==== markzz ====<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages to maintain a Debian package repository.<br />
* '''Sources:''' http://git.markzz.net/markzz/repositories/markzz.git/tree<br />
* '''Key ID:''' 3CADDFDD<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = http://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== openrc ====<br />
<br />
* '''Maintainer:''' [http://www.autistici.org/arch-openrc/ jaco]<br />
* '''Description:''' All packages to run OpenRC on a x86_64 machine, using Manjaro PKGBUILDS.<br />
* '''Sources:''' https://github.com/manjaro/packages-openrc<br />
* '''Key ID:''' 8C51F416<br />
* '''Keyfile:''' http://www.autistici.org/arch-openrc/jacopo.asc<br />
<br />
{{bc|<nowiki><br />
[openrc]<br />
Server = http://www.autistici.org/arch-openrc/repo/<br />
</nowiki>}}<br />
<br />
==== qt-debug ====<br />
<br />
* '''Maintainer:''' [http://blog.the-compiler.org/?page_id=36 The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/The-Compiler/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = http://qutebrowser.org/qt-debug/$arch<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 />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
# report issues at https://github.com/anatol/quarry<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== rstudio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/unikum/ Artem Klevtsov]<br />
* '''Description:''' Rstudio IDE package (git version) and depends.<br />
* '''Key-ID:''' 1CB48DD4<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = http://repo.psylab.info/archlinux/x86_64/<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 />
=== 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 />
==== 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 />
==== mazdlc ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Various packages maintained by maz-1 (mainly Qt5-based packages and multimedia-related packages )<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-deadbeef-plugins ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Plugins for the feature-rich music player DeaDBeeF.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_deadbeef-plugins_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/deadbeef-plugins/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mazdlc-kde-frameworks-5 ====<br />
<br />
* '''Maintainer:''' maz-1 <ohmygod19993 at gmail dot com><br />
* '''Description:''' Unstable packages based on kde frameworks 5.<br />
* '''Upstream page:''' https://build.opensuse.org/project/show/home:mazdlc<br />
<br />
{{bc|<nowiki><br />
[home_mazdlc_kde-frameworks-5_Arch_Extra]<br />
Server = http://download.opensuse.org/repositories/home:/mazdlc:/kde-frameworks-5/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
==== mikroskeem ====<br />
<br />
* '''Maintainer:''' mikroskeem <mikroskeem@mikroskeem.eu><br />
* '''Description:''' Openarena and i3 wm-related packages<br />
<br />
{{bc|<nowiki><br />
[mikroskeem]<br />
Server = http://nightsnack.cf/~mark/arch-pkgs<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ant32 Philip] and [https://aur.archlinux.org/account/nic96 Jeromy] Reimer<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR updated every 8 hours.<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
#Server = http://amr.linuxd.org/archlinux/$repo/os/$arch<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 />
==== 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 />
==== rightlink ====<br />
<br />
* '''Maintainer:''' Chris Fordham <chris@fordham-nagy.id.au><br />
* '''Description:''' RightLink version 10 (RL10) is a new version of RightScale's server agent that connects servers managed through RightScale to the RightScale cloud management platform.<br />
<br />
{{bc|<nowiki><br />
[rightlink]<br />
Server = https://s3-ap-southeast-2.amazonaws.com/archlinux.rightscale.me/repo<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 />
==== zrootfs ====<br />
<br />
* '''Maintainer:''' Isabell Cowan <isabellcowan@gmail.com><br />
* '''Description:''' For Haswell architecture processors with size in mind.<br />
<br />
{{bc|<nowiki><br />
[zrootfs]<br />
Server = http://www.izzette.com/izzi/zrootfs<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>}}<br />
<br />
== armv7h only ==<br />
<br />
=== Unsigned ===<br />
<br />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' [http://pietma.com/tag/aur/ http://pietma.com/tag/aur/]<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}</div>Zannyhttps://wiki.archlinux.org/index.php?title=KDE&diff=312059KDE2014-04-27T15:05:10Z<p>Zanny: This described the old Samba KCM. This is the updated info on how to get working sharing.</p>
<hr />
<div>[[Category:KDE]]<br />
[[cs:KDE]]<br />
[[de:KDE]]<br />
[[es:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[ru:KDE]]<br />
[[tr:KDE_Masaüstü_Ortamı]]<br />
[[zh-CN:KDE]]<br />
[[zh-TW:KDE]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|Plasma}}<br />
{{Related|Qt}}<br />
{{Related|KDM}}<br />
{{Related|KDevelop 4}}<br />
{{Related|Uniform Look for Qt and GTK Applications}}<br />
{{Related articles end}}<br />
<br />
From [http://www.kde.org/community/whatiskde/softwarecompilation.php KDE Software Compilation] and [http://www.kde.org/download/ Getting KDE Software]:<br />
<br />
:''The KDE Software Compilation is the set of frameworks, workspaces, and applications produced by KDE to create a beautiful, functional and free desktop computing environment for Linux and similar operating systems. It consists of a large number of individual applications and a desktop workspace as a shell to run these applications. ''<br />
<br />
The KDE upstream has a well maintained [http://userbase.kde.org/ UserBase wiki]. Users can get detailed information about most KDE applications there.<br />
<br />
== Installation ==<br />
<br />
Before installing KDE, make sure you have a working [[Xorg]] installation on your system.<br />
<br />
KDE 4.x is ''modular''. You can install an entire set of packages or only install your preferred KDE applications.<br />
<br />
=== Full install ===<br />
<br />
[[pacman|Install]] {{Grp|kde}} or {{Grp|kde-meta}} available in the [[official repositories]]. For differences between {{Grp|kde}} and {{Grp|kde-meta}} see the [[KDE Packages]] article.<br />
<br />
=== Minimal install ===<br />
<br />
If you want to have a minimal installation of the KDE Software Compilation, install {{Grp|kdebase}}.<br />
<br />
=== Language pack ===<br />
<br />
If you need language files, install {{ic|kde-l10n-yourlanguagehere}} (e.g. {{Pkg|kde-l10n-de}} for the German language).<br />
<br />
For a full list of available languages see [https://www.archlinux.org/packages/extra/any/kde-l10n/ this link].<br />
<br />
== Upgrading ==<br />
<br />
'''KDE 4.12''' Software Compilation is the current major [http://kde.org/announcements/ release of KDE]. Important hints for upgraders:<br />
* Always check if your mirror is '''up to date'''.<br />
* '''Do not force an update using {{ic|# pacman --force}}'''. If pacman complains about conflicts please '''file a bug report'''.<br />
* You can remove the meta packages and the sub packages you do not need after the update.<br />
* If you do not like split packages just keep using the kde-meta packages.<br />
<br />
== Starting KDE ==<br />
<br />
Starting KDE depends on your preferences. Basically there are two ways of starting KDE. Using '''KDM''' or '''xinitrc'''.<br />
<br />
=== Using a Display Manager ===<br />
A [[display manager]], or login manager, is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell. It allows easily logging in straight to KDE. KDE has its own display manager, KDM.<br />
<br />
==== KDM (KDE Display Manager) ====<br />
<br />
''See the [[KDM]] page for more information.''<br />
<br />
[[systemd#Using units|Enable/start]] {{ic|kdm.service}} to start the display manager.<br />
<br />
==== LightDM ====<br />
<br />
''See the [[LightDM]] page for more information.''<br />
<br />
To ensure the best integration with KDE, it is recommended to make sure the following packages are installed:<br />
<br />
* {{pkg|lightdm-kde-greeter}}: add the ability to configure LightDM via the KDE system settings;<br />
* {{pkg|accountsservice}} and {{pkg|kdebase-kdepasswd}}: add the ability to [[LightDM#Changing_your_avatar|change your LightDM avatar picture]] via the KDE Settings.<br />
<br />
=== Using xinitrc ===<br />
<br />
''See the [[xinitrc]] page for more information.''<br />
<br />
{{hc|~/.xinitrc|<br />
exec startkde<br />
}}<br />
<br />
Execute {{ic|startx}} or {{ic|xinit}} to start KDE.<br />
<br />
{{Note|If you want to start Xorg at boot, please read the [[Start X at Login]] article.}}<br />
<br />
== Configuration ==<br />
<br />
All KDE configuration is saved in the {{ic|~/.kde4}} folder. If KDE is giving you a lot of trouble or if you ever want a fresh installation of KDE, just backup and rename this folder and restart your X session. KDE will re-create it with all the default configuration files. If you want very fine-grained control over KDE programs, you may want to edit the files in this folder.<br />
<br />
However, configuring KDE is primarily done in '''System Settings'''. A few other options for the desktop are available in '''Default Desktop Settings''' in the desktop's context menu.<br />
<br />
For other personalization options not covered below such as activities, different wallpapers on one cube, etc., please refer to the [[Plasma]] wiki page.<br />
<br />
=== Personalization ===<br />
<br />
How to set up the KDE desktop to your personal style: use different Plasma themes, window decorations and icon themes.<br />
<br />
==== Plasma desktop ====<br />
<br />
[[Plasma]] is a desktop integration technology that provides many functions like displaying the wallpaper, adding widgets to the desktop, and handling the panel(s), or "taskbar(s)".<br />
<br />
===== Themes =====<br />
<br />
[http://kde-look.org/index.php?xcontentmode=76 Plasma themes] can be installed through the Desktop Settings control panel. Plasma themes define the look of panels and plasmoids. For easy system-wide installation, some such themes are available in both the official repositories and the [https://aur.archlinux.org/packages.php?O=0&K=plasmatheme&do_Search=Go AUR].<br />
<br />
===== Widgets =====<br />
<br />
Plasmoids are little scripted (plasmoid scripts) or coded (plasmoid binaries) KDE applications designed to enhance the functionality of your desktop.<br />
<br />
Plasmoid binaries can be installed using PKGBUILDs from [https://aur.archlinux.org/packages.php?O=0&K=plasmoid&do_Search=Go&PP=25&SO=d&SB=v AUR], or you can write your own PKGBUILD.<br />
<br />
The easiest way to install plasmoid scripts is by right-clicking onto a panel or the desktop:<br />
<br />
Add Widgets > Get new Widgets > Download Widgets<br />
<br />
This will present a nice frontend for [http://www.kde-look.org/ kde-look.org] that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Most plasmoids are not created officially by KDE developers. You can also try installing Mac OS X widgets, Microsoft Windows Vista/7 widgets, Google Widgets, and even SuperKaramba widgets.<br />
<br />
===== Sound applet in the system tray =====<br />
<br />
Install Kmix ({{Pkg|kdemultimedia-kmix}}) from the official repositories and start it from the application launcher. Since KDE, by default, autostarts programs from the previous session, it does not need to be started manually upon every login.<br />
<br />
{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.kde4/share/config/kmixrc}}}}<br />
<br />
===== Adding a Global Menu to the desktop =====<br />
<br />
Install {{Pkg|appmenu-qt}} from the official repositories and {{AUR|appmenu-gtk}} and {{AUR|appmenu-qt5}} from the AUR in order to complete the preliminaries for a Mac OS X style always-on global menu. To get Firefox and LibreOffice to use the global menu as well, install {{AUR|firefox-extension-globalmenu}} and {{AUR|libreoffice-extension-menubar}} from the AUR.<br />
<br />
{{Warning|{{AUR|firefox-extension-globalmenu}} has been deprecated as of Firefox 25 and there is no other recommended method for getting the global menu. However, there is a patched package, {{AUR|firefox-ubuntu}} available in the AUR which has Canonical's patch for getting the global menu to work with the current version of Firefox (as of this writing).}}<br />
<br />
To actually get the global menu, install {{AUR|kdeplasma-applets-menubar}} from the AUR. Create a plasma-panel on top of your screen and add the window menubar applet to the panel. To export the menus to your global menu, go to ''System Settings > Application Appearance > Style''. Now click the fine-tuning tab and use the drop-down list to select ''only export'' as your menubar style.<br />
<br />
==== Window decorations ====<br />
<br />
[http://kde-look.org/index.php?xcontentmode=75 Window decorations] can be changed in:<br />
System Settings > Workspace Appearance > Window Decorations<br />
There you can also directly download and install more themes with one click, and some are available in the [https://aur.archlinux.org/packages.php?O=0&K=kdestyle&do_Search=Go&PP=25&SO=d&SB=v AUR].<br />
<br />
==== Icon themes ====<br />
<br />
Not many full system icons themes are available for KDE 4. You can open up ''System Settings > Application Appearance > Icons'' and browse for new ones or install them manually. Many of them can be found on [http://www.kde-look.org/ kde-look.org].<br />
<br />
Official logos, icons, CD labels and other artwork for Arch Linux are provided in the {{AUR|archlinux-artwork}} package. After installing you can find such artwork at {{ic|/usr/share/archlinux/}}.<br />
<br />
==== Fonts ====<br />
<br />
===== Fonts in KDE look poor =====<br />
<br />
Try installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.<br />
<br />
After the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Fonts''.<br />
<br />
If you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Appearance > Fonts'', System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).<br />
<br />
There is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.<br />
<br />
===== Fonts are huge or seem disproportional =====<br />
<br />
Try to force font DPI to '''96''' in ''System Settings > Application Appearance > Fonts''.<br />
<br />
If that does not work, try setting the DPI directly in your Xorg configuration as documented [[Xorg#Setting_DPI_manually|here]].<br />
<br />
==== Space efficiency ====<br />
<br />
Users with small screens (e.g. netbooks) can change some setting to make KDE more space efficient. See the [http://userbase.kde.org/KWin#Using_with_small_screens_(eg_Netbooks) upstream wiki] for more information. Also, you can use [http://www.kde.org/workspaces/plasmanetbook/ KDE's Plasma Netbook] which is a workspace made specifically for small, lightweight netbook devices.<br />
<br />
=== Networking ===<br />
<br />
You can choose from the following tools:<br />
* NetworkManager. See [[NetworkManager#KDE|NetworkManager]] for more information.<br />
* Wicd. See [[Wicd]] for more information.<br />
<br />
=== Printing ===<br />
<br />
{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}<br />
<br />
You can also configure printers in ''System Settings > Printer Configuration''. To use this method, you must first install {{Pkg|kdeutils-print-manager}} and {{Pkg|cups}}.<br />
<br />
The {{ic|avahi-daemon}} and {{ic|cupsd}} daemons must be started first; otherwise, you will get the following error:<br />
The service 'Printer Configuration' does not provide an interface 'KCModule'<br />
with keyword 'system-config- printer-kde/system-config-printer-kde.py'<br />
The factory does not support creating components of the specified type.<br />
<br />
If you are getting the following error, you need to give your user the right to manage printers.<br />
There was an error during CUPS operation: 'cups-authorization-canceled'<br />
<br />
For CUPS, this is set in {{ic|/etc/cups/cups-files.conf}}.<br />
<br />
Adding {{ic|lp}} to {{ic|SystemGroup}} allows anyone who can print to configure printers. You can, of course, add another group instead of {{ic|lp}}.<br />
{{hc|/etc/cups/cups-files.conf|# Administrator user group...<br />
SystemGroup sys root lp}}<br />
<br />
{{Tip|Read the [[CUPS#CUPS_administration]] Article to get more details on how to configure CUPS. }}<br />
<br />
=== Samba/Windows support ===<br />
<br />
If you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).<br />
<br />
The Dolphin share functionality requires usershares, which the stock smb.conf does not have enabled. Instructions to add them are in [[Samba#Creating_user_share_path|the Samba article]], after which sharing in Dolphin should work out of the box after restarting Samba.<br />
<br />
=== KDE Desktop activities ===<br />
<br />
KDE Desktop Activities are Plasma-based virtual-desktop-like sets of Plasma Widgets where you can independently configure widgets as if you have more than one screen or desktop.<br />
<br />
On your desktop, click the Cashew Plasmoid and, on the pop-up window, press "Activities".<br />
<br />
A plasma bar presenting you the current existing Plasma Desktop Activities will appear at the bottom of the screen. You can navigate between them by pressing the correspondent icons.<br />
<br />
=== Power saving ===<br />
<br />
KDE has an integrated power saving service called "'''Powerdevil Power Management'''" that may adjust the power saving profile of the system and/or the brightness of the screen (if supported).<br />
<br />
Since KDE 4.6, CPU frequency scaling is no longer managed by KDE. Instead it is assumed to be handled automatically by the the hardware and/or kernel. Arch has used {{ic|ondemand}} as the default CPU frequency governor since kernel version 3.3, so no additional configuration in needed in most cases. For details on fine-tuning the governor, see [[CPU frequency scaling]].<br />
<br />
=== Monitoring changes on local files and directories ===<br />
<br />
KDE now uses '''inotify''' directly from the kernel with '''kdirwatch''' (included in kdelibs), so Gamin or FAM are no longer needed. You may want to install this {{AUR|kdirwatch}} from AUR which is a GUI frontend for kdirwatch.<br />
<br />
== System administration ==<br />
<br />
=== Set keyboard ===<br />
<br />
Navigate to:<br />
System Settings > Hardware > Input Devices > Keyboard<br />
In the first tab, you can choose your keyboard model.<br />
<br />
In the "'''Layouts'''" tab, you can choose the languages you may want to use by pressing the "Add Layout" button and subsequently choosing the variant and the language.<br />
<br />
In the "'''Advanced'''" tab, you can choose the keyboard combination you want in order to change the layouts in the "Key(s) to change layout" sub-menu.<br />
<br />
=== Terminate Xorg server through KDE system settings ===<br />
<br />
Navigate to the submenu:<br />
System Settings > Input Devices > Keyboard > Advanced (tab) > "Key Sequence to kill the X server"<br />
and tick the checkbox.<br />
<br />
=== KCM ===<br />
<br />
KCM stands for '''KC'''onfig '''M'''odule. KCMs can help you configure your system by providing interfaces in System Settings.<br />
<br />
'''Configuration for look and feel of GTK applications.'''<br />
* {{Pkg|kde-gtk-config}}<br />
* {{AUR|kcm-gtk}}<br />
* {{AUR|kcm-qt-graphicssystem}}<br />
<br />
'''Configuration for the GRUB bootloader.'''<br />
* {{AUR|grub2-editor}}<br />
<br />
'''Configuration for Synaptics touchpads.'''<br />
* {{AUR|synaptiks}}<br />
* {{AUR|kcm_touchpad}}<br />
* {{AUR|kcm-touchpad-git}}<br />
<br />
'''Configuration for the [[Uncomplicated Firewall]] (UFW)'''<br />
* {{AUR|kcm-ufw}}<br />
<br />
'''Configuration for [[PolicyKit]]'''<br />
* {{AUR|kcm-polkit-kde-git}}<br />
<br />
'''Configuration for Wacom tablets'''<br />
* {{AUR|kcm-wacomtablet}}<br />
<br />
More KCMs can be found at [http://kde-apps.org/index.php?xcontentmode=273 kde-apps.org].<br />
<br />
== Desktop search and semantic desktop ==<br />
<br />
According to [[wikipedia:Semantic_desktop|Wikipedia]], ''"the Semantic Desktop is a collective term for ideas related to changing a computer's user interface and data handling capabilities so that data is more easily shared between different applications or tasks and so that data that once could not be automatically processed by a computer can be (automatically processed)."''<br />
<br />
The KDE implementation of this concept is tied to (as of KDE 4.10) two major pieces of software, Akonadi and Nepomuk. Between the two of them, these programs look at your data and make an easily searchable index of it. The idea behind these pieces of software is to make your system "aware" of your data and give it context using meta-data and user-supplied tags. Soprano and Virtuoso are two dependencies of the Nepomuk Semantic Desktop. Since the relationship between the two major components and their dependencies is not very clear, the following sections try to shed some light on their inner workings.<br />
<br />
As of KDE 4.13, Nepomuk has been rewrote and renamed as Baloo. It does not use Soprano and Virtuoso anymore, but Xapian instead.<br />
<br />
=== Baloo ===<br />
<br />
==== How do I disable it? ====<br />
<br />
Baloo indexes only your home folder by default. Its KCM does not provide a way to disable it explicitly, but you can add your home directory to its blacklist and it will understand that there is nothing to index. To do that, go to ''System Settings > Desktop Search'' and add it to the list.<br />
<br />
Alternatively you may add the following lines to your {{ic|~/.kde4/share/config/baloofilerc}} file:<br />
[Basic Settings]<br />
Indexing-Enabled=false<br />
&nbsp;&nbsp;&nbsp;<small>''Note: ''[Basic Settings]'' section in ''~/.kde4/share/config/baloofilerc'' also supports an ''Enabled'' entry if you want.''</small><br>&nbsp;<br><br />
<br />
A third possibility is to disable loading of ''baloo_file'':<br />
$ cp /usr/share/autostart/baloo_file.desktop ~/.kde4/share/autostart/<br />
$ echo "Hidden=True" >> ~/.kde4/share/autostart/baloo_file.desktop<br />
<br />
When you have done one of those you may want to delete the index files Baloo already created:<br />
$ rm ~/.local/share/baloo/file/*<br />
Note: at least with the first way you get a ''baloo_file_cleaner'' process using your disk for a while (or more!) and preventing you from removing those files, even if you log out! So you may need to kill it or reboot and log in to a console session for example.<br />
<br />
==== How do I index a removable device? ====<br />
<br />
By default every removable device is blacklisted. You just have to remove your device from the blacklist in the KCM panel.<br />
<br />
=== Virtuoso and Soprano ===<br />
<br />
The database used to store all the metadata used by the semantic desktop is a ''[[wikipedia:Resource_Description_Framework|Resource Description Framework (RDF)]]'' database called Virtuoso. Internally, Virtuoso may be looked as a relational database. (A [[wikipedia:Relational_model|relational database]] is different from a traditional single-table based database in the sense that it uses multiple tables related by a single key in order to store data.) It is currently controlled by OpenLink and is available under a commercial and an open source license.<br />
<br />
From the [http://techbase.kde.org/Projects/Nepomuk/ComponentOverview#Soprano KDE Techbase], ''Soprano is a Qt abstraction over databases. It provides a friendly Qt-based API for accessing different RDF stores. It currently supports 3 database backends - Sesame, Redland and Virtuoso. The KDE Semantic Stack only works with Virtuoso. Soprano also provides additional features such as serializing, parsing RDF data, and a client server architecture that is heavily used in Nepomuk.''<br />
<br />
=== Nepomuk ===<br />
<br />
Nepomuk stands for "Networked Environment for Personal, Ontology-based Management of Unified Knowledge". It is what allows all the tagging and labeling of files as well to take place and also serves as the way to actually read the Virtuoso databases. It provides an API to application developers which allows them to read the data collected by it.<br />
<br />
In the past, the "Strigi" service was used to collect data about the various files present on the system. However, due to many reasons, the most important of them being CPU and Memory usage, Strigi was replaced by a homegrown indexing service which is integrated with Nepomuk-Core.<br />
<br />
For further information about Nepomuk, [http://techbase.kde.org/Projects/Nepomuk/ComponentOverview#Nepomuk_Components this page] is a good resource. However, some of the information in the previous page has been rendered outdated according to [http://vhanda.in/blog/2012/11/nepomuk-without-strigi/ this blog post].<br />
<br />
==== Using and configuring Nepomuk ====<br />
<br />
In order to search using Nepouk on the KDE desktop, press {{ic|ALT+F2}} and type in your query. Nepomuk is enabled by default. It can be turned on and off in:<br />
System Settings > Desktop Search<br />
<br />
Nepomuk has to keep track of a lot of files. It is for this reason that it is recommended to increase the number of files that can be watched with inotify. In order to do that this command is a good option.<br />
# sysctl fs.inotify.max_user_watches=524288<br />
<br />
To do it persistently:<br />
# echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.d/99-inotify.conf<br />
<br />
Restart Nepomuk to see the changes.<br />
<br />
=== Akonadi ===<br />
<br />
Akonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on. It interfaces with the Nepomuk libraries to provide searching capabilities.<br />
<br />
Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).<br />
<br />
For more information on Akonadi and its relationship with Nepomuk, see [http://blogs.kde.org/node/4503] and [http://cmollekopf.wordpress.com/2013/02/13/kontact-nepomuk-integration-why-data-from-akonadi-is-indexed-in-nepomuk/].<br />
<br />
==== Disabling Akonadi ====<br />
<br />
See this [http://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase].<br />
<br />
==== Database configuration ====<br />
<br />
Start {{ic|akonaditray}} from package {{Pkg|kdepim-runtime}}. Right click on it and select '''configure'''. In the Akonadi server configure tab, you can:<br />
* Configuring Akonadi to use MySQL/MariaDB Server<br />
** If your home directory is on a ZFS pool, you will need to create & edit ~/.config/akonadi/mysql-local.conf to include:<br />
<br />
:: [mysqld]<br />
:: innodb_use_native_aio = 0 <br />
:This is issue is highlighted in [[MySQL#OS_error_22_when_running_on_ZFS]]<br />
<br />
* Configuring Akonadi to use PostgreSQL Server<br />
* Configuring Akonadi to use SQLite<br />
<br />
==== Running KDE without Akonadi ====<br />
<br />
The package {{AUR|akonadi-fake}} is a good option for those who wish to run KDE without Akonadi.<br />
<br />
== Phonon ==<br />
<br />
=== What is Phonon? ===<br />
<br />
From [[Wikipedia:Phonon|Wikipedia]]:<br />
''Phonon is the multimedia API for KDE 4. Phonon was created to allow KDE 4 to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for KDE 4's lifetime. It was done for various reasons: to create a simple KDE/Qt style multimedia API, to better support native multimedia frameworks on Windows and Mac OS X, and to fix problems of frameworks becoming unmaintained or having API or ABI instability.<br />
''<br />
<br />
'''Phonon''' is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio apps) and video (e.g., the Dolphin video thumbnails).<br />
<br />
=== Which backend should I choose? ===<br />
<br />
You can choose between various backends like [[GStreamer]] ({{Pkg|phonon-gstreamer}}) or [[VLC]] ({{Pkg|phonon-vlc}}), available in the [[official repositories]], and [[MPlayer]] ({{AUR|phonon-mplayer-git}}), QuickTime ({{AUR|phonon-quicktime-git}}) or [http://martinsandsmark.wordpress.com/2012/07/07/akademy/ AVKode] ({{AUR|phonon-avkode-git}}), available in the [[AUR]].<br />
<br />
Most users will want VLC which has the best upstream support. GStreamer is currently not well maintained. Note that multiple backends can be installed at once and chosen at ''System Settings > Multimedia > Phonon > Backend''.<br />
<br />
{{Note|<br />
* According to the [http://community.kde.org/Phonon/FeatureMatrix Feature Matrix], the GStreamer backend has some more features that the VLC backend.<br />
* According to the [http://userbase.kde.org/Phonon#Backend_libraries KDE UserBase], Phonon-MPlayer is currently unmaintained.}}<br />
<br />
== Useful applications ==<br />
<br />
The official set of KDE applications may be found [http://www.kde.org/applications/ here].<br />
<br />
=== Yakuake ===<br />
<br />
[[Yakuake]] provides a Quake-like terminal emulator whose visibility is toggled by the F12 key. It also has support for multiple tabs. Yakuake is available in the package {{Pkg|yakuake}}.<br />
<br />
=== KDE Telepathy ===<br />
<br />
[http://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.<br />
<br />
To install all Telepathy protocols, install the {{Grp|telepathy}} group.<br />
To use the KDE Telepathy client, install the {{Pkg|kde-telepathy-meta}} package that includes all the packages contained in the {{Grp|kde-telepathy}} group .<br />
<br />
== Tips and tricks ==<br />
<br />
=== Using Openbox in KDE ===<br />
{{tip|The native window manager for KDE is {{ic|kwin}}.}}<br />
<br />
The [[Openbox]] window manager works very well within KDE, combined with a noticable improvement in performance and responsiveness. By default, a {{ic|KDE/Openbox}} session will be made automatically available upon installing Openbox, even if the KDE environment itself has not been installed. Most popular display managers will therefore allow KDE with Openbox as the window manager to be selected as a session.<br />
<br />
To manually start KDE with Openbox as the window manager - as a default session for [[SLiM]], or where not using a display manager at all - add the following command to the [[Xinitrc]] file:<br />
<br />
exec openbox-kde-session<br />
<br />
==== When using KDM ====<br />
<br />
To use [[Openbox]] as a default windows manager when logging in with [[KDM]] just go to Default Applications -> Window Manager -> Use a different windows manager then select Openbox within the dropdown box.<br />
<br />
<br />
==== Re-enabling compositing effects ====<br />
Where replacing the native {{ic|kwin}} window manager with Openbox, any desktop compositing effects - such a transparency - provided will also be lost. This is because Openbox itself does not provide any compositing functionality. However, it is easily possible to use a seperate compositing program to [[Openbox#Compositing_effects|re-enable compositing]].<br />
<br />
=== Integrate Android with the KDE Desktop ===<br />
<br />
Install {{Pkg|kdeconnect}} and [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp&hl=en KDE Connect] from the Google Play store for great Android-KDE integration.<br />
<br />
=== Get notifications for software updates ===<br />
<br />
Install {{Pkg|apper}} to get notifications about package updates in your KDE system tray and a basic package manager GUI. See the [http://www.packagekit.org/index.html PackageKit website] for more information.<br />
<br />
=== Configure KWin to use OpenGL ES ===<br />
<br />
Beginning with KWin version 4.8 it is possible to use the separately built binary '''kwin_gles''' as a replacement for kwin. It behaves almost the same as the kwin executable in OpenGL2 mode with the slight difference that it uses ''egl'' instead of ''glx'' as the native platform interface. To test kwin_gles you just have to run {{ic|kwin_gles --replace}} in Konsole.<br />
If you want to make this change permanent you have to create a script in {{ic|$(kde4-config --localprefix)/env/}} which exports {{ic|1=KDEWM=kwin_gles}}.<br />
<br />
=== Enabling audio/video thumbnails under Konqueror/Dolphin file managers ===<br />
<br />
For thumbnails of videos in konqueror and dolphin install {{Pkg|kdemultimedia-mplayerthumbs}} or {{Pkg|kdemultimedia-ffmpegthumbs}}.<br />
For thumbnails of audio files in Konqueror and Dolphin install {{AUR|audiothumbs}} from AUR.<br />
<br />
=== Speed up application startup ===<br />
<br />
User Rob wrote on his blog this "[http://kdemonkey.blogspot.nl/2008/04/magic-trick.html magic trick]" to improve application start-up time by 50-150ms.<br />
To enable it, create this folder in your home:<br />
$ mkdir -p ~/.compose-cache/<br />
<br />
{{Note|For those curious about what is going on here, this enables an optimization which Lubos (of general KDE speediness fame) came up with some time ago and was then rewritten and integrated into libx11. Ordinarily, on startup, applications read input method information from {{ic|/usr/share/X11/locale/''your locale''/Compose}}. This file is quite long (>5000 lines for the en_US.UTF-8 one) and takes some time to process. libX11 can create a cache of the parsed information which is much quicker to read subsequently, but it will only re-use an existing cache or create a new one in {{ic|~/.compose-cache}} if the directory already exists.}}<br />
<br />
=== Hiding partitions ===<br />
<br />
In Dolphin, it is as simple as right-clicking on the partition in the {{ic|Places}} sidebar and selecting {{ic|Hide ''partition''}}. Otherwise...<br />
<br />
If you wish to prevent your internal partitions from appearing in your file manager, you can create an udev rule, e.g:<br />
<br />
{{hc|/etc/udev/rules.d/10-local.rules|2=<br />
KERNEL=="sda[0-9]", ENV{UDISKS_IGNORE}="1"<br />
}}<br />
<br />
The same thing for a certain partition:<br />
<br />
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"<br />
KERNEL=="sda2", ENV{UDISKS_IGNORE}="1"<br />
<br />
=== Konqueror tips ===<br />
<br />
==== Disabling smart key tooltips (browser) ====<br />
<br />
To disable those smart key tooltips in Konqueror (pressing {{ic|Ctrl}} on a web page), use ''Settings > Configure Konqueror > Web Browsing'' and uncheck ''Enable Access Key activation with Ctrl key'' o<br />
<br />
{{hc|~/.kde4/share/config/konquerorrc|2=<br />
[Access Keys]<br />
Enabled=false<br />
}}<br />
<br />
==== Using WebKit ====<br />
<br />
WebKit is an open source browser engine developed by Apple Inc. It is a derivative from the KHTML and KJS libraries and contains many improvements. WebKit is used by Safari, Google Chrome and rekonq.<br />
<br />
It is possible to use WebKit in Konqueror instead of KHTML. First install the {{Pkg|kwebkitpart}} package.<br />
<br />
Then, after executing Konqueror, navigate to ''Settings > Configure Konqueror > General > Default web browser engine'' and set it as {{ic|WebKit}}.<br />
<br />
=== Firefox integration ===<br />
<br />
See [[Firefox#KDE_integration|Firefox]].<br />
<br />
=== Setting the screensaver background to the same as the current one ===<br />
<br />
Kscreensaver's background can be changed from the default.<br />
<br />
KDE by default is [https://bugs.kde.org/show_bug.cgi?id=312828 not able] to change this for the 'Simple Lock', but a [http://lists.opensuse.org/opensuse-kde/2013-02/msg00082.html workaround] [http://forum.kde.org/viewtopic.php?f=66&t=110039 exists]:<br />
<br />
{{hc|/usr/share/apps/ksmserver/screenlocker/org.kde.passworddialog/contents/ui/|<br />
[...]<br />
''#source: theme.wallpaperPathForSize(parent.width, parent.height)''<br />
source: "1920x1080.jpg"<br />
[...]<br />
}}<br />
<br />
Now you copy your current background image to {{ic|"1920x1080.jpg"}}.<br />
<br />
Note you have to redo this for each update of the package {{Pkg|kdebase-workspace}}.<br />
<br />
=== Setting lockscreen wallpaper to arbitrary image ===<br />
<br />
Copy an existing wallpaper profile as a template:<br />
$ cp -r /usr/share/wallpapers/''ExistingWallpaper'' ~/.kde4/share/wallpapers/<br />
<br />
Change the name of the directory, and edit {{ic|metadata.desktop}}:<br />
<br />
{{hc|~/.kde4/share/wallpapers/''MyWallpaper''/metadata.desktop|2=<br />
[Desktop Entry]<br />
Name=MyWallpaper<br />
X-KDE-PluginInfo-Name=MyWallpaper<br />
}}<br />
<br />
Remove existing images ({{ic|contents/screenshot.png}} and {{ic|images/*}}):<br />
$ rm ~/.kde4/share/wallpapers/MyWallpaper/contents/screenshot.png<br />
$ rm ~/.kde4/share/wallpapers/MyWallpaper/contents/images/*<br />
<br />
Copy new image in:<br />
$ cp ''path/to/MyWallpaper.png'' MyWallpaper/contents/images/1920x1080.png<br />
<br />
Edit the metadata profile for the current theme:<br />
{{hc|~/.kde4/share/apps/desktoptheme/MyTheme/metadata.desktop|2=<br />
[Wallpaper]<br />
defaultWallpaperTheme=MyWallpaper<br />
defaultFileSuffix=.png<br />
defaultWidth=1920<br />
defaultHeight=1080<br />
}}<br />
<br />
Lock the screen to check that it worked.<br />
<br />
{{Note|This method sets the lockscreen background without changing any system-wide settings. For a system-wide change, create the new wallpaper profile in {{ic|/usr/share/wallpapers}}.}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Configuration related ===<br />
<br />
Many problems in KDE are related to configuration. One way to resolve upgrade problems is to start over with a fresh KDE config.<br />
<br />
==== Reset all KDE configuration ====<br />
<br />
To test whether your config is the problem try quitting your KDE session by logging out and, in a tty, run<br />
$ cp ~/.kde4 ~/.kde4.safekeeping<br />
$ rm .kde4/{cache,socket,tmp}-$(hostname)<br />
<br />
The ''rm'' command just removes symbolic links which will be recreated by KDE automatically. Now start a new KDE session to see the results.<br />
<br />
If the problem is resolved, you will have a fresh, problem-free {{ic|~/.kde4/}}. You can gradually move parts of your saved configuration back, restarting your session regularly to test, to identify the problematic parts of your config. Some files here are named after applications so you will probably be able to test these without needing to restart KDE.<br />
<br />
==== File Indexer Service not working even after enabling everything properly ====<br />
<br />
This is caused due to a corrupted Nepomuk database. It may be remedied by moving the database or deleting it all together. Log out of KDE and issue this command from a virtual console:<br />
<br />
$ mv ~/.kde4/share/apps/nepomuk ~/.kde4/share/apps/nepomuk_backup<br />
<br />
to move your existing (and corrupt) nepomuk database. It will be recreated when you log in again.<br />
<br />
==== Plasma desktop behaves strangely ====<br />
<br />
Plasma problems are usually caused by unstable '''plasmoids''' or '''plasma themes'''. First, find which was the last plasmoid or plasma theme you had installed and disable it or uninstall it.<br />
<br />
So, if your desktop suddenly exhibits "locking up", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report (bugs.kde.org) '''only if it is an official widget'''. If it is not, it is recommended you find the entry on kde-look.org and inform the developer of that widget about the problem (detailing steps to reproduce, etc).<br />
<br />
If you cannot find the problem, but you do not want ''all'' the KDE settings to be lost, do:<br />
<br />
$ rm -r ~/.kde4/share/config/plasma*<br />
<br />
This command will '''delete all plasma related configs''' of your user and when you will relogin into KDE, you will have the '''default''' settings back. You should know that this action '''cannot be undone'''. You should create a backup folder and copy all the plasma related configs in it.<br />
<br />
==== Clean cache to resolve upgrade problems ====<br />
<br />
The [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings and several other problems such as ark being unable to unrar or unzip or amarok not recognizing any of your musics. This solution can also resolve problems with KDE and QT programmes looking bad following upgrade.<br />
<br />
Rebuild your cache with the following commands:<br />
<br />
$ rm ~/.config/Trolltech.conf<br />
$ kbuildsycoca4 --noincremental<br />
<br />
Hopefully, your problems are now fixed.<br />
<br />
=== Clean akonadi configuration to fix KMail ===<br />
<br />
First, make sure that KMail is not running. Then backup configuration:<br />
$ mv ~/.local/share/akonadi ~/.local/share/akonadi-old<br />
$ mv ~/.config/akonadi ~/.config/akonadi-old<br />
<br />
Start ''SystemSettings > Personal'' and remove all the resources. Go back to Dolphin and remove the original {{ic|~/.local/share/akonadi}} and<br />
{{ic|~/.config/akonadi}} - the copies you made ensure that you can back-track if necessary.<br />
<br />
Now go back to the System Settings page and carefully add the necessary resources. You should see the resource reading in your mail folders. Then start Kontact/KMail to see if it work properly.<br />
<br />
=== Getting current state of KWin for support and debug purposes ===<br />
<br />
This command prints out a wonderful summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [http://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].<br />
<br />
$ qdbus org.kde.kwin /KWin supportInformation<br />
<br />
=== KDE4 does not finish loading ===<br />
<br />
There might be a situation in which the graphic driver might create a conflict when starting KDE4. This situation happens after the login but before finishing loading the desktop, making the user wait indefinitely at the loading screen. Until now the only users confirmed to be affected by this are the ones that use [[NVIDIA|Nvidia drivers]] and KDE4.<br />
<br />
A solution for Nvidia users:<br />
<br />
{{hc|~/.kde4/share/config/kwinrc|2=<br />
[Compositing]<br />
Enabled=false<br />
}}<br />
For more information, see [https://bbs.archlinux.org/viewtopic.php?pid=932598 this] thread.<br />
<br />
If a minimal install was done, make sure you installed the required font by your phonon backend listed here: [[#Minimal install]]<br />
<br />
=== KDE and Qt programs look bad when in a different window manager ===<br />
<br />
If you are using KDE or Qt programs but not in a full KDE session (specifically, you did not run {{ic|startkde}}), then as of KDE 4.6.1 you will need to tell Qt how to find KDE's styles (Oxygen, QtCurve etc.)<br />
<br />
You just need to set the environment variable {{ic|QT_PLUGIN_PATH}}. E.g. put:<br />
<br />
export QT_PLUGIN_PATH=$HOME/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/<br />
<br />
into your {{ic|/etc/profile}} (or {{ic|~/.profile}} if you do not have root access). qtconfig should then be able to find your KDE styles and everything should look nice again!<br />
<br />
Alternatively, you can symlink the Qt styles directory to the KDE styles one:<br />
# ln -s /usr/lib/kde4/plugins/styles/ /usr/lib/qt/plugins/styles<br />
<br />
Under Gnome you can try to install the package libgnomeui.<br />
<br />
=== Graphical related problems ===<br />
<br />
==== Low 2D desktop performance (or) artifacts appear when on 2D ====<br />
<br />
===== GPU driver problem =====<br />
<br />
Make sure you have the proper driver for your card installed, so that your desktop is at least 2D accelerated. Follow these articles for more information: [[ATI]], [[NVIDIA]], [[Intel]] for more information, in order to make sure that everything is all right.<br />
The open-source ATI and Intel drivers and the proprietary (binary) Nvidia driver should theoretically provide the best 2D and 3D acceleration.<br />
<br />
===== The Raster engine workaround =====<br />
<br />
If this does not solve your problems, your driver may not provide a good '''XRender''' acceleration which the current Qt painter engine relies on by default.<br />
<br />
You can change the painter engine to software based only by invoking the application with the {{ic|-graphicssystem raster}} command line. This rendering engine can be set as the default one by recompiling Qt with the same as configure option, {{ic|-graphicssystem raster}}.<br />
<br />
The raster paint engine enables the CPU to do the majority of the painting, as opposed to the GPU. You may get better performance, depending on your system. This is basically a work-around for the terrible Linux driver stack, since the CPU should obviously not be doing graphical computations since it is designed for fewer threads of greater complexity, as opposed to the GPU which is many threads but lesser computational strength. So, only use Raster engine if you are having problems or your GPU is much slower than you CPU, otherwise is better to use XRender.<br />
<br />
Since Qt 4.7+, recompiling Qt is not needed. Simply export {{ic|1=QT_GRAPHICSSYSTEM=raster}}, or {{ic|opengl}}, or {{ic|native}} (for the default). Raster depends on the CPU, OpenGL depends on the GPU and high driver support, and Native is just using the X11 rendering (mixture, usually).<br />
<br />
'''The best and automatic way to do that''' is to install {{AUR|kcm-qt-graphicssystem}} from AUR and configure this particular Qt setting through:<br />
<br />
System Settings > Qt Graphics System<br />
<br />
For more information, consult this [http://apachelog.wordpress.com/2010/09/05/qt-graphics-system-kcm/ KDE Developer blog entry] and/or this [http://labs.trolltech.com/blogs/2009/12/18/qt-graphics-and-performance-the-raster-engine/ Qt Developer blog entry].<br />
<br />
==== Low 3D desktop performance====<br />
<br />
KDE begins with desktop effects enabled. Older cards may be insufficient for 3D desktop acceleration. You can disable desktop effects in:<br />
System Settings > Desktop Effects<br />
and you can toggle desktop effects with {{ic|Alt+Shift+F12}}.<br />
<br />
{{Note| You may encounter such problems with 3D desktop performance even when using a more powerful graphics card, especially the catalyst proprietary driver ({{ic|fglrx}}). This driver is known for having problems with 3D acceleration. Visit [[ATI|the ATI Wiki page]] for more troubleshooting.}}<br />
<br />
==== Desktop compositing is disabled on my system with a modern Nvidia GPU ====<br />
<br />
Sometimes, KWin may have settings in its configuration file ({{ic|kwinrc}}) that ''may'' cause a problem on re-activating the 3D desktop {{ic|OpenGL}} compositing. That could be caused randomly (for example, due to a sudden Xorg crash or restart, and it gets corrupted), so, in case that happens, delete your {{ic|~/.kde4/share/config/kwinrc}} file and relogin. The KWin settings will turn to the KDE default ones and the problem should be probably gone.<br />
<br />
==== Flickering in fullscreen when compositing is enabled ====<br />
<br />
As of KDE SC 4.6.0, there is an option in ''Sytem Settings > Desktop Effect > Advanced > Suspend desktop effects for fullscreen windows''. Uncheck it would tell kwin to disable unredirect fullscren.<br />
<br />
==== Screen Tearing with desktop compositing enabled ====<br />
<br />
{{Note|With the release of KDE 4.11, several new Vsync options have been added, which may help with screen tearing.}}<br />
<br />
KWin may suffer from screen tearing while desktop effects are enabled. Uncheck the VSync option under ''System Settings > Desktop Effects > Advanced > Use Vsync''.<br />
<br />
For proprietary driver users, ensure that the driver's VSync option is enabled ({{ic|amdccle}} for [[Catalyst]] users, and nvidia-settings for [[NVIDIA]] users).<br />
<br />
==== Display settings lost on reboot (multiple monitors) ====<br />
Installing {{Pkg|kscreen}} might fix the problem unless your screens share the same EDID. Kscreen is the improved screen management software for KDE, more information can be found [https://fedoraproject.org/wiki/Changes/KScreen?rd=Features/KScreen here].<br />
<br />
=== Sound problems under KDE ===<br />
<br />
==== ALSA related problems ====<br />
<br />
{{Note|First make sure you have {{Pkg|alsa-lib}} and {{Pkg|alsa-utils}} installed.}}<br />
<br />
===== "Falling back to default" messages when trying to listen to any sound in KDE =====<br />
<br />
When you encounter such messages:<br />
The audio playback device ''name_of_the_sound_device'' does not work.<br />
Falling back to default<br />
Go to:<br />
System Settings > Multimedia > Phonon<br />
and set the device named {{ic|default}} above all the other devices in each box you see.<br />
<br />
===== MP3 files cannot be played when using the GStreamer Phonon backend =====<br />
<br />
This can be solved by installing the GStreamer plugins (package group {{Grp|gstreamer0.10-plugins}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{Pkg|phonon-vlc}}.<br />
Then, make sure the backend is preferred via:<br />
<br />
System Settings > Multimedia > Phonon > Backend (tab)<br />
<br />
=== Konsole does not save commands' history ===<br />
<br />
By default console command history is saved only when you type 'exit' in console. When you close Konsole with 'x' in the corner it does not happen.<br />
To enable autosaving after every command execution:<br />
<br />
{{hc|~/.bashrc|<nowiki><br />
shopt -s histappend<br />
[[ "${PROMPT_COMMAND}" ]] && PROMPT_COMMAND="$PROMPT_COMMAND;history -a" || PROMPT_COMMAND="history -a"<br />
</nowiki>}}<br />
<br />
=== KDE password prompts display three bullets per char ===<br />
<br />
This setting can be changed at ''System Settings > Account Details > Password & User Account'':<br />
* Show one bullet for each letter<br />
* Show three bullets for each letter<br />
* Show nothing<br />
<br />
=== Nepomukserver process still autostarts even with semantic desktop disabled ===<br />
<br />
Go to ''System Settings > Startup and Shutdown > Service Manager > Startup Services'' and uncheck the Nepomuk Search Module.<br />
<br />
=== Dolphin and File Dialogs are extremely slow to start ===<br />
<br />
This may be caused by the upower service. If the upower service is not needed on your system, it can be disabled:<br />
<br />
# systemctl disable upower<br />
# systemctl mask upower<br />
<br />
Obviously this will not have any side effect on a desktop system.<br />
<br />
=== Default PDF viewer in GTK applications under KDE ===<br />
<br />
In some cases when you have installed [[Inkscape]], [[Gimp]] or other graphic programs, GTK applications ([[Firefox]] among all) might not select Okular as the default PDF application, and they are not going to follow the KDE settings on default applications. You can use the following user command to make Okular the default application again.<br />
<br />
$ xdg-mime default kde4-okularApplication_pdf.desktop application/pdf<br />
<br />
If you are using a different PDF viewer application, or a different mime-type is misbehaving, you should change {{ic|kde4-okularApplication_pdf.desktop}} and {{ic|application/pdf}} respectively according to your needs.<br />
<br />
For more information, consult [[Default applications]] wiki page.<br />
<br />
== Unstable releases ==<br />
<br />
When KDE is reaching beta or RC milestone, KDE "unstable" packages are uploaded to the [kde-unstable] repository. They stay there until KDE is declared stable and passes to [extra].<br />
<br />
You can add [kde-unstable] with:<br />
<br />
{{hc|/etc/pacman.conf|2=<br />
[kde-unstable]<br />
Include = /etc/pacman.d/mirrorlist<br />
}}<br />
<br />
{{Warning|<br />
Make sure to add these lines ''before'' the [extra] section. Adding the section after [extra] will cause [[pacman]] to prefer the older packages in the extra repository. {{ic|pacman -Syu}} will not install them, and will warn that they are "too new" if installed manually. Also, some of the libraries will stay at the older versions, which may cause file conflicts and/or instability!}}<br />
<br />
# [kde-unstable] is based upon testing. Therefore, you need to enable the repositories in the following order: [kde-unstable], [testing], [core], [extra], [community-testing], [community].<br />
# To update from a previous KDE installation, run: {{ic|# pacman -Syu}} or {{ic|# pacman -S kde-unstable/kde}}<br />
# If you do not have KDE installed, you might have difficulties to install it by using groups (limitation of pacman)<br />
# '''Subscribe and read the [https://mailman.archlinux.org/pipermail/arch-dev-public/ arch-dev-public] mailing list'''<br />
# Make sure [[#Distro_and_Upstream_bug_report|you make bug reports]] if you find any problems.<br />
<br />
== Other KDE projects ==<br />
<br />
=== Trinity ===<br />
<br />
From the release of KDE 4.x, the developers dropped support for KDE 3.5.x. Trinity Desktop Environment is a fork of KDE3 developed by Timothy Pearson ([http://trinitydesktop.org/ trinitydesktop.org]). This project aims to keep the KDE3.5 computing style alive, as well as polish off any rough edges that were present as of KDE 3.5.10. See [[Trinity]] for more info.<br />
<br />
{{Warning|KDE 3 is no longer maintained and supported by the KDE developers. The "Trinity KDE" is maintained by the Trinity project commmunity. Use KDE 3 on your own risk, regarding any bugs, performance problems or security risks.}}<br />
<br />
== Bugs ==<br />
<br />
It is preferrable that if you find a minor or serious bug, you should visit [https://bugs.archlinux.org the Arch Bug Tracker] or/and [http://bugs.kde.org KDE Bug Tracker] in order to report that. Make sure that you are clear about what you want to report.<br />
<br />
If you have any problem and you write about in on the Arch forums, first make sure that you have '''fully''' updated your system using a good sync mirror (check [https://www.archlinux.de/?page=MirrorStatus here]) or try [[Reflector]].<br />
<br />
== See also ==<br />
<br />
* [http://www.kde.org] - KDE homepage<br />
* [https://bugs.kde.org] - KDE bug tracker<br />
* [https://bugs.archlinux.org] - Arch Linux bug tracker<br />
* [https://projects.kde.org] - KDE Projects</div>Zannyhttps://wiki.archlinux.org/index.php?title=GPGPU&diff=310870GPGPU2014-04-19T01:21:22Z<p>Zanny: Updated dates and versions</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Graphics]]<br />
{{Out of date|With new versions of OpenCL, the things have changed a little bit.}}<br />
{{Related articles start}}<br />
{{Related|Catalyst}}<br />
{{Related|Nvidia}}<br />
{{Related articles end}}<br />
<br />
GPGPU stands for [http://en.wikipedia.org/wiki/Gpgpu General-purpose computing on graphics processing units].<br />
In Linux, there are currently two major GPGPU frameworks: [http://en.wikipedia.org/wiki/OpenCL OpenCL] and [http://en.wikipedia.org/wiki/CUDA CUDA]<br><br><br />
<br />
==OpenCL==<br />
===Overview===<br />
OpenCL (Open Computing Language) is an open, royalty-free parallel programming framework developed by the Khronos Group, a non-profit consortium.<br />
<br />
Distribution of the OpenCL framework generally consists of:<br />
* Library providing OpenCL API, known as libCL or libOpenCL ({{ic|libOpenCL.so}} in linux)<br />
* OpenCL implementation(s), which contain:<br />
** Device drivers<br />
** OpenCL/C code compiler<br />
** SDK *<br />
* Header files *<br />
''* only needed for development''<br />
<br />
===OpenCL library===<br />
There are several choices for the libCL. In general case, installing {{Pkg|libcl}} from [extra] should do :<br />
# pacman -S libcl<br />
However, there are situations when another libCL distribution is more suitable. The following paragraph covers this more advanced topic.<br />
<br />
===The OpenCL ICD model===<br />
OpenCL offers the option to install multiple vendor-specific implementations on the same machine at the same time.<br />
In practice, this is implemented using the Installable Client Driver (ICD) model.<br />
The center point of this model is the libCL library which in fact imeplements ICD Loader.<br />
Through the ICD Loader, an OpenCL application is able to access all platforms and all devices present in the system.<br />
<br />
Although itself vendor-agnostic, the ICD Loader still has to be provided by someone. In Archlinux, there are currently two options:<br />
* extra/{{Pkg|libcl}} by Nvidia. Provides OpenCL version 1.0 (even in the current version) and is thus slightly outdated. Its behaviour with OpenCL 1.1 code has not been tested as of yet.<br />
* unsupported/{{AUR|libopencl}} by AMD. Provides up to date version 1.1 of OpenCL. It is currently distributed by AMD under a restrictive license and therefore could not have been pushed into official repo.<br />
<br />
(There is also Intel's libCL, this one is currently not provided in a separate package though.)<br />
<br />
{{Note|ICD Loader's vendor is mentioned only to identify each loader, it is otherwise completely irrelevant. ICD Loaders are vendor-agnostic and may be used interchangeably<br>(as long as they are implemented correctly)}}<br />
<br />
For basic usage, extra/libcl is recommended as its installation and updating is convenient. For advanced usage, libopencl is recommended. Both libcl and libopencl should still work with all the implementations.<br />
<br />
===Implementations===<br />
To see which OpenCL implementations are currently active on your system, use the following command:<br />
{{bc|$ ls /etc/OpenCL/vendors}}<br />
<br />
====AMD====<br />
OpenCL implementation from AMD is known as [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK], formerly also known as AMD Stream SDK or ATi Stream.<br />
<br />
For Arch Linux, AMD APP SDK is currently available in AUR as {{AUR|amdapp-sdk}}.<br />
This package is installed as {{ic|/opt/AMDAPP}} and apart from SDK files it also contains a number of code samples ({{ic|/opt/AMDAPP/SDK/samples/}}). It also provides the {{ic|clinfo}} utility which lists OpenCL platforms and devices present in the system and displays detailed information about them.<br />
<br />
As AMD APP SDK itself contains CPU OpenCL driver, no extra driver is needed to use execute OpenCL on CPU devices (regardless of its vendor). GPU OpenCL drivers are provided by the {{AUR|catalyst}} package (an optional dependency), the open-source driver ({{Pkg|xf86-video-ati}}) does ''not'' support OpenCL.<br />
<br />
Code is compiled using {{Pkg|llvm}} (dependency).<br />
<br />
====Mesa (Gallium)====<br />
OpenCL support from Mesa is in development (see http://www.x.org/wiki/GalliumStatus/). AMD Radeon cards are supported by the r600g driver.<br />
<br />
Arch Linux does currently (April 2014; Mesa 10.1.0; LLVM 3.4) not build Mesa with OpenCL support. See http://dri.freedesktop.org/wiki/GalliumCompute/ for installation instructions (use the development branches of LLVM and Mesa for optimal results).<br />
<br />
You could also use [http://pkgbuild.com/~lcarlier/mesa-git/ lordheavy's repo]. Install these packages:<br />
* ati-dri-git<br />
* opencl-mesa-git<br />
* libclc-git<br />
<br />
Surprisingly, pyrit performs 20% better with radeon+r600g compared to Catalyst 13.11 Beta1 (tested with 7 other CPU cores):<br />
{{bc|<nowiki>catalyst #1: 'OpenCL-Device 'Barts'': 21840.7 PMKs/s (RTT 2.8)<br />
radeon+r600g #1: 'OpenCL-Device 'AMD BARTS'': 26608.1 PMKs/s (RTT 3.0)</nowiki>}}<br />
At the time of this writing (30 October 2013), one must apply patches [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-XXX-clover-Calculate-the-optimal-work-group-size.patch] and [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-radeon-llvm-Specify-the-DataLayout-when-running-opti.patch] on top of Mesa commit ac81b6f2be8779022e8641984b09118b57263128 to get this performance improvement. The latest unpatched LLVM trunk was used (SVN rev 193660).<br />
<br />
====Nvidia====<br />
The Nvidia implementation is available in extra/{{Pkg|opencl-nvidia}}. It only supports Nvidia GPUs running the {{Pkg|nvidia}} kernel module (nouveau does not support OpenCL yet).<br />
<br />
====Intel====<br />
The Intel implementation, named simply [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK], <br />
provides optimized OpenCL performance on Intel CPUs (mainly Core and Xeon) and CPUs only. Package is available in AUR: {{AUR|intel-opencl-sdk}}. OpenCL for integrated graphics hardware is available in the AUR through {{AUR|beignet}} for Ivy Bridge and newer hardware.<br />
<br />
===Development===<br />
For development of OpenCL-capable applications, full installation of the OpenCL framework including implementation, drivers and compiler plus the {{Pkg|opencl-headers}} package is needed. Link your code against {{ic|libOpenCL}}.<br />
<br />
====Language bindings====<br />
* '''C++''': A binding by Khronos is part of the official specs. It is included in {{Pkg|opencl-headers}}<br />
* '''C++/Qt''': An experimental binding named [http://qt.gitorious.org/qt-labs/opencl QtOpenCL] is in Qt Labs - see [http://labs.qt.nokia.com/2010/04/07/using-opencl-with-qt/ Blog entry] for more information<br />
* '''JavaScript/HTML5''': [http://www.khronos.org/webcl/ WebCL]<br />
* '''[[Python]]''': There are two bindings with the same name: PyOpenCL. One is in [extra]: {{Pkg|python2-pyopencl}}, for the other one see [http://sourceforge.net/projects/pyopencl/ sourceforge]<br />
* '''[[D]]''': [https://bitbucket.org/trass3r/cl4d/wiki/Home cl4d]<br />
* '''Haskell''': The OpenCLRaw package is available in AUR: {{AUR|haskell-openclraw-git}}<br />
* '''[[Java]]''': [http://jogamp.org/jocl/www/ JOCL] (a part of [http://jogamp.org/ JogAmp])<br />
* '''[[Mono|Mono/.NET]]''': [http://sourceforge.net/projects/opentk/ Open Toolkit]<br />
<br />
==CUDA==<br />
<br />
CUDA (Compute Unified Device Architecture) is [[Nvidia]]'s proprietary, closed-source parallel computing architecture and framework. It is made of several components:<br />
* required:<br />
** proprietary Nvidia kernel module<br />
** CUDA "driver" and "runtime" libraries<br />
* optional:<br />
** additional libraries: CUBLAS, CUFFT, CUSPARSE, etc.<br />
** CUDA toolkit, including the {{ic|nvcc}} compiler<br />
** CUDA SDK, which contains many code samples and examples of CUDA and OpenCL programs<br />
<br />
The kernel module and CUDA "driver" library are shipped in extra/{{Pkg|nvidia}} and extra/{{Pkg|opencl-nvidia}}. The "runtime" library and the rest of the CUDA toolkit are available in community/{{Pkg|cuda}}. The library is available [https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/cuda&id=1b62c8bcb9194b2de1b750bd62a8dce1e7e549f5 only in 64-bit version].<br />
<br />
===Development===<br />
<br />
When installing {{Pkg|cuda}} package you get the directory /opt/cuda created where all of the components "live". For compiling cuda code add /opt/cuda/include to your include path in the compiler instructions. For example this can be accomplished by adding -I/opt/cuda/include to the compiler flags/options.<br />
<br />
===Language bindings===<br />
* '''Fortran''': [http://www.hoopoe-cloud.com/Solutions/Fortran/Default.aspx FORTRAN CUDA], [http://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]<br />
* '''[[Python]]''': In AUR: {{AUR|pycuda-git}}, also [http://psilambda.com/download/kappa-for-python Kappa]<br />
* '''Perl''': [http://psilambda.com/download/kappa-for-perl Kappa], [https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]<br />
* '''Haskell''': The CUDA package is available in AUR: {{AUR|haskell-cuda}}. There is also [http://hackage.haskell.org/package/accelerate The accelerate package]<br />
* '''Java''': [http://www.hoopoe-cloud.com/Solutions/jCUDA/Default.aspx jCUDA], [http://www.jcuda.org/jcuda/JCuda.html JCuda]<br />
* '''[[Mono|Mono/.NET]]''': [http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx CUDA.NET], [http://www.hybriddsp.com/ CUDAfy.NET]<br />
* '''[[Mathematica]]''': [http://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]<br />
* '''[[Ruby]]''', '''Lua''': [http://psilambda.com/products/kappa/ Kappa]<br />
<br />
===Driver issues===<br />
<br />
It might be necessary to use the legacy driver {{Pkg|nvidia-304xx}} or {{Pkg|nvidia-304xx-lts}} to resolve permissions issues when running CUDA programs on systems with multiple GPUs.<br />
<br />
==List of OpenCL and CUDA accelerated software==<br />
{{Expansion}}<br />
* [[Bitcoin]]<br />
* [[GIMP]] (development in progress - see [http://www.phoronix.com/scan.php?page=news_item&px=OTc5OQ this notice])<br />
* {{AUR|Pyrit}}<br />
* {{Pkg|aircrack-ng}}<br />
* {{AUR|cuda_memtest}} - a GPU memtest. Despite its name, is supports both CUDA and OpenCL<br />
<br />
==Links and references==<br />
* [http://www.khronos.org/opencl/ OpenCL official homepage]<br />
* [http://www.nvidia.com/object/cuda_home_new.html CUDA official homepage]<br />
* [http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt The ICD extension specification]<br />
* [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK homepage]<br />
* [http://developer.nvidia.com/cuda-toolkit-40 CUDA Toolkit homepage]<br />
* [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK homepage]</div>Zannyhttps://wiki.archlinux.org/index.php?title=AppArmor&diff=310062AppArmor2014-04-11T12:29:44Z<p>Zanny: Out of date as of the 3.14 kernel.</p>
<hr />
<div>[[Category:Security]]<br />
[[Category:Kernel]]<br />
<br />
[[Wikipedia:AppArmor|AppArmor]] is a [[Wikipedia:Mandatory_access_control|Mandatory Access Control]] (MAC) system, implemented upon the [[Wikipedia:Linux_Security_Modules|Linux Security Modules]] (LSM).<br />
<br />
== Userspace Installation ==<br />
<br />
{{Out of date|As of 3.14, the stock kernel no longer includes LSM hooks for Apparmor, so you need a custom kernel (again).}}<br />
<br />
A recent Arch Linux Kernel package should suffice to get apparmor working. See [[#Kernel Configuration]]<br />
<br />
Additionally, the userspace tools and libs are required. You can get those by installing {{AUR|apparmor}} from the [[AUR]].<br />
<br />
The package is a split package which consists of following sub-packages:<br />
* apparmor (meta package)<br />
* apparmor-libapparmor<br />
* apparmor-utils<br />
* apparmor-parser<br />
* apparmor-profiles<br />
* apparmor-pam<br />
* apparmor-vim<br />
<br />
The packages should be sane for the most part, yet there are some things still on the TODO list:<br />
* more dependency cleanups<br />
* changehat modules Apache and Tomcat<br />
* AUR packages for applications that ship apparmor profile (e.g. libvirt, just needs to be built with --enable-apparmor)<br />
<br />
== Kernel Configuration ==<br />
Here is the rquired configuration from ArchLinux kernel, in case you're compiling your own kernels.<br />
CONFIG_SECURITY_APPARMOR=y<br />
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0<br />
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set<br />
<br />
However, integration of AppArmor into the kernel is not quite complete. It is missing network mediation. See [https://apparmor.wiki.kernel.org/index.php/Apparmor/upstream_release_notes here] for details. There are compatibility patches provided with the AppArmor tarball that can be applied to every recent kernel to reintroduce these interfaces. The patchset is pretty small and should be applied if you decide to use AppArmor. A suitably patched kernel is provided by the AUR package {{AUR|linux-apparmor}}. Historic note: as of Linux 3.12, the profile introspection patch is not needed anymore.<br />
<br />
== Bootloader Configuration ==<br />
=== Enable ===<br />
To test profiles, or enforce the use of AppArmor it must be enabled at boot time. To do this add {{ic|1=apparmor=1 security=apparmor}} to the [[kernel parameters|kernel boot parameters]]. <br />
<br />
After reboot you can test if AppArmor is really enabled using this command as root:<br />
# cat /sys/module/apparmor/parameters/enabled <br />
Y<br />
(Y=enabled, N=disabled, no such file = module not in kernel)<br />
<br />
=== Disable ===<br />
AppArmor will be disabled by default in Arch Linux, so you will not need to disable it explicitly until you will build your own kernel with AppArmor enabled by default. If so, Add {{ic|1=apparmor=0 security=""}} to [[kernel parameters|kernel boot parameters]].<br />
<br />
== System Configuration ==<br />
=== Mounts (/etc/fstab securityfs) ===<br />
http://wiki.apparmor.net/index.php/Kernel_interfaces<br />
none /sys/kernel/security securityfs defaults 0 0<br />
=== Systemd support ===<br />
The AUR package {{AUR|apparmor}} includes a systemd service file that loads all AppArmor profiles in {{ic|/etc/apparmor.d/}}. To enable it to run on boot, use:<br />
{{bc|# systemctl enable apparmor}}<br />
<br />
== Security considerations ==<br />
=== Preventing circumvention of path-based MAC via links ===<br />
<br />
AppArmor can be circumvented via hardlinks in the standard POSIX security model. However, the kernel now includes the ability to prevent this vulnerability, without needing the patches distributions like Ubuntu have applied to their kernels as workarounds.<br />
<br />
See [[Security#Preventing link TOCTOU vulnerabilities]] for details.<br />
<br />
== More Info ==<br />
AppArmor, like most other LSMs, supplements rather than replaces the default Discretionary access control. As such it's impossible to grant a process more privileges than it had in the first place. <br />
<br />
Ubuntu, SUSE and a number of other distributions use it by default. RHEL (and it's variants) use SELinux which requires good userspace integration to work properly. People tend to agree that it is also much much harder to configure correctly. <br />
<br />
Taking a common example - A new Flash vulnerability: If you were to browse to a malicious website AppArmor can prevent the exploited plugin from accessing anything that may contain private information. In almost all browsers, plugins run out of process which makes isolating them much easier.<br />
<br />
AppArmor profiles (usually) get stored in easy to read text files in {{ic|/etc/apparmor.d}}<br />
<br />
Every breach of policy triggers a message in the system log, and many distributions also integrate it into DBUS so that you get real-time violation warnings popping up on your desktop.<br />
<br />
== Links ==<br />
* Official pages<br />
** Kernel: https://apparmor.wiki.kernel.org/ http://wiki.apparmor.net/<br />
** Userspace: https://launchpad.net/apparmor<br />
<br />
* http://www.kernel.org/pub/linux/security/apparmor/AppArmor-2.6/<br />
* http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference<br />
<br />
* http://ubuntuforums.org/showthread.php?t=1008906 (Tutorial)<br />
* https://help.ubuntu.com/community/AppArmor<br />
*{{Bug|21406}}<br />
* http://stuff.mit.edu/afs/sipb/contrib/linux/Documentation/apparmor.txt <br />
* http://wiki.apparmor.net/index.php/Kernel_interfaces<br />
* http://wiki.apparmor.net/index.php/AppArmor_versions<br />
* http://manpages.ubuntu.com/manpages/oneiric/man5/apparmor.d.5.html<br />
* http://manpages.ubuntu.com/manpages/oneiric/man8/apparmor_parser.8.html<br />
* http://wiki.apparmor.net/index.php/Distro_CentOS<br />
* http://bodhizazen.net/aa-profiles/<br />
* https://wiki.ubuntu.com/ApparmorProfileMigration<br />
* [[wikipedia:Linux_Security_Modules]]<br />
* http://wiki.apparmor.net/index.php/Gittutorial<br />
<br />
== See also ==<br />
* [[TOMOYO Linux]]<br />
* [[SELinux]]</div>Zannyhttps://wiki.archlinux.org/index.php?title=Talk:AppArmor&diff=309847Talk:AppArmor2014-04-10T01:40:19Z<p>Zanny: /* core/linux 3.14 Removed Apparmor Support */ new section</p>
<hr />
<div>This blogger has recently tested Apparmor, but he does say it needs patching and mods to the PKGBUILD to work. Check it out: - http://c0debreak.blogspot.com/2012/06/enabling-apparmor-in-arch-linux.html [[User:Iruel|Iruel]] ([[User talk:Iruel|talk]])<br />
<br />
To install it I needed to install bison27 from aur as with bison from base-devel I wasn't able to compile. Should I add this infomation in the "AppArmor Packages" section? <br />
<br />
[[User:Valo|Valo]] ([[User talk:Valo|talk]]) 08:46, 7 September 2013 (UTC)<br />
<br />
== core/linux 3.14 Removed Apparmor Support ==<br />
<br />
Just when 3.13 came around and had working apparmor in the stock kernel, it got removed from mainline in 3.14. So this article is going to require deep rewrites, and someone will need to bring linux-apparmor up to date and maintain that.</div>Zannyhttps://wiki.archlinux.org/index.php?title=GPGPU&diff=298945GPGPU2014-02-19T15:36:20Z<p>Zanny: /* Intel */</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Graphics]]<br />
{{Out of date|With new versions of OpenCL, the things have changed a little bit.}}<br />
{{Article summary start}}<br />
{{Article summary text|Installation and usage of OpenCL and CUDA, the two major Linux GPGPU frameworks}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Catalyst}}<br />
{{Article summary wiki|Nvidia}}<br />
{{Article summary end}}<br />
<br />
GPGPU stands for [http://en.wikipedia.org/wiki/Gpgpu General-purpose computing on graphics processing units].<br />
In Linux, there are currently two major GPGPU frameworks: [http://en.wikipedia.org/wiki/OpenCL OpenCL] and [http://en.wikipedia.org/wiki/CUDA CUDA]<br><br><br />
<br />
==OpenCL==<br />
===Overview===<br />
OpenCL (Open Computing Language) is an open, royalty-free parallel programming framework developed by the Khronos Group, a non-profit consortium.<br />
<br />
Distribution of the OpenCL framework generally consists of:<br />
* Library providing OpenCL API, known as libCL or libOpenCL ({{ic|libOpenCL.so}} in linux)<br />
* OpenCL implementation(s), which contain:<br />
** Device drivers<br />
** OpenCL/C code compiler<br />
** SDK *<br />
* Header files *<br />
''* only needed for development''<br />
<br />
===OpenCL library===<br />
There are several choices for the libCL. In general case, installing {{Pkg|libcl}} from [extra] should do :<br />
# pacman -S libcl<br />
However, there are situations when another libCL distribution is more suitable. The following paragraph covers this more advanced topic.<br />
<br />
===The OpenCL ICD model===<br />
OpenCL offers the option to install multiple vendor-specific implementations on the same machine at the same time.<br />
In practice, this is implemented using the Installable Client Driver (ICD) model.<br />
The center point of this model is the libCL library which in fact imeplements ICD Loader.<br />
Through the ICD Loader, an OpenCL application is able to access all platforms and all devices present in the system.<br />
<br />
Although itself vendor-agnostic, the ICD Loader still has to be provided by someone. In Archlinux, there are currently two options:<br />
* extra/{{Pkg|libcl}} by Nvidia. Provides OpenCL version 1.0 and is thus slightly outdated. Its behaviour with OpenCL 1.1 code has not been tested as of yet.<br />
* unsupported/{{AUR|libopencl}} by AMD. Provides up to date version 1.1 of OpenCL. It is currently distributed by AMD under a restrictive license and therefore could not have been pushed into official repo.<br />
<br />
(There is also Intel's libCL, this one is currently not provided in a separate package though.)<br />
<br />
{{Note|ICD Loader's vendor is mentioned only to identify each loader, it is otherwise completely irrelevant. ICD Loaders are vendor-agnostic and may be used interchangeably<br>(as long as they are implemented correctly)}}<br />
<br />
For basic usage, extra/libcl is recommended as its installation and updating is convenient. For advanced usage, libopencl is recommended. Both libcl and libopencl should still work with all the implementations.<br />
<br />
===Implementations===<br />
To see which OpenCL implementations are currently active on your system, use the following command:<br />
{{bc|$ ls /etc/OpenCL/vendors}}<br />
<br />
====AMD====<br />
OpenCL implementation from AMD is known as [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK], formerly also known as AMD Stream SDK or ATi Stream.<br />
<br />
For Arch Linux, AMD APP SDK is currently available in AUR as {{AUR|amdapp-sdk}}.<br />
This package is installed as {{ic|/opt/AMDAPP}} and apart from SDK files it also contains a number of code samples ({{ic|/opt/AMDAPP/SDK/samples/}}). It also provides the {{ic|clinfo}} utility which lists OpenCL platforms and devices present in the system and displays detailed information about them.<br />
<br />
As AMD APP SDK itself contains CPU OpenCL driver, no extra driver is needed to use execute OpenCL on CPU devices (regardless of its vendor). GPU OpenCL drivers are provided by the {{AUR|catalyst}} package (an optional dependency), the open-source driver ({{Pkg|xf86-video-ati}}) does ''not'' support OpenCL.<br />
<br />
Code is compiled using {{Pkg|llvm}} (dependency).<br />
<br />
====Mesa (Gallium)====<br />
OpenCL support from Mesa is in development (see http://www.x.org/wiki/GalliumStatus/). AMD Radeon cards are supported by the r600g driver.<br />
<br />
Arch Linux does currently (October 2013; Mesa 9.2.2; LLVM 3.3) not build Mesa with OpenCL support. See http://dri.freedesktop.org/wiki/GalliumCompute/ for installation instructions (use the development branches of LLVM and Mesa for optimal results).<br />
<br />
Surprisingly, pyrit performs 20% better with radeon+r600g compared to Catalyst 13.11 Beta1 (tested with 7 other CPU cores):<br />
{{bc|<nowiki>catalyst #1: 'OpenCL-Device 'Barts'': 21840.7 PMKs/s (RTT 2.8)<br />
radeon+r600g #1: 'OpenCL-Device 'AMD BARTS'': 26608.1 PMKs/s (RTT 3.0)</nowiki>}}<br />
At the time of this writing (30 October 2013), one must apply patches [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-XXX-clover-Calculate-the-optimal-work-group-size.patch] and [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-radeon-llvm-Specify-the-DataLayout-when-running-opti.patch] on top of Mesa commit ac81b6f2be8779022e8641984b09118b57263128 to get this performance improvement. The latest unpatched LLVM trunk was used (SVN rev 193660).<br />
<br />
====Nvidia====<br />
The Nvidia implementation is available in extra/{{Pkg|opencl-nvidia}}. It only supports Nvidia GPUs running the {{Pkg|nvidia}} kernel module (nouveau does not support OpenCL yet).<br />
<br />
====Intel====<br />
The Intel implementation, named simply [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK], <br />
provides optimized OpenCL performance on Intel CPUs (mainly Core and Xeon) and CPUs only. Package is available in AUR: {{AUR|intel-opencl-sdk}}. OpenCL for integrated graphics hardware is available in the AUR through {{AUR|beignet}} for Ivy Bridge and newer hardware.<br />
<br />
===Development===<br />
For development of OpenCL-capable applications, full installation of the OpenCL framework including implementation, drivers and compiler plus the {{Pkg|opencl-headers}} package is needed. Link your code against {{ic|libOpenCL}}.<br />
<br />
====Language bindings====<br />
* '''C++''': A binding by Khronos is part of the official specs. It is included in {{Pkg|opencl-headers}}<br />
* '''C++/Qt''': An experimental binding named [http://qt.gitorious.org/qt-labs/opencl QtOpenCL] is in Qt Labs - see [http://labs.qt.nokia.com/2010/04/07/using-opencl-with-qt/ Blog entry] for more information<br />
* '''JavaScript/HTML5''': [http://www.khronos.org/webcl/ WebCL]<br />
* '''[[Python]]''': There are two bindings with the same name: PyOpenCL. One is in [extra]: {{Pkg|python2-pyopencl}}, for the other one see [http://sourceforge.net/projects/pyopencl/ sourceforge]<br />
* '''[[D]]''': [https://bitbucket.org/trass3r/cl4d/wiki/Home cl4d]<br />
* '''Haskell''': The OpenCLRaw package is available in AUR: {{AUR|haskell-openclraw}}<br />
* '''[[Java]]''': [http://jogamp.org/jocl/www/ JOCL] (a part of [http://jogamp.org/ JogAmp])<br />
* '''[[Mono|Mono/.NET]]''': [http://sourceforge.net/projects/opentk/ Open Toolkit]<br />
<br />
==CUDA==<br />
<br />
CUDA (Compute Unified Device Architecture) is [[Nvidia]]'s proprietary, closed-source parallel computing architecture and framework. It is made of several components:<br />
* required:<br />
** proprietary Nvidia kernel module<br />
** CUDA "driver" and "runtime" libraries<br />
* optional:<br />
** additional libraries: CUBLAS, CUFFT, CUSPARSE, etc.<br />
** CUDA toolkit, including the {{ic|nvcc}} compiler<br />
** CUDA SDK, which contains many code samples and examples of CUDA and OpenCL programs<br />
<br />
The kernel module and CUDA "driver" library are shipped in extra/{{Pkg|nvidia}} and extra/{{Pkg|opencl-nvidia}}. The "runtime" library and the rest of the CUDA toolkit are available in community/{{Pkg|cuda}}. The library is available [https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/cuda&id=1b62c8bcb9194b2de1b750bd62a8dce1e7e549f5 only in 64-bit version].<br />
<br />
===Development===<br />
<br />
When installing {{Pkg|cuda}} package you get the directory /opt/cuda created where all of the components "live". For compiling cuda code add /opt/cuda/include to your include path in the compiler instructions. For example this can be accomplished by adding -I/opt/cuda/include to the compiler flags/options.<br />
<br />
===Language bindings===<br />
* '''Fortran''': [http://www.hoopoe-cloud.com/Solutions/Fortran/Default.aspx FORTRAN CUDA], [http://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]<br />
* '''[[Python]]''': In AUR: {{AUR|pycuda}}, also [http://psilambda.com/download/kappa-for-python Kappa]<br />
* '''Perl''': [http://psilambda.com/download/kappa-for-perl Kappa], [https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]<br />
* '''Haskell''': The CUDA package is available in AUR: {{AUR|haskell-cuda}}. There is also [http://hackage.haskell.org/package/accelerate The accelerate package]<br />
* '''Java''': [http://www.hoopoe-cloud.com/Solutions/jCUDA/Default.aspx jCUDA], [http://www.jcuda.org/jcuda/JCuda.html JCuda]<br />
* '''[[Mono|Mono/.NET]]''': [http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx CUDA.NET], [http://www.hybriddsp.com/ CUDAfy.NET]<br />
* '''[[Mathematica]]''': [http://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]<br />
* '''[[Ruby]]''', '''Lua''': [http://psilambda.com/products/kappa/ Kappa]<br />
<br />
===Driver issues===<br />
<br />
It might be necessary to use the legacy driver {{Pkg|nvidia-304xx}} or {{Pkg|nvidia-304xx-lts}} to resolve permissions issues when running CUDA programs on systems with multiple GPUs.<br />
<br />
==List of OpenCL and CUDA accelerated software==<br />
{{Expansion}}<br />
* [[Bitcoin]]<br />
* [[GIMP]] (development in progress - see [http://www.phoronix.com/scan.php?page=news_item&px=OTc5OQ this notice])<br />
* {{AUR|Pyrit}}<br />
* {{AUR|aircrack-ng}}<br />
* {{AUR|cuda_memtest}} - a GPU memtest. Despite its name, is supports both CUDA and OpenCL<br />
<br />
==Links and references==<br />
* [http://www.khronos.org/opencl/ OpenCL official homepage]<br />
* [http://www.nvidia.com/object/cuda_home_new.html CUDA official homepage]<br />
* [http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt The ICD extension specification]<br />
* [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK homepage]<br />
* [http://developer.nvidia.com/cuda-toolkit-40 CUDA Toolkit homepage]<br />
* [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK homepage]</div>Zannyhttps://wiki.archlinux.org/index.php?title=Yaourt&diff=274291Yaourt2013-09-03T21:12:07Z<p>Zanny: Added a note you can keep source repositories of devel packages locally.</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Arch User Repository]]<br />
[[ar:Yaourt]]<br />
[[cs:Yaourt]]<br />
[[de:Yaourt]]<br />
[[es:Yaourt]]<br />
[[fa:Yaourt]]<br />
[[fr:Yaourt]]<br />
[[it:Yaourt]]<br />
[[ja:Yaourt]]<br />
[[lt:Yaourt]]<br />
[[pl:Yaourt]]<br />
[[ru:Yaourt]]<br />
[[sr:Yaourt]]<br />
[[tr:Yaourt]]<br />
[[uk:Yaourt]]<br />
[[zh-CN:Yaourt]]<br />
[[zh-TW:Yaourt]]<br />
{{Article summary start}}<br />
{{Article summary text|How to install and use Yaourt via the AUR or an unofficial repository.}}<br />
{{Article summary heading|Required software}}<br />
{{Article summary link|Yaourt|http://www.archlinux.fr/yaourt-en/}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AUR Helpers}}<br />
{{Article summary wiki|AUR}}<br />
{{Article summary wiki|Pacman}}<br />
{{Article summary end}}<br />
<br />
[http://www.archlinux.fr/yaourt-en/ Yaourt] ('''Y'''et '''A'''n'''O'''ther '''U'''ser '''R'''epository '''T'''ool; [http://fr.wikipedia.org/wiki/Yaourt French for 'Yogurt']) is a community-contributed wrapper for pacman which adds seamless access to the [[AUR]], allowing and automating package compilation and installation from your choice of the thousands of PKGBUILDs in the [[AUR]], in addition to the many thousands of available Arch Linux binary packages. Yaourt uses the same exact syntax as pacman, which saves you from relearning an entirely new method of system maintenance but also adds new options. Yaourt expands the power and simplicity of pacman by adding even more useful features and provides pleasing, colorized output, interactive search mode, and much more.<br />
<br />
{{Warning|Yaourt is an unofficial, third-party script that is not supported by the Arch Linux developers.}}<br />
{{Note|Please report bugs at the [http://bugs.archlinux.fr archlinux.fr bugtracker].}}<br />
<br />
==Installation==<br />
First you need to install {{AUR|package-query}} as a dependency, and then the {{aur|yaourt}} package itself. Since both those packages are available from the AUR, you will have to install them with the official method for installing unsupported packages, which is exhaustively described in the [[Arch User Repository]] article. It is important that you understand what "unsupported package" really means, and you can take this as an opportunity to learn what are the operations that [[AUR helpers]] like yaourt make automatic.<br />
<br />
==Proxy Settings==<br />
<br />
If you access the Internet through an HTTP proxy, you may have to set the environment variables {{ic|http_proxy}} and {{ic|https_proxy}} in your {{ic|~/.bashrc}} (setting only {{ic|http_proxy}} will prevent you from downloading the package from AUR):<br />
$ export http_proxy='<nowiki>http://proxy.hostname.com:port</nowiki>'<br />
$ export https_proxy='<nowiki>https://proxy.hostname.com:port</nowiki>'<br />
<br />
For more information, check {{ic|curl}}'s man page.<br />
<br />
[[sudo]] does not keep environment variables like {{ic|http_proxy}}, so if you use sudo, you must use {{ic|visudo}} command to edit {{ic|/etc/sudoers}} and add:<br />
Defaults env_keep += "http_proxy"<br />
Defaults env_keep += "https_proxy"<br />
Defaults env_keep += "ftp_proxy"<br />
<br />
==Using yaourt==<br />
<br />
You can install packages (including [[AUR]] packages) with<br />
<br />
{{bc|$ yaourt ''packagename''}}<br />
<br />
You can update your system including [[AUR]] packages with:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
See [http://archlinux.fr/man/yaourt.8.html] or {{ic|man yaourt}} for more information.<br />
<br />
==Examples==<br />
<br />
Search and install:<br />
{{bc|$ yaourt <search pattern>}}<br />
Sync database, upgrade packages, search the AUR and devel (all packages based on cvs, svn, git, bzr(...)-version) upgrades:<br />
{{bc|$ yaourt -Syua --devel }}<br />
Build package from source:<br />
{{bc|$ yaourt -Sb <package>}}<br />
Check, edit, merge or remove *.pac* files:<br />
{{bc|$ yaourt -C}}<br />
Get a PKGBUILD (support split package):<br />
{{bc|$ yaourt -G <package>}}<br />
Build and export package, its sources to a directory:<br />
{{bc|$ yaourt -Sb --export <dir> <package>}}<br />
Backup database:<br />
{{bc|$ yaourt -B}}<br />
Query backup file:<br />
{{bc|$ yaourt -Q --backupfile <file>}}<br />
<br />
See also: [[Pacman]] and [[Pacman Tips]].<br />
<br />
==Persistent Local Source Repositories==<br />
By default, yaourt will pull remote repositories for building to /tmp. To avoid having to refetch whole repositories whenever AUR packages update, you can change this directoy by uncommenting and setting DEVELBUILDDIR in yaourtrc to wherever you want source repositories pulled to. Note this will only apply to devel packages, usually suffixed by -git or -svn.<br />
{{hc|/etc/yaourtrc|DEVELBUILDDIR&#61;"/var/abs/local/yaourtbuild"}}<br />
<br />
==Troubleshooting==<br />
<br />
===Yaourt asking for password twice===<br />
If you disable the {{ic|sudo}} password timeout by adding<br />
Defaults timestamp_timeout=0<br />
to {{ic|/etc/sudoers}}, then yaourt will ask for your password twice each time you try to perform an operation that requires root. To prevent this, add:<br />
SUDONOVERIF=1<br />
to {{ic|/etc/yaourtrc}} or to {{ic|~/.yaourtrc}}<br />
<br />
===Yaourt freezing / system heavy slowdown===<br />
Mostly a problem for systems with less RAM or a smaller swap space. Yaourt uses /tmp to compile in by default. By default this is all in RAM as it's a tmpfs. Change the location in {{ic|/etc/yaourtrc}} (uncomment "TMPDIR = " line) to somewhere else to avoid clogging up your system.</div>Zannyhttps://wiki.archlinux.org/index.php?title=Linux_Containers&diff=268754Linux Containers2013-07-30T06:16:20Z<p>Zanny: Refactored the Bridge section for netctl and added a way to setup a NAT instead of a bridge.</p>
<hr />
<div>[[Category:Security]]<br />
[[Category:Virtualization]]<br />
{{Stub|Currently just a rough draft... I think I will need to restructure this a bit and I have also noticed I have become a bit too verbose -_-;; I will be along shortly to complete this as well as clean it up.}}<br />
<br />
==Introduction==<br />
<br />
===Synopsis===<br />
<br />
Linux Containers (LXC) are an operating system-level virtualization method for running multiple isolated server installs (containers) on a single control host. LXC does not provide a virtual machine, but rather provides a virtual environment that has its own process and network space. It is similar to a chroot, but offers much more isolation.<br />
<br />
===About this HowTo===<br />
<br />
This document is intended as an overview on setting up and deploying containers, and is not an in depth detailed instruction by instruction guide. A certain amount of prerequisite knowledge and skills are assumed (running commands as root, kernel configuration, mounting filesystems, shell scripting, chroot type environments, networking setup, etc).<br />
<br />
Much of this was taken verbatim from [http://lxc.teegra.net/ Dwight Schauer], [http://tuxce.selfip.org/informatique/conteneurs-linux-lxc Tuxce] and [http://artisan.karma-lab.net/node/1749 Ulhume]. It has been copied here both to enable to community to share their collective wisdom and to expand on a few points.<br />
<br />
===Less verbose tutorial===<br />
<br />
[[User:Delerious010|Delerious010]] 21:43, 1 December 2009 (EST) I have come to realize I have added a lot of text to this HowTo. If you would like something more streamlined, please head on over to [http://lxc.teegra.net/ http://lxc.teegra.net/] for Dwight's excellent guide.<br />
<br />
===Testing capabilities===<br />
<br />
Once the lxc package is installed, running lxc-checkconfig will print out a list of your system's capabilities<br />
<br />
==Host configuration==<br />
<br />
===Control group filesystem===<br />
<br />
LXC depends on the control group filesystem being mounted. The standard location for it is {{ic|/sys/fs/cgroup}}. If you use systemd, the cgroup filesystem will be mounted automatically, including the default controllers, but with other initsystems you might have to do it yourself:<br />
<br />
mount -t tmpfs none /sys/fs/cgroup<br />
<br />
===Userspace tools===<br />
<br />
Install {{Pkg|lxc}} from [community]. For networking, you will probably need {{Pkg|bridge-utils}} and {{Pkg|netctl}} or {{Pkg|openvpn}}.<br />
<br />
===Bridge device setup===<br />
<br />
The preferred way to setup a Bridge in Arch is with [netctl], and is explained in detail in the article: [Bridge_with_netctl]. In the config for your container, just specify the host interface as whatever you name your bridge (usually br0). You can find a skeleton implementation in {{ic|/etc/netctl/examples/bridge}}.<br />
<br />
Alternatively, you can use an [OpenVPN Bridge], which is useful if you are already familiar with or running it.<br />
<br />
===NAT device setup===<br />
<br />
If you don't have a device you can easily bridge (such as a wlan) you can instead NAT using [netctl] by using the same {{ic|/etc/netctl/examples/bridge}} with the following changes:<br />
<br />
BindsToInterfaces=()<br />
IP=static<br />
Address=192.168.100.1/24<br />
FwdDelay=0<br />
<br />
Remember to copy the example to {{ic|/etc/netctl}} and name it whatever you want. You can use any address range and subnet mask you want for the interface (make sure is one you are not already using). Once this interface is up with netctl start <profile> you need to have [iptables] put your external interface in masquerade and you need to enable ip forwarding with [sysctl]:<br />
<br />
iptables -t nat -A POSTROUTING -o <external interface such as eth0 or wlan0> -j MASQUERADE<br />
sysctl net.ipv4.ip_forward=1<br />
<br />
To have the nat prepared at boot, and to save the iptables and sysctl states:<br />
<br />
netctl enable <profile><br />
iptables-save > /etc/iptables/iptables.rules<br />
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf<br />
<br />
In your container config file, you will need to assign an IP address:<br />
<br />
lxc.network.ipv4 = 192.168.100.2/24<br />
<br />
When you enter your container, you must set the default gateway to the netctl address, which in this example was 192.168.100.1. In any container including {{Pkg|ip}} the following command will work:<br />
<br />
ip route add default via 192.168.100.1<br />
<br />
Or on distros such as Ubuntu that use /etc/network:<br />
<br />
{{hc|/etc/network/if-up.d/routes|<br />
#! /bin/sh<br />
route add default gw 192.168.100.1<br />
exit 0}}<br />
<br />
===Starting a container on boot with [[Systemd]]===<br />
<br />
If you completed a container, starting it when the host boots is possible with the following systemd service template:<br />
<br />
{{bc|1=<br />
[Unit]<br />
Description=Linux Container %i<br />
After=network.target<br />
<br />
[Service]<br />
Type=forking<br />
ExecStartPre=/bin/mount --make-rprivate /<br />
ExecStart=/usr/bin/lxc-start -dn %i<br />
ExecStop=/usr/bin/lxc-stop -n %i<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
Save this file as {{ic|/etc/systemd/system/lxc@.service}}. Then you can register it with this command:<br />
<br />
systemctl enable lxc@CONTAINER_NAME.service<br />
<br />
==Container setup==<br />
<br />
'''Note''' Configuring a container that runs systemd requires specific configuration that is discussed [[lxc-systemd|here]].<br />
<br />
There are various different means to do this<br />
<br />
===Creating the filesystem===<br />
<br />
====Bootstrap====<br />
Bootstrap an install ( [http://blog.mudy.info/tag/mkarchroot/ mkarchroot], [http://wiki.debian.org/Debootstrap debootstrap], [http://www.xen-tools.org/software/rinse/faq.html rinse], [[Install From Existing Linux]] ). You can also just copy/use an existing installation’s complete root filesystem.<br />
<br />
For example, install a small debian to /home/lxc/debianfs<br />
<br />
yaourt -S debootstrap # install debootstrap from AUR<br />
<br />
# method 1:<br />
sudo debootstrap wheezy /home/lxc/debianfst http://ftp.us.debian.org/debian # use us mirror site install wheezy version<br />
# or, method 2: use faster tar ball method<br />
sudo debootstrap --make-tarball wheezy.packages.tgz sid http://debian.osuosl.org/debian/<br />
sudo debootstrap --unpack-tarball wheezy.packages.tgz wheezy debianfs<br />
<br />
====Download existing====<br />
You can download a base install tar ball. OpenVZ templates work just fine.<br />
<br />
====Using the lxc tools====<br />
/usr/bin/lxc-debian {create|destroy|purge|help}<br />
/usr/bin/lxc-fedora {create|destroy|purge|help}<br />
<br />
Nowadays you can create small and simple archlinux container<br />
# lxc-create -n containername -t archlinux -- -P vim,dhclient<br />
<br />
with the template specific options ''-P'' you can add a list of packages to the installation.<br />
<br />
===Creating the device nodes===<br />
Since [[udev]] does not work within the container, you will want to make sure that a certain minimum amount of devices is created for it. This may be done with the following script: <br />
#!/bin/bash<br />
ROOT=$(pwd)<br />
DEV=${ROOT}/dev<br />
mv ${DEV} ${DEV}.old<br />
mkdir -p ${DEV}<br />
mknod -m 666 ${DEV}/null c 1 3<br />
mknod -m 666 ${DEV}/zero c 1 5<br />
mknod -m 666 ${DEV}/random c 1 8<br />
mknod -m 666 ${DEV}/urandom c 1 9<br />
mkdir -m 755 ${DEV}/pts<br />
mkdir -m 1777 ${DEV}/shm<br />
mknod -m 666 ${DEV}/tty c 5 0<br />
mknod -m 600 ${DEV}/console c 5 1<br />
mknod -m 666 ${DEV}/tty0 c 4 0<br />
mknod -m 666 ${DEV}/full c 1 7<br />
mknod -m 600 ${DEV}/initctl p<br />
mknod -m 666 ${DEV}/ptmx c 5 2<br />
<br />
==Container configuration==<br />
<br />
===Configuration file===<br />
<br />
The main configuration files are used to describe how to originally create a container. Though these files may be located anywhere, /etc/lxc is probably a good place.<br />
<br />
'''23/Aug/2010: Be aware that the kernel may not handle additional whitespace in the configuration file. This has been experienced on "lxc.cgroup.devices.allow" settings but may also be true on other settings. If in doubt use only one space wherever whitespace is required.'''<br />
<br />
====Basic settings====<br />
<br />
lxc.utsname = $CONTAINER_NAME<br><br />
lxc.mount = $CONTAINER_FSTAB<br />
lxc.rootfs = $CONTAINER_ROOTFS<br><br />
lxc.network.type = veth<br />
lxc.network.flags = up<br />
lxc.network.link = br0<br />
lxc.network.hwaddr = $CONTAINER_MACADDR <br />
lxc.network.ipv4 = $CONTAINER_IPADDR<br />
lxc.network.name = $CONTAINER_DEVICENAME<br />
<br />
=====Basic settings explained=====<br />
<br />
'''lxc.utsname''' : This will be the name of the cgroup for the container. Once the container is started, you should be able to see a new folder named ''/cgroup/$CONTAINER_NAME''.<br />
<br />
Furthermore, this will also be the value returned by ''hostname'' from within the container. Assuming you have not removed access, the container may overwrite this with it's init script.<br />
<br />
'''lxc.mount''' : This points to an fstab formatted file that is a listing of the mount points used when ''lxc-start'' is called. This file is further explained [[#Configuring fstab|further]]<br />
<br />
====Terminal settings====<br />
<br />
The following configuration is optional. You may add them to your main configuration file if you wish to login via lxc-console, or through a terminal ( e.g.: {{Keypress|Ctrl+Alt+F1}} ).<br />
<br />
The container can be configured with virtual consoles (tty devices). These may be devices from the host that the container is given permission to use (by its configuration file) or they may be devices created locally within the container.<br />
<br />
The host's virtual consoles are accessed using the key sequence {{Keypress|Alt+Fn}} (or {{Keypress|Ctrl+Alt+Fn}} from within an X11 session). The left {{Keypress|Alt}} key reaches consoles 1 through 12 and the right {{Keypress|Alt}} key reaches consoles 13 through 24. Further virtual consoles may be reached by the {{Keypress|Alt+→}} key sequence which steps to the next virtual console.<br />
<br />
The container's local virtual consoles may be accessed using the "lxc-console" command.<br />
<br />
===== Host Virtual Consoles =====<br />
<br />
The container may access the host's virtual consoles if the host is not using them and the container's configuration allows it. Typical container configuration would deny access to all devices and then allow access to specific devices like this:<br />
<br />
lxc.cgroup.devices.deny = a # Deny all access to devices<br />
lxc.cgroup.devices.allow = c 4:0 rwm # /dev/tty0<br />
lxc.cgroup.devices.allow = c 4:1 rwm # /dev/tty1<br />
lxc.cgroup.devices.allow = c 4:2 rwm # /dev/tty2<br />
<br />
For a container to be able to use a host's virtual console it must not be in use by the host. This will most likely require the host's {{ic|/etc/inittab}} to be modified to ensure no getty or other process runs on any virtual console that is to be used by the container.<br />
<br />
After editing the host's {{ic|/etc/inittab}} file, issung a {{ic|killall -HUP init}} will terminate any getty processes that are no longer configured and this will free up the virtual conosole for use by the container.<br />
<br />
Note that local virtual consoles take precedence over host virtual consoles. This is described in the next section.<br />
<br />
===== Local Virtual Consoles =====<br />
<br />
The number of local virtual consoles that the container has is defined in the container's configuration file (normally on the host in {{ic|/etc/lxc}}). It is defined thus:<br />
<br />
lxc.tty = n<br />
<br />
where {{ic|n}} is the number of local virtual consoles required.<br />
<br />
The local virtual consoles are numbered starting at tty1 and take precedence over any of the host's virtual consoles that the container might be entitled to use. This means that, for example, if n = 2 then the container will not be able to use the host's tty1 and tty2 devices even entitled to do so by its configuration file. Setting n to 0 will prevent local virtual consoles from being created thus allowing full access to any of host's virtual consoles that the container might be entitled to use.<br />
<br />
===== /dev/tty Device Files =====<br />
The container must have a tty device file (e.g. {{ic|/dev/tty1}}) for each virtual console (host or local). These can be created thus:<br />
# mknod -m 666 /dev/tty1 c 4 1<br />
# mknod -m 666 /dev/tty2 c 4 2<br />
<br />
and so on...<br />
<br />
In the above, {{ic|c}} means character device, {{ic|4}} is the major device number (tty devices) and {{ic|1}}, {{ic|2}}, {{ic|3}}, etc., is the minor device number (specific tty device). Note that {{ic|/dev/tty0}} is special and always refers to the current virtual console.<br />
<br />
For further info on tty devices, read this: http://www.kernel.org/pub/linux/docs/device-list/devices.txt<br />
<br />
'''If a virtual console's device file does not exist in the container, then the container cannot use the virtual console.'''<br />
<br />
===== Configuring Log-In Ability =====<br />
<br />
The container's virtual consoles may be used for login sessions if the container runs "getty" services on their tty devices. This is normally done by the container's "init" process and is configured in the container's {{ic|/etc/inittab}} file using lines like this:<br />
<br />
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux<br />
<br />
There is one line per device. The first part {{ic|c1}} is just a unique label, the second part defines applicable run levels, the third part tells init to start a new getty when the current one terminates and the last part gives the command line for the getty. For further information refer to {{ic|man init}}.<br />
<br />
If there is no getty process on a virtual console it will not be possible to log in via that virtual console. A getty is not required on a virtual console unless it is to be used to log in.<br />
<br />
If a virtual console is to allow root logins it also needs to be listed in the container's {{ic|/etc/securetty}} file.<br />
<br />
===== Troubleshooting virtual consoles =====<br />
<br />
If lxc.tty is set to a number, n, then no host devices numbered n or below will be accessible even if the above configuration is present because they will be replaced with local virtual consoles instead.<br />
<br />
A tty device file's major number will change from 4 to 136 if it is a local virtual console. This change is visible within the container but not when viewing the container's devices from the host's filesystem. This information is useful when troubleshooting.<br />
<br />
This can be checked from within a container thus:<br />
<br />
# ls -Al /dev/tty*<br />
crw------- 1 root root 136, 10 Aug 21 21:28 /dev/tty1<br />
crw------- 1 root root 4, 2 Aug 21 21:28 /dev/tty2<br />
<br />
===== Pseudo Terminals =====<br />
<br />
lxc.pseudo = 1024<br />
<br />
Maximum amount of pseudo terminals that may be created in {{ic|/dev/pts}}. Currently, assuming the kernel was compiled with {{ic|CONFIG_DEVPTS_MULTIPLE_INSTANCES}}, this tells lxc-start to mount the devpts filesystem with the newinstance flag.<br />
<br />
====Host device access settings====<br />
<br />
lxc.cgroup.devices.deny = a # Deny all access to devices<br><br />
lxc.cgroup.devices.allow = c 1:3 rwm # dev/null<br />
lxc.cgroup.devices.allow = c 1:5 rwm # dev/zero<br><br />
lxc.cgroup.devices.allow = c 5:1 rwm # dev/console<br />
lxc.cgroup.devices.allow = c 5:0 rwm # dev/tty<br />
lxc.cgroup.devices.allow = c 4:0 rwm # dev/tty0<br><br />
lxc.cgroup.devices.allow = c 1:9 rwm # dev/urandom<br />
lxc.cgroup.devices.allow = c 1:8 rwm # dev/random<br />
lxc.cgroup.devices.allow = c 136:* rwm # dev/pts/*<br />
lxc.cgroup.devices.allow = c 5:2 rwm # dev/pts/ptmx<br><br />
# No idea what this is .. dev/bsg/0:0:0:0 ???<br />
lxc.cgroup.devices.allow = c 254:0 rwm<br />
<br />
=====Host device access settings explained=====<br />
<br />
'''lxc.cgroup.devices.deny''' : By settings this to ''a'', we are stating that the container has access to no devices unless explicitely defined within the configuration file.<br />
<br />
===Configuration file notes===<br />
====At runtime /dev/ttyX devices are recreated====<br />
If you have enabled multiple DevPTS instances in your kernel, lxc-start will recreate ''lxc.tty'' amount of {{ic|/dev/ttyX}} devices when it is executed.<br />
<br />
This means that you will have ''lxc.tty'' amount of pseudo ttys. If you are planning on accessing the container via a "real" terminal ({{Keypress|Ctrl+Alt+FX}}), make sure that it is a number that is inferior to ''lxc.tty''.<br />
<br />
To tell whether it has been re-created, just log in to the container via either lxc-console or SSH and perform a {{ic|ls -Al}} command on the tty. Devices with a major number of 4 are "real" tty devices whereas a major number of 136 indicates a pts.<br />
<br />
Be aware that this is only visible from within the container itself and not from the host.<br />
<br />
====Containers have access to host's TTY nodes====<br />
<br />
If you do not properly restrict the container's access to the /dev/tty nodes, the container may have access to the host's.<br />
<br />
Taking into consideration that, as previously mentioned, lxc-start recreates ''lxc.tty'' amount of /dev/tty devices, any tty nodes present in the container that are of a greater minor number than ''lxc.tty'' will be linked to the host's.<br />
<br />
=====To access the container from a host TTY=====<br />
<br />
# On the host, verify no getty is started for that tty by checking ''/etc/inittab''.<br />
# In the container, start a getty for that tty.<br />
<br />
=====To prevent access to the host TTY=====<br />
<br />
Please have a look at the configuration statements found in [[#Host device access settings|host device access settings]].<br />
<br />
Via the ''lxc.cgroup.devices.deny = a'' we are preventing access to all host level devices. And then, throuh ''lxc.cgroup.devices.allow = c 4:'''1''' rwm'' we are allowing access to the host's /dev/tty'''1'''. In the above example, simply removing all allow statements for major number 4 and minor > 1 should be sufficient.<br />
<br />
=====To test this access=====<br />
<br />
I may be off here, but looking at the output of the ''ls'' command below should show you both the ''major'' and ''minor'' device numbers. These are located after the user and group and represented as : 4, 2<br />
<br />
# Set lxc.tty to 1<br />
# Make there that the container has dev/tty1 and /dev/tty2<br />
# ''lxc-start'' the container<br />
# ''lxc-console'' into the container<br />
# ''ls -Al /dev/tty''<br>crw------- 1 root root 4, 2 Dec 2 00:20 /dev/tty2<br />
# ''echo "test output" > /dev/tty2''<br />
# ''Ctrl+Alt+F2'' to view the host's second terminal<br />
# You should see "test output" printed on the screen<br />
<br />
====Configuration troubleshooting====<br />
<br />
=====console access denied: Permission denied=====<br />
<br />
If, when executing lxc-console, you receive the error ''lxc-console: console access denied: Permission denied'' you have most likely either omitted lxc.tty or set it to 0.<br />
<br />
=====lxc-console does not provide a login prompt=====<br />
<br />
Though you are reaching a tty on the container, it most likely is not running a getty. You will want to double check that you have a getty defined in the container's ''/etc/inittab'' for the specific tty.<br />
<br />
If using '''systemd''' chances are that a problem with the ''getty@.service'' script will bite you. The script only starts a getty if ''/dev/tty0'' exists. And since this condition is not met in the container, you get no getty. Use this patch, to let ''lxc-console'' finally work.<br />
<br />
<pre><br />
--- /usr/lib/systemd/system/getty@.service.orig 2013-05-30 12:55:28.000000000 +0000<br />
+++ /usr/lib/systemd/system/getty@.service 2013-06-16 23:05:49.827146901 +0000<br />
@@ -20,7 +20,8 @@<br />
# On systems without virtual consoles, don't start any getty. (Note<br />
# that serial gettys are covered by serial-getty@.service, not this<br />
# unit<br />
-ConditionPathExists=/dev/tty0<br />
+ConditionVirtualization=|lxc<br />
+ConditionPathExists=|/dev/tty0<br />
<br />
[Service]<br />
# the VT is cleared by TTYVTDisallocate<br />
</pre><br />
<br />
For more than one getty you have to explicitly enable the needed service (and decrease ''lxc.tty'' in the container configuration). In the ''real'' system a configurable number of getty-services is automatically created from the ''systemd-logind.service''<br />
<br />
===Configuring fstab===<br />
none $CONTAINER_ROOTFS/dev/pts devpts defaults 0 0<br />
none $CONTAINER_ROOTFS/proc proc defaults 0 0<br />
none $CONTAINER_ROOTFS/sys sysfs defaults 0 0<br />
none $CONTAINER_ROOTFS/dev/shm tmpfs defaults 0 0<br />
<br />
This fstab is used by lxc-start when mounting the container. As such, you can define any mount that would be possible on the host such as bind mounting to the host's own filesystem. However, please be aware of any and all security implications that this may have.<br />
<br />
'''Warning''' : You certainly do not want to bind mount the host's /dev to the container as this would allow it to, amongst other things, reboot the host.<br />
<br />
==Container Creation and Destruction==<br />
<br />
===Creation===<br />
lxc-create -f $CONTAINER_CONFIGPATH -n $CONTAINER_NAME<br />
<br />
''lxc-create'' will create /var/lib/lxc/$CONTAINER_NAME with a new copy of the container configuration file found in $CONTAINER_CONFIGPATH.<br />
<br />
As such, if you need to make modifications to the container's configuration file, it's advisable to modify only the original file and then perform ''lxc-destroy'' and ''lxc-create'' operations afterwards. No data will be lost by doing this.<br />
<br />
'''Note''' : When copying the file over, lxc-create will strip all comments from the file.<br />
<br />
'''Note''' : As of lxc-git from atleast ''2009-12-01'', performing lxc-create no longer splits the config file into multiple files and folders. Therefore, we only have the configuration file to worry about.<br />
<br />
===Destruction===<br />
lxc-destroy -n $CONTAINER_NAME<br />
<br />
This will delete /var/lib/lxc/$CONTAINER_NAME which only contains configuration files. No data will be lost.<br />
<br />
==Readying the host for virtualization==<br />
===/etc/inittab===<br />
# Comment out any getty that are not required<br />
<br />
===/etc/rc.sysinit replacement===<br />
Since we are running in a virtual environment, a number of steps undertaken by rc.sysinit are superfluous and may even flat out fail or stall. As such, until the initscripts are made virtualization aware, this will take some hack and slash.<br />
<br />
For now, simply replace the file : <br />
#!/bin/bash<br />
# Whatever is needed to clean out old daemon/service pids from your container<br />
rm -f $(find /var/run -name '*pid')<br />
rm -f /var/lock/subsys/*<br><br />
# Configure network settings<br />
## You can either use dhcp here, manually configure your<br />
## interfaces or try to get the rc.d/network script working.<br />
## There have been reports that network failed in this<br />
## environment.<br />
ip route add default via 192.168.10.1<br />
echo > /etc/resolv.conf search your-domain<br />
echo >> /etc/resolv.conf nameserver 192.168.10.1<br><br />
# Initally we do not have any container originated mounts<br />
rm -f /etc/mtab<br />
touch /etc/mtab<br />
<br />
===/etc/rc.conf cleanup===<br />
You may want to remove any and all hardware related daemons from the DAEMONS line. Furthermore, depending on your situation, you may also want to remove the ''network'' daemon.<br />
<br />
===TBC===<br />
<br />
==Known Problems==<br />
<br />
===Container cannot be shutdown if using systemd===<br />
''lxc-shutdown'' should be used for clean shutdown or reboot of the container, but only the ''reboot'' is working out of the box when using systemd.<br />
<br />
Shutdown will be signalled to the container with ''SIGPWR'' but current systemd doesn't have any services in place to handle the ''sigpwr.target''. But for the container we can simply reuse the ''poweroff.target'' and get exactly what we want.<br />
# ln -s /usr/lib/systemd/system/poweroff.target ${CONTAINER_RFS}/etc/systemd/system/sigpwr.target</div>Zannyhttps://wiki.archlinux.org/index.php?title=Advanced_traffic_control&diff=268223Advanced traffic control2013-07-27T09:48:24Z<p>Zanny: Fixed some awkward wording</p>
<hr />
<div>{{Stub|Still unfinished! Need to add more qdiscs, more examples, fix orthography, etc.}}<br />
[[Category:Networking]]<br />
{{Article summary start}}<br />
{{Article summary text|This article gives an introduction to traffic shaping and control by using queueing disciplines. }}<br />
{{Article summary heading|Related}}<br />
{{Article summary text|After reading this, reading the "Linux Advanced Routing and Traffic Control" article is highly recommended}}<br />
{{Article summary end}}<br />
<br />
One of the advanced and least known network features from the linux kernel, is the ability to control and shape the traffic. While is common for users know the basic use of iproute2 by using the {{ic|ip}} command, is very common to ignore other powerful features like the ones offered by the {{ic|tc}} command.<br />
<br />
The goal of this article is to show how to shape the traffic by using queueing disciplines. For instance, if you ever had to forbid downloads or torrents on a network that you admin, and not because you were against those services, but because users were "abusing" the bandwidth, then you could use queueing disciplines to allow that kind of traffic and, at the same time, be sure that one user can't slowdown the entire network.<br />
<br />
This is an advanced article; you are expected to have certain knowledge of network devices, iptables, etc.<br />
<br />
==Queueing==<br />
Queuing controls how data is '''sent'''; we have no way to control how we receive data. However, since TCP/IP packages are sent using a slow start - that is, it starts sending the packages slow and keeps sending them faster and faster, until packages start getting rejected - is therefore possible to control how much traffic is received on a lan by dropping packages that arrive at a router before they get forwarded.<br />
<br />
That is, we need to set the queueing disciplines (qdiscs for short) '''on the router''' to start dropping packages according to our rules ''on the network device connected to the lan'', '''NOT on the network device connected to the internet'''.<br />
<br />
And in order to be the ones controlling the shape of the traffic, we need to be the slowest link of the chain; that is, if the connection has a maximum download speed of 500k, is a good idea to set the limit of the output to 450k. Otherwise, is going to be the modem shaping the traffic instead of us.<br />
<br />
Each network device has a ''root'' where a qdisc can be set. By default, this root has a fifo_fast qdisc. (more info below)<br />
<br />
There are two kind of diciplines: classful and classless. <br />
<br />
Classful qdiscs allows you to create classes, which work like branches on a tree. You can then set rules to filter packages to each class. Each class can have assigned other classful or classless qdisc.<br />
<br />
Classless qdiscs does not allows to add more qdiscs to it.<br />
<br />
Before starting to configure qdiscs, first we need to remove any existing qdisc from the root. This will remove any qdisc from the eth0 device:<br />
<br />
tc qdisc del dev eth0 root<br />
<br />
===Classless Qdiscs===<br />
These are queues that do basic manage of traffic by reordering, slowing or dropping packets. This qdiscs don't allow the creation of classes.<br />
====fifo_fast====<br />
This is the default qdisc. In every network device where no custom qdisc configuration has been applied, fifo_fast is the qdisc set on the root. fifo means ''First In First Out'', that is, the first package to get in, is going to be the first to be sent. This way, no package get special treatment.<br />
====Token Bucket Filter (TBF) ====<br />
This qdisc allows bytes to pass, as long certain rate limit is not passed. <br />
<br />
It works by creating a virtual bucket and then dropping tokens at certain speed, filling that bucket. Each packages takes a virtual token from the bucket, and use it to get permission to pass. If too many packages arrive, the bucket will have no more tokens left and the remaining packages are going to wait certain time for new tokens. If the tokens don't arrive fast enough, the packages are going to be dropped. On the opposite case (too little packages to be sent), the tokens can be used to allow some burst (uploading pikes) to happen. <br />
<br />
That means this qdisc is useful to slow down an interface.<br />
<br />
Example:<br />
<br />
Uploading can fill a modem's queue and as result, while you are uploading a huge file, the interactivity is destroyed.<br />
<br />
tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1540 # The upload speed should be changed to your upload speed minus a small few percent (to be the slowest link of the chain)<br />
<br />
This configuration sets a TBF for the ppp0 device, limiting the upload speed to 220k, setting a latency of 50ms for a package before being dropped, and a burst of 1540.<br />
It works by keeping the queueing on the linux machine (where it can be shaped) instead of the modem.<br />
<br />
====Stochastic Fairness Queueing (SFQ)====<br />
This is a round-robin qdisc. Each conversation is set on a fifo queue, and on each round, each conversation has the possibility to send data. Thats why is called "Fairness"<br />
Is also called "Stochastic" because it does not really creates a queue for each conversation, instead it uses a hashing algorithm. For the hash, there is the chance for multiple sessions on the same bucket. To solve this, SFQ changes its hashing algorithm often to prevent that this becomes noticeable.<br />
<br />
Example:<br />
<br />
This configuration sets SFQ on the root on the eth0 device, configuring it to perturb (alter) its hashing algorithm every 10 seconds.<br />
<br />
tc qdisc add dev eth0 root sfq perturb 10<br />
<br />
====[[Wikipedia:CoDel|CoDel]] and Fair Queueing CoDel====<br />
CoDel (Controlled Delay) is an attempt to limit buffer bloating and minimize latency in saturated network links by distinguishing good queues (that empty quickly) from bad queues that stay saturated and slow. The [[Wikipedia:Fair_queueing|fair queueing]] Codel utilizes fair queues to more readily distribute available bandwidth between Codel flows. The configuration options are limited intentionally, since the algorithm is designed to work with dynamic networks, and there are some corner cases to consider that are discussed on the [http://www.bufferbloat.net/projects/codel/wiki bufferbloat wiki concerning Codel], including issues on very large switches and sub megabit connections. Additional information is available in:<br />
<br />
man tc-codel<br />
man tc-fq_codel<br />
<br />
{{Warning|Make sure your ethernet driver supports Byte Queue Limits before using CoDel. [http://www.bufferbloat.net/projects/bloat/wiki/BQL_enabled_drivers Here is a list of drivers supported as of kernel 3.6]}}<br />
<br />
===Classful Qdiscs===<br />
<br />
Classful qdiscs are very useful if you have different kinds of traffic which should have differing treatment.<br />
A classful qdisc allows you to have branches. The branches are called classes.<br />
<br />
Setting a classful qdisc requires that you name each class. To name a class, is used the {{ic|classid}} parameter. The {{ic|parent}} parameter, as the name indicates, point to the parent of the class.<br />
<br />
All the names should be set as {{ic|x:y}} where {{ic|x}} is the name of the root, and {{ic|y}} is the name of the class. Normally, root is called {{ic|1:}} and their children are things like {{ic|1:10}}<br />
<br />
====Hierarchical Token Bucket (HTB)====<br />
<br />
<br />
HTB is well suited for setups where you have a fixed amount of bandwidth which you want to divide for different purposes, giving each purpose a guaranteed bandwidth, with the possibility of specifying how much bandwidth can be borrowed.<br />
Here is an example with comments explaining what does each line:<br />
{{bc|<br />
# This line sets a HTB qdisc on the root of eth0, and it specifies that the class 1:30 is used by default. It sets the name of the root as 1:, for future references.<br />
tc qdisc add dev eth0 root handle 1: htb default 30<br />
<br />
# This creates a class called 1:1, which is direct descendant of root (the parent is 1:), this class gets assigned also an HTB qdisc, and then it sets a max rate of 6mbits, with a burst of 15k<br />
tc class add dev eth0 parent 1: classid 1:1 htb rate 6mbit burst 15k<br />
<br />
# The previous class has this branches:<br />
<br />
# Class 1:10, which has a rate of 5mbit<br />
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit burst 15k<br />
<br />
# Class 1:20, which has a rate of 3mbit<br />
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 3mbit ceil 6mbit burst 15k<br />
<br />
# Class 1:30, which has a rate of 1kbit. This one is the default class.<br />
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 6mbit burst 15k<br />
<br />
# Martin Devera, author of HTB, then recommends SFQ for beneath these classes:<br />
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 <br />
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10 <br />
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10 <br />
}}<br />
==Filters==<br />
Once a classful qdisc is set on root (which may contain classes with more classful qdiscs), is necessary to use filters to indicate which package should be processed by which class.<br />
<br />
On a classless-only environment, filters are not necessary.<br />
<br />
You can filter packages by using tc, or a combination of tc + iptables.<br />
<br />
===Using tc only===<br />
Here is an example explaining a filter:<br />
{{bc|<br />
# This command adds a filter to the qdisc 1: of dev eth0, set the priority of the filter to 1, matches packages with a destination port 22, and make the class 1:10 process the packages that match<br />
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dport 22 0xffff flowid 1:10<br />
<br />
# This filter is attached to the qdisc 1: of dev eth0, has a priority of 2, and matches the ip address 4.3.2.1 exactly, and matches packages with a source port of 80, then makes class 1:11 process the packages that match<br />
tc filter add dev eth0 parent 1: protocol ip prio 2 u32 match ip src 4.3.2.1/32 match ip sport 80 0xffff flowid 1:11<br />
}}<br />
===Using tc + iptables===<br />
<br />
iptables has a method called fwmark, which can be used to add a mark to packages, a mark that can survive routing across interfaces.<br />
<br />
First, this makes packages marked with 6, to be processed by the 1:30 class<br />
{{bc|<br />
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 6 fw flowid 1:30 <br />
}}<br />
This sets that mark 6, using iptables<br />
{{bc|<br />
iptables -A PREROUTING -t mangle -i eth0 -j MARK --set-mark 6<br />
}}<br />
You can then use the regular way of iptables to match packages and then use fwmark to mark them.</div>Zannyhttps://wiki.archlinux.org/index.php?title=Advanced_traffic_control&diff=268220Advanced traffic control2013-07-27T09:45:24Z<p>Zanny: Added a qdisc subsect for Codel</p>
<hr />
<div>{{Stub|Still unfinished! Need to add more qdiscs, more examples, fix orthography, etc.}}<br />
[[Category:Networking]]<br />
{{Article summary start}}<br />
{{Article summary text|This article gives an introduction to traffic shaping and control by using queueing disciplines. }}<br />
{{Article summary heading|Related}}<br />
{{Article summary text|After reading this, reading the "Linux Advanced Routing and Traffic Control" article is highly recommended}}<br />
{{Article summary end}}<br />
<br />
One of the advanced and least known network features from the linux kernel, is the ability to control and shape the traffic. While is common for users know the basic use of iproute2 by using the {{ic|ip}} command, is very common to ignore other powerful features like the ones offered by the {{ic|tc}} command.<br />
<br />
The goal of this article is to show how to shape the traffic by using queueing disciplines. For instance, if you ever had to forbid downloads or torrents on a network that you admin, and not because you were against those services, but because users were "abusing" the bandwidth, then you could use queueing disciplines to allow that kind of traffic and, at the same time, be sure that one user can't slowdown the entire network.<br />
<br />
This is an advanced article; you are expected to have certain knowledge of network devices, iptables, etc.<br />
<br />
==Queueing==<br />
Queuing controls how data is '''sent'''; we have no way to control how we receive data. However, since TCP/IP packages are sent using a slow start - that is, it starts sending the packages slow and keeps sending them faster and faster, until packages start getting rejected - is therefore possible to control how much traffic is received on a lan by dropping packages that arrive at a router before they get forwarded.<br />
<br />
That is, we need to set the queueing disciplines (qdiscs for short) '''on the router''' to start dropping packages according to our rules ''on the network device connected to the lan'', '''NOT on the network device connected to the internet'''.<br />
<br />
And in order to be the ones controlling the shape of the traffic, we need to be the slowest link of the chain; that is, if the connection has a maximum download speed of 500k, is a good idea to set the limit of the output to 450k. Otherwise, is going to be the modem shaping the traffic instead of us.<br />
<br />
Each network device has a ''root'' where a qdisc can be set. By default, this root has a fifo_fast qdisc. (more info below)<br />
<br />
There are two kind of diciplines: classful and classless. <br />
<br />
Classful qdiscs allows you to create classes, which work like branches on a tree. You can then set rules to filter packages to each class. Each class can have assigned other classful or classless qdisc.<br />
<br />
Classless qdiscs does not allows to add more qdiscs to it.<br />
<br />
Before starting to configure qdiscs, first we need to remove any existing qdisc from the root. This will remove any qdisc from the eth0 device:<br />
<br />
tc qdisc del dev eth0 root<br />
<br />
===Classless Qdiscs===<br />
These are queues that do basic manage of traffic by reordering, slowing or dropping packets. This qdiscs don't allow the creation of classes.<br />
====fifo_fast====<br />
This is the default qdisc. In every network device where no custom qdisc configuration has been applied, fifo_fast is the qdisc set on the root. fifo means ''First In First Out'', that is, the first package to get in, is going to be the first to be sent. This way, no package get special treatment.<br />
====Token Bucket Filter (TBF) ====<br />
This qdisc allows bytes to pass, as long certain rate limit is not passed. <br />
<br />
It works by creating a virtual bucket and then dropping tokens at certain speed, filling that bucket. Each packages takes a virtual token from the bucket, and use it to get permission to pass. If too many packages arrive, the bucket will have no more tokens left and the remaining packages are going to wait certain time for new tokens. If the tokens don't arrive fast enough, the packages are going to be dropped. On the opposite case (too little packages to be sent), the tokens can be used to allow some burst (uploading pikes) to happen. <br />
<br />
That means this qdisc is useful to slow down an interface.<br />
<br />
Example:<br />
<br />
Uploading can fill a modem's queue and as result, while you are uploading a huge file, the interactivity is destroyed.<br />
<br />
tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1540 # The upload speed should be changed to your upload speed minus a small few percent (to be the slowest link of the chain)<br />
<br />
This configuration sets a TBF for the ppp0 device, limiting the upload speed to 220k, setting a latency of 50ms for a package before being dropped, and a burst of 1540.<br />
It works by keeping the queueing on the linux machine (where it can be shaped) instead of the modem.<br />
<br />
====Stochastic Fairness Queueing (SFQ)====<br />
This is a round-robin qdisc. Each conversation is set on a fifo queue, and on each round, each conversation has the possibility to send data. Thats why is called "Fairness"<br />
Is also called "Stochastic" because it does not really creates a queue for each conversation, instead it uses a hashing algorithm. For the hash, there is the chance for multiple sessions on the same bucket. To solve this, SFQ changes its hashing algorithm often to prevent that this becomes noticeable.<br />
<br />
Example:<br />
<br />
This configuration sets SFQ on the root on the eth0 device, configuring it to perturb (alter) its hashing algorithm every 10 seconds.<br />
<br />
tc qdisc add dev eth0 root sfq perturb 10<br />
<br />
====[[Wikipedia:CoDel|CoDel]] and Fair Queueing CoDel====<br />
CoDel is an attempt to limit buffer bloats and minimize latency in saturated network links by distinguishing good queues (that empty quickly) from bad queues that stay saturated and slow. The fair queueing Codel combines the traditional [[Wikipedia:Fair_queueing|Fair Queue]] scheduling with CoDel to more readily distribute available bandwidth between CoDel flows. The configuration options are limited intentioanlly, since the algorithm is designed to work with dynamic networks, and there are some corner cases to consider that are discussed on the [http://www.bufferbloat.net/projects/codel/wiki bufferbloat wiki concerning CoDel], including issues on very large switches and sub megabit connections. In general, CoDel is intended to produce noticeable latency improvements under load, and should work out of the box. Additional information is available in:<br />
<br />
man tc-codel<br />
man tc-fq_codel<br />
<br />
{{Warning|Make sure your ethernet driver supports Byte Queue Limits before using CoDel. [http://www.bufferbloat.net/projects/bloat/wiki/BQL_enabled_drivers Here is a list of drivers supported as of kernel 3.6]}}<br />
<br />
===Classful Qdiscs===<br />
<br />
Classful qdiscs are very useful if you have different kinds of traffic which should have differing treatment.<br />
A classful qdisc allows you to have branches. The branches are called classes.<br />
<br />
Setting a classful qdisc requires that you name each class. To name a class, is used the {{ic|classid}} parameter. The {{ic|parent}} parameter, as the name indicates, point to the parent of the class.<br />
<br />
All the names should be set as {{ic|x:y}} where {{ic|x}} is the name of the root, and {{ic|y}} is the name of the class. Normally, root is called {{ic|1:}} and their children are things like {{ic|1:10}}<br />
<br />
====Hierarchical Token Bucket (HTB)====<br />
<br />
<br />
HTB is well suited for setups where you have a fixed amount of bandwidth which you want to divide for different purposes, giving each purpose a guaranteed bandwidth, with the possibility of specifying how much bandwidth can be borrowed.<br />
Here is an example with comments explaining what does each line:<br />
{{bc|<br />
# This line sets a HTB qdisc on the root of eth0, and it specifies that the class 1:30 is used by default. It sets the name of the root as 1:, for future references.<br />
tc qdisc add dev eth0 root handle 1: htb default 30<br />
<br />
# This creates a class called 1:1, which is direct descendant of root (the parent is 1:), this class gets assigned also an HTB qdisc, and then it sets a max rate of 6mbits, with a burst of 15k<br />
tc class add dev eth0 parent 1: classid 1:1 htb rate 6mbit burst 15k<br />
<br />
# The previous class has this branches:<br />
<br />
# Class 1:10, which has a rate of 5mbit<br />
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit burst 15k<br />
<br />
# Class 1:20, which has a rate of 3mbit<br />
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 3mbit ceil 6mbit burst 15k<br />
<br />
# Class 1:30, which has a rate of 1kbit. This one is the default class.<br />
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 6mbit burst 15k<br />
<br />
# Martin Devera, author of HTB, then recommends SFQ for beneath these classes:<br />
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 <br />
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10 <br />
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10 <br />
}}<br />
==Filters==<br />
Once a classful qdisc is set on root (which may contain classes with more classful qdiscs), is necessary to use filters to indicate which package should be processed by which class.<br />
<br />
On a classless-only environment, filters are not necessary.<br />
<br />
You can filter packages by using tc, or a combination of tc + iptables.<br />
<br />
===Using tc only===<br />
Here is an example explaining a filter:<br />
{{bc|<br />
# This command adds a filter to the qdisc 1: of dev eth0, set the priority of the filter to 1, matches packages with a destination port 22, and make the class 1:10 process the packages that match<br />
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dport 22 0xffff flowid 1:10<br />
<br />
# This filter is attached to the qdisc 1: of dev eth0, has a priority of 2, and matches the ip address 4.3.2.1 exactly, and matches packages with a source port of 80, then makes class 1:11 process the packages that match<br />
tc filter add dev eth0 parent 1: protocol ip prio 2 u32 match ip src 4.3.2.1/32 match ip sport 80 0xffff flowid 1:11<br />
}}<br />
===Using tc + iptables===<br />
<br />
iptables has a method called fwmark, which can be used to add a mark to packages, a mark that can survive routing across interfaces.<br />
<br />
First, this makes packages marked with 6, to be processed by the 1:30 class<br />
{{bc|<br />
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 6 fw flowid 1:30 <br />
}}<br />
This sets that mark 6, using iptables<br />
{{bc|<br />
iptables -A PREROUTING -t mangle -i eth0 -j MARK --set-mark 6<br />
}}<br />
You can then use the regular way of iptables to match packages and then use fwmark to mark them.</div>Zannyhttps://wiki.archlinux.org/index.php?title=RAID&diff=267830RAID2013-07-24T18:36:18Z<p>Zanny: The wikipedia article only covers MBR partition types.</p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[Category:File systems]]<br />
[[it:RAID]]<br />
{{Article summary start}}<br />
{{Article summary text|This article explains what RAID is and how to install, configure and maintain it.}}<br />
{{Article summary heading|Required software}}<br />
{{Article summary link|mdadm|http://neil.brown.name/blog/mdadm}}<br />
{{Article summary link|parted|http://www.gnu.org/software/parted/}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Software RAID and LVM}}<br />
{{Article summary wiki|Installing with Fake RAID}}<br />
{{Article summary wiki|Convert a single drive system to RAID}}<br />
{{Article summary end}}<br />
<br />
== Introduction ==<br />
{{Wikipedia|RAID}}<br />
Redundant Array of Independent Disks (RAID) devices are virtual devices created from two or more real block devices. This allows multiple devices (typically disk drives or partitions thereof) to be combined into a single device to hold (for example) a single filesystem. RAID is designed to prevent data loss in the event of a hard disk failure. There are different [[Wikipedia:Standard RAID levels|levels of RAID]].<br />
<br />
===Standard RAID levels===<br />
; [[Wikipedia:Standard RAID levels#RAID 0|RAID 0]]: Uses striping to combine disks. Not really RAID in that it ''provides no redundancy''. It does, however, ''provide a big speed benefit''. This example will utilize RAID 0 for swap, on the assumption that a desktop system is being used, where the speed increase is worth the possibility of system crash if one of your drives fails. On a server, a RAID 1 or RAID 5 array is more appropriate. The size of a RAID 0 array block device is the size of the smallest component partition times the number of component partitions.<br />
; [[Wikipedia:Standard RAID levels#RAID 1|RAID 1]]: The most straightforward RAID level: straight mirroring. As with other RAID levels, it only makes sense if the partitions are on different physical disk drives. If one of those drives fails, the block device provided by the RAID array will continue to function as normal. The example will be using RAID 1 for everything except swap. Note that RAID 1 is the only option for the boot partition, because bootloaders (which read the boot partition) do not understand RAID, but a RAID 1 component partition can be read as a normal partition. The size of a RAID 1 array block device is the size of the smallest component partition.<br />
; [[Wikipedia:Standard RAID levels#RAID 5|RAID 5]]: Requires 3 or more physical drives, and provides the redundancy of RAID 1 combined with the speed and size benefits of RAID 0. RAID 5 uses striping, like RAID 0, but also stores parity blocks distributed across each member disk. In the event of a failed disk, these parity blocks are used to reconstruct the data on a replacement disk. RAID 5 can withstand the loss of one member disk.<br />
: {{Note|RAID 5 is a common choice due to its combination of speed and data redundancy. The caveat is that if 1 drive were to fail and before that drive was replaced another drive failed, all data will be lost. For excellent information regarding this, see the ''[http://ubuntuforums.org/showthread.php?t&#x3d;1588106 RAID5 Risks]'' discussion thread on the Ubuntu forums. The best alternative to RAID5 when redundancy is crucial is RAID 10.}}<br />
<br />
===Nested RAID levels===<br />
; [[Wikipedia:Nested RAID levels#RAID 1 + 0|RAID 1+0]]: Commonly referred to as ''RAID 10'', is a nested RAID that combines two of the standard levels of RAID to gain performance and additional redundancy.<br />
<br />
=== Redundancy ===<br />
{{Warning|Installing a system with RAID is a complex process that may destroy data. Be sure to backup all data before proceeding.}}<br />
<br />
RAID does not guarantee that data is safe. A RAID will not protect data if there is a fire, the computer is stolen or multiple hard drives fail. Therefore it is important to make backups (see [[Backup Programs|List of backup software]]).<br />
<br />
=== RAID level comparison ===<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! RAID level!!Data redundancy!!Physical drive utilization!!Read performance!!Write performance!!Min drives<br />
|-<br />
| '''0'''||'''No'''||100%||'''Superior'''||'''Superior'''||1<br />
|-<br />
| '''1'''||Yes||50%||Very high||Very high||2<br />
|-<br />
| '''5'''||Yes||67% - 94%||'''Superior'''||High||3<br />
|-<br />
| '''6'''||Yes||50% - 88%||Very High||High||4<br />
|-<br />
| '''10'''||Yes||50%||Very high||Very high||4<br />
|}<br />
<br />
==Installation==<br />
[[pacman|Install]] {{Pkg|mdadm}} and {{Pkg|parted}}, available in the [[Official Repositories]].<br />
<br />
===Prepare the device===<br />
{{Warning|These steps erase everything on a device, so type carefully.}}<br />
<br />
To prevent possible issues each device in the RAID should be [[Securely wipe disk|securely wiped]]. Additionally, the following steps can be taken.<br />
<br />
Erase any old RAID configuration information on the device:<br />
{{bc|1=# mdadm --zero-superblock /dev/<drive>}}<br />
<br />
Verify that the kernel clears old entries:<br />
{{bc|1=# partprobe -s}}<br />
<br />
With a software RAID, disabling the hard disk cache will help prevent data loss during power loss, as long as you do not use a [[Wikipedia:Uninterruptible power supply|UPS]]. Repeat the command for each drive in the array. Note however, that this decreases performance.<br />
{{bc|# hdparm -W 0 /dev/<drive>}}<br />
<br />
===Create the partition table===<br />
It is recommended to format the disks you want in your array. It is also possible to create a RAID directly on the raw disks (without partitions), but not recommended because it can cause problems when swapping a failed disk.<br />
<br />
When replacing a failed disk of a RAID, the new disk has to be exactly the same size as the failed disk or bigger — otherwise the array recreation process will not work. Even hard drives of the same manufacturer and model can have small size differences. By leaving a little space at the end of the disk unallocated one can compensate for the size differences between drives, which makes choosing a replacement drive model easier. Therefore, it is good practice to leave about 100 MB of unallocated space at the end of the disk.<br />
<br />
====Partition code====<br />
On GPT partition tables, the preferred RAID partition type is GUID A19D880F-05FC-4D3B-A006-743F0F84911E, which in gpt capable fdisk (such as gdisk) is the hex code fd00.<br />
<br />
The two [[Wikipedia:Partition types|partition type]]s on mbr block devices that are applicable to RAID devices are Non-FS data and Linux RAID auto. Non-FS data is recommended, as your array is not auto-assembled during boot. With Linux RAID auto one may run into trouble when booting from a live-cd or when installing the degraded RAID in a different system (maybe with other degraded RAIDs in worst case) as Linux will try to automatically assemble and resync the array which could render your data on the array unreadable if it fails.<br />
<br />
{{note|cfdisk and mkpart use a set of "filesystem types" to set the partition codes. Each type corresponds to a partition code (see [http://www.gnu.org/software/parted/manual/html_node/mkpart.html#mkpart Parted User's Manual]). It uses the {{ic|da}} type to denote Non-FS data and {{ic|fd}} for Linux RAID auto.}}<br />
<br />
Once you have selected a partition type follow the [[Beginner's Guide]] to [[Beginner's Guide#Prepare the storage drive|prepare the storage drive]].<br />
<br />
===Copy the partition table===<br />
Once you have a properly partitioned the disk copy the partition table to the other disks in the RAID.<br />
<br />
Verify your partitions meet basic requirements:<br />
{{bc|1=# sfdisk -lRV /dev/<drive>}}<br />
<br />
Dump the partition table from the formatted disk to a file:<br />
{{bc|<nowiki># sfdisk -d /dev/<drive> > ~/partitions.dump</nowiki>}}<br />
<br />
Copy the partition table from the dump file to all other disks in the array: <br />
{{bc|<nowiki># sfdisk /dev/<drive> < ~/partitions.dump</nowiki>}}<br />
<br />
After repeating the command for every other disk of the array, verify that the disks are identical with {{ic|fdisk -l}} or {{ic|sfdisk -l -u S}}.<br />
<br />
===Build the array===<br />
Use {{ic|mdadm}} to build the array.<br />
<br />
{{Warning|Make sure to change the '''bold values''' below to match your setup.}}<br />
<br />
{{bc| <nowiki># mdadm --create --verbose --level=</nowiki>'''5''' <nowiki>--metadata=</nowiki>'''1.2''' <nowiki>--chunk=</nowiki>'''256''' <nowiki>--raid-devices=</nowiki>'''5 /dev/<raid-device-name> /dev/<disk1> /dev/<disk2> /dev/<disk3> /dev/<disk4> /dev/<disk5>''' }}<br />
<br />
The array is created under the virtual device {{ic|/dev/md/<array>}}, assembled and ready to use (in degraded mode). You can directly start using it while mdadm resyncs the array in the background. It can take a long time to restore parity. Check the progress with:<br />
{{bc|$ cat /proc/mdstat}}<br />
<br />
===Update configuration file===<br />
Since the installer builds the initrd using {{ic|/etc/mdadm.conf}} in the target system, you should update the default configuration file. The default file can be overwritten using the redirection operator, because it only contains explanatory comments.<br />
<br />
Redirect the contents of the metadata stored on the named devices to the configuration file:<br />
# mdadm --detail --scan > /etc/mdadm.conf<br />
<br />
{{Note|If you are updating your RAID configuration from within the Arch Installer by swapping to another TTY, you will need to ensure that you are writing to the correct {{ic|mdadm.conf}} file:}}<br />
# mdadm --detail --scan > /mnt/etc/mdadm.conf<br />
<br />
Once the configuration file has been updated the array can be assembled using mdadm:<br />
# mdadm --assemble --scan<br />
<br />
===Configure filesystem===<br />
The array can now be formatted like any other disk, just keep in mind that:<br />
* Due to the large volume size not all filesystems are suited (see: [[Wikipedia:Comparison of file systems#Limits|File system limits]]).<br />
* The filesystem should support growing and shrinking while online (see: [[Wikipedia:Comparison of file systems#Features|File system features]]).<br />
* The biggest performance gain you can achieve on a raid array is to make sure you format the volume aligned to your RAID stripe size (see: [http://wiki.centos.org/HowTos/Disk_Optimization RAID Math]).<br />
<br />
===Assemble array on boot===<br />
If you selected the Non-FS data partition code the array will not be automatically recreated after the next boot. To assemble the array issue the following command:<br />
{{bc| <nowiki># mdadm --assemble --scan /dev/your_array --uuid=your_array_uuid</nowiki> }}<br />
<br />
or write it to {{ic|rc.local}}.<br />
<br />
===Add to kernel image===<br />
Add {{ic|mdadm_udev}} to the [[Mkinitcpio#HOOKS|HOOKS]] section of the [[Mkinitcpio]] file before the {{ic|filesystems}} hook. This will add support for mdadm directly into the init image.<br />
{{bc|1= HOOKS="base udev autodetect block '''mdadm_udev''' filesystems usbinput fsck"}}<br />
<br />
Add the {{ic|raid456}} module and the filesystem module created on the RAID (e.g. {{ic|ext4}}) to the [[Mkinitcpio#MODULES|MODULES]] section. This will build these modules into the kernel image. For example,<br />
{{bc|<nowiki>MODULES="ext4 raid456"</nowiki>}}<br />
<br />
Next regenerate the initramfs image (see [[Mkinitcpio#Image creation and activation|Image creation and activation]]).<br />
<br />
== Mounting from a Live CD ==<br />
<br />
If you want to mount your RAID partition from a Live CD, use<br />
# mdadm --assemble /dev/<disk1> /dev/<disk2> /dev/<disk3> /dev/<disk4><br />
<br />
{{Note|Live CDs like [http://www.sysresccd.org/Main_Page SystemrescueCD] assemble the RAIDs automatically at boot time if you used the partition type {{ic|fd}} at the install of the array.}}<br />
<br />
==Removing device, stop using the array==<br />
<br />
You can remove a device from the array after you mark it as faulty.<br />
<br />
# mdadm --fail /dev/md0 /dev/sdxx<br />
<br />
Then you can remove it from the array.<br />
<br />
# mdadm -r /dev/md0 /dev/sdxx<br />
<br />
Remove device permanently (for example in the case you want to use it individally from now on).<br />
Issue the two commands described above then:<br />
<br />
# mdadm --zero-superblock /dev/sdxx<br />
<br />
After this you can use the disk as you did before creating the array.<br />
<br />
{{Warning | If you reuse the removed disk without zeroing the superblock you will '''LOSE''' all your data next boot. (After mdadm will try to use it as the part of the raid array). '''DO NOT''' issue this command on linear or RAID0 arrays or you will '''LOSE''' all your data on the raid array. }}<br />
<br />
Stop using an array:<br />
# Umount target array<br />
# Stop the array with: {{ic|mdadm --stop /dev/md0}}<br />
# Repeat the three command described in the beginning of this section on each device.<br />
# Remove the corresponding line from /etc/mdadm.conf<br />
<br />
== Adding a device to the array ==<br />
Adding new devices with mdadm can be done on a running system with the devices mounted.<br />
Partition the new device {{ic|/dev/sdx}} using the same layout as one of those already in the arrays {{ic|/dev/sda}}.<br />
# sfdisk -d /dev/sda > table<br />
# sfdisk /dev/sdx < table<br />
<br />
Assemble the RAID arrays if they are not already assembled:<br />
# mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1 /dev/sdc1<br />
# mdadm --assemble /dev/md2 /dev/sda2 /dev/sdb2 /dev/sdc2<br />
# mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb3 /dev/sdc3<br />
<br />
First, add the new device as a Spare Device to all of the arrays. We will assume you have followed the guide and use separate arrays for {{ic|/boot}} RAID 1 (/dev/md1), {{ic|swap}} RAID 1 (/dev/md2) and {{ic|root}} RAID 5 (/dev/md0).<br />
# mdadm --add /dev/md1 /dev/sdx1<br />
# mdadm --add /dev/md2 /dev/sdx2<br />
# mdadm --add /dev/md0 /dev/sdx3<br />
<br />
This should not take long for mdadm to do. Check the progress with:<br />
# cat /proc/mdstat<br />
<br />
Check that the device has been added with the command:<br />
# mdadm --misc --detail /dev/md0<br />
<br />
It should be listed as a Spare Device.<br />
<br />
Tell mdadm to grow the arrays from 3 devices to 4 (or however many devices you want to use):<br />
# mdadm --grow -n 4 /dev/md1<br />
# mdadm --grow -n 4 /dev/md2<br />
# mdadm --grow -n 4 /dev/md0<br />
<br />
This will probably take several hours. You need to wait for it to finish before you can continue. Check the progress in {{ic|/proc/mdstat}}. The RAID 1 arrays should automatically sync {{ic|/boot}} and {{ic|swap}} but you need to install Grub on the MBR of the new device manually. [[Installing_with_Software_RAID_or_LVM#Install_Grub_on_the_Alternate_Boot_Drives]]<br />
<br />
The rest of this guide will explain how to resize the underlying LVM and filesystem on the RAID 5 array.<br />
{{Note|I am not sure if this can be done with the volumes mounted and will assume you are booting from a live-cd/usb}}<br />
<br />
If you are have encrypted your LVM volumes with LUKS, you need resize the LUKS volume first. Otherwise, ignore this step.<br />
# cryptsetup luksOpen /dev/md0 cryptedlvm<br />
# cryptsetup resize cryptedlvm<br />
<br />
Activate the LVM volume groups:<br />
# vgscan<br />
# vgchange -ay<br />
<br />
Resize the LVM Physical Volume {{ic|/dev/md0}} (or e.g. {{ic|/dev/mapper/cryptedlvm}} if using LUKS) to take up all the available space on the array. You can list them with the command "pvdisplay".<br />
# pvresize /dev/md0<br />
<br />
Resize the Logical Volume you wish to allocate the new space to. You can list them with "lvdisplay". Assuming you want to put it all to your {{ic|/home}} volume:<br />
# lvresize -l +100%FREE /dev/array/home<br />
<br />
To resize the filesystem to allocate the new space use the appropriate tool. If using ext2 you can resize a mounted filesystem with ext2online. For ext3 you can use resize2fs or ext2resize but not while mounted.<br />
<br />
You should check the filesystem before resizing.<br />
# e2fsck -f /dev/array/home<br />
# resize2fs /dev/array/home<br />
<br />
Read the manuals for lvresize and resize2fs if you want to customize the sizes for the volumes.<br />
<br />
== Monitoring ==<br />
A simple one-liner that prints out the status of your Raid devices:<br />
{{hc|awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}' </proc/mdstat<br />
|md1: [UU]<br />
md0: [UU]<br />
}}<br />
<br />
===Watch mdstat===<br />
{{bc|watch -t 'cat /proc/mdstat'}}<br />
Or preferably using {{pkg|tmux}}<br />
{{bc|tmux split-window -l 12 "watch -t 'cat /proc/mdstat'"}}<br />
<br />
===Track IO with iotop===<br />
The {{pkg|iotop}} package lets you view the input/output stats for processes. Use this command to view the IO for raid threads.<br />
<br />
{{bc|<nowiki>iotop -a -p $(sed 's, , -p ,g' <<<`pgrep "_raid|_resync|jbd2"`)</nowiki>}}<br />
<br />
===Track IO with iostat===<br />
<br />
The {{pkg|iostat}} package lets you view input/output statistics for devices and partitions.<br />
<br />
iostat -dmy 1 /dev/md0<br />
iostat -dmy 1 # all<br />
<br />
===Mailing on events===<br />
You need a smtp mail server (sendmail) or at least an email forwarder (ssmtp/msmtp). Be sure you have configured an email in {{ic|/etc/mdadm.conf}}<br />
<br />
# mdadm --monitor --scan --test<br />
<br />
When it is ready you can enable the service<br />
<br />
# systemctl enable mdadm.service<br />
<br />
==Troubleshooting==<br />
If you are getting error when you reboot about "invalid raid superblock magic" and you have additional hard drives other than the ones you installed to, check that your hard drive order is correct. During installation, your RAID devices may be hdd, hde and hdf, but during boot they may be hda, hdb and hdc. Adjust your kernel line accordingly. This is what happened to me anyway.<br />
<br />
===Start arrays read-only===<br />
When an md array is started, the superblock will be written, and resync may begin. To start read-only set the kernel module {{ic|md_mod}} parameter {{ic|start_ro}}. When this is set, new arrays get an 'auto-ro' mode, which disables all internal io (superblock updates, resync, recovery) and is automatically switched to 'rw' when the first write request arrives.<br />
<br />
{{Note|The array can be set to true 'ro' mode using {{ic|mdadm -r}} before the first write request, or resync can be started without a write using {{ic|mdadm -w}}.}}<br />
<br />
To set the parameter at boot, add {{ic|<nowiki>md_mod.start_ro=1</nowiki>}} to your kernel line.<br />
<br />
Or set it at module load time from {{ic|/etc/modprobe.d/}} file or from directly from {{ic|/sys/}}.<br />
{{bc|echo 1 > /sys/module/md_mod/parameters/start_ro}}<br />
<br />
===Recovering from a broken or missing drive in the raid===<br />
You might get the above mentioned error also when one of the drives breaks for whatever reason. In that case you will have to force the raid to still turn on even with one disk short. Type this (change where needed):<br />
# mdadm --manage /dev/md0 --run<br />
<br />
Now you should be able to mount it again with something like this (if you had it in fstab):<br />
# mount /dev/md0<br />
<br />
Now the raid should be working again and available to use, however with one disk short! So, to add that one disc partition it the way like described above in [[#Prepare_the_device|Prepare the device]]. Once that is done you can add the new disk to the raid by doing:<br />
# mdadm --manage --add /dev/md0 /dev/sdd1<br />
<br />
If you type:<br />
# cat /proc/mdstat<br />
you probably see that the raid is now active and rebuilding.<br />
<br />
You also might want to update your configuration (see: [[#Update configuration file]]).<br />
<br />
== Benchmarking ==<br />
There are several tools for benchmarking a RAID. The most notable improvement is the speed increase when multiple threads are reading from the same RAID volume.<br />
<br />
[http://sourceforge.net/projects/tiobench/ Tiobench] specifically benchmarks these performance improvements by measuring fully-threaded I/O on the disk.<br />
<br />
[http://www.coker.com.au/bonnie++/ Bonnie++] tests database type access to one or more files, and creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format e-mail. The enclosed [http://www.coker.com.au/bonnie++/zcav/ ZCAV] program tests the performance of different zones of a hard drive without writing any data to the disk.<br />
<br />
{{ic|hdparm}} should '''NOT''' be used to benchmark a RAID, because it provides very inconsistent results.<br />
<br />
== See also ==<br />
* [http://en.gentoo-wiki.com/wiki/RAID/Software RAID/Software] on the Gentoo Wiki<br />
* [http://en.gentoo-wiki.com/wiki/Software_RAID_Install Software RAID Install] on the Gentoo Wiki<br />
* [http://www.gentoo.org/doc/en/articles/software-raid-p1.xml Software RAID in the new Linux 2.4 kernel, Part 1] and [http://www.gentoo.org/doc/en/articles/software-raid-p2.xml Part 2] in the Gentoo Linux Docs<br />
* [http://raid.wiki.kernel.org/index.php/Linux_Raid Linux RAID wiki entry] on The Linux Kernel Archives<br />
* [https://raid.wiki.kernel.org/index.php/Write-intent_bitmap How Bitmaps Work]<br />
* [http://linux-101.org/howto/arch-linux-software-raid-installation-guide Arch Linux software RAID installation guide] on Linux 101<br />
* [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-raid.html Chapter 15: Redundant Array of Independent Disks (RAID)] of Red Hat Enterprise Linux 6 Documentation<br />
* [http://tldp.org/FAQ/Linux-RAID-FAQ/x37.html Linux-RAID FAQ] on the Linux Documentation Project<br />
* [http://support.dell.com/support/topics/global.aspx/support/entvideos/raid?c=us&l=en&s=gen Dell.com Raid Tutorial] - Interactive Walkthrough of Raid<br />
* [http://www.miracleas.com/BAARF/ BAARF] including ''[http://www.miracleas.com/BAARF/RAID5_versus_RAID10.txt Why should I not use RAID 5?]'' by Art S. Kagel<br />
* [http://www.linux-mag.com/id/7924/ Introduction to RAID], [http://www.linux-mag.com/id/7931/ Nested-RAID: RAID-5 and RAID-6 Based Configurations], [http://www.linux-mag.com/id/7928/ Intro to Nested-RAID: RAID-01 and RAID-10], and [http://www.linux-mag.com/id/7932/ Nested-RAID: The Triple Lindy] in Linux Magazine<br />
* [http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html HowTo: Speed Up Linux Software Raid Building And Re-syncing]<br />
* [http://fomori.org/blog/?p=94 RAID5-Server to hold all your data]<br />
<br />
'''mdadm'''<br />
* [http://anonscm.debian.org/gitweb/?p=pkg-mdadm/mdadm.git;a=blob_plain;f=debian/FAQ;hb=HEAD Debian mdadm FAQ]<br />
* [http://www.kernel.org/pub/linux/utils/raid/mdadm/ mdadm source code]<br />
* [http://www.linux-mag.com/id/7939/ Software RAID on Linux with mdadm] in Linux Magazine<br />
<br />
'''Forum threads'''<br />
* [http://forums.overclockers.com.au/showthread.php?t=865333 Raid Performance Improvements with bitmaps]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=125445 GRUB and GRUB2]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=123698 Can't install grub2 on software RAID]<br />
* [http://forums.gentoo.org/viewtopic-t-888624-start-0.html Use RAID metadata 1.2 in boot and root partition]<br />
<br />
'''RAID with encryption'''<br />
* [http://www.shimari.com/dm-crypt-on-raid/ Linux/Fedora: Encrypt /home and swap over RAID with dm-crypt] by Justin Wells</div>Zannyhttps://wiki.archlinux.org/index.php?title=RAID&diff=267829RAID2013-07-24T18:35:13Z<p>Zanny: Added the GPT hex code for raid partitions, since you probably want to use GPT anyway if you can.</p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[Category:File systems]]<br />
[[it:RAID]]<br />
{{Article summary start}}<br />
{{Article summary text|This article explains what RAID is and how to install, configure and maintain it.}}<br />
{{Article summary heading|Required software}}<br />
{{Article summary link|mdadm|http://neil.brown.name/blog/mdadm}}<br />
{{Article summary link|parted|http://www.gnu.org/software/parted/}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Software RAID and LVM}}<br />
{{Article summary wiki|Installing with Fake RAID}}<br />
{{Article summary wiki|Convert a single drive system to RAID}}<br />
{{Article summary end}}<br />
<br />
== Introduction ==<br />
{{Wikipedia|RAID}}<br />
Redundant Array of Independent Disks (RAID) devices are virtual devices created from two or more real block devices. This allows multiple devices (typically disk drives or partitions thereof) to be combined into a single device to hold (for example) a single filesystem. RAID is designed to prevent data loss in the event of a hard disk failure. There are different [[Wikipedia:Standard RAID levels|levels of RAID]].<br />
<br />
===Standard RAID levels===<br />
; [[Wikipedia:Standard RAID levels#RAID 0|RAID 0]]: Uses striping to combine disks. Not really RAID in that it ''provides no redundancy''. It does, however, ''provide a big speed benefit''. This example will utilize RAID 0 for swap, on the assumption that a desktop system is being used, where the speed increase is worth the possibility of system crash if one of your drives fails. On a server, a RAID 1 or RAID 5 array is more appropriate. The size of a RAID 0 array block device is the size of the smallest component partition times the number of component partitions.<br />
; [[Wikipedia:Standard RAID levels#RAID 1|RAID 1]]: The most straightforward RAID level: straight mirroring. As with other RAID levels, it only makes sense if the partitions are on different physical disk drives. If one of those drives fails, the block device provided by the RAID array will continue to function as normal. The example will be using RAID 1 for everything except swap. Note that RAID 1 is the only option for the boot partition, because bootloaders (which read the boot partition) do not understand RAID, but a RAID 1 component partition can be read as a normal partition. The size of a RAID 1 array block device is the size of the smallest component partition.<br />
; [[Wikipedia:Standard RAID levels#RAID 5|RAID 5]]: Requires 3 or more physical drives, and provides the redundancy of RAID 1 combined with the speed and size benefits of RAID 0. RAID 5 uses striping, like RAID 0, but also stores parity blocks distributed across each member disk. In the event of a failed disk, these parity blocks are used to reconstruct the data on a replacement disk. RAID 5 can withstand the loss of one member disk.<br />
: {{Note|RAID 5 is a common choice due to its combination of speed and data redundancy. The caveat is that if 1 drive were to fail and before that drive was replaced another drive failed, all data will be lost. For excellent information regarding this, see the ''[http://ubuntuforums.org/showthread.php?t&#x3d;1588106 RAID5 Risks]'' discussion thread on the Ubuntu forums. The best alternative to RAID5 when redundancy is crucial is RAID 10.}}<br />
<br />
===Nested RAID levels===<br />
; [[Wikipedia:Nested RAID levels#RAID 1 + 0|RAID 1+0]]: Commonly referred to as ''RAID 10'', is a nested RAID that combines two of the standard levels of RAID to gain performance and additional redundancy.<br />
<br />
=== Redundancy ===<br />
{{Warning|Installing a system with RAID is a complex process that may destroy data. Be sure to backup all data before proceeding.}}<br />
<br />
RAID does not guarantee that data is safe. A RAID will not protect data if there is a fire, the computer is stolen or multiple hard drives fail. Therefore it is important to make backups (see [[Backup Programs|List of backup software]]).<br />
<br />
=== RAID level comparison ===<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! RAID level!!Data redundancy!!Physical drive utilization!!Read performance!!Write performance!!Min drives<br />
|-<br />
| '''0'''||'''No'''||100%||'''Superior'''||'''Superior'''||1<br />
|-<br />
| '''1'''||Yes||50%||Very high||Very high||2<br />
|-<br />
| '''5'''||Yes||67% - 94%||'''Superior'''||High||3<br />
|-<br />
| '''6'''||Yes||50% - 88%||Very High||High||4<br />
|-<br />
| '''10'''||Yes||50%||Very high||Very high||4<br />
|}<br />
<br />
==Installation==<br />
[[pacman|Install]] {{Pkg|mdadm}} and {{Pkg|parted}}, available in the [[Official Repositories]].<br />
<br />
===Prepare the device===<br />
{{Warning|These steps erase everything on a device, so type carefully.}}<br />
<br />
To prevent possible issues each device in the RAID should be [[Securely wipe disk|securely wiped]]. Additionally, the following steps can be taken.<br />
<br />
Erase any old RAID configuration information on the device:<br />
{{bc|1=# mdadm --zero-superblock /dev/<drive>}}<br />
<br />
Verify that the kernel clears old entries:<br />
{{bc|1=# partprobe -s}}<br />
<br />
With a software RAID, disabling the hard disk cache will help prevent data loss during power loss, as long as you do not use a [[Wikipedia:Uninterruptible power supply|UPS]]. Repeat the command for each drive in the array. Note however, that this decreases performance.<br />
{{bc|# hdparm -W 0 /dev/<drive>}}<br />
<br />
===Create the partition table===<br />
It is recommended to format the disks you want in your array. It is also possible to create a RAID directly on the raw disks (without partitions), but not recommended because it can cause problems when swapping a failed disk.<br />
<br />
When replacing a failed disk of a RAID, the new disk has to be exactly the same size as the failed disk or bigger — otherwise the array recreation process will not work. Even hard drives of the same manufacturer and model can have small size differences. By leaving a little space at the end of the disk unallocated one can compensate for the size differences between drives, which makes choosing a replacement drive model easier. Therefore, it is good practice to leave about 100 MB of unallocated space at the end of the disk.<br />
<br />
====Partition code====<br />
On GPT partition tables, the preferred RAID [[Wikipedia:Partition types|partition type]] is GUID A19D880F-05FC-4D3B-A006-743F0F84911E, which in gpt capable fdisk (such as gdisk) is the hex code fd00.<br />
<br />
The two partition types on mbr block devices that are applicable to RAID devices are Non-FS data and Linux RAID auto. Non-FS data is recommended, as your array is not auto-assembled during boot. With Linux RAID auto one may run into trouble when booting from a live-cd or when installing the degraded RAID in a different system (maybe with other degraded RAIDs in worst case) as Linux will try to automatically assemble and resync the array which could render your data on the array unreadable if it fails.<br />
<br />
{{note|cfdisk and mkpart use a set of "filesystem types" to set the partition codes. Each type corresponds to a partition code (see [http://www.gnu.org/software/parted/manual/html_node/mkpart.html#mkpart Parted User's Manual]). It uses the {{ic|da}} type to denote Non-FS data and {{ic|fd}} for Linux RAID auto.}}<br />
<br />
Once you have selected a partition type follow the [[Beginner's Guide]] to [[Beginner's Guide#Prepare the storage drive|prepare the storage drive]].<br />
<br />
===Copy the partition table===<br />
Once you have a properly partitioned the disk copy the partition table to the other disks in the RAID.<br />
<br />
Verify your partitions meet basic requirements:<br />
{{bc|1=# sfdisk -lRV /dev/<drive>}}<br />
<br />
Dump the partition table from the formatted disk to a file:<br />
{{bc|<nowiki># sfdisk -d /dev/<drive> > ~/partitions.dump</nowiki>}}<br />
<br />
Copy the partition table from the dump file to all other disks in the array: <br />
{{bc|<nowiki># sfdisk /dev/<drive> < ~/partitions.dump</nowiki>}}<br />
<br />
After repeating the command for every other disk of the array, verify that the disks are identical with {{ic|fdisk -l}} or {{ic|sfdisk -l -u S}}.<br />
<br />
===Build the array===<br />
Use {{ic|mdadm}} to build the array.<br />
<br />
{{Warning|Make sure to change the '''bold values''' below to match your setup.}}<br />
<br />
{{bc| <nowiki># mdadm --create --verbose --level=</nowiki>'''5''' <nowiki>--metadata=</nowiki>'''1.2''' <nowiki>--chunk=</nowiki>'''256''' <nowiki>--raid-devices=</nowiki>'''5 /dev/<raid-device-name> /dev/<disk1> /dev/<disk2> /dev/<disk3> /dev/<disk4> /dev/<disk5>''' }}<br />
<br />
The array is created under the virtual device {{ic|/dev/md/<array>}}, assembled and ready to use (in degraded mode). You can directly start using it while mdadm resyncs the array in the background. It can take a long time to restore parity. Check the progress with:<br />
{{bc|$ cat /proc/mdstat}}<br />
<br />
===Update configuration file===<br />
Since the installer builds the initrd using {{ic|/etc/mdadm.conf}} in the target system, you should update the default configuration file. The default file can be overwritten using the redirection operator, because it only contains explanatory comments.<br />
<br />
Redirect the contents of the metadata stored on the named devices to the configuration file:<br />
# mdadm --detail --scan > /etc/mdadm.conf<br />
<br />
{{Note|If you are updating your RAID configuration from within the Arch Installer by swapping to another TTY, you will need to ensure that you are writing to the correct {{ic|mdadm.conf}} file:}}<br />
# mdadm --detail --scan > /mnt/etc/mdadm.conf<br />
<br />
Once the configuration file has been updated the array can be assembled using mdadm:<br />
# mdadm --assemble --scan<br />
<br />
===Configure filesystem===<br />
The array can now be formatted like any other disk, just keep in mind that:<br />
* Due to the large volume size not all filesystems are suited (see: [[Wikipedia:Comparison of file systems#Limits|File system limits]]).<br />
* The filesystem should support growing and shrinking while online (see: [[Wikipedia:Comparison of file systems#Features|File system features]]).<br />
* The biggest performance gain you can achieve on a raid array is to make sure you format the volume aligned to your RAID stripe size (see: [http://wiki.centos.org/HowTos/Disk_Optimization RAID Math]).<br />
<br />
===Assemble array on boot===<br />
If you selected the Non-FS data partition code the array will not be automatically recreated after the next boot. To assemble the array issue the following command:<br />
{{bc| <nowiki># mdadm --assemble --scan /dev/your_array --uuid=your_array_uuid</nowiki> }}<br />
<br />
or write it to {{ic|rc.local}}.<br />
<br />
===Add to kernel image===<br />
Add {{ic|mdadm_udev}} to the [[Mkinitcpio#HOOKS|HOOKS]] section of the [[Mkinitcpio]] file before the {{ic|filesystems}} hook. This will add support for mdadm directly into the init image.<br />
{{bc|1= HOOKS="base udev autodetect block '''mdadm_udev''' filesystems usbinput fsck"}}<br />
<br />
Add the {{ic|raid456}} module and the filesystem module created on the RAID (e.g. {{ic|ext4}}) to the [[Mkinitcpio#MODULES|MODULES]] section. This will build these modules into the kernel image. For example,<br />
{{bc|<nowiki>MODULES="ext4 raid456"</nowiki>}}<br />
<br />
Next regenerate the initramfs image (see [[Mkinitcpio#Image creation and activation|Image creation and activation]]).<br />
<br />
== Mounting from a Live CD ==<br />
<br />
If you want to mount your RAID partition from a Live CD, use<br />
# mdadm --assemble /dev/<disk1> /dev/<disk2> /dev/<disk3> /dev/<disk4><br />
<br />
{{Note|Live CDs like [http://www.sysresccd.org/Main_Page SystemrescueCD] assemble the RAIDs automatically at boot time if you used the partition type {{ic|fd}} at the install of the array.}}<br />
<br />
==Removing device, stop using the array==<br />
<br />
You can remove a device from the array after you mark it as faulty.<br />
<br />
# mdadm --fail /dev/md0 /dev/sdxx<br />
<br />
Then you can remove it from the array.<br />
<br />
# mdadm -r /dev/md0 /dev/sdxx<br />
<br />
Remove device permanently (for example in the case you want to use it individally from now on).<br />
Issue the two commands described above then:<br />
<br />
# mdadm --zero-superblock /dev/sdxx<br />
<br />
After this you can use the disk as you did before creating the array.<br />
<br />
{{Warning | If you reuse the removed disk without zeroing the superblock you will '''LOSE''' all your data next boot. (After mdadm will try to use it as the part of the raid array). '''DO NOT''' issue this command on linear or RAID0 arrays or you will '''LOSE''' all your data on the raid array. }}<br />
<br />
Stop using an array:<br />
# Umount target array<br />
# Stop the array with: {{ic|mdadm --stop /dev/md0}}<br />
# Repeat the three command described in the beginning of this section on each device.<br />
# Remove the corresponding line from /etc/mdadm.conf<br />
<br />
== Adding a device to the array ==<br />
Adding new devices with mdadm can be done on a running system with the devices mounted.<br />
Partition the new device {{ic|/dev/sdx}} using the same layout as one of those already in the arrays {{ic|/dev/sda}}.<br />
# sfdisk -d /dev/sda > table<br />
# sfdisk /dev/sdx < table<br />
<br />
Assemble the RAID arrays if they are not already assembled:<br />
# mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1 /dev/sdc1<br />
# mdadm --assemble /dev/md2 /dev/sda2 /dev/sdb2 /dev/sdc2<br />
# mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb3 /dev/sdc3<br />
<br />
First, add the new device as a Spare Device to all of the arrays. We will assume you have followed the guide and use separate arrays for {{ic|/boot}} RAID 1 (/dev/md1), {{ic|swap}} RAID 1 (/dev/md2) and {{ic|root}} RAID 5 (/dev/md0).<br />
# mdadm --add /dev/md1 /dev/sdx1<br />
# mdadm --add /dev/md2 /dev/sdx2<br />
# mdadm --add /dev/md0 /dev/sdx3<br />
<br />
This should not take long for mdadm to do. Check the progress with:<br />
# cat /proc/mdstat<br />
<br />
Check that the device has been added with the command:<br />
# mdadm --misc --detail /dev/md0<br />
<br />
It should be listed as a Spare Device.<br />
<br />
Tell mdadm to grow the arrays from 3 devices to 4 (or however many devices you want to use):<br />
# mdadm --grow -n 4 /dev/md1<br />
# mdadm --grow -n 4 /dev/md2<br />
# mdadm --grow -n 4 /dev/md0<br />
<br />
This will probably take several hours. You need to wait for it to finish before you can continue. Check the progress in {{ic|/proc/mdstat}}. The RAID 1 arrays should automatically sync {{ic|/boot}} and {{ic|swap}} but you need to install Grub on the MBR of the new device manually. [[Installing_with_Software_RAID_or_LVM#Install_Grub_on_the_Alternate_Boot_Drives]]<br />
<br />
The rest of this guide will explain how to resize the underlying LVM and filesystem on the RAID 5 array.<br />
{{Note|I am not sure if this can be done with the volumes mounted and will assume you are booting from a live-cd/usb}}<br />
<br />
If you are have encrypted your LVM volumes with LUKS, you need resize the LUKS volume first. Otherwise, ignore this step.<br />
# cryptsetup luksOpen /dev/md0 cryptedlvm<br />
# cryptsetup resize cryptedlvm<br />
<br />
Activate the LVM volume groups:<br />
# vgscan<br />
# vgchange -ay<br />
<br />
Resize the LVM Physical Volume {{ic|/dev/md0}} (or e.g. {{ic|/dev/mapper/cryptedlvm}} if using LUKS) to take up all the available space on the array. You can list them with the command "pvdisplay".<br />
# pvresize /dev/md0<br />
<br />
Resize the Logical Volume you wish to allocate the new space to. You can list them with "lvdisplay". Assuming you want to put it all to your {{ic|/home}} volume:<br />
# lvresize -l +100%FREE /dev/array/home<br />
<br />
To resize the filesystem to allocate the new space use the appropriate tool. If using ext2 you can resize a mounted filesystem with ext2online. For ext3 you can use resize2fs or ext2resize but not while mounted.<br />
<br />
You should check the filesystem before resizing.<br />
# e2fsck -f /dev/array/home<br />
# resize2fs /dev/array/home<br />
<br />
Read the manuals for lvresize and resize2fs if you want to customize the sizes for the volumes.<br />
<br />
== Monitoring ==<br />
A simple one-liner that prints out the status of your Raid devices:<br />
{{hc|awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}' </proc/mdstat<br />
|md1: [UU]<br />
md0: [UU]<br />
}}<br />
<br />
===Watch mdstat===<br />
{{bc|watch -t 'cat /proc/mdstat'}}<br />
Or preferably using {{pkg|tmux}}<br />
{{bc|tmux split-window -l 12 "watch -t 'cat /proc/mdstat'"}}<br />
<br />
===Track IO with iotop===<br />
The {{pkg|iotop}} package lets you view the input/output stats for processes. Use this command to view the IO for raid threads.<br />
<br />
{{bc|<nowiki>iotop -a -p $(sed 's, , -p ,g' <<<`pgrep "_raid|_resync|jbd2"`)</nowiki>}}<br />
<br />
===Track IO with iostat===<br />
<br />
The {{pkg|iostat}} package lets you view input/output statistics for devices and partitions.<br />
<br />
iostat -dmy 1 /dev/md0<br />
iostat -dmy 1 # all<br />
<br />
===Mailing on events===<br />
You need a smtp mail server (sendmail) or at least an email forwarder (ssmtp/msmtp). Be sure you have configured an email in {{ic|/etc/mdadm.conf}}<br />
<br />
# mdadm --monitor --scan --test<br />
<br />
When it is ready you can enable the service<br />
<br />
# systemctl enable mdadm.service<br />
<br />
==Troubleshooting==<br />
If you are getting error when you reboot about "invalid raid superblock magic" and you have additional hard drives other than the ones you installed to, check that your hard drive order is correct. During installation, your RAID devices may be hdd, hde and hdf, but during boot they may be hda, hdb and hdc. Adjust your kernel line accordingly. This is what happened to me anyway.<br />
<br />
===Start arrays read-only===<br />
When an md array is started, the superblock will be written, and resync may begin. To start read-only set the kernel module {{ic|md_mod}} parameter {{ic|start_ro}}. When this is set, new arrays get an 'auto-ro' mode, which disables all internal io (superblock updates, resync, recovery) and is automatically switched to 'rw' when the first write request arrives.<br />
<br />
{{Note|The array can be set to true 'ro' mode using {{ic|mdadm -r}} before the first write request, or resync can be started without a write using {{ic|mdadm -w}}.}}<br />
<br />
To set the parameter at boot, add {{ic|<nowiki>md_mod.start_ro=1</nowiki>}} to your kernel line.<br />
<br />
Or set it at module load time from {{ic|/etc/modprobe.d/}} file or from directly from {{ic|/sys/}}.<br />
{{bc|echo 1 > /sys/module/md_mod/parameters/start_ro}}<br />
<br />
===Recovering from a broken or missing drive in the raid===<br />
You might get the above mentioned error also when one of the drives breaks for whatever reason. In that case you will have to force the raid to still turn on even with one disk short. Type this (change where needed):<br />
# mdadm --manage /dev/md0 --run<br />
<br />
Now you should be able to mount it again with something like this (if you had it in fstab):<br />
# mount /dev/md0<br />
<br />
Now the raid should be working again and available to use, however with one disk short! So, to add that one disc partition it the way like described above in [[#Prepare_the_device|Prepare the device]]. Once that is done you can add the new disk to the raid by doing:<br />
# mdadm --manage --add /dev/md0 /dev/sdd1<br />
<br />
If you type:<br />
# cat /proc/mdstat<br />
you probably see that the raid is now active and rebuilding.<br />
<br />
You also might want to update your configuration (see: [[#Update configuration file]]).<br />
<br />
== Benchmarking ==<br />
There are several tools for benchmarking a RAID. The most notable improvement is the speed increase when multiple threads are reading from the same RAID volume.<br />
<br />
[http://sourceforge.net/projects/tiobench/ Tiobench] specifically benchmarks these performance improvements by measuring fully-threaded I/O on the disk.<br />
<br />
[http://www.coker.com.au/bonnie++/ Bonnie++] tests database type access to one or more files, and creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format e-mail. The enclosed [http://www.coker.com.au/bonnie++/zcav/ ZCAV] program tests the performance of different zones of a hard drive without writing any data to the disk.<br />
<br />
{{ic|hdparm}} should '''NOT''' be used to benchmark a RAID, because it provides very inconsistent results.<br />
<br />
== See also ==<br />
* [http://en.gentoo-wiki.com/wiki/RAID/Software RAID/Software] on the Gentoo Wiki<br />
* [http://en.gentoo-wiki.com/wiki/Software_RAID_Install Software RAID Install] on the Gentoo Wiki<br />
* [http://www.gentoo.org/doc/en/articles/software-raid-p1.xml Software RAID in the new Linux 2.4 kernel, Part 1] and [http://www.gentoo.org/doc/en/articles/software-raid-p2.xml Part 2] in the Gentoo Linux Docs<br />
* [http://raid.wiki.kernel.org/index.php/Linux_Raid Linux RAID wiki entry] on The Linux Kernel Archives<br />
* [https://raid.wiki.kernel.org/index.php/Write-intent_bitmap How Bitmaps Work]<br />
* [http://linux-101.org/howto/arch-linux-software-raid-installation-guide Arch Linux software RAID installation guide] on Linux 101<br />
* [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-raid.html Chapter 15: Redundant Array of Independent Disks (RAID)] of Red Hat Enterprise Linux 6 Documentation<br />
* [http://tldp.org/FAQ/Linux-RAID-FAQ/x37.html Linux-RAID FAQ] on the Linux Documentation Project<br />
* [http://support.dell.com/support/topics/global.aspx/support/entvideos/raid?c=us&l=en&s=gen Dell.com Raid Tutorial] - Interactive Walkthrough of Raid<br />
* [http://www.miracleas.com/BAARF/ BAARF] including ''[http://www.miracleas.com/BAARF/RAID5_versus_RAID10.txt Why should I not use RAID 5?]'' by Art S. Kagel<br />
* [http://www.linux-mag.com/id/7924/ Introduction to RAID], [http://www.linux-mag.com/id/7931/ Nested-RAID: RAID-5 and RAID-6 Based Configurations], [http://www.linux-mag.com/id/7928/ Intro to Nested-RAID: RAID-01 and RAID-10], and [http://www.linux-mag.com/id/7932/ Nested-RAID: The Triple Lindy] in Linux Magazine<br />
* [http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html HowTo: Speed Up Linux Software Raid Building And Re-syncing]<br />
* [http://fomori.org/blog/?p=94 RAID5-Server to hold all your data]<br />
<br />
'''mdadm'''<br />
* [http://anonscm.debian.org/gitweb/?p=pkg-mdadm/mdadm.git;a=blob_plain;f=debian/FAQ;hb=HEAD Debian mdadm FAQ]<br />
* [http://www.kernel.org/pub/linux/utils/raid/mdadm/ mdadm source code]<br />
* [http://www.linux-mag.com/id/7939/ Software RAID on Linux with mdadm] in Linux Magazine<br />
<br />
'''Forum threads'''<br />
* [http://forums.overclockers.com.au/showthread.php?t=865333 Raid Performance Improvements with bitmaps]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=125445 GRUB and GRUB2]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=123698 Can't install grub2 on software RAID]<br />
* [http://forums.gentoo.org/viewtopic-t-888624-start-0.html Use RAID metadata 1.2 in boot and root partition]<br />
<br />
'''RAID with encryption'''<br />
* [http://www.shimari.com/dm-crypt-on-raid/ Linux/Fedora: Encrypt /home and swap over RAID with dm-crypt] by Justin Wells</div>Zannyhttps://wiki.archlinux.org/index.php?title=Archiso&diff=249953Archiso2013-03-09T06:30:02Z<p>Zanny: Awkward wording and a grammar mistake correction.</p>
<hr />
<div>[[Category:Live Arch systems]]<br />
[[el:Archiso]]<br />
[[es:Archiso]]<br />
[[fr:Archiso]]<br />
[[it:Archiso]]<br />
[[nl:Archiso]]<br />
[[ru:Archiso]]<br />
[[uk:Archiso]]<br />
'''Archiso''' is a small set of bash scripts that is capable of building fully functional Arch Linux based live CD and USB images. It is a very generic tool, so it could potentially be used to generate anything from rescue systems, install disks, to special interest live CD/DVD/USB systems, and who knows what else. Simply put, if it involves Arch on a shiny coaster, it can do it.<br />
The heart and soul of Archiso is mkarchiso. All of its options are documented in its usage output, so its direct usage won't be covered here. Instead, this wiki article will act as a guide for rolling your own live mediums in no time!<br />
<br />
== Setup ==<br />
<br />
Before we begin, we need to grab the archiso scripts which carry out the beef of the work for <br />
<br />
# pacman -S archiso<br />
<br />
{{Note|1=Alternatively, the GIT version can be built and installed [https://aur.archlinux.org/packages.php?ID=25996 from the AUR].}}<br />
<br />
Create a directory to work within, this is where all the modifications to the live image will take place: ~/archlive should do fine.<br />
$ mkdir ~/archlive<br />
<br />
The archiso scripts that were installed to the host system earlier now need to be copied over into the newly created directory you will be working within.<br />
Archiso comes with two "profiles": releng, and baseline.<br />
If you wish to create a fully customised live version of Arch Linux, pre-installed with all your favourite programs and configurations, use "releng".<br />
If you just want to create the most basic live media, with no pre-installed packages and minimalistic configurations, then use "baseline".<br />
<br />
So, depending on your needs, execute the following, replacing 'PROFILE' with either '''releng''' or '''baseline'''.<br />
# cp -r /usr/share/archiso/configs/'''PROFILE'''/ ~USER/archlive<br />
<br />
If you are using the 'releng' profile to make a fully customised image, then you can proceed onto [[Archiso#Configure_our_live_medium]].<br />
<br />
If you are using the 'baseline' profile to create a bare bones, installation image, then you won't be needing to do any customisations and can proceed onto [[Archiso#Build_the_ISO]]<br />
<br />
== Configure our live medium ==<br />
<br />
This section details configuring the image you will be creating, allowing you to define the packages and configurations you want your live image to contain.<br />
<br />
Change into the directory we created earlier (~/archlive/releng/ if you have been following this guide), you will see a number of files and directories; we are only concerned with a few of these, mainly: <br />
packages.* - this is where you list, line by line, the packages you want to have installed, and<br />
the root-image directory - this directory acts as an overlay and it is where you make all the customisations.<br />
<br />
=== Installing packages ===<br />
<br />
You will want to create a list of packages you want installed on your live CD system. A file full of package names, one-per-line, is the format for this. This is '''''great''''' for special interest live CDs, just specify packages you want in packages.both and bake the image.<br />
The packages.i686 and packages.x86_64 files allow you to install software on just 32bit or 64bit, respectively.<br />
<br />
{{Tip|You can also create a '''[[custom local repository]]''' for the purpose of preparing custom packages or packages from [[AUR]]/[[ABS]]. Just add your local repository at the first position (for top priority) of your build machine's '''pacman.conf''' and you are good to go!}}<br />
<br />
=== Adding a user ===<br />
<br />
There are two methods to creating a user: either by adding the relevant useradd command to rc.local, or by copying over (and modifying) /etc/shadow, /etc/passwd, and /etc/group.<br />
The latter method shall be discussed here.<br />
<br />
Copy your /etc/shadow, /etc/passwd, and /etc/group from your '''host''' system to the /etc/ directory '''of the new live system''' (which should be ~/archlive/releng/root-image/etc)<br />
e.g.<br />
# cp /etc/{shadow,passwd,group} ~/archlive/releng/root-image/etc/<br />
<br />
{{Warning|The shadow file will contain your encrypted password. I recommend before you copy the shadow file over, you change the password of your host user to that which you want your live user to have, copy the shadow file over, and then change back your password.}}<br />
<br />
=== Adding files to image ===<br />
<br />
{{Note|You must be root to do this, do not change the ownership of any of the files you copy over, '''everything''' within the root-image directory must be root owned. Proper ownerships will be sorted out shortly.}}<br />
<br />
The root-image directory acts as an overlay, think of it as root directory '/' on your current system, so any files you place within this directory will be copied over on boot-up.<br />
<br />
So if you have a set of iptables scripts on your current system you want to be used on you live image, copy them over as such:<br />
# cp -r /etc/iptables ~/archlive/releng/root-image/etc<br />
<br />
Placing files in the users home directory is a little different. Do not place them within root-image/home, but instead create a skel directory within root-image/ and place them there. We will then add the relevant commands to the rc.local we are going to create to copy them over on boot and sort out the permissions.<br />
<br />
First, create the skel directory; making sure you are within ~/archlive/releng/root-image/etc directory (if this is where you are working from):<br />
# cd ~/archlive/releng/root-image/etc && mkdir skel<br />
<br />
Now copy the 'home' files to the skel directory, again doing everything as root!<br />
e.g for .bashrc. <br />
# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/<br />
<br />
Inside the root-image/etc/ directory, create the rc.local file, and '''make sure''' you make it executable:<br />
<br />
# cd ~/archlive/releng/root-image/etc && touch rc.local && chmod +x rc.local<br />
<br />
Now add the all of following to rc.local, replacing 'youruser' with the user you specified earlier.<br />
# Create the user directory for live session<br />
if [ ! -d /home/'''youruser''' ]; then<br />
mkdir /home/'''youruser''' && chown '''youruser''' /home/'''youruser'''<br />
fi<br />
# Copy files over to home<br />
su -c "cp -r /etc/skel/.* /home/'''youruser'''/" '''youruser'''<br />
<br />
=== aitab ===<br />
<br />
The default file should work fine, so you should not need to touch it.<br />
<br />
The aitab file holds information about the filesystems images that must be created by mkarchiso and mounted at initramfs stage from the archiso hook.<br />
It consists of some fields which define the behaviour of images.<br />
<br />
# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size><br />
<br />
; <img>: Image name without extension (.fs .fs.sfs .sfs).<br />
; <mnt>: Mount point.<br />
; <arch>: Architecture { i686 | x86_64 | any }.<br />
; <sfs_comp>: SquashFS compression type { gzip | lzo | xz }.<br />
; <fs_type>: Set the filesystem type of the image { ext4 | ext3 | ext2 | xfs }. A special value of "none" denotes no usage of a filesystem. In that case all files are pushed directly to SquashFS filesystem.<br />
; <fs_size>: An absolute value of file system image size in MiB (example: 100, 1000, 4096, etc) A relative value of file system free space [in percent] {1%..99%} (example 50%, 10%, 7%). This is an estimation, and calculated in a simple way. Space used + 10% (estimated for metadata overhead) + desired %<br />
<br />
{{Note|Some combinations are invalid. Example both sfs_comp and fs_type are set to none}}<br />
<br />
=== Boot Loader ===<br />
The default file should work fine, so you should not need to touch it.<br />
<br />
Due to the modular nature of isolinux, you are able to use lots of addons since all *.c32 files are copied and available to you. Take a look at the [http://syslinux.zytor.com/wiki/index.php/SYSLINUX official syslinux site] and the [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files archiso git repo]. Using said addons, it is possible to make visually attractive and complex menus. See [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 here].<br />
<br />
=== Login manager ===<br />
<br />
Starting X at boot time was done by modifying ''inittab'' on [[sysvinit]] systems. On a [[systemd]] based system things are handled by enabling your login manager's service. If you know which .service file needs a softlink: Great. If not, you can easily find out in case you're using the same program on the system you build your iso on. Just use<br />
<br />
# systemctl disable '''nameofyourloginmanager'''<br />
<br />
to temporarily turn it of. Next type the same command again and replace "disable" with "enable" to activate it again. Systemctl prints information about softlink it creates. Now change to ~/archiso/releng/root-image/etc/systemd/system and create the same softlink there.<br />
<br />
An example (make sure you're either in ~/archiso/releng/root-image/etc/systemd/system or add it to the command):<br />
<br />
# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service<br />
<br />
This will enable LXDM at system start on your live system.<br />
<br />
== Build the ISO ==<br />
<br />
Now you are ready to turn your files into the .iso which you can then burn to CD or USB:<br />
Inside the directory you are working with, either ~/archlive/releng, or ~/archlive/baseline, execute:<br />
<br />
# ./build.sh -v<br />
<br />
The script will now download and install the packages you specified to work/*/root-image, create the kernel and init images, apply your customizations and finally build the iso into out/.<br />
<br />
== Using the ISO ==<br />
=== CD ===<br />
Just burn the iso to a cd. You can follow [[CD Burning]] as you wish.<br />
=== USB ===<br />
You can now dd the iso file onto a USB using dd, an example of which:<br />
# dd if=~/archlive/releng/out/*.iso of=/dev/sdx<br />
You will have to adjust accordingly, and make sure you choose the right output file! A simple mistake here will destory data on your harddisk.<br />
=== grub4dos ===<br />
Grub4dos is a utility that can be used to create multiboot usbs, able to boot multiple linux distros from the same usb stick.<br />
<br />
To boot the generated system on a usb with grub4dos already installed, loop mount the ISO and copy the entire {{ic|/arch}} directory to the '''root of the usb'''.<br />
Then edit the {{ic|menu.lst}} file from the grub4dos (it must be on the usb root) and add this lines:<br />
{{bc|<nowiki><br />
title Archlinux x86_64<br />
kernel /arch/boot/x86_64/vmlinuz archisolabel=<your usb label><br />
initrd /arch/boot/x86_64/archiso.img<br />
</nowiki>}}<br />
Change the {{ic|x86_64}} part as necessary and put your '''real''' usb label there.<br />
== See also ==<br />
*[https://projects.archlinux.org/?p=archiso.git;a=summary Archiso project page]<br />
*[[Archiso_as_pxe_server|Archiso as pxe server]]<br />
*[https://kroweer.wordpress.com/2011/09/07/creating-a-custom-arch-linux-live-usb Step-by-step tutorial on using ArchISO]<br />
*[http://didjix.blogspot.com/ A live DJ distribution powered by ArchLinux and built with Archiso]</div>Zannyhttps://wiki.archlinux.org/index.php?title=Autostarting&diff=243385Autostarting2013-01-10T10:30:09Z<p>Zanny: Fixed headers</p>
<hr />
<div>[[Category:Boot process]]<br />
[[es:Autostarting]]<br />
This article links to various methods to launch scripts or applications automatically when some particular event is taking place, like system startup or shutdown, shell login or logout and so on.<br />
<br />
== Daemons ==<br />
You can easily start your scripts or applications as daemons, see [[Daemon]] and [[Writing rc.d scripts]].<br />
<br />
=== Systemd ===<br />
''systemd'' is the default init framework, replacing initscripts. The services which are started by ''systemd'' can be found in the subfolders of {{ic|/etc/systemd/system/}}. Services can be enabled using the {{ic|systemctl}} command. For more information about ''systemd'' and how to write autostart scripts for it, see at [[systemd]].<br />
<br />
=== Legacy Init Chain ===<br />
{{ic|/etc/rc.local}} and {{ic|/etc/rc.local.shutdown}} are where the traditional init framework would read from for user generated startup actions. You can write rc.local as a shell script that will be run every boot under the legacy initscripts framework.<br />
<br />
=== Runit ===<br />
''runit'' is a mature init system which offers process supervision, parallel startup, per-user service trees, granular cgroup manipulation, flexible dependency system, and boot times that don't incur the penalty of dbus. The root-level services are symlinks in {{ic|/service}} with the actual service directories in {{ic|/etc/sv}}. See the [[Runit]] page for more information.<br />
<br />
== Shells ==<br />
<br />
To autostart programs in console you can use shell startup files/directories. Read the documentation for your shell, or its ArchWiki article, e.g. [[Bash]] or [[Zsh]].<br />
<br />
=== /etc/profile ===<br />
<br />
{{ic|/etc/profile}} is sourced by all Bourne-compatible shells upon login: it sets up an environment upon login and application-specific ({{ic|/etc/profile.d/*.sh}}) settings. <br />
<br />
Each time {{ic|/etc/profile}} is executed, it sources the following scripts if they exist:<br />
* {{ic|/etc/profile.d/*.sh}}<br />
* {{ic|/etc/bash.bashrc}} (if shell is bash)<br />
* {{ic|/etc/bash_completion}}<br />
<br />
===See also===<br />
*{{ic|INVOCATION}} section of {{ic|man bash}}<br />
*{{ic|STARTUP/SHUTDOWN FILES}} section of {{ic|man zsh}}<br />
*[[Wikipedia:Unix_shell#Configuration files for shells]]<br />
<br />
== Graphical ==<br />
You can autostart programs automatically when you login into your [[Window Manager]] or [[Desktop Environment]].<br />
<br />
=== X session startup ===<br />
<br />
See [[xinitrc]] and [[xprofile]].<br />
<br />
=== X Desktop Group ===<br />
<br />
{{ic|$XDG_CONFIG_DIRS/autostart/}}: In this folder are {{ic|.desktop}} files. These files determine which programs are loaded for which desktop environment. For an explanation of the desktop file standard refer to [http://standards.freedesktop.org/desktop-entry-spec/latest/ Desktop Entry Specification].<br />
<br />
=== GNOME, KDE, Xfce ===<br />
<br />
[[GNOME]], [[KDE]] and [[Xfce]] all have a dedicated GUI for autostart settings, see the respective articles.<br />
<br />
You can also directly put [[Creating desktop entries and menus|.desktop]] files in {{ic|~/.config/autostart/}}<br />
<br />
==== KDE (Legacy) ====<br />
<br />
KDE also has a specific folder: {{ic|~/.kde/Autostart}} or {{ic|~/.kde4/Autostart}}<br />
<br />
=== LXDE ===<br />
<br />
See [[LXDE#Autostart_Programs]].<br />
<br />
=== Fluxbox ===<br />
<br />
See [[Fluxbox#Autostarting Applications]].<br />
<br />
=== Openbox ===<br />
<br />
See [[Openbox#Startup programs]].</div>Zannyhttps://wiki.archlinux.org/index.php?title=Autostarting&diff=243383Autostarting2013-01-10T10:28:46Z<p>Zanny: Moved initscripts section down the page since its legacy support now.</p>
<hr />
<div>[[Category:Boot process]]<br />
[[es:Autostarting]]<br />
This article links to various methods to launch scripts or applications automatically when some particular event is taking place, like system startup or shutdown, shell login or logout and so on.<br />
<br />
== Daemons ==<br />
You can easily start your scripts or applications as daemons, see [[Daemon]] and [[Writing rc.d scripts]].<br />
<br />
=== systemd ===<br />
''systemd'' is the default init framework, replacing initscripts. The services which are started by ''systemd'' can be found in the subfolders of {{ic|/etc/systemd/system/}}. Services can be enabled using the {{ic|systemctl}} command. For more information about ''systemd'' and how to write autostart scripts for it, see at [[systemd]].<br />
<br />
== Legacy Init chain ==<br />
{{ic|/etc/rc.local}} and {{ic|/etc/rc.local.shutdown}} are where the traditional init framework would read from for user generated startup actions. You can write rc.local as a shell script that will be run every boot under the legacy initscripts framework.<br />
<br />
=== runit ===<br />
''runit'' is a mature init system which offers process supervision, parallel startup, per-user service trees, granular cgroup manipulation, flexible dependency system, and boot times that don't incur the penalty of dbus. The root-level services are symlinks in {{ic|/service}} with the actual service directories in {{ic|/etc/sv}}. See the [[Runit]] page for more information.<br />
<br />
== Shells ==<br />
<br />
To autostart programs in console you can use shell startup files/directories. Read the documentation for your shell, or its ArchWiki article, e.g. [[Bash]] or [[Zsh]].<br />
<br />
=== /etc/profile ===<br />
<br />
{{ic|/etc/profile}} is sourced by all Bourne-compatible shells upon login: it sets up an environment upon login and application-specific ({{ic|/etc/profile.d/*.sh}}) settings. <br />
<br />
Each time {{ic|/etc/profile}} is executed, it sources the following scripts if they exist:<br />
* {{ic|/etc/profile.d/*.sh}}<br />
* {{ic|/etc/bash.bashrc}} (if shell is bash)<br />
* {{ic|/etc/bash_completion}}<br />
<br />
===See also===<br />
*{{ic|INVOCATION}} section of {{ic|man bash}}<br />
*{{ic|STARTUP/SHUTDOWN FILES}} section of {{ic|man zsh}}<br />
*[[Wikipedia:Unix_shell#Configuration files for shells]]<br />
<br />
== Graphical ==<br />
You can autostart programs automatically when you login into your [[Window Manager]] or [[Desktop Environment]].<br />
<br />
=== X session startup ===<br />
<br />
See [[xinitrc]] and [[xprofile]].<br />
<br />
=== X Desktop Group ===<br />
<br />
{{ic|$XDG_CONFIG_DIRS/autostart/}}: In this folder are {{ic|.desktop}} files. These files determine which programs are loaded for which desktop environment. For an explanation of the desktop file standard refer to [http://standards.freedesktop.org/desktop-entry-spec/latest/ Desktop Entry Specification].<br />
<br />
=== GNOME, KDE, Xfce ===<br />
<br />
[[GNOME]], [[KDE]] and [[Xfce]] all have a dedicated GUI for autostart settings, see the respective articles.<br />
<br />
You can also directly put [[Creating desktop entries and menus|.desktop]] files in {{ic|~/.config/autostart/}}<br />
<br />
==== KDE (Legacy) ====<br />
<br />
KDE also has a specific folder: {{ic|~/.kde/Autostart}} or {{ic|~/.kde4/Autostart}}<br />
<br />
=== LXDE ===<br />
<br />
See [[LXDE#Autostart_Programs]].<br />
<br />
=== Fluxbox ===<br />
<br />
See [[Fluxbox#Autostarting Applications]].<br />
<br />
=== Openbox ===<br />
<br />
See [[Openbox#Startup programs]].</div>Zannyhttps://wiki.archlinux.org/index.php?title=Hddtemp&diff=243233Hddtemp2013-01-08T09:17:15Z<p>Zanny: Added systemd start procedures, should probably remove the initscripts section soon™</p>
<hr />
<div>[[Category:Status monitoring and notification]]<br />
[https://savannah.nongnu.org/projects/hddtemp/ hddtemp] is a small utility (daemonizable) that gives you the temperature of your hard drive by reading S.M.A.R.T. information (for drives that support this feature).<br />
<br />
==Installation==<br />
<br />
Sync and install with pacman:<br />
# pacman -S hddtemp<br />
<br />
==Usage==<br />
<br />
Hddtemp can be invoked with the drive as the argument:<br />
# hddtemp /dev/sd[x]<br />
Where '''x''' is the drive.<br />
<br />
==Daemon==<br />
Running the daemon gives you the possibility to access the temperature via an TCP/IP request, so you could use this in order to check the temperature from outside, or within some scripts.<br />
===Setup with systemd===<br />
<br />
Once hddtemp has been installed, standard systemctl procedures work to start the daemon:<br />
# systemctl start hddtemp<br />
<br />
To start it on boot, enable it:<br />
#systemctl enable hddtemp<br />
<br />
===Setup with legacy initscripts===<br />
<br />
Start the daemon:<br />
# rc.d start hddtemp<br />
<br />
Add the daemon to the DAEMONS array in /etc/rc.conf to facilitate auto-start on boot:<br />
# DAEMONS=(... '''hddtemp''' ...)<br />
<br />
===Usage===<br />
<br />
Another way to get the temperature is by connecting to the daemon which is listening on port 7634.<br />
<br />
$ telnet localhost 7634<br />
Or with netcat:<br />
$ nc localhost 7634<br />
<br />
Refer to the manpage for information like supported drives, logging, etc.<br />
$ man hddtemp<br />
<br />
==Monitors==<br />
<br />
Hddtemp can be easily integrated with system monitors like [[Conky]], the {{pkg|sensors-applet}} for GNOME Panel or the {{pkg|xfce4-sensors-plugin}} for Xfce Panel.<br />
<br />
== See also ==<br />
[[lm sensors]]</div>Zannyhttps://wiki.archlinux.org/index.php?title=Suspend_to_RAM&diff=242928Suspend to RAM2013-01-04T05:20:48Z<p>Zanny: /* ACPI_OS_NAME */</p>
<hr />
<div>[[Category:Power management]]<br />
{{Article summary start}}<br />
{{Article summary text|Describes the operation of the pm-utils suspend framework and supported backend methods}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Pm-utils}}<br />
{{Article summary wiki|Uswsusp}}<br />
{{Article summary wiki|TuxOnIce}}<br />
{{Article summary end}}<br />
<br />
''Sleep mode can go by many different names, including '''Stand By''', '''Sleep''', and '''Suspend'''. When placed in this sleep mode, aside from the RAM which is required to restore the machine's state, the computer attempts to cut power to all unneeded parts of the machine. Because of the large power savings, most laptops automatically enter this mode when the computer is running on batteries and the lid is closed. (from [[Wikipedia:Sleep mode]])''<br />
<br />
There is a variety of mechanisms to enable your operating system to suspend to memory or to disk. To understand the difference between these systems, you need to know that there exists a suspend/resume implementation in the kernel (swsusp) and (typically) a set of additional tweaks to handle specific drivers/modules/hardware (ex: video card re-initialization). <br />
<br />
* [[systemd]] provides commands for suspend to RAM, hibernate and a hybrid suspend using the kernel's native suspend/resume functionality. There are also mechanisms to add hooks to customize pre- and post-suspend actions.<br />
<br />
* [[pm-utils]] is a set of shell scripts that encapsulate the kernel's suspend/resume functionality. It comes with a set of pre- and post-suspend tweaks and various hooks to customize the process.<br />
<br />
* [[uswsusp]] also aims to provide programs that encapsulate the kernel's suspend/resume functionality with the additional tweaks necessary. It also aims to provide a suspend-to-both functionality - this allows resuming from memory if battery is not depleted and resuming from disk if battery is completely depleted. <br />
<br />
* [[TuxOnIce]] differs from pm-utils and uswsusp in that it attempts to directly patch the kernel's suspend/resume functionality to add more functionality than the default implementation. It therefore requires a custom kernel.<br />
<br />
* [[Suspending to RAM with hibernate-script]]<br />
<br />
Note that the end goal of these packages is to provide binaries/scripts that can be invoked to perform suspend/resume. Actually hooking them up to power buttons or menu clicks or laptop lid events is left to other mechanisms. To automatically suspend/resume on certain power events, such as laptop lid close or battery depletion percentage, you may want to look into running [[Acpid]].<br />
<br />
== Suspend methods ==<br />
<br />
These methods can be used to suspend/resume directly. pm-utils is also fairly generic, so its pm-suspend and pm-hibernate scripts can be configured to use any of these methods.<br />
<br />
=== kernel ===<br />
<br />
The most straightforward approach is to directly inform the in-kernel software suspend code (swsusp) to enter a suspended state; the exact method and state depends on the level of hardware support. On modern kernels, writing appropriate strings to [http://acpi.sourceforge.net/documentation/sleep.html /sys/power/state] is the primary mechanism to trigger this suspend. For example, let us study out how pm-utils does this.<br />
<br />
''/usr/lib/pm-utils/pm-functions::294'' (comments added):<br />
<br />
if grep -q mem /sys/power/state; then<br />
SUSPEND_MODULE="kernel"<br />
# Suspend-to-RAM<br />
# ACPI State S3<br />
# Device State D3<br />
# Greatest power savings, slower resume<br />
do_suspend() { echo -n "mem" >/sys/power/state; }<br />
elif [ -c /dev/pmu ] && pm-pmu --check; then<br />
SUSPEND_MODULE="kernel"<br />
# Suspend using Macintosh-style PMU<br />
# Fallback for older kernels in which the sysfs interface does not support this hardware<br />
do_suspend() { pm-pmu --suspend; }<br />
elif grep -q standby /sys/power/state; then<br />
SUSPEND_MODULE="kernel"<br />
# Power-On-Suspend<br />
# ACPI State S1<br />
# Device State D1 (supported devices)<br />
# Minimal power savings, fast resume<br />
do_suspend() { echo -n "standby" >/sys/power/state; }<br />
fi<br />
<br />
In general, it is possible that just installing pm-utils and invoking pm-suspend (which uses the kernel backend by default) just works for you. In some cases, you may need to force specific modules to be unloaded to make this work, as described in [[pm-utils#Advanced Configuration]].<br />
<br />
=== systemd ===<br />
<br />
Systemd provides native commands for suspend, hibernate and a hybrid suspend.<br />
<br />
# systemctl suspend<br />
# systemctl hibernate<br />
# systemctl hybrid-sleep<br />
<br />
See [[Systemd#ACPI_power_management]] for additional information on configuring suspend/resume hooks. Also see {{ic|man systemctl}}, {{ic|man systemd-sleep}}, and {{ic|man systemd.special}}.<br />
<br />
=== uswsusp ===<br />
<br />
The uswsusp ('Userspace Software Suspend') package provides '''s2ram''', a wrapper around the kernel's suspend-to-RAM mechanism which perform some graphics adapter manipulations from userspace before suspending and after resuming. This includes:<br />
<br />
*passing acpi_sleep=s3_bios to the kernel<br />
*passing acpi_sleep=s3_mode to the kernel<br />
*passing both of the above (acpi_sleep=s3_bios,s3_mode) to the kernel<br />
*POSTing the video card from userspace after resume using vbetool<br />
*saving the VBE state before suspend and restoring it after resume using vbetool <br />
<br />
This is accomplished by a hardware whitelist maintained by HAL - '''s2ram''' translates the HAL database options into '''s2ram''' parameters.<br />
<br />
Since HAL is deprecated and KMS drivers can save the state of the grahic card directly without userspace quirks, '''s2ram''' development is discontinued and no further whitelist entries are accepted. If a KMS driver is in use, '''s2ram''' will directly suspend the machine.<br />
<br />
=== tuxonice ===<br />
<br />
[[TuxOnIce]] is a fork of the kernel implementation of suspend/resume that provides kernel patches to improve the default implementation. It requires a custom kernel to achieve this purpose. Since pm-utils is a set of shell scripts with a variety of hooks, it can be configured to use TuxOnIce as well.<br />
<br />
=== pm-utils configuration ===<br />
<br />
See [[pm-utils]].<br />
<br />
== Deciding between these options ==<br />
<br />
=== Pm-utils framework or not? ===<br />
Directly calling the kernel backend method is significantly faster than calling '''pm-suspend''', since running all the hooks provided by the '''pm-utils''' framework invariable takes time. Even uswsusp is faster than '''pm-suspend'''. However, the recommended approach is to use '''pm-utils''' as it can properly:<br />
* set hardware clock<br />
* restore wireless<br />
* etc...<br />
In fact, only the '''pm-utils''' approach can be called without special privileges, see [[pm-utils#Suspend.2FHibernate as regular user]]<br />
<br />
=== Selecting the backend/method ===<br />
* kernel - hooks provided by '''pm-utils''' (including video quirks) with kernel method. This is the recommended mechanism. It may require specific kernel modules to be unloaded before it will work properly. Searching on the arch linux bbs for your specific laptop is a good idea to discover these modules.<br />
<br />
* uswsusp - hooks provided by '''pm-utils''' except video99 with '''s2ram''' assuming responsibility for video quirks. Not necessary unless the kernel method explicitly fails to work.<br />
<br />
* tuxonice - since it requires a kernel recompile, make sure you are getting a specific feature out of it that is not supported by the default kernel implementation.<br />
<br />
=== ACPI_OS_NAME ===<br />
You might want to tweak your '''DSDT table''' to make it work. See [[DSDT]] article<br />
<br />
However, you could try simply to use a ''acpi_os_name'' parameter, like:<br />
acpi_os_name="Microsoft Windows NT"<br />
Add this to your kernel boot option. For example, for grub legacy:<br />
kernel /boot/vmlinuz-linux root=/dev/sdx resume=/dev/sdy ro quiet acpi_os_name="Microsoft Windows NT"<br />
<br />
It just fools the BIOS about the real OS used, and work-around custom behavior; i.e. the BIOS/ACPI is broken for everything but Windows.<br />
<br />
You might want to try another string if this one does not work.<br />
<br />
== Other Resources ==<br />
<br />
*[http://suspend.sourceforge.net/ Uswsusp Home Page]<br />
*[http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface Advanced Configuration and Power Interface]<br />
*{{ic|/usr/share/doc/suspend/README}} Uswsusp Documentation<br />
*{{ic|/usr/share/doc/suspend/README.s2ram-whitelist}} s2ram-whitelist README<br />
*{{ic|/usr/src/linux-2.6.38-ARCH/Documentation/power/interface.txt}} Kernel Power Management Interface<br />
*{{ic|/usr/src/linux-2.6.38-ARCH/Documentation/power/states.txt}} System Power Management States</div>Zannyhttps://wiki.archlinux.org/index.php?title=List_of_Applications/Games/Reimplemented&diff=242058List of Applications/Games/Reimplemented2012-12-29T03:15:30Z<p>Zanny: Fixed an awkward sentence.</p>
<hr />
<div><noinclude><br />
[[Category:Gaming]]<br />
{{Games navigation}}<br />
</noinclude><br />
=== Native &ndash; Reimplemented ===<br />
{{Wikipedia|Game engine recreation}}<br />
{{Wikipedia|Source port}}<br />
<br />
This section lists games that were initially commercial & closed-source before open-sourcing and ones which engines were re-implemented by insidious Linux developers.<br />
<br />
==== Doom/Hexen/Heretic ====<br />
===== Code =====<br />
None of the id-engine games have copyleft game resources, only the game engine code was open sourced. See http://doom.wikia.com/wiki/Source_port for details.<br />
* {{App|Chocolate Doom|Doom port reproducing the behavior of the original DOS version|http://www.chocolate-doom.org/|{{AUR|chocolate-doom}}}}<br />
* {{App|Doomsday|Advanced port of the Doom game engine, capable also of running Heretic, and Hexen games|http://www.dengine.net/|{{AUR|doomsday}}}}<br />
* {{App|GZDoom|Doom source port based on ZDoom with an OpenGL renderer|http://www.osnanet.de/c.oelckers/gzdoom/index.html|{{AUR|gzdoom}}}}<br />
* {{App|HHeretic|Linux port of Raven Game's old shooter, Heretic|http://hhexen.sourceforge.net/hheretic.html|{{AUR|hheretic}}}}<br />
* {{App|HHexen|Linux port of Raven Game's old shooter, Hexen|http://hhexen.sourceforge.net/hhexen.html|{{AUR|hhexen}}}}<br />
* {{App|PrBoom Plus|Enhanced version of the PrBoom Doom engine port|http://prboom-plus.sourceforge.net/|{{AUR|prboom-plus}}}}<br />
* {{App|Remood|advanced Doom game engine based on Doom Legacy|http://remood.org/|{{AUR|remood}}}}<br />
* {{App|Strawberry Doom|Fork of Chocolate Doom extending certain engine limits|http://doom.wikia.com/wiki/Strawberry_Doom|{{AUR|strawberry-doom-svn}}}}<br />
* {{App|Vavoom|Highly advanced Doom engine port with added support for Heretic/Hexen/Strife|http://vavoom-engine.com/|{{AUR|vavoom}}}}<br />
* {{App|ZDoom|Enhanced Doom port with additional support for Heretic, Hexen and Strife|http://www.zdoom.org/|{{AUR|zdoom}}}}<br />
<br />
===== Data =====<br />
* Doom 1 Demo data &ndash; {{AUR|doom1-wad}}<br />
* {{App|Freedoom|Project aimed at creation of free Doom data files|http://www.nongnu.org/freedoom/|{{AUR|freedoom}}}}<br />
* Hexen 1 Demo game data &ndash; {{AUR|hexen1-wad}}<br />
* Heretic Demo game data &ndash; {{AUR|heretic1-wad}}<br />
* {{App|Blasphemer|Project aimed at creation of free Heretic data files|http://code.google.com/p/blasphemer/|{{AUR|blasphemer}}}}<br />
<br />
==== Doom 3 ====<br />
* stock Doom 3 binaries &ndash; {{AUR|doom3-bin}}<br />
* source-based Doom 3 engine &ndash; {{AUR|doom3}}<br />
<br />
==== Quake ====<br />
* advanced Quake 1 game engine &ndash; {{AUR|darkplaces}}<br />
* another modern Quake1 engine port &ndash; {{AUR|fitzquake}}<br />
* free content replacement project for Quake 1 &ndash; {{AUR|oqplus-svn}}<br />
* high quality textures for Quake from the Quake Revitalization Project &ndash; {{AUR|quake-qrp-textures}}<br />
* {{App|ezQuake|Fast paced multiplayer FPS focusing on movement and trick jumps. The popular, modern and maintained Quake / QuakeWorld client. Manual post-installation setup required. Can play on-line for free |http://ezquake.sourceforge.net/|{{AUR|ezquake}}}}<br />
* {{App|nQuake|Fast paced multiplayer FPS focusing on movement and trick jumps. The very popular Quake / QuakeWorld package, including ezQuake client, 24bit textures, maps, bots and more. Automatic post-installation set up. Can play on-line for free |http://nquake.sourceforge.net/|{{AUR?|nquake}}}}<br />
<br />
==== Quake 2 ====<br />
* {{App|Quake 2|Built by Icculus|http://www.icculus.org/quake2/|{{AUR|quake2}}}}<br />
* advanced Quake 2 engine &ndash; {{AUR|qudos-svn}}<br />
* enhanced Quake 2 engine with Lazarus mod support &ndash; {{AUR|kmquake2}}<br />
* A true color retexture pak for Quetoo and other Quake2 engines supporting 32bpp tga textures &ndash; {{AUR|quake2-retexture}}<br />
<br />
==== Quake 3 Arena ====<br />
* stock Quake 3 Arena binaries &ndash; {{AUR|quake3}}<br />
* {{App|ioquake3|De-facto FOSS Quake 3 distribution|http://ioquake3.org/|{{AUR|ioquake3}}}}<br />
<br />
==== Wolfenstein: Enemy Territory ====<br />
* completely free, standalone, team-based, multiplayer FPS &ndash; {{AUR|enemy-territory}}<br />
* iowolflet &ndash; advanced open source fork of ET engine {{AUR|iowolfet-hg}}<br />
* iowolflet for 64 bit systems {{AUR|bin32-iowolfet-hg}}<br />
<br />
==== Quake 4 ====<br />
* demo version &ndash; {{AUR|quake4-demo}}<br />
* Quake 4 engine &ndash; {{AUR|quake4}}<br />
<br />
==== Humble Indie Bundle games ====<br />
Engines of these games were open-sourced after The Humble Bundle sales.<br />
{{Expansion|Package [https://icculus.org/hge-unix/ Hammerfight]}}<br />
{{App|[[Wikipedia:Aquaria (video game)|Aquaria]]|2D sidescrolling action-adventure game, heavily focused on exploration and puzzle-solving, with non-linear gameplay|http://www.bit-blot.com/aquaria|{{AUR|aquaria}}}}<br />
{{App|[[Wikipedia:Gish (video game)|Gish]]|2D physics platformer about adventures of ball of tar|http://www.gishgame.com/|{{AUR|freegish-git}}}}<br />
<br />
==== Duke Nukem 3D ====<br />
* {{App|Duke 3D|Original port|http://icculus.org/projects/duke3d/|{{AUR|duke3d-svn}}}}<br />
* {{App|eduke32|Advanced source port|http://eduke32.com/|{{AUR|eduke32}}}}<br />
<br />
==== Arx Fatalis ====<br />
* {{App|Arx Libertatis|This project aims to be a cross-platform, open source port of Arx Fatalis, a 2002 first-person role-playing game developed by Arkane Studios.|http://arx-libertatis.org/|{{AUR|arx-libertatis}}}}<br />
<br />
==== The Elder Scrolls series ====<br />
* {{App|OpenMW|Attempt to reimplement the popular role playing game [[Wikipedia:Morrowind|Morrowind]]. OpenMW aims to be a fully playable, open source implementation of the game's engine|http://openmw.org|{{AUR|openmw}}}}<br />
<br />
==== Heroes of Might and Magic series ====<br />
* {{App|fheores2|Attempt to reimplement the [[Wikipedia:Heroes of Might and Magic II|Heroes of Might and Magic II]] engine using SDL.|http://sourceforge.net/apps/mediawiki/fheroes2/index.php|{{AUR|fheroes2-svn}}}}<br />
* {{App|VCMI|Attempt to reimplement [[Wikipedia:Heroes of Might and Magic III|Heroes of Might and Magic III]]|http://forum.vcmi.eu/portal.php|{{AUR|vcmi-svn}}}}</div>Zannyhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Website_suggestions&diff=234600DeveloperWiki:Website suggestions2012-11-09T19:39:29Z<p>Zanny: Maybe persona instead of openid?</p>
<hr />
<div>[[Category:Arch development]]<br />
= Introduction =<br />
This article is intended as a sandbox of ideas for the Arch Linux website. Feel free to add suggestions and any thoughts you might have about how the Arch Linux website can be improved.<br />
<br />
This article is part of the [[DeveloperWiki]].<br />
<br />
= Ideas and Suggestions =<br />
<br />
==== Reorganize link structure ====<br />
Reorganize the website link hierarchy, such as proposed in [[DeveloperWiki:Website Hierarchy Proposal]] <br />
<br />
==== OpenID ====<br />
Implement an [http://openid.net/ OpenID]-like identity system for the official Arch Linux websites.<br />
<br />
* If we could integrate login/pass throughout AUR, Wiki, Forums, and Bugs this way ... well I'm afraid I'd get a bit moist. :) <br> [[User:Georgia tech swagger|georgia_tech_swagger]]<br />
* Might also consider Mozilla Persona[https://www.mozilla.org/en-US/persona/], which should be easier to implement than full blown openID.<br />
<br />
==== Developer/Fellows profiles ====<br />
Condense the developer profiles pages, reducing photo sizes and dropping relatively unimportant fields such as: Favourite Distros, Year of Birth, Interests, Other Contacts, etc.<br />
<br />
* I don't like this idea. I like any distro that has a soul and flavor to it. Sterile "strictly-business" design and community should be left to the Wall Street distros. <br> [[User:Georgia tech swagger|georgia_tech_swagger]]<br />
<br />
==== Navbar for internal Arch sites ====<br />
Look at the feasibility of creating a unified navbar that would sit at the top of all Arch community sites (bbs.archlinux, wiki.archlinux, etc.), providing an exact copy of the main website hierarchy via drop-down menus (using CSS of course).<br />
<br />
==== <s>Embed Ads by Google into content</s> ====<br />
Consider placing the Ads by Google inside actual page content (or at least below the navigation) and removing it from the header entirely.<br />
:The ads have been removed some time ago due to Google having issues with Arch violating the terms of service or something. -- [[User:Karol|Karol]] 15:13, 27 November 2011 (EST)<br />
<br />
==== URI Linking ====<br />
Implement a pacman:// URI as an option to quickly let users quickly install packages from webpages and same the functionality for AUR packages. [[User:9mmtylenol|9mmtylenol]]</div>Zannyhttps://wiki.archlinux.org/index.php?title=AMD_Catalyst&diff=234598AMD Catalyst2012-11-09T18:54:55Z<p>Zanny: Title looked awkward after change</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[es:ATI Catalyst]]<br />
[[fr:ATI#Catalyst]]<br />
[[it:AMD Catalyst]]<br />
[[zh-CN:AMD Catalyst]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of ATI's proprietary Linux "Catalyst" video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Intel}}<br />
{{Article summary wiki|NVIDIA}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}<br />
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.<br />
<br />
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.<br />
<br />
<strike>Catalyst was once a precompiled package offered by Arch in the [extra] repository, but as of March 2009, official Arch support [http://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] because of dissatisfaction with the quality and speed of development</strike>. In October 2012, it seems like the packages are being offered again. Currently, packages are available in the [community] repository, but it's unknown what will happen when an Xorg upgrade will break the driver. Also, a legacy driver for Radeon HD 2xxx 3xxx 4xxx is not available yet. For more information, see [http://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ this] this forum post and onwards.<br />
<br />
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [http://en.wikipedia.org/wiki/Radeon ATI/AMD Radeon] video cards with chipset R600 and newer (as of Catalyst 9.4). See [http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units this table], or the Xorg [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names "Decoder ring",] to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).<br />
<br />
== Installation ==<br />
<br />
There are four ways of installing Catalyst on your system. One way is to use the official [community] repository, but this does not contain all the packages just yet. (At this time of writing, October 04, there's no xvba-video and lib32 driver yet. Also, a legacy driver is still missing). Another one is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository does contain all the necessary packages. The third method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.<br />
<br />
Before choosing the method you prefer, you will have to see which driver you need. Since Catalyst 12.4, AMD has separated its development for Radeon HD 5xxx and Radeon HD 2xxx, 3xxx and 4xxx cards. For Radeon HD 2xxx, 3xxx and 4xxx cards, there's the '''legacy''' Catalyst driver, for Radeon HD 5xxx there is the regular Catalyst. Regardless of the driver you need, you will also need the Catalyst utilities.<br />
<br />
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}<br />
<br />
=== Installing the driver ===<br />
==== Installing from the official repository ====<br />
This is the most simple and straightforward way, as it requires no unofficial repositories and because this package uses [[Dynamic Kernel Module Support|DKMS]] to automatically rebuilt the kernel modules when the kernel is upgraded. If this repository holds the packages you need, I suggest you take this one. To install Catalyst, you can use [[Pacman|pacman]]:<br />
<br />
# pacman -S catalyst-dkms catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' - you may safely say "Y"}}<br />
<br />
{{Note|If you are using systemd, you should enable the DKMS service. SysV init users do not have to do this. For more information on enabling service files, see [[systemd]].}}<br />
<br />
If you are on 64 bit and also need 32 bit OpenGL support, install lib32-catalyst-utils. Note that you will have to enable the [multilib] repository first.<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Later on, a legacy driver will also be offered here.<br />
<br />
==== Installing from the unofficial repository ====<br />
If you need packages that currently aren't hosted by the official repository and don't fancy building the packages from the [[Arch User Repository|AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0L0. All packages are signed and I consider them safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards. <br />
<br />
Vi0L0 has two different Catalyst repositories, each having different drivers:<br />
*[catalyst]; for the regular Catalyst driver needed by Radeon HD 5xxx and up.<br />
*[catalyst-hd234k]; for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards. <br />
<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
To enable one of these, you will have to edit {{ic|/etc/pacman.conf}} and add the repository of choice's information '''above all other repositories in {{ic|/etc/pacman.conf}}:<br />
<br />
# nano /etc/pacman.conf<br />
<br />
For [catalyst], it's this:<br />
<br />
[catalyst]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/catalyst/$arch</nowiki><br />
<br />
For [catalyst-hd234k], you have to add the following:<br />
<br />
[catalyst-hd234k]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/catalyst-hd234k/$arch</nowiki><br />
<br />
You must also [[User:Vi0L0|add Vi0L0's GPG key]] so that pacman trusts the repositories.<br />
<br />
# pacman-key --keyserver pgp.mit.edu --recv-keys 0xabed422d653c3094<br />
# pacman-key --lsign-key 0xabed422d653c3094<br />
<br />
Once you have added this, update pacman's database and install the packages:<br />
<br />
# pacman -Syu<br />
# pacman -S catalyst catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' - you may safely say "Y"}}<br />
<br />
If you are on 64 bit and need 32 bit OpenGL support, install lib32-catalyst-utils. Note that you will have to enable the [multilib] repository first:<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Both repositories also contain other packages, that can ''replace'' the Catalyst package and provide fglrx modules for ''multiple'' kernels that are installed on your system:<br />
<br />
* Catalyst-generator; this package is able to generate fglrx modules packed into pacman compliant packages - most secure and KISS-compatible package in this side-note, although it has to be operated manually.<br />
* Catalyst-hook; A hook for [[mkinitcpio|mkinitcpio]] which will automatically update fglrx modules with every kernel's update. '''This is basically the same as catalyst-dkms from [community]'''.<br />
* Catalyst-daemon; this delivers an automatic update of the fglrx module with every kernel update, done by an init script. '''This is the same as Catalyst-hook and also catalyst-dkms from [community]. Also, systemd users have no use for this package, as systemd has no init script support'''.<br />
<br />
You will find more details about those packages in [[#Tools| Tools section]].<br />
Lastly, both repositories also contain the '''xvba-video''' package, which enables video acceleration described [[#Video_acceleration]] and the '''AMDOverdriveCtrl''' package, which is a GUI to control over- and underclocking. See [[#GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities]]<br />
<br />
==== Installing from the AUR ====<br />
The last way to install Catalyst is from the [[Arch User Repository|AUR]]. If you want to built the packages specifically for your computer, this is your way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.<br />
<br />
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[Arch User Repository|AUR]]:<br />
* {{AUR|Catalyst}};<br />
* {{AUR|Catalyst-utils}};<br />
* {{AUR|Lib32-catalyst-utils}};<br />
* {{AUR|Catalyst-generator}};<br />
* {{AUR|Catalyst-hook}};<br />
* {{AUR|Catalyst-daemon}}.<br />
<br />
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:<br />
* {{AUR|Catalyst-total-hd234k}};<br />
* {{AUR|Catalyst-total}};<br />
* {{AUR|Catalyst-test}};<br />
* {{AUR|Lib32-catalyst-test}};<br />
* {{AUR|Catalyst-total-pxp}};<br />
<br />
The ''Catalyst-total'' packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the Catalyst-hook package, which is explained above.<br />
<br />
''Catalyst-total-pxp'' builds Catalyst with experimental powerXpress support.<br />
<br />
For more information on building from the AUR, read [[#Installing_from_AUR| Installing from AUR]].<br />
<br />
==== Installing directly from AMD ====<br />
{{Warning|Using the installer from ati.com/amd.com is '''not''' recommended! It may cause file conflicts and X failures and you will miss Arch-specific fixes. You '''must''' be familiar with booting to the command-line if you wish to attempt this.}}<br />
<br />
{{Note|If you have attempted a manual install from the official installer and cannot recover your desktop:<br />
# /usr/share/ati/fglrx-uninstall.sh<br />
}}<br />
<br />
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}<br />
<br />
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}<br />
<br />
3.) Ensure you're using a basic video driver like vesa and remove conflicting drivers (i.e. {{ic|xf86-video-ati}}) with pacman.<br />
<br />
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}. 64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.<br />
<br />
5.) Be sure to have your build environment setup: {{ic|# pacman -Syu base-devel linux-headers}}<br />
<br />
6.) Now run {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}} (Files will extract to a temporary folder and scripts will run...)<br />
<br />
Assuming nothing went horribly wrong...<br />
<br />
7.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues. There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}.<br />
<br />
{{Note|If you modify the make scripts, save to a different filename. Otherwise uninstall will not complete successfully.}}<br />
<br />
=== Configuring the driver ===<br />
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[KMS|kernel mode setting]].<br />
<br />
==== Configuring X ====<br />
To configure X, you will have to create an xorg.conf file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.<br />
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:<br />
<br />
# aticonfig --help | less<br />
<br />
{{Warning|Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}<br />
<br />
{{Note|If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}<br />
<br />
Now, to configure Catalyst. If you have only one monitor, run this:<br />
<br />
# aticonfig --initial<br />
<br />
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.<br />
<br />
# aticonfig --initial=dual-head --screen-layout=above<br />
<br />
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}<br />
<br />
You can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.<br />
<br />
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.<br />
<br />
Here is an example (with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:<br />
<br />
{{bc|1=<br />
Section "ServerLayout"<br />
Identifier "Arch"<br />
Screen 0 "Screen0" 0 0 # 0's are necessary.<br />
EndSection<br />
Section "Module"<br />
Load ...<br />
...<br />
EndSection<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
...<br />
EndSection<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "fglrx" # Essential.<br />
BusID "PCI:1:0:0" # Recommended if autodetect fails.<br />
Option "OpenGLOverlay" "0" ##<br />
Option "XAANoOffscreenPixmaps" "false" ##<br />
EndSection<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24 # Should not change from '24'<br />
Modes "1280x1024" "2048x1536" ## 1st value=default resolution, 2nd=maximum.<br />
Virtual 1664 1200 ## (x+64, y) to workaround potential OGL rect. artifacts/<br />
EndSubSection ## fixed in Catalyst 9.8<br />
EndSection<br />
Section "DRI"<br />
Mode 0666 # May help enable direct rendering.<br />
EndSection<br />
}}<br />
<br />
{{Note|With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in amdcccle.}}<br />
<br />
''If you need more information on Catalyst, visit [http://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''<br />
<br />
==== Loading the module at boot ====<br />
How you should handle this depends on the init system you're using; either SysVinit or systemd. In either case, you have to blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. For more information, see [[Modprobe|blacklisting in this article]]. '''Users of the [community] package do not have to do this, it's automatically done for them when installing the package'''.<br />
<br />
{{Note|The systemd method is recommended, as Arch is slowly switching over to this and the rc.conf method is actually deprecated.}}<br />
<br />
===== The systemd method =====<br />
* Disable the {{ic|radeon}} module from auto-loading. If it occurs in any file under {{ic|/etc/modules-load.d/}}, remove the file (or, if the file contains multiple modules, just remove the radeon one).<br />
* Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.<br />
<br />
===== Arch initscripts =====<br />
Edit {{ic|/etc/rc.conf}} by:<br />
* Removing {{ic|radeon}} from the MODULES array.<br />
* Adding {{ic|fglrx}} to MODULES.<br />
<br />
{{Note|If you are using an AGP card instead of PCI Express add the ''agp'' module as well.}}<br />
<br />
==== Disable kernel mode setting ====<br />
<br />
Disabling kernel mode setting is important, as the driver doesn't take advantage of [[KMS]] yet. If you do not deactivate KMS, your system might freeze when trying to switch to a tty or even when shutting down via your DE.<br />
<br />
For [[GRUB Legacy|GRUB Legacy]], edit {{ic|menu.lst}} by adding {{ic|nomodeset}} to the kernel parameters. For example:<br />
<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''<br />
<br />
For [[GRUB2|GRUB 2]], edit {{ic|/etc/default/grub}} and add ''nomodeset'' to the kernel parameter options, e.g.<br />
<br />
GRUB_CMDLINE_LINUX="nomodeset"<br />
<br />
Then run, as root;<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
For [[Syslinux|Syslinux]], edit {{ic|/boot/syslinux/syslinux.cfg}} and add ''nomodeset'' to the {{ic|APPEND}} line, e.g.:<br />
<br />
APPEND root=/dev/sda2 ro ''nomodeset''<br />
<br />
==== Checking operation ====<br />
<br />
Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:<br />
<br />
$ lsmod | grep fglrx<br />
$ fglrxinfo<br />
<br />
If you get output, it works. Finally, run X with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:<br />
<br />
$ glxinfo | grep direct<br />
<br />
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found, you might need to install the {{Pkg|mesa-demos}} package.<br />
<br />
{{Note|You can also use:<br />
$ fgl_glxgears<br />
as the fglrx alternative test to glxgears.<br />
}}<br />
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}<br />
<br />
If you have trouble, see [[#Troubleshooting]].<br />
<br />
=== Custom Kernels ===<br />
<br />
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.<br />
<br />
If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.<br />
<br />
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].<br />
# Editing the PKGBUILD. Two changes need to be made here:<br />
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).<br />
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.<br />
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}}<br />
<br />
{{Note|If you run multiple kernels, you have to install the Catalyst-utils packages for all kernels. They won't conflict with one another.}}<br />
<br />
{{Note|Catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools| Tools section]].}}<br />
<br />
<br />
=== PowerXpress support ===<br />
<br />
<br />
PowerXpress technology allows switching from integrated graphics (IGP) to discrete graphics on notebooks, either to increase battery life or to achieve better 3D rendering capabilities.<br />
<br />
To use such functionality on Arch you will have to:<br />
* Get and build {{AUR|catalyst-total-pxp}} package from the [[Arch User Repository|AUR]], or<br />
* Install '''catalyst-utils-pxp''' package from the [catalyst] repository (plus additional lib32-catalyst-utils-pxp, if needed).<br />
<br />
<br />
To perform a switch into Intel's IGP you will also have to install the '''libgl''' package and Intel's drivers: '''xf86-video-intel''' and '''intel-dri'''.<br />
<br />
{{Note|Unfortunately there are some problems with the new Intel drivers and for now the '''last noted working version of xf86-video-intel is 2.20.2-2''', so you will probably have to downgrade from the latest version that you have gotten from Arch's repositories (although we recommend to test the newest one before downgrading - there's always some possibility that it will work).<br />
<br />
You can get '''xf86-video-intel 2.20.2-2''' from [http://catalyst.apocalypsus.net/files/xf86-video-intel-2.20.2/ here]; just download the one for your architecture and install it with {{ic|pacman -U}}.<br />
Be aware that '''xf86-video-intel 2.20.2-2''' works with '''xorg-server 1.12''', so if you want to use it you will have to downgrade xorg-server as well. For information on this, see [[#Xorg repositories]].}}<br />
<br />
Now you can switch between the integrated and the discrete GPU, using these commands:<br />
<br />
{{bc|1=<br />
# aticonfig --px-igpu #for integrated GPU<br />
# aticonfig --px-dgpu #for discrete GPU<br />
}}<br />
<br />
Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with 'fglrx' inside.<br />
<br />
You can also use the '''pxp_switch_catalyst''' switching script that will perform some additional usefull operations:<br />
* Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there's fglrx inside) or xorg.conf.oth (if there's intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.<br />
* Running {{ic|aticonfig --px-Xgpu}}.<br />
* Running {{ic|switchlibGL}}.<br />
* Adding/removing fglrx into/from {{ic|/etc/modules-load.d/catalyst.conf}}.<br />
<br />
Usage:<br />
{{bc|1=<br />
# pxp_switch_catalyst amd<br />
# pxp_switch_catalyst intel<br />
}}<br />
<br />
If you have got problems when you try to run X on Intel's driver you may try to force '''"UXA" acceleration'''; just make sure that your xorg.conf for Intel's GPU got '''Option "AccelMethod" "uxa"''', like here:<br />
{{bc|1=<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
#Option "AccelMethod" "sna"<br />
Option "AccelMethod" "uxa"<br />
#Option "AccelMethod" "xaa"<br />
EndSection<br />
}}<br />
<br />
== Xorg repositories ==<br />
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to hold the Xorg packages from updating, or use a backported repository that only contains the Xorg packages that should be hold back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories. <br />
<br />
If you want to use pacman to hold back packages from updating, see [[pacman|skip package from being upgraded]]. Packages you should hold back, are:<br />
*xorg-server-*<br />
*xf86-input-*<br />
*xf86-video-*<br />
<br />
If you want to use the backported repositories, you have to edit {{ic|/etc/pacman.conf}} and add the information of the repository '''above all other repositories''', even above your Catalyst repository, should you use one.<br />
<br />
===[xorg112]===<br />
The current version of Catalyst doesn't support xorg-server 1.13 at the moment.<br />
<br />
[xorg112]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/xorg112/$arch</nowiki><br />
<br />
===[xorg111]===<br />
Catalyst < 12.6 doesn't support xorg-server 1.12.<br />
<br />
[xorg111]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/xorg111/$arch</nowiki><br />
<br />
== Tools ==<br />
<br />
=== Catalyst-hook ===<br />
[https://aur.archlinux.org/packages.php?ID=40834 Catalyst-hook] is a hook for [[mkinitcpio|mkinitcpio]] that will automatically update fglrx modules with every kernel update. '''This is basically the same as catalyst-dkms from [community].''' Before updating the fglrx modules, it will first try to update the {{Pkg|linux-headers}}.<br />
<br />
The hook will call the ''catalyst_build_module'' command to update fglrx module for the version of your new kernel. Additionally, it can call the ''catalyst_build_module remove'' command to remove the now old and unneeded flgrx module(s).<br />
<br />
{{Note|If you are using this functionality it's '''important''' to look at the installation process of the linux kernel (or any other kernel) package. Catalyst-hook will tell you is everything all right.}}<br />
<br />
{{Note|If your '''custom kernel''' is using some '''non-standard mkinitcpio configuration file''' (ie. linux-zen is using /etc/mkinitcpio-zen.conf) you'll have to manually add '''fglrx''' to HOOKS array in your non-standard configuration file so it can be auto-recompiled with a kernel update.}}<br />
<br />
{{Note|If you '''aren't using the stock linux kernel''' at all and still want to use auto-recompilation, you should remove linux-headers from the {{ic|SyncFirst}} list of {{ic|/etc/pacman.conf}} after running 'catalyst_build_module auto'. If you also have custom linux-headers, you can swap linux-headers in the {{ic|SyncFirst}} line with your custom one, for example linux-lts-headers.}}<br />
<br />
=== Catalyst-generator ===<br />
<br />
[https://aur.archlinux.org/packages.php?ID=41040 Catalyst-generator] is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The difference from Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.<br />
<br />
It creates catalyst-${kernver} packages using [[makepkg]] and installs them with [[pacman]]. ''${kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).<br />
<br />
To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.<br />
<br />
A short summary on how to use this package:<br />
<br />
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|catalyst-{kernver} }} packages.<br />
# As unprivileged user: {{ic|catalyst_build_module ${kernver}}}, where ${kernver} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build catalyst-${kernver} for all installed kernels by using {{ic|catalyst_build_module all}}.<br />
# If you want to remove {{ic|catalyst-generator}}, it's best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all catalyst-{kernver} packages from the system.'''<br />
<br />
Catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|catalyst_build_module remove_all}} before using {{ic|pacman -R catalyst-generator}} catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.<br />
<br />
{{Note|If you see those warnings:<br />
<br />
'''WARNING:''' Package contains reference to $srcdir<br />
<br />
'''WARNING:''' '.pkg' is not a valid archive extension.<br />
<br />
while building catalyst-{kernver} package, do not be concerned, it's normal.}}<br />
<br />
=== Catalyst-daemon ===<br />
{{Warning| systemd users have no use for this, as systemd is not compatible with regular initscript daemons.}}<br />
<br />
[https://aur.archlinux.org/packages.php?ID=40832 Catalyst-daemon] is, as its name suggests, a daemon that will run upon every boot to check if the kernel was updated. If it was, it will rebuild the fglrx module - if it wasn't, it will load the previously built fglrx module. This whole operation takes only 20ms on a 2.4 GHz CPU.<br />
<br />
The automatic re-compilation functionality of Catalyst-daemon is done by an init script called ''autofglrx''. Autofglrx's check function is comparing the built time of the just booted kernel (provided by {{ic|uname -v}}) with the built time of a kernel for which the previously used fglrx module was built. It is able to do such a comparison because it adds {{ic|uname -v}} information to the fglrx module description whilst compiling it. <br />
<br />
Whilst rebuilding, autofglrx will call the ''catalyst_build_module'' to build a module and ''catalyst_build_module remove'' to remove the old, unneeded fglrx module. It doesn't remain in the system's memory after being run.<br />
<br />
{{Note|After installing autofglrx, you have to add {{ic|autofglrx}} to the beginning of the {{ic|DAEMONS}} array {{ic|/etc/rc.conf}}. Be sure to place it before your DM (if you run that from here) and do '''not''' run it in the background (e.g. do not at a @ symbol in front of it).}}<br />
<br />
{{Note|If you are using '''your own compilation flags''' and get problems with the daemon - please add those flags into /usr/bin/catalyst_build_module file.}}<br />
<br />
== Features ==<br />
<br />
=== Tear Free Rendering ===<br />
<br />
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.<br />
<br />
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.<br />
<br />
Or as root run:<br />
<br />
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1<br />
<br />
To disable, again use {{ic|amdcccle}} or run as root:<br />
<br />
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop<br />
<br />
=== Video acceleration ===<br />
<br />
'''[http://en.wikipedia.org/wiki/Video_Acceleration_API Video Acceleration API] (VA API)''' is an open source software library (libVA) and API specification which provides GPU acceleration for video processing on Linux/UNIX based operating systems. The process works by enabling hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for common encoding standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).<br />
<br />
VA-API gained a proprietary backend (in November 2009) called {{AUR|xvba-video}}, that allows VA-API programmed applications to take advantage of AMD Radeons UVD2 chipsets via the [http://en.wikipedia.org/wiki/XvBA XvBA (X-Video Bitstream Acceleration API designed by AMD)] library.<br />
<br />
XvBA support and xvba-video is still under development, however it is '''working very well in most cases'''. Build the {{AUR|xvba-video}} package from AUR or soon, install it from [community] and install {{Pkg|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use vaapi:gl as video output:<br />
<br />
$ mplayer -vo vaapi:gl movie.avi<br />
<br />
These options can be added to your mplayer configuration file, see [[MPlayer]].<br />
<br />
For '''smplayer''':<br />
<br />
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl<br />
Options → Preferences → General → Video (tab) → Double buffering '''on'''<br />
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''<br />
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)<br />
<br />
{{Note|If Tear Free Desktop is enabled it's better to use:<br />
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi<br />
If Video Output '''vaapi:gl''' isn't working - please check:<br />
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [https://en.wikipedia.org/wiki/Avivo AVIVO Video])'''.<br />
}}<br />
<br />
For '''VLC''':<br />
<br />
Tools → Preferences → Input & Codecs → Use GPU acceleration<br />
<br />
It might help to enable v-sync in '''amdcccle''':<br />
<br />
3D → More Settings → Wait for vertical refresh = Always On<br />
<br />
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.<br />
<br />
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It's off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System Settings → Desktop Effects → Advanced.}}<br />
<br />
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===<br />
<br />
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.<br />
<br />
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}<br />
<br />
You can get the temperature with: {{ic|$ aticonfig --odgt}}<br />
<br />
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent<br />
<br />
To overclock and/or underclock it's easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work.<br />
<br />
The i686 version is available [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X32?content=107458 here], while the x86_64 is available [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X64?content=107457 here]. Just download it and run.<br />
<br />
An other, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build an Arch package from [https://aur.archlinux.org/packages.php?ID=45298 AUR] or from Vi0L0's unofficial repositories.<br />
<br />
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===<br />
<br />
==== Introduction ====<br />
<br />
{{Warning| you should know that there isn't one specific solution because each setup differs and needs its own configuration. That's why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. '''Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} before you start modifying and you must be able to recover from a command-line environment.'''}}<br />
<br />
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.<br />
<br />
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.<br />
<br />
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.<br />
<br />
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]<br />
<br />
==== ATI Catalyst Control Center ====<br />
<br />
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:<br />
<br />
$ {kdesu/gksu} amdcccle<br />
<br />
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}<br />
<br />
==== Installation ====<br />
<br />
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.<br />
<br />
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:<br />
<br />
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1<br />
<br />
or<br />
<br />
# aticonfig --initial=dual-head --screen-layout=left<br />
<br />
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}<br />
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}<br />
<br />
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:<br />
<br />
SubSection "Display"<br />
Depth 24<br />
Modes "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"<br />
EndSubSection<br />
<br />
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).<br />
<br />
==== Configuration ====<br />
<br />
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!<br />
<br />
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.<br />
<br />
== Troubleshooting ==<br />
<br />
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}<br />
<br />
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:<br />
<br />
$ grep '(EE)' /var/log/Xorg.0.log<br />
$ grep '(WW)' /var/log/Xorg.0.log<br />
<br />
If you are at lost of what to do, you can always post a message in the see [http://www.bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ support thread on the forums]. When you do so, please do provide the information you get from both commands mentioned above.<br />
<br />
=== 3D Wine applications freeze ===<br />
If you use a 3D Wine application and it hangs, you have to disable TLS. To do this, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:<br />
<br />
# aticonfig --tls=off<br />
<br />
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file. <br />
<br />
After applying either of the solutions, restart X for it to take effect.<br />
<br />
=== Problems with video colours ===<br />
<br />
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:<br />
<br />
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.<br />
<br />
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi<br />
<br />
Plus for '''smplayer''' you may now safely turn screenshots on.<br />
<br />
=== KWin and composite ===<br />
<br />
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.<br />
XRender also solves artifact issues in some cases.<br />
<br />
=== Black screen with complete lockups and/or hangs after reboot or startx ===<br />
<br />
Ensure you have added the '''nomodeset''' option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]).<br />
<br />
==== Faulty ACPI hardware calls ====<br />
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.<br />
<br />
If so, try to run this:<br />
<br />
$ aticonfig --acpi-services=off<br />
<br />
=== KDM disappears after logout ===<br />
<br />
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:<br />
<br />
$ sudo nano /usr/share/config/kdm/kdmrc<br />
<br />
Uncomment the following line under the section titled {{ic|[X-:*-Core]}}:<br />
<br />
TerminateServer=True<br />
<br />
KDM should now appear when you log out of KDE.<br />
<br />
=== Direct Rendering does not work ===<br />
<br />
This problem may occur when using the proprietary '''Catalyst''' driver.<br />
<br />
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}<br />
<br />
If you have problem with direct rendering, run:<br />
<br />
$ LIBGL_DEBUG=verbose glxinfo > /dev/null<br />
<br />
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.<br />
<br />
Common errors and their solutions, are:<br />
<br />
libGL error: XF86DRIQueryDirectRenderingCapable returned false<br />
<br />
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}, then ensure that all modules listed from that command are in the {{ic|1=MODULES=}} array in rc.conf, '''before''' fglrx if using SysVinit, otherwise open your {{ic|fglrx.conf}} file in {{ic|/etc/modules-load.d}} and add the agp module on a line '''before''' the fglrx line.<br />
<br />
libGL error: failed to open DRM: Operation not permitted<br />
libGL error: reverting to (slow) indirect rendering<br />
<br />
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so<br />
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed<br />
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)<br />
libGL error: unable to find driver: fglrx_dri.so<br />
<br />
* Something has not been installed correctly. If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that {{ic|/etc/profile}} is sourced every time you log in. This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but this may vary between login managers.<br />
<br />
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.<br />
<br />
Errors such as:<br />
<br />
fglrx: libGL version undetermined - OpenGL module is using glapi fallback<br />
<br />
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:<br />
<br />
$ sudo updatedb<br />
$ locate libGL.so<br />
<br />
This should return the following output:<br />
<br />
$ locate libGL.so<br />
/usr/lib/libGL.so<br />
/usr/lib/libGL.so.1<br />
/usr/lib/libGL.so.1.2<br />
<br />
These are the only three libGL.so files you should have on your system. If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.<br />
<br />
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:<br />
<br />
/usr/X11R6/lib/libGL.so.1.2<br />
/usr/X11R6/lib/libGL.so.1<br />
<br />
=== Hibernate/Sleep Issues ===<br />
<br />
==== Video fails to resume from suspend2ram ====<br />
<br />
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in for example, Grub Legacy's {{ic|/boot/grub/menu.lst}}:<br />
<br />
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''<br />
<br />
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== System Freezes/Hard locks ===<br />
<br />
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.<br />
<br />
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])<br />
<br />
=== Hardware Conflicts ===<br />
<br />
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:<br />
<br />
$ dmesg | grep agp<br />
<br />
If you get something similar to this (using an nForce3-based system):<br />
<br />
agpgart: Detected AGP bridge 0<br />
agpgart: Setting up Nforce3 AGP.<br />
agpgart: aperture base > 4G<br />
<br />
and also if issuing this command...<br />
<br />
$ tail -n 100 /var/log/Xorg.0.log | grep agp<br />
<br />
...gets something similar to:<br />
<br />
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"<br />
<br />
Then you have this bug.<br />
<br />
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''<br />
<br />
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350/ this bugreport] for more information and a potential fix.<br />
<br />
=== Temporary hangs when playing video ===<br />
<br />
This problem may occur when using the proprietary Catalyst.<br />
<br />
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:<br />
<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90<br />
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0<br />
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70<br />
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium =======================<br />
<br />
Adding the nopat kernel option to your kernel options in your bootloader and rebooting fixed the problem at least for me. To see how to do this for different bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== "aticonfig: No supported adaptaters detected" ===<br />
<br />
If when running<br />
<br />
# sudo aticonfig --initial<br />
<br />
you get:<br />
<br />
aticonfig: No supported adaptaters detected<br />
<br />
But you do have an AMD GPU (or APU), it may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file.<br />
<br />
You can do so by setting the device section of {{ic|/etc/X11/xorg.conf}} to:<br />
<br />
Section "Device"<br />
Identifier "ATI radeon '''****'''"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Where ''****'' should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).<br />
<br />
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.<br />
<br />
You can remove this watermark using the following script:<br />
<br />
#!/bin/sh<br />
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do<br />
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER<br />
done<br />
<br />
and rebooting.<br />
<br />
=== WebGL support in Chromium ===<br />
<br />
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers.<br />
<br />
You can turn webGL on by editing {{ic|/usr/share/applications/chromium.desktop}} file and adding {{ic|--ignore-gpu-blacklist}} flag into the '''Exec''' line so it looks like this:<br />
<br />
Exec=chromium %U --ignore-gpu-blacklist<br />
<br />
You can also run chromium from console with the same {{ic|--ignore-gpu-blacklist}} flag:<br />
<br />
$ chromium --ignore-gpu-blacklist<br />
<br />
{{Warning|Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card. For more info, read [http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html/ this].}}<br />
<br />
=== Laggs/freezes when watching flash videos via Adobe's flashplugin ===<br />
<br />
Edit {{ic|/etc/adobe/mms.cfg}} and make it look like this:<br />
<br />
#EnableLinuxHWVideoDecode=1<br />
OverrideGPUValidation=true<br />
<br />
=== Laggs/slow windows movement in GNOME3 ===<br />
<br />
You can try this solution out, it's working for many people.<br />
<br />
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:<br />
<br />
export CLUTTER_VBLANK=none<br />
<br />
Restart X server or reboot your system.<br />
<br />
=== Not using fullscreen resolution at 1920x1080 (underscanning) ===<br />
<br />
Using the amdcccle gui you can select the display, go to adjustments, and set Underscan to 0% (aticonfig defaults to 15% underscan).<br />
<br />
Alternatively, you can edit your xorg.conf by adding this line to remove the default underscanning on a per screen basis:<br />
<br />
Option "DPMS" "true"<br />
<br />
On the Monitor section, a full example would look like this<br />
<br />
Section "Monitor"<br />
Identifier "0-DFP5"<br />
Option "VendorName" "ATI Proprietary Driver"<br />
Option "ModelName" "Generic Autodetecting Monitor"<br />
Option "DPMS" "true"<br />
Option "PreferredMode" "1920x1080"<br />
Option "TargetRefresh" "60"<br />
Option "Position" "0 0"<br />
Option "Rotate" "normal"<br />
Option "Disable" "false"<br />
EndSection</div>Zannyhttps://wiki.archlinux.org/index.php?title=AMD_Catalyst&diff=234597AMD Catalyst2012-11-09T18:54:07Z<p>Zanny: Added a way to fix the fglrx underscan issue from the gui rather than xorg.conf editing.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[es:ATI Catalyst]]<br />
[[fr:ATI#Catalyst]]<br />
[[it:AMD Catalyst]]<br />
[[zh-CN:AMD Catalyst]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of ATI's proprietary Linux "Catalyst" video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Intel}}<br />
{{Article summary wiki|NVIDIA}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}<br />
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.<br />
<br />
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.<br />
<br />
<strike>Catalyst was once a precompiled package offered by Arch in the [extra] repository, but as of March 2009, official Arch support [http://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] because of dissatisfaction with the quality and speed of development</strike>. In October 2012, it seems like the packages are being offered again. Currently, packages are available in the [community] repository, but it's unknown what will happen when an Xorg upgrade will break the driver. Also, a legacy driver for Radeon HD 2xxx 3xxx 4xxx is not available yet. For more information, see [http://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ this] this forum post and onwards.<br />
<br />
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [http://en.wikipedia.org/wiki/Radeon ATI/AMD Radeon] video cards with chipset R600 and newer (as of Catalyst 9.4). See [http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units this table], or the Xorg [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names "Decoder ring",] to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).<br />
<br />
== Installation ==<br />
<br />
There are four ways of installing Catalyst on your system. One way is to use the official [community] repository, but this does not contain all the packages just yet. (At this time of writing, October 04, there's no xvba-video and lib32 driver yet. Also, a legacy driver is still missing). Another one is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository does contain all the necessary packages. The third method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.<br />
<br />
Before choosing the method you prefer, you will have to see which driver you need. Since Catalyst 12.4, AMD has separated its development for Radeon HD 5xxx and Radeon HD 2xxx, 3xxx and 4xxx cards. For Radeon HD 2xxx, 3xxx and 4xxx cards, there's the '''legacy''' Catalyst driver, for Radeon HD 5xxx there is the regular Catalyst. Regardless of the driver you need, you will also need the Catalyst utilities.<br />
<br />
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}<br />
<br />
=== Installing the driver ===<br />
==== Installing from the official repository ====<br />
This is the most simple and straightforward way, as it requires no unofficial repositories and because this package uses [[Dynamic Kernel Module Support|DKMS]] to automatically rebuilt the kernel modules when the kernel is upgraded. If this repository holds the packages you need, I suggest you take this one. To install Catalyst, you can use [[Pacman|pacman]]:<br />
<br />
# pacman -S catalyst-dkms catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' - you may safely say "Y"}}<br />
<br />
{{Note|If you are using systemd, you should enable the DKMS service. SysV init users do not have to do this. For more information on enabling service files, see [[systemd]].}}<br />
<br />
If you are on 64 bit and also need 32 bit OpenGL support, install lib32-catalyst-utils. Note that you will have to enable the [multilib] repository first.<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Later on, a legacy driver will also be offered here.<br />
<br />
==== Installing from the unofficial repository ====<br />
If you need packages that currently aren't hosted by the official repository and don't fancy building the packages from the [[Arch User Repository|AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0L0. All packages are signed and I consider them safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards. <br />
<br />
Vi0L0 has two different Catalyst repositories, each having different drivers:<br />
*[catalyst]; for the regular Catalyst driver needed by Radeon HD 5xxx and up.<br />
*[catalyst-hd234k]; for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards. <br />
<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
To enable one of these, you will have to edit {{ic|/etc/pacman.conf}} and add the repository of choice's information '''above all other repositories in {{ic|/etc/pacman.conf}}:<br />
<br />
# nano /etc/pacman.conf<br />
<br />
For [catalyst], it's this:<br />
<br />
[catalyst]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/catalyst/$arch</nowiki><br />
<br />
For [catalyst-hd234k], you have to add the following:<br />
<br />
[catalyst-hd234k]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/catalyst-hd234k/$arch</nowiki><br />
<br />
You must also [[User:Vi0L0|add Vi0L0's GPG key]] so that pacman trusts the repositories.<br />
<br />
# pacman-key --keyserver pgp.mit.edu --recv-keys 0xabed422d653c3094<br />
# pacman-key --lsign-key 0xabed422d653c3094<br />
<br />
Once you have added this, update pacman's database and install the packages:<br />
<br />
# pacman -Syu<br />
# pacman -S catalyst catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' - you may safely say "Y"}}<br />
<br />
If you are on 64 bit and need 32 bit OpenGL support, install lib32-catalyst-utils. Note that you will have to enable the [multilib] repository first:<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Both repositories also contain other packages, that can ''replace'' the Catalyst package and provide fglrx modules for ''multiple'' kernels that are installed on your system:<br />
<br />
* Catalyst-generator; this package is able to generate fglrx modules packed into pacman compliant packages - most secure and KISS-compatible package in this side-note, although it has to be operated manually.<br />
* Catalyst-hook; A hook for [[mkinitcpio|mkinitcpio]] which will automatically update fglrx modules with every kernel's update. '''This is basically the same as catalyst-dkms from [community]'''.<br />
* Catalyst-daemon; this delivers an automatic update of the fglrx module with every kernel update, done by an init script. '''This is the same as Catalyst-hook and also catalyst-dkms from [community]. Also, systemd users have no use for this package, as systemd has no init script support'''.<br />
<br />
You will find more details about those packages in [[#Tools| Tools section]].<br />
Lastly, both repositories also contain the '''xvba-video''' package, which enables video acceleration described [[#Video_acceleration]] and the '''AMDOverdriveCtrl''' package, which is a GUI to control over- and underclocking. See [[#GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities]]<br />
<br />
==== Installing from the AUR ====<br />
The last way to install Catalyst is from the [[Arch User Repository|AUR]]. If you want to built the packages specifically for your computer, this is your way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.<br />
<br />
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[Arch User Repository|AUR]]:<br />
* {{AUR|Catalyst}};<br />
* {{AUR|Catalyst-utils}};<br />
* {{AUR|Lib32-catalyst-utils}};<br />
* {{AUR|Catalyst-generator}};<br />
* {{AUR|Catalyst-hook}};<br />
* {{AUR|Catalyst-daemon}}.<br />
<br />
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:<br />
* {{AUR|Catalyst-total-hd234k}};<br />
* {{AUR|Catalyst-total}};<br />
* {{AUR|Catalyst-test}};<br />
* {{AUR|Lib32-catalyst-test}};<br />
* {{AUR|Catalyst-total-pxp}};<br />
<br />
The ''Catalyst-total'' packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the Catalyst-hook package, which is explained above.<br />
<br />
''Catalyst-total-pxp'' builds Catalyst with experimental powerXpress support.<br />
<br />
For more information on building from the AUR, read [[#Installing_from_AUR| Installing from AUR]].<br />
<br />
==== Installing directly from AMD ====<br />
{{Warning|Using the installer from ati.com/amd.com is '''not''' recommended! It may cause file conflicts and X failures and you will miss Arch-specific fixes. You '''must''' be familiar with booting to the command-line if you wish to attempt this.}}<br />
<br />
{{Note|If you have attempted a manual install from the official installer and cannot recover your desktop:<br />
# /usr/share/ati/fglrx-uninstall.sh<br />
}}<br />
<br />
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}<br />
<br />
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}<br />
<br />
3.) Ensure you're using a basic video driver like vesa and remove conflicting drivers (i.e. {{ic|xf86-video-ati}}) with pacman.<br />
<br />
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}. 64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.<br />
<br />
5.) Be sure to have your build environment setup: {{ic|# pacman -Syu base-devel linux-headers}}<br />
<br />
6.) Now run {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}} (Files will extract to a temporary folder and scripts will run...)<br />
<br />
Assuming nothing went horribly wrong...<br />
<br />
7.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues. There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}.<br />
<br />
{{Note|If you modify the make scripts, save to a different filename. Otherwise uninstall will not complete successfully.}}<br />
<br />
=== Configuring the driver ===<br />
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[KMS|kernel mode setting]].<br />
<br />
==== Configuring X ====<br />
To configure X, you will have to create an xorg.conf file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.<br />
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:<br />
<br />
# aticonfig --help | less<br />
<br />
{{Warning|Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}<br />
<br />
{{Note|If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}<br />
<br />
Now, to configure Catalyst. If you have only one monitor, run this:<br />
<br />
# aticonfig --initial<br />
<br />
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.<br />
<br />
# aticonfig --initial=dual-head --screen-layout=above<br />
<br />
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}<br />
<br />
You can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.<br />
<br />
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.<br />
<br />
Here is an example (with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:<br />
<br />
{{bc|1=<br />
Section "ServerLayout"<br />
Identifier "Arch"<br />
Screen 0 "Screen0" 0 0 # 0's are necessary.<br />
EndSection<br />
Section "Module"<br />
Load ...<br />
...<br />
EndSection<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
...<br />
EndSection<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "fglrx" # Essential.<br />
BusID "PCI:1:0:0" # Recommended if autodetect fails.<br />
Option "OpenGLOverlay" "0" ##<br />
Option "XAANoOffscreenPixmaps" "false" ##<br />
EndSection<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24 # Should not change from '24'<br />
Modes "1280x1024" "2048x1536" ## 1st value=default resolution, 2nd=maximum.<br />
Virtual 1664 1200 ## (x+64, y) to workaround potential OGL rect. artifacts/<br />
EndSubSection ## fixed in Catalyst 9.8<br />
EndSection<br />
Section "DRI"<br />
Mode 0666 # May help enable direct rendering.<br />
EndSection<br />
}}<br />
<br />
{{Note|With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in amdcccle.}}<br />
<br />
''If you need more information on Catalyst, visit [http://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''<br />
<br />
==== Loading the module at boot ====<br />
How you should handle this depends on the init system you're using; either SysVinit or systemd. In either case, you have to blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. For more information, see [[Modprobe|blacklisting in this article]]. '''Users of the [community] package do not have to do this, it's automatically done for them when installing the package'''.<br />
<br />
{{Note|The systemd method is recommended, as Arch is slowly switching over to this and the rc.conf method is actually deprecated.}}<br />
<br />
===== The systemd method =====<br />
* Disable the {{ic|radeon}} module from auto-loading. If it occurs in any file under {{ic|/etc/modules-load.d/}}, remove the file (or, if the file contains multiple modules, just remove the radeon one).<br />
* Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.<br />
<br />
===== Arch initscripts =====<br />
Edit {{ic|/etc/rc.conf}} by:<br />
* Removing {{ic|radeon}} from the MODULES array.<br />
* Adding {{ic|fglrx}} to MODULES.<br />
<br />
{{Note|If you are using an AGP card instead of PCI Express add the ''agp'' module as well.}}<br />
<br />
==== Disable kernel mode setting ====<br />
<br />
Disabling kernel mode setting is important, as the driver doesn't take advantage of [[KMS]] yet. If you do not deactivate KMS, your system might freeze when trying to switch to a tty or even when shutting down via your DE.<br />
<br />
For [[GRUB Legacy|GRUB Legacy]], edit {{ic|menu.lst}} by adding {{ic|nomodeset}} to the kernel parameters. For example:<br />
<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''<br />
<br />
For [[GRUB2|GRUB 2]], edit {{ic|/etc/default/grub}} and add ''nomodeset'' to the kernel parameter options, e.g.<br />
<br />
GRUB_CMDLINE_LINUX="nomodeset"<br />
<br />
Then run, as root;<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
For [[Syslinux|Syslinux]], edit {{ic|/boot/syslinux/syslinux.cfg}} and add ''nomodeset'' to the {{ic|APPEND}} line, e.g.:<br />
<br />
APPEND root=/dev/sda2 ro ''nomodeset''<br />
<br />
==== Checking operation ====<br />
<br />
Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:<br />
<br />
$ lsmod | grep fglrx<br />
$ fglrxinfo<br />
<br />
If you get output, it works. Finally, run X with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:<br />
<br />
$ glxinfo | grep direct<br />
<br />
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found, you might need to install the {{Pkg|mesa-demos}} package.<br />
<br />
{{Note|You can also use:<br />
$ fgl_glxgears<br />
as the fglrx alternative test to glxgears.<br />
}}<br />
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}<br />
<br />
If you have trouble, see [[#Troubleshooting]].<br />
<br />
=== Custom Kernels ===<br />
<br />
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.<br />
<br />
If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.<br />
<br />
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].<br />
# Editing the PKGBUILD. Two changes need to be made here:<br />
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).<br />
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.<br />
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}}<br />
<br />
{{Note|If you run multiple kernels, you have to install the Catalyst-utils packages for all kernels. They won't conflict with one another.}}<br />
<br />
{{Note|Catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools| Tools section]].}}<br />
<br />
<br />
=== PowerXpress support ===<br />
<br />
<br />
PowerXpress technology allows switching from integrated graphics (IGP) to discrete graphics on notebooks, either to increase battery life or to achieve better 3D rendering capabilities.<br />
<br />
To use such functionality on Arch you will have to:<br />
* Get and build {{AUR|catalyst-total-pxp}} package from the [[Arch User Repository|AUR]], or<br />
* Install '''catalyst-utils-pxp''' package from the [catalyst] repository (plus additional lib32-catalyst-utils-pxp, if needed).<br />
<br />
<br />
To perform a switch into Intel's IGP you will also have to install the '''libgl''' package and Intel's drivers: '''xf86-video-intel''' and '''intel-dri'''.<br />
<br />
{{Note|Unfortunately there are some problems with the new Intel drivers and for now the '''last noted working version of xf86-video-intel is 2.20.2-2''', so you will probably have to downgrade from the latest version that you have gotten from Arch's repositories (although we recommend to test the newest one before downgrading - there's always some possibility that it will work).<br />
<br />
You can get '''xf86-video-intel 2.20.2-2''' from [http://catalyst.apocalypsus.net/files/xf86-video-intel-2.20.2/ here]; just download the one for your architecture and install it with {{ic|pacman -U}}.<br />
Be aware that '''xf86-video-intel 2.20.2-2''' works with '''xorg-server 1.12''', so if you want to use it you will have to downgrade xorg-server as well. For information on this, see [[#Xorg repositories]].}}<br />
<br />
Now you can switch between the integrated and the discrete GPU, using these commands:<br />
<br />
{{bc|1=<br />
# aticonfig --px-igpu #for integrated GPU<br />
# aticonfig --px-dgpu #for discrete GPU<br />
}}<br />
<br />
Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with 'fglrx' inside.<br />
<br />
You can also use the '''pxp_switch_catalyst''' switching script that will perform some additional usefull operations:<br />
* Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there's fglrx inside) or xorg.conf.oth (if there's intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.<br />
* Running {{ic|aticonfig --px-Xgpu}}.<br />
* Running {{ic|switchlibGL}}.<br />
* Adding/removing fglrx into/from {{ic|/etc/modules-load.d/catalyst.conf}}.<br />
<br />
Usage:<br />
{{bc|1=<br />
# pxp_switch_catalyst amd<br />
# pxp_switch_catalyst intel<br />
}}<br />
<br />
If you have got problems when you try to run X on Intel's driver you may try to force '''"UXA" acceleration'''; just make sure that your xorg.conf for Intel's GPU got '''Option "AccelMethod" "uxa"''', like here:<br />
{{bc|1=<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
#Option "AccelMethod" "sna"<br />
Option "AccelMethod" "uxa"<br />
#Option "AccelMethod" "xaa"<br />
EndSection<br />
}}<br />
<br />
== Xorg repositories ==<br />
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to hold the Xorg packages from updating, or use a backported repository that only contains the Xorg packages that should be hold back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories. <br />
<br />
If you want to use pacman to hold back packages from updating, see [[pacman|skip package from being upgraded]]. Packages you should hold back, are:<br />
*xorg-server-*<br />
*xf86-input-*<br />
*xf86-video-*<br />
<br />
If you want to use the backported repositories, you have to edit {{ic|/etc/pacman.conf}} and add the information of the repository '''above all other repositories''', even above your Catalyst repository, should you use one.<br />
<br />
===[xorg112]===<br />
The current version of Catalyst doesn't support xorg-server 1.13 at the moment.<br />
<br />
[xorg112]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/xorg112/$arch</nowiki><br />
<br />
===[xorg111]===<br />
Catalyst < 12.6 doesn't support xorg-server 1.12.<br />
<br />
[xorg111]<br />
<nowiki>Server = http://catalyst.apocalypsus.net/repo/xorg111/$arch</nowiki><br />
<br />
== Tools ==<br />
<br />
=== Catalyst-hook ===<br />
[https://aur.archlinux.org/packages.php?ID=40834 Catalyst-hook] is a hook for [[mkinitcpio|mkinitcpio]] that will automatically update fglrx modules with every kernel update. '''This is basically the same as catalyst-dkms from [community].''' Before updating the fglrx modules, it will first try to update the {{Pkg|linux-headers}}.<br />
<br />
The hook will call the ''catalyst_build_module'' command to update fglrx module for the version of your new kernel. Additionally, it can call the ''catalyst_build_module remove'' command to remove the now old and unneeded flgrx module(s).<br />
<br />
{{Note|If you are using this functionality it's '''important''' to look at the installation process of the linux kernel (or any other kernel) package. Catalyst-hook will tell you is everything all right.}}<br />
<br />
{{Note|If your '''custom kernel''' is using some '''non-standard mkinitcpio configuration file''' (ie. linux-zen is using /etc/mkinitcpio-zen.conf) you'll have to manually add '''fglrx''' to HOOKS array in your non-standard configuration file so it can be auto-recompiled with a kernel update.}}<br />
<br />
{{Note|If you '''aren't using the stock linux kernel''' at all and still want to use auto-recompilation, you should remove linux-headers from the {{ic|SyncFirst}} list of {{ic|/etc/pacman.conf}} after running 'catalyst_build_module auto'. If you also have custom linux-headers, you can swap linux-headers in the {{ic|SyncFirst}} line with your custom one, for example linux-lts-headers.}}<br />
<br />
=== Catalyst-generator ===<br />
<br />
[https://aur.archlinux.org/packages.php?ID=41040 Catalyst-generator] is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The difference from Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.<br />
<br />
It creates catalyst-${kernver} packages using [[makepkg]] and installs them with [[pacman]]. ''${kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).<br />
<br />
To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.<br />
<br />
A short summary on how to use this package:<br />
<br />
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|catalyst-{kernver} }} packages.<br />
# As unprivileged user: {{ic|catalyst_build_module ${kernver}}}, where ${kernver} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build catalyst-${kernver} for all installed kernels by using {{ic|catalyst_build_module all}}.<br />
# If you want to remove {{ic|catalyst-generator}}, it's best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all catalyst-{kernver} packages from the system.'''<br />
<br />
Catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|catalyst_build_module remove_all}} before using {{ic|pacman -R catalyst-generator}} catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.<br />
<br />
{{Note|If you see those warnings:<br />
<br />
'''WARNING:''' Package contains reference to $srcdir<br />
<br />
'''WARNING:''' '.pkg' is not a valid archive extension.<br />
<br />
while building catalyst-{kernver} package, do not be concerned, it's normal.}}<br />
<br />
=== Catalyst-daemon ===<br />
{{Warning| systemd users have no use for this, as systemd is not compatible with regular initscript daemons.}}<br />
<br />
[https://aur.archlinux.org/packages.php?ID=40832 Catalyst-daemon] is, as its name suggests, a daemon that will run upon every boot to check if the kernel was updated. If it was, it will rebuild the fglrx module - if it wasn't, it will load the previously built fglrx module. This whole operation takes only 20ms on a 2.4 GHz CPU.<br />
<br />
The automatic re-compilation functionality of Catalyst-daemon is done by an init script called ''autofglrx''. Autofglrx's check function is comparing the built time of the just booted kernel (provided by {{ic|uname -v}}) with the built time of a kernel for which the previously used fglrx module was built. It is able to do such a comparison because it adds {{ic|uname -v}} information to the fglrx module description whilst compiling it. <br />
<br />
Whilst rebuilding, autofglrx will call the ''catalyst_build_module'' to build a module and ''catalyst_build_module remove'' to remove the old, unneeded fglrx module. It doesn't remain in the system's memory after being run.<br />
<br />
{{Note|After installing autofglrx, you have to add {{ic|autofglrx}} to the beginning of the {{ic|DAEMONS}} array {{ic|/etc/rc.conf}}. Be sure to place it before your DM (if you run that from here) and do '''not''' run it in the background (e.g. do not at a @ symbol in front of it).}}<br />
<br />
{{Note|If you are using '''your own compilation flags''' and get problems with the daemon - please add those flags into /usr/bin/catalyst_build_module file.}}<br />
<br />
== Features ==<br />
<br />
=== Tear Free Rendering ===<br />
<br />
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.<br />
<br />
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.<br />
<br />
Or as root run:<br />
<br />
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1<br />
<br />
To disable, again use {{ic|amdcccle}} or run as root:<br />
<br />
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop<br />
<br />
=== Video acceleration ===<br />
<br />
'''[http://en.wikipedia.org/wiki/Video_Acceleration_API Video Acceleration API] (VA API)''' is an open source software library (libVA) and API specification which provides GPU acceleration for video processing on Linux/UNIX based operating systems. The process works by enabling hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for common encoding standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).<br />
<br />
VA-API gained a proprietary backend (in November 2009) called {{AUR|xvba-video}}, that allows VA-API programmed applications to take advantage of AMD Radeons UVD2 chipsets via the [http://en.wikipedia.org/wiki/XvBA XvBA (X-Video Bitstream Acceleration API designed by AMD)] library.<br />
<br />
XvBA support and xvba-video is still under development, however it is '''working very well in most cases'''. Build the {{AUR|xvba-video}} package from AUR or soon, install it from [community] and install {{Pkg|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use vaapi:gl as video output:<br />
<br />
$ mplayer -vo vaapi:gl movie.avi<br />
<br />
These options can be added to your mplayer configuration file, see [[MPlayer]].<br />
<br />
For '''smplayer''':<br />
<br />
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl<br />
Options → Preferences → General → Video (tab) → Double buffering '''on'''<br />
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''<br />
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)<br />
<br />
{{Note|If Tear Free Desktop is enabled it's better to use:<br />
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi<br />
If Video Output '''vaapi:gl''' isn't working - please check:<br />
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [https://en.wikipedia.org/wiki/Avivo AVIVO Video])'''.<br />
}}<br />
<br />
For '''VLC''':<br />
<br />
Tools → Preferences → Input & Codecs → Use GPU acceleration<br />
<br />
It might help to enable v-sync in '''amdcccle''':<br />
<br />
3D → More Settings → Wait for vertical refresh = Always On<br />
<br />
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.<br />
<br />
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It's off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System Settings → Desktop Effects → Advanced.}}<br />
<br />
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===<br />
<br />
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.<br />
<br />
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}<br />
<br />
You can get the temperature with: {{ic|$ aticonfig --odgt}}<br />
<br />
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent<br />
<br />
To overclock and/or underclock it's easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work.<br />
<br />
The i686 version is available [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X32?content=107458 here], while the x86_64 is available [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X64?content=107457 here]. Just download it and run.<br />
<br />
An other, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build an Arch package from [https://aur.archlinux.org/packages.php?ID=45298 AUR] or from Vi0L0's unofficial repositories.<br />
<br />
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===<br />
<br />
==== Introduction ====<br />
<br />
{{Warning| you should know that there isn't one specific solution because each setup differs and needs its own configuration. That's why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. '''Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} before you start modifying and you must be able to recover from a command-line environment.'''}}<br />
<br />
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.<br />
<br />
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.<br />
<br />
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.<br />
<br />
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]<br />
<br />
==== ATI Catalyst Control Center ====<br />
<br />
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:<br />
<br />
$ {kdesu/gksu} amdcccle<br />
<br />
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}<br />
<br />
==== Installation ====<br />
<br />
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.<br />
<br />
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:<br />
<br />
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1<br />
<br />
or<br />
<br />
# aticonfig --initial=dual-head --screen-layout=left<br />
<br />
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}<br />
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}<br />
<br />
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:<br />
<br />
SubSection "Display"<br />
Depth 24<br />
Modes "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"<br />
EndSubSection<br />
<br />
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).<br />
<br />
==== Configuration ====<br />
<br />
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!<br />
<br />
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.<br />
<br />
== Troubleshooting ==<br />
<br />
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}<br />
<br />
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:<br />
<br />
$ grep '(EE)' /var/log/Xorg.0.log<br />
$ grep '(WW)' /var/log/Xorg.0.log<br />
<br />
If you are at lost of what to do, you can always post a message in the see [http://www.bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ support thread on the forums]. When you do so, please do provide the information you get from both commands mentioned above.<br />
<br />
=== 3D Wine applications freeze ===<br />
If you use a 3D Wine application and it hangs, you have to disable TLS. To do this, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:<br />
<br />
# aticonfig --tls=off<br />
<br />
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file. <br />
<br />
After applying either of the solutions, restart X for it to take effect.<br />
<br />
=== Problems with video colours ===<br />
<br />
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:<br />
<br />
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.<br />
<br />
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi<br />
<br />
Plus for '''smplayer''' you may now safely turn screenshots on.<br />
<br />
=== KWin and composite ===<br />
<br />
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.<br />
XRender also solves artifact issues in some cases.<br />
<br />
=== Black screen with complete lockups and/or hangs after reboot or startx ===<br />
<br />
Ensure you have added the '''nomodeset''' option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]).<br />
<br />
==== Faulty ACPI hardware calls ====<br />
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.<br />
<br />
If so, try to run this:<br />
<br />
$ aticonfig --acpi-services=off<br />
<br />
=== KDM disappears after logout ===<br />
<br />
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:<br />
<br />
$ sudo nano /usr/share/config/kdm/kdmrc<br />
<br />
Uncomment the following line under the section titled {{ic|[X-:*-Core]}}:<br />
<br />
TerminateServer=True<br />
<br />
KDM should now appear when you log out of KDE.<br />
<br />
=== Direct Rendering does not work ===<br />
<br />
This problem may occur when using the proprietary '''Catalyst''' driver.<br />
<br />
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}<br />
<br />
If you have problem with direct rendering, run:<br />
<br />
$ LIBGL_DEBUG=verbose glxinfo > /dev/null<br />
<br />
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.<br />
<br />
Common errors and their solutions, are:<br />
<br />
libGL error: XF86DRIQueryDirectRenderingCapable returned false<br />
<br />
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}, then ensure that all modules listed from that command are in the {{ic|1=MODULES=}} array in rc.conf, '''before''' fglrx if using SysVinit, otherwise open your {{ic|fglrx.conf}} file in {{ic|/etc/modules-load.d}} and add the agp module on a line '''before''' the fglrx line.<br />
<br />
libGL error: failed to open DRM: Operation not permitted<br />
libGL error: reverting to (slow) indirect rendering<br />
<br />
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so<br />
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed<br />
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)<br />
libGL error: unable to find driver: fglrx_dri.so<br />
<br />
* Something has not been installed correctly. If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that {{ic|/etc/profile}} is sourced every time you log in. This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but this may vary between login managers.<br />
<br />
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.<br />
<br />
Errors such as:<br />
<br />
fglrx: libGL version undetermined - OpenGL module is using glapi fallback<br />
<br />
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:<br />
<br />
$ sudo updatedb<br />
$ locate libGL.so<br />
<br />
This should return the following output:<br />
<br />
$ locate libGL.so<br />
/usr/lib/libGL.so<br />
/usr/lib/libGL.so.1<br />
/usr/lib/libGL.so.1.2<br />
<br />
These are the only three libGL.so files you should have on your system. If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.<br />
<br />
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:<br />
<br />
/usr/X11R6/lib/libGL.so.1.2<br />
/usr/X11R6/lib/libGL.so.1<br />
<br />
=== Hibernate/Sleep Issues ===<br />
<br />
==== Video fails to resume from suspend2ram ====<br />
<br />
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in for example, Grub Legacy's {{ic|/boot/grub/menu.lst}}:<br />
<br />
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''<br />
<br />
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== System Freezes/Hard locks ===<br />
<br />
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.<br />
<br />
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])<br />
<br />
=== Hardware Conflicts ===<br />
<br />
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:<br />
<br />
$ dmesg | grep agp<br />
<br />
If you get something similar to this (using an nForce3-based system):<br />
<br />
agpgart: Detected AGP bridge 0<br />
agpgart: Setting up Nforce3 AGP.<br />
agpgart: aperture base > 4G<br />
<br />
and also if issuing this command...<br />
<br />
$ tail -n 100 /var/log/Xorg.0.log | grep agp<br />
<br />
...gets something similar to:<br />
<br />
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"<br />
<br />
Then you have this bug.<br />
<br />
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''<br />
<br />
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350/ this bugreport] for more information and a potential fix.<br />
<br />
=== Temporary hangs when playing video ===<br />
<br />
This problem may occur when using the proprietary Catalyst.<br />
<br />
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:<br />
<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90<br />
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0<br />
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70<br />
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium =======================<br />
<br />
Adding the nopat kernel option to your kernel options in your bootloader and rebooting fixed the problem at least for me. To see how to do this for different bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== "aticonfig: No supported adaptaters detected" ===<br />
<br />
If when running<br />
<br />
# sudo aticonfig --initial<br />
<br />
you get:<br />
<br />
aticonfig: No supported adaptaters detected<br />
<br />
But you do have an AMD GPU (or APU), it may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file.<br />
<br />
You can do so by setting the device section of {{ic|/etc/X11/xorg.conf}} to:<br />
<br />
Section "Device"<br />
Identifier "ATI radeon '''****'''"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Where ''****'' should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).<br />
<br />
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.<br />
<br />
You can remove this watermark using the following script:<br />
<br />
#!/bin/sh<br />
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do<br />
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER<br />
done<br />
<br />
and rebooting.<br />
<br />
=== WebGL support in Chromium ===<br />
<br />
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers.<br />
<br />
You can turn webGL on by editing {{ic|/usr/share/applications/chromium.desktop}} file and adding {{ic|--ignore-gpu-blacklist}} flag into the '''Exec''' line so it looks like this:<br />
<br />
Exec=chromium %U --ignore-gpu-blacklist<br />
<br />
You can also run chromium from console with the same {{ic|--ignore-gpu-blacklist}} flag:<br />
<br />
$ chromium --ignore-gpu-blacklist<br />
<br />
{{Warning|Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card. For more info, read [http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html/ this].}}<br />
<br />
=== Laggs/freezes when watching flash videos via Adobe's flashplugin ===<br />
<br />
Edit {{ic|/etc/adobe/mms.cfg}} and make it look like this:<br />
<br />
#EnableLinuxHWVideoDecode=1<br />
OverrideGPUValidation=true<br />
<br />
=== Laggs/slow windows movement in GNOME3 ===<br />
<br />
You can try this solution out, it's working for many people.<br />
<br />
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:<br />
<br />
export CLUTTER_VBLANK=none<br />
<br />
Restart X server or reboot your system.<br />
<br />
=== Not using fullscreen in the 1920x1080 resolution (underscanning) ===<br />
<br />
Using the amdcccle gui you can select the display, go to adjustments, and set Underscan to 0% (aticonfig defaults to 15% underscan).<br />
<br />
Alternatively, you can edit your xorg.conf by adding this line to remove the default underscanning on a per screen basis:<br />
<br />
Option "DPMS" "true"<br />
<br />
On the Monitor section, a full example would look like this<br />
<br />
Section "Monitor"<br />
Identifier "0-DFP5"<br />
Option "VendorName" "ATI Proprietary Driver"<br />
Option "ModelName" "Generic Autodetecting Monitor"<br />
Option "DPMS" "true"<br />
Option "PreferredMode" "1920x1080"<br />
Option "TargetRefresh" "60"<br />
Option "Position" "0 0"<br />
Option "Rotate" "normal"<br />
Option "Disable" "false"<br />
EndSection</div>Zanny