https://wiki.archlinux.org/api.php?action=feedcontributions&user=CBiX&feedformat=atomArchWiki - User contributions [en]2024-03-28T21:02:26ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=VCV_Rack&diff=738800VCV Rack2022-07-23T16:03:23Z<p>CBiX: /* Installation */ update for v2</p>
<hr />
<div>[[Category:Music]]<br />
{{Style|More a scratchpad than an article}}<br />
<br />
[https://vcvrack.com VCV Rack] is a modular analogue synthesizer, more precisely a Virtual Eurorack DAW. It uses a plug-in systems to add more Eurorack emulated modules. As hardware Eurorack, it can be connected to midi, audio sources and destination, and other Eurorack modules. See also [[Wikipedia:VCV Rack]]. VCV Rack allow input from computer keyboard too, via the rack module MIDI-CV (included in "fundamental" modules pack).<br />
<br />
The main principle of a modular analogue synthesizer is to add several module in the rack, and connect the different modules with wires, here by clicking on a connector and dragging in into another connector. Buttons on the modules allow you to change specifics parameters of the module.<br />
<br />
== Installation ==<br />
<br />
[[Install]] {{AUR|vcvrack}} or the binary package from [[Unofficial user repositories#proaudio]] which already come with the Fundamental modules. These are not supported by VCV developers, rather ask the respective maintainers for support. {{AUR|vcvrack-bin}} will install the official binary version provided by VCV.<br />
<br />
To install modules, there are several options:<br />
# Install them from the official [https://library.vcvrack.com/ VCV Library] (requires creating a free account).<br />
# Build [https://library.vcvrack.com/plugins?query=&sort=name&license=open open-source plugins] yourself, see the [https://vcvrack.com/manual/Building#Building-Rack-plugins manual] for reference.<br />
# The AUR and proaudio-repo versions of VCV Rack are patched to support plugins installed to {{ic|/usr/lib/vcvrack/plugins}}, a few of which are also available on the AUR. To get all plugins available from binary repos (currently only [[Unofficial user repositories#proaudio]]), run {{ic|pacman -Sy vcvrack-plugins}} to install the relevant package group.<br />
<br />
== Using computer keyboard Input ==<br />
<br />
To use computer keyboard Input:<br />
* add the MIDI-CV module in your virtual Rack<br />
* Click on the middle line on the screen of the module.<br />
* Choose QWERTY keyboard for virtual piano keyboard<br />
* Choose Numpad keyboard for virtual percussion keyboard<br />
You can add two (or more) times the module, to have QWERTY part controlling some part of your setup and Numpad controlling some other part for example.<br />
<br />
== Using computer audio input and output ==<br />
<br />
The Audio-8 (8 channels) and Audio-16 (16 channels) modules, from "Fundamental" modules pack, allow to input and output audio to [[JACK]], [[PulseAudio]], [[ALSA]] or (MIDI) Bridge Output. To set the desired Input or Ouput:<br />
* Choose the desired sound library on the first line of the screen of the virtual module<br />
* Select the Input or Output port on the Second line.<br />
<br />
For using audio Input source into the modular setup use the "From device" connectors<br />
For using audio Ouput destination, from the modular setup, use the "To device" connectors.<br />
<br />
== Oscilloscope ==<br />
<br />
The Scope module, allow you to see the signal, from any part of the setup, and then allows to debug the setup.<br />
<br />
== See also ==<br />
<br />
* https://github.com/DISTRHO/Cardinal - DPF-based Rack wrapper that uses compiled-in modules and provides LV2/VST plugins plus a JACK app.</div>CBiXhttps://wiki.archlinux.org/index.php?title=Professional_audio&diff=729946Professional audio2022-05-16T19:42:13Z<p>CBiX: /* See also */ archlinux-proaudio repo</p>
<hr />
<div>[[Category:Sound]]<br />
[[ja:プロオーディオ]]<br />
[[ru:Professional audio]]<br />
{{Related articles start}}<br />
{{Related|Sound system}}<br />
{{Related|JACK}}<br />
{{Related|Realtime kernel}}<br />
{{Related|envy24control}}<br />
{{Related articles end}}<br />
Modern Linux systems are more than capable of supporting your (semi-)professional audio needs. Latencies of 5ms down to even as low as 1ms can be achieved with good hardware and proper configuration.<br />
<br />
== Getting started ==<br />
<br />
Arch Linux provides the package groups {{Grp|pro-audio}} (holding all relevant (semi-) professional applications), {{Grp|lv2-plugins}}, {{Grp|ladspa-plugins}}, {{Grp|dssi-plugins}} and {{Grp|vst-plugins}} (the latter being subgroups of the first group).<br />
<br />
{{Tip| See [[Pacman/Tips and tricks#Listing packages]] for listing members of and [[Pacman#Installing package groups]] for installing package groups.}}<br />
<br />
Low-latency audio on Linux is achieved using [[JACK]] (all applications in the {{Grp|pro-audio}} group are [[JACK]] clients).<br />
<br />
{{Note| [[JACK]] uses audio backends, such as [[ALSA]], [http://ffado.org FFADO], [[OSS]] or [http://www.portaudio.com/ Portaudio]. Depending on your setup, make sure those are configured properly!}}<br />
<br />
=== System configuration ===<br />
<br />
{{Note| The quality of information on best practices and system configuration vary a great deal (and are outdated or sometimes even contradictory in many locations). While for some systems and setups a higher level of optimization is necessary, for most users this will not be the case. Try a standard setup with the vanilla Arch Linux kernel first. Only if you require a setup with lower latency and greater stability, start considering optimizations!}}<br />
<br />
You may want to consider the following often seen system optimizations:<br />
<br />
* Setting the [[CPU frequency scaling]] governor to ''performance''.<br />
* [[Realtime_process_management#Configuring_PAM|Configuring pam_limits]] (e.g. by installing {{pkg|realtime-privileges}} and adding your user to the {{ic|realtime}} group).<br />
* Using the {{ic|threadirqs}} [[kernel parameter]] (consult [https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html] for reference) - enforced by default by the [[realtime kernel patchset]].<br />
* Using the [[realtime kernel patchset]].<br />
* Add {{ic|noatime}} to [[fstab]] (see [[Improving performance#Mount options]]).<br />
* Increasing the highest requested RTC interrupt frequency (default is 64 Hz) by [[systemd FAQ#How can I make a script start during the boot process?|running the following at boot]]:<br />
<br />
# echo 2048 > /sys/class/rtc/rtc0/max_user_freq<br />
# echo 2048 > /proc/sys/dev/hpet/max-user-freq<br />
<br />
* Reducing ''swappiness'' (aka swap frequency, set to {{ic|60}} by default) to e.g. {{ic|10}} will make the system wait much longer before trying to swap to disk (see [[wikipedia:Paging#Swappiness]]). This can be done on the fly with {{ic|1=sysctl vm.swappiness=10}} (see {{man|8|sysctl}}) or setup permanently, using a configuration file (see {{man|5|sysctl.d}}) such as:<br />
<br />
{{hc|/etc/sysctl.d/90-swappiness.conf|2=<br />
vm.swappiness = 10<br />
}}<br />
<br />
* Increasing the maximum watches on files (defaults to {{ic|524288}}) to e.g. {{ic|600000}}, that ''inotify'' keeps track of for your user, can help with applications, that require many file handles (such as [[List_of_applications#Digital_audio_workstations|DAWs]]). This again can be done on the fly with {{ic|1=sysctl fs.inotify.max_user_watches=600000}} or in a dedicated configuration file:<br />
<br />
{{hc|/etc/sysctl.d/90-max_user_watches.conf|2=<br />
fs.inotify.max_user_watches = 600000<br />
}}<br />
<br />
You may also want to maximize the PCI latency timer of the PCI sound card and raise the latency timer of all other PCI peripherals (default is 64).<br />
<br />
$ setpci -v -d *:* latency_timer='''b0'''<br />
# setpci -v -s ''$SOUND_CARD_PCI_ID'' latency_timer='''ff'''<br />
<br />
E.g. {{ic|1=SOUND_CARD_PCI_ID=03:00.0}}.<br />
<br />
The SOUND_CARD_PCI_ID can be obtained like so:<br />
<br />
{{hc|$ lspci {{!}} grep -i audio|<br />
'''03:00.0''' Multimedia audio controller: Creative Labs SB Audigy (rev 03)<br />
'''03:01.0''' Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)<br />
}}<br />
<br />
==== Checklist ====<br />
<br />
The steps below are mostly to double-check that you have a working multimedia system:<br />
* Have I set up sound properly? See [[ALSA]] or [[OSS]].<br />
<br />
$ speaker-test<br />
<br />
* Is PulseAudio, OSS or something else grabbing my device?<br />
<br />
$ lsof +c 0 /dev/snd/pcm* /dev/dsp*<br />
<br />
-OR-<br />
<br />
$ fuser -fv /dev/snd/pcm* /dev/dsp* <br />
<br />
* Is PAM-security and realtime working OK?<br />
<br />
See: [[Realtime for Users#PAM-enabled login]] (Pay special attention especially if you do not run SDDM, GDM or Slim.)<br />
<br />
* Have I rebooted after having done all that?<br />
<br />
=== JACK ===<br />
<br />
The aim here is to find the best possible combination of buffer size and periods, given the hardware you have. '''Frames/Period = 256''' is a sane starter. For onboard and USB devices, try '''Periods/Buffer = 3'''. Commonly used values are: 256/3, 256/2, 128/3.<br />
<br />
Also, the sample rate must match the hardware sample rate. To check what sample and bit rates your device supports:<br />
<br />
$ cat /proc/asound/card0/codec#0<br />
<br />
Replace ''card0'' and ''codec#0'' depending on what you have. You will be looking for '''rates''' or ''VRA'' in '''Extended ID'''. A common sample rate across many of today's devices is '''48000 Hz'''. Others common rates include 44100 Hz and 96000 Hz.<br />
<br />
Almost always, when recording or sequencing with external gear is concerned, '''realtime''' is a must. Also, you may like to set maximum priority (at least 10 lower than system limits defined in {{ic|/etc/security/limits.d/99-realtime-privileges.conf}}); the highest is for the device itself).<br />
<br />
Start jack with the options you just found out:<br />
<br />
$ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p256 -n3<br />
<br />
{{pkg|qjackctl}}, {{Pkg|cadence}}, {{pkg|patchage}} and {{AUR|studio-controls-git}} can all be used to as GUIs to monitor JACK's status and simplify its configuration . <br />
<br />
{{Note|Once you set up JACK, try different audio applications to test your configuration results. I spent days trying to troubleshoot JACK xrun issues with LMMS which in the end turned out to be the problem with the latter.}}<br />
<br />
''Further reading: [http://www.linux-magazine.com/content/download/63041/486886/version/1/file/JACK_Audio_Server.pdf Linux Magazine article]''<br />
<br />
==== FireWire ====<br />
<br />
{{Note|Nothing much is needed to be done as most things have been automated, especially with the introduction of the [https://ieee1394.wiki.kernel.org/index.php/Juju_Migration new FireWire stack], deprecation of HAL and more focus on [[udev]]. You should not need to edit device permissions, but if you suspect that your device may not be working due to such issues, see {{ic|/lib/udev/rules.d/60-ffado.rules}} and if needed, create and put your changes into {{ic|/etc/udev/rules.d/60-ffado.rules}}.}}<br />
<br />
JACK(2) is built against FFADO, you only need to install it with the {{Pkg|libffado}} package.<br />
<br />
To test whether you have any chances of getting FireWire devices to work:<br />
<br />
* Ensure the proper kernel modules are loaded:<br />
<br />
# modprobe firewire-core firewire-ohci<br />
<br />
* Is my chipset sane enough to initiate a device?<br />
<br />
http://www.ffado.org/?q=node/622<br />
<br />
* Is my chipset sane enough to make a device work to its capacity?<br />
<br />
We cannot say for sure, particularly for those based on Ricoh (cross-platform issue). Most of the time, your device will run fine, but on occasion you will be faced with funny quirks. For unlucky ones, you will be facing hell.<br />
<br />
{{Note|As stated by Takashi Sakamoto [https://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081731.html on the alsa-devel mailing list], if you use the FireWire backend with jackd, the DICE module is incompatible. If you see a line like this :<br />
Warning (dice_eap.cpp)[1811] read: No routes found. Base 0x7, offset 0x4000<br />
you need to disable the "snd_dice" module.}}<br />
<br />
==== Jack Flash ====<br />
<br />
If after getting jack setup you will find that Flash has no audio.<br />
<br />
In order to get flash to work with jack you will need to [[install]] the {{AUR|libflashsupport-jack}} package.<br />
<br />
You can also use more flexible method to allow Alsa programs (including Flash) play sound while jack is running:<br />
<br />
First you must install the jack plugin for Alsa by [[install]]ing the {{Pkg|alsa-plugins}} package. Enable it by editing (or creating) {{Ic|/etc/asound.conf}} (system wide settings) to have these lines:<br />
<br />
{{bc|<br />
# convert alsa API over jack API<br />
# use it with<br />
# % aplay foo.wav<br />
<br />
# use this as default<br />
pcm.!default {<br />
type plug<br />
slave { pcm "jack" }<br />
}<br />
<br />
ctl.mixer0 {<br />
type hw<br />
card 1<br />
}<br />
<br />
# pcm type jack<br />
pcm.jack {<br />
type jack<br />
playback_ports {<br />
0 system:playback_1<br />
1 system:playback_2<br />
}<br />
capture_ports {<br />
0 system:capture_1<br />
1 system:capture_2<br />
}<br />
}<br />
}}<br />
<br />
You do not need to restart your computer or anything. Just edit the ALSA configuration files, start up jack.<br />
<br />
==== Quickscan JACK script ====<br />
<br />
Most people will probably want to run JACK in realtime mode, there are however a lot of knobs and buttons to press in order for that to happen.<br />
<br />
A great way to quickly diagnose your system and find out what it is missing in order to have JACK work properly in real time mode is to run the Quickscan script. <br />
<br />
git clone git://github.com/raboof/realtimeconfigquickscan.git<br />
cd realtimeconfigquickscan<br />
perl ./realTimeConfigQuickScan.pl<br />
<br />
The output should tell you where your system is lacking and will point you to places to find more information.<br />
<br />
==== Desktop Effects vs JACK ====<br />
<br />
In addition to the factors listed under the System Configuration section above as well as the settings checked by realTimeConfigQuickScan.pl, it is also worth noting that desktop environments can cause xruns and hence JACK audio glitches, especially memory/process intensive ones and those desktops that utilize composited desktop effects. It is recommended you disable desktop effects when using JACK. You are likely to get the least xruns and best performance by running a lightweight desktop or just a window manager instead.<br />
<br />
==== A general example ====<br />
<br />
A general configuration example is [[JACK Audio Connection Kit#A shell-based example setup]].<br />
<br />
== Realtime kernel ==<br />
<br />
Since a while ago, the stock Linux kernel has proven to be adequate for realtime uses. The stock kernel (with {{ic|1=CONFIG_PREEMPT=y}}, default in Arch) can operate with a worst case latency of [https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_are_real-time_capabilities_of_the_stock_2.6_linux_kernel.3F upto 10ms] (time between the moment an interrupt occurs in hardware, and the moment the corresponding interrupt-thread gets running), although some device drivers can introduce latency much worse than that. So depending on your hardware and driver (and requirement), you might want a kernel with hard realtime capabilities.<br />
<br />
The [https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO RT_PREEMPT] patch by Ingo Molnar and Thomas Gleixner is an interesting option for hard and firm realtime applications, reaching from professional audio to industrial control. <br />
Most audio-specific Linux distributions ships with this patch applied. A realtime-preemptible kernel will also make it possible to tweak priorities of IRQ handling threads and help ensure smooth audio almost regardless of the load.<br />
<br />
If you are going to compile your own kernel, remember that removing modules/options does not equate to a "leaner and meaner" kernel. It is true that the size of the kernel image is reduced, but in today's systems it is not as much of an issue as it was back in '''1995'''. <br />
<br />
In any way, you should also ensure that:<br />
<br />
* '''Timer Frequency''' is set to '''1000Hz''' (CONFIG_HZ_1000=y; if you do not do ''MIDI'' you can ignore this)<br />
* '''APM''' is '''DISABLED''' (CONFIG_APM=n; Troublesome with some hardware - default in x86_64)<br />
<br />
If you truly want a slim system, we suggest you go your own way and deploy one with ''static /devs''. You should, however, set your CPU architecture. Selecting "Core 2 Duo" for appropriate hardware will allow for a good deal of optimisation, but not so much as you go down the scale.<br />
<br />
General issue(s) with (realtime) kernels:<br />
<br />
* Hyperthreading (if you suspect, disable in BIOS)<br />
<br />
There are ready-to-run/compile patched kernels available in the ABS and AUR.<br />
<br />
{{note|Before you decide to use a patched kernel, see [https://jackaudio.org/faq/realtime_vs_realtime_kernel.html http://jackaudio.org/faq/realtime_vs_realtime_kernel.html].}}<br />
<br />
=== AUR ===<br />
<br />
From the [[AUR]] itself, you have the following options:<br />
<br />
* {{AUR|linux-rt}}<br />
* {{AUR|linux-rt-lts}} (Long Term Support, stable release)<br />
<br />
The first two are standard kernels with the CONFIG_PREEMPT_RT patch, while -ice includes patches some may consider to be nasty, while to others are a blessing.<br />
:''See: [https://rt.wiki.kernel.org/ Real-Time Linux Wiki]''<br />
<br />
== MIDI ==<br />
<br />
To decrease MIDI jitter when using external MIDI equipment jack2's -Xalsarawmidi option should be used. When doing this you need to use a2jmidid, too.<br />
<br />
With [https://github.com/koppi/alsa-midi-latency-test alsa-midi-latency-test] you could test how much jitter you get. PCI and PCIe cards are usually much better than USB MIDI devices.<br />
<br />
To work with MIDI, it is highly recommended that you install a2j ({{Pkg|a2jmidid}}), a bridge between alsa midi and jack midi. It allows you to connect applications that only communicate with alsa midi to applications that only use jack midi. Laditray can also start/stop a2j.<br />
:''See: [[JACK Audio Connection Kit#Using MIDI devices]]''<br />
<br />
== Environment variables ==<br />
<br />
If you install things to non-standard directories, it is often necessary to set environment path variables so that applications know where to look (for plug-ins and other libraries). This usually affects only VST (Virtual Studio Technology) since users might have a Wine or external Windows location.<br />
<br />
We would usually not have Linux plug-ins (LADSPA, LV2, DSSI, LXVST) beyond standard paths, so it is not necessary to export them. But if you do, be sure to include those standard paths as well since Arch does not do anything for ''dssi'' or ''ladspa'', and some applications like ''dssi-vst'' will not look anywhere else if it finds predefined paths.<br />
<br />
{{hc|~/.bashrc|2=<br />
...<br />
export VST_PATH=/usr/lib/vst:/usr/local/lib/vst:~/.vst:/someother/custom/dir<br />
export LXVST_PATH=/usr/lib/lxvst:/usr/local/lib/lxvst:~/.lxvst:/someother/custom/dir<br />
export LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa:~/.ladspa:/someother/custom/dir<br />
export LV2_PATH=/usr/lib/lv2:/usr/local/lib/lv2:~/.lv2:/someother/custom/dir<br />
export DSSI_PATH=/usr/lib/dssi:/usr/local/lib/dssi:~/.dssi:/someother/custom/dir<br />
}}<br />
<br />
== Tips and tricks ==<br />
<br />
* Disable WiFi and close any programs that do not need to be open when recording such as browsers. Many have reported disabling WiFi has led to more reliable JACK performance.<br />
<br />
* Some USB audio hardware is known not to work properly when plugged into USB 3 ports so try USB 2/1 ports instead. <br />
<br />
* IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at [http://subversion.ffado.org/wiki/IrqPriorities FFADO IRQ Priorities How-To]. If you have a realtime or a recent kernel, you can use {{Pkg|rtirq}} to adjust priorities of IRQ handling threads.<br />
<br />
* Do not use the '''irqbalance''' daemon, or do so carefully [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/7/html/tuning_guide/interrupt_and_process_binding].<br />
<br />
* If you need to use multiple audio devices with JACK2, the '''alsa_in''' and '''alsa_out''' utilities can be used to have extra devices wrapped and show up as outputs in the JACK patchbay.<br />
<br />
* Some daemons/processes can unexpectedly cause '''xruns'''. If you do not need it - kill it. No questions asked.<br />
<br />
$ ls /var/run/daemons<br />
$ top # or htop, ps aux, whatever you are comfortable with<br />
$ killall -9 $processname<br />
# systemctl stop $daemonname<br />
<br />
* If you are facing a lot of ''xruns'' especially with {{Pkg|nvidia}}, disable your GPU throttling. This can be done via the card's control applet and for nvidia it is "prefer maximum performance" (thanks to a post in LAU by Frank Kober[http://lalists.stanford.edu/lau/2009/10/0467.html]).<br />
<br />
* You may like to read more on ALSA: https://www.volkerschatz.com/noise/alsa.html<br />
<br />
== Hardware ==<br />
<br />
The majority of sound cards and audio devices will work with no extra configuration or packages, simply set the sound card jack is using to them and restart.<br />
<br />
This is not true for all devices, and so special cases are also listed.<br />
<br />
=== M-Audio Delta 1010 ===<br />
<br />
The M-Audio Delta series cards are based on the VIA Ice1712 audio chipset.<br />
Cards using this chip require that you install the alsa-tools package, because <br />
it contains the [[envy24control]] program. [[Envy24control]] is a hardware level<br />
mixer/controller. You ''can'' use alsa-mixer but you will save yourself some<br />
hassle not to try it. Note that this section has no information on MIDI setup or<br />
usage. <br />
<br />
Open the mixer application:<br />
<br />
$ envy24control<br />
<br />
This application can be more than a bit confusing; see [[envy24control]] for guidance<br />
on its use. That said, here is a very simple working setup for multitracking with Ardour.<br />
<br />
# On the "Monitor Inputs" and "Monitor PCMs" tabs, set all monitor inputs and monitor PCMs to around 20.<br />
# On the "Patchbay / Router" tab, set all to PCM out.<br />
# On the "Hardware Settings" tab, verify that the Master Clock setting matches what is set in Qjackctl. If these do not match you will have xruns out of control!<br />
<br />
=== M-Audio Fast Track Pro ===<br />
<br />
The M-Audio Fast Track Pro is an USB 4x4 audio interface, working at 24bit/96kHz. Due to limitation of USB 1, this device requires additional setup to get access to all its features. Device works in one of two configuration:<br />
<br />
* Configuration 1, or "Class compliant mode" - with reduced functionality, only 16bit, 48kHz, analogue input (2 channels) and digital/analogue output (4 channels).<br />
* Configuration 2 - with access to all features of interface.<br />
<br />
Currently with stock kernel it runs in configuration 2, but if you want to make sure in what mode you are, you can check kernel log for entries:<br />
<br />
usb-audio: Fast Track Pro switching to config #2<br />
usb-audio: Fast Track Pro config OK<br />
<br />
The interface also needs extra step of configuration to switch modes. It is done using option {{ic|device_setup}} during module loading. The recommended way to setup the interface is using file in {{ic|modprobe.d}}:<br />
<br />
{{hc|/etc/modprobe.d/ftp.conf|2=<br />
options snd_usb_audio vid=0x763 pid=0x2012 device_setup=XXX index=YYY enable=1<br />
}}<br />
<br />
where {{ic|vid}} and {{ic|pid}} are vendor and product id for M-Audio Fast Track Pro, {{ic|index}} is desired device number and {{ic|device_setup}} is desired device setup. Possible values for {{ic|device_setup}} are:<br />
<br />
{| class="wikitable"<br />
|+ device modes<br />
! device_setup value !! bit depth !! frequency !! analog output !! digital output !! analog input !! digital input !! IO mode<br />
|-<br />
| 0x0 || 16 bit || 48kHz || + || + || + || + || 4x4<br />
|-<br />
| 0x9 || 24 bit || 48kHz || + || + || + || - || 2x4<br />
|-<br />
| 0x13 || 24 bit || 48kHz || + || + || - || + || 2x4<br />
|-<br />
| 0x5 || 24 bit || 96kHz || * || * || * || * || 2x0 or 0x2<br />
|}<br />
<br />
The 24 bit/96kHz mode is special: it provides all input/output, but you can open only one of 4 interfaces at a time. If you for example open output interface and then try to open second output or input interface, you will see error in kernel log:<br />
<br />
cannot submit datapipe for urb 0, error -28: not enough bandwidth<br />
<br />
which is perfectly normal, because this is USB 1 device and cannot provide enough bandwidth to support more than single (2 channel) destination/source of that quality at a time.<br />
<br />
Depending on the value of {{ic|index}} it will setup two devices: {{ic|hwYYY:0}} and {{ic|hwYYY:1}}, which will contain available inputs and outputs. First device is most likely to contain analog output and digital input, while second one will contain analog input and digital output. To find out which devices are linked where and if they are setup correctly, you can check {{ic|/proc/asound/cardYYY/stream{0,1} }}. Below is list of important endpoints that will help in correctly identifying card connections (it easy to mistake analog and digital input or output connections before you get used to the device):<br />
<br />
EP 3 (analgoue output = TRS on back, mirrored on RCA outputs 1 and 2 on back)<br />
EP 4 (digital output = S/PDIF output on back, mirrored on RCA outputs 3 and 4 on back)<br />
EP 5 (analogue input = balanced TRS or XLR microphone, unbalanced TS line on front)<br />
EP 6 (digital input = S/PDIF input on back)<br />
<br />
This .asoundrc file enables 24-bit IO on the fast-track pro (and I'm sure it could be modified to work with other 3-byte usb devices) within the context of jack's 32-bit interface while routing default alsa traffic to jack outputs on the audio interface. Alsa will be in S24_3BE mode but jack can plug S32_LE data in and out of the interface and other alsa programs will be able to plug almost anything into jack.<br />
<br />
{{bc|<nowiki><br />
### ~/.asoundrc<br />
### default alsa config file, for a fast-track pro configured in 24-bit mode as so:<br />
### options snd_usb_audio device_setup=0x9<br />
### invoke jack with: (if you use -r48000, change the rate in the plugs as well)<br />
### $jackd -dalsa -P"hw:Pro" -C"hw:Pro,1" -r44100<br />
<br />
## setup input and output plugs so jack can write S24_3BE data to the audio interface<br />
<br />
pcm.maud0 {<br />
type hw<br />
card Pro<br />
}<br />
<br />
#jack_out plug makes sure that S32_LE data can be written to hw:Pro<br />
pcm.jack_out{<br />
type plug<br />
format S32_LE<br />
channels 2<br />
rate 44100<br />
slave pcm.maud0<br />
}<br />
<br />
pcm.maud1 {<br />
type hw<br />
card Pro<br />
device 1<br />
}<br />
## jack_in plug makes sure that hw:Pro,1 can read S32_LE data<br />
pcm.jack_in {<br />
type plug<br />
format S32_LE<br />
channels 2<br />
rate 44100<br />
slave pcm.maud1<br />
}<br />
#####<br />
# route default alsa traffic through jack system io<br />
<br />
pcm.jack {<br />
type jack<br />
playback_ports {<br />
0 system:playback_1<br />
1 system:playback_2<br />
}<br />
capture_ports {<br />
0 system:capture_1<br />
1 system:capture_2<br />
}<br />
} <br />
pcm.amix {<br />
type asym<br />
playback.pcm "jack"<br />
capture.pcm "jack"<br />
}<br />
pcm.!default {<br />
type plug<br />
slave.pcm amix<br />
}<br />
</nowiki>}}<br />
<br />
=== PreSonus Firepod ===<br />
<br />
#Startup: Either from command line or QjackCtl, the driver is called firewire.<br />
#Specs: The card contains 8/8 preamp'ed XLR plus a stereo pair, in total 10 channels.<br />
#Linking: Cards can be linked together without any problems.<br />
#Hardware Settings: Nothing particular, tweak the settings in QjackCtl to your likings.<br />
<br />
Volume levels are hardware and routing can be done through QjackCtl, even with more cards linked together, this is not a problem.<br />
The ffadomixer does not work with this card yet, hopefully in the future we can control more aspects of the card through a software interface like that.<br />
<br />
=== PreSonus AudioBox USB ===<br />
<br />
#Startup: It is called "USB" by ALSA. <br />
#Specs: Two mono TRS+XLR in, two mono TRS out, MIDI in and out, plus separate stereo headphone jack. Knob controls for both inputs, for main out, and for headphone, four in all.<br />
#Hardware: Works very well, audio and MIDI too. No software mixer controls at all.<br />
<br />
=== Tascam US-122 ===<br />
<br />
'''''This does not apply to the US-122L'''''<br />
<br />
# Required packages: {{Pkg|alsa-tools}} {{Pkg|alsa-firmware}} {{Aur|fxload}}<br />
# udev rules: create the following rules file, then reload udev rules, [[Udev#Loading new rules]]<br />
<br />
{{hc|/etc/udev/rules.d/51-tascam-us-122.rules|2=<br />
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8006", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us122fw.ihx'"<br />
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8007", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"<br />
}}<br />
<br />
Plug in the unit<br />
The device should now be working, there are no software mixer controls<br />
<br />
=== RME Babyface ===<br />
<br />
It works very well at low latencies (~5ms) with {{Pkg|alsa-utils}}, {{Pkg|jack2}} and {{AUR|linux-rt}}. Running on ALSA only with the standard kernel may cause crackling at lower latencies.<br />
<br />
To be recognized and work, the firmware version of the Babyface needs to be >= 200, which introduces the Class Compliant Mode. To enter Class Compliant Mode hold the "Select" and "Recall" buttons while connecting the Babyface to the computer via USB. It should now be recognized. <br />
<br />
To check if it is recognized:<br />
<br />
$ grep -i baby /proc/asound/cards<br />
<br />
For more info about the Class Compliant Mode visit RME's website, they have PDF which covers all the functionality.<br />
<br />
The Babyface does not need any special Jack Settings. But if you want to use the built in MIDI In/Out then you need to set the "MIDI Driver" to "seq" and optionally disable "Enable Alsa Sequencer Support" to use it in combination with other MIDI Devices (a USB Midi Keyboard for example).<br />
<br />
== Restricted software ==<br />
<br />
=== Steinberg's SDKs ===<br />
<br />
It is very clear - we can distribute neither the VST nor the ASIO headers in '''binary package form'''. However, whenever you are building a program which would host Windows ''.dll'' VST plug-ins, check for the following hints (that do not require use of any SDK):<br />
<br />
* dssi-vst<br />
* fst<br />
* vestige<br />
<br />
With that said, if you are building a program which would host native ''.so'' VST plug-ins, then there is no escape. For such cases, Arch yet again allows us to maintain a uniform local software database. We can "install" the SDK ''system-wide'' - you simply have to download it yourself and place it in the packaging directory.<br />
<br />
[https://aur.archlinux.org/packages?K=steinberg Get them from AUR]<br />
<br />
''Note: Steinberg does not forbid redistribution of resulting products, nor dictate what license they can be under. There are many GPL-licensed VST plug-ins. As such, distributing binary packages of software built with these restricted headers is '''not''' a problem, because the headers are simply '''buildtime dependencies'''.''<br />
<br />
== Linux and Arch Linux Pro Audio in the news ==<br />
<br />
* [https://www.linux.com/training-tutorials/build-serious-multimedia-production-workstation-arch-linux/ Build a Serious Multimedia Production Workstation with Arch] - Linux.com article, July 2012<br />
* [https://www.linuxjournal.com/content/arch-tale An Arch Tale] - Article by fellow musician and writer Dave Phillips, October 2011<br />
* [https://www.itwire.com/opinion-and-analysis/open-sauce/36698-from-windows-to-linux-a-sound-decision From Windows to Linux: a sound decision] - Interview with Geoff "songshop" Beasley, February 2010<br />
<br />
== Mailing lists ==<br />
<br />
* [https://lists.archlinux.org/mailman3/lists/arch-proaudio.lists.archlinux.org/ Arch Linux Pro-audio] Discussion about real-time multimedia, including (semi-)pro audio and video<br />
* [https://lists.linuxaudio.org/listinfo/linux-audio-dev Linux Audio Developer] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of mainly developers.<br />
* [https://lists.linuxaudio.org/listinfo/linux-audio-user Linux Audio User] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of users and developers.<br />
<br />
== IRC ==<br />
<br />
* [ircs://irc.libera.chat/archlinux-proaudio #archlinux-proaudio] - Arch Linux pro-audio channel<br />
* [ircs://irc.libera.chat/lau #lau] - General Linux Audio channel for users<br />
* [ircs://irc.libera.chat/lad #lad] - General Linux Audio channel for developers<br />
* [ircs://irc.libera.chat/jack #jack] - Development and support related to JACK audio system<br />
* [ircs://irc.libera.chat/lv2 #lv2] - Development and support related to the LV2 plugin format<br />
* [ircs://irc.libera.chat/ardour #ardour] - Discussion and support relating to the Ardour DAW<br />
* [ircs://irc.libera.chat/opensourcemusicians #opensourcemusicians] - Large general OSS musician discussion channel<br />
<br />
== See also ==<br />
<br />
* [[List of applications#Audio|Audio]] A comprehensive list of audio applications on Arch Linux<br />
* [[Realtime kernel]]<br />
* AUR meta packages: {{AUR|proaudio-meta}}, {{AUR|soundfonts-aur-meta}}, {{AUR|lv2-plugins-aur-meta}}<br />
* User repositories: [[Unofficial_user_repositories#heftig|heftig]], [[Unofficial_user_repositories#proaudio|proaudio]]<br />
* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] A list of software and resources for professional audio/video/live events production on the Linux platform<br />
* [https://wiki.linuxfoundation.org/realtime/start Realtime] The Linux Foundation wiki on the PREEMPT_RT patches<br />
* [https://bbs.archlinux.org/viewforum.php?id=32 Multimedia and Games / Arch Linux Forums]<br />
* [https://web.archive.org/web/20180929105149/http://archaudio.org/ ArchAudio] - the now legacy - pro-audio related package repository overlay ([https://bbs.archlinux.org/viewtopic.php?id=30547 some history])</div>CBiXhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=725615Unofficial user repositories2022-04-06T16:22:45Z<p>CBiX: fix typo</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[es:Unofficial user repositories]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<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 />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[pacman/Package signing#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman/Tips and tricks#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. It is your decision whether to trust their maintainers, and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (website, 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 />
Some repositories may also have packages for architectures besides x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== alerque ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/alerque Caleb Maclennan]<br />
* '''Description:''' Typesetting, publishing, and font development related tools such as SILE, CaSILE, Fontship, and their related dependencies including many fonts, Lua rocks, and Python modules. Also Asterisk, most of the [https://aur.archlinux.org/packages/?O=0&SeB=M&K=alerque&outdated=&SB=n&SO=a&PP=250&do_Search=Go AUR packages I (co-)maintain], and many of the AUR builds I use personally.<br />
* '''Git Repository:''' https://github.com/alerque/aur<br />
* '''Issue Tracker:''' https://github.com/alerque/aur/issues<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=vindex&fingerprint=on&exact=on&search=0x9F377DDB6D3153A48EB3EB1E63CC496475267693 63CC496475267693]<br />
<br />
{{bc|<nowiki><br />
[alerque]<br />
Server = https://arch.alerque.com/$arch<br />
</nowiki>}}<br />
<br />
=== ALHP ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/anonfunc Giovanni Harting]<br />
* '''Description:''' [core], [extra] and [community] compiled with [[Wikipedia:Interprocedural_optimization|LTO]], -march=x86-64-vN and -O3.<br />
* '''Issue Tracker:''' https://git.harting.dev/ALHP/ALHP.GO/issues<br />
* '''Keyring:''' {{AUR|alhp-keyring}}<br />
* '''Mirrorlist:''' {{AUR|alhp-mirrorlist}}<br />
* '''Upstream page:''' https://git.harting.dev/ALHP/ALHP.GO<br />
* '''Debuginfod:''' https://debuginfod.harting.dev<br />
<br />
{{bc|<nowiki><br />
[core-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
<br />
[extra-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
<br />
[community-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
</nowiki>}}<br />
<br />
=== andontie-aur ===<br />
<br />
* '''Maintainer:''' Holly M.<br />
* '''Description:''' A repo containing the most popular AUR packages, as well as some I use all the time. New packages can be requested on the upstream website.<br />
* '''Key-ID:''' B545E9B7CD906FE3<br />
* '''Upstream page:''' https://aur.andontie.net<br />
<br />
{{bc|<nowiki><br />
[andontie-aur]<br />
Server = https://aur.andontie.net/$arch<br />
</nowiki>}}<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://arcanis.me/ arcanis]<br />
* '''Description:''' AUR packages (including some VCS packages), mostly development and scientific tools. Updated daily.<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=get&search=0xBD2AC8C5E989490C 0xBD2AC8C5E989490C]<br />
* '''Upstream page:''' http://repo.arcanis.me/x86_64/index.html<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = http://repo.arcanis.me/$arch<br />
</nowiki>}}<br />
<br />
=== arch4edu ===<br />
<br />
* '''Maintainers:''' [https://github.com/petronny Jingbei Li (petronny)], and [https://github.com/arch4edu/arch4edu/graphs/contributors others]<br />
* '''Description:''' arch4edu is a community repository for Arch Linux and Arch Linux ARM that strives to provide the latest versions of most software used by college students.<br />
* '''Git Repo:''' https://github.com/arch4edu/arch4edu<br />
* '''Issue tracking:''' https://github.com/arch4edu/arch4edu/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
* '''Key-ID:''' 7931B6D628C8D3BA<br />
<br />
{{bc|<nowiki><br />
[arch4edu]<br />
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch<br />
## or other mirrors in https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
</nowiki>}}<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://archlinux.org/people/developers/#felixonmars Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested. Create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repository.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other, so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' [https://archzfs.com/archzfs.gpg DDF7DB817396A49B2A2723F7403BD972F75D9D76]<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
# Origin Server - France<br />
Server = http://archzfs.com/$repo/x86_64<br />
# Mirror - Germany<br />
Server = http://mirror.sum7.eu/archlinux/archzfs/$repo/x86_64<br />
# Mirror - Germany<br />
Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/x86_64<br />
# Mirror - India<br />
Server = https://mirror.in.themindsmaze.com/archzfs/$repo/x86_64<br />
# Mirror - US<br />
Server = https://zxcvfdsa.com/archzfs/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== artafinde ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#artafinde Leonidas Spyropoulos]<br />
* '''Description:''' Personal repository with AUR and custom packages.<br />
* '''Key-ID:''' Not needed, as the maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[artafinde]<br />
Server = https://pkgbuild.com/~artafinde/repo<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 />
=== aviallon ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/aviallon/ aviallon]<br />
* '''Description:''' Prebuilt packages from AUR, plus some of my personal packages. For now, only x86_64 is supported.<br />
* '''Upstream page:''' https://mirror.lesviallon.fr/<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x4d5557ab89e5fe11 883918BAF0EE4170241579794D5557AB89E5FE11]<br />
<br />
{{bc|<nowiki><br />
[aviallon]<br />
Server = https://mirror.lesviallon.fr/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== avr ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/vianney Vianney Bouchaud]<br />
* '''Description:''' Some of the AUR builds I use personally, packages mainly related to kubernetes that I used to build for my own use as well as some of my own software that I also package.<br />
* '''Git Repository:''' https://github.com/vbouchaud/aur<br />
* '''Issue Tracker:''' https://github.com/vbouchaud/aur/issues<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=vindex&fingerprint=on&exact=on&search=0xAD53F33B1AB4C51802F25068157B08346330029C 157B08346330029C]<br />
* '''Upstream page:''' https://bouchaud.org/packages/avr<br />
<br />
{{bc|<nowiki><br />
[avr]<br />
Server = https://bouchaud.org/packages/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== berberman ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/berberman berberman]<br />
* '''Description:''' Some packages make no sense.<br />
* '''Upstream page:''' https://github.com/berberman/myrepo<br />
* '''Key-ID:''' C4F93F1ED397E8CF<br />
<br />
{{bc|<nowiki><br />
[berberman]<br />
Server = https://repo.typed.icu/$arch<br />
</nowiki>}}<br />
<br />
=== BioArchLinux ===<br />
<br />
* '''Maintainer:''' BioArchLinux Team<br />
* '''Description:''' Biological Software Repository for ArchLinux<br />
* '''Upstream page:''' https://github.com/BioArchLinux/Packages<br />
* '''Key-ID:''' B1F96021DB62254D<br />
<br />
{{bc|<nowiki><br />
[BioArchLinux]<br />
Server = https://repo.bioarchlinux.org/$arch<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintained 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 = https://repo.herecura.be/$repo/$arch<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.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' https://www.suruatoel.xyz/coderkun.key<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = https://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== dasbaumwolltier ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/dasbaumwolltier/ dasbaumwolltier]<br />
* '''Description:''' Contains (nearly) all of my AUR packages and some random AUR packages I use myself. (A full list of packages can be found [https://github.com/dasbaumwolltier/aur-building/blob/master/package-list here]. Feel free to open issues.) They are usually not evicted from the build after I stop using them. Builds are at least weekly.<br />
* '''Git Repository:''' https://github.com/dasbaumwolltier/aur-building<br />
* '''Key-ID:''' [https://repo.guldner.eu/repository/archlinux/dasbaumwolltier.gpg 746BC93D5F08C5A4369F4DDB10BF99E6998249B6]<br />
<br />
{{bc|<nowiki><br />
[dasbaumwolltier]<br />
Server = https://repo.guldner.eu/repository/archlinux/$arch/<br />
</nowiki>}}<br />
<br />
=== desolve ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/dviktor/ desolve]<br />
* '''Description:''' Collection of R packages plus some extra stuff.<br />
* '''Git repository for R packages:''' https://github.com/dvdesolve/ArchRPkgs<br />
* '''Git repository for other AUR packages:''' https://github.com/dvdesolve/pkgbuilds<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xdd3bf75dcd96541ac723b7cd6a4cd3276ca8ebbd DD3BF75DCD96541AC723B7CD6A4CD3276CA8EBBD]<br />
<br />
{{bc|<nowiki><br />
[desolve]<br />
Server = https://desolve.ru/archrepo/$arch<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32, and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages/linux<br />
</nowiki>}}<br />
<br />
=== ear ===<br />
<br />
* '''Maintainer:''' [https://wardsegers.be Ward Segers], <br />
* '''Description:''' Editicalu's ArchLinux Repository. Contains precompiled AUR packages (mostly the ones maintained by editicalu)<br />
* '''Homepage:''' https://ear.wardsegers.be/<br />
* '''Upstream page:''' https://gitlab.com/editicalu/ear<br />
* '''Keyfile:''' https://ear.wardsegers.be/signingkey.asc<br />
* '''Key-ID:''' A9C4E7734638ACF8<br />
<br />
{{Note|Instructions can be found at https://ear.wardsegers.be}}<br />
<br />
{{bc|<nowiki><br />
[ear]<br />
Server = https://ear.wardsegers.be/$arch<br />
</nowiki>}}<br />
<br />
=== fcgu ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fabiscafe Fabian Bornschein]<br />
* '''Description:''' Overlay repository, mostly for unstable (Beta, RC) releases of GNOME- and related software.<br />
* '''Homepage:''' https://gitlab.com/fabiscafe/gnome-unstable<br />
* '''Keyfile:''' https://keys.openpgp.org/vks/v1/by-fingerprint/6E58E886A8E07538A2485FAED6A4F386B4881229<br />
* '''Key-ID:''' D6A4F386B4881229<br />
{{Note|Instructions can be found at [https://gitlab.com/fabiscafe/gnome-unstable#fabiscafe-gnome-unstable https://gitlab.com/fabiscafe/gnome-unstable]}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repository. Contains misc packages related to hardware, cross-compilation, the D language, etc.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809 Brenton Horne] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK 2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== grawlinson ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/grawlinson George Rawlinson]<br />
* '''Description:''' AUR packages maintained by the user as well as some experimental packages.<br />
* '''Package list:''' https://mirror.little.kiwi<br />
* '''Key-ID:''' 9D120F4AAF400B8313A87EF2369552B2069123EE<br />
* '''Keyfile:''' https://mirror.little.kiwi/grawlinson.asc<br />
* '''Source:''' https://git.little.kiwi/grawlinson/arch-pkgs<br />
<br />
{{bc|<nowiki><br />
[grawlinson]<br />
Server = https://mirror.little.kiwi<br />
Server = https://pkgbuild.com/~grawlinson/repo/$repo<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://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 = https://repo.herecura.be/$repo/$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 />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Unofficial kernels|pf-kernel]] and other packages by Thaodan<br />
* '''Key-ID:''': BBFE2FD421597395E4FC8C8DF6C85FEE79D661A4<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/public/archlinux/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jk-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/jstkdng JustKidding]<br />
* '''Description:''' Packages from the AUR I maintain and co-maintain.<br />
* '''Upstream page:''' https://github.com/jstkdng/aur<br />
* '''Key-ID:''' [https://build.opensuse.org/project/keys_and_certificates/home:justkidding:arch 7627D0F8F60FBA35371A29E1AA6B2752759F9361]<br />
<br />
{{bc|<nowiki><br />
[home_justkidding_arch_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/justkidding:/arch/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== kernel-lts ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/jonathon Jonathon Fernyhough]<br />
* '''Description:''' Pre-compiled LTS kernels and supporting packages ({{AUR|linux-lts44}}, {{AUR|linux-lts49}}, {{AUR|linux-lts414}}, {{AUR|linux-lts419}}, {{AUR|linux-lts54}}, {{AUR|linux-lts510}}, {{AUR|linux-firmware-uncompressed}}) and NVIDIA legacy driver releases ([https://aur.archlinux.org/pkgbase/nvidia-390xx-utils nvidia-390xx], [https://aur.archlinux.org/pkgbase/nvidia-470xx-utils nvidia-470xx]) built from AUR PKGBUILDs<br />
* '''Homepage:''' https://gitlab.com/m2x.dev/kernel-lts/repository<br />
* '''Issue tracking:''' https://gitlab.com/m2x.dev/kernel-lts/repository/-/issues for repository issues and questions (not for issues with the AUR packages!)<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?search=0x76C6E477042BFE985CC220BD9C08A255442FAFF0&fingerprint=on&op=index 76C6E477042BFE985CC220BD9C08A255442FAFF0]<br />
<br />
{{bc|<nowiki><br />
[kernel-lts]<br />
Server = https://repo.m2x.dev/current/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== linux-nitrous ===<br />
<br />
* '''Maintainer:''' [https://superboring.dev Simao Gomes Viana (superboringdev or xdevs23)]<br />
* '''Description:''' linux-nitrous is a repository with prebuilt packages of the [https://gitlab.com/xdevs23/linux-nitrous linux-nitrous kernel]<br />
* '''Git Repo:''' https://gitlab.com/xdevs23/linux-nitrous<br />
* '''Issue tracking:''' https://github.com/xdevs23/linux-nitrous/issues for packaging issues and questions<br />
* '''Key-ID:''' [http://keys.gnupg.net/pks/lookup?search=0xE9C2DECAC962CB3AF1376D44148A9E3C9C3E3BF0&op=get 9C3E3BF0] (keys.gnupg.net)<br />
<br />
{{bc|<nowiki><br />
[linux-nitrous]<br />
Server = https://github.com/xdevs23/linux-nitrous/releases/latest/download<br />
</nowiki>}}<br />
<br />
=== liquorix ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/damentz Steven Barrett (damentz)]<br />
* '''Description:''' Repository containing automated builds of {{AUR|linux-lqx}}, {{AUR|linux-lqx-headers}}, and {{AUR|linux-lqx-docs}}<br />
* '''Upstream page:''' https://liquorix.net<br />
* '''Git Repo:''' https://github.com/damentz/liquorix-package, https://aur.archlinux.org/cgit/aur.git/log/?h=linux-lqx<br />
* '''Issue tracking:''' https://github.com/damentz/liquorix-package/issues<br />
* '''Key-ID: ''' [http://keys.gnupg.net/pks/lookup?op=get&search=0x9AE4078033F8024D 9AE4078033F8024D] (keys.gnupg.net)<br />
<br />
{{bc|<nowiki><br />
[liquorix]<br />
Server = https://liquorix.net/archlinux/$repo/$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 for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<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 = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<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 = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://keybase.pub/farwayer/arch/$repo/<br />
</nowiki>}}<br />
<br />
=== mxmeinhold ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/mxmeinhold mxmeinhold]<br />
* '''Description:''' Packages I maintain in the AUR, currently just factorio-headless<br />
* '''Key ID:''' B77D730E8D444707FA93320D72E05836F8252405<br />
* '''Keyfile:''' https://gpg.mxmeinhold.com<br />
<br />
{{bc|<nowiki><br />
[mxmeinhold]<br />
Server = https://arch.mxmeinhold.com/$arch<br />
</nowiki>}}<br />
<br />
=== orhun ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#orhun Orhun Parmaksiz]<br />
* '''Description:''' Personal repository with AUR and custom packages.<br />
* '''Key-ID:''' Not needed, as the maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[orhun]<br />
Server = https://pkgbuild.com/~orhun/repo<br />
</nowiki>}}<br />
<br />
=== origincode ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/OriginCode OriginCode]<br />
* '''Description:''' A few staging or testing packages from [[#archlinuxcn]], and some daily use packages.<br />
* '''Key-ID:''' 0A5BAD445D80C1CC & 62BF97502AE10D22<br />
<br />
{{bc|<nowiki><br />
[origincode]<br />
Server = https://repo.origincode.me/repo/$arch<br />
</nowiki>}}<br />
<br />
=== oscloud ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/bionade24 bionade24]<br />
* '''Description:''' <s>ROS melodic packages and necessary dependencies,</s> various cmd-line tools, and other packages from the AUR.<br />
* '''CI/CD status:''' https://abs-cd.oscloud.info<br />
* '''Key-ID:''' CB222E7EBC11D682AAC8B317A4A0D73114FDE6FC<br />
<br />
{{bc|<nowiki><br />
[oscloud]<br />
Server = http://repo.oscloud.info/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, e.g. a great number packages for mingw-w64 and Android cross compilation, fonts, Perl modules, tools like {{AUR|tageditor}}, {{AUR|syncthingtray}}, {{AUR|subtitlecomposer}} and {{AUR|qmplay2}}<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/buildservice/#package-search-section (package browser/search)<br />
* '''Key-ID:''' B9E36A7275FC61B464B67907E06FE8F53CDC6A4C<br />
<br />
{{bc|<nowiki><br />
[ownstuff-testing]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
<br />
[ownstuff]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|The testing repository is supposed to be used together with the official testing repositories.}}<br />
<br />
=== phillid-custom ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
{{bc|<nowiki><br />
[phillid-custom]<br />
Server = https://repo.nah.nz/$repo<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 />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[linux-pf|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== pro-audio-legacy ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' Legacy tooling for [[pro-audio]] (e.g. {{AUR|jack}}), mainly useful for old setups or CI<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[pro-audio-legacy]<br />
Server = https://pkgbuild.com/~dvzrv/repos/pro-audio/$arch<br />
</nowiki>}}<br />
<br />
=== proaudio ===<br />
<br />
* '''Maintainer:''' [https://github.com/osam-cologne/ OSAMC] members ([https://aur.archlinux.org/account/SpotlightKid SpotlightKid], [https://aur.archlinux.org/account/cbix cbix], [https://aur.archlinux.org/account/daniel.appelt daniel.appelt] et al.)<br />
* '''Description:''' [[Pro Audio]] packages not (yet) in the official repos, built for x86_64 and aarch64<br />
* '''Upstream page:''' https://arch.osamc.de/<br />
* '''GitHub repo:''' https://github.com/osam-cologne/archlinux-proaudio (PRs welcome)<br />
* '''Key-ID:''' 762AE5DB2B38786364BD81C4B9141BCC62D38EE5<br />
* '''Keyfile:''' https://arch.osamc.de/proaudio/osamc.gpg<br />
<br />
{{bc|<nowiki><br />
[proaudio]<br />
Server = https://arch.osamc.de/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is an open-source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [https://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 the maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== realtime ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' [[Realtime kernel patchset]] (aka. {{AUR|linux-rt}} and {{AUR|linux-rt-lts}})<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[realtime]<br />
Server = https://pkgbuild.com/~dvzrv/repos/realtime/$arch<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, zfs-dkms, spotify, masterpdfeditor, etc).<br />
* '''Key-ID:''' Not required, as the maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = https://al1.seblu.net/$repo/$arch<br />
Server = https://al2.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages are also available for armv7h.<br />
* '''Key-ID:''' Not required, as the 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 />
=== slowbro ===<br />
<br />
* '''Maintainer:''' Katelyn Schiesser (slowbro)<br />
* '''Description:''' binary packages for {{AUR|linux-vfio}}<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?search=0xAB3139C285186206 85186206]<br />
<br />
{{bc|<nowiki><br />
[slowbro]<br />
Server = http://www.slowbro.org/arch/$arch/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<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:''' 4E8D5DBD<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== supermario ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/supermario Mario Finelli (supermario)]<br />
* '''Description:''' AUR packages that I use or maintain<br />
* '''Git Repository:''' https://github.com/mfinelli/pkgs, https://github.com/mfinelli/aur-packages<br />
* '''Key-ID:''' C3CD75B002978A8468CA7B1F6C3ADDDE36FDA306<br />
* '''Keyfile:''' https://finelli.pub/36FDA306.asc<br />
<br />
{{bc|<nowiki><br />
[supermario]<br />
Server = https://pkgs.finelli.dev/arch/$arch<br />
</nowiki>}}<br />
<br />
=== TheRepoClub ===<br />
<br />
* '''Maintainer:''' [[User:TheRepoClub|TheRepoClub]]<br />
* '''Description:''' A repository with some of the AUR packages that TheRepoClub use<br />
* '''Upstream page:''' https://arch.therepo.club<br />
* '''Key-ID:''' [http://pgp.net.nz:11371/pks/lookup?op=vindex&fingerprint=on&search=0xE30EC2FBFB05C44F 75A38DC684F1A0B808918BCEE30EC2FBFB05C44F]<br />
<br />
{{bc|<nowiki><br />
[therepoclub]<br />
Server = https://arch.therepo.club/$arch/<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' [https://trinitydesktop.org/ Trinity Desktop Environment Developers]<br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 8685AD8B<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux<br />
</nowiki>}}<br />
<br />
=== valveaur ===<br />
<br />
* '''Maintainer:''' John Schoenick <johns@valvesoftware.com> (https://valvesoftware.com)<br />
* '''Description:''' A repository by Valve Software Providing The Linux-fsync kernel and modules, including the futex-wait-multiple patchset for testing with Proton fsync & Mesa with the ACO compiler patchset. <br />
* '''Upstream page:''' https://steamcommunity.com/linux<br />
* '''Key-ID:''' 8DC2CE3A3D245E64<br />
<br />
{{bc|<nowiki><br />
[valveaur]<br />
Server = http://repo.steampowered.com/arch/valveaur<br />
</nowiki>}}<br />
<br />
=== xfce4-devel ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/jonathon Jonathon Fernyhough]<br />
* '''Description:''' Pre-compiled Xfce4 development package releases using AUR PKGBUILDs, built for x86_64 and aarch64.<br />
* '''Homepage:''' https://gitlab.com/m2x.dev/xfce4/repository<br />
* '''Issue tracking:''' https://gitlab.com/m2x.dev/xfce4/repository/-/issues for repository issues and questions (not for issues with the AUR packages!)<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?search=0x76C6E477042BFE985CC220BD9C08A255442FAFF0&fingerprint=on&op=index 76C6E477042BFE985CC220BD9C08A255442FAFF0]<br />
<br />
{{bc|<nowiki><br />
[xfce4-devel]<br />
Server = https://repo.m2x.dev/current/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== xuanrui ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/xuanruiqi Xuanrui Qi (xuanruiqi)]<br />
* '''Description:''' xuanruiqi's own packages and frequently-used packages, mainly of interest to functional programmers.<br />
* '''Upstream Page:''' https://www.xuanruiqi.com/linux.html<br />
* '''Key-ID:''' 6E06FBC8<br />
<br />
{{bc|<nowiki><br />
[xuanrui]<br />
Server = https://arch.xuanruiqi.com/repo<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' https://xyne.dev/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = https://xyne.dev/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://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://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:''' https://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://sourceforge.net/projects/$repo/files/$arch/<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:''' <br />
* '''Description:''' <br />
* '''Note:''' Contributors have to read [https://forums.archlinux.fr/viewtopic.php?f=16&t=22324 the rules related to this repository (fr)]<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxir ===<br />
<br />
* '''Maintainer:''' Bardia Moshiri<br />
* '''Description:''' Most used packages by the Iranian Arch Linux community.<br />
* '''Note:''' Server is hosted in Iran and traffic from Iranian IP's will count as half from ISP's (Nim baha).<br />
* '''Note:''' Keep in mind that the repository is updated every 6 hours.<br />
* '''Upstream page:''' https://mirror.bardia.tech<br />
<br />
{{bc|<nowiki><br />
[archlinuxir]<br />
Server = https://mirror.bardia.tech/archlinuxir/$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 />
=== archlinux-phalcon ===<br />
<br />
* '''Maintainer:''' Michal Sotolar <michal at sotolar dot com><br />
* '''Description:''' Phalcon Framework PHP 5.6 - 7.x extension builds<br />
* '''Upstream page:''' https://archlinux-phalcon.gitlab.io<br />
<br />
{{bc|<nowiki><br />
[archlinux-phalcon]<br />
Server = https://archlinux-phalcon.gitlab.io/repository<br />
</nowiki>}}<br />
<br />
=== archlinux-php ===<br />
<br />
* '''Maintainer:''' Michal Sotolar <michal at sotolar dot com><br />
* '''Description:''' PHP 5.6 - 7.x old stable builds coexistable with mainline version<br />
* '''Upstream page:''' https://archlinux-php.gitlab.io<br />
<br />
{{bc|<nowiki><br />
[archlinux-php]<br />
Server = https://archlinux-php.gitlab.io/repository<br />
</nowiki>}}<br />
<br />
=== archmint ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ArchMint ArchMint]<br />
* '''Description:''' ArchMint GNU/Linux packages from developer's repository<br />
* '''Upstream page:''' https://sourceforge.net/projects/archmint/files/repo/<br />
<br />
{{bc|<nowiki><br />
[archmint]<br />
Server = https://sourceforge.net/projects/archmint/files/repo/$arch<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== extra-alucryd ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various supplemental packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[extra-alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 (python) ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Provides several different Python versions (eg. 3.5, 3.6, 3.7). All active Python releases should be available here.<br />
* '''Git repo:''' https://github.com/FFY00/arch-python-repo<br />
* '''Upstream page:''' https://github.com/FFY00/arch-python-repo<br />
<br />
{{bc|<nowiki><br />
[python]<br />
Server = https://ffy00.github.io/arch-python-repo/<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== juju ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Juju Juju]<br />
* '''Description:''' Emulators and development tools for some retro computers such as the Commander X16 and the TI-84+, along with some of the packages I maintain on the AUR<br />
* '''Upstream page:''' http://repo.juju2143.ca/<br />
<br />
{{bc|<nowiki><br />
[juju]<br />
Server = https://repo.juju2143.ca/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== kernel ===<br />
<br />
* '''Maintainer:''' blacksy3 <blacksky3@tuta.io><br />
* '''Description:''' Prebuilt packages for XanMod and Liquorix kernel with config tweak for performance<br />
* '''Git repo:''' https://github.com/blacksky3/linux-xanmod.git<br />
* '''Git repo:''' https://github.com/blacksky3/linux-lqx.git<br />
* '''Upstream page:''' https://repo.blacksky3.com/<br />
<br />
{{bc|<nowiki><br />
[kernel]<br />
Server = https://repo.blacksky3.com/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://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 = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== oracle ===<br />
<br />
* '''Maintainer:''' [[User:Malvineous]]<br />
* '''Description:''' [[Oracle Database client]] and associated tools, built from AUR packages and hosted on AWS S3 using [https://github.com/Malvineous/archlinux-pacman-repo Makefile scripts].<br />
* '''Conditions:''' By using this repository you agree to the [http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html Oracle Technology Network Development and Distribution License Terms for Instant Client].<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$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 />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}<br />
<br />
=== rstudio ===<br />
<br />
* '''Maintainer:''' Artem Klevtsov <a.a.klevtsov@gmail.com><br />
* '''Description:''' RStudio IDE packages.<br />
* '''Upstream page:''' https://gitlab.com/aur1/rstudio<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = https://aur1.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== stx4 ===<br />
<br />
* '''Maintainer:''' StarterX4 <starterx4[at]gmail.com><br />
* '''Description:''' Any – some fonts and fakepkgs; x86_64 – archived yet might useful packages (like PacmanXG4) and some AUR soft (like OpenBoard).<br />
* '''Upstream Page:''' https://keybase.pub/starterx4/repos/arch/<br />
<br />
{{bc|<nowiki><br />
[stx4-any]<br />
Server = https://starterx4.keybase.pub/repos/arch/any/stx4<br />
<br />
[stx4-x86_64]<br />
Server = https://starterx4.keybase.pub/repos/arch/x86_64/stx4<br />
</nowiki>}}<br />
<br />
=== symbiflow-git ===<br />
<br />
* '''Maintainer:''' Filipe Laíns <lains@archlinux.org><br />
* '''Description:''' Nightly builds for SymbiFlow components and related projects (mostly FPGA related projects).<br />
{{bc|<nowiki><br />
[symbiflow-git]<br />
Server = https://ffy00.github.io/symbiflow-arch-pkgs/<br />
</nowiki>}}<br />
<br />
=== thirtythreeforty ===<br />
<br />
* '''Maintainer:''' George Hilliard <thirtythreeforty@gmail.com><br />
* '''Description:''' Nightly builds for KiCAD development packages {{AUR|kicad-nightly}} and {{AUR|kicad-git}}<br />
{{bc|<nowiki><br />
[thirtythreeforty]<br />
Server = https://archrepo.thirtythreeforty.net/repo/thirtythreeforty<br />
</nowiki>}}<br />
<br />
=== userrepository ===<br />
<br />
* '''Maintainer:''' [https://twitter.com/brunomiguel Bruno Miguel] <bruno@privacyrequired.com> and <brunoalexandremiguel@gmail.com><br />
* '''Description:''' Repository containing software from AUR<br />
{{bc|<nowiki><br />
[userrepository]<br />
Server = https://userrepository.eu<br />
</nowiki>}}<br />
<br />
=== vdr4arch ===<br />
<br />
* '''Maintainers:''' [https://aur.archlinux.org/account/CReimer CReimer], [https://aur.archlinux.org/account/M-Reimer M-Reimer]<br />
* '''Description:''' A set of [[VDR]] packages for Arch Linux<br />
* '''Upstream page:''' https://github.com/VDR4Arch/vdr4arch<br />
<br />
{{Note|Packages are automatically built with [https://github.com/VDR4Arch/vdr4arch/blob/master/.ci/repo-make-ci.sh repo-make-ci.sh].}}<br />
<br />
{{bc|<nowiki><br />
[vdr4arch]<br />
Server = https://vdr4arch.github.io/$arch<br />
</nowiki>}}<br />
<br />
== Packages search ==<br />
<br />
{{Accuracy|{{ic|pkgs.org}} shows '''incorrect information''' - some unofficial repositories from this page or with non-x86_64 architectures are marked as official.}}<br />
<br />
Most of the unofficial Arch Linux repositories are indexed on https://archlinux.pkgs.org/.<br />
<br />
It provides repositories browser and packages search.</div>CBiXhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=725429Unofficial user repositories2022-04-04T21:42:59Z<p>CBiX: Add proaudio repository</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[es:Unofficial user repositories]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<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 />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[pacman/Package signing#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman/Tips and tricks#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. It is your decision whether to trust their maintainers, and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (website, 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 />
Some repositories may also have packages for architectures besides x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== alerque ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/alerque Caleb Maclennan]<br />
* '''Description:''' Typesetting, publishing, and font development related tools such as SILE, CaSILE, Fontship, and their related dependencies including many fonts, Lua rocks, and Python modules. Also Asterisk, most of the [https://aur.archlinux.org/packages/?O=0&SeB=M&K=alerque&outdated=&SB=n&SO=a&PP=250&do_Search=Go AUR packages I (co-)maintain], and many of the AUR builds I use personally.<br />
* '''Git Repository:''' https://github.com/alerque/aur<br />
* '''Issue Tracker:''' https://github.com/alerque/aur/issues<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=vindex&fingerprint=on&exact=on&search=0x9F377DDB6D3153A48EB3EB1E63CC496475267693 63CC496475267693]<br />
<br />
{{bc|<nowiki><br />
[alerque]<br />
Server = https://arch.alerque.com/$arch<br />
</nowiki>}}<br />
<br />
=== ALHP ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/anonfunc Giovanni Harting]<br />
* '''Description:''' [core], [extra] and [community] compiled with [[Wikipedia:Interprocedural_optimization|LTO]], -march=x86-64-vN and -O3.<br />
* '''Issue Tracker:''' https://git.harting.dev/ALHP/ALHP.GO/issues<br />
* '''Keyring:''' {{AUR|alhp-keyring}}<br />
* '''Mirrorlist:''' {{AUR|alhp-mirrorlist}}<br />
* '''Upstream page:''' https://git.harting.dev/ALHP/ALHP.GO<br />
* '''Debuginfod:''' https://debuginfod.harting.dev<br />
<br />
{{bc|<nowiki><br />
[core-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
<br />
[extra-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
<br />
[community-x86-64-v3]<br />
Include = /etc/pacman.d/alhp-mirrorlist<br />
</nowiki>}}<br />
<br />
=== andontie-aur ===<br />
<br />
* '''Maintainer:''' Holly M.<br />
* '''Description:''' A repo containing the most popular AUR packages, as well as some I use all the time. New packages can be requested on the upstream website.<br />
* '''Key-ID:''' B545E9B7CD906FE3<br />
* '''Upstream page:''' https://aur.andontie.net<br />
<br />
{{bc|<nowiki><br />
[andontie-aur]<br />
Server = https://aur.andontie.net/$arch<br />
</nowiki>}}<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://arcanis.me/ arcanis]<br />
* '''Description:''' AUR packages (including some VCS packages), mostly development and scientific tools. Updated daily.<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=get&search=0xBD2AC8C5E989490C 0xBD2AC8C5E989490C]<br />
* '''Upstream page:''' http://repo.arcanis.me/x86_64/index.html<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = http://repo.arcanis.me/$arch<br />
</nowiki>}}<br />
<br />
=== arch4edu ===<br />
<br />
* '''Maintainers:''' [https://github.com/petronny Jingbei Li (petronny)], and [https://github.com/arch4edu/arch4edu/graphs/contributors others]<br />
* '''Description:''' arch4edu is a community repository for Arch Linux and Arch Linux ARM that strives to provide the latest versions of most software used by college students.<br />
* '''Git Repo:''' https://github.com/arch4edu/arch4edu<br />
* '''Issue tracking:''' https://github.com/arch4edu/arch4edu/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
* '''Key-ID:''' 7931B6D628C8D3BA<br />
<br />
{{bc|<nowiki><br />
[arch4edu]<br />
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch<br />
## or other mirrors in https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
</nowiki>}}<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://archlinux.org/people/developers/#felixonmars Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested. Create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repository.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other, so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' [https://archzfs.com/archzfs.gpg DDF7DB817396A49B2A2723F7403BD972F75D9D76]<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
# Origin Server - France<br />
Server = http://archzfs.com/$repo/x86_64<br />
# Mirror - Germany<br />
Server = http://mirror.sum7.eu/archlinux/archzfs/$repo/x86_64<br />
# Mirror - Germany<br />
Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/x86_64<br />
# Mirror - India<br />
Server = https://mirror.in.themindsmaze.com/archzfs/$repo/x86_64<br />
# Mirror - US<br />
Server = https://zxcvfdsa.com/archzfs/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== artafinde ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#artafinde Leonidas Spyropoulos]<br />
* '''Description:''' Personal repository with AUR and custom packages.<br />
* '''Key-ID:''' Not needed, as the maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[artafinde]<br />
Server = https://pkgbuild.com/~artafinde/repo<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 />
=== aviallon ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/aviallon/ aviallon]<br />
* '''Description:''' Prebuilt packages from AUR, plus some of my personal packages. For now, only x86_64 is supported.<br />
* '''Upstream page:''' https://mirror.lesviallon.fr/<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x4d5557ab89e5fe11 883918BAF0EE4170241579794D5557AB89E5FE11]<br />
<br />
{{bc|<nowiki><br />
[aviallon]<br />
Server = https://mirror.lesviallon.fr/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== avr ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/vianney Vianney Bouchaud]<br />
* '''Description:''' Some of the AUR builds I use personally, packages mainly related to kubernetes that I used to build for my own use as well as some of my own software that I also package.<br />
* '''Git Repository:''' https://github.com/vbouchaud/aur<br />
* '''Issue Tracker:''' https://github.com/vbouchaud/aur/issues<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=vindex&fingerprint=on&exact=on&search=0xAD53F33B1AB4C51802F25068157B08346330029C 157B08346330029C]<br />
* '''Upstream page:''' https://bouchaud.org/packages/avr<br />
<br />
{{bc|<nowiki><br />
[avr]<br />
Server = https://bouchaud.org/packages/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== berberman ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/berberman berberman]<br />
* '''Description:''' Some packages make no sense.<br />
* '''Upstream page:''' https://github.com/berberman/myrepo<br />
* '''Key-ID:''' C4F93F1ED397E8CF<br />
<br />
{{bc|<nowiki><br />
[berberman]<br />
Server = https://repo.typed.icu/$arch<br />
</nowiki>}}<br />
<br />
=== BioArchLinux ===<br />
<br />
* '''Maintainer:''' BioArchLinux Team<br />
* '''Description:''' Biological Software Repository for ArchLinux<br />
* '''Upstream page:''' https://github.com/BioArchLinux/Packages<br />
* '''Key-ID:''' B1F96021DB62254D<br />
<br />
{{bc|<nowiki><br />
[BioArchLinux]<br />
Server = https://repo.bioarchlinux.org/$arch<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintained 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 = https://repo.herecura.be/$repo/$arch<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.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' https://www.suruatoel.xyz/coderkun.key<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = https://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== dasbaumwolltier ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/dasbaumwolltier/ dasbaumwolltier]<br />
* '''Description:''' Contains (nearly) all of my AUR packages and some random AUR packages I use myself. (A full list of packages can be found [https://github.com/dasbaumwolltier/aur-building/blob/master/package-list here]. Feel free to open issues.) They are usually not evicted from the build after I stop using them. Builds are at least weekly.<br />
* '''Git Repository:''' https://github.com/dasbaumwolltier/aur-building<br />
* '''Key-ID:''' [https://repo.guldner.eu/repository/archlinux/dasbaumwolltier.gpg 746BC93D5F08C5A4369F4DDB10BF99E6998249B6]<br />
<br />
{{bc|<nowiki><br />
[dasbaumwolltier]<br />
Server = https://repo.guldner.eu/repository/archlinux/$arch/<br />
</nowiki>}}<br />
<br />
=== desolve ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/dviktor/ desolve]<br />
* '''Description:''' Collection of R packages plus some extra stuff.<br />
* '''Git repository for R packages:''' https://github.com/dvdesolve/ArchRPkgs<br />
* '''Git repository for other AUR packages:''' https://github.com/dvdesolve/pkgbuilds<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xdd3bf75dcd96541ac723b7cd6a4cd3276ca8ebbd DD3BF75DCD96541AC723B7CD6A4CD3276CA8EBBD]<br />
<br />
{{bc|<nowiki><br />
[desolve]<br />
Server = https://desolve.ru/archrepo/$arch<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32, and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages/linux<br />
</nowiki>}}<br />
<br />
=== ear ===<br />
<br />
* '''Maintainer:''' [https://wardsegers.be Ward Segers], <br />
* '''Description:''' Editicalu's ArchLinux Repository. Contains precompiled AUR packages (mostly the ones maintained by editicalu)<br />
* '''Homepage:''' https://ear.wardsegers.be/<br />
* '''Upstream page:''' https://gitlab.com/editicalu/ear<br />
* '''Keyfile:''' https://ear.wardsegers.be/signingkey.asc<br />
* '''Key-ID:''' A9C4E7734638ACF8<br />
<br />
{{Note|Instructions can be found at https://ear.wardsegers.be}}<br />
<br />
{{bc|<nowiki><br />
[ear]<br />
Server = https://ear.wardsegers.be/$arch<br />
</nowiki>}}<br />
<br />
=== fcgu ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fabiscafe Fabian Bornschein]<br />
* '''Description:''' Overlay repository, mostly for unstable (Beta, RC) releases of GNOME- and related software.<br />
* '''Homepage:''' https://gitlab.com/fabiscafe/gnome-unstable<br />
* '''Keyfile:''' https://keys.openpgp.org/vks/v1/by-fingerprint/6E58E886A8E07538A2485FAED6A4F386B4881229<br />
* '''Key-ID:''' D6A4F386B4881229<br />
{{Note|Instructions can be found at [https://gitlab.com/fabiscafe/gnome-unstable#fabiscafe-gnome-unstable https://gitlab.com/fabiscafe/gnome-unstable]}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repository. Contains misc packages related to hardware, cross-compilation, the D language, etc.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809 Brenton Horne] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK 2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== grawlinson ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/grawlinson George Rawlinson]<br />
* '''Description:''' AUR packages maintained by the user as well as some experimental packages.<br />
* '''Package list:''' https://mirror.little.kiwi<br />
* '''Key-ID:''' 9D120F4AAF400B8313A87EF2369552B2069123EE<br />
* '''Keyfile:''' https://mirror.little.kiwi/grawlinson.asc<br />
* '''Source:''' https://git.little.kiwi/grawlinson/arch-pkgs<br />
<br />
{{bc|<nowiki><br />
[grawlinson]<br />
Server = https://mirror.little.kiwi<br />
Server = https://pkgbuild.com/~grawlinson/repo/$repo<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://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 = https://repo.herecura.be/$repo/$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 />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Unofficial kernels|pf-kernel]] and other packages by Thaodan<br />
* '''Key-ID:''': BBFE2FD421597395E4FC8C8DF6C85FEE79D661A4<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/public/archlinux/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jk-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/jstkdng JustKidding]<br />
* '''Description:''' Packages from the AUR I maintain and co-maintain.<br />
* '''Upstream page:''' https://github.com/jstkdng/aur<br />
* '''Key-ID:''' [https://build.opensuse.org/project/keys_and_certificates/home:justkidding:arch 7627D0F8F60FBA35371A29E1AA6B2752759F9361]<br />
<br />
{{bc|<nowiki><br />
[home_justkidding_arch_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/justkidding:/arch/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== kernel-lts ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/jonathon Jonathon Fernyhough]<br />
* '''Description:''' Pre-compiled LTS kernels and supporting packages ({{AUR|linux-lts44}}, {{AUR|linux-lts49}}, {{AUR|linux-lts414}}, {{AUR|linux-lts419}}, {{AUR|linux-lts54}}, {{AUR|linux-lts510}}, {{AUR|linux-firmware-uncompressed}}) and NVIDIA legacy driver releases ([https://aur.archlinux.org/pkgbase/nvidia-390xx-utils nvidia-390xx], [https://aur.archlinux.org/pkgbase/nvidia-470xx-utils nvidia-470xx]) built from AUR PKGBUILDs<br />
* '''Homepage:''' https://gitlab.com/m2x.dev/kernel-lts/repository<br />
* '''Issue tracking:''' https://gitlab.com/m2x.dev/kernel-lts/repository/-/issues for repository issues and questions (not for issues with the AUR packages!)<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?search=0x76C6E477042BFE985CC220BD9C08A255442FAFF0&fingerprint=on&op=index 76C6E477042BFE985CC220BD9C08A255442FAFF0]<br />
<br />
{{bc|<nowiki><br />
[kernel-lts]<br />
Server = https://repo.m2x.dev/current/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== linux-nitrous ===<br />
<br />
* '''Maintainer:''' [https://superboring.dev Simao Gomes Viana (superboringdev or xdevs23)]<br />
* '''Description:''' linux-nitrous is a repository with prebuilt packages of the [https://gitlab.com/xdevs23/linux-nitrous linux-nitrous kernel]<br />
* '''Git Repo:''' https://gitlab.com/xdevs23/linux-nitrous<br />
* '''Issue tracking:''' https://github.com/xdevs23/linux-nitrous/issues for packaging issues and questions<br />
* '''Key-ID:''' [http://keys.gnupg.net/pks/lookup?search=0xE9C2DECAC962CB3AF1376D44148A9E3C9C3E3BF0&op=get 9C3E3BF0] (keys.gnupg.net)<br />
<br />
{{bc|<nowiki><br />
[linux-nitrous]<br />
Server = https://github.com/xdevs23/linux-nitrous/releases/latest/download<br />
</nowiki>}}<br />
<br />
=== liquorix ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/damentz Steven Barrett (damentz)]<br />
* '''Description:''' Repository containing automated builds of {{AUR|linux-lqx}}, {{AUR|linux-lqx-headers}}, and {{AUR|linux-lqx-docs}}<br />
* '''Upstream page:''' https://liquorix.net<br />
* '''Git Repo:''' https://github.com/damentz/liquorix-package, https://aur.archlinux.org/cgit/aur.git/log/?h=linux-lqx<br />
* '''Issue tracking:''' https://github.com/damentz/liquorix-package/issues<br />
* '''Key-ID: ''' [http://keys.gnupg.net/pks/lookup?op=get&search=0x9AE4078033F8024D 9AE4078033F8024D] (keys.gnupg.net)<br />
<br />
{{bc|<nowiki><br />
[liquorix]<br />
Server = https://liquorix.net/archlinux/$repo/$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 for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<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 = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<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 = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://keybase.pub/farwayer/arch/$repo/<br />
</nowiki>}}<br />
<br />
=== mxmeinhold ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/mxmeinhold mxmeinhold]<br />
* '''Description:''' Packages I maintain in the AUR, currently just factorio-headless<br />
* '''Key ID:''' B77D730E8D444707FA93320D72E05836F8252405<br />
* '''Keyfile:''' https://gpg.mxmeinhold.com<br />
<br />
{{bc|<nowiki><br />
[mxmeinhold]<br />
Server = https://arch.mxmeinhold.com/$arch<br />
</nowiki>}}<br />
<br />
=== orhun ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#orhun Orhun Parmaksiz]<br />
* '''Description:''' Personal repository with AUR and custom packages.<br />
* '''Key-ID:''' Not needed, as the maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[orhun]<br />
Server = https://pkgbuild.com/~orhun/repo<br />
</nowiki>}}<br />
<br />
=== origincode ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/OriginCode OriginCode]<br />
* '''Description:''' A few staging or testing packages from [[#archlinuxcn]], and some daily use packages.<br />
* '''Key-ID:''' 0A5BAD445D80C1CC & 62BF97502AE10D22<br />
<br />
{{bc|<nowiki><br />
[origincode]<br />
Server = https://repo.origincode.me/repo/$arch<br />
</nowiki>}}<br />
<br />
=== oscloud ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/bionade24 bionade24]<br />
* '''Description:''' <s>ROS melodic packages and necessary dependencies,</s> various cmd-line tools, and other packages from the AUR.<br />
* '''CI/CD status:''' https://abs-cd.oscloud.info<br />
* '''Key-ID:''' CB222E7EBC11D682AAC8B317A4A0D73114FDE6FC<br />
<br />
{{bc|<nowiki><br />
[oscloud]<br />
Server = http://repo.oscloud.info/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, e.g. a great number packages for mingw-w64 and Android cross compilation, fonts, Perl modules, tools like {{AUR|tageditor}}, {{AUR|syncthingtray}}, {{AUR|subtitlecomposer}} and {{AUR|qmplay2}}<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/buildservice/#package-search-section (package browser/search)<br />
* '''Key-ID:''' B9E36A7275FC61B464B67907E06FE8F53CDC6A4C<br />
<br />
{{bc|<nowiki><br />
[ownstuff-testing]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
<br />
[ownstuff]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|The testing repository is supposed to be used together with the official testing repositories.}}<br />
<br />
=== phillid-custom ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
{{bc|<nowiki><br />
[phillid-custom]<br />
Server = https://repo.nah.nz/$repo<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 />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[linux-pf|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== proaudio ===<br />
<br />
* '''Maintainer:''' [https://github.com/osam-cologne/ OSAMC] members ([https://aur.archlinux.org/account/SpotlightKid SpotlightKid], [https://aur.archlinux.org/account/cbix cbix], [https://aur.archlinux.org/account/daniel.appelt daniel.appelt] et al.)<br />
* '''Description:''' [[Pro Audio]] packages not (yet) in the official repos, built for x86_64 and aarch64<br />
* '''Upstream page:''' https://arch.osamc.de/<br />
* '''GitHub repo:''' https://github.com/osam-cologne/archlinux-proaudio (PRs welcome)<br />
* '''Key-ID:''' 762AE5DB2B38786364BD81C4B9141BCC62D38EE5<br />
* '''Keyfile:''' https://arch.osamc.de/proaudio/osamc.gpg<br />
<br />
{{bc|<nowiki><br />
[proaudio]<br />
Server = Server = https://arch.osamc.de/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is an open-source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [https://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 the maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== realtime ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' [[Realtime kernel patchset]] (aka. {{AUR|linux-rt}} and {{AUR|linux-rt-lts}})<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[realtime]<br />
Server = https://pkgbuild.com/~dvzrv/repos/realtime/$arch<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, zfs-dkms, spotify, masterpdfeditor, etc).<br />
* '''Key-ID:''' Not required, as the maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = https://al1.seblu.net/$repo/$arch<br />
Server = https://al2.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages are also available for armv7h.<br />
* '''Key-ID:''' Not required, as the 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 />
=== slowbro ===<br />
<br />
* '''Maintainer:''' Katelyn Schiesser (slowbro)<br />
* '''Description:''' binary packages for {{AUR|linux-vfio}}<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?search=0xAB3139C285186206 85186206]<br />
<br />
{{bc|<nowiki><br />
[slowbro]<br />
Server = http://www.slowbro.org/arch/$arch/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<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:''' 4E8D5DBD<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== supermario ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/supermario Mario Finelli (supermario)]<br />
* '''Description:''' AUR packages that I use or maintain<br />
* '''Git Repository:''' https://github.com/mfinelli/pkgs, https://github.com/mfinelli/aur-packages<br />
* '''Key-ID:''' C3CD75B002978A8468CA7B1F6C3ADDDE36FDA306<br />
* '''Keyfile:''' https://finelli.pub/36FDA306.asc<br />
<br />
{{bc|<nowiki><br />
[supermario]<br />
Server = https://pkgs.finelli.dev/arch/$arch<br />
</nowiki>}}<br />
<br />
=== TheRepoClub ===<br />
<br />
* '''Maintainer:''' [[User:TheRepoClub|TheRepoClub]]<br />
* '''Description:''' A repository with some of the AUR packages that TheRepoClub use<br />
* '''Upstream page:''' https://arch.therepo.club<br />
* '''Key-ID:''' [http://pgp.net.nz:11371/pks/lookup?op=vindex&fingerprint=on&search=0xE30EC2FBFB05C44F 75A38DC684F1A0B808918BCEE30EC2FBFB05C44F]<br />
<br />
{{bc|<nowiki><br />
[therepoclub]<br />
Server = https://arch.therepo.club/$arch/<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' [https://trinitydesktop.org/ Trinity Desktop Environment Developers]<br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 8685AD8B<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux<br />
</nowiki>}}<br />
<br />
=== valveaur ===<br />
<br />
* '''Maintainer:''' John Schoenick <johns@valvesoftware.com> (https://valvesoftware.com)<br />
* '''Description:''' A repository by Valve Software Providing The Linux-fsync kernel and modules, including the futex-wait-multiple patchset for testing with Proton fsync & Mesa with the ACO compiler patchset. <br />
* '''Upstream page:''' https://steamcommunity.com/linux<br />
* '''Key-ID:''' 8DC2CE3A3D245E64<br />
<br />
{{bc|<nowiki><br />
[valveaur]<br />
Server = http://repo.steampowered.com/arch/valveaur<br />
</nowiki>}}<br />
<br />
=== xfce4-devel ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/jonathon Jonathon Fernyhough]<br />
* '''Description:''' Pre-compiled Xfce4 development package releases using AUR PKGBUILDs, built for x86_64 and aarch64.<br />
* '''Homepage:''' https://gitlab.com/m2x.dev/xfce4/repository<br />
* '''Issue tracking:''' https://gitlab.com/m2x.dev/xfce4/repository/-/issues for repository issues and questions (not for issues with the AUR packages!)<br />
* '''Key-ID:''' [https://keyserver.ubuntu.com/pks/lookup?search=0x76C6E477042BFE985CC220BD9C08A255442FAFF0&fingerprint=on&op=index 76C6E477042BFE985CC220BD9C08A255442FAFF0]<br />
<br />
{{bc|<nowiki><br />
[xfce4-devel]<br />
Server = https://repo.m2x.dev/current/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== xuanrui ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/xuanruiqi Xuanrui Qi (xuanruiqi)]<br />
* '''Description:''' xuanruiqi's own packages and frequently-used packages, mainly of interest to functional programmers.<br />
* '''Upstream Page:''' https://www.xuanruiqi.com/linux.html<br />
* '''Key-ID:''' 6E06FBC8<br />
<br />
{{bc|<nowiki><br />
[xuanrui]<br />
Server = https://arch.xuanruiqi.com/repo<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' https://xyne.dev/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = https://xyne.dev/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://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://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:''' https://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://sourceforge.net/projects/$repo/files/$arch/<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:''' <br />
* '''Description:''' <br />
* '''Note:''' Contributors have to read [https://forums.archlinux.fr/viewtopic.php?f=16&t=22324 the rules related to this repository (fr)]<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxir ===<br />
<br />
* '''Maintainer:''' Bardia Moshiri<br />
* '''Description:''' Most used packages by the Iranian Arch Linux community.<br />
* '''Note:''' Server is hosted in Iran and traffic from Iranian IP's will count as half from ISP's (Nim baha).<br />
* '''Note:''' Keep in mind that the repository is updated every 6 hours.<br />
* '''Upstream page:''' https://mirror.bardia.tech<br />
<br />
{{bc|<nowiki><br />
[archlinuxir]<br />
Server = https://mirror.bardia.tech/archlinuxir/$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 />
=== archlinux-phalcon ===<br />
<br />
* '''Maintainer:''' Michal Sotolar <michal at sotolar dot com><br />
* '''Description:''' Phalcon Framework PHP 5.6 - 7.x extension builds<br />
* '''Upstream page:''' https://archlinux-phalcon.gitlab.io<br />
<br />
{{bc|<nowiki><br />
[archlinux-phalcon]<br />
Server = https://archlinux-phalcon.gitlab.io/repository<br />
</nowiki>}}<br />
<br />
=== archlinux-php ===<br />
<br />
* '''Maintainer:''' Michal Sotolar <michal at sotolar dot com><br />
* '''Description:''' PHP 5.6 - 7.x old stable builds coexistable with mainline version<br />
* '''Upstream page:''' https://archlinux-php.gitlab.io<br />
<br />
{{bc|<nowiki><br />
[archlinux-php]<br />
Server = https://archlinux-php.gitlab.io/repository<br />
</nowiki>}}<br />
<br />
=== archmint ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ArchMint ArchMint]<br />
* '''Description:''' ArchMint GNU/Linux packages from developer's repository<br />
* '''Upstream page:''' https://sourceforge.net/projects/archmint/files/repo/<br />
<br />
{{bc|<nowiki><br />
[archmint]<br />
Server = https://sourceforge.net/projects/archmint/files/repo/$arch<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== extra-alucryd ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various supplemental packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[extra-alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 (python) ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Provides several different Python versions (eg. 3.5, 3.6, 3.7). All active Python releases should be available here.<br />
* '''Git repo:''' https://github.com/FFY00/arch-python-repo<br />
* '''Upstream page:''' https://github.com/FFY00/arch-python-repo<br />
<br />
{{bc|<nowiki><br />
[python]<br />
Server = https://ffy00.github.io/arch-python-repo/<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== juju ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Juju Juju]<br />
* '''Description:''' Emulators and development tools for some retro computers such as the Commander X16 and the TI-84+, along with some of the packages I maintain on the AUR<br />
* '''Upstream page:''' http://repo.juju2143.ca/<br />
<br />
{{bc|<nowiki><br />
[juju]<br />
Server = https://repo.juju2143.ca/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== kernel ===<br />
<br />
* '''Maintainer:''' blacksy3 <blacksky3@tuta.io><br />
* '''Description:''' Prebuilt packages for XanMod and Liquorix kernel with config tweak for performance<br />
* '''Git repo:''' https://github.com/blacksky3/linux-xanmod.git<br />
* '''Git repo:''' https://github.com/blacksky3/linux-lqx.git<br />
* '''Upstream page:''' https://www.blacksky3.com/<br />
<br />
{{bc|<nowiki><br />
[kernel]<br />
Server = https://www.blacksky3.com/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://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 = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== oracle ===<br />
<br />
* '''Maintainer:''' [[User:Malvineous]]<br />
* '''Description:''' [[Oracle Database client]] and associated tools, built from AUR packages and hosted on AWS S3 using [https://github.com/Malvineous/archlinux-pacman-repo Makefile scripts].<br />
* '''Conditions:''' By using this repository you agree to the [http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html Oracle Technology Network Development and Distribution License Terms for Instant Client].<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$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 />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}<br />
<br />
=== rstudio ===<br />
<br />
* '''Maintainer:''' Artem Klevtsov <a.a.klevtsov@gmail.com><br />
* '''Description:''' RStudio IDE packages.<br />
* '''Upstream page:''' https://gitlab.com/aur1/rstudio<br />
<br />
{{bc|<nowiki><br />
[rstudio]<br />
Server = https://aur1.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== stx4 ===<br />
<br />
* '''Maintainer:''' StarterX4 <starterx4[at]gmail.com><br />
* '''Description:''' Any – some fonts and fakepkgs; x86_64 – archived yet might useful packages (like PacmanXG4) and some AUR soft (like OpenBoard).<br />
* '''Upstream Page:''' https://keybase.pub/starterx4/repos/arch/<br />
<br />
{{bc|<nowiki><br />
[stx4-any]<br />
Server = https://starterx4.keybase.pub/repos/arch/any/stx4<br />
<br />
[stx4-x86_64]<br />
Server = https://starterx4.keybase.pub/repos/arch/x86_64/stx4<br />
</nowiki>}}<br />
<br />
=== symbiflow-git ===<br />
<br />
* '''Maintainer:''' Filipe Laíns <lains@archlinux.org><br />
* '''Description:''' Nightly builds for SymbiFlow components and related projects (mostly FPGA related projects).<br />
{{bc|<nowiki><br />
[symbiflow-git]<br />
Server = https://ffy00.github.io/symbiflow-arch-pkgs/<br />
</nowiki>}}<br />
<br />
=== thirtythreeforty ===<br />
<br />
* '''Maintainer:''' George Hilliard <thirtythreeforty@gmail.com><br />
* '''Description:''' Nightly builds for KiCAD development packages {{AUR|kicad-nightly}} and {{AUR|kicad-git}}<br />
{{bc|<nowiki><br />
[thirtythreeforty]<br />
Server = https://archrepo.thirtythreeforty.net/repo/thirtythreeforty<br />
</nowiki>}}<br />
<br />
=== userrepository ===<br />
<br />
* '''Maintainer:''' [https://twitter.com/brunomiguel Bruno Miguel] <bruno@privacyrequired.com> and <brunoalexandremiguel@gmail.com><br />
* '''Description:''' Repository containing software from AUR<br />
{{bc|<nowiki><br />
[userrepository]<br />
Server = https://userrepository.eu<br />
</nowiki>}}<br />
<br />
=== vdr4arch ===<br />
<br />
* '''Maintainers:''' [https://aur.archlinux.org/account/CReimer CReimer], [https://aur.archlinux.org/account/M-Reimer M-Reimer]<br />
* '''Description:''' A set of [[VDR]] packages for Arch Linux<br />
* '''Upstream page:''' https://github.com/VDR4Arch/vdr4arch<br />
<br />
{{Note|Packages are automatically built with [https://github.com/VDR4Arch/vdr4arch/blob/master/.ci/repo-make-ci.sh repo-make-ci.sh].}}<br />
<br />
{{bc|<nowiki><br />
[vdr4arch]<br />
Server = https://vdr4arch.github.io/$arch<br />
</nowiki>}}<br />
<br />
== Packages search ==<br />
<br />
{{Accuracy|{{ic|pkgs.org}} shows '''incorrect information''' - some unofficial repositories from this page or with non-x86_64 architectures are marked as official.}}<br />
<br />
Most of the unofficial Arch Linux repositories are indexed on https://archlinux.pkgs.org/.<br />
<br />
It provides repositories browser and packages search.</div>CBiXhttps://wiki.archlinux.org/index.php?title=PipeWire&diff=652395PipeWire2021-02-14T21:01:34Z<p>CBiX: /* JACK clients */ How to set buffer size for individual application</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[fi:PipeWire]]<br />
[[ja:PipeWire]]<br />
{{Related articles start}}<br />
{{Related|PipeWire/Examples}}<br />
{{Related articles end}}<br />
<br />
[http://pipewire.org PipeWire] is a new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a [[Polkit]]-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories.<br />
<br />
Pipewire uses [[Systemd/User]] for management of the server and automatic socket activation. See the respective [[Systemd/User]] for more details on the startup behavior and logging of the service.<br />
<br />
Optionally, install {{pkg|pipewire-docs}} to review the documentation. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Audio|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse-git}}{{Broken package link|package not found}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or individual applications) when using WebRTC (e.g. on Google Hangouts). On Wayland, the sharing mechanism is handled differently for security reasons. PipeWire enables sharing content under Wayland with fine-grained access controls.<br />
<br />
This requires {{Pkg|xdg-desktop-portal}} and one of its backends [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland to be installed]. The available backends are:<br />
<br />
* {{Pkg|xdg-desktop-portal-gtk}} for GNOME.<br />
* {{Pkg|xdg-desktop-portal-kde}} for KDE.<br />
* {{Pkg|xdg-desktop-portal-wlr}} for Wlroots-based compositor (e.g. [[Sway]], dwl)<br />
<br />
Firefox (84+) supports this method by default, while on Chromium (73+) one needs to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] by setting the corresponding (experimental) flag at the following URL<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
For {{ic|xdg-desktop-portal-wlr}} to work you need to set {{ic|XDG_CURRENT_DESKTOP}}[https://github.com/emersion/xdg-desktop-portal-wlr#running]:<br />
export XDG_CURRENT_DESKTOP=sway<br />
<br />
Note, since Chromium is currently using PipeWire 0.2 whereas Arch ships PipeWire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Tip|To share an individual monitor with {{ic|xdg-desktop-portal-wlr}} if you have more than one, you can add the {{ic|1=--output=''Monitor''}} flag to it by [[Systemd#Editing_provided_units|editing]] the {{ic|1=ExecStart=}} option in the unit's service file. The complete line could look like {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}}}}<br />
<br />
{{Accuracy|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged, the following note about specific app/window sharing may be not correct anymore for {{Pkg|xdg-desktop-portal-gtk}}. Also see the ticket tracking the discussion at [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204].}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows][https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production-ready, it is safe to play around with. Most applications that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box thanks to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio ===<br />
<br />
PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information.<br />
<br />
==== ALSA/Legacy applications ====<br />
<br />
Install {{pkg|pipewire-alsa}} to route all application using the ALSA API through PipeWire.<br />
<br />
==== PulseAudio clients ====<br />
<br />
Install {{pkg|pipewire-pulse}}. Normally, no further action is needed, as the user service {{ic|pipewire-pulse.socket}} should be enabled automatically by the package. If PipeWire does not work correctly on system startup, validate that the user services {{ic|pipewire-pulse.service}} and {{ic|pipewire.service}} are up and running. See [[Systemd/User]].<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== JACK clients ====<br />
<br />
Install {{pkg|pipewire-jack}} and use {{ic|pw-jack}} to launch JACK clients with the compatible libraries instead of the original {{ic|libjack*}}:<br />
<br />
pw-jack ''application''<br />
<br />
It's also possible to request a custom buffer size by setting a quotient of buffersize/samplerate (which equals the block latency in seconds):<br />
<br />
PIPEWIRE_LATENCY="128/48000" pw-jack ''application''<br />
<br />
Alternatively, install {{aur|pipewire-jack-dropin}} or uninstall {{pkg|jack}}/{{pkg|jack2}} to let JACK clients load the compatible libraries automatically.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
==== Bluetooth devices ====<br />
<br />
PipeWire handles Bluetooth audio devices if the {{pkg|pipewire-pulse}} package is installed. More specifically, the media session daemon checks for {{ic|/etc/pipewire/media-session.d/with-pulseaudio}}, and enables its {{ic|bluez5}} module automatically if the file exists.<br />
<br />
==== Run PipeWire on top of native JACK ====<br />
<br />
PipeWire can also run as a JACK client on top of the native JACK daemon if desired. See [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] for more information.<br />
<br />
== Audio post-processing ==<br />
<br />
=== PulseEffects ===<br />
<br />
{{Warning|Currently, the {{pkg|pulseeffects}} package is missing required dependencies to run on PipeWire, and will fail to launch with the error {{ic|Failed to get required plugin: pipewiresrc}}. See {{Bug|69437}} and {{Bug|69521}}.<br />
<br />
Either use {{aur|pulseeffects-git}}, which has the required dependencies, or install {{pkg|pipewire-pulse}} and {{pkg|gst-plugin-pipewire}}.<br />
}}<br />
<br />
PulseEffects is a GTK utility which provides a large array of audio effects and filters to individual application output streams and microphone input streams. Notable effects include an input/output equalizer, output loudness equalization and bass enhancement, and input de-esser and noise reduction plug-in. See [https://github.com/wwmm/pulseeffects the GitHub page] for a full list of effects.<br />
<br />
To use, install {{pkg|pulseeffects}} or {{aur|pulseeffects-git}}.<br />
<br />
See [https://github.com/wwmm/pulseeffects/wiki/Community-presets Community Presets] for a collection of preset configurations.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Microphone is not detected by PipeWire ===<br />
<br />
PipeWire's {{ic|alsa-monitor}} module uses {{pkg|alsa-card-profiles}} to detect devices by default. If this isn't working for you, try to turn off {{ic|api.alsa.use-acp}}, or optionally turn on {{ic|api.alsa.use-ucm}} in {{ic|/etc/pipewire/media-session.d/alsa-monitor.conf}}, under {{ic|rules}} -> the first rule -> {{ic|actions}} -> {{ic|update-props}}:<br />
<br />
...<br />
update-props = {<br />
api.alsa.use-acp = false<br />
...<br />
<br />
Then, restart pipewire and check available devices:<br />
<br />
{{hc|1=<br />
$ pw-record --list-targets<br />
|2=<br />
Available targets ("*" denotes default): 62<br />
58: description="Built-in Audio" prio=1872<br />
60: description="Built-in Audio" prio=2000<br />
* 62: description="Built-in Audio (Loopback PCM)" prio=1984<br />
}}<br />
<br />
=== No sound after connecting to Bluetooth device ===<br />
<br />
As of 2020-12-07, if there is no sound after connecting a Bluetooth device, you might need to switch the default sink and/or move a sink input to the correct sink. Use {{ic|pactl set-default-sink}} to set the sink and {{ic|pactl list sinks}} to list the available ones. This can be automated via [[udev]] using a script similar to [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e this one].<br />
<br />
See this [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit thread] for a discussion of the issue. According to author of the script, the headset profile (HSP) might still have problems.<br />
<br />
=== Low volume ===<br />
<br />
After replacing PulseAudio with Pipewire, sound worked fine, but after a reboot, the volume was intolerably low.<br />
<br />
Open {{ic|alsamixer}}, use {{ic|F6}} to select the proper soundcard, and make sure the ALSA volumes are at 100%. {{ic|alsactl}} should maintain this setting after reboot.<br />
<br />
=== Increasing RLIMIT_MEMLOCK ===<br />
<br />
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK<br />
<br />
Install {{pkg|realtime-privileges}} and add your own user to the {{ic|realtime}} group.<br />
<br />
Alternatively, increasing memlock from 64kB to 128kB seems enough to fix this. If you are running {{ic|pipewire-pulse}} under [[systemd/User]], add:<br />
<br />
username soft memlock 64<br />
username hard memlock 128<br />
<br />
to {{ic|/etc/security/limits.d/username.conf}}<br />
<br />
=== External sound card not activated after reconnect ===<br />
<br />
Check {{ic|~/.config/pipewire-media-session/default-profile}} if there is any entry with default profile "off" and remove it. If that does not help, remove all files from {{ic|~/.config/pipewire-media-session/}} and restart PipeWire using {{ic|systemctl --user restart pipewire.service}}.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>CBiXhttps://wiki.archlinux.org/index.php?title=PipeWire&diff=652093PipeWire2021-02-12T18:52:57Z<p>CBiX: /* JACK clients */ Optionally uninstall jack/jack2 to have JACK apps load libjack from PW</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[fi:PipeWire]]<br />
[[ja:PipeWire]]<br />
{{Related articles start}}<br />
{{Related|PipeWire/Examples}}<br />
{{Related articles end}}<br />
<br />
[http://pipewire.org PipeWire] is a new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a [[Polkit]]-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories.<br />
<br />
Pipewire uses [[Systemd/User]] for management of the server and automatic socket activation. See the respective [[Systemd/User]] for more details on the startup behavior and logging of the service.<br />
<br />
Optionally, install {{pkg|pipewire-docs}} to review the documentation. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Audio|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse-git}}{{Broken package link|package not found}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or individual applications) when using WebRTC (e.g. on Google Hangouts). On Wayland, the sharing mechanism is handled differently for security reasons. PipeWire enables sharing content under Wayland with fine-grained access controls.<br />
<br />
This requires {{Pkg|xdg-desktop-portal}} and one of its backends [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland to be installed]. The available backends are:<br />
<br />
* {{Pkg|xdg-desktop-portal-gtk}} for GNOME.<br />
* {{Pkg|xdg-desktop-portal-kde}} for KDE.<br />
* {{Pkg|xdg-desktop-portal-wlr}} for Wlroots-based compositor (e.g. [[Sway]], dwl)<br />
<br />
Firefox (84+) supports this method by default, while on Chromium (73+) one needs to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] by setting the corresponding (experimental) flag at the following URL<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
For {{ic|xdg-desktop-portal-wlr}} to work you need to set {{ic|XDG_CURRENT_DESKTOP}}[https://github.com/emersion/xdg-desktop-portal-wlr#running]:<br />
export XDG_CURRENT_DESKTOP=sway<br />
<br />
Note, since Chromium is currently using PipeWire 0.2 whereas Arch ships PipeWire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Tip|To share an individual monitor with {{ic|xdg-desktop-portal-wlr}} if you have more than one, you can add the {{ic|1=--output=''Monitor''}} flag to it by [[Systemd#Editing_provided_units|editing]] the {{ic|1=ExecStart=}} option in the unit's service file. The complete line could look like {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}}}}<br />
<br />
{{Accuracy|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged, the following note about specific app/window sharing may be not correct anymore for {{Pkg|xdg-desktop-portal-gtk}}. Also see the ticket tracking the discussion at [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204].}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows][https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production-ready, it is safe to play around with. Most applications that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box thanks to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio ===<br />
<br />
PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information.<br />
<br />
==== ALSA/Legacy applications ====<br />
<br />
Install {{pkg|pipewire-alsa}} to route all application using the ALSA API through PipeWire.<br />
<br />
==== PulseAudio clients ====<br />
<br />
Install {{pkg|pipewire-pulse}}. Normally, no further action is needed, as the user service {{ic|pipewire-pulse.socket}} should be enabled automatically by the package. If PipeWire does not work correctly on system startup, validate that the user services {{ic|pipewire-pulse.service}} and {{ic|pipewire.service}} are up and running. See [[Systemd/User]].<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== JACK clients ====<br />
<br />
Install {{pkg|pipewire-jack}} and use {{ic|pw-jack}} to launch JACK clients with the compatible libraries instead of the original {{ic|libjack*}}:<br />
<br />
pw-jack ''application''<br />
<br />
Alternatively, install {{aur|pipewire-jack-dropin}} or uninstall {{pkg|jack}}/{{pkg|jack2}} to let JACK clients load the compatible libraries automatically.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
==== Bluetooth devices ====<br />
<br />
PipeWire handles Bluetooth audio devices if the {{pkg|pipewire-pulse}} package is installed. More specifically, the media session daemon checks for {{ic|/etc/pipewire/media-session.d/with-pulseaudio}}, and enables its {{ic|bluez5}} module automatically if the file exists.<br />
<br />
==== Run PipeWire on top of native JACK ====<br />
<br />
PipeWire can also run as a JACK client on top of the native JACK daemon if desired. See [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] for more information.<br />
<br />
== Troubleshooting ==<br />
=== Microphone is not detected by PipeWire ===<br />
<br />
PipeWire's {{ic|alsa-monitor}} module uses {{pkg|alsa-card-profiles}} to detect devices by default. If this isn't working for you, try to turn off {{ic|api.alsa.use-acp}}, or optionally turn on {{ic|api.alsa.use-ucm}} in {{ic|/etc/pipewire/media-session.d/alsa-monitor.conf}}, under {{ic|rules}} -> the first rule -> {{ic|actions}} -> {{ic|update-props}}:<br />
<br />
...<br />
update-props = {<br />
api.alsa.use-acp = false<br />
...<br />
<br />
Then, restart pipewire and check available devices:<br />
<br />
{{hc|1=<br />
$ pw-record --list-targets<br />
|2=<br />
Available targets ("*" denotes default): 62<br />
58: description="Built-in Audio" prio=1872<br />
60: description="Built-in Audio" prio=2000<br />
* 62: description="Built-in Audio (Loopback PCM)" prio=1984<br />
}}<br />
<br />
=== No sound after connecting to Bluetooth device ===<br />
<br />
As of 2020-12-07, if there is no sound after connecting a Bluetooth device, you might need to switch the default sink and/or move a sink input to the correct sink. Use {{ic|pactl set-default-sink}} to set the sink and {{ic|pactl list sinks}} to list the available ones. This can be automated via [[udev]] using a script similar to [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e this one].<br />
<br />
See this [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit thread] for a discussion of the issue. According to author of the script, the headset profile (HSP) might still have problems.<br />
<br />
=== Low volume ===<br />
<br />
After replacing PulseAudio with Pipewire, sound worked fine, but after a reboot, the volume was intolerably low.<br />
<br />
Open {{ic|alsamixer}}, use {{ic|F6}} to select the proper soundcard, and make sure the ALSA volumes are at 100%. {{ic|alsactl}} should maintain this setting after reboot.<br />
<br />
=== Increasing RLIMIT_MEMLOCK ===<br />
<br />
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK<br />
<br />
Install {{pkg|realtime-privileges}} and add your own user to the {{ic|realtime}} group.<br />
<br />
Alternatively, increasing memlock from 64kB to 128kB seems enough to fix this. If you are running {{ic|pipewire-pulse}} under [[systemd/User]], add:<br />
<br />
username soft memlock 64<br />
username hard memlock 128<br />
<br />
to {{ic|/etc/security/limits.d/username.conf}}, and:<br />
<br />
LimitMEMLOCK=131072<br />
<br />
to {{ic|pipewire-pulse.service}}.<br />
<br />
=== External sound card not activated after reconnect ===<br />
<br />
Check {{ic|~/.config/pipewire-media-session/default-profile}} if there is any entry with default profile "off" and remove it. If that does not help, remove all files from {{ic|~/.config/pipewire-media-session/}} and restart PipeWire using {{ic|systemctl --user restart pipewire.service}}.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>CBiXhttps://wiki.archlinux.org/index.php?title=PipeWire&diff=652085PipeWire2021-02-12T16:09:15Z<p>CBiX: /* Troubleshooting */ default profile "off" issue</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[fi:PipeWire]]<br />
[[ja:PipeWire]]<br />
{{Related articles start}}<br />
{{Related|PipeWire/Examples}}<br />
{{Related articles end}}<br />
<br />
[http://pipewire.org PipeWire] is a new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a [[Polkit]]-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories.<br />
<br />
Pipewire uses [[Systemd/User]] for management of the server and automatic socket activation. See the respective [[Systemd/User]] for more details on the startup behavior and logging of the service.<br />
<br />
Optionally, install {{pkg|pipewire-docs}} to review the documentation. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Audio|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse-git}}{{Broken package link|package not found}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or individual applications) when using WebRTC (e.g. on Google Hangouts). On Wayland, the sharing mechanism is handled differently for security reasons. PipeWire enables sharing content under Wayland with fine-grained access controls.<br />
<br />
This requires {{Pkg|xdg-desktop-portal}} and one of its backends [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland to be installed]. The available backends are:<br />
<br />
* {{Pkg|xdg-desktop-portal-gtk}} for GNOME.<br />
* {{Pkg|xdg-desktop-portal-kde}} for KDE.<br />
* {{Pkg|xdg-desktop-portal-wlr}} for Wlroots-based compositor (e.g. [[Sway]], dwl)<br />
<br />
Firefox (84+) supports this method by default, while on Chromium (73+) one needs to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] by setting the corresponding (experimental) flag at the following URL<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
For {{ic|xdg-desktop-portal-wlr}} to work you need to set {{ic|XDG_CURRENT_DESKTOP}}[https://github.com/emersion/xdg-desktop-portal-wlr#running]:<br />
export XDG_CURRENT_DESKTOP=sway<br />
<br />
Note, since Chromium is currently using PipeWire 0.2 whereas Arch ships PipeWire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Tip|To share an individual monitor with {{ic|xdg-desktop-portal-wlr}} if you have more than one, you can add the {{ic|1=--output=''Monitor''}} flag to it by [[Systemd#Editing_provided_units|editing]] the {{ic|1=ExecStart=}} option in the unit's service file. The complete line could look like {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}}}}<br />
<br />
{{Accuracy|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged, the following note about specific app/window sharing may be not correct anymore for {{Pkg|xdg-desktop-portal-gtk}}. Also see the ticket tracking the discussion at [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204].}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows][https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production-ready, it is safe to play around with. Most applications that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box thanks to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio ===<br />
<br />
PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information.<br />
<br />
==== ALSA/Legacy applications ====<br />
<br />
Install {{pkg|pipewire-alsa}} to route all application using the ALSA API through PipeWire.<br />
<br />
==== PulseAudio clients ====<br />
<br />
Install {{pkg|pipewire-pulse}}. Normally, no further action is needed, as the user service {{ic|pipewire-pulse.socket}} should be enabled automatically by the package. If PipeWire does not work correctly on system startup, validate that the user services {{ic|pipewire-pulse.service}} and {{ic|pipewire.service}} are up and running. See [[Systemd/User]].<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== JACK clients ====<br />
<br />
Install {{pkg|pipewire-jack}} and use {{ic|pw-jack}} to launch JACK clients with the compatible libraries instead of the original {{ic|libjack*}}:<br />
<br />
pw-jack ''application''<br />
<br />
Alternatively, install {{aur|pipewire-jack-dropin}} to let JACK clients load the compatible libraries automatically.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
==== Bluetooth devices ====<br />
<br />
PipeWire handles Bluetooth audio devices if the {{pkg|pipewire-pulse}} package is installed. More specifically, the media session daemon checks for {{ic|/etc/pipewire/media-session.d/with-pulseaudio}}, and enables its {{ic|bluez5}} module automatically if the file exists.<br />
<br />
==== Run PipeWire on top of native JACK ====<br />
<br />
PipeWire can also run as a JACK client on top of the native JACK daemon if desired. See [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] for more information.<br />
<br />
== Troubleshooting ==<br />
=== Microphone is not detected by PipeWire ===<br />
<br />
PipeWire's {{ic|alsa-monitor}} module uses {{pkg|alsa-card-profiles}} to detect devices by default. If this isn't working for you, try to turn off {{ic|api.alsa.use-acp}}, or optionally turn on {{ic|api.alsa.use-ucm}} in {{ic|/etc/pipewire/media-session.d/alsa-monitor.conf}}, under {{ic|rules}} -> the first rule -> {{ic|actions}} -> {{ic|update-props}}:<br />
<br />
...<br />
update-props = {<br />
api.alsa.use-acp = false<br />
...<br />
<br />
Then, restart pipewire and check available devices:<br />
<br />
{{hc|1=<br />
$ pw-record --list-targets<br />
|2=<br />
Available targets ("*" denotes default): 62<br />
58: description="Built-in Audio" prio=1872<br />
60: description="Built-in Audio" prio=2000<br />
* 62: description="Built-in Audio (Loopback PCM)" prio=1984<br />
}}<br />
<br />
=== No sound after connecting to Bluetooth device ===<br />
<br />
As of 2020-12-07, if there is no sound after connecting a Bluetooth device, you might need to switch the default sink and/or move a sink input to the correct sink. Use {{ic|pactl set-default-sink}} to set the sink and {{ic|pactl list sinks}} to list the available ones. This can be automated via [[udev]] using a script similar to [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e this one].<br />
<br />
See this [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit thread] for a discussion of the issue. According to author of the script, the headset profile (HSP) might still have problems.<br />
<br />
=== Low volume ===<br />
<br />
After replacing PulseAudio with Pipewire, sound worked fine, but after a reboot, the volume was intolerably low.<br />
<br />
Open {{ic|alsamixer}}, use {{ic|F6}} to select the proper soundcard, and make sure the ALSA volumes are at 100%. {{ic|alsactl}} should maintain this setting after reboot.<br />
<br />
=== Increasing RLIMIT_MEMLOCK ===<br />
<br />
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK<br />
<br />
Install {{pkg|realtime-privileges}} and add your own user to the {{ic|realtime}} group.<br />
<br />
Alternatively, increasing memlock from 64kB to 128kB seems enough to fix this. If you are running {{ic|pipewire-pulse}} under [[systemd/User]], add:<br />
<br />
username soft memlock 64<br />
username hard memlock 128<br />
<br />
to {{ic|/etc/security/limits.d/username.conf}}, and:<br />
<br />
LimitMEMLOCK=131072<br />
<br />
to {{ic|pipewire-pulse.service}}.<br />
<br />
=== External sound card not activated after reconnect ===<br />
<br />
* Check {{ic|~/.config/pipewire-media-session/default-profile}} if there is any entry with default profile "off" and remove it. If that doesn't help, remove all files from {{ic|~/.config/pipewire-media-session}} and restart PipeWire using {{ic|systemctl --user restart pipewire}}.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>CBiXhttps://wiki.archlinux.org/index.php?title=Wayland&diff=651623Wayland2021-02-08T21:50:11Z<p>CBiX: /* GLEW */ glew-wayland currently doesn't provide glew</p>
<hr />
<div>[[Category:Graphical user interfaces]]<br />
[[es:Wayland]]<br />
[[fr:Wayland]]<br />
[[ja:Wayland]]<br />
[[pt:Wayland]]<br />
[[ru:Wayland]]<br />
[[zh-hans:Wayland]]<br />
{{Related articles start}}<br />
{{Related|KMS}}<br />
{{Related|Xorg}}<br />
{{Related|Screen capture#Wayland}}<br />
{{Related articles end}}<br />
<br />
[https://wayland.freedesktop.org/ Wayland] is a display server protocol. It is aimed to become the successor of the [[X Window System]]. You can find a [[Wikipedia:Wayland_(display_server_protocol)#Differences_between_Wayland_and_X|comparison between Wayland and Xorg on Wikipedia]].<br />
<br />
Display servers using the Wayland protocol are called '''compositors''' because they also act as [[Wikipedia:Compositing_window_manager|compositing window managers]]. Below you can find a [[#Compositors|list of Wayland compositors]].<br />
<br />
For backwards compatibility to seamlessly run legacy [[X11]] applications, [[#XWayland|XWayland]] can be used, which provides an X Server in Wayland.<br />
<br />
== Requirements ==<br />
<br />
Most Wayland compositors only work on systems using [[Kernel mode setting]]. Wayland by itself does not provide a graphical environment; for this you also need a compositor (see the following section), or a desktop environment that includes a compositor (e.g. [[GNOME]] or [[KDE]]).<br />
<br />
For the GPU driver and Wayland compositor to be compatible they must support the same buffer API. There are two main APIs: [[Wikipedia:Generic Buffer Management|GBM]] and [https://www.phoronix.com/scan.php?page=news_item&px=XDC2016-Device-Memory-API EGLStreams].<br />
<br />
{| class="wikitable"<br />
|-<br />
! Buffer API !! GPU driver support !! Wayland compositor support<br />
|-<br />
| GBM || All except [[NVIDIA]] || All<br />
|-<br />
| EGLStreams || [[NVIDIA]] || [[GNOME]], [[KDE]], [[Weston#EGLstream_support_(for_proprietary_Nvidia_Driver)|Weston]] (with a third-party patch)<br />
|-<br />
|}<br />
<br />
== Compositors ==<br />
<br />
See [[Window manager#Types]] for the difference between '''Tiling''' and '''Stacking'''.<br />
<br />
=== Tiling ===<br />
<br />
* {{App|[[Cagebreak]]|Based on cage, inspired by [[ratpoison]].|https://github.com/project-repo/cagebreak|{{AUR|cagebreak}} {{AUR|cagebreak-bin}}}}<br />
* {{App|Cardboard|Scrolling compositor, inspired by PaperWM, based on wlroots.|https://gitlab.com/cardboardwm/cardboard}}<br />
* {{App|dwl|[[dwm]]-like Wayland compositor based on wlroots.|https://github.com/djpohly/dwl|{{AUR|dwl}}}}<br />
* {{App|japokwm|Dynamic wayland tiling compositor based around creating layouts, based on wlroots.|https://github.com/werererer/japokwm}}<br />
* {{App|river|Dynamic tiling Wayland compositor inspired by dwm and [[bspwm]].|https://github.com/ifreund/river|{{AUR|river-git}}}}<br />
* {{App|[[Sway]]|[[i3]]-compatible Wayland compositor based on wlroots.|https://github.com/swaywm/sway|{{Pkg|sway}}}}<br />
* {{App|[[Velox]]|Simple window manager based on swc, inspired by dwm and [[xmonad]].|https://github.com/michaelforney/velox|{{AUR|velox}}}}<br />
* {{App|waymonad|Wayland compositor inspired by xmonad written in [[Haskell]].|https://github.com/waymonad/waymonad}}<br />
<br />
=== Stacking ===<br />
<br />
* {{App|[[Enlightenment]]|See [[Enlightenment#Manually]]. More Info: [https://git.enlightenment.org/core/enlightenment.git/tree/README] [https://www.enlightenment.org/about-wayland]|https://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
* {{App|Greenfield|Runs in a web browser and can display remote applications.|https://greenfield.app/}}<br />
* {{App|Grefsen|Qt/Wayland compositor providing a minimal desktop environment.|https://github.com/ec1oud/grefsen}}<br />
* {{App|hikari|wlroots-based compositor inspired by [[cwm]] which is actively developed on FreeBSD but also supports Linux.|https://hikari.acmelabs.space/|{{AUR|hikari}}}}<br />
* {{App|KDE [[w:KWin|KWin]]|See [[KDE#Starting Plasma]].|https://userbase.kde.org/KWin|{{Pkg|kwin}}}}<br />
* {{App|Liri Shell|Part of [[Liri]], built using QtQuick and QtCompositor as a compositor for Wayland.|https://github.com/lirios/shell|{{AUR|liri-shell-git}}}}<br />
* {{App|labwc|wlroots-based compositor inspired by Openbox.|https://github.com/johanmalm/labwc|{{AUR|labwc-git}}}}<br />
* {{App|[[w:Mutter (software)|Mutter]]|See [[GNOME#Starting]].|https://gitlab.gnome.org/GNOME/mutter|{{Pkg|mutter}}}}<br />
* {{App|wayfire|3D compositor inspired by [[Compiz]] and based on wlroots.|https://wayfire.org/|{{AUR|wayfire}}}}<br />
* {{App|[[Weston]]|reference implementation of a Wayland compositor.|https://gitlab.freedesktop.org/wayland/weston|{{Pkg|weston}}}}<br />
* {{App|wio|wlroots-based compositor that aims to replicate the look and feel of Plan 9's Rio desktop.|https://wio-project.org/}}<br />
<br />
=== Other ===<br />
<br />
* {{App|Cage|Displays a single fullscreen application like a kiosk.|https://www.hjdskes.nl/projects/cage/|{{Pkg|cage}}}}<br />
* {{App|Maze Compositor|Renders windows in a 3D maze using Qt.|https://github.com/imbavirus/mazecompositor}}<br />
* {{App|Motorcar| Wayland compositor to explore 3D windowing using virtual reality.|https://github.com/evil0sheep/motorcar}}<br />
<br />
Some of the above may support [[display manager]]s. Check {{ic|/usr/share/wayland-sessions/''compositor''.desktop}} to see how they are started.<br />
<br />
== Display managers ==<br />
<br />
Display managers listed below support launching Wayland compositors. The "Type" column indicates whether the display manager supports running itself on Wayland or not.<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Type<br />
! Description<br />
|-<br />
| [[GDM]]<br />
| Runs on Wayland<br />
| [[GNOME]] display manager.<br />
|-<br />
| [[greetd]]<br />
| Login daemon<br />
| Minimal and flexible login daemon.<br />
|-<br />
| [[LightDM]]<br />
| Runs on X11<br />
| Cross-desktop display manager.<br />
|-<br />
| [[Ly]]<br />
| Runs in console<br />
| TUI display manager written in C<br />
|-<br />
| [[SDDM]]<br />
| Runs on X11<br />
| QML-based display manager.<br />
|-<br />
| [[tbsm]]<br />
| Runs in console<br />
| Simple CLI session launcher written in pure bash.<br />
|}<br />
<br />
== GUI libraries ==<br />
<br />
See details on the [https://wayland.freedesktop.org/toolkits.html official website].<br />
<br />
=== GTK ===<br />
<br />
The {{Pkg|gtk3}} and {{Pkg|gtk4}} packages have the Wayland backend enabled. GTK will default to the Wayland backend, but it is possible to override it to Xwayland by modifying an environment variable: {{ic|1=GDK_BACKEND=x11}}.<br />
<br />
=== Qt ===<br />
<br />
To enable Wayland support in [[Qt]] 5 or 6, install the {{Pkg|qt5-wayland}} or {{Pkg|qt6-wayland}} package, respectively.<br />
<br />
To run a Qt application with the Wayland plugin [https://wiki.qt.io/QtWayland#How_do_I_use_QtWayland.3F], use {{ic|1=-platform wayland}} or {{ic|1=QT_QPA_PLATFORM=wayland}} [[environment variable]]. To force the usage of [[X11]] on a Wayland session, use {{ic|1=QT_QPA_PLATFORM=xcb}}. This might be necessary for some proprietary applications that do not use the system's implementation of Qt, such as {{AUR|zoom}}.<br />
<br />
On some compositors, for example [[sway]], Qt applications running natively might have missing functionality. For example, [https://keepassxc.org KeepassXC] will be unable to minimize to tray. This can be solved by installing {{Pkg|qt5ct}} and setting {{ic|1=QT_QPA_PLATFORMTHEME=qt5ct}} before running the application.<br />
<br />
=== Clutter ===<br />
<br />
The Clutter toolkit has a Wayland backend that allows it to run as a Wayland client. The backend is enabled in the {{Pkg|clutter}} package.<br />
<br />
To run a Clutter application on Wayland, set {{ic|1=CLUTTER_BACKEND=wayland}}.<br />
<br />
=== SDL2 ===<br />
<br />
To run a SDL2 application on Wayland, set {{ic|1=SDL_VIDEODRIVER=wayland}}.<br />
<br />
{{Note|Many proprietary games come bundled with old versions of SDL, which do not support Wayland and might break entirely if you set {{ic|1=SDL_VIDEODRIVER=wayland}}. To force the application to run with XWayland, set {{ic|1=SDL_VIDEODRIVER=x11}}.}}<br />
<br />
=== GLFW ===<br />
<br />
To use GLFW with the Wayland backend, install the {{Pkg|glfw-wayland}} package (instead of {{Pkg|glfw-x11}}).<br />
<br />
=== GLEW ===<br />
<br />
The {{Pkg|glew-wayland}} package currently still doesn't work with a lot of GLEW-based applications, so the only option is to {{Pkg|glew}} with Xwayland. See [https://bugs.archlinux.org/task/62713].<br />
<br />
=== EFL ===<br />
<br />
EFL has complete Wayland support. To run a EFL application on Wayland, see Wayland [https://wayland.freedesktop.org/efl.html project page].<br />
<br />
=== winit ===<br />
<br />
Winit is window handling library in Rust. It will default to the Wayland backend, but it is possible to override it to Xwayland by modifying an environment variable: {{ic|1=WINIT_UNIX_BACKEND=x11}}.<br />
<br />
== XWayland ==<br />
<br />
[https://wayland.freedesktop.org/xserver.html XWayland] is an X Server that runs under Wayland. It provides backwards compatibility for legacy [[X11]] applications.<br />
<br />
In order to use it, [[install]] the {{Pkg|xorg-xwayland}} package.<br />
<br />
XWayland is started via a compositor, so you should check for XWayland compatibility and instructions on how to start XWayland, with the compositor of your choice.<br />
<br />
{{Note| <br />
* Regarding Security: XWayland is an X Server, so it does not have the security features of Wayland!<br />
* For now the Nvidia proprietary driver does not support GPU acceleration for XWayland. See [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6429 this] or [https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/587 this] pull request for the status of XWayland support.<br />
}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Color correction ===<br />
<br />
See [[Backlight#Color correction]].<br />
<br />
=== Slow motion, graphical glitches, and crashes ===<br />
<br />
Gnome-shell users may experience display issues when they switch to Wayland from X. One of the root cause might be the {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} set by yourself for Xorg-based gnome-shell. Just try to remove it from {{ic|/etc/environment}} or other rc files to see if everything goes back to normal.<br />
<br />
=== Cannot open display: :0 with Electron-based applications ===<br />
<br />
Make sure you have not set GDK_BACKEND=wayland. Setting it globally will break Electron apps.<br />
<br />
=== Remote display ===<br />
<br />
* (20200206) {{pkg|wlroots}} (used by [[sway]]) offers an VNC backend via {{AUR|wayvnc}} since version 0.10. RDP backend has been removed. [https://github.com/swaywm/wlroots/releases/tag/0.10.0].<br />
* (20180401) {{pkg|mutter}} has now remote desktop enabled at compile time, see [https://wiki.gnome.org/Projects/Mutter/RemoteDesktop] and {{Pkg|gnome-remote-desktop}} for details.<br />
* There was a merge of FreeRDP into Weston in 2013, enabled via a compile flag. The {{Pkg|weston}} package has it enabled since version 6.0.0.<br />
* {{AUR|waypipe-git}} is a transparent proxy for Wayland applications, with a wrapper command to run over [[SSH]]<br />
<br />
=== Input grabbing in games, remote desktop and VM windows ===<br />
<br />
In contrast to Xorg, Wayland does not allow exclusive input device grabbing, also known as active or explicit grab (e.g. [https://tronche.com/gui/x/xlib/input/XGrabKeyboard.html keyboard], [https://tronche.com/gui/x/xlib/input/XGrabPointer.html mouse]), instead, it depends on the Wayland compositor to pass keyboard shortcuts and confine the pointer device to the application window.<br />
<br />
This change in input grabbing breaks current applications' behavior, meaning:<br />
<br />
* Hotkey combinations and modifiers will be caught by the compositor and will not be sent to remote desktop and virtual machine windows.<br />
* The mouse pointer will not be restricted to the application's window which might cause a parallax effect where the location of the mouse pointer inside the window of the virtual machine or remote desktop is displaced from the host's mouse pointer.<br />
<br />
Wayland solves this by adding protocol extensions for Wayland and XWayland. Support for these extensions is needed to be added to the Wayland compositors. In the case of native Wayland clients, the used widget toolkits (e.g GTK, Qt) needs to support these extensions or the applications themselves if no widget toolkit is being used. In the case of Xorg applications, no changes in the applications or widget toolkits are needed as the XWayland support is enough.<br />
<br />
These extensions are already included in {{pkg|wayland-protocols}}, and supported by {{pkg|xorg-server-xwayland}}{{Broken package link|replaced by {{Pkg|xorg-xwayland}}}} 1.20.<br />
<br />
The related extensions are:<br />
<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml XWayland keyboard grabbing protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml Compositor shortcuts inhibit protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/relative-pointer/relative-pointer-unstable-v1.xml Relative pointer protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml Pointer constraints protocol]<br />
<br />
Supporting Wayland compositors:<br />
<br />
* Mutter, [[GNOME]]'s compositor [https://bugzilla.gnome.org/show_bug.cgi?id=783342 since release 3.28]<br />
* wlroots supports relative-pointer and pointer-constraints<br />
<br />
Supporting widget toolkits:<br />
<br />
* GTK since release 3.22.18.<br />
<br />
== See also ==<br />
<br />
* [[Fedora:How to debug Wayland problems]]<br />
* [[Cursor themes]]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=107499 Arch Linux forum discussion]<br />
* [https://wayland.freedesktop.org/docs/html/ Wayland documentation online]<br />
* [https://awesomeopensource.com/projects/wayland Awesome Wayland projects]<br />
* [https://gitlab.freedesktop.org/wayland Official Wayland Gitlab]<br />
* [https://github.com/swaywm/sway/wiki/i3-Migration-Guide#common-x11-apps-used-on-i3-with-wayland-alternatives i3 Migration Guide - Common X11 apps used on i3 with Wayland alternatives]</div>CBiXhttps://wiki.archlinux.org/index.php?title=JACK_Audio_Connection_Kit&diff=643328JACK Audio Connection Kit2020-12-04T19:13:38Z<p>CBiX: Start/control a2jmidid through dbus</p>
<hr />
<div>[[Category:Sound]]<br />
[[fr:Jack]]<br />
[[es:JACK Audio Connection Kit]]<br />
[[ja:JACK Audio Connection Kit]]<br />
{{Related articles start}}<br />
{{Related|Sound system}}<br />
{{Related|Professional audio}}<br />
{{Related articles end}}<br />
From [[Wikipedia:JACK Audio Connection Kit]]:<br />
:JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server daemon that provides real-time, low-latency connections for both audio and MIDI data between applications that implement its API. <br />
<br />
==Installation==<br />
In order for JACK to work properly, your user needs to be [[Users and groups#Group management|added]] to the {{ic|realtime}} group for access to higher ulimits defined in {{ic|/etc/security/limits.d/99-realtime-privileges.conf}} (provided by the {{Pkg|realtime-privileges}} package), which is needed for realtime audio processing.<br />
{{Note|You need to manually add your user to the {{ic|realtime}} group even if you're using logind, since logind just handles access to direct hardware.}}<br />
<br />
There are two JACK implementations, see [https://github.com/jackaudio/jackaudio.github.com/wiki/Differences-between-jack1-and-jack2 this comparison] for the difference between the two. In short, Jack 1 and Jack 2 are equivalent implementations of the same protocol. Programs compiled against Jack 1 will work with Jack 2 without recompile (and vice versa). <br />
<br />
===JACK2===<br />
'''JACK2''' is a C++ implementation with SMP support. [[Install]] it with the {{Pkg|jack2}} package. For 32-bit application support, also install the {{Pkg|lib32-jack2}} package from the [[multilib]] repository. To use the ''jack_control'' command, also install the {{Pkg|python-dbus}} package.<br />
<br />
===JACK===<br />
'''JACK''' uses a C API and supports more than one soundcard on Linux (plus MIDI). [[Install]] it with the {{pkg|jack}} package. For 32-bit application support, also install the {{Pkg|lib32-jack}} package from the [[multilib]] repository.<br />
<br />
===GUI===<br />
<br />
* {{App|Cadence|Set of tools useful for audio production. It performs system checks, manages JACK, calls other tools and make system tweaks.|https://kx.studio/Applications:Cadence|{{Pkg|cadence}}}}<br />
* {{App|Carla|Fully-featured plugin host, with support for many audio drivers and plugin formats.|https://kx.studio/Applications:Carla|{{Pkg|carla}}}}<br />
* {{App|Patchage|Modular patch bay for audio and MIDI systems based on JACK and ALSA.|https://drobilla.net/software/patchage|{{Pkg|patchage}}}}<br />
* {{App|PatchMatrix|JACK patch bay in flow matrix style.|https://git.open-music-kontrollers.ch/lad/patchmatrix/about/|{{Pkg|patchmatrix}}}}<br />
* {{App|QjackCtl|Simple Qt application to control the JACK sound server daemon.|https://qjackctl.sourceforge.io/|{{Pkg|qjackctl}}}}<br />
* {{App|Studio-Controls|A JACK audio setup utility with USB device and PulseAudio bridges.|https://github.com/ovenwerks/studio-controls/|{{AUR|studio-controls-git}}}}<br />
<br />
==Basic Configuration==<br />
<br />
===Overview===<br />
The right configuration for your hardware and application needs depends on several factors. Your sound card and CPU will heavily affect how low of latency you can achieve when using JACK.<br />
<br />
The mainline Linux kernel now supports realtime scheduling, so using a patched kernel is no longer necessary. However, {{AUR|linux-rt}} in the AUR is a patched kernel that has some extra patches that can help to get lower latencies.<br />
<br />
===A shell-based example setup===<br />
JACK2 can be directly launched with the ''jackd'' executable, or controlled with the D-Bus-based ''jack_control'' binary. ''jack_control'' makes it easy to start and configure JACK2 via a shell script. Note that you must install the {{Pkg|python-dbus}} package to use ''jack_control''.<br />
<br />
Create a shell script that can be executed at X login:<br />
<br />
{{hc|start_jack.sh|<br />
#!/bin/bash<br />
<br />
jack_control start<br />
jack_control ds alsa<br />
jack_control dps device hw:HD2<br />
jack_control dps rate 48000<br />
jack_control dps nperiods 2<br />
jack_control dps period 64<br />
sleep 10<br />
a2j_control --ehw<br />
a2j_control --start<br />
sleep 10<br />
qjackctl &<br />
}}<br />
<br />
The above will start a working JACK instance which other programs can then utilize. Details of each line follow. When discovering your own best configuration, it is helpful to do trial and error using QjackCtl's GUI with a non-D-Bus JACK2 version.<br />
<br />
====Details of the shell-based example setup====<br />
<br />
jack_control start<br />
Starts JACK if it is not already started.<br />
jack_control ds alsa<br />
Sets JACK to use the ALSA driver set.<br />
jack_control dps device hw:HD2<br />
Sets JACK to use ALSA-compatible sound card named HD2. One can find the names with {{ic|cat /proc/asound/cards}}. Most ALSA tutorials and default configurations use card numbers, but this can get confusing when external MIDI devices are in use; names make it easier.<br />
jack_control dps rate 48000<br />
Sets JACK to use 48000 khz sampling. Happens to work very well with this card. Some cards only do 44100, many will go much higher. The higher you go, the lower your latency, but the better your card and your CPU have to be, and software has to support this as well.<br />
jack_control dps nperiods 2<br />
Sets JACK to use 2 periods. 2 is right for motherboard, PCI, PCI-X, etc.; 3 for USB.<br />
jack_control dps period 64<br />
Sets JACK to use 64 frames per period. Lower is less latency, but the setting in this script gives 2.67 ms latency, which is nicely low without putting too much stress on the particular hardware this example was built for. If a USB sound system were in use it might be good to try 32. Anything less than 3-4 ms should be fine for realtime synthesis and/or FX, 5 ms is the smallest a human being can detect. QjackCtl will tell you how you are doing; at no-load, which means no clients attached, you will want a max of 3-5% CPU usage, and if you cannot get that without xruns (the red numbers which mean the system cannot keep up with the demands), you will have to improve your hardware.<br />
sleep 10<br />
Wait for the above to settle.<br />
a2j_control --ehw && a2j_control --start<br />
Start the ALSA-to-JACK MIDI bridge. Good for mixing in applications which take MIDI input through ALSA but not JACK.<br />
sleep 10<br />
Wait for the above to settle.<br />
qjackctl &<br />
Load QjackCtl. GUI configuration tells it to run in the system tray. It will pick up the JACK session started by D-Bus just fine, and very smoothly too. It maintains the patchbay, the connections between these applications and any other JACK-enabled apps to be started manually. The patchbay is set up using manual GUI, but connections pre-configured in the patchbay are automatically created by QjackCtl itself when apps are started.<br />
<br />
===A GUI-based example setup===<br />
This example setup utilizes a more GUI focused configuration and management of JACK<br />
<br />
* Install {{Pkg|jack2}} and {{Pkg|python-dbus}}.<br />
* Install {{Pkg|qjackctl}}, and tell your GUI window/desktop system to run it at startup.<br />
* Make sure QjackCtl is told to:<br />
** use the D-Bus interface,<br />
** run at startup,<br />
** save its configuration to the default location,<br />
** start the JACK audio server on application startup,<br />
** enable the system tray icon, and<br />
** start minimized to system tray.<br />
* Reboot.<br />
* After logging in, you will see QjackCtl in your system tray. Left-click on it.<br />
* Tweak settings in the QjackCtl GUI to lower latency. The Frame Size, Frame Buffer, and Bitrate settings all affect latency. Larger frame sizes lower latency, lower frame buffers lower latency, and higher bitrate settings lower latency, but all increase load on the sound card and your CPU. A Latency of about ~5ms is desirable for direct monitoring of instruments or microphones, as the latency begins to become perceptible at higher latencies.<br />
<br />
===An alternative GUI-based setup===<br />
<br />
If you use JACK for demanding tasks , but every now and then, it's possible to suspend a running pulseaudio session with QjackCtl just when you're using it. On a virgin config, modify the "Server prefix" option in the "Settings" > "Advanced" submenu, so that it states :<br />
<br />
pasuspender -- jackd<br />
<br />
<br />
The pulseaudio session should resume fine after you close QjackCtl. Tip courtesy of [https://bbs.archlinux.org/viewtopic.php?pid=1163340#p1163340 this post].<br />
<br />
===Playing nice with ALSA===<br />
<br />
{{Note|1=There are several bugs in {{Pkg|alsa-lib}} and {{Pkg|alsa-plugins}} 1.1.9-2 that will cause audio to not play or errors regarding buffers with this setup. Please read [https://bbs.archlinux.org/viewtopic.php?id=250116] for workarounds and potential solutions.}} <br />
To allow Alsa programs to play while jack is running you must install the jack plugin for alsa with {{Pkg|alsa-plugins}}.<br />
<br />
And enable it by editing (or creating) /etc/asound.conf (system wide settings) to have these lines if you have a simple 2-channel setup:<br />
{{bc|<nowiki><br />
# convert alsa API over jack API<br />
# use it with<br />
# % aplay foo.wav<br />
<br />
# use this as default<br />
pcm.!default {<br />
type plug<br />
slave.pcm "jack"<br />
hint.description "Jack Audio"<br />
}</nowiki>}}<br />
<br />
If you have a different number of output/input channels or your first two channels aren't the ones you wish to route audio to, you cannot use the predefined jack pcm source from {{ic|/etc/alsa/conf.d/50-jack.conf}}, but rather something like:<br />
{{bc|<nowiki><br />
# the first jack port goes to an output we don't use and there are no recording devices<br />
pcm.!jack {<br />
type jack<br />
playback_ports {<br />
0 system:playback_2<br />
1 system:playback_3<br />
}<br />
}<br />
<br />
pcm.!default {<br />
type plug<br />
slave.pcm "jack"<br />
hint.description "Jack Audio"<br />
}</nowiki>}}<br />
<br />
You need not restart your computer or anything. Just edit the alsa config files, start up jack, and there you go...<br />
<br />
Remember to start it as a '''user'''. If you start it with {{ic|jackd -d alsa}} as user X, it will not work for user Y.<br />
<br />
Another approach, using ALSA loopback device (more complex but probably more robust), is described in [https://alsa.opensrc.org/Jack_and_Loopback_device_as_Alsa-to-Jack_bridge this article].<br />
<br />
=== GStreamer ===<br />
<br />
GStreamer requires the {{pkg|gst-plugins-good}} package to work with JACK, which contains the jackaudiosink plugin that adds JACK playback support.<br />
<br />
Further information (outdated): http://jackaudio.org/faq/gstreamer_via_jack.html<br />
<br />
=== PulseAudio ===<br />
If you need to keep {{Pkg|pulseaudio}} installed (in the event it is required by other packages, like {{Pkg|gnome-settings-daemon}}), you may want to prevent it from spawning automatically with X and taking over from JACK.<br />
<br />
Edit {{ic|/etc/pulse/client.conf}}, uncomment "autospawn" and set it to "no":<br />
;autospawn = yes<br />
autospawn = no<br />
<br />
''If you want both to play along, see: [[PulseAudio/Examples#PulseAudio through JACK]]''<br />
<br />
Cadence and other JACK GUI applications are known to write values to {{ic|~/.pulse/daemon.conf}}. These values override any system-wide defaults enabling unexpected behavior (e.g. flat volumes). Refer to [[PulseAudio#Configuration]] on how to update these configurations.<br />
<br />
=== Firewire ===<br />
In order to prevent ALSA from messing around with your firewire devices you have to blacklist all firewire related kernel modules. This also prevents PulseAudio from using firewire. Create the following file:<br />
<br />
{{hc|/etc/modprobe.d/alsa-no-jack.conf|<br />
blacklist snd-fireworks<br />
blacklist snd-bebob<br />
blacklist snd-oxfw<br />
blacklist snd-dice<br />
blacklist snd-firewire-digi00x<br />
blacklist snd-firewire-tascam<br />
blacklist snd-firewire-lib<br />
blacklist snd-firewire-transceiver<br />
blacklist snd-fireface<br />
blacklist snd-firewire-motu<br />
}}<br />
<br />
''The list of modules is the most recent available at the time of writing at [https://github.com/takaswie/snd-firewire-improve Alsa Firewire Improve Repository].''<br />
<br />
Now you can unload your loaded firewire modules or reboot.<br />
<br />
=== Network / remote audio ===<br />
<br />
JACK can be configured to send audio data over a network to a "master" machine, which then outputs the audio to a physical device. This can be useful to mix audio from a number of "slave" computers without requiring additional cables or hardware mixers, and keeping the audio path digital for as long as possible (as hardware mixers with digital inputs are very rare).<br />
<br />
The configuration is very simple, however it requires a network that supports multicast traffic (i.e. IGMP snooping must be enabled on managed network switches), and it requires all machines be running the same JACK major version (JACK1 or JACK2) as the protocols are not interoperable between versions. For JACK2, the {{ic|netmanager}} module must be loaded:<br />
<br />
{{bc|<nowiki><br />
master$ jack_load netmanager -i -c<br />
</nowiki>}}<br />
<br />
The {{ic|-i -c}} option tells the netmanager to automatically map any incoming connections to the default audio device. Without this, each incoming connection would have to be manually mapped on each connection. You can use {{ic|-i -h}} instead to see all available options, however note that the options are printed in the {{ic|jackd}} server output, the {{ic|jack_load}} command will not show anything.<br />
<br />
On the client, JACK must be started in network mode:<br />
<br />
{{bc|<nowiki><br />
slave$ jackd -d net<br />
</nowiki>}}<br />
<br />
The two machines will connect and on the master the new audio source will be visible:<br />
<br />
{{bc|<nowiki><br />
master$ jack_lsp<br />
system:playback_1<br />
system:playback_2<br />
remotehost:from_slave_1<br />
remotehost:from_slave_2<br />
</nowiki>}}<br />
<br />
If you passed the {{ic|-c}} option to {{ic|jack_load}} as above, then the remote system will now be able to play audio.<br />
<br />
==MIDI==<br />
<br />
JACK can handle one soundcard very well, and an arbitrary number of MIDI devices (connected e.g. via USB).<br />
If you start JACK and want to use a MIDI keyboard or a synthesizer or some other pure MIDI device, you have to start JACK with a proper soundcard (one that actually outputs or inputs PCM sound).<br />
As soon you have done that, you can connect the MIDI device. E.g. with QjackCtl ({{pkg|qjackctl}}), you click on the connect button and you will find your device listed under JACK-MIDI or ALSA-MIDI, depending on the driver.<br />
<br />
For JACK-MIDI, you may want to set the '''MIDI Driver''' to '''seq''' or '''raw''' in QjackCtl ''Setup > Settings''. This should make your MIDI device appear under the ''MIDI'' tab. You can also change the name of the client (from a generic "midi_capture_1" to something more descriptive), if you enable ''Setup > Display > Enable client/port aliases'' and then ''Enable client/port aliases editing (rename)''.<br />
<br />
For ALSA-MIDI, make sure to turn on '''Enable ALSA Sequencer support''' in QjackCtl ''Setup > Misc''. This will add the ''ALSA'' tab in QjackCtl ''Connect'' window where your MIDI controller will show up.<br />
<br />
{{Note| {{pkg|jack2}} does not come with bridging support for legacy ALSA MIDI only applications. Therefore {{pkg|a2jmidid}} is required [https://github.com/jackaudio/jack2/issues/362 until upstream achieves feature parity on this].}}<br />
For bridging ALSA-MIDI to JACK-MIDI, you may consider using a2jmidid ({{Pkg|a2jmidid}}). The following command will export all available ALSA MIDI ports to JACK MIDI ports:<br />
$ a2j_control --ehw && a2j_control --start<br />
They will be visible in QjackCtl under the ''MIDI'' tab labelled "a2j" client.<br />
You can automate starting of a2jmidid by adding to QjackCtl ''Setup > Options > Execute script after Startup'': {{ic|/usr/bin/a2j_control --ehw && /usr/bin/a2j_control --start}}<br />
{{note|When connecting MIDI keyboard controllers in QjackCtl, make sure to ''Expand All'' first and connect the desired ''Output Ports'' (below the ''Readable Clients'') to the ''Input Ports'' (below the ''Writable Clients''). As a shortcut, if you select a writable client instead of individual ports as your destination, it should connect all its currently displayed output ports underneath.}}<br />
<br />
*'''Q:''' What is the difference between JACK-MIDI and ALSA-MIDI?<br />
*'''A:''' The former has improved timing and sample accurate MIDI event alignment. It extends or may even replace the latter but at this point they both co-exist.<br />
<br />
To install some M-Audio MIDI keyboards, you will need the firmware package {{AUR|midisport-firmware}} in the [[AUR]]. Also, the snd_usb_audio module has to be available.<br />
For more information about specific USB MIDI devices, see http://alsa.opensrc.org/USBMidiDevices.<br />
<br />
==Troubleshooting==<br />
==="Cannot lock down memory area (Cannot allocate memory)" message on startup===<br />
<br />
See [[Realtime process management#Configuring PAM]] and ensure that the user is in the {{ic|realtime}} [[user group]].<br />
<br />
===jack2 and qjackctl errors===<br />
Still having the "Cannot allocate memory" and/or "Cannot connect to server socket err = No such file or directory" error(s) when pressing qjackctl's start button?<br />
<br />
Please delete {{ic|~/.jackdrc}}, {{ic|~/.config/jack/conf.xml}}, {{ic|~/.config/rncbc.org/QjackCtl.conf}}. Kill ''jackdbus'' and restart from scratch :)<br />
(Thanks to nedko)<br />
<br />
Also try running <br />
$ fuser /dev/snd/*<br />
and check the resulting PID's with<br />
$ ps ax | grep [PID here]<br />
This will hopefully show the conflicting programs.<br />
<br />
==="ALSA: cannot set channel count to 1 for capture" error in logs===<br />
Change ALSA input and output channels from 1 to 2<br />
<br />
===Crackling or pops in audio===<br />
Your CPU or sound card is too weak to handle your settings for JACK. Lower the bitrate, lower the frame size, and raise the frame period in small increments until crackling stops. You can also try changing the sampling rate to 44100 or whatever is natively supported. This allows jack to send audio to the system without having to resample. In {{Pkg|jack2}} with {{ic|jack_control}}, this is accomplished with<br />
<br />
jack_control dps rate 44100<br />
<br />
===Problems with specific applications===<br />
====VLC - no audio after starting JACK====<br />
Run VLC and change the following menu options:<br />
* Tools > Preferences<br />
* Show settings: All<br />
* Audio > Output modules > Audio output module: JACK audio output<br />
* Audio > Output modules > JACK: Automatically connect to writable clients (enable)<br />
<br />
==See also==<br />
* [https://github.com/jackaudio/jackaudio.github.com/wiki JACK Wiki]<br />
** [https://github.com/jackaudio/jackaudio.github.com/wiki/Q_difference_jack1_jack2 Differences between JACK 1 and JACK2]<br />
* [http://jackaudio.org/faq/ JACK FAQ]</div>CBiXhttps://wiki.archlinux.org/index.php?title=Professional_audio&diff=603550Professional audio2020-04-01T14:34:56Z<p>CBiX: Link to unfa's video tutorial</p>
<hr />
<div>[[Category:Sound]]<br />
[[ja:プロオーディオ]]<br />
[[ru:Professional audio]]<br />
{{Related articles start}}<br />
{{Related|Sound system}}<br />
{{Related|JACK}}<br />
{{Related|Realtime kernel}}<br />
{{Related|envy24control}}<br />
{{Related articles end}}<br />
Modern Linux systems are more than capable of supporting your (semi-)professional audio needs. Latencies of 5ms down to even as low as 1ms can be achieved with good hardware and proper configuration.<br />
<br />
== Getting started ==<br />
<br />
Arch Linux provides the package groups {{Grp|pro-audio}} (holding all relevant (semi-) professional applications), {{Grp|lv2-plugins}}, {{Grp|ladspa-plugins}}, {{Grp|dssi-plugins}} and {{Grp|vst-plugins}} (the latter being subgroups of the first group).<br />
<br />
{{Tip| See [[Pacman/Tips and tricks#Listing packages]] for listing members of and [[Pacman#Installing package groups]] for installing package groups.}}<br />
<br />
Low-latency audio on Linux is achieved using [[JACK]] (all applications in the {{Grp|pro-audio}} group are [[JACK]] clients).<br />
<br />
{{Note| [[JACK]] uses audio backends, such as [[ALSA]], [http://ffado.org FFADO], [[OSS]] or [http://www.portaudio.com/ Portaudio]. Depending on your setup, make sure those are configured properly!}}<br />
<br />
=== System configuration ===<br />
<br />
{{Note| The quality of information on best practices and system configuration vary a great deal (and are outdated or sometimes even contradictory in many locations). While for some systems and setups a higher level of optimization is necessary, for most users this will not be the case. Try a standard setup with the vanilla Arch Linux kernel first. Only if you require a setup with lower latency and greater stability, start considering optimizations!}}<br />
<br />
You may want to consider the following often seen system optimizations:<br />
<br />
* Setting the [[CPU frequency scaling]] governor to ''performance''.<br />
* [[Realtime_process_management#Configuring_PAM|Configuring pam_limits]] (e.g. by installing {{pkg|realtime-privileges}} and adding your user to the {{ic|realtime}} group).<br />
* Using the {{ic|threadirqs}} [[kernel parameter]] (consult [https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html] for reference) - enforced by default by the [[realtime kernel patchset]].<br />
* Using the [[realtime kernel patchset]].<br />
* Add {{ic|noatime}} to [[fstab]] (see [[Improving performance#Mount options]]).<br />
* Increasing the highest requested RTC interrupt frequency (default is 64 Hz) by [[systemd FAQ#How can I make a script start during the boot process?|running the following at boot]]:<br />
<br />
# echo 2048 > /sys/class/rtc/rtc0/max_user_freq<br />
# echo 2048 > /proc/sys/dev/hpet/max-user-freq<br />
<br />
* Reducing ''swappiness'' (aka swap frequency, set to {{ic|60}} by default) to e.g. {{ic|10}} will make the system wait much longer before trying to swap to disk (see [[wikipedia:Paging#Swappiness]]). This can be done on the fly with {{ic|1=sysctl vm.swappiness=10}} (see {{man|8|sysctl}}) or setup permanently, using a configuration file (see {{man|5|sysctl.d}}) such as:<br />
<br />
{{hc|/etc/sysctl.d/90-swappiness.conf|2=<br />
vm.swappiness = 10<br />
}}<br />
<br />
* Increasing the maximum watches on files (defaults to {{ic|524288}}) to e.g. {{ic|600000}}, that ''inotify'' keeps track of for your user, can help with applications, that require many file handles (such as [[List_of_applications#Digital_audio_workstations|DAWs]]). This again can be done on the fly with {{ic|1=sysctl fs.inotify.max_user_watches=600000}} or in a dedicated configuration file:<br />
<br />
{{hc|/etc/sysctl.d/90-max_user_watches.conf|2=<br />
fs.inotify.max_user_watches = 600000<br />
}}<br />
<br />
You may also want to maximize the PCI latency timer of the PCI sound card and raise the latency timer of all other PCI peripherals (default is 64).<br />
<br />
$ setpci -v -d *:* latency_timer='''b0'''<br />
$ setpci -v -s ''$SOUND_CARD_PCI_ID'' latency_timer='''ff'''<br />
<br />
E.g. {{ic|1=SOUND_CARD_PCI_ID=03:00.0}}.<br />
<br />
The SOUND_CARD_PCI_ID can be obtained like so:<br />
<br />
{{hc|$ lspci {{!}} grep -i audio|<br />
'''03:00.0''' Multimedia audio controller: Creative Labs SB Audigy (rev 03)<br />
'''03:01.0''' Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)<br />
}}<br />
<br />
==== Checklist ====<br />
<br />
The steps below are mostly to double-check that you have a working multimedia system:<br />
* Have I set up sound properly? See [[ALSA]] or [[OSS]].<br />
<br />
$ speaker-test<br />
<br />
* Is PulseAudio, OSS or something else grabbing my device?<br />
<br />
$ lsof +c 0 /dev/snd/pcm* /dev/dsp*<br />
<br />
-OR-<br />
<br />
$ fuser -fv /dev/snd/pcm* /dev/dsp* <br />
<br />
* Is PAM-security and realtime working OK?<br />
<br />
See: [[Realtime for Users#PAM-enabled login]] (Pay special attention especially if you do not run KDM, GDM or Slim.)<br />
<br />
* Have I rebooted after having done all that?<br />
<br />
=== JACK ===<br />
<br />
The aim here is to find the best possible combination of buffer size and periods, given the hardware you have. '''Frames/Period = 256''' is a sane starter. For onboard and USB devices, try '''Periods/Buffer = 3'''. Commonly used values are: 256/3, 256/2, 128/3.<br />
<br />
Also, the sample rate must match the hardware sample rate. To check what sample and bit rates your device supports:<br />
<br />
$ cat /proc/asound/card0/codec#0<br />
<br />
Replace ''card0'' and ''codec#0'' depending on what you have. You will be looking for '''rates''' or ''VRA'' in '''Extended ID'''. A common sample rate across many of today's devices is '''48000 Hz'''. Others common rates include 44100 Hz and 96000 Hz.<br />
<br />
Almost always, when recording or sequencing with external gear is concerned, '''realtime''' is a must. Also, you may like to set maximum priority (at least 10 lower than system limits defined in {{ic|/etc/security/limits.d/99-realtime-privileges.conf}}); the highest is for the device itself).<br />
<br />
Start jack with the options you just found out:<br />
<br />
$ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p256 -n3<br />
<br />
{{pkg|qjackctl}}, {{Pkg|cadence}} and {{pkg|patchage}} can all be used to as GUIs to monitor JACK's status and simplify its configuration . <br />
<br />
{{Note|Once you set up JACK, try different audio applications to test your configuration results. I spent days trying to troubleshoot JACK xrun issues with LMMS which in the end turned out to be the problem with the latter.}}<br />
<br />
''Further reading: [http://www.linux-magazine.com/content/download/63041/486886/version/1/file/JACK_Audio_Server.pdf Linux Magazine article]''<br />
<br />
==== FireWire ====<br />
<br />
{{Note|Nothing much is needed to be done as most things have been automated, especially with the introduction of the [https://ieee1394.wiki.kernel.org/articles/j/u/j/Juju_Migration_e8a6.html new FireWire stack]{{Dead link|2020|02|25}}, deprecation of HAL and more focus on [[udev]]. You should not need to edit device permissions, but if you suspect that your device may not be working due to such issues, see {{ic|/lib/udev/rules.d/60-ffado.rules}} and if needed, create and put your changes into {{ic|/etc/udev/rules.d/60-ffado.rules}}.}}<br />
<br />
JACK(2) is built against FFADO, you only need to install it with the {{Pkg|libffado}} package.<br />
<br />
To test whether you have any chances of getting FireWire devices to work:<br />
<br />
* Ensure the proper kernel modules are loaded:<br />
<br />
# modprobe firewire-core firewire-ohci<br />
<br />
* Is my chipset sane enough to initiate a device?<br />
<br />
http://www.ffado.org/?q=node/622<br />
<br />
* Is my chipset sane enough to make a device work to its capacity?<br />
<br />
We cannot say for sure, particularly for those based on Ricoh (cross-platform issue). Most of the time, your device will run fine, but on occasion you will be faced with funny quirks. For unlucky ones, you will be facing hell.<br />
<br />
{{Note|As stated by Takashi Sakamoto [http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081731.html on the alsa-devel mailing list], if you use the FireWire backend with jackd, the DICE module is incompatible. If you see a line like this :<br />
Warning (dice_eap.cpp)[1811] read: No routes found. Base 0x7, offset 0x4000<br />
you need to disable the "snd_dice" module.}}<br />
<br />
==== Jack Flash ====<br />
<br />
If after getting jack setup you will find that Flash has no audio.<br />
<br />
In order to get flash to work with jack you will need to [[install]] the {{AUR|libflashsupport-jack}} package.<br />
<br />
You can also use more flexible method to allow Alsa programs (including Flash) play sound while jack is running:<br />
<br />
First you must install the jack plugin for Alsa by [[install]]ing the {{Pkg|alsa-plugins}} package. Enable it by editing (or creating) {{Ic|/etc/asound.conf}} (system wide settings) to have these lines:<br />
<br />
{{bc|<br />
# convert alsa API over jack API<br />
# use it with<br />
# % aplay foo.wav<br />
<br />
# use this as default<br />
pcm.!default {<br />
type plug<br />
slave { pcm "jack" }<br />
}<br />
<br />
ctl.mixer0 {<br />
type hw<br />
card 1<br />
}<br />
<br />
# pcm type jack<br />
pcm.jack {<br />
type jack<br />
playback_ports {<br />
0 system:playback_1<br />
1 system:playback_2<br />
}<br />
capture_ports {<br />
0 system:capture_1<br />
1 system:capture_2<br />
}<br />
}<br />
}}<br />
<br />
You do not need to restart your computer or anything. Just edit the alsa config files, start up jack.<br />
<br />
==== Quickscan JACK script ====<br />
<br />
Most people will probably want to run JACK in realtime mode, there are however a lot of knobs and buttons to press in order for that to happen.<br />
<br />
A great way to quickly diagnose your system and find out what it is missing in order to have JACK work properly in real time mode is to run the Quickscan script. <br />
<br />
git clone git://github.com/raboof/realtimeconfigquickscan.git<br />
cd realtimeconfigquickscan<br />
perl ./realTimeConfigQuickScan.pl<br />
<br />
The output should tell you where your system is lacking and will point you to places to find more information.<br />
<br />
==== Desktop Effects vs JACK ====<br />
<br />
In addition to the factors listed under the System Configuration section above as well as the settings checked by realTimeConfigQuickScan.pl, it is also worth noting that desktop environments can cause xruns and hence JACK audio glitches, especially memory/process intensive ones and those desktops that utilize composited desktop effects. It is recommended you disable desktop effects when using JACK. You are likely to get the least xruns and best performance by running a lightweight desktop or just a window manager instead.<br />
<br />
==== A general example ====<br />
<br />
A general configuration example is [[JACK Audio Connection Kit#A shell-based example setup]].<br />
<br />
== Realtime kernel ==<br />
<br />
Since a while ago, the stock Linux kernel has proven to be adequate for realtime uses. The stock kernel (with {{Ic|CONFIG_PREEMPT&#61;y}}, default in Arch) can operate with a worst case latency of [https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_are_real-time_capabilities_of_the_stock_2.6_linux_kernel.3F upto 10ms] (time between the moment an interrupt occurs in hardware, and the moment the corresponding interrupt-thread gets running), although some device drivers can introduce latency much worse than that. So depending on your hardware and driver (and requirement), you might want a kernel with hard realtime capabilities.<br />
<br />
The [https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO RT_PREEPMT] patch by Ingo Molnar and Thomas Gleixner is an interesting option for hard and firm realtime applications, reaching from professional audio to industrial control. <br />
Most audio-specific distro Linux ships with this patch applied. A realtime-preemptible kernel will also make it possible to tweak priorities of IRQ handling threads and help ensure smooth audio almost regardless of the load.<br />
<br />
If you are going to compile your own kernel, remember that removing modules/options does not equate to a "leaner and meaner" kernel. It is true that the size of the kernel image is reduced, but in today's systems it is not as much of an issue as it was back in '''1995'''. <br />
<br />
In any way, you should also ensure that:<br />
<br />
* '''Timer Frequency''' is set to '''1000Hz''' (CONFIG_HZ_1000=y; if you do not do ''MIDI'' you can ignore this)<br />
* '''APM''' is '''DISABLED''' (CONFIG_APM=n; Troublesome with some hardware - default in x86_64)<br />
<br />
If you truly want a slim system, we suggest you go your own way and deploy one with ''static /devs''. You should, however, set your CPU architecture. Selecting "Core 2 Duo" for appropriate hardware will allow for a good deal of optimisation, but not so much as you go down the scale.<br />
<br />
General issue(s) with (realtime) kernels:<br />
<br />
* Hyperthreading (if you suspect, disable in BIOS)<br />
<br />
There are ready-to-run/compile patched kernels available in the ABS and AUR.<br />
<br />
{{note|Before you decide to use a patched kernel, see [http://jackaudio.org/faq/realtime_vs_realtime_kernel.html http://jackaudio.org/faq/realtime_vs_realtime_kernel.html].}}<br />
<br />
=== AUR ===<br />
<br />
From the [[AUR]] itself, you have the following options:<br />
<br />
* {{AUR|linux-rt}}<br />
* {{AUR|linux-rt-lts}} (Long Term Support, stable release)<br />
<br />
The first two are standard kernels with the CONFIG_PREEMPT_RT patch, while -ice includes patches some may consider to be nasty, while to others are a blessing.<br />
:''See: [https://rt.wiki.kernel.org/ Real-Time Linux Wiki]''<br />
<br />
==== Binaries ====<br />
<br />
Some users provide binaries for the AUR packages above in [[Unofficial user repositories]]:<br />
<br />
* [https://www.suruatoel.xyz/arch coderkun-aur-audio]<br />
<br />
== MIDI ==<br />
To decrease MIDI jitter when using external MIDI equipment jack2's -Xalsarawmidi option should be used. When doing this you need to use a2jmidid, too.<br />
<br />
With [https://github.com/koppi/alsa-midi-latency-test alsa-midi-latency-test] you could test how much jitter you get. PCI and PCIe cards are usually much better than USB MIDI devices.<br />
<br />
To work with MIDI, it is highly recommended that you install a2j ({{Pkg|a2jmidid}}), a bridge between alsa midi and jack midi. It allows you to connect applications that only communicate with alsa midi to applications that only use jack midi. Laditray can also start/stop a2j.<br />
:''See: [[JACK#MIDI]]''<br />
<br />
== Environment variables ==<br />
<br />
If you install things to non-standard directories, it is often necessary to set environment path variables so that applications know where to look (for plug-ins and other libraries). This usually affects only VST since users might have a Wine or external Windows location.<br />
<br />
We would usually not have Linux plug-ins (LADSPA, LV2, DSSI, LXVST) beyond standard paths, so it is not necessary to export them. But if you do, be sure to include those standard paths as well since Arch does not do anything for ''dssi'' or ''ladspa'', and some applications like ''dssi-vst'' will not look anywhere else if it finds predefined paths.<br />
<br />
{{hc|~/.bashrc|2=<br />
...<br />
export VST_PATH=/usr/lib/vst:/usr/local/lib/vst:~/.vst:/someother/custom/dir<br />
export LXVST_PATH=/usr/lib/lxvst:/usr/local/lib/lxvst:~/.lxvst:/someother/custom/dir<br />
export LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa:~/.ladspa:/someother/custom/dir<br />
export LV2_PATH=/usr/lib/lv2:/usr/local/lib/lv2:~/.lv2:/someother/custom/dir<br />
export DSSI_PATH=/usr/lib/dssi:/usr/local/lib/dssi:~/.dssi:/someother/custom/dir<br />
}}<br />
<br />
== Tips and tricks ==<br />
<br />
* Disable WiFi and close any programs that do not need to be open when recording such as browsers. Many have reported disabling WiFi has led to more reliable JACK performance.<br />
<br />
* Some USB audio hardware is known not to work properly when plugged into USB 3 ports so try USB 2/1 ports instead. <br />
<br />
* IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at [http://subversion.ffado.org/wiki/IrqPriorities FFADO IRQ Priorities How-To]. If you have a realtime or a recent kernel, you can use {{Pkg|rtirq}} to adjust priorities of IRQ handling threads.<br />
<br />
* Do not use the '''irqbalance''' daemon, or do so carefully [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.3/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-Interrupt_and_Process_Binding.html].<br />
<br />
* If you need to use multiple audio devices with JACK2, the '''alsa_in''' and '''alsa_out''' utilities. can be used to have extra devices wrapped and show up as outputs in the JACK patchbay.<br />
<br />
* Some daemons/processes can unexpectedly cause '''xruns'''. If you do not need it - kill it. No questions asked.<br />
<br />
$ ls /var/run/daemons<br />
$ top # or htop, ps aux, whatever you are comfortable with<br />
$ killall -9 $processname<br />
# systemctl stop $daemonname<br />
<br />
* If you are facing a lot of ''xruns'' especially with {{Pkg|nvidia}}, disable your GPU throttling. This can be done via the card's control applet and for nvidia it is "prefer maximum performance" (thanks to a mail in LAU by Frank Kober).<br />
<br />
* You may like to read more on ALSA: http://www.volkerschatz.com/noise/alsa.html<br />
<br />
== Hardware ==<br />
<br />
The majority of sound cards and audio devices will work with no extra configuration or packages, simply set the sound card jack is using to them and restart.<br />
<br />
This is not true for all devices, and so special cases are also listed.<br />
<br />
=== M-Audio Delta 1010 ===<br />
<br />
The M-Audio Delta series cards are based on the VIA Ice1712 audio chipset.<br />
Cards using this chip require that you install the alsa-tools package, because <br />
it contains the [[envy24control]] program. [[Envy24control]] is a hardware level<br />
mixer/controller. You ''can'' use alsa-mixer but you will save yourself some<br />
hassle not to try it. Note that this section has no information on MIDI setup or<br />
usage. <br />
<br />
Open the mixer application:<br />
<br />
$ envy24control<br />
<br />
This application can be more than a bit confusing; see [[envy24control]] for guidance<br />
on its use. That said, here is a very simple working setup for multitracking with Ardour.<br />
<br />
# On the "Monitor Inputs" and "Monitor PCMs" tabs, set all monitor inputs and monitor PCMs to around 20.<br />
# On the "Patchbay / Router" tab, set all to PCM out.<br />
# On the "Hardware Settings" tab, verify that the Master Clock setting matches what is set in Qjackctl. If these do not match you will have xruns out of control!<br />
<br />
=== M-Audio Fast Track Pro ===<br />
<br />
The M-Audio Fast Track Pro is an USB 4x4 audio interface, working at 24bit/96kHz. Due to limitation of USB 1, this device requires additional setup to get access to all its features. Device works in one of two configuration:<br />
<br />
* Configuration 1, or "Class compliant mode" - with reduced functionality, only 16bit, 48kHz, analogue input (2 channels) and digital/analogue output (4 channels).<br />
* Configuration 2 - with access to all features of interface.<br />
<br />
Currently with stock kernel it runs in configuration 2, but if you want to make sure in what mode you are, you can check kernel log for entries:<br />
<br />
usb-audio: Fast Track Pro switching to config #2<br />
usb-audio: Fast Track Pro config OK<br />
<br />
The interface also needs extra step of configuration to switch modes. It is done using option {{ic|device_setup}} during module loading. The recommended way to setup the interface is using file in {{ic|modprobe.d}}:<br />
<br />
{{hc|/etc/modprobe.d/ftp.conf|2=<br />
options snd_usb_audio vid=0x763 pid=0x2012 device_setup=XXX index=YYY enable=1<br />
}}<br />
<br />
where {{ic|vid}} and {{ic|pid}} are vendor and product id for M-Audio Fast Track Pro, {{ic|index}} is desired device number and {{ic|device_setup}} is desired device setup. Possible values for {{ic|device_setup}} are:<br />
<br />
{| class="wikitable"<br />
|+ device modes<br />
! device_setup value !! bit depth !! frequency !! analog output !! digital output !! analog input !! digital input !! IO mode<br />
|-<br />
| 0x0 || 16 bit || 48kHz || + || + || + || + || 4x4<br />
|-<br />
| 0x9 || 24 bit || 48kHz || + || + || + || - || 2x4<br />
|-<br />
| 0x13 || 24 bit || 48kHz || + || + || - || + || 2x4<br />
|-<br />
| 0x5 || 24 bit || 96kHz || * || * || * || * || 2x0 or 0x2<br />
|}<br />
<br />
The 24 bit/96kHz mode is special: it provides all input/output, but you can open only one of 4 interfaces at a time. If you for example open output interface and then try to open second output or input interface, you will see error in kernel log:<br />
<br />
cannot submit datapipe for urb 0, error -28: not enough bandwidth<br />
<br />
which is perfectly normal, because this is USB 1 device and cannot provide enough bandwidth to support more than single (2 channel) destination/source of that quality at a time.<br />
<br />
Depending on the value of {{ic|index}} it will setup two devices: {{ic|hwYYY:0}} and {{ic|hwYYY:1}}, which will contain available inputs and outputs. First device is most likely to contain analog output and digital input, while second one will contain analog input and digital output. To find out which devices are linked where and if they are setup correctly, you can check {{ic|/proc/asound/cardYYY/stream{0,1} }}. Below is list of important endpoints that will help in correctly identifying card connections (it easy to mistake analog and digital input or output connections before you get used to the device):<br />
<br />
EP 3 (analgoue output = TRS on back, mirrored on RCA outputs 1 and 2 on back)<br />
EP 4 (digital output = S/PDIF output on back, mirrored on RCA outputs 3 and 4 on back)<br />
EP 5 (analogue input = balanced TRS or XLR microphone, unbalanced TS line on front)<br />
EP 6 (digital input = S/PDIF input on back)<br />
<br />
This .asoundrc file enables 24-bit IO on the fast-track pro (and I'm sure it could be modified to work with other 3-byte usb devices) within the context of jack's 32-bit interface while routing default alsa traffic to jack outputs on the audio interface. Alsa will be in S24_3BE mode but jack can plug S32_LE data in and out of the interface and other alsa programs will be able to plug almost anything into jack.<br />
<br />
{{bc|<nowiki><br />
### ~/.asoundrc<br />
### default alsa config file, for a fast-track pro configured in 24-bit mode as so:<br />
### options snd_usb_audio device_setup=0x9<br />
### invoke jack with: (if you use -r48000, change the rate in the plugs as well)<br />
### $jackd -dalsa -P"hw:Pro" -C"hw:Pro,1" -r44100<br />
<br />
## setup input and output plugs so jack can write S24_3BE data to the audio interface<br />
<br />
pcm.maud0 {<br />
type hw<br />
card Pro<br />
}<br />
<br />
#jack_out plug makes sure that S32_LE data can be written to hw:Pro<br />
pcm.jack_out{<br />
type plug<br />
format S32_LE<br />
channels 2<br />
rate 44100<br />
slave pcm.maud0<br />
}<br />
<br />
pcm.maud1 {<br />
type hw<br />
card Pro<br />
device 1<br />
}<br />
## jack_in plug makes sure that hw:Pro,1 can read S32_LE data<br />
pcm.jack_in {<br />
type plug<br />
format S32_LE<br />
channels 2<br />
rate 44100<br />
slave pcm.maud1<br />
}<br />
#####<br />
# route default alsa traffic through jack system io<br />
<br />
pcm.jack {<br />
type jack<br />
playback_ports {<br />
0 system:playback_1<br />
1 system:playback_2<br />
}<br />
capture_ports {<br />
0 system:capture_1<br />
1 system:capture_2<br />
}<br />
} <br />
pcm.amix {<br />
type asym<br />
playback.pcm "jack"<br />
capture.pcm "jack"<br />
}<br />
pcm.!default {<br />
type plug<br />
slave.pcm amix<br />
}<br />
</nowiki>}}<br />
<br />
=== PreSonus Firepod ===<br />
<br />
#Startup: Either from command line or QjackCtl, the driver is called firewire.<br />
#Specs: The card contains 8/8 preamp'ed XLR plus a stereo pair, in total 10 channels.<br />
#Linking: Cards can be linked together without any problems.<br />
#Hardware Settings: Nothing particular, tweak the settings in QjackCtl to your likings.<br />
<br />
Volume levels are hardware and routing can be done through QjackCtl, even with more cards linked together, this is not a problem.<br />
The ffadomixer does not work with this card yet, hopefully in the future we can control more aspects of the card through a software interface like that.<br />
<br />
=== PreSonus AudioBox USB ===<br />
<br />
#Startup: It is called "USB" by ALSA. <br />
#Specs: Two mono TRS+XLR in, two mono TRS out, MIDI in and out, plus separate stereo headphone jack. Knob controls for both inputs, for main out, and for headphone, four in all.<br />
#Hardware: Works very well, audio and MIDI too. No software mixer controls at all.<br />
<br />
=== Tascam US-122 ===<br />
<br />
'''''This does not apply to the US-122L'''''<br />
<br />
# Required packages: {{Pkg|alsa-tools}} {{Pkg|alsa-firmware}} {{Aur|fxload}}<br />
# udev rules: create the following rules file, then reload udev rules, [[Udev#Loading new rules]]<br />
<br />
{{hc|/etc/udev/rules.d/51-tascam-us-122.rules|2=<br />
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8006", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us122fw.ihx'"<br />
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8007", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"<br />
}}<br />
<br />
Plug in the unit<br />
The device should now be working, there are no software mixer controls<br />
<br />
=== RME Babyface ===<br />
<br />
It works very well at low latencies (~5ms) with {{Pkg|alsa-utils}}, {{Pkg|jack2}} and {{AUR|linux-rt}}. Running on ALSA only with the standard kernel may cause crackling at lower latencies.<br />
<br />
To be recognized and work, the firmware version of the Babyface needs to be >= 200, which introduces the Class Compliant Mode. To enter Class Compliant Mode hold the "Select" and "Recall" buttons while connecting the Babyface to the computer via USB. It should now be recognized. <br />
<br />
To check if it is recognized:<br />
<br />
$ grep -i baby /proc/asound/cards<br />
<br />
For more info about the Class Compliant Mode visit RME's website, they have PDF which covers all the functionality.<br />
<br />
The Babyface does not need any special Jack Settings. But if you want to use the built in MIDI In/Out then you need to set the "MIDI Driver" to "seq" and optionally disable "Enable Alsa Sequencer Support" to use it in combination with other MIDI Devices (a USB Midi Keyboard for example).<br />
<br />
== Restricted software ==<br />
<br />
=== Steinberg's SDKs ===<br />
<br />
It is very clear - we can distribute neither the VST nor the ASIO headers in '''binary package form'''. However, whenever you are building a program which would host Windows ''.dll'' VST plug-ins, check for the following hints (that do not require use of any SDK):<br />
<br />
* dssi-vst<br />
* fst<br />
* vestige<br />
<br />
With that said, if you are building a program which would host native ''.so'' VST plug-ins, then there is no escape. For such cases, Arch yet again allows us to maintain a uniform local software database. We can "install" the SDK ''system-wide'' - you simply have to download it yourself and place it in the packaging directory.<br />
<br />
[https://aur.archlinux.org/packages.php?O=0&K=steinberg-&do_Search=Go Get them from AUR]<br />
<br />
''Note: Steinberg does not forbid redistribution of resulting products, nor dictate what license they can be under. There are many GPL-licensed VST plug-ins. As such, distributing binary packages of software built with these restricted headers is '''not''' a problem, because the headers are simply '''buildtime dependencies'''.''<br />
<br />
== Linux and Arch Linux Pro Audio in the news ==<br />
<br />
* [https://www.linux.com/learn/tutorials/607117-build-a-serious-multimedia-production-workstation-with-arch-linux Build a Serious Multimedia Production Workstation with Arch]{{Dead link|2020|02|25}} - Linux.com article, July 2012<br />
* [http://www.linuxjournal.com/content/arch-tale An Arch Tale] - Article by fellow musician and writer Dave Phillips, October 2011<br />
* [http://www.itwire.com/opinion-and-analysis/open-sauce/36698-from-windows-to-linux-a-sound-decision From Windows to Linux: a sound decision] - Interview with Geoff "songshop" Beasley, February 2010<br />
<br />
== Mailing lists ==<br />
<br />
* [https://lists.archlinux.org/listinfo/arch-proaudio Arch Linux Pro-audio] Discussion about real-time multimedia, including (semi-)pro audio and video<br />
* [https://lists.linuxaudio.org/listinfo/linux-audio-dev Linux Audio Developer] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of mainly developers.<br />
* [https://lists.linuxaudio.org/listinfo/linux-audio-user Linux Audio User] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of users and developers.<br />
<br />
== IRC ==<br />
<br />
On [https://freenode.net/ freenode]:<br />
* #archlinux-proaudio - Arch Linux pro-audio channel<br />
* #lau - General Linux Audio channel for users<br />
* #lad - General Linux Audio channel for developers<br />
* #jack - Development and support related to JACK audio system<br />
* #lv2 - Development and support related to the LV2 plugin format<br />
* #ardour - Discussion and support relating to the Ardour DAW<br />
* #opensourcemusicians - Large general OSS musician discussion channel<br />
<br />
== See also ==<br />
<br />
* [[List of applications#Audio|Audio]] A comprehensive list of audio applications on Arch Linux<br />
* [[Realtime kernel]]<br />
* AUR meta packages: {{AUR|proaudio-meta}} and {{AUR|soundfonts-aur-meta}}<br />
* User repositories: [[Unofficial_user_repositories#aur-av-bin|aur-av-bin]], [[Unofficial_user_repositories#coderkun-aur-audio|coderkun-aur-audio]] and [[Unofficial_user_repositories#heftig|heftig]]<br />
* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] A list of software and resources for professional audio/video/live events production on the Linux platform<br />
* [https://wiki.linuxfoundation.org/realtime/start Realtime] The Linux Foundation wiki on the PREEMPT_RT patches<br />
* [http://archaudio.org ArchAudio]{{Dead link|2020|02|25}} - the now legacy - pro-audio related package repository overlay ([https://bbs.archlinux.org/viewtopic.php?id=30547 some history])<br />
* [https://www.youtube.com/watch?v=vgrqMv3Lzfk Video workshop] on setting up Manjaro for music production</div>CBiXhttps://wiki.archlinux.org/index.php?title=Arduino&diff=457018Arduino2016-11-17T17:16:09Z<p>CBiX: /* Installation */ crc32</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Mathematics and science]]<br />
[[ja:Arduino]]<br />
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It is intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. More information is available on the [http://www.arduino.cc/ Arduino HomePage].<br />
<br />
== Installation ==<br />
<br />
* Install {{AUR|arduino}} from the [[AUR]] and {{Pkg|arduino-docs}} for its offline documentation.<br />
* Add yourself to the {{ic|uucp}} and {{ic|lock}} [[groups]] (more information in the [[#Accessing serial]] section).<br />
* You may need to [[Kernel modules|load]] the {{ic|cdc_acm}} module.<br />
<br />
=== AVR Boards ===<br />
To use AVR boards such as the Arduino Uno you can install {{Pkg|arduino-avr-core}} optionally to use archlinux upstream avr-gcc instead of the bundled older avr-core. If you still want to use the older arduino-core you need to [https://www.arduino.cc/en/Guide/Cores install it in the board manager]. You can always switch between the different cores in the "Tools>Board" menu.<br />
<br />
=== Arduino Due / Yun ===<br />
<br />
The [http://arduino.cc/en/Main/arduinoBoardDue Arduino Due] and the [http://arduino.cc/en/Main/ArduinoBoardYun Arduino Yun] need the version 1.5 or newer of the Arduino IDE.<br />
<br />
=== Pinoccio Scout ===<br />
<br />
[https://pinocc.io/ Pinoccio Scouts] can also be programmed using the Arduino IDE. Instructions can be found [https://pinocc.io/solo here].<br />
Alternative you can install {{AUR|arduino-pinoccio}} from the [[AUR]].<br />
<br />
=== Intel Galileo ===<br />
<br />
To use the Intel Galileo boards with Archlinux install the Arduino IDE and download the Galileo tools package via "Tools->Board->Boards Manager".<br />
To fix the installation you can follow [https://github.com/arduino/Arduino/issues/5523 this github post].<br />
<br />
=== On Arm7 devices ===<br />
<br />
See [http://blog.tklee.org/2014/10/arduino-ide-158-on-banana-pi.html here] for a work around.<br />
<br />
=== RedBear Duo ===<br />
<br />
You might need to install {{Pkg|perl-archive-zip}} or you'll get an error about missing crc32.<br />
<br />
== Configuration ==<br />
<br />
=== Accessing serial ===<br />
<br />
The arduino board communicates with the computer via a serial connection or a serial over USB connection. So the user needs read/write access to the serial device file. [[Udev]] creates files in {{ic|/dev/tts/}} owned by group {{ic|uucp}} so adding the user to the {{ic|uucp}} group gives the required read/write access. If you are planing to use the default Java IDE, add your user to the lock group for {{ic|/var/lock/lockdev}} access.<br />
<br />
# gpasswd -a $USER uucp<br />
# gpasswd -a $USER lock<br />
{{Note|You will have to logout and login again for this to take effect.}}<br />
<br />
Before uploading to the Arduino, be sure to set the correct serial port, board, and processor from the Tools menu.<br />
<br />
== stty ==<br />
<br />
Preparing:<br />
# stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts<br />
<br />
Sending commands through Terminal without new line after command<br />
# echo -n "Hello World" > /dev/ttyACM0<br />
{{Note| As autoreset on serial connection is activated by default on most boards, you need to disable this feature if you want to communicate directly with your board with the last command instead of a terminal emulator (arduino IDE, screen, picocom...). If you have a Leonardo board, you are not concerned by this, because it does not autoreset. If you have a Uno board, connect a 10 µF capacitor between the RESET and GND pins. If you have another board, connect a 120 ohms resistor between the RESET and 5V pins. See http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection for more details.}}<br />
<br />
Reading what your Arduino has to tell you<br />
$ cat /dev/ttyACM0<br />
<br />
== Alternatives for IDE ==<br />
<br />
=== ArduIDE ===<br />
<br />
ArduIDE is a Qt-based IDE for Arduino. {{AUR|arduide-git}} is available in the [[AUR]].<br />
<br />
=== gnoduino ===<br />
<br />
{{AUR|gnoduino}} is an implementation of original Arduino IDE for GNOME available in the [[AUR]]. The original Arduino IDE software is written in Java. This is a Python implementation and it is targeted at GNOME but will work on xfce4 and other WM. Its purpose is to be light, while maintaining compatibility with the original Arduino IDE. The source editor is based on gtksourceview.<br />
<br />
<br />
If you prefer working from terminal, below there are some other options to choose from.<br />
<br />
=== Arduino-CMake ===<br />
<br />
Using [https://github.com/queezythegreat/arduino-cmake arduino-cmake] and [http://www.cmake.org/cmake/resources/software.html CMake] you can build Arduino firmware from the command line using multiple build systems. CMake lets you generate the build system that fits your needs, using the tools you like. It can generate any type of build system, from simple Makefiles, to complete projects for Eclipse, Visual Studio, XCode, etc.<br />
<br />
Requirements: {{Pkg|cmake}}, {{AUR|arduino}}, {{Pkg|avr-gcc}}, {{Pkg|avr-binutils}}, {{Pkg|avr-libc}}, {{Pkg|avrdude}}.<br />
<br />
=== Ino ===<br />
<br />
[https://github.com/amperka/ino Ino] is a command line toolkit for working with arduino hardware. {{AUR|ino}} is available in the [[AUR]].<br />
<br />
Note that {{ic|Ino}} looks for the file {{ic|avrdude.conf}} in {{ic|/etc/avrdude/avrdude.conf}}, while [[pacman]] appears to place this file (upon installation of {{pkg|avrdude}}) in {{ic|/etc/avrdude.conf}}. If {{ic|Ino}} gives you troubles create the directory {{ic|/etc/avrdude}} and make the symlink:<br />
ln -s /etc/avrdude.conf /etc/avrdude/avrdude.conf<br />
<br />
=== Makefile ===<br />
<br />
{{Note|Update 2015-03-23. Due to recent changes in Arduino ≥v1.5, many old Makefiles do not work without some modification. A simple Makefile for Arduino version 1.5+ can be found [https://github.com/tomswartz07/arduino-makefile on GitHub].}}<br />
<br />
Instead of using the Arduino IDE it is possible to use another editor and a Makefile.<br />
<br />
Set up a directory to program your Arduino and copy the Makefile into this directory. A copy of the Makefile can be obtained from {{ic|/usr/share/arduino/hardware/cores/arduino/Makefile}}<br />
<br />
You will have to modify this a little bit to reflect your settings. The makefile should be pretty self explanatory. Here are some lines you may have to edit.<br />
<br />
PORT = usually /dev/ttyUSBx, where x is the usb serial port your arduino is plugged into<br />
TARGET = your sketch's name<br />
ARDUINO = /usr/share/arduino/lib/targets/arduino<br />
<br />
Depending on which library functions you call in your sketch, you may need to compile parts of the library. To do that you need to edit your SRC and CXXSRC to include the required libraries.<br />
<br />
Now you should be able to {{ic|make && make upload}} to your board to execute your sketch.<br />
<br />
=== Arduino-mk ===<br />
<br />
{{AUR|arduino-mk}} is another alternative Makefile approach. It allows users to have a local Makefile that includes Arduino.mk. See [https://github.com/sudar/Arduino-Makefile project page] for usage.<br />
<br />
For Arduino 1.5, try the following local Makefile (because Arduino 1.5's library directory structure is slightly different):<br />
<br />
ARDUINO_DIR = /usr/share/arduino<br />
ARDMK_DIR = /usr/share/arduino<br />
AVR_TOOLS_DIR = /usr<br />
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/avr/cores/arduino<br />
BOARDS_TXT = /usr/share/arduino/hardware/arduino/avr/boards.txt<br />
ARDUINO_VAR_PATH = /usr/share/arduino/hardware/arduino/avr/variants<br />
BOOTLOADER_PARENT = /usr/share/arduino/hardware/arduino/avr/bootloaders<br />
<br />
<br />
BOARD_TAG = uno<br />
ARDUINO_LIBS =<br />
<br />
include /usr/share/arduino/Arduino.mk<br />
<br />
In some cases you could need to install {{pkg|avr-libc}} and {{pkg|avrdude}}.<br />
<br />
=== Scons ===<br />
<br />
Using [http://www.scons.org/ scons] together with [https://github.com/suapapa/arscons arscons] it is very easy to use to compile and upload Arduino projects from the command line. Scons is based on python and you will need python-pyserial to use the serial interface. Install {{pkg|python-pyserial}} and {{pkg|scons}}.<br />
<br />
That will get the dependencies you need too. You will also need Arduino itself so install it as described above. Create project directory (eg. test), then create a arduino project file in your new directory. Use the same name as the directory and add .ino (eg. test.ino). Get the [https://github.com/suapapa/arscons/blob/master/SConstruct SConstruct] script from arscons and put it in your directory. Have a peek in it and, if necessary, edit it. It is a python script. Edit your project as you please, then run<br />
<br />
$ scons # This will build the project<br />
$ scons upload # This will upload the project to your Arduino<br />
<br />
=== PlatformIO ===<br />
<br />
[http://docs.platformio.ikravets.com/en/latest/quickstart.html PlatformIO] is a python tool to build and upload sketches for multiple Hardware Platforms, at the moment of writing these are Arduino/AVR based boards, TI MSP430 and TI TM4C12x Boards. In the near future the author plans to add a library function that allows to search and include libraries directly from GitHub.<br />
<br />
==== Installation ====<br />
<br />
Install the {{AUR|platformio}} or {{AUR|platformio-git}} package.<br />
<br />
==== Usage ====<br />
<br />
$ platformio platforms install atmelavr<br />
$ platformio init<br />
$ vim platformio.ini<br />
<br />
#<br />
# Atmel AVR based board + Arduino Wiring Framework<br />
#<br />
[env:ArduinoMega2560]<br />
platform = atmelavr<br />
framework = arduino<br />
board = megaatmega2560 <br />
upload_port = /dev/ttyACM0 <br />
targets = upload<br />
<br />
$ platformio run<br />
<br />
===Emacs===<br />
<br />
It is possible to configure [[Emacs]] as IDE.<br />
<br />
Install the package {{aur|emacs-arduino-mode-git}} from the [[AUR]] in order to enable the {{ic|arduino-mode}} in emacs.<br />
<br />
Add to the init script:<br />
{{hc|~/.emacs|<br />
;; arduino-mode<br />
(require 'cl)<br />
(autoload 'arduino-mode "arduino-mode" "Arduino editing mode." t)<br />
(add-to-list 'auto-mode-alist '("\.ino$" . arduino-mode))}}<br />
<br />
You can compile and upload the sketches using {{ic|Arduino-mk}} (see above) with {{ic|M-x compile}} {{ic|make upload}}.<br />
<br />
Main resource: [http://www.emacswiki.org/emacs/ArduinoSupport here].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Version 1.6 ===<br />
<br />
As of Oct 5, 2014, most of the 3rd party tools only work for Arduino 1.0 ({{AUR|arduino10}}). Some of the tools may partially work for Arduino version 1.6 ({{AUR|arduino}}) and after. Check the version if the tools do not work.<br />
<br />
=== Consistent naming of Arduino devices ===<br />
<br />
If you have more than one arduino you may have noticed that they names /dev/ttyUSB[0-9] are assigned in the order of connection. In the IDE this is not so much of a problem, but when you have programmed your own software to communicate with an arduino project in the background this can be annoying. Use the following udev rules to assign static symlinks to your arduino's:<br />
{{hc|/etc/udev/rules.d/52-arduino.rules|<nowiki><br />
SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="sensors/ftdi_%s{serial}"<br />
</nowiki>}}<br />
Your arduino's will be available under names like "/dev/sensors/ftdi_A700dzaF". If you want you can also assign more meaningfull names to several devices like this:<br />
{{hc|/etc/udev/rules.d/52-arduino.rules|<nowiki><br />
SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A700dzaF", SYMLINK+="arduino/nano"<br />
</nowiki>}}<br />
which will create a symlink in /dev/arduino/nano to the device with the specified serialnumber.<br />
You do need to unplug and replug your arduino for this to take effect or run<br />
udevadm trigger<br />
<br />
Common {{ic|idVendor}}/{{ic|idProduct}} pairs can be found in {{ic|hardware/arduino/avr/boards.txt}} in the distribution package. Note that some of them (notably [[wikipedia:FTDI|FTDI]] ones) are not unique to the Arduino platform. Using {{ic|serial}} attribute is a good way to distinguish between various devices.<br />
<br />
=== Error opening serial port ===<br />
<br />
You may see the serial port initially when the IDE starts, but the TX/RX leds do nothing when uploading. You may have previously changed the baudrate in the serial monitor to something it does not like. Edit ~/.arduino/preferences.txt so that serial.debug_rate is a different speed, like 115200.<br />
<br />
=== Missing twi.o ===<br />
<br />
If the file {{ic|/usr/share/arduino/lib/targets/libraries/Wire/utility/twi.o}} does not exist arduino may try to create it. Normal users do not have permission to write there so this will fail. Run arduino as root so it can create the file, after the file has been created arduino can be run under a normal user.<br />
<br />
=== Working with Uno/Mega2560 ===<br />
<br />
The Arduino Uno and Mega2560 have an onboard USB interface (an Atmel 8U2) that accepts serial data, so they are accessed through /dev/ttyACM0 created by the cdc-acm kernel module when it is plugged in.<br />
<br />
The 8U2 firmware may need an update to ease serial communications. See [http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286350399] for more details and reply #11 for a fix. The original arduino bbs, where you can find an image explaining how to get your Uno into DFU, is now in a read-only state. If you do not have an account to view the image, see [http://www.scribd.com/doc/45913857/Arduino-UNO].<br />
<br />
You can perform a general function test of the Uno by putting it in loopback mode and typing characters into the arduino serial monitor at 115200 baud. It should echo the characters back to you. To put it in loopback, short pins 0 -> 1 on the digital side and either hold the reset button or short the GND -> RESET pins while you type.<br />
<br />
=== Error compiling ===<br />
If you get following message (in verbose mode)<br />
/usr/share/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../avr/bin/ld: cannot find -lm<br />
<br />
see this fix [https://bbs.archlinux.org/viewtopic.php?pid=1343402#p1343402]<br />
* install package avr-gcc<br />
* Replace build-in avr-gcc compiler by same from package installed on previous step:<br />
# cd /usr/share/arduino/hardware/tools/avr/bin<br />
# mv ./avr-gcc ./avr-gcc-backup<br />
# ln -s /usr/bin/avr-gcc ./<br />
<br />
To use the avr tools that are system installed, remove the avr directory as per the Arduino Linux install page:<br />
"If you want to use your system's compiler, delete the folder {{ic|./hardware/tools/avr}} in your arduino IDE installation"<br />
<br />
An alternate approach to take is to download the corresponding Linux install from Arduino.cc and replace the {{ic|/usr/share/arduino/hardware/tools/avr}} directory with the avr directory that comes in the stock installation archive.<br />
<br />
=== Application not resizing with WM, menus immediately closing ===<br />
see [[Java#Applications not resizing with WM, menus immediately closing]]<br />
<br />
== See also ==<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?pid=295312<br />
* https://bbs.archlinux.org/viewtopic.php?pid=981348<br />
* http://answers.ros.org/question/9097/how-can-i-get-a-unique-device-path-for-my-arduinoftdi-device/</div>CBiX