https://wiki.archlinux.org/api.php?action=feedcontributions&user=2419&feedformat=atomArchWiki - User contributions [en]2024-03-28T17:42:03ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Intel_graphics&diff=458906Intel graphics2016-12-10T05:53:01Z<p>2419: /* Kernel crashing w/kernels 4.0+ on Broadwell/Core-M chips */ add links for 'kernel parameters' to describe more exactly.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[cs:Intel graphics]]<br />
[[de:Intel]]<br />
[[es:Intel graphics]]<br />
[[fr:Intel]]<br />
[[hu:Intel graphics]]<br />
[[it:Intel graphics]]<br />
[[ja:Intel Graphics]]<br />
[[pl:Intel graphics]]<br />
[[ru:Intel graphics]]<br />
[[zh-cn:Intel graphics]]<br />
[[zh-tw:Intel graphics]]<br />
{{Related articles start}}<br />
{{Related|Intel GMA 500}}<br />
{{Related|Intel GMA 3600}}<br />
{{Related|Xorg}}<br />
{{Related|Kernel mode setting}}<br />
{{Related|Xrandr}}<br />
{{Related|Hybrid graphics}}<br />
{{Related articles end}}<br />
<br />
Since Intel provides and supports open source drivers, Intel graphics are essentially plug-and-play.<br />
<br />
For a comprehensive list of Intel GPU models and corresponding chipsets and CPUs, see [[Wikipedia:Comparison of Intel graphics processing units|this comparison on Wikipedia]].<br />
<br />
{{Note|PowerVR-based graphics ([[Intel GMA 500|GMA 500]] and [[Intel GMA 3600|GMA 3600]] series) are not supported by open source drivers.}}<br />
<br />
== Installation ==<br />
<br />
{{Note|1=Some recommend not installing the {{Pkg|xf86-video-intel}} driver, and instead falling back on the modesetting driver. See [https://packages.debian.org/sid/x11/xserver-xorg-video-intel], [https://www.reddit.com/r/archlinux/comments/4cojj9/it_is_probably_time_to_ditch_xf86videointel/], [[Xorg#Installation]], and {{man|4|modesetting|url=http://linux.die.net/man/4/modesetting}}. However, the modesetting driver can cause problems such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 Chromium Issue 370022].}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-intel}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Also see [[Hardware video acceleration]].<br />
<br />
For [[Vulkan]] support, install {{Pkg|vulkan-intel}} on Ivy-Bridge or newer GPUs.<br />
<br />
== Configuration ==<br />
<br />
There is no need for any configuration to run [[Xorg]].<br />
<br />
{{Note|The latest generation of integrated GPUs (Skylake/HD 530 for instance) may require additional configuration, see [[#Skylake support]]}}<br />
<br />
However, to take advantage of some driver options, you will need to create a Xorg configuration file similar to the one below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
EndSection}}<br />
<br />
Additional options are added by the user on new lines below {{ic|Driver}}.<br />
<br />
{{Note|<br />
*You may need to indicate {{ic|Option "AccelMethod"}} when creating a configuration file, even just to set it to the default method (currently {{ic|"sna"}}); otherwise, X may crash.<br />
*You might need to add more device sections than the one listed above. This will be indicated where necessary.}} <br />
<br />
For the full list of options, see the [[man page]] for {{ic|intel}}.<br />
<br />
== Loading ==<br />
<br />
The Intel kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since Intel requires kernel mode-setting.<br />
* Also, check that you have not disabled Intel by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
[[Kernel mode setting]] (KMS) is supported by Intel chipsets that use the i915 DRM driver and is mandatory and enabled by default.<br />
<br />
Refer to [[Kernel mode setting#Early KMS start]] for instuctions on how to enable KMS as soon as possible at the boot process.<br />
<br />
== Module-based Powersaving Options ==<br />
<br />
The {{ic|i915}} kernel module allows for configuration via [[Kernel modules#Setting module options|module options]]. Some of the module options impact power saving.<br />
<br />
A list of all options along with short descriptions and default values can be generated with the following command:<br />
<br />
$ modinfo -p i915<br />
<br />
To check which options are currently enabled, run<br />
<br />
# systool -m i915 -av<br />
<br />
You will note that many options default to -1, resulting in per-chip powersaving defaults. It is however possible to configure more aggressive powersaving by using [[Kernel modules#Setting module options|module options]].<br />
<br />
{{Warning|1=Diverting from the defaults will mark the kernel as [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] from Linux 3.18 onwards. This basically implies using other options than the per-chip defaults is considered experimental and not supported by the developers. }}<br />
<br />
The following set of options should be generally safe to enable:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|<nowiki><br />
options i915 enable_rc6=1 enable_fbc=1 semaphores=1<br />
</nowiki>}}<br />
<br />
=== RC6 sleep modes (enable_rc6) ===<br />
<br />
You can experiment with higher values for {{ic|enable_rc6}}, but your GPU may not support them or the activation of the other options [https://wiki.archlinux.org/index.php?title=Talk:Intel_Graphics&oldid=327547#Kernel_Module_options].<br />
<br />
The available {{ic|enable_rc6}} values are a bitmask with bit values RC6=1, RC6p=2, RC6pp=4[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_pm.c#n34] - where "RC6p" and "RC6pp" are lower power states.<br />
<br />
To confirm the current running RC6 level, you can look in sysfs:<br />
<br />
# cat /sys/class/drm/card0/power/rc6_enable<br />
<br />
... if the value read is a lower number than expected, the other RC6 level are probably not supported. Passing {{ic|1=drm.debug=0xe}} will add DRM debugging information to the kernel log - possibly including a line like this:<br />
<br />
[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)<br />
<br />
=== Framebuffer compression (enable_fbc) ===<br />
<br />
Framebuffer compression may be unreliable or unavailable on Intel GPU generations before Sandy Bridge (generation 6). This results in messages logged to the system journal similar to this one:<br />
kernel: drm: not enough stolen space for compressed buffer, disabling.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Tear-free video ===<br />
<br />
The SNA acceleration method causes tearing for some people. To fix this, enable the {{ic|"TearFree"}} option in the driver by adding the following line to your [[#Configuration|configuration file]]:<br />
Option "TearFree" "true"<br />
<br />
See the [https://bugs.freedesktop.org/show_bug.cgi?id=37686 original bug report] for more info.<br />
<br />
{{Note|<br />
* This option may not work when {{ic|SwapbuffersWait}} is {{ic|false}}.<br />
* This option is problematic for applications that are very picky about vsync timing, like [[Wikipedia:Super Meat Boy|Super Meat Boy]].<br />
* This option does not work with UXA acceleration method, only with SNA.<br />
* This option should not be needed with DRI3 enabled.<br />
}}<br />
<br />
=== Disable Vertical Synchronization (VSYNC) ===<br />
The intel-driver uses [http://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] for vertical synchronization, this allows for full performance and avoids tearing. To turn vertical synchronization off (e.g. for benchmarking) use this {{ic|.drirc}} in your home directory:<br />
<br />
{{hc|~/.drirc|<br />
<device screen&#61;"0" driver&#61;"dri2"><br />
<application name&#61;"Default"><br />
<option name&#61;"vblank_mode" value&#61;"0"/><br />
</application><br />
</device>}}<br />
<br />
{{Warning|Do not use {{Pkg|driconf}} to create this file. It is buggy and will set the wrong driver.}}<br />
<br />
=== Setting scaling mode ===<br />
<br />
This can be useful for some full screen applications:<br />
<br />
$ xrandr --output LVDS1 --set PANEL_FITTING ''param''<br />
<br />
where {{ic|''param''}} can be:<br />
<br />
* {{ic|center}}: resolution will be kept exactly as defined, no scaling will be made,<br />
* {{ic|full}}: scale the resolution so it uses the entire screen or<br />
* {{ic|full_aspect}}: scale the resolution to the maximum possible but keep the aspect ratio.<br />
<br />
If it does not work, try:<br />
<br />
$ xrandr --output LVDS1 --set "scaling mode" ''param''<br />
<br />
where {{ic|''param''}} is one of {{ic|"Full"}}, {{ic|"Center"}} or {{ic|"Full aspect"}}.<br />
<br />
=== KMS Issue: console is limited to small area ===<br />
<br />
One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen. To fix, explicitly disable the port with an i915 module setting with {{ic|1=video=SVIDEO-1:d}} in the kernel command line parameter in the bootloader. See [[Kernel parameters]] for more info.<br />
<br />
If that does not work, try disabling TV1 or VGA1 instead of SVIDEO-1.<br />
<br />
=== H.264 decoding on GMA 4500 ===<br />
<br />
The {{Pkg|libva-intel-driver}} package provides MPEG-2 decoding only for GMA 4500 series GPUs. The H.264 decoding support is maintained in a separated g45-h264 branch, which can be used by installing {{AUR|libva-intel-driver-g45-h264}} package. Note however that this support is experimental and its development has been abandoned. Using the VA-API with this driver on a GMA 4500 series GPU will offload the CPU but may not result in as smooth a playback as non-accelerated playback. Tests using mplayer showed that using vaapi to play back an H.264 encoded 1080p video halved the CPU load (compared to the XV overlay) but resulted in very choppy playback, while 720p worked reasonably well [https://bbs.archlinux.org/viewtopic.php?id=150550]. This is echoed by other experiences [http://www.emmolution.org/?p=192&cpage=1#comment-12292].<br />
Setting the preallocated video ram size higher in bios results in much better hardware decoded playback. Even 1080p h264 works well if this is done.<br />
<br />
=== Setting brightness and gamma ===<br />
<br />
See [[Backlight]].<br />
<br />
== Troubleshooting ==<br />
<br />
=== SNA issues ===<br />
<br />
''SNA'' is the default acceleration method in {{Pkg|xf86-video-intel}}. If you are experience issues with ''SNA'' (e.g. pixelated graphics, corrupt text, etc.), try using ''UXA'' instead, which can be done by adding the following line to your [[#Configuration|configuration file]]:<br />
Option "AccelMethod" "uxa"<br />
<br />
See {{ic|man 4 intel}} under {{ic|Option "AccelMethod"}}.<br />
<br />
=== DRI3 issues ===<br />
<br />
''DRI3'' is the default DRI version in {{Pkg|xf86-video-intel}}. On some systems this can cause issues such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 this]. To switch back to ''DRI2'' add the following line to your [[#Configuration|configuration file]]:<br />
Option "DRI" "2"<br />
<br />
=== Font and screen corruption in GTK+ applications (missing glyphs after suspend/resume) ===<br />
<br />
Should you experience missing font glyphs in GTK+ applications, the following workaround might help. [[textedit|Edit]] {{ic|/etc/environment}} to add the following line:<br />
<br />
{{hc|/etc/environment|output=<br />
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer<br />
}}<br />
<br />
See also [https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584].<br />
<br />
=== Blank screen during boot, when "Loading modules" ===<br />
<br />
If using "late start" KMS and the screen goes blank when "Loading modules", it may help to add {{ic|i915}} and {{ic|intel_agp}} to the initramfs. See [[Kernel mode setting#Early KMS start]] section.<br />
<br />
Alternatively, appending the following [[kernel parameter]] seems to work as well:<br />
<br />
video=SVIDEO-1:d<br />
<br />
If you need to output to VGA then try this:<br />
<br />
video=VGA-1:1280x800<br />
<br />
=== X freeze/crash with intel driver ===<br />
<br />
Some issues with X crashing, GPU hanging, or problems with X freezing, can be fixed by disabling the GPU usage with the {{ic|NoAccel}} option - add the following lines to your [[#Configuration|configuration file]]:<br />
Option "NoAccel" "True"<br />
<br />
Alternatively, try to disable the 3D acceleration only with the {{ic|DRI}} option:<br />
Option "DRI" "False"<br />
<br />
If you experience crashes and have<br />
<br />
Option "TearFree" "true"<br />
Option "AccelMethod" "sna"<br />
<br />
in your configuration file, in most cases these can be fixed by adding<br />
<br />
i915.semaphores=1<br />
<br />
to your boot parameters.<br />
<br />
If you are using kernel 4.0.X or above on Baytrail architecture and frequently encounter complete system freezes (especially when watching video or using GFX intensivelly), you should try adding the following kernel option as a workaround, until [https://bugzilla.kernel.org/show_bug.cgi?id=109051 this bug] will be fixed permanently.<br />
<br />
intel_idle.max_cstate=1<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
This issue is covered on the [[Xrandr#Adding undetected resolutions|Xrandr page]].<br />
<br />
=== Weathered colors (color range problem) ===<br />
<br />
{{Note|This problem is related to the [http://lists.freedesktop.org/archives/dri-devel/2013-January/033576.html changes] in the kernel 3.9. This problem still remains in kernel 4.1.}}<br />
Kernel 3.9 contains a new default "Automatic" mode for the "Broadcast RGB" property in the Intel driver. It is almost equivalent to "Limited 16:235" (instead of the old default "Full") whenever an HDMI/DP output is in a [http://raspberrypi.stackexchange.com/questions/7332/what-is-the-difference-between-cea-and-dmt CEA mode]. If a monitor does not support signal in limited color range, it will cause weathered colors.<br />
<br />
{{Note|Some monitors/TVs support both color range. In that case an option often known as ''Black Level'' may need to be adjusted to make them handle the signal correctly. Some TVs can handle signal in limited range only. Setting Broadcast RGB to "Full" will cause color clipping. You may need to set it to "Limited 16:235" manually to avoid the clipping.}}<br />
<br />
One can force mode e.g. {{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} (replace {{ic|<HDMI>}} with the appropriate output device, verify by running {{ic|xrandr}}).<br />
<br />
Unfortunately, the Intel driver does not support setting the color range through an {{ic|xorg.conf.d}} configuration file.<br />
<br />
A [https://bugzilla.kernel.org/show_bug.cgi?id=94921 bug report] is filed and a patch can be found in the attachment.<br />
<br />
Also there are other related problems which can be fixed editing GPU registers. More information can be found [http://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] and [http://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c].<br />
<br />
=== Backlight is not adjustable===<br />
<br />
If after resuming from suspend, the hotkeys for changing the screen brightness do not take effect, check your configuration against the [[Backlight]] article.<br />
<br />
If the problem persists, try one of the following [[kernel parameters]]:<br />
<br />
acpi_osi=Linux<br />
acpi_osi="!Windows 2012"<br />
acpi_osi=<br />
<br />
=== Disabling frame buffer compression ===<br />
<br />
Enabling frame buffer compression on pre-Sandy Bridge CPUs results in endless error messages:<br />
<br />
$ dmesg |tail <br />
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling<br />
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this<br />
<br />
The solution is to disable frame buffer compression which will imperceptibly increase power consumption (around 0.06 W). In order to disable it add {{ic|i915.enable_fbc&#61;0}} to the kernel line parameters. More information on the results of disabled compression can be found [http://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ here].<br />
<br />
=== Corruption/Unresponsiveness in Chromium and Firefox ===<br />
<br />
If you experience corruption or unresponsiveness in Chromium and/or Firefox [[#SNA issues|set the AccelMethod to "uxa"]].<br />
<br />
=== Kernel crashing w/kernels 4.0+ on Broadwell/Core-M chips ===<br />
<br />
A few seconds after X/Wayland loads the machine will freeze and journalctl will log a kernel crash referencing the Intel graphics as below:<br />
<br />
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)<br />
Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null)<br />
...<br />
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1<br />
...<br />
Jun 16 17:54:03 hostname kernel: Call Trace:<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17<br />
Jun 16 17:54:03 hostname kernel: Code: Bad RIP value.<br />
Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)<br />
<br />
This can be fixed by disabling execlist support which was changed to default on with kernel 4.0. Add the following [[kernel parameters]]:<br />
i915.enable_execlists=0<br />
<br />
This is known to be broken to at least kernel 4.0.5.<br />
<br />
===Skylake support===<br />
<br />
For Linux kernels older than 4.3.x, {{ic|i915.preliminary_hw_support&#61;1}} must be added to your boot parameters for the driver to work on the new Intel Skylake (6th gen.) GPUs. On a fully updated system running kernel 4.3.x and up, this step is unnecessary.<br />
<br />
The i915 DRM driver is known to cause various GPU hangs, crashes and even full system freezes. It might be necessary to disable hardware acceleration to workaround these issues. One solution is to use the following Xorg configuration.<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
Option "DRI" "false"<br />
EndSection<br />
}}<br />
<br />
Otherwise, specific applications such as Chromium and Firefox browsers can be instructed to disable hardware rendering directly.<br />
<br />
Another option that seems to work for some users is to add the {{ic|1=i915.enable_rc6=0}} kernel boot parameter, which will cause the CPU/GPU to remain in high-power modes, but seems to resolve most cases of GPU hangs and system freezes.<br />
<br />
{{Note|If the system appears to hang after "Loading Initial Ramdisk", make sure that the IGD aperture size in BIOS is less than 4GB.}}<br />
<br />
=== Lag in Windows guests ===<br />
<br />
The video output of a Windows guest in VirtualBox sometimes hangs until the host forces a screen update (e.g. by moving the mouse cursor). Removing the {{ic|1=enable_fbc=1}} option fixes this issue.<br />
<br />
=== Screen flickering ===<br />
<br />
The following power saving features used by intel iGPUs are known to cause flickering in some instances. A temporary solution is to disable one of them using the appropriate [[Kernel_parameters|kernel boot parameter]] option:<br />
<br />
*Rc6 sleep modes (see [[intel#RC6_sleep_modes_(enable_rc6)]]), can be disabled with {{ic|1=i915.enable_rc6=0}}.<br />
<br />
*Panel Self Refresh (PSR) {{Bug|49628}} {{Bug|49371}} {{Bug|50605}}, enabled by default since kernel mainline 4.6. To disable this feature use the option {{ic|1=i915.enable_psr=0}}.<br />
<br />
== See also ==<br />
<br />
* https://01.org/linuxgraphics/documentation (includes a list of supported hardware)</div>2419https://wiki.archlinux.org/index.php?title=Lantern&diff=453824Lantern2016-10-13T15:11:44Z<p>2419: /* Client */ add single whitespace for code</p>
<hr />
<div>[[Category:Proxy servers]]<br />
[https://getlantern.org Lantern ] is a free peer-to-peer internet censorship circumvention software.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{AUR|lantern}} package.<br />
<br />
== Setup ==<br />
<br />
Now the lantern has a web client (http://127.0.0.1:xxxx) interfaces.<br />
<br />
=== Client ===<br />
<br />
The client is started with the {{ic|lantern}} command.To start it using the configuration file {{ic|~/.lantern/setting.yaml}}:<br />
<br />
$ lantern<br />
<br />
Then simply open your favorite browser and navigate to any blocked site. Any browser should work, as Lantern configures itself to handle any connection from your computer.<br />
<br />
== See also ==<br />
* [https://getlantern.org Lantern website]<br />
* [https://github.com/getlantern/lantern GitHub project]</div>2419https://wiki.archlinux.org/index.php?title=Lantern&diff=453823Lantern2016-10-13T15:09:34Z<p>2419: /* Client */ add code word</p>
<hr />
<div>[[Category:Proxy servers]]<br />
[https://getlantern.org Lantern ] is a free peer-to-peer internet censorship circumvention software.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{AUR|lantern}} package.<br />
<br />
== Setup ==<br />
<br />
Now the lantern has a web client (http://127.0.0.1:xxxx) interfaces.<br />
<br />
=== Client ===<br />
<br />
The client is started with the {{ic|lantern}} command.To start it using the configuration file {{ic|~/.lantern/setting.yaml}}:<br />
[code]$ lantern[/code]<br />
Then simply open your favorite browser and navigate to any blocked site. Any browser should work, as Lantern configures itself to handle any connection from your computer.<br />
<br />
== See also ==<br />
* [https://getlantern.org Lantern website]<br />
* [https://github.com/getlantern/lantern GitHub project]</div>2419https://wiki.archlinux.org/index.php?title=Lantern&diff=453779Lantern2016-10-13T13:34:09Z<p>2419: add new page 'lantern' from https://github.com/getlantern/lantern</p>
<hr />
<div>[[Category:Proxy servers]]<br />
[https://getlantern.org Lantern ] is a free peer-to-peer internet censorship circumvention software.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{AUR|lantern}} package.<br />
<br />
== Setup ==<br />
<br />
Now the lantern has a web client (http://127.0.0.1:xxxx) interfaces.<br />
<br />
=== Client ===<br />
<br />
The client is started with the {{ic|lantern}} command.To start it using the configuration file {{ic|~/.lantern/setting.yaml}}:<br />
$ lantern<br />
Then simply open your favorite browser and navigate to any blocked site. Any browser should work, as Lantern configures itself to handle any connection from your computer.<br />
<br />
== See also ==<br />
* [https://getlantern.org Lantern website]<br />
* [https://github.com/getlantern/lantern GitHub project]</div>2419https://wiki.archlinux.org/index.php?title=MentoHUST_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=451490MentoHUST (简体中文)2016-09-22T12:05:38Z<p>2419: /* 安装 */ remove 'broke link'</p>
<hr />
<div>[[Category:Networking (简体中文)]]<br />
[[Category:简体中文]]<br />
锐捷是国内众多大学采用的拨号客户端,但其 Linux 版久无更新,很多使用它的用户无法通过认证,少数能通过但容易掉线。虽然网上第三方 Linux 版锐捷客户端不少,但都大同小异,难以通过锐捷的客户端校验。<br />
<br />
本条目旨在提供一个在 Linux 下能与锐捷兼容性很好的认证客户端 MentoHUST 使用教程,方便 Arch Linux 用户实现锐捷拨号并上网。<br />
<br />
== 安装 ==<br />
<br />
安装 [[Arch User Repository (简体中文)|AUR]] 中的 {{AUR|mentohust-git}} 即可。<br />
<br />
== 配置与运行 ==<br />
<br />
=== 网络参数配置 ===<br />
MentoHUST 直接依赖 Arch Linux 内置的相关网络参数,例如 IP、网关、DNS 等等,需要事先进行此方面的配置。<br />
<br />
{{注意|以下包含的 {{ic|eth0}} 为一种网卡,且每种 PC 所拥有的网卡名称却不一定是这个,请自行执行 {{ic|ip link}} 以查询本机上正确的网卡名称即可。}}<br />
<br />
不论获取 IP 方式如何,用户需事先从校方相关部门索取用户名和密码。<br />
<br />
==== 静态 IP 用户 ====<br />
首先一般需要事先从校方相关部门索取 IP、子网掩码、网关、DNS 信息等,不妨假设分别为 {{ic|10.10.45.49}},{{ic|24}},{{ic|10.10.173.1}},{{ic|210.32.24.21}},以及主机所用网络接口为{{ic|eth0}}。执行以下命令设置即可:<br />
<br />
启动网络接口<br />
<br />
$ ip link set eth0 up<br />
<br />
在其网络接口上设置 IP(后缀紧跟了子网掩码)<br />
<br />
$ ip addr add 10.10.45.49/24 dev eth0<br />
<br />
在路由表上添加网关记录<br />
<br />
$ ip route add default via 10.10.45.1<br />
<br />
在 {{ic|/etc/resolv.conf}} 上添加 DNS 地址<br />
<br />
$ echo "nameserver 210.32.24.21 > /etc/resolv.conf<br />
<br />
==== 动态 IP 用户 ====<br />
<br />
首先同样地要启动网络接口<br />
<br />
$ ip link set eth0 up<br />
<br />
但无须设置其它网络参数,直接启动 dhpcd 即可:<br />
<br />
$ systemctl start dhcpcd@eth0.service<br />
<br />
=== MentoHUST 配置 ===<br />
<br />
MentoHUST 参数丰富,以最大程度适应不同学校的不同锐捷认证环境。本程序使用配置文件 {{ic|/etc/mentohust.conf}} 保存参数,虽然该配置文件是还算标准的 ini 格式文件,并不复杂。但还是有人因多加空格或;导致配置出现问题,所以不提倡手工修改配置文件来设置参数,而是直接靠命令参数配置。<br />
<br />
==== 参数说明 ====<br />
<br />
{{ic|-h}} 显示帮助信息。<br />
<br />
{{ic|-k}} MentoHUST 支持 daemon 运行,也就是认证成功后可以关闭终端而认证不会中断。当进入 daemon 运行方式后,是不能像没有进入这一模式时一样通过Ctrl+C退出的,这时如果需要退出,可以使用以下命令:<br />
<br />
$ mentohust -k<br />
<br />
或者<br />
<br />
$ pkill mentohust<br />
<br />
{{ic|-w}} 在命令行参数中指定的参数默认不会保存到配置文件,如果需要保存,请加上该参数,例如下面这个命令将会把用户名更新为hust,密码更新为123456。<br />
<br />
$ mentohust -u hust -p 123456 -w<br />
<br />
{{ic|-u,-p,-n}} 分别指定用户名、密码、网卡。如果均不指定,就会自动判断是否需要输入。<br />
<br />
{{ic|-i,-m,-g,-s}} 静态 IP 用户可通过这些参数分别指定学校分配的 IP、子网掩码、网关、DNS。但由于已经在[[#网络参数配置]]事先设定好,一般不用再考虑。<br />
<br />
{{ic|-o}} 指定智能重连时用来 ping 的目标 IP,例如未认证时,1.2.3.4 无法 ping 通,认证成功后可以 ping 通,就可以加上参数 {{ic|-o 1.2.3.4}},当掉线且未收到服务器下线通知时会在掉线1分钟之内重连。除非网络不好,一般不会掉线,掉线且收到服务器下线通知时会在掉线后立即重连。<br />
<br />
{{ic|-t}} 指定认证时多少秒后仍未收到服务器回应则重启认证,一般保持默认即可。<br />
<br />
{{ic|-e}} 指定认证成功后每隔多少秒向服务器发送一次数据以表明自己仍然在线,一般保持默认即可。<br />
<br />
{{ic|-r}} 由于有些学校会规定认证失败后一定时间内不允许再次认证,所以在这期间不论发多少数据服务器都不会响应,为了减少这种垃圾数据,MentoHUST 会在认证失败后等待一段时间或者服务器向客户端请求数据时再认证,这个时间就由此参数指定,一般保持默认即可。 {{ic|-r15}} 并不是说在认证失败后15秒才会再次认证,如果在15秒内服务器发来一个数据包要求开始认证,MentoHUST会放弃等待,立即开始再次认证。<br />
<br />
{{ic|-a}} 指定组播地址或客户端类型,{{ic|-a0}} 为标准 {{ic|-a1}} 为锐捷私有,这两个分别对应于锐捷中的标准和私有,有些学校只能用标准,有些学校只能用私有,所以如果提示“找不到服务器”而网卡并没有选错,就检查是不是这里设置错了。{{ic|-a2}} 表示将MentoHUST用于赛尔认证(赛尔用 {{ic|-a0}} 标准也行)。<br />
<br />
{{ic|-d}} 指定 DHCP 方式,使用动态 IP 的同学应该在这里正确设置,一般不是 {{ic|1}} 就是 {{ic|2}},如果用 {{ic|3}} 认证成功却无法上网,请改成 {{ic|1}} 试试。使用静态 IP 的同学应该将这里设为 {{ic|0}}。<br />
<br />
{{ic|-b}} 指定后台(daemon)运行方式,{{ic|-b0}} 不后台运行,认证成功后,不能关闭终端;{{ic|-b1}}、{{ic|-b2}} 均为后台运行,但前者无输出,后者则保留输出;{{ic|-b3}} 后台运行并将输出保存到 {{ic|/tmp/mentohust.log}},可以随时打开该文件查看输出。<br />
<br />
{{ic|-y}} 指定是否显示通知(notify),{{ic|-y0}} 不显示,{{ic|1~20}} 显示,其中数字指定通知持续时间。<br />
<br />
{{ic|-c}} 指定动态 IP 用户 DHCP 时运行的脚本,一般保持默认即可。如果觉得这个输出太多影响用户,可以改为 {{ic|-cdhclient>/dev/null}}。 <br />
<br />
{{ic|-q}} 很多锐捷用户不清楚他们的 DHCP 方式是什么,本参数用于显示解密后的锐捷 {{ic|SuConfig.dat}} 文件内容。假如锐捷所在目录为/path/to,则执行以下命令即可:<br />
<br />
# mentohust -q '/path/to/SuConfig.dat'<br />
<br />
==== 示范 ====<br />
<br />
某用户获取 IP 的方式是静态 IP,用户名为{{ic|hust}},密码为{{ic|123456}},ping 地址为{{ic|192.168.1.254}},同时以 deamon 方式保存输出到文件。<br />
<br />
首先按[[#网络参数配置]]配置好 IP、网关、子网掩码、DNS 等,然后执行:<br />
<br />
# mentohust -u hust -p 123456 -o 192.168.1.254 -b 3 -w<br />
<br />
=== 运行 ===<br />
<br />
$ systemctl start mentohust.service<br />
<br />
若要开机自启动,执行以下一次即可:<br />
<br />
$ systemctl enable mentohust.service<br />
<br />
== 故障排除 ==<br />
<br />
=== 提示“在网卡 eth0 上获取 IP 失败” ===<br />
<br />
如果获取 IP 方式是是动态 IP 的话,无须理会;否则按[[#网络参数配置]]进行排错。<br />
<br />
=== 提示“IP 地址类型错误” ===<br />
<br />
DHCP 方式设置错误。使用 {{ic|-q}} 参数查看正确的 DHCP 方式并按需修改。<br />
<br />
=== 提示“IP 端口绑定错误" ===<br />
<br />
若是静态 IP,原因是在 MentoHUST 中将绑定 IP 设置错误,可以通过 {{ic|-i}} 参数修改。<br />
<br />
=== 提示“找不到服务器” ===<br />
<br />
一般是选错了组播模式,在“标准”与“锐捷”中切换试试。<br />
<br />
如果 ping 任何 IP 均出现 {{ic|Destination Host Unreacheable}} 错误,请检查下网线。<br />
<br />
=== 提示“不允许使用的客户端类型” ===<br />
<br />
学校禁用了 xrgsu ,使用 {{ic|-v}} 参数指定版本号,或者复制相关文件({{ic|8021x.exe}} 和 {{ic|W32N55.dll}},可能还需要 {{ic|SuConfig.dat}})到 {{ic|/etc/mentohust/}}。<br />
<br />
=== 提示“客户端版本过低” ===<br />
<br />
和[[#提示“不允许使用的客户端类型”]]的解决方法相同。<br />
<br />
=== 提示“客户端完整性被破坏” === <br />
<br />
说明校方开启了客户端校验,复制相关文件({{ic|8021x.exe}} 和 {{ic|W32N55.dll}},可能还需要 {{ic|SuConfig.dat}})到 {{ic|/etc/mentohust/}}。<br />
<br />
=== 认证成功但仍无法上网 ===<br />
<br />
静态 IP 用户未正确设置 IP 及 DNS,或动态 IP 用户未能正确地获取到 IP 及 DNS。<br />
<br />
== 二次拨号 ==<br />
<br />
可参见 [http://arch.acgtyrant.com/2014/02/23/mentohust-and-l2tp/ MentoHUST 及『二次撥號』的臨時解決方案]<br />
<br />
== 参见 ==<br />
<br />
MentoHUST 在 [https://code.google.com/p/mentohust/ Google Code 的主页]<br />
<br />
Ubuntu Wiki 条目[http://wiki.ubuntu.org.cn/%E9%94%90%E6%8D%B7%E3%80%81%E8%B5%9B%E5%B0%94%E8%AE%A4%E8%AF%81MentoHUST 『锐捷、赛尔认证MentoHUST』]<br />
<br />
[https://github.com/acgtyrant/bin/blob/master/mentohust.sh acgtyrant 在浙江理工大学进行锐捷拨号的自动化脚本]</div>2419https://wiki.archlinux.org/index.php?title=MentoHUST_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=451488MentoHUST (简体中文)2016-09-22T12:03:01Z<p>2419: /* 安装 */ correct package name from AUR</p>
<hr />
<div>[[Category:Networking (简体中文)]]<br />
[[Category:简体中文]]<br />
锐捷是国内众多大学采用的拨号客户端,但其 Linux 版久无更新,很多使用它的用户无法通过认证,少数能通过但容易掉线。虽然网上第三方 Linux 版锐捷客户端不少,但都大同小异,难以通过锐捷的客户端校验。<br />
<br />
本条目旨在提供一个在 Linux 下能与锐捷兼容性很好的认证客户端 MentoHUST 使用教程,方便 Arch Linux 用户实现锐捷拨号并上网。<br />
<br />
== 安装 ==<br />
<br />
安装 [[Arch User Repository (简体中文)|AUR]] 中的 {{AUR|mentohust-git}}{{Broken package link|{{aur-mirror|mentohust-git}}}} 即可。<br />
<br />
== 配置与运行 ==<br />
<br />
=== 网络参数配置 ===<br />
MentoHUST 直接依赖 Arch Linux 内置的相关网络参数,例如 IP、网关、DNS 等等,需要事先进行此方面的配置。<br />
<br />
{{注意|以下包含的 {{ic|eth0}} 为一种网卡,且每种 PC 所拥有的网卡名称却不一定是这个,请自行执行 {{ic|ip link}} 以查询本机上正确的网卡名称即可。}}<br />
<br />
不论获取 IP 方式如何,用户需事先从校方相关部门索取用户名和密码。<br />
<br />
==== 静态 IP 用户 ====<br />
首先一般需要事先从校方相关部门索取 IP、子网掩码、网关、DNS 信息等,不妨假设分别为 {{ic|10.10.45.49}},{{ic|24}},{{ic|10.10.173.1}},{{ic|210.32.24.21}},以及主机所用网络接口为{{ic|eth0}}。执行以下命令设置即可:<br />
<br />
启动网络接口<br />
<br />
$ ip link set eth0 up<br />
<br />
在其网络接口上设置 IP(后缀紧跟了子网掩码)<br />
<br />
$ ip addr add 10.10.45.49/24 dev eth0<br />
<br />
在路由表上添加网关记录<br />
<br />
$ ip route add default via 10.10.45.1<br />
<br />
在 {{ic|/etc/resolv.conf}} 上添加 DNS 地址<br />
<br />
$ echo "nameserver 210.32.24.21 > /etc/resolv.conf<br />
<br />
==== 动态 IP 用户 ====<br />
<br />
首先同样地要启动网络接口<br />
<br />
$ ip link set eth0 up<br />
<br />
但无须设置其它网络参数,直接启动 dhpcd 即可:<br />
<br />
$ systemctl start dhcpcd@eth0.service<br />
<br />
=== MentoHUST 配置 ===<br />
<br />
MentoHUST 参数丰富,以最大程度适应不同学校的不同锐捷认证环境。本程序使用配置文件 {{ic|/etc/mentohust.conf}} 保存参数,虽然该配置文件是还算标准的 ini 格式文件,并不复杂。但还是有人因多加空格或;导致配置出现问题,所以不提倡手工修改配置文件来设置参数,而是直接靠命令参数配置。<br />
<br />
==== 参数说明 ====<br />
<br />
{{ic|-h}} 显示帮助信息。<br />
<br />
{{ic|-k}} MentoHUST 支持 daemon 运行,也就是认证成功后可以关闭终端而认证不会中断。当进入 daemon 运行方式后,是不能像没有进入这一模式时一样通过Ctrl+C退出的,这时如果需要退出,可以使用以下命令:<br />
<br />
$ mentohust -k<br />
<br />
或者<br />
<br />
$ pkill mentohust<br />
<br />
{{ic|-w}} 在命令行参数中指定的参数默认不会保存到配置文件,如果需要保存,请加上该参数,例如下面这个命令将会把用户名更新为hust,密码更新为123456。<br />
<br />
$ mentohust -u hust -p 123456 -w<br />
<br />
{{ic|-u,-p,-n}} 分别指定用户名、密码、网卡。如果均不指定,就会自动判断是否需要输入。<br />
<br />
{{ic|-i,-m,-g,-s}} 静态 IP 用户可通过这些参数分别指定学校分配的 IP、子网掩码、网关、DNS。但由于已经在[[#网络参数配置]]事先设定好,一般不用再考虑。<br />
<br />
{{ic|-o}} 指定智能重连时用来 ping 的目标 IP,例如未认证时,1.2.3.4 无法 ping 通,认证成功后可以 ping 通,就可以加上参数 {{ic|-o 1.2.3.4}},当掉线且未收到服务器下线通知时会在掉线1分钟之内重连。除非网络不好,一般不会掉线,掉线且收到服务器下线通知时会在掉线后立即重连。<br />
<br />
{{ic|-t}} 指定认证时多少秒后仍未收到服务器回应则重启认证,一般保持默认即可。<br />
<br />
{{ic|-e}} 指定认证成功后每隔多少秒向服务器发送一次数据以表明自己仍然在线,一般保持默认即可。<br />
<br />
{{ic|-r}} 由于有些学校会规定认证失败后一定时间内不允许再次认证,所以在这期间不论发多少数据服务器都不会响应,为了减少这种垃圾数据,MentoHUST 会在认证失败后等待一段时间或者服务器向客户端请求数据时再认证,这个时间就由此参数指定,一般保持默认即可。 {{ic|-r15}} 并不是说在认证失败后15秒才会再次认证,如果在15秒内服务器发来一个数据包要求开始认证,MentoHUST会放弃等待,立即开始再次认证。<br />
<br />
{{ic|-a}} 指定组播地址或客户端类型,{{ic|-a0}} 为标准 {{ic|-a1}} 为锐捷私有,这两个分别对应于锐捷中的标准和私有,有些学校只能用标准,有些学校只能用私有,所以如果提示“找不到服务器”而网卡并没有选错,就检查是不是这里设置错了。{{ic|-a2}} 表示将MentoHUST用于赛尔认证(赛尔用 {{ic|-a0}} 标准也行)。<br />
<br />
{{ic|-d}} 指定 DHCP 方式,使用动态 IP 的同学应该在这里正确设置,一般不是 {{ic|1}} 就是 {{ic|2}},如果用 {{ic|3}} 认证成功却无法上网,请改成 {{ic|1}} 试试。使用静态 IP 的同学应该将这里设为 {{ic|0}}。<br />
<br />
{{ic|-b}} 指定后台(daemon)运行方式,{{ic|-b0}} 不后台运行,认证成功后,不能关闭终端;{{ic|-b1}}、{{ic|-b2}} 均为后台运行,但前者无输出,后者则保留输出;{{ic|-b3}} 后台运行并将输出保存到 {{ic|/tmp/mentohust.log}},可以随时打开该文件查看输出。<br />
<br />
{{ic|-y}} 指定是否显示通知(notify),{{ic|-y0}} 不显示,{{ic|1~20}} 显示,其中数字指定通知持续时间。<br />
<br />
{{ic|-c}} 指定动态 IP 用户 DHCP 时运行的脚本,一般保持默认即可。如果觉得这个输出太多影响用户,可以改为 {{ic|-cdhclient>/dev/null}}。 <br />
<br />
{{ic|-q}} 很多锐捷用户不清楚他们的 DHCP 方式是什么,本参数用于显示解密后的锐捷 {{ic|SuConfig.dat}} 文件内容。假如锐捷所在目录为/path/to,则执行以下命令即可:<br />
<br />
# mentohust -q '/path/to/SuConfig.dat'<br />
<br />
==== 示范 ====<br />
<br />
某用户获取 IP 的方式是静态 IP,用户名为{{ic|hust}},密码为{{ic|123456}},ping 地址为{{ic|192.168.1.254}},同时以 deamon 方式保存输出到文件。<br />
<br />
首先按[[#网络参数配置]]配置好 IP、网关、子网掩码、DNS 等,然后执行:<br />
<br />
# mentohust -u hust -p 123456 -o 192.168.1.254 -b 3 -w<br />
<br />
=== 运行 ===<br />
<br />
$ systemctl start mentohust.service<br />
<br />
若要开机自启动,执行以下一次即可:<br />
<br />
$ systemctl enable mentohust.service<br />
<br />
== 故障排除 ==<br />
<br />
=== 提示“在网卡 eth0 上获取 IP 失败” ===<br />
<br />
如果获取 IP 方式是是动态 IP 的话,无须理会;否则按[[#网络参数配置]]进行排错。<br />
<br />
=== 提示“IP 地址类型错误” ===<br />
<br />
DHCP 方式设置错误。使用 {{ic|-q}} 参数查看正确的 DHCP 方式并按需修改。<br />
<br />
=== 提示“IP 端口绑定错误" ===<br />
<br />
若是静态 IP,原因是在 MentoHUST 中将绑定 IP 设置错误,可以通过 {{ic|-i}} 参数修改。<br />
<br />
=== 提示“找不到服务器” ===<br />
<br />
一般是选错了组播模式,在“标准”与“锐捷”中切换试试。<br />
<br />
如果 ping 任何 IP 均出现 {{ic|Destination Host Unreacheable}} 错误,请检查下网线。<br />
<br />
=== 提示“不允许使用的客户端类型” ===<br />
<br />
学校禁用了 xrgsu ,使用 {{ic|-v}} 参数指定版本号,或者复制相关文件({{ic|8021x.exe}} 和 {{ic|W32N55.dll}},可能还需要 {{ic|SuConfig.dat}})到 {{ic|/etc/mentohust/}}。<br />
<br />
=== 提示“客户端版本过低” ===<br />
<br />
和[[#提示“不允许使用的客户端类型”]]的解决方法相同。<br />
<br />
=== 提示“客户端完整性被破坏” === <br />
<br />
说明校方开启了客户端校验,复制相关文件({{ic|8021x.exe}} 和 {{ic|W32N55.dll}},可能还需要 {{ic|SuConfig.dat}})到 {{ic|/etc/mentohust/}}。<br />
<br />
=== 认证成功但仍无法上网 ===<br />
<br />
静态 IP 用户未正确设置 IP 及 DNS,或动态 IP 用户未能正确地获取到 IP 及 DNS。<br />
<br />
== 二次拨号 ==<br />
<br />
可参见 [http://arch.acgtyrant.com/2014/02/23/mentohust-and-l2tp/ MentoHUST 及『二次撥號』的臨時解決方案]<br />
<br />
== 参见 ==<br />
<br />
MentoHUST 在 [https://code.google.com/p/mentohust/ Google Code 的主页]<br />
<br />
Ubuntu Wiki 条目[http://wiki.ubuntu.org.cn/%E9%94%90%E6%8D%B7%E3%80%81%E8%B5%9B%E5%B0%94%E8%AE%A4%E8%AF%81MentoHUST 『锐捷、赛尔认证MentoHUST』]<br />
<br />
[https://github.com/acgtyrant/bin/blob/master/mentohust.sh acgtyrant 在浙江理工大学进行锐捷拨号的自动化脚本]</div>2419https://wiki.archlinux.org/index.php?title=Netctl_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=450920Netctl (简体中文)2016-09-16T09:22:44Z<p>2419: /* dhcpcd: ipv4_addroute: File exists */ delete broken link</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:简体中文]]<br />
[[Category:Networking (简体中文)]]<br />
[[cs:Netctl]]<br />
[[en:Netctl]]<br />
[[es:Netctl]]<br />
[[fr:Netctl]]<br />
[[it:Netcfg]]<br />
[[ja:Netctl]]<br />
[[ru:Netctl]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|网络配置}}<br />
{{Related|无线网络配置}}<br />
{{Related|Wicd (简体中文)}}<br />
{{Related|网桥}}<br />
{{Related articles end}}<br />
{{TranslationStatus (简体中文)|Netctl|2016-03-10|424868}}<br />
Netctl 是基于命令行的网络管理器,支持场景配置。它是 Arch Linux 网络管理方面的原生项目。<br />
<br />
==安装==<br />
从[[Official repositories (简体中文)|官方软件仓库]]安装{{Pkg|netctl}} 软件包。<br />
下表列出了 netctl 的可选依赖包<br />
{| class="wikitable"<br />
! Feature<br />
! Dependency<br />
! netctl program <br /> (if relevant)<br />
|-<br />
| Automatic wireless connections || {{Pkg|wpa_actiond}} || {{ic|netctl-auto}}<br />
|-<br />
| Automatic wired connections || {{Pkg|ifplugd}} || {{ic|netctl-ifplugd}}<br />
|-<br />
| WPA || {{Pkg|wpa_supplicant}} ||<br />
|-<br />
| DHCP || {{Pkg|dhcpcd}} or {{Pkg|dhclient}} ||<br />
|-<br />
| Wifi menus || {{Pkg|dialog}} ||<br />
|-<br />
| PPPoE || {{Pkg|ppp}} ||<br />
|-<br />
|}<br />
<br />
<br />
<br />
{{警告|请使用{{ic|1=systemctl --type=service}}确保其它可以配置网络的服务都没有运行,同时使用多个网络配置工具会导致冲突。}}<br />
<br />
==使用==<br />
<br />
建议用户使用前阅读如下文档:<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.1.txt netctl]<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile]<br />
*[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.special.7.txt netctl.special]<br />
<br />
==配置==<br />
<br />
{{ic|netctl}} 使用配置文件来管理网络连接,并按需自动或手动启动不同的操作模式<br />
<br />
===编辑配置===<br />
''netctl''的配置文件保存在 {{ic|/etc/netctl/}} 。一些配置文件的示例位于 {{ic|/etc/netctl/examples/}}。通用的配置项包括:<br />
* ethernet-dhcp<br />
* ethernet-static<br />
* wireless-wpa<br />
* wireless-wpa-static<br />
<br />
若要使用上述示例配置文件,只需将其从 {{ic|/etc/netctl/examples/}} 复制到 {{ic|/etc/netctl/}}。参见下述 配置示例。编辑配置文件所需的首要参数是网络''端口(interface)'',详阅 网络配置 设备名称。<br />
<br />
{{Tip|<br />
如要配置无线网络,可以root身份运行 {{ic|wifi-menu -o}} 来自动在 {{ic|/etc/netctl/}} 中生成配置文件。<br />
如要在有线网络接口上启用静态IP,并忽略线缆连接状况,可以在配置文件中添加 {{ic|SkipNoCarrier=yes}} 配置项<br />
}}<br />
<br />
在创建好你自己的配置文件之后,可以尝试运行(仅需写出文件名,不包含完整路径):<br />
<br />
# netctl start ''profile''<br />
<br />
如果上述命令出错,可使用 {{ic|journalctl -xn}} 和 {{ic|netctl status ''profile''}} 来获得对错误的详细描述。<br />
<br />
=== 自动化操作 ===<br />
<br />
如果使用单一配置文件(对每个网络接口)或想人工切换配置文件,请看 [[#基本方法|基本方法]] 。使用这种配置方法的多为服务器、工作站和路由器等。<br />
<br />
如果需要经常在多个配置文件间切换,请看 [[#自动切换配置|自动切换配置]]。常用于笔记本电脑。<br />
<br />
==== 基本方法 ====<br />
<br />
使用此种方式,可以为每个网络接口固定地启用一个配置文件。首先需手动检查该配置文件可以正常使用,那么可以用下面的命令启用它:<br />
<br />
# netctl enable ''profile''<br />
<br />
这将创建并启用一个随计算机启动而自动运行的 [[systemd (简体中文)|systemd]] 服务。对配置文件本身的修改无法自动关联到前述创建的服务文件,修改之后,需用下述命令重新启用该配置。 <br />
<br />
# netctl reenable ''profile''<br />
<br />
{{Note|只有在计算机启动时(或服务启动时),配置文件可以被成功地启用,连接才可以建立。特别地,对于有线连接,需插好电缆;对于无线连接,需处于信号覆盖范围内。}}<br />
<br />
{{Tip|若要无视线缆是否插好,强制对有线网络接口启用一个固定IP的配置,可以在配置文件中加入 {{ic|1=SkipNoCarrier=yes}} 。}}<br />
<br />
==== 自动切换配置 ====<br />
<br />
{{ic|netctl}} 提供了两个特殊的 [[systemd (简体中文)|systemd]] 服务来自动切换配置:<br />
<br />
* 有线网络: {{ic|netctl-ifplugd@''interface''.service}}。使用它,将在你插入和拔出电缆时自动切换配置文件。<br />
* 无线网络: {{ic|netctl-auto@''interface''.service}}。使用它,将在你从一个无线网络的覆盖范围进入另一个无线网络的范围时自动切换配置文件。<br />
<br />
首先 [[pacman (简体中文)|安装]] 下列软件包:<br />
* {{Pkg|wpa_actiond}} 用来支持使用 {{ic|netctl-auto@''interface''.service}} 命令。<br />
* {{Pkg|ifplugd}} 用来支持使用 {{ic|netctl-ifplugd@''interface''.service}} 命令。<br />
<br />
然后将 {{ic|netctl-auto@''interface''.service}} 或 {{ic|netctl-ifplugd@''interface''.service}} 需要启动的所有配置文件编辑好。<br />
<br />
如果希望某些无线网络配置'''不要'''被 {{ic|netctl-auto@''interface''.service}}自动启用,需要专门在该配置文件中加入 {{ic|1=ExcludeAuto=yes}} 。存在多个可用配置时,可以通过设置 {{ic|1=Priority=}} 来为某些文件设置优先级。 {{ic|netctl-ifplugd@''interface''.service}} 优先启用使用了 [[Wikipedia:DHCP|DHCP]] 的配置文件,如要优先启用一个使用固定IP的配置,可以设置 {{ic|1=AutoWired=yes}} 。详细内容参见 {{ic|netctl.profile(5)}} 。<br />
<br />
{{Warning|不能通过选项{{ic|1=Security=wpa-config}}来让netctl-auto自动选择一个启用了WPA的配置文件。请使用 {{ic|1=Security=wpa-configsection}} 来代替。}}<br />
<br />
在设置好你的配置文件并且确认它们可以正常工作后,使用systemctl启动这些服务:<br />
<br />
# systemctl enable netctl-auto@''interface''.service <br />
# systemctl enable netctl-ifplugd@''interface''.service <br />
<br />
{{Warning|<br />
* 如果任何一个配置文件包含错误,例如包含空变量 {{ic|1=Key=}},这个文件将无法在开机时自动启用。<br />
* 本方法与 [[#基本方法|基本方法]] 矛盾。如果你之前已经通过netctl启用了一个配置文件,运行 {{ic|netctl disable ''profile''}} 来防止这个配置在计算机启动时被启用两次。}}<br />
<br />
从netctl 1.3开始,允许在不停止netctl-auto服务的情况下手工控制一个不受netctl-auto管理的网络接口。这可以通过netctl-auto命令完成。若要获得可用行为的列表,运行:<br />
# netctl-auto --help<br />
<br />
===配置文件示例===<br />
====有线连接====<br />
For a DHCP connection, only the {{ic|Interface}} has to be configured after copying the {{ic|/etc/netctl/examples/ethernet-dhcp}} example profile to {{ic|/etc/netctl}}. <br />
<br />
For example:<br />
{{hc|/etc/netctl/''my_dhcp_rofile''|<nowiki><br />
Interface=enp1s0<br />
IP=dhcp</nowiki><br />
}}<br />
<br />
For a static IP configuration copy the {{ic|/etc/netctl/examples/ethernet-static}} example profile to {{ic|/etc/netctl}} and modify {{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}} and {{ic|DNS}}) as needed. <br />
<br />
For example:<br />
{{hc|/etc/netctl/''my_static_profile''|<nowiki><br />
Interface=enp1s0<br />
Connection=ethernet<br />
IP=static<br />
Address=('10.1.10.2/24')<br />
Gateway='10.1.10.1'<br />
DNS=('10.1.10.1')</nowiki><br />
}}<br />
<br />
For the {{ic|Address}} take care to include the correct netmask (the {{ic|/24}} in the sample profile equates to a netmask of {{ic|255.255.255.0}}) or the profile will fail to start. See also [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]].<br />
<br />
====无线连接(WPA-PSK)====<br />
密码加密(256-bit PSK)<br />
<br />
{{Note|尽管进行了“加密”,你写进配置文件的密码依然可以让你连接到一个WPA-PSK网络。也即,这个加密过程只用来将密码变得“让人看不懂”,但无法阻止对这个文件有阅读权限的人使用它来连接网络。而且将这个密码再用到其他的地方变得极其不安全,你应当考虑是否有这样做的必要。}}<br />
<br />
那些'''不想'''让自己的无线网络密钥以“明文”的形式保存的用户可以选择使用256位预先共享密钥(PSK)来代替,它由密钥和SSID经由标准算法计算而成。<br />
<br />
* 方法 1: 使用 {{ic|wifi-menu -o}} 在目录 {{ic|/etc/netctl/}} 中生成一个配置文件。<br />
* 方法 2: 按照如下方法手工配置。<br />
<br />
无论采用何种方法,建议运行 {{ic|chmod 600 /etc/netctl/<config_file>}} 来禁止其他用户访问密码。<br />
<br />
用[[WPA_supplicant#Configuration|wpa_passphrase]]中的方法生成你的256位PSK:<br />
{{hc|$ wpa_passphrase ''your_essid'' ''passphrase''|2=<br />
network={<br />
ssid="''your_essid''"<br />
#psk="''passphrase''"<br />
psk=64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a<br />
}<br />
}}<br />
<br />
{{tip|运行后不要关闭终端,这里的结果将在之后的配置中用到。}}<br />
<br />
在另一个终端窗口中,将示例文件 {{ic|wireless-wpa}} 从 {{ic|/etc/netctl/examples}} 复制到 {{ic|/etc/netctl}}:<br />
<br />
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa<br />
<br />
你需要用常用的文本编辑器编辑 {{ic|/etc/netctl/wireless-wpa}},将你刚才生成的PSK码添加到 {{ic|Key}} 变量。<br />
<br />
完成后,你的配置文件 {{ic|wireless-wpa}} 应当像下面这样:<br />
<br />
{{hc|/etc/netctl/wireless-wpa|2=<br />
Description='A simple WPA encrypted wireless connection using 256-bit PSK'<br />
Interface=wlp2s2<br />
Connection=wireless<br />
Security=wpa<br />
IP=dhcp<br />
ESSID=''your_essid''<br />
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a<br />
}}<br />
<br />
{{Note|<br />
* 注意对变量 {{ic|Key}} 使用 '''special quoting rules''',详细的描述参见[https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile(5)]末尾。<br />
* 如果密码没有起作用,从变量 {{ic|Key}} 中删除 {{ic|\"}} 。}}<br />
<br />
== 提示与技巧 ==<br />
<br />
=== 使用体验版图形用户界面 ===<br />
<br />
如果你想使用图形用户界面管理 ''netctl'' 和你的网络连接,并且不在意使用非官方体验版软件包的话,可以从 [[AUR]] 安装 {{AUR|netgui}}{{Broken package link|{{aur-mirror|netgui}}}}。注意:它毕竟还只是一个 beta 版,你应该熟悉 ''netctl'' 的语法以便解决可能出现的问题。另一个图形用户界面程序的替代品是 {{AUR|netctl-gui}},它提供了基于 Qt 的图形界面、DBus 守护进程和 KDE 桌面小部件。第三个替代品是 {{AUR|netmenu}},它使用 {{Pkg|dmenu}} 作为图形界面。<br />
<br />
=== Eduroam ===<br />
<br />
参阅 [[WPA2 Enterprise#netctl]]<br />
<br />
=== 绑定(Bonding) ===<br />
<br />
引自 [https://www.kernel.org/doc/Documentation/networking/bonding.txt 内核文档]:<br />
<br />
:''The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical "bonded" interface. The behavior of the bonded interfaces depends on the mode. Generally speaking, modes provide either hot standby or load balancing services. Additionally, link integrity monitoring may be performed.''<br />
<br />
:''(Linux bonding 驱动提供了把多个网络接口聚合成一个“绑定”的单一逻辑接口的途径。绑定后接口的行为取决于绑定的模式,一般来说,提供“主备”和“负载均衡”两种模式。另外,可以提供对连接总体情况的监测功能。)''<br />
<br />
==== 负载均衡 ====<br />
<br />
要用 netctl 配合 bonding,需要从官方软件源安装 {{Pkg|ifenslave}}。<br />
<br />
复制 {{ic|/etc/netctl/examples/bonding}} 到 {{ic|/etc/netctl/bond0}} 然后进行编辑。例如: <br />
<br />
{{hc|/etc/netctl/bond0|2=<br />
Description='Bond Interface'<br />
Interface='bond0'<br />
Connection=bond<br />
BindsToInterfaces=('eth0' 'eth1')<br />
IP=dhcp<br />
IP6=stateless}}<br />
<br />
现在你可以停用之前的配置文件。然后设置 bonding 为自动启动,切换到新的配置。例如:<br />
<br />
# netctl switch-to bond0<br />
<br />
{{注意|这将使用 {{ic|bonding}} 驱动的默认策略 round-robin(负载均衡)。详见[https://www.kernel.org/doc/Documentation/networking/bonding.txt 官方文档]。}}<br />
<br />
{{提示|查看状态和绑定模式:{{bc|$ cat /proc/net/bonding/bond0}}}}<br />
<br />
==== 有线 -> 无线故障切换 ====<br />
<br />
这一部分探讨怎样用bonding来实现当有线以太网无法工作时自动切换至无线网络。我们假设所有的网络接口默认启动dhcdpcd服务。<br />
<br />
你需要从官方源安装软件包:{{Pkg|ifenslave}} 和 {{Pkg|wpa_supplicant}}.<br />
<br />
首先设置 {{ic|bonding}} 驱动使用 {{ic|active-backup}}:<br />
<br />
{{hc|/etc/modprobe.d/bonding.conf|2=<br />
options bonding mode=active-backup<br />
options bonding miimon=100<br />
options bonding primary=eth0<br />
options bonding max_bonds=0<br />
}}<br />
<br />
{{ic|max_bonds}} 选项避免了 {{ic|Interface bond0 already exists}} 错误。如果使用了MAC过滤,应当添加设置 {{ic|fail_over_mac<nowiki>=</nowiki>active}}。<br />
<br />
接下来,编写一个netctl配置文件来绑定两个网络接口:<br />
<br />
{{hc|/etc/netctl/failover|2=<br />
Description='A wired connection with failover to wireless'<br />
Interface='bond0'<br />
Connection=bond<br />
BindsToInterfaces=('eth0' 'wlan0')<br />
IP='dhcp'<br />
SkipNoCarrier='no'<br />
}}<br />
<br />
设置该配置文件自启动:<br />
<br />
# netctl enable failover<br />
<br />
将 wpa_supplicant 配置为关联一个已知网络,可以通过 netctl profile (记得设置 IP='no'), 和一个长期运行的 wpa_supplicant 服务或者 wpa_cli 命令实现。具体方法请访问 [[wpa_supplicant]] 页面。想要长期运行 wpa_supplicant 服务,创建一个wpa_supplicant配置文件{{ic|/etc/wpa_supplicant/wpa_supplicant-wlan0.conf}} 然后运行:<br />
<br />
# systemctl enable wpa_supplicant@wlan0<br />
<br />
在有线网络配置中设置{{ic|1=IP='no'}}。IP地址应当只被分配到bond0接口。<br />
<br />
如果你有一个有线连接和无线连接连接到同一个网络,现在可以将有线网络断开连接,然后重新连接而依然保持网络通畅。在大多数情况下,甚至连流媒体音乐都不会卡顿。<br />
<br />
=== 使用任意接口 ===<br />
In some cases it may be desirable to allow a profile to use any interface on the system. A common example use case is using a common disk image across many machines with differing hardware (this is especially useful if they are headless). If you use the kernel's naming scheme, and your machine has only one ethernet interface, you can probably guess that eth0 is the right interface. If you use udev's [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ Predictable Network Interface Names], however, names will be assigned based on the specific hardware itself (e.g. enp1s0), rather than simply the order that the hardware was detected (e.g. eth0, eth1). This means that a netctl profile may work on one machine and not another, because they each have different interface names.<br />
<br />
A quick and dirty solution is to make use of the {{ic|/etc/netctl/interfaces/}} directory. Choose a name for your interface alias ({{ic|en-any}} in this example), and write the following to a file with that name (making sure it is executable).<br />
{{hc|/etc/netctl/interfaces/en-any|<nowiki><br />
#!/bin/bash<br />
for interface in /sys/class/net/en*; do<br />
break;<br />
done<br />
Interface=$(basename $interface)<br />
echo "en-any: using interface $Interface";<br />
</nowiki>}}<br />
Then create a profile that uses the interface. Pay special attention to the {{ic|Interface}} directive. The rest are only provided as examples.<br />
{{hc|/etc/netctl/wired|<nowiki><br />
Description='Wired'<br />
Interface=en-any<br />
Connection=ethernet<br />
IP=static<br />
Address=('192.168.1.15/24')<br />
Gateway='192.168.1.1'<br />
DNS=('192.168.1.1')<br />
</nowiki>}}<br />
<br />
When the {{ic|wired}} profile is started, any machine using the two files above will automatically bring up and configure the first ethernet interface found on the system, regardless of what name udev assigned to it. Note that this is not the most robust way to go about configuring interfaces. If you use multiple interfaces, netctl may try to assign the same interface to them, and will likely cause a disruption in connectivity. If you do not mind a more complicated solution, {{ic|netctl-auto}} is likely to be more reliable.<br />
<br />
=== 使用钩子 ===<br />
<br />
netctl supports hooks in {{ic|/etc/netctl/hooks/}} and per interface hooks in {{ic|/etc/netctl/interfaces/}}. You can set any option in a hook/interface that you can<br />
in a profile. They are read the same way! Most importantly this includes {{ic|ExecUpPost}} and {{ic|ExecDownPre}}. <br />
<br />
When a profile is read, netctl sources ''all executable'' scripts in {{ic|hooks}}, then it reads the profile file for the connection and finally it sources an executable script with the name of the interface used in the profile from the {{ic|interfaces}} directory. Therefore, declarations in an interface script override declarations in the profile, which override declarations in hooks. <br />
<br />
The variables {{ic|$INTERFACE}}, {{ic|$SSID}}, {{ic|$ACTION}} and {{ic|$Profile}} are available in hooks/interfaces '''only''' when using {{ic|netctl-auto}} <br />
<br />
==== 范例 ====<br />
<br />
===== 在已有连接上执行命令 =====<br />
{{hc|/etc/netctl/hooks/myservices|<nowiki><br />
#!/bin/sh<br />
ExecUpPost="systemctl start crashplan.service; systemctl start dropbox@<username>.service"<br />
ExecDownPre="systemctl stop crashplan.service; systemctl stop dropbox@<username>.service"<br />
</nowiki>}}<br />
<br />
===== 激活 network-online.target =====<br />
<br />
{{hc|/etc/netctl/hooks/status|<nowiki><br />
#!/bin/sh<br />
ExecUpPost="systemctl start network-online.target"<br />
ExecDownPre="systemctl stop network-online.target"<br />
</nowiki>}} <br />
<br />
Using this, systemd services requiring an active network connection can be [[Systemd#Handling_dependencies|ordered]] to start only after the {{ic|network-online.target}} is reached, and can be stopped before the connection is brought down. <br />
<br />
===== 设置默认 DHCP 客户端 =====<br />
<br />
To set or change the DHCP client used for all profiles: <br />
<br />
{{hc|/etc/netctl/hooks/dhcp|<nowiki><br />
#!/bin/sh<br />
DHCPClient='dhclient'<br />
</nowiki>}}<br />
<br />
Alternatively, it may also be specified for a specific network interface by creating an executable file {{ic|/etc/netctl/interfaces/<interface>}} with the following line:<br />
<br />
DHCPClient='dhclient'<br />
<br />
{{Expansion|It would be useful to replace the example with a general hook that executes different actions depending on {{ic|$ACTION}} being CONNECT and DISCONNECT.}}<br />
<br />
== 排错 ==<br />
<br />
=== Job for netctl@wlan(...).service failed ===<br />
<br />
Some people have an issue when they connect to a network with ''netctl'', for example:<br />
<br />
{{hc|# netctl start wlan0-ssid|<nowiki><br />
Job for netctl@wlan0\x2ssid.service failed. See 'systemctl status netctl@wlan0\x2ssid.service' and 'journalctl -xn' for details.<br />
</nowiki>}}<br />
<br />
When then looking at {{ic|journalctl -xn}}, either of the following are shown:<br />
<br />
1. If your device ({{ic|wlan0}} in this case) is up:<br />
network[2322]: The interface of network profile 'wlan0-ssid' is already up<br />
<br />
Setting the interface down should resolve the problem:<br />
# ip link set wlan0 down<br />
<br />
Then retry:<br />
# netctl start wlan0-ssid<br />
<br />
{{Accuracy|The following is an unsolved issue, using different DHCP client is just a poor/unexplained workaround.}}<br />
<br />
2. If it is down:<br />
dhcpcd[261]: wlan0: ipv4_sendrawpacket: Network is down<br />
<br />
One way to solve this is to use a different DHCP client, for example {{Pkg|dhclient}}. After installing the package configure ''netctl'' to use it:<br />
<br />
{{hc|/etc/netctl/wlan0-ssid|<nowiki><br />
...<br />
DHCPClient='dhclient'<br />
</nowiki>}}<br />
<br />
Adding the {{ic|ForceConnect}} option may also be helpful:<br />
<br />
{{hc|/etc/netctl/wlan0-ssid|<nowiki><br />
<br />
...<br />
<br />
ForceConnect=yes<br />
</nowiki>}}<br />
<br />
Save it and try to connect with the profile:<br />
# netctl start wlan0-ssid<br />
<br />
=== dhcpcd: ipv4_addroute: File exists ===<br />
<br />
On some systems dhcpcd in combination with netctl causes timeout issues on resume, particularly when having switched networks in the meantime. netctl will report that you are successfully connected but you still receive timeout issues. In this case, the old default route still exists and is not being renewed. A workaround to avoid this misbehaviour is to switch to [[#Set default DHCP client|dhclient]] as the default dhcp client. More information on the issue can be found [https://bbs.archlinux.org/viewtopic.php?pid=1399842#p1399842 here].<br />
<br />
=== DHCP timeout issues ===<br />
<br />
If you are having timeout issues when requesting leases via DHCP you can set the timeout value higher than netctl's 30 seconds by default. Create a file in {{ic|/etc/netctl/hooks/}} or {{ic|/etc/netctl/interfaces/}}, add {{ic|1=TimeoutDHCP=40}} to it for a timeout of 40 seconds and make the file executable.<br />
<br />
=== Connection timeout issues ===<br />
<br />
If you are having timeout issues that are unrelated to DHCP (on a static ethernet connection for example), and are experiencing errors similar to the following when starting your profile:<br />
{{hc|# journalctl _SYSTEMD_UNIT&#61;netctl@''profile''.service|<br />
Starting network profile &#39;''profile''&#39;...<br />
No connection found on interface 'eth0' (timeout)<br />
Failed to bring the network up for profile &#39;''profile''&#39;<br />
}}<br />
Then you should increase carrier and up timeouts by adding {{ic|1=TimeoutUp=}} and {{ic|1=TimeoutCarrier=}} to your profile file:<br />
{{hc|/etc/netctl/''profile''|<nowiki><br />
...<br />
TimeoutUp=300<br />
TimeoutCarrier=300</nowiki><br />
}}<br />
Do not forget to reenable your profile:<br />
<br />
# netctl reenable ''profile''<br />
<br />
=== Problems with netctl-auto on resume ===<br />
Sometimes ''netctl-auto'' fails to reconnect when the system resumes from suspend. An easy solution is to restart the service for ''netctl-auto''. <br />
This can be automated with an additional service like the following:<br />
<br />
{{hc|/etc/systemd/system/netctl-auto-resume@.service|<nowiki><br />
[Unit]<br />
Description=restart netctl-auto on resume.<br />
Requisite=netctl-auto@%i.service<br />
After=suspend.target<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/usr/bin/systemctl restart netctl-auto@%i.service<br />
<br />
[Install]<br />
WantedBy=suspend.target<br />
</nowiki>}}<br />
<br />
To [[enable]] this service for your wireless card, for example, enable {{ic|netctl-auto-resume@wlan0.service}} as root. Change {{ic|wlan0}} to the required network interface.<br />
<br />
If the device is not yet running on resume when the unit is started, this will fail. It can be fixed by adding the following dependency in the ''After'' line:<br />
<br />
{{hc|/etc/systemd/system/netctl-auto-resume@.service|<nowiki><br />
...<br />
After=suspend.target sys-subsystem-net-devices-%i.device<br />
...<br />
</nowiki>}}<br />
<br />
=== netctl-auto suddenly stopped working for WiFi adapters ===<br />
<br />
This problem seems to be related to a recent wpa_supplicant update (see {{Bug|44731}}), but a work-around is quite trivial. Just create a file for your interface (e.g. wlp3s0) in /etc/netctl/interfaces with the following content and make it executable:<br />
<br />
{{hc|/etc/netctl/interfaces/wlp3s0|<nowiki><br />
WPAOptions="-m ''"<br />
</nowiki>}}<br />
<br />
After that, try to restart your netctl-auto service and WiFi auto detection should work well again.<br />
<br />
=== netctl-auto does not automatically unblock a wireless card to use an interface ===<br />
<br />
Many laptops have a hardware button (or switch) to turn off wireless card, however, the card can also be blocked by the kernel. This can be handled by [[rfkill]].<br />
<br />
If you want ''netctl-auto'' to automatically unblock your wireless card to connect to a particular network, set {{ic|1=RFKill=++auto++}} option for the wireless connection of your choice, as specified in the [https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile(5)] man page.<br />
<br />
=== RTNETLINK answers: File exists (with multiple NICs) ===<br />
<br />
This is a very misleading response, it really means that you have assigned a default gateway in an earlier netctl control file. When netctl starts up the n-th NIC and goes to set its local route, it fails because there is already a default route from n-1.<br />
<br />
Remove it and everything works, except you no longer have a default route and so cannot access things such as the internet. {{ic|ExecUpPost}} does not work as it gets executed for each network card.<br />
<br />
A possible solution is creating a new service:<br />
<br />
{{hc|/etc/systemd/system/defaultrouter.service|<nowiki><br />
[Unit]<br />
Description<br />
Requires=netctl.service<br />
After=netctl.service<br />
Before=ntpd.service,dnsmasq.service<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/usr/bin/ip route add default via 192.168.xxx.yyy</nowiki>}}<br />
<br />
== 参见 ==<br />
<br />
* [https://lists.archlinux.org/pipermail/arch-projects/2012-December/003473.html Initial mailing list announcement]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=157670 官方陈述页面]<br />
* 在AUR中有一个可用的cinnamon applet: {{AUR|cinnamon-applet-netctl-systray-menu}}{{Broken package link|{{aur-mirror|cinnamon-applet-netctl-systray-menu}}}}</div>2419https://wiki.archlinux.org/index.php?title=Browser_plugins_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=449576Browser plugins (简体中文)2016-09-06T03:32:31Z<p>2419: /* Installation */ update news about adobe flash player from English version.</p>
<hr />
<div>[[Category:Web browser (简体中文)]]<br />
[[de:Browser Plugins]]<br />
[[en:Browser plugins]]<br />
[[es:Browser plugins]]<br />
[[fr:Plugins navigateur]]<br />
[[ja:ブラウザプラグイン]]<br />
[[ru:Browser plugins]]<br />
[[tr:Web tarayıcı eklentileri]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|Opera}}<br />
{{Related|Firefox (简体中文)}}<br />
{{Related|Chromium (简体中文)}}<br />
{{Related articles end}}<br />
根据插件 API 的不同,浏览器的插件可以分为两种:<br />
*Netscape plugin API (NPAPI): 可以在 [[Firefox]] 和一些浏览器中使用('''不能''' 在 Chromium 和 Opera 中使用).<br />
*Pepper plugin API (PPAPI): 仅能在 [[Chromium]],Chrome 和 [[Opera]] 中使用.<br />
<br />
除非明确说明,本页中的插件都只支持 NPAPI。<br />
<br />
==Flash Player==<br />
<br />
===Adobe Flash Player===<br />
<br />
==== Installation ====<br />
<br />
不同的浏览器需要安装不同的插件。<br />
<br />
* NPAPI 插件可以通过软件包 {{Pkg|flashplugin}} 进行 [[安装]],[https://blogs.adobe.com/flashplayer/2012/02/adobe-and-google-partnering-for-flash-player-on-linux.html Adobe 已经停止开发此插件],版本固定到 11.2 但是会提供 5 年安全支持,直到 2017 年 3 月.[https://blogs.adobe.com/flashplayer/2012/02/adobe-and-google-partnering-for-flash-player-on-linux.html][http://helpx.adobe.com/flash-player/release-note/release-notes-developer-flash-player.html]).当前版本为11.2, 但未来可能会更新.[https://blogs.adobe.com/flashplayer/2016/08/beta-news-flash-player-npapi-for-linux.html#sthash.3gR3RhEv.gSTeJKBM.dpbs]<br />
<br />
* PPAPI 版本和 Google Chrome 一起发布. 详情参考 [[Chromium#Flash Player plugin]].<br />
<br />
{{Note|<br />
* 某些时候文本显示不太正常,可能需要从[[AUR (简体中文)|AUR]]安装{{AUR|ttf-ms-fonts}}<br />
* {{AUR|freshplayerplugin-git}} 软件包提供了 NPAPI 浏览器比如 Firefox 使用 {{AUR|chromium-pepper-flash}} 的测试版本。可以通过将 {{ic|/usr/share/freshplayerplugin/freshwrapper.conf.example}} 复制到 {{ic|/usr/share/freshplayerplugin/freshwrapper.conf}} 配置硬件加速。<br />
}}<br />
<br />
==== 更新 ====<br />
<br />
如果使用 [[Firefox]],请查阅 [[Firefox#Firefox detects the wrong version of my plugin|此处的说明]].<br />
<br />
==== 配置 ====<br />
<br />
To change the preferences (privacy settings, resource usage, etc.) of Flash Player, right click on any embedded Flash content (for instance [https://helpx.adobe.com/flash-player.html adobe's flash home]) and choose ''Settings'' from the menu.<br />
<br />
You can also use the Flash settings file {{ic|/etc/adobe/mms.cfg}}. Gentoo has an extensively commented [http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-plugins/adobe-flash/files/mms.cfg example mms.cfg].<br />
<br />
To enable video decoding with [[hardware video acceleration]], add/uncomment the following line:<br />
EnableLinuxHWVideoDecode = 1<br />
It might also be required to add/uncomment the following line:<br />
OverrideGPUValidation = 1<br />
<br />
==== Disable the "Press ESC to exit full screen mode" message ====<br />
<br />
There is no solution other than patching the Flash plugin. Please note only the NPAPI plugin is supported. Install {{aur|flash-fullscreen-patcher}}{{Broken package link|{{aur-mirror|flash-fullscreen-patcher}}}} which provides wine as a required dependency since the patch has been initially made for Windows.<br />
<br />
After the package has been installed, backup {{ic|libflashplayer.so}}:<br />
# cp /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so.backup <br />
<br />
Then, patch {{ic|libflashplayer.so}}:<br />
# flash-fullscreen-patcher.sh -f /usr/lib/mozilla/plugins/libflashplayer.so<br />
<br />
If you use Firefox and want to remove the message ''Press ESC to exit full screen mode in HTML5 videos'' too, go to about:config and set {{ic|full-screen-api.warning.timeout}} to {{ic|0}}.<br />
<br />
Alternatively, install Firefox extension [https://addons.mozilla.org/firefox/addon/disable-html5-fullscreen-alert/ Disable HTML5 Fullscreen Alert], which will suppress full screen warnings for HTML5 content.<br />
<br />
==== Multiple monitor full-screen fix ====<br />
<br />
When using a multiple monitor setup, or swapping between virtual desktops, it is possible to lose focus on a fullscreen flash window. In such a case, the adobe flash-plugin will automatically exit full-screen mode. This may not be to your liking.<br />
<br />
Unfortunately, this behavior is hard coded into the binary. In order to change this behavior it is necessary to alter the binary.<br />
<br />
Fixing this issue only works for the NPAPI plugin and this issue can be fixed via 2 ways.<br />
<br />
* Using the {{AUR|flashplugin-focusfix}}.<br />
<br />
* [http://www.webupd8.org/2012/10/ubuntu-multi-monitor-tweaks-full-screen.html Patching manually]:<br />
<br />
:After the package has been installed, backup {{ic|libflashplayer.so}}:<br />
:{{bc|# cp /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so.backup}}<br />
<br />
:Then, you will need to alter that file using a hex editor like {{Pkg|ghex}}. You must open it with root privileges obviously.<br />
:{{bc|# ghex /usr/lib/mozilla/plugins/libflashplayer.so}}<br />
<br />
:Using the hex editor find the string {{ic|_NET_ACTIVE_WINDOW}}. In ghex the readable string is on the right hand side of the window, and the hex is on the left, you are trying to locate the readable string. It should be easy to find using a search function.<br />
<br />
:Upon finding {{ic|_NET_ACTIVE_WINDOW}} rewrite the line, but '''do not''' change the length of the line, for example {{ic|_NET_ACTIVE_WINDOW}} becomes {{ic|_XET_ACTIVE_WINDOW}}.<br />
<br />
:Save the binary, and restart any processes using the plugin (as this will crash any instance of the plugin in use.)<br />
<br />
==== Playing DRM-protected content ====<br />
<br />
See [[Flash DRM content]].<br />
<br />
=== Shumway ===<br />
<br />
[http://mozilla.github.io/shumway/ Shumway] 尝试直接使用 HTML5 技术而不是本地代码处理和显示 SWF 文件。可以通过 [http://mozilla.github.io/shumway/ Mozilla's github.io 网页]直接安装. 根据 [https://github.com/mozilla/shumway/wiki Shumway wiki], "如果实验成功,这个功能有机会整合进 Firef。" <br />
<br />
Firefox Nightly/Aurora 编译版本包含了 Shumway.<br />
<br />
===Gnash===<br />
<br />
参考 [[Wikipedia:Gnash]].<br />
[http://www.gnu.org/software/gnash/ GNU Gnash] 是 Adobe Flash Player 的自由软件替代。可以作为单独的播放器,也可以嵌入浏览器。支持 SWF v7 和 80% 的 ActionScript 2.0。<br />
<br />
可以通过软件包{{AUR|gnash}}{{Broken package link|{{aur-mirror|gnash}}}}, {{AUR|gnash-kde4}}{{Broken package link|{{aur-mirror|gnash-kde4}}}}, {{AUR|gnash-git}}.<br />
<br />
{{Note|如果发现 Gnash 无法工作,可能需要先 [[安装]] 软件包 {{Pkg|gstreamer0.10-ffmpeg}}.}}<br />
<br />
=== Lightspark ===<br />
<br />
[http://lightspark.github.com/ Lightspark] is another attempt to provide a free alternative to Adobe Flash aimed at supporting newer Flash formats. Lightspark has the ability to fall back on Gnash for old content, which enables users to install both and enjoy wider coverage. Although it is still very much in development, it supports some [https://github.com/lightspark/lightspark/wiki/Site-Support popular sites]. <br />
<br />
Lightspark can be [[install]]ed with the {{AUR|lightspark-git}} package.<br />
<br />
==PDF浏览器==<br />
=== PDF.js ===<br />
<br />
[https://github.com/mozilla/pdf.js PDF.js] is a PDF renderer created by Mozilla and built using HTML5 technologies.<br />
<br />
It is included in [[Firefox]].<br />
<br />
For [[Chromium]] and Google Chrome it is available as extension in the [https://chrome.google.com/webstore/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm Chrome Web Store].<br />
<br />
=== External PDF viewers ===<br />
<br />
To use an external PDF viewer you need [[#MozPlugger]] or [[#kpartsplugin]].<br />
<br />
If you want to use MozPlugger with Evince, for example, you have to find the lines containing {{ic|pdf}} in the {{ic|/etc/mozpluggerrc}} file and modify the corresponding line after {{ic|GV()}} as below:<br />
repeat noisy swallow(evince) fill: evince "$file"<br />
(replace {{ic|evince}} with something else if it is not your viewer of choice).<br />
<br />
If this is not enough, you may need to change 2 values in {{ic|about:config}}:<br />
* Change {{ic|pdfjs.disabled}}'s value to ''true'';<br />
* Change {{ic|plugin.disable_full_page_plugin_for_types}}'s value to an empty value.<br />
<br />
Restart and it should work like a charm!<br />
<br />
==Citrix==<br />
参见:[[Citrix]]<br />
<br />
== Java ==<br />
{{Note|Both Java plugins are NPAPI-only and thus do not work in Chromium and Opera.}}<br />
<br />
To enable [[Java]] support in your browser, you have two options: the open-source [[Wikipedia:OpenJDK|OpenJDK]] (recommended) or Oracle's proprietary version. For details about why OpenJDK is recommended see [https://mailman.archlinux.org/pipermail/arch-general/2011-August/021671.html this].<br />
<br />
To use OpenJDK, you have to install the [http://icedtea.classpath.org/wiki/Main_Page IcedTea] browser plugin, {{Pkg|icedtea-web}}.<br />
<br />
If you want to use Oracle's JRE, install the {{AUR|jre}} package.<br />
<br />
See [[Java#OpenJDK]]{{Broken section link}} for additional details and references.<br />
<br />
{{Note|If you experience any problems with the Java plugin (e.g. it is not recognized by the browser), you can try this [[#Plugins_are_installed_but_not_working|solution]]{{Broken section link}}.}}<br />
<br />
== Pipelight ==<br />
<br />
See [[Pipelight]].<br />
<br />
==视频播放插件==<br />
<br />
很多浏览器支持通过 [[GStreamer]] 框架播放 HTML5 {{ic|<audio>}} 和 {{ic|<video>}}。安装时注意查看浏览器的可选依赖关系(或 {{Pkg|webkitgtk}}/{{Pkg|webkitgtk2}} 依赖关系)确认支持的 GStreamer 版本,可能是当前 {{ic|gst-*}} 版本或老的 {{ic|gstreamer0.10-*}} 版本。详情参考 [[GStreamer#Installation]].<br />
<br />
=== 其它插件 ===<br />
<br />
* {{App|Gecko 媒体播放器|Mozilla 处理网页多媒体的插件,使用 MPlayer.|https://sites.google.com/site/kdekorte2/gecko-mediaplayer|{{Pkg|gecko-mediaplayer}}}}<br />
* {{App|GNOME Videos 插件|基于 [[Wikipedia:GNOME Videos|GNOME Videos]] 媒体播放器的插件,使用 [[GStreamer]].|https://wiki.gnome.org/Apps/Videos|{{Pkg|totem}}}}<br />
* {{App|Rosa Media Player Plugin|基于 MPlayer 的 Qt 浏览器插件.|https://abf.rosalinux.ru/uxteam/ROSA_Media_Player|{{AUR|rosa-media-player-plugin}}}}<br />
* {{App|VLC Plugin|NPAPI 接口,VLC 插件.|https://code.videolan.org/videolan/npapi-vlc|{{Pkg|npapi-vlc}}}}<br />
<br />
==其他==<br />
<br />
=== Hangouts ===<br />
<br />
Hangouts plugin can be installed with the {{AUR|google-talkplugin}} package. Installing this plugin is not necessary for fresh version of chromium browser.<br />
Hangouts is a messenger by Google, that allows you to make video call between 15 people simultaneously. While using "new" version, you can share your screen with others like in Skype, but if you switch to "old" version, it will be possible to do the following things together: watching YouTube, making diagrams, editing documents, playing games and other things.<br />
<br />
=== MozPlugger ===<br />
<br />
MozPlugger can be installed with the {{AUR|mozplugger}} package.<br />
<br />
[http://mozplugger.mozdev.org/ MozPlugger] is a Mozilla plugin which can show many types of multimedia inside your browser. To accomplish this, it uses external programs such as MPlayer, xine, Evince, OpenOffice, TiMidity, etc. To modify or add applications to be used by MozPlugger just modify the {{ic|/etc/mozpluggerrc}} file.<br />
<br />
For example, MozPlugger uses OpenOffice by default to open {{ic|doc}} files. To change it to use LibreOffice instead, look for the OpenOffice section:<br />
{{hc|/etc/mozpluggerrc|<br />
...<br />
### OpenOffice<br />
define([OO],[swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 "$file"<br />
swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 "$file"<br />
swallow(VCLSalFrame) fill: soffice -nologo $1 "$file"])<br />
...<br />
}}<br />
and add LibreOffice at the beginning of the list:<br />
{{hc|/etc/mozpluggerrc|<br />
...<br />
### LibreOffice/OpenOffice<br />
define([OO],[swallow(VCLSalFrame) fill: libreoffice --nologo --norestore --view $1 "$file"<br />
swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 "$file"<br />
swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 "$file"<br />
swallow(VCLSalFrame) fill: soffice -nologo $1 "$file"])<br />
...<br />
}}<br />
{{Note|Be sure to also choose LibreOffice as your preferred application to open {{ic|doc}} files.}}<br />
<br />
As another simple example, if you want to open {{ic|cpp}} files with your favorite text editor (we will use Kate) to get syntax highlighting, just add a new section to your {{ic|mozpluggerrc}} file:<br />
{{hc|/etc/mozpluggerrc|<br />
text/x-c++:cpp:C++ Source File<br />
text/x-c++:hpp:C++ Header File<br />
repeat noisy swallow(kate) fill: kate -b "$file"<br />
}}<br />
<br />
To change the default of MPlayer so that [[mpv]] is used instead, change the appropriate lines such that:<br />
{{hc|1=/etc/mozpluggerrc|2=<br />
...<br />
### MPlayer<br />
<br />
#define(MP_CMD,[mplayer -really-quiet -nojoystick -nofs -zoom -vo xv,x11 -ao esd,alsa,oss,arts,null -osdlevel 0 $1 </dev/null])<br />
define(MP_CMD,[mpv -really-quiet $1 </dev/null])<br />
<br />
#define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(-xy $width -wid $window $1)])<br />
define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(--autofit=$width -wid $window $1)])<br />
<br />
#define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(MPlayer): MP_CMD($1)])<br />
define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(mpv): MP_CMD($1)])<br />
<br />
...<br />
<br />
#define(MP_AUDIO,[mplayer -quiet -nojoystick $1 </dev/null])<br />
define(MP_AUDIO,[mpv -really-quiet $1 </dev/null])<br />
<br />
#define(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mplayer -quiet -nojoystick $1 "$file" </dev/null])<br />
define(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mpv -really-quiet $1 "$file" </dev/null])<br />
...<br />
}}<br />
<br />
For a more complete list of MozPlugger options see [http://www.linuxmanpages.com/man7/mozplugger.7.php this page].<br />
<br />
=== kpartsplugin ===<br />
<br />
[http://www.unix-ag.uni-kl.de/~fischer/kpartsplugin/ The KParts plugin] is a plugin that uses KDE's KPart technology to embed different file viewers in the browser, such as Okular (for PDF), Ark (for different archives), Calligra Words (for ODF), etc. It cannot use applications that are not based on the KPart technology.<br />
<br />
The KParts plugin can be installed with the package {{Pkg|kpartsplugin}}.<br />
<br />
==疑难解答==<br />
<br />
===Flash无声音===<br />
Flash Player只通过默认的ALSA设备输出音频(编号0)。如果使用多个声音设备(比如,除了声卡外,使用了显卡的HDMI输出),可能你要使用的声音设备编号不是0,从而导致Flash无声音。<br />
<br />
例如:<br />
$ aplay -l<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: DX [Xonar DX], device 0: Multichannel [Multichannel]<br />
Subdevices: 0/1<br />
Subdevice #0: subdevice #0<br />
card 1: DX [Xonar DX], device 1: Digital [Digital]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
上面的示例中,HDMI设备编号为0,而声卡编号为1。要将该声卡作为ALSA默认输入,创建{{ic|~/.asoundrc}},内容如下:<br />
pcm.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
===Flash独占了声音设备===<br />
如果发现播放Flash时其他程序无法正常播放声音,那么可能是由于没有加载{{Ic|snd_pcm_oss}}模块:<br />
$ lsmod | grep snd_pcm_oss<br />
重新加载:<br />
# rmmod snd_pcm_oss<br />
并重启浏览器即可。<br />
<br />
===Flash性能===<br />
Adobe的Flash插件有严重的性能问题,尤其是在CPU使用自动降频功能时。参见:[[cpufrequtils#Changing the ondemand governor's threshold]]{{Broken section link}}。<br />
<br />
===Flash中webcam分辨率低===<br />
尝试使用如下命令启动浏览器:<br />
$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so [broswer]<br />
<br />
===Black bars in fullscreen video playback on multiheaded desktops===<br />
The Flash plugin has a known bug where the full screen mode does not really work when you have a multi-monitor setup. Apparently, it incorrectly determines the full screen resolution, so the full screen Flash Player fills the correct monitor but gets scaled as if the monitor had the resolution of the total display area.<br />
<br />
To fix this, you can use the "hack" described [http://al.robotfuzz.com/content/workaround-fullscreen-flash-linux-multiheaded-desktops here]. Simply download the source from the link given on the page, and follow the instructions in the README.<br />
<br />
{{Tip|The hack is available and can be installed with the {{AUR|fullscreenhack}}{{Broken package link|{{aur-mirror|fullscreenhack}}}} package.}}<br />
<br />
{{Note|While the author mentions using NVDIA's TwinView, the hack should work for any multi-monitor setup.}}<br />
<br />
=== Flash Player: plugin version still shown older version after upgrade ===<br />
<br />
Solution for Firefox: delete file "pluginreg.dat" in user's profile directory.<br />
<br />
* Close firefox<br />
* Go to /home/<username>/.mozilla/firefox/<profile_folder>/<br />
* Delete file "pluginreg.dat"<br />
<br />
Firefox will automatically rebuild this file once it is started again. Make sure to substitute <username> and <profile_folder> with the appropriate information.<br />
<br />
===插件安装后无法使用===<br />
这通常是因为第一次安装插件后,用户未重登录,插件路径还未设置。测试如下变量:<br />
echo $MOZ_PLUGIN_PATH<br />
若未设置,请尝试重新登录, 或:<br />
$ source /etc/profile.d/mozilla-common.sh && firefox<br />
<br />
===Gecko Media Player 无法播放 Apple Trailers===<br />
设置浏览器的用户代理(user agent)为:<br />
QuickTime/7.6.2 (qtver=7.6.2;os=Windows NT 5.1Service Pack 3)</div>2419https://wiki.archlinux.org/index.php?title=Network_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=448459Network configuration (简体中文)2016-08-28T11:27:47Z<p>2419: update the edit time</p>
<hr />
<div>[[Category:Networking (简体中文)]]<br />
[[cs:Network configuration]]<br />
[[el:Network configuration]]<br />
[[en:Network configuration]]<br />
[[es:Network configuration]]<br />
[[fr:Connexions reseau]]<br />
[[it:Network configuration]]<br />
[[ja:ネットワーク設定]]<br />
[[nl:Network configuration]]<br />
[[pt:Network configuration]]<br />
[[ro:Configurare retea]]<br />
[[ru:Network configuration]]<br />
[[sk:Network configuration]]<br />
[[tr:Ağ Yapılandırması]]<br />
[[zh-tw:Network configuration]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|Jumbo frames}}<br />
{{Related|Firewalls}}<br />
{{Related|Wireless network configuration (简体中文)}}<br />
{{Related|List of applications#Network Managers}}<br />
{{Related articles end}}<br />
{{TranslationStatus (简体中文)|Network_configuration|2016-08-28|445647}}<br />
本页解释了如何配置 '''有线''' 网络连接。如果你需要设置 '''无线''' 网络,参见[[Wireless network configuration (简体中文)|无线配置]]页面。<br />
<br />
== 检查连接 ==<br />
<br />
基本的安装过程已经创建了正确的网络配置。通过''ping''检查:<br />
{{hc|$ ping -c 3 www.google.com|<nowiki><br />
PING www.l.google.com (74.125.224.146) 56(84) bytes of data.<br />
64 bytes from 74.125.224.146: icmp_req=1 ttl=50 time=437 ms<br />
</nowiki>}}<br />
<br />
成功时会收到类似上面的 64 bytes 信息,按 {{ic|Control-C}} 可以停止ping.<br />
<br />
{{小贴士| 参数 {{ic|-c 3}} 表示执行命令 {{ic|ping}} 3次 。 参见 {{ic|man ping}}。}}<br />
<br />
如果上面的命令说 unknown hosts,意思是你的机器无法进行域名解析。这可能和你的服务提供商或者你的路由器/网关有关。你可以尝试 ping {{ic|8.8.8.8}} 来验证你的电脑是否能访问 Internet。它是 Google 的主 DNS 服务器,因此它可以视为可信的,通常不会被过滤系统或代理屏蔽。<br />
<br />
{{hc|$ ping -c 3 8.8.8.8|<nowiki><br />
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.<br />
64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=52.9 ms<br />
</nowiki>}}<br />
<br />
如果可以 ping {{ic|8.8.8.8}} 但是不能 ping {{ic|www.google.com}}, 参考 [[resolv.conf]] 检查 DNS 配置。还需要查下 {{ic|/etc/nsswitch.conf}} 中的 {{ic|hosts}} 行。如果不能 ping 通,请检查网线问题。<br />
<br />
== 设置计算机名 ==<br />
<br />
[[Wikipedia:Hostname|主机名]] 是一个网络中唯一标识一台机器的名称。主机名通过文件 {{ic|/etc/hostname}} 进行配置。这样设置主机名:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
这将会把 '''myhostname''' 写入 {{ic|/etc/hostname}}。详情参见 {{ic|man 5 hostname}} 和 {{ic|man 1 hostnamectl}}。<br />
<br />
{{注意|在 Arch Linux chroot 安装环境中,''hostnamectl''不起作用,要设置安装环境的主机名,请手动[[textedit|编辑]] {{ic|/etc/hostname}},加入一行{{ic|''myhostname''}}.}}<br />
<br />
建议同时在 {{ic|/etc/hosts}} 中设置 hostname:<br />
<br />
{{hc|/etc/hosts|2=<br />
#<br />
# /etc/hosts: static lookup table for host names<br />
#<br />
<br />
#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain localhost ''myhostname''<br />
::1 localhost.localdomain localhost ''myhostname''<br />
}}<br />
<br />
{{注意|{{Pkg|systemd}} 通过 {{ic|myhostname}} nss 模块(在 {{ic|/etc/nsswitch.conf}} 中默认启用)进行主机名解析,所以大部分情况下都不需要在 {{ic|/etc/hosts}} 中设置主机名。但是有些用户反馈如果不设置,某些依赖网络的程序会碰到延迟问题。参考 [[#Local network hostname resolution]]{{Broken section link}}。}}<br />
<br />
要临时设置主机名(直到下次重启为止),使用 {{Pkg|inetutils}} 中的 {{ic|hostname}} 命令:<br />
<br />
# hostname ''myhostname''<br />
<br />
要设置清晰的主机名和其它机器数据,请参考 {{ic|machine-info}} 手册页.<br />
<br />
== 设备驱动程序 ==<br />
<br />
=== 检测驱动状态 ===<br />
<br />
[[Udev]] 会探测网卡([[Wikipedia:Network_interface_controller|NIC]])并在启动时自动载入必要的模块。 检查 {{ic|lspci -v}} 输出中 "Ethernet controller" (或者类似的)条目,它会告诉你哪个内核模块包含了网络设备的驱动程序。例如:<br />
<br />
{{hc|$ lspci -v|<br />
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)<br />
...<br />
Kernel driver in use: atl1<br />
Kernel modules: atl1<br />
}}<br />
<br />
接下来, 用 {{ic|dmesg <nowiki>|</nowiki> grep ''module_name''}} 来检查是否已经加载了驱动。例如:<br />
$ dmesg |grep atl1<br />
...<br />
atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex<br />
<br />
如果驱动加载成功,就跳过下一节,否则,你需要知道您特定型号的网络设备需要哪一个模块。<br />
<br />
=== 加载设备模块 ===<br />
<br />
用 Google 查找芯片组需要的模块/驱动。常见的驱动模块有用于 Realtek 芯片组网卡的 {{ic|8139too}},或者用于 Sis 芯片组网卡的 {{ic|sis900}}。知道要使用什么模块之后,尝试 [[Kernel modules#Manual module handling|手动加载它]]。如果你碰到了未找到模块的错误,可能驱动没有包括在 Arch 的内核中。你可以在 [[AUR]] 中搜索模块名称。<br />
<br />
如果 udev 在引导时不能自动侦测和加载适当的模块,参见 [[Kernel modules#Loading]]{{Broken section link}}。<br />
<br />
== 网络接口 ==<br />
<br />
=== 设备命名 ===<br />
<br />
对于有多块网卡的电脑,固定的设备名称很重要。许多配置问题都是由于网络接口名称变化引起的。<br />
<br />
[[udev]] 负责给设备命名。Systemd v197 引入了[http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames 可预测的网络接口名称]自动给网络设备分配静态名称,网络接口现在是以前缀 {{ic|en}}(以太网)、{{ic|wl}}(WLAN)、或者 {{ic|ww}}(WWAN)附上一个自动生成的标识符,产生了一个类似于 {{ic|enp0s25}} 的条目。在 [[kernel parameters]] 中添加 {{ic|1=net.ifnames=0}} 可以禁用此功能.<br />
<br />
{{注意|当你改变接口命名规则时,不要忘记更新所有与网络相关的配置文件和自定义的 systemd unit 文件以反映变化。特别是当你启用了 [[netctl#Basic method|netctl 静态配置]] 时,要运行 {{ic|netctl reenable ''profile''}} 来更新生成的服务文件。}}<br />
<br />
=== 获取当前网络名 ===<br />
<br />
可以通过 sysfs 或 {{ic|ip link}} 找到。<br />
<br />
{{hc|$ ls /sys/class/net| <br />
lo eth0 eth1 firewire0<br />
}}<br />
<br />
{{hc|$ ip link|<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000<br />
link/ether 08:00:27:23:6f:3a brd ff:ff:ff:ff:ff:ff<br />
}}<br />
<br />
无线设备名称也可以通过 {{ic|iw dev}} 查看,请参考 [[Wireless network configuration#Getting some useful information]].<br />
<br />
==== 更改设备名称 ====<br />
<br />
你可以用 udev-rule 手动定义名称来更改设备名称。例如:<br />
<br />
{{hc|/etc/udev/rules.d/10-network.rules|<nowiki><br />
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"<br />
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="net0"<br />
</nowiki>}}<br />
<br />
值得注意的两点:<br />
<br />
* 使用这条命令来获得每张网卡的 MAC 地址:{{ic|cat /sys/class/net/'''设备名'''/address}}<br />
* 确保你的 udev 规则中使用小写的十六进制值,而不是大写。<br />
<br />
{{注意|选择静态名称时,'''应该避免使用形如 "eth''X''" 或 "wlan''X''" 的名称''',因为这可能在引导时导致内核与 udev 之间的竞争状态。相反,最好用内核默认不会使用的接口名称,例如:{{ic|net0}}、{{ic|net1}}、{{ic|wifi0}}、{{ic|wifi1}}。更多细节请查看 [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames systemd] 文档。}}<br />
<br />
==== 使用传统网络命名规则 ====<br />
<br />
如果希望使用传统的命名方法 eth0,可以通过下面方法禁用 [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames Predictable Network Interface Names]:<br />
<br />
# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules<br />
<br />
=== 设定设备的 MTU 和队列长度 ===<br />
<br />
你可以手动定义一条 udev 规则来改变队列的 MTU(最大传输单元)和队列长度You can change the device MTU and queue length by defining manually with an udev-rule。举例来说:<br />
<br />
{{hc|/etc/udev/rules.d/10-network.rules|<nowiki><br />
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wl*", ATTR{mtu}="1480", ATTR{tx_queue_len}="2000"<br />
</nowiki>}}<br />
<br />
=== 启用和禁用网络接口 ===<br />
<br />
可以通过如下命令启用或禁用接口:<br />
<br />
# ip link set eth0 up<br />
# ip link set eth0 down<br />
<br />
查看结果:<br />
<br />
{{hc|$ ip link show dev eth0|<br />
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT qlen 1000<br />
...<br />
}}<br />
<br />
{{Note| 如果默认路由是通过 {{ic|eth0}} 建立,禁用接口同时也会删除路由,再次启用也不会自动重新建立路由,要重新建立,请参考 [[#手动分配]]{{Broken section link}}.}}<br />
<br />
== 配置 IP 地址 ==<br />
<br />
有两种配置方式:通过 [[Wikipedia:Dynamic Host Configuration Protocol|DHCP]],或者不变的''静态''地址。请选择一种方式,同时使用多个设置方式可能会引起冲突。<br />
<br />
=== 动态 IP 地址 ===<br />
<br />
==== systemd-networkd ====<br />
一种DHCP的简单配置方法是利用systemd提供的[[systemd-networkd]]服务。参见[[systemd-networkd#Basic DHCP network]]。<br />
<br />
==== dhcpcd ====<br />
[[dhcpcd]] 是 Arch Linux 安装 ISO 上默认的 DHCP 客户的,功能强大,有多种客户端配置选项。启用方式请参考 [[dhcpcd#Running]]。<br />
<br />
==== netctl ====<br />
<br />
[[netctl]]是利用用户创建的profiles进行网络配置的CTI-based工具,如何创建profile参见[[netctl#Example profiles]],激活参见[[netctl#Basic method]]。<br />
<br />
=== 静态 IP 地址 ===<br />
<br />
不管用什么方法设置静态 IP,都需要确定:<br />
<br />
* 静态IP地址,<br />
* [[Wikipedia:Subnetwork|子网掩码]],使用 [[Wikipedia:CIDR_notation|CIDR 表示法]]<br />
* [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR 表示法]] 的子网掩码,例如 {{ic|255.255.255.0}} 按 CIDR 表示为 {{ic|/24}}<br />
* [[Wikipedia:Broadcast_address|广播地址]],<br />
* [[Wikipedia:Default_gateway|网关]]的IP地址<br />
* Name server (DNS) IP addresses. See also [[resolv.conf]].<br />
<br />
如果你想配置一个内部网络,可以将你的 IP 设置成 192.168.*.* ,子网掩码设置成 255.255.255.0 ,广播地址设置成 192.168.*.255 。网关通常是 192.168.*.1 或者 192.168.*.254。<br />
<br />
{{Warning|<br />
* 请确保手动设置的 IP 地址不会和 DHCP 自动分配的地址冲突,参考 [http://www.raspberrypi.org/forums/viewtopic.php?f&#61;28&t&#61;16797 这个论坛帖子]<br />
* 在不使用路由器的情况下和一台安装 Windows 的电脑分享你的网络连接,请确保两台电脑都使用静态 IP ,否则你的局域网将会有问题。<br />
}}<br />
<br />
==== netctl ====<br />
要创建 [[netctl]] 静态 IP 配置,设置 {{ic|1=IP=static}} 选项以及 {{ic|Address}}, {{ic|Gateway}} 和 {{ic|DNS}}. 参考 [[netctl#Wired]].<br />
<br />
==== systemd-networkd ====<br />
<br />
[[systemd-networkd]] 服务可以使用简单的配置文件配置静态 IP 地址,参考 [[systemd-networkd#Wired adapter using a static IP]].<br />
<br />
==== dhcpcd ====<br />
<br />
参考 [[dhcpcd#Static profile]].<br />
<br />
==== 手动指定 ====<br />
<br />
It is possible to manually set up a static IP using only the {{pkg|iproute2}} package. This is a good way to test connection settings since the connection will not persist across reboots. First enable the [[#Network interfaces|network interface]]{{Broken section link}}:<br />
<br />
# ip link set ''interface'' up<br />
<br />
在终端中指定一个静态 IP:<br />
<br />
# ip addr add ''IP_address''/''subnet_mask'' broadcast ''broadcast_address'' dev ''interface''<br />
<br />
如此添加你的网关(用你的网关 IP 替换):<br />
<br />
# ip route add default via <默认网关的 IP 地址><br />
<br />
例如:<br />
# ip link set eth0 up<br />
# ip addr add 192.168.1.2/24 dev eth0<br />
# ip route add default via 192.168.1.1<br />
<br />
{{Tip|如果遇到 {{ic|RTNETLINK answers: Network is unreachable}}错误,请将路由创建步骤拆成两步:<br />
# ip route add 192.168.1.1 dev eth0<br />
# ip route add default via 192.168.1.1 dev eth0<br />
}}<br />
<br />
要撤销设置 (例如将要切换成动态 IP 前),先删除所有关联的 IP 地址:<br />
<br />
# ip addr flush dev ''interface''<br />
<br />
然后删除指定的网关:<br />
# ip route flush dev ''interface''<br />
<br />
最后禁用接口:<br />
# ip link set ''interface'' down<br />
<br />
更多选项参见:{{ic|man ip}},这些命令可以用 systemd 服务自动启动,请参考[[systemd#Writing unit files|systemd units]].<br />
<br />
==== 计算地址 ====<br />
<br />
可以用 {{Pkg|ipcalc}} 软件包提供的 {{ic|ipcalc}} 工具自动计算 IP 广播、子网掩码、主机范围等。例如通过火线连接视窗系统主机到 Arch。为了安全和网络组织,将它们分到独立的网络中,然后配置子网掩码和广播地址,网络中只有2台主机。要找出掩码和广播地址,我使用了 ipcalc,提供了它 arch firewire nic 的 IP 地址10.66.66.1,并告诉 ipcalc 要建立一个只有2台主机的网络。<br />
<br />
{{hc|$ ipcalc -nb 10.66.66.1 -s 1|<nowiki><br />
Address: 10.66.66.1<br />
<br />
Netmask: 255.255.255.252 = 30<br />
Network: 10.66.66.0/30<br />
HostMin: 10.66.66.1<br />
HostMax: 10.66.66.2<br />
Broadcast: 10.66.66.3<br />
Hosts/Net: 2 Class A, Private Internet<br />
</nowiki>}}<br />
<br />
== 更多设置 ==<br />
<br />
=== 笔记本电脑使用 Ifplugd ===<br />
<br />
{{Tip|[[dhcpcd]] 也提供了同样的功能。}}<br />
<br />
[[官方仓库]] 中的 {{Pkg|ifplugd}} 是一个守护进程,当网络适配器插入的时候自动配置网络,当网络断开的时候自动取消配置(比如某些3G的usb网络适配器)。这对于笔记本电脑这样的使用移动式的网络适配器的情况很有用,因为他只会在网络实际接入的时候才会配置网络接口。另外一个可能会用得着它的情况是,你需要重启你的网络,可是你既不想重启电脑也不想在 shell 中配置。<br />
<br />
在默认情况下,它会检查 {{ic|eth0}} 设备。要更改这个设置(以及更改其他设置,比如等待时间),可以编辑 {{ic|/etc/ifplugd/ifplugd.conf}}。<br />
<br />
启用 {{ic|net-auto-wired.service}} 就会在开机时启动 ifplugd,否则,你可以使用 {{ic|ifplugd@eth0.service}}。<br />
<br />
{{注意|[[Netctl]] 软件包包含了 {{ic|netctl-ifplugd@.service}},否则你可以使用 {{Pkg|ifplugd}} 软件包中的 {{ic|ifplugd@.service}}。例如 {{ic|systemctl enable ifplugd@eth0.service}}。}}<br />
<br />
=== 绑定和链路聚合 ===<br />
<br />
参见 [[netctl (简体中文)#Bonding(绑定)]]{{Broken section link}} 或 [[Wireless bonding]].<br />
<br />
=== IP 别名 ===<br />
<br />
IP 别名是指给同一个网络接口分配多个 IP 地址。这样一个网络节点可以有多个网络连接,每个实现不同的作用。Typical uses are virtual hosting of Web and FTP servers, or reorganizing servers without having to update any other machines (this is especially useful for nameservers).<br />
<br />
要手动设置别名,可以使用 {{Pkg|iproute2}} 执行:<br />
<br />
# ip addr add 192.168.2.101/24 dev eth0 label eth0:1<br />
<br />
要删除别名:<br />
<br />
# ip addr del 192.168.2.101/24 dev eth0:1<br />
<br />
发送到一个子网的软件不会使用主别名,如果目标 IP 属于子别名,原始 IP 也会被相应设置。如果有多个网卡,可以通过 {{ic|ip route}} 查看默认路由。<br />
<br />
=== 更改 MAC/硬件地址 ===<br />
<br />
参见 [[MAC address spoofing|伪造 MAC 地址]]。<br />
<br />
=== 共享网络连接 ===<br />
<br />
参见 [[Internet sharing|共享网络连接]]。<br />
<br />
=== 路由配置 ===<br />
<br />
参见 [[Router|路由]]。<br />
<br />
=== 局域网主机的名称解析 ===<br />
<br />
首先需要设置好主机名。<br />
<br />
{{hc|$ ping ''myhostname''|2=<br />
PING myhostname (192.168.1.2) 56(84) bytes of data.<br />
64 bytes from myhostname (192.168.1.2): icmp_seq=1 ttl=64 time=0.043 ms}}<br />
<br />
如果希望其他机器通过主机名访问到这台机器,可以手动修改 {{ic|/etc/hosts}} 文件或通过一个服务解析此主机名。使用 systemd 时,主机名解析可以通过 {{ic|myhostname}} nss 模块提供。但是并不是所有的网络服务都被支持 (例如: [https://bbs.archlinux.org/viewtopic.php?id=176761], [https://bbs.archlinux.org/viewtopic.php?id=186967]),或者其它客户端使用不同的操作系统解析主机名,这个也无法被 systemd 支持。 <br />
<br />
第一个解决方法是修改 {{ic|/etc/hosts}}:<br />
<br />
127.0.1.1 ''myhostname''.localdomain ''myhostname'' <br />
<br />
这样系统可以同时解析两个主机名: <br />
$ getent hosts <br />
127.0.0.1 localhost<br />
127.0.1.1 myhostname.localdomain myhostname<br />
<br />
如果使用固定 IP 地址,请用 IP 地址替换 {{ic|127.0.1.1}}. <br />
<br />
还有一个方法是架设 DNS 服务器例如 [[BIND]] or [[Unbound]], 但是这些方法有点小提大作。小的网络可以使用 [[Wikipedia:Zero-configuration_networking|zero-configuration networking]] 服务。有两个选择:<br />
<br />
*[[Samba]] 通过 Microsoft's '''NetBIOS''' 提供主机名称解析。这只需要安装 {{Pkg|samba}} 并启用 {{ic|nmbd.service}} 服务。运行 Windows、 OS X、或者运行着 {{ic|nmbd}} 的 Linux,将能找到你的机器。<br />
<br />
*[[Avahi]] 通过 '''zeroconf''',提供主机名称解析, 它也被称称作 Avahi 或者 Bonjour。这需要比 Samba 再稍微复杂一点的配置:详细信息参见 [[Avahi#Hostname resolution]]。运行 OS X 的电脑,或者运行着 Avahi 守护进程的 Linux,将能找到你的机器。Windows 没有内置的 Avahi 客户端或者守护进程。<br />
<br />
=== 全接收模式 ===<br />
<br />
切换网卡到 [[wikipedia:Promiscuous_mode|全接收模式]] 可以让网卡接收所有数据然后转交给操作系统处理。而正常模式下,网卡会丢掉不是不发给自己的数据。通常用来检查网络问题或进行 [[wikipedia:Packet_sniffing|数据包嗅探]].<br />
<br />
{{hc|/etc/systemd/system/promiscuous@.service|<nowiki><br />
[Unit]<br />
Description=Set %i interface in promiscuous mode<br />
After=network.target<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/usr/bin/ip link set dev %i promisc on<br />
RemainAfterExit=yes<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
如果要在 {{ic|eth0}} 上启用全接收模式,只需要 [[enable|启用]] {{ic|promiscuous@eth0.service}}.<br />
<br />
== 疑难排解 ==<br />
<br />
=== 更换了连接cable modem的计算机 ===<br />
<br />
许多家庭有线电视的运营商(例如加拿大最大的有线电视公司Videotron,还有中国大陆的有线电视宽带公司)都使用记录网卡MAC地址的方法将cable modem配置为只能一台计算机使用。一旦cable modem获得第一台连接它的PC的MAC地址,就不会响应任何其它MAC地址。这样如果你换了台PC(或者路由器),由于新PC(或者路由器)的MAC地址和旧的不同,就没法连接cable modem了。这时候必须复位cable modem以使它重新辨认新的PC。 你得关闭cable modem电源,然后重新打开。一旦cable modem重启并再次登录在线完毕(指示灯熄灭),重启新连接的PC以使它发起一个DHCP请求,或者手动发起DHCP请求。<br />
<br />
如果这个方法不能奏效,你需要克隆原来机器上的MAC地址。参见 [[Configuring Network#Change MAC/hardware address|Change MAC/hardware address]]。<br />
<br />
=== TCP窗口扩缩(window scaling)故障 ===<br />
<br />
TCP包头有个窗口(window)值表明其它主机可以发送多少数据回来。这个值只有16个bit,也就是说窗口打消最多只有64Kb。TCP包会被缓存一段时间(得被记录),如果内存限制(过去经常是)的话,主机很容易会用完内存。<br />
<br />
回到1992年,内存逐渐增加,[http://www.faqs.org/rfcs/rfc1323.html RFC 1323]被发布以改善情况:窗口扩缩(Window Scaling)。所有包里的窗口值,可以被初始连接时定义的一个缩放因子(Scale Factor)所改变。<br />
<br />
8-bit的缩放因子使得窗口可以是初始64Kb的32倍。<br />
<br />
但是Internet上有些有故障的路由器和防火墙会将缩放因子重写为0,这导致主机之间产生误解。<br />
<br />
Linux内核2.6.17引入了新的计算方式生成更高的缩放因子,间接的使得这些有故障的路由器和防火墙引发的后果更明显。<br />
<br />
这导致连接缓慢甚至中断。<br />
<br />
==== 如何诊断故障 ====<br />
<br />
首先,我们要明白:这个问题很怪异。在某些案例中,你根本无法使用(HTTP, FTP, ...),而有时候,你可以连接某些主机(很少)。<br />
<br />
当你碰到这个故障时,{{ic|dmesg}}的输出正确,日志也没问题,{{ic|ip a}}报告状态正常&mdash; 实际上一切都正常。<br />
<br />
如果你无法浏览任何网站,不过你能ping通少部分主机,很可能你是遇到了这个问题。:ping使用ICMP协议所以不受TCP问题的影响。<br />
<br />
你可以尝试使用WireShark。你也许会看到UDP和ICMP通讯成功,但是TCP通讯不成功(仅对外国主机)。<br />
<br />
==== 如何修复(糟糕的方法) ====<br />
<br />
用比较糟糕的方法修复的话,你可以修改缩放因子计算所基于的tcp_rmem值。虽然它对大部分主机有效,但并不担保一定都有效,特别是某些很远的主机。<br />
<br />
# echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem<br />
<br />
==== 如何修复(好点的方法) ====<br />
<br />
只需要禁止窗口缩放。虽然窗口缩放是个不错的TCP特性,但它也可能令人不安,特别是当你没法修改除了问题的路由器的时候。有几种方法可以禁止窗口缩放,而看来最可靠的(适用于大部分内核)将下面一行加入到你的{{ic|/etc/sysctl.d/99-disable_window_scaling.conf}} 中 (见 [[sysctl]])<br />
net.ipv4.tcp_window_scaling = 0<br />
<br />
==== 如何修复(最佳的方法) ====<br />
<br />
这个故障是由有毛病的路由器/防火墙引致的,所以最好换了它。有些用户报告说那些有故障的路由是他们自己的DSL路由。<br />
<br />
==== 更多 ====<br />
<br />
本段内容是基于LWN文章[http://lwn.net/Articles/92727/ TCP window scaling and broken routers]和一个Kernel Trap 文章:[http://kerneltrap.org/node/6723 Window Scaling on the Internet]。<br />
<br />
在LKML上也有几篇相关的帖子。<br />
<br />
=== Realtek 没有连接/网络唤醒故障 ===<br />
<br />
使用基于Realtek 8168 8169 8101 8111芯片网卡(独立网卡和板载)的用户也许会发现这个故障,启动时网卡不可用,网卡上的连接指示灯不亮。这通常会发生在安装了Windows的双启动系统上。在windows下使用realtek官方驱动(2007年5月后的版本)会引发故障。新驱动通过在Windows关机时禁止网卡来关闭网络唤醒功能,直到下一次Windows启动前网卡都会一直不可用。通过观察连接指示灯在Windows启动前一直熄灭,而Windows关机时也会熄灭,你可以发现它。正常操作应该是只要系统一直开着,即使在POST加电过程中,连接指示灯也应该一直亮着的。这个故障也会影响其它没有安装新驱动的操作系统(例如Live CD等)。这里给出几种解决方案:<br />
<br />
==== 在 Linux 中启用网卡 ====<br />
<br />
参考上面的启用和禁用网络接口段落。<br />
<br />
==== 方法一 还原/变更Win驱动 ====<br />
<br />
你可以将你的Windows网卡驱动还原回Microsoft自带的驱动(如果有的话),或者安装2007年5月份以前的Realtek官方驱动(也许在网卡附带的CD上)。<br />
<br />
==== 方法二 启动Windows驱动里的网络唤醒功能 ====<br />
<br />
也许最好最快的修复方法就是改变Windows驱动里的这个设置。这个方法可以解决很多其它操作系统而不仅仅是Arch的麻烦。在Windows的设备管理器里,找到你的Realtek网卡,双击它。在“高级”标签页中,开启"wake-on-lan after shutdown"选项。<br />
<br />
例如在Windows XP里<br />
右键点击我的电脑-->管理-->设备管理器-->网络适配器-->双击 Realtek ... --> 高级标签页--> Wake-On-Lan After Shutdown --> 启用。<br />
<br />
{{注意|新的 Realtek Windows 驱动程序中(已测试了 2009/01/22 GIGABYTE 上的 ''Realtek 8111/8169 LAN Driver v5.708.1030.2008'')可能与这里的选项稍微有点不同,像 ''Shutdown Wake-On-LAN --> Enable''。似乎把它切换成 {{ic|Disable}} 没有效果(你仍然可以在Windows关闭时看到连接指示灯熄灭)。一个比较不好的解决方法是引导 Windows,然后立即重启系统(执行非正常重启/关机),不给予 Windows 驱动程序关闭 LAN 的机会。连接指示灯将会保持亮着,网卡也会在 POST 之后保持可用 - 直到你再次进入 Windows 并正常关机。}}<br />
<br />
==== 方法三 更新Realtek Linux驱动 ====<br />
<br />
可以在realtek的官方网页上找到新的Linux驱动。(没有测试过,不过相信也能解决问题)。<br />
<br />
==== 方法四 在 BIOS/CMOS 中启用 ''LAN Boot ROM'' ====<br />
<br />
尽管 Windows 驱动程序在系统关闭时禁用了它,但在 BIOS/CMOS 中设置 ''Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled'',系统启动时会重新激活 Realtek LAN 芯片。<br />
{{注意|这个方法多次在 GIGABYTE GA-G31M-ES2L 主板,2009/02/05 发布的 BIOS 版本 F8 上测试成功。YMMV。}}<br />
<br />
=== 检查 DHCP 问题先释放 IP 地址 ===<br />
<br />
当 DHCP 获得了错误的 IP 分配就可能产生这个问题。举例来说,当两个路由器通过VPN相连,通过VPN与我相连的路由器可能分配IP地址。要修复这个问题,在终端中以 root 权限释放 IP 地址:<br />
<br />
# dhcpcd -k<br />
<br />
然后请求一个新的地址:<br />
<br />
# dhcpcd<br />
<br />
可能你必须运行这两个命令好几次。<br />
<br />
=== Atheros 芯片组找不到网卡 ===<br />
<br />
有些用户的 Atheros 芯片无法正常工作 (至少在 2014.2 月的安装中). 可以通过安装 {{AUR|backports-patched}} 解决。<br />
<br />
=== Broadcom BCM57780 ===<br />
<br />
这个 Broadcom 芯片只有你指定模块的加载顺序后才能正常工作。这些模块是 {{ic|broadcom}} 和 {{ic|tg3}},前者需要首先加载。<br />
<br />
如果你的电脑有这个芯片,这些步骤应该有用:<br />
<br />
$ lspci | grep Ethernet<br />
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)<br />
<br />
如果你的有线网络不能工作,尝试断开网线,然后以 root 权限实施以下步骤:<br />
<br />
# modprobe -r tg3<br />
# modprobe broadcom<br />
# modprobe tg3<br />
<br />
现在接入网线。如果现在你的故障解决了,你可以把 {{ic|broadcom}} 和 {{ic|tg3}} (以此顺序)加入到 {{ic|/etc/mkinitcpio.conf}} 的 {{ic|MODULES}} 一行,使得变更持久化:<br />
<br />
MODULES=".. broadcom tg3 .."<br />
<br />
然后重新编译 initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
* 还有一种方法是创建 {{ic|/etc/modprobe.d/broadcom.conf}}:<br />
<br />
softdep tg3 pre: broadcom<br />
<br />
{{注意|这些方法可能也适用于其它芯片,例如 BCM57760。}}<br />
<br />
=== Realtek RTL8111/8168B ===<br />
<br />
{{hc|<nowiki># lspci | grep Ethernet</nowiki>|<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)<br />
}}<br />
<br />
The adapter should be recognized by the {{ic|r8169}} module. However, with some chip revisions the connection may go off and on all the time. The alternative {{Pkg|r8168}} can be found in the [[official repositories]] and should be used for a reliable connection in this case. [[Kernel_modules#Blacklisting|Blacklist]] {{ic|r8169}}, if {{Pkg|r8168}} is not automatically loaded by [[udev]],see [[Kernel modules#Automatic module handling]]。<br />
{{Accuracy|"some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers}}<br />
<br />
Another fault in the drivers for some revisions of this adapter is poor IPv6 support. [[IPv6#Disable functionality]] can be helpful if you encounter issues such as hanging webpages and slow speeds.<br />
<br />
=== Gigabyte Motherboard with Realtek 8111/8168/8411 ===<br />
With motherboards such as the Gigabyte GA-990FXA-UD3, booting with IOMMU off (which can be the default) will cause the network interface to be unreliable, often failing to connect or connecting but allowing no throughput. This will apply not only to the onboard NIC, but any other pci-NIC you put in the box because the IOMMU setting affects the entire network interface on the board. Enabling IOMMU and booting with the install media will throw AMD I-10/xhci page faults for a second, but then boot normally, resulting in a fully functional onboard NIC (even with the r8169 module).<br />
<br />
When configuring the boot process for your installation, add {{ic|1=iommu=soft}} as a [[kernel parameter]] to eliminate the error messages on boot and restore USB3.0 functionality.</div>2419https://wiki.archlinux.org/index.php?title=Network_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=448458Network configuration (简体中文)2016-08-28T11:26:01Z<p>2419: delete unnecessary '['</p>
<hr />
<div>[[Category:Networking (简体中文)]]<br />
[[cs:Network configuration]]<br />
[[el:Network configuration]]<br />
[[en:Network configuration]]<br />
[[es:Network configuration]]<br />
[[fr:Connexions reseau]]<br />
[[it:Network configuration]]<br />
[[ja:ネットワーク設定]]<br />
[[nl:Network configuration]]<br />
[[pt:Network configuration]]<br />
[[ro:Configurare retea]]<br />
[[ru:Network configuration]]<br />
[[sk:Network configuration]]<br />
[[tr:Ağ Yapılandırması]]<br />
[[zh-tw:Network configuration]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|Jumbo frames}}<br />
{{Related|Firewalls}}<br />
{{Related|Wireless network configuration (简体中文)}}<br />
{{Related|List of applications#Network Managers}}<br />
{{Related articles end}}<br />
{{TranslationStatus (简体中文)|Network_configuration|2016-08-22|445647}}<br />
本页解释了如何配置 '''有线''' 网络连接。如果你需要设置 '''无线''' 网络,参见[[Wireless network configuration (简体中文)|无线配置]]页面。<br />
<br />
== 检查连接 ==<br />
<br />
基本的安装过程已经创建了正确的网络配置。通过''ping''检查:<br />
{{hc|$ ping -c 3 www.google.com|<nowiki><br />
PING www.l.google.com (74.125.224.146) 56(84) bytes of data.<br />
64 bytes from 74.125.224.146: icmp_req=1 ttl=50 time=437 ms<br />
</nowiki>}}<br />
<br />
成功时会收到类似上面的 64 bytes 信息,按 {{ic|Control-C}} 可以停止ping.<br />
<br />
{{小贴士| 参数 {{ic|-c 3}} 表示执行命令 {{ic|ping}} 3次 。 参见 {{ic|man ping}}。}}<br />
<br />
如果上面的命令说 unknown hosts,意思是你的机器无法进行域名解析。这可能和你的服务提供商或者你的路由器/网关有关。你可以尝试 ping {{ic|8.8.8.8}} 来验证你的电脑是否能访问 Internet。它是 Google 的主 DNS 服务器,因此它可以视为可信的,通常不会被过滤系统或代理屏蔽。<br />
<br />
{{hc|$ ping -c 3 8.8.8.8|<nowiki><br />
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.<br />
64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=52.9 ms<br />
</nowiki>}}<br />
<br />
如果可以 ping {{ic|8.8.8.8}} 但是不能 ping {{ic|www.google.com}}, 参考 [[resolv.conf]] 检查 DNS 配置。还需要查下 {{ic|/etc/nsswitch.conf}} 中的 {{ic|hosts}} 行。如果不能 ping 通,请检查网线问题。<br />
<br />
== 设置计算机名 ==<br />
<br />
[[Wikipedia:Hostname|主机名]] 是一个网络中唯一标识一台机器的名称。主机名通过文件 {{ic|/etc/hostname}} 进行配置。这样设置主机名:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
这将会把 '''myhostname''' 写入 {{ic|/etc/hostname}}。详情参见 {{ic|man 5 hostname}} 和 {{ic|man 1 hostnamectl}}。<br />
<br />
{{注意|在 Arch Linux chroot 安装环境中,''hostnamectl''不起作用,要设置安装环境的主机名,请手动[[textedit|编辑]] {{ic|/etc/hostname}},加入一行{{ic|''myhostname''}}.}}<br />
<br />
建议同时在 {{ic|/etc/hosts}} 中设置 hostname:<br />
<br />
{{hc|/etc/hosts|2=<br />
#<br />
# /etc/hosts: static lookup table for host names<br />
#<br />
<br />
#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 localhost.localdomain localhost ''myhostname''<br />
::1 localhost.localdomain localhost ''myhostname''<br />
}}<br />
<br />
{{注意|{{Pkg|systemd}} 通过 {{ic|myhostname}} nss 模块(在 {{ic|/etc/nsswitch.conf}} 中默认启用)进行主机名解析,所以大部分情况下都不需要在 {{ic|/etc/hosts}} 中设置主机名。但是有些用户反馈如果不设置,某些依赖网络的程序会碰到延迟问题。参考 [[#Local network hostname resolution]]{{Broken section link}}。}}<br />
<br />
要临时设置主机名(直到下次重启为止),使用 {{Pkg|inetutils}} 中的 {{ic|hostname}} 命令:<br />
<br />
# hostname ''myhostname''<br />
<br />
要设置清晰的主机名和其它机器数据,请参考 {{ic|machine-info}} 手册页.<br />
<br />
== 设备驱动程序 ==<br />
<br />
=== 检测驱动状态 ===<br />
<br />
[[Udev]] 会探测网卡([[Wikipedia:Network_interface_controller|NIC]])并在启动时自动载入必要的模块。 检查 {{ic|lspci -v}} 输出中 "Ethernet controller" (或者类似的)条目,它会告诉你哪个内核模块包含了网络设备的驱动程序。例如:<br />
<br />
{{hc|$ lspci -v|<br />
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)<br />
...<br />
Kernel driver in use: atl1<br />
Kernel modules: atl1<br />
}}<br />
<br />
接下来, 用 {{ic|dmesg <nowiki>|</nowiki> grep ''module_name''}} 来检查是否已经加载了驱动。例如:<br />
$ dmesg |grep atl1<br />
...<br />
atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex<br />
<br />
如果驱动加载成功,就跳过下一节,否则,你需要知道您特定型号的网络设备需要哪一个模块。<br />
<br />
=== 加载设备模块 ===<br />
<br />
用 Google 查找芯片组需要的模块/驱动。常见的驱动模块有用于 Realtek 芯片组网卡的 {{ic|8139too}},或者用于 Sis 芯片组网卡的 {{ic|sis900}}。知道要使用什么模块之后,尝试 [[Kernel modules#Manual module handling|手动加载它]]。如果你碰到了未找到模块的错误,可能驱动没有包括在 Arch 的内核中。你可以在 [[AUR]] 中搜索模块名称。<br />
<br />
如果 udev 在引导时不能自动侦测和加载适当的模块,参见 [[Kernel modules#Loading]]{{Broken section link}}。<br />
<br />
== 网络接口 ==<br />
<br />
=== 设备命名 ===<br />
<br />
对于有多块网卡的电脑,固定的设备名称很重要。许多配置问题都是由于网络接口名称变化引起的。<br />
<br />
[[udev]] 负责给设备命名。Systemd v197 引入了[http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames 可预测的网络接口名称]自动给网络设备分配静态名称,网络接口现在是以前缀 {{ic|en}}(以太网)、{{ic|wl}}(WLAN)、或者 {{ic|ww}}(WWAN)附上一个自动生成的标识符,产生了一个类似于 {{ic|enp0s25}} 的条目。在 [[kernel parameters]] 中添加 {{ic|1=net.ifnames=0}} 可以禁用此功能.<br />
<br />
{{注意|当你改变接口命名规则时,不要忘记更新所有与网络相关的配置文件和自定义的 systemd unit 文件以反映变化。特别是当你启用了 [[netctl#Basic method|netctl 静态配置]] 时,要运行 {{ic|netctl reenable ''profile''}} 来更新生成的服务文件。}}<br />
<br />
=== 获取当前网络名 ===<br />
<br />
可以通过 sysfs 或 {{ic|ip link}} 找到。<br />
<br />
{{hc|$ ls /sys/class/net| <br />
lo eth0 eth1 firewire0<br />
}}<br />
<br />
{{hc|$ ip link|<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000<br />
link/ether 08:00:27:23:6f:3a brd ff:ff:ff:ff:ff:ff<br />
}}<br />
<br />
无线设备名称也可以通过 {{ic|iw dev}} 查看,请参考 [[Wireless network configuration#Getting some useful information]].<br />
<br />
==== 更改设备名称 ====<br />
<br />
你可以用 udev-rule 手动定义名称来更改设备名称。例如:<br />
<br />
{{hc|/etc/udev/rules.d/10-network.rules|<nowiki><br />
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"<br />
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="net0"<br />
</nowiki>}}<br />
<br />
值得注意的两点:<br />
<br />
* 使用这条命令来获得每张网卡的 MAC 地址:{{ic|cat /sys/class/net/'''设备名'''/address}}<br />
* 确保你的 udev 规则中使用小写的十六进制值,而不是大写。<br />
<br />
{{注意|选择静态名称时,'''应该避免使用形如 "eth''X''" 或 "wlan''X''" 的名称''',因为这可能在引导时导致内核与 udev 之间的竞争状态。相反,最好用内核默认不会使用的接口名称,例如:{{ic|net0}}、{{ic|net1}}、{{ic|wifi0}}、{{ic|wifi1}}。更多细节请查看 [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames systemd] 文档。}}<br />
<br />
==== 使用传统网络命名规则 ====<br />
<br />
如果希望使用传统的命名方法 eth0,可以通过下面方法禁用 [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames Predictable Network Interface Names]:<br />
<br />
# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules<br />
<br />
=== 设定设备的 MTU 和队列长度 ===<br />
<br />
你可以手动定义一条 udev 规则来改变队列的 MTU(最大传输单元)和队列长度You can change the device MTU and queue length by defining manually with an udev-rule。举例来说:<br />
<br />
{{hc|/etc/udev/rules.d/10-network.rules|<nowiki><br />
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wl*", ATTR{mtu}="1480", ATTR{tx_queue_len}="2000"<br />
</nowiki>}}<br />
<br />
=== 启用和禁用网络接口 ===<br />
<br />
可以通过如下命令启用或禁用接口:<br />
<br />
# ip link set eth0 up<br />
# ip link set eth0 down<br />
<br />
查看结果:<br />
<br />
{{hc|$ ip link show dev eth0|<br />
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT qlen 1000<br />
...<br />
}}<br />
<br />
{{Note| 如果默认路由是通过 {{ic|eth0}} 建立,禁用接口同时也会删除路由,再次启用也不会自动重新建立路由,要重新建立,请参考 [[#手动分配]]{{Broken section link}}.}}<br />
<br />
== 配置 IP 地址 ==<br />
<br />
有两种配置方式:通过 [[Wikipedia:Dynamic Host Configuration Protocol|DHCP]],或者不变的''静态''地址。请选择一种方式,同时使用多个设置方式可能会引起冲突。<br />
<br />
=== 动态 IP 地址 ===<br />
<br />
==== systemd-networkd ====<br />
一种DHCP的简单配置方法是利用systemd提供的[[systemd-networkd]]服务。参见[[systemd-networkd#Basic DHCP network]]。<br />
<br />
==== dhcpcd ====<br />
[[dhcpcd]] 是 Arch Linux 安装 ISO 上默认的 DHCP 客户的,功能强大,有多种客户端配置选项。启用方式请参考 [[dhcpcd#Running]]。<br />
<br />
==== netctl ====<br />
<br />
[[netctl]]是利用用户创建的profiles进行网络配置的CTI-based工具,如何创建profile参见[[netctl#Example profiles]],激活参见[[netctl#Basic method]]。<br />
<br />
=== 静态 IP 地址 ===<br />
<br />
不管用什么方法设置静态 IP,都需要确定:<br />
<br />
* 静态IP地址,<br />
* [[Wikipedia:Subnetwork|子网掩码]],使用 [[Wikipedia:CIDR_notation|CIDR 表示法]]<br />
* [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR 表示法]] 的子网掩码,例如 {{ic|255.255.255.0}} 按 CIDR 表示为 {{ic|/24}}<br />
* [[Wikipedia:Broadcast_address|广播地址]],<br />
* [[Wikipedia:Default_gateway|网关]]的IP地址<br />
* Name server (DNS) IP addresses. See also [[resolv.conf]].<br />
<br />
如果你想配置一个内部网络,可以将你的 IP 设置成 192.168.*.* ,子网掩码设置成 255.255.255.0 ,广播地址设置成 192.168.*.255 。网关通常是 192.168.*.1 或者 192.168.*.254。<br />
<br />
{{Warning|<br />
* 请确保手动设置的 IP 地址不会和 DHCP 自动分配的地址冲突,参考 [http://www.raspberrypi.org/forums/viewtopic.php?f&#61;28&t&#61;16797 这个论坛帖子]<br />
* 在不使用路由器的情况下和一台安装 Windows 的电脑分享你的网络连接,请确保两台电脑都使用静态 IP ,否则你的局域网将会有问题。<br />
}}<br />
<br />
==== netctl ====<br />
要创建 [[netctl]] 静态 IP 配置,设置 {{ic|1=IP=static}} 选项以及 {{ic|Address}}, {{ic|Gateway}} 和 {{ic|DNS}}. 参考 [[netctl#Wired]].<br />
<br />
==== systemd-networkd ====<br />
<br />
[[systemd-networkd]] 服务可以使用简单的配置文件配置静态 IP 地址,参考 [[systemd-networkd#Wired adapter using a static IP]].<br />
<br />
==== dhcpcd ====<br />
<br />
参考 [[dhcpcd#Static profile]].<br />
<br />
==== 手动指定 ====<br />
<br />
It is possible to manually set up a static IP using only the {{pkg|iproute2}} package. This is a good way to test connection settings since the connection will not persist across reboots. First enable the [[#Network interfaces|network interface]]{{Broken section link}}:<br />
<br />
# ip link set ''interface'' up<br />
<br />
在终端中指定一个静态 IP:<br />
<br />
# ip addr add ''IP_address''/''subnet_mask'' broadcast ''broadcast_address'' dev ''interface''<br />
<br />
如此添加你的网关(用你的网关 IP 替换):<br />
<br />
# ip route add default via <默认网关的 IP 地址><br />
<br />
例如:<br />
# ip link set eth0 up<br />
# ip addr add 192.168.1.2/24 dev eth0<br />
# ip route add default via 192.168.1.1<br />
<br />
{{Tip|如果遇到 {{ic|RTNETLINK answers: Network is unreachable}}错误,请将路由创建步骤拆成两步:<br />
# ip route add 192.168.1.1 dev eth0<br />
# ip route add default via 192.168.1.1 dev eth0<br />
}}<br />
<br />
要撤销设置 (例如将要切换成动态 IP 前),先删除所有关联的 IP 地址:<br />
<br />
# ip addr flush dev ''interface''<br />
<br />
然后删除指定的网关:<br />
# ip route flush dev ''interface''<br />
<br />
最后禁用接口:<br />
# ip link set ''interface'' down<br />
<br />
更多选项参见:{{ic|man ip}},这些命令可以用 systemd 服务自动启动,请参考[[systemd#Writing unit files|systemd units]].<br />
<br />
==== 计算地址 ====<br />
<br />
可以用 {{Pkg|ipcalc}} 软件包提供的 {{ic|ipcalc}} 工具自动计算 IP 广播、子网掩码、主机范围等。例如通过火线连接视窗系统主机到 Arch。为了安全和网络组织,将它们分到独立的网络中,然后配置子网掩码和广播地址,网络中只有2台主机。要找出掩码和广播地址,我使用了 ipcalc,提供了它 arch firewire nic 的 IP 地址10.66.66.1,并告诉 ipcalc 要建立一个只有2台主机的网络。<br />
<br />
{{hc|$ ipcalc -nb 10.66.66.1 -s 1|<nowiki><br />
Address: 10.66.66.1<br />
<br />
Netmask: 255.255.255.252 = 30<br />
Network: 10.66.66.0/30<br />
HostMin: 10.66.66.1<br />
HostMax: 10.66.66.2<br />
Broadcast: 10.66.66.3<br />
Hosts/Net: 2 Class A, Private Internet<br />
</nowiki>}}<br />
<br />
== 更多设置 ==<br />
<br />
=== 笔记本电脑使用 Ifplugd ===<br />
<br />
{{Tip|[[dhcpcd]] 也提供了同样的功能。}}<br />
<br />
[[官方仓库]] 中的 {{Pkg|ifplugd}} 是一个守护进程,当网络适配器插入的时候自动配置网络,当网络断开的时候自动取消配置(比如某些3G的usb网络适配器)。这对于笔记本电脑这样的使用移动式的网络适配器的情况很有用,因为他只会在网络实际接入的时候才会配置网络接口。另外一个可能会用得着它的情况是,你需要重启你的网络,可是你既不想重启电脑也不想在 shell 中配置。<br />
<br />
在默认情况下,它会检查 {{ic|eth0}} 设备。要更改这个设置(以及更改其他设置,比如等待时间),可以编辑 {{ic|/etc/ifplugd/ifplugd.conf}}。<br />
<br />
启用 {{ic|net-auto-wired.service}} 就会在开机时启动 ifplugd,否则,你可以使用 {{ic|ifplugd@eth0.service}}。<br />
<br />
{{注意|[[Netctl]] 软件包包含了 {{ic|netctl-ifplugd@.service}},否则你可以使用 {{Pkg|ifplugd}} 软件包中的 {{ic|ifplugd@.service}}。例如 {{ic|systemctl enable ifplugd@eth0.service}}。}}<br />
<br />
=== 绑定和链路聚合 ===<br />
<br />
参见 [[netctl (简体中文)#Bonding(绑定)]]{{Broken section link}} 或 [[Wireless bonding]].<br />
<br />
=== IP 别名 ===<br />
<br />
IP 别名是指给同一个网络接口分配多个 IP 地址。这样一个网络节点可以有多个网络连接,每个实现不同的作用。Typical uses are virtual hosting of Web and FTP servers, or reorganizing servers without having to update any other machines (this is especially useful for nameservers).<br />
<br />
要手动设置别名,可以使用 {{Pkg|iproute2}} 执行:<br />
<br />
# ip addr add 192.168.2.101/24 dev eth0 label eth0:1<br />
<br />
要删除别名:<br />
<br />
# ip addr del 192.168.2.101/24 dev eth0:1<br />
<br />
发送到一个子网的软件不会使用主别名,如果目标 IP 属于子别名,原始 IP 也会被相应设置。如果有多个网卡,可以通过 {{ic|ip route}} 查看默认路由。<br />
<br />
=== 更改 MAC/硬件地址 ===<br />
<br />
参见 [[MAC address spoofing|伪造 MAC 地址]]。<br />
<br />
=== 共享网络连接 ===<br />
<br />
参见 [[Internet sharing|共享网络连接]]。<br />
<br />
=== 路由配置 ===<br />
<br />
参见 [[Router|路由]]。<br />
<br />
=== 局域网主机的名称解析 ===<br />
<br />
首先需要设置好主机名。<br />
<br />
{{hc|$ ping ''myhostname''|2=<br />
PING myhostname (192.168.1.2) 56(84) bytes of data.<br />
64 bytes from myhostname (192.168.1.2): icmp_seq=1 ttl=64 time=0.043 ms}}<br />
<br />
如果希望其他机器通过主机名访问到这台机器,可以手动修改 {{ic|/etc/hosts}} 文件或通过一个服务解析此主机名。使用 systemd 时,主机名解析可以通过 {{ic|myhostname}} nss 模块提供。但是并不是所有的网络服务都被支持 (例如: [https://bbs.archlinux.org/viewtopic.php?id=176761], [https://bbs.archlinux.org/viewtopic.php?id=186967]),或者其它客户端使用不同的操作系统解析主机名,这个也无法被 systemd 支持。 <br />
<br />
第一个解决方法是修改 {{ic|/etc/hosts}}:<br />
<br />
127.0.1.1 ''myhostname''.localdomain ''myhostname'' <br />
<br />
这样系统可以同时解析两个主机名: <br />
$ getent hosts <br />
127.0.0.1 localhost<br />
127.0.1.1 myhostname.localdomain myhostname<br />
<br />
如果使用固定 IP 地址,请用 IP 地址替换 {{ic|127.0.1.1}}. <br />
<br />
还有一个方法是架设 DNS 服务器例如 [[BIND]] or [[Unbound]], 但是这些方法有点小提大作。小的网络可以使用 [[Wikipedia:Zero-configuration_networking|zero-configuration networking]] 服务。有两个选择:<br />
<br />
*[[Samba]] 通过 Microsoft's '''NetBIOS''' 提供主机名称解析。这只需要安装 {{Pkg|samba}} 并启用 {{ic|nmbd.service}} 服务。运行 Windows、 OS X、或者运行着 {{ic|nmbd}} 的 Linux,将能找到你的机器。<br />
<br />
*[[Avahi]] 通过 '''zeroconf''',提供主机名称解析, 它也被称称作 Avahi 或者 Bonjour。这需要比 Samba 再稍微复杂一点的配置:详细信息参见 [[Avahi#Hostname resolution]]。运行 OS X 的电脑,或者运行着 Avahi 守护进程的 Linux,将能找到你的机器。Windows 没有内置的 Avahi 客户端或者守护进程。<br />
<br />
=== 全接收模式 ===<br />
<br />
切换网卡到 [[wikipedia:Promiscuous_mode|全接收模式]] 可以让网卡接收所有数据然后转交给操作系统处理。而正常模式下,网卡会丢掉不是不发给自己的数据。通常用来检查网络问题或进行 [[wikipedia:Packet_sniffing|数据包嗅探]].<br />
<br />
{{hc|/etc/systemd/system/promiscuous@.service|<nowiki><br />
[Unit]<br />
Description=Set %i interface in promiscuous mode<br />
After=network.target<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/usr/bin/ip link set dev %i promisc on<br />
RemainAfterExit=yes<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
如果要在 {{ic|eth0}} 上启用全接收模式,只需要 [[enable|启用]] {{ic|promiscuous@eth0.service}}.<br />
<br />
== 疑难排解 ==<br />
<br />
=== 更换了连接cable modem的计算机 ===<br />
<br />
许多家庭有线电视的运营商(例如加拿大最大的有线电视公司Videotron,还有中国大陆的有线电视宽带公司)都使用记录网卡MAC地址的方法将cable modem配置为只能一台计算机使用。一旦cable modem获得第一台连接它的PC的MAC地址,就不会响应任何其它MAC地址。这样如果你换了台PC(或者路由器),由于新PC(或者路由器)的MAC地址和旧的不同,就没法连接cable modem了。这时候必须复位cable modem以使它重新辨认新的PC。 你得关闭cable modem电源,然后重新打开。一旦cable modem重启并再次登录在线完毕(指示灯熄灭),重启新连接的PC以使它发起一个DHCP请求,或者手动发起DHCP请求。<br />
<br />
如果这个方法不能奏效,你需要克隆原来机器上的MAC地址。参见 [[Configuring Network#Change MAC/hardware address|Change MAC/hardware address]]。<br />
<br />
=== TCP窗口扩缩(window scaling)故障 ===<br />
<br />
TCP包头有个窗口(window)值表明其它主机可以发送多少数据回来。这个值只有16个bit,也就是说窗口打消最多只有64Kb。TCP包会被缓存一段时间(得被记录),如果内存限制(过去经常是)的话,主机很容易会用完内存。<br />
<br />
回到1992年,内存逐渐增加,[http://www.faqs.org/rfcs/rfc1323.html RFC 1323]被发布以改善情况:窗口扩缩(Window Scaling)。所有包里的窗口值,可以被初始连接时定义的一个缩放因子(Scale Factor)所改变。<br />
<br />
8-bit的缩放因子使得窗口可以是初始64Kb的32倍。<br />
<br />
但是Internet上有些有故障的路由器和防火墙会将缩放因子重写为0,这导致主机之间产生误解。<br />
<br />
Linux内核2.6.17引入了新的计算方式生成更高的缩放因子,间接的使得这些有故障的路由器和防火墙引发的后果更明显。<br />
<br />
这导致连接缓慢甚至中断。<br />
<br />
==== 如何诊断故障 ====<br />
<br />
首先,我们要明白:这个问题很怪异。在某些案例中,你根本无法使用(HTTP, FTP, ...),而有时候,你可以连接某些主机(很少)。<br />
<br />
当你碰到这个故障时,{{ic|dmesg}}的输出正确,日志也没问题,{{ic|ip a}}报告状态正常&mdash; 实际上一切都正常。<br />
<br />
如果你无法浏览任何网站,不过你能ping通少部分主机,很可能你是遇到了这个问题。:ping使用ICMP协议所以不受TCP问题的影响。<br />
<br />
你可以尝试使用WireShark。你也许会看到UDP和ICMP通讯成功,但是TCP通讯不成功(仅对外国主机)。<br />
<br />
==== 如何修复(糟糕的方法) ====<br />
<br />
用比较糟糕的方法修复的话,你可以修改缩放因子计算所基于的tcp_rmem值。虽然它对大部分主机有效,但并不担保一定都有效,特别是某些很远的主机。<br />
<br />
# echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem<br />
<br />
==== 如何修复(好点的方法) ====<br />
<br />
只需要禁止窗口缩放。虽然窗口缩放是个不错的TCP特性,但它也可能令人不安,特别是当你没法修改除了问题的路由器的时候。有几种方法可以禁止窗口缩放,而看来最可靠的(适用于大部分内核)将下面一行加入到你的{{ic|/etc/sysctl.d/99-disable_window_scaling.conf}} 中 (见 [[sysctl]])<br />
net.ipv4.tcp_window_scaling = 0<br />
<br />
==== 如何修复(最佳的方法) ====<br />
<br />
这个故障是由有毛病的路由器/防火墙引致的,所以最好换了它。有些用户报告说那些有故障的路由是他们自己的DSL路由。<br />
<br />
==== 更多 ====<br />
<br />
本段内容是基于LWN文章[http://lwn.net/Articles/92727/ TCP window scaling and broken routers]和一个Kernel Trap 文章:[http://kerneltrap.org/node/6723 Window Scaling on the Internet]。<br />
<br />
在LKML上也有几篇相关的帖子。<br />
<br />
=== Realtek 没有连接/网络唤醒故障 ===<br />
<br />
使用基于Realtek 8168 8169 8101 8111芯片网卡(独立网卡和板载)的用户也许会发现这个故障,启动时网卡不可用,网卡上的连接指示灯不亮。这通常会发生在安装了Windows的双启动系统上。在windows下使用realtek官方驱动(2007年5月后的版本)会引发故障。新驱动通过在Windows关机时禁止网卡来关闭网络唤醒功能,直到下一次Windows启动前网卡都会一直不可用。通过观察连接指示灯在Windows启动前一直熄灭,而Windows关机时也会熄灭,你可以发现它。正常操作应该是只要系统一直开着,即使在POST加电过程中,连接指示灯也应该一直亮着的。这个故障也会影响其它没有安装新驱动的操作系统(例如Live CD等)。这里给出几种解决方案:<br />
<br />
==== 在 Linux 中启用网卡 ====<br />
<br />
参考上面的启用和禁用网络接口段落。<br />
<br />
==== 方法一 还原/变更Win驱动 ====<br />
<br />
你可以将你的Windows网卡驱动还原回Microsoft自带的驱动(如果有的话),或者安装2007年5月份以前的Realtek官方驱动(也许在网卡附带的CD上)。<br />
<br />
==== 方法二 启动Windows驱动里的网络唤醒功能 ====<br />
<br />
也许最好最快的修复方法就是改变Windows驱动里的这个设置。这个方法可以解决很多其它操作系统而不仅仅是Arch的麻烦。在Windows的设备管理器里,找到你的Realtek网卡,双击它。在“高级”标签页中,开启"wake-on-lan after shutdown"选项。<br />
<br />
例如在Windows XP里<br />
右键点击我的电脑-->管理-->设备管理器-->网络适配器-->双击 Realtek ... --> 高级标签页--> Wake-On-Lan After Shutdown --> 启用。<br />
<br />
{{注意|新的 Realtek Windows 驱动程序中(已测试了 2009/01/22 GIGABYTE 上的 ''Realtek 8111/8169 LAN Driver v5.708.1030.2008'')可能与这里的选项稍微有点不同,像 ''Shutdown Wake-On-LAN --> Enable''。似乎把它切换成 {{ic|Disable}} 没有效果(你仍然可以在Windows关闭时看到连接指示灯熄灭)。一个比较不好的解决方法是引导 Windows,然后立即重启系统(执行非正常重启/关机),不给予 Windows 驱动程序关闭 LAN 的机会。连接指示灯将会保持亮着,网卡也会在 POST 之后保持可用 - 直到你再次进入 Windows 并正常关机。}}<br />
<br />
==== 方法三 更新Realtek Linux驱动 ====<br />
<br />
可以在realtek的官方网页上找到新的Linux驱动。(没有测试过,不过相信也能解决问题)。<br />
<br />
==== 方法四 在 BIOS/CMOS 中启用 ''LAN Boot ROM'' ====<br />
<br />
尽管 Windows 驱动程序在系统关闭时禁用了它,但在 BIOS/CMOS 中设置 ''Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled'',系统启动时会重新激活 Realtek LAN 芯片。<br />
{{注意|这个方法多次在 GIGABYTE GA-G31M-ES2L 主板,2009/02/05 发布的 BIOS 版本 F8 上测试成功。YMMV。}}<br />
<br />
=== 检查 DHCP 问题先释放 IP 地址 ===<br />
<br />
当 DHCP 获得了错误的 IP 分配就可能产生这个问题。举例来说,当两个路由器通过VPN相连,通过VPN与我相连的路由器可能分配IP地址。要修复这个问题,在终端中以 root 权限释放 IP 地址:<br />
<br />
# dhcpcd -k<br />
<br />
然后请求一个新的地址:<br />
<br />
# dhcpcd<br />
<br />
可能你必须运行这两个命令好几次。<br />
<br />
=== Atheros 芯片组找不到网卡 ===<br />
<br />
有些用户的 Atheros 芯片无法正常工作 (至少在 2014.2 月的安装中). 可以通过安装 {{AUR|backports-patched}} 解决。<br />
<br />
=== Broadcom BCM57780 ===<br />
<br />
这个 Broadcom 芯片只有你指定模块的加载顺序后才能正常工作。这些模块是 {{ic|broadcom}} 和 {{ic|tg3}},前者需要首先加载。<br />
<br />
如果你的电脑有这个芯片,这些步骤应该有用:<br />
<br />
$ lspci | grep Ethernet<br />
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)<br />
<br />
如果你的有线网络不能工作,尝试断开网线,然后以 root 权限实施以下步骤:<br />
<br />
# modprobe -r tg3<br />
# modprobe broadcom<br />
# modprobe tg3<br />
<br />
现在接入网线。如果现在你的故障解决了,你可以把 {{ic|broadcom}} 和 {{ic|tg3}} (以此顺序)加入到 {{ic|/etc/mkinitcpio.conf}} 的 {{ic|MODULES}} 一行,使得变更持久化:<br />
<br />
MODULES=".. broadcom tg3 .."<br />
<br />
然后重新编译 initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
* 还有一种方法是创建 {{ic|/etc/modprobe.d/broadcom.conf}}:<br />
<br />
softdep tg3 pre: broadcom<br />
<br />
{{注意|这些方法可能也适用于其它芯片,例如 BCM57760。}}<br />
<br />
=== Realtek RTL8111/8168B ===<br />
<br />
{{hc|<nowiki># lspci | grep Ethernet</nowiki>|<br />
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)<br />
}}<br />
<br />
The adapter should be recognized by the {{ic|r8169}} module. However, with some chip revisions the connection may go off and on all the time. The alternative {{Pkg|r8168}} can be found in the [[official repositories]] and should be used for a reliable connection in this case. [[Kernel_modules#Blacklisting|Blacklist]] {{ic|r8169}}, if {{Pkg|r8168}} is not automatically loaded by [[udev]],see [[Kernel modules#Automatic module handling]]。<br />
{{Accuracy|"some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers}}<br />
<br />
Another fault in the drivers for some revisions of this adapter is poor IPv6 support. [[IPv6#Disable functionality]] can be helpful if you encounter issues such as hanging webpages and slow speeds.<br />
<br />
=== Gigabyte Motherboard with Realtek 8111/8168/8411 ===<br />
With motherboards such as the Gigabyte GA-990FXA-UD3, booting with IOMMU off (which can be the default) will cause the network interface to be unreliable, often failing to connect or connecting but allowing no throughput. This will apply not only to the onboard NIC, but any other pci-NIC you put in the box because the IOMMU setting affects the entire network interface on the board. Enabling IOMMU and booting with the install media will throw AMD I-10/xhci page faults for a second, but then boot normally, resulting in a fully functional onboard NIC (even with the r8169 module).<br />
<br />
When configuring the boot process for your installation, add {{ic|1=iommu=soft}} as a [[kernel parameter]] to eliminate the error messages on boot and restore USB3.0 functionality.</div>2419https://wiki.archlinux.org/index.php?title=Swap_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=446995Swap (简体中文)2016-08-19T06:40:55Z<p>2419: /* 建立交换文件 */ 2 commands without separated may lead to both commands is necessary.</p>
<hr />
<div>[[Category:File systems (简体中文)]]<br />
[[en:Swap]]<br />
[[es:Swap]]<br />
[[fr:Swap]]<br />
[[hu:Swap]]<br />
[[it:Swap]]<br />
[[ja:スワップ]]<br />
[[pt:Swap]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|Swap on video ram}}<br />
{{Related2|fstab (简体中文)|fstab}}<br />
{{Related articles end}}<br />
:''Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存的总量。''<br />
:: - Linux.com, [http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space 关于 Linux Swap 空间]。<br />
<br />
== 交换空间 ==<br />
交换空间通常是一个磁盘分区,但是也可以是一个文件。必要的话,用户可以在安装 Arch Linux 或之后的任何时间建立交换空间。对于 RAM 小于 1GB 的用户,交换空间通常是推荐的,但是对于拥有大量的物理内存的用户来说是否使用主要看个人口味了(尽管它对于休眠到硬盘支持是必须的)。<br />
<br />
要检查交换空间的状态,使用<br />
$ swapon -s<br />
<br />
或者:<br />
$ free -m<br />
<br />
== 交换分区 ==<br />
交换分区可以用大多数 GNU/Linux 分区工具(例如 {{Ic|fdisk}}, {{Ic|cfdisk}})创建。交换分区被分配为类型 '''82'''.<br />
<br />
想安装一个 Linux 交换区域,使用 {{Ic|mkswap}} 命令。例如:<br />
# mkswap /dev/sda2<br />
<br />
{{警告|指定分区上的所有数据会丢失。}}<br />
<br />
想要启用一个设备作为交换分区:<br />
# swapon /dev/sda2<br />
<br />
想要启动时自动启用交换分区,添加一个条目到 [[fstab (简体中文)|fstab]]:<br />
/dev/sda2 none swap defaults 0 0<br />
<br />
== 交换文件 ==<br />
<br />
As an alternative to creating an entire partition, a swap file offers the ability to vary its size on-the-fly, and is more easily removed altogether. This may be especially desirable if disk space is at a premium (e.g. a modestly-sized SSD).<br />
<br />
{{注意|BTRFS 文件系统暂时不支持交换文件。}}<br />
<br />
=== 建立交换文件 ===<br />
<br />
As root use {{Ic|fallocate}} to create a swap file the size of your choosing (M = Megabytes, G = Gigabytes) ({{Ic|dd}} can also be used but will take longer). For example, creating a 512 MB swap file:<br />
<br />
# fallocate -l 512M /swapfile<br />
或<br />
# dd if=/dev/zero of=/swapfile bs=1M count=512<br />
<br />
Set the right permissions (a world-readable swap file is a huge local vulnerability)<br />
<br />
# chmod 600 /swapfile<br />
<br />
After creating the correctly-sized file, format it to swap:<br />
<br />
# mkswap /swapfile<br />
<br />
Activate the swapfile:<br />
<br />
# swapon /swapfile<br />
<br />
Edit {{ic|/etc/fstab}} and add an entry for the swap file:<br />
<br />
/swapfile none swap defaults 0 0<br />
<br />
=== 删除交换文件 ===<br />
<br />
To remove a swap file, the current swap file must be turned off.<br />
<br />
As root:<br />
<br />
# swapoff -a<br />
<br />
Remove swapfile:<br />
<br />
# rm -rf /swapfile<br />
<br />
=== 恢复交换文件 ===<br />
<br />
Resuming the system from a swap file after hibernation requires an addition parameter to the kernel compared to resuming from a swap partition. The additional parameter is {{ic|1=resume_offset=<Swap File Offset>}}. <br />
<br />
The value of {{ic|<Swap File Offset>}} can be obtained from the output of {{ic|filefrag -v}}; The output is in a table format; the required value is located in the {{ic|physical}} column from the first row. Eg:<br />
# filefrag -v /swapfile<br />
Filesystem type is: ef53<br />
File size of /swapfile is 4290772992 (1047552 blocks, blocksize 4096)<br />
ext logical physical expected length flags<br />
0 0 7546880 6144 <br />
1 6144 7557120 7553023 2048 <br />
2 8192 7567360 7559167 2048 <br />
...<br />
<br />
From the example {{ic|<Swap FIle Offset>}} is {{ic|7546880}}.<br />
{{Note|Please note that in kernel {{ic|resume}} parameter you still have to type path to partition (e.g. {{ic|1=resume=/dev/sda1}}) not to swapfile explicitly! Parameter {{ic|resume_offset}} is for informing system where swapfile starts on hard disk.}}<br />
<br />
== 使用 USB 设备交换 ==<br />
Thanks to modularity offered by Linux, we can have multiple swap partitions spread over different devices. If you have a very full hard disk, USB device can be used as partition temporally. But this method has some severe disadvantage:<br />
* USB device is slower than hard disk.<br />
* flash memories have limited write cycles. Using it as swap partition will kill it quickly.<br />
* when another device is attached to the computer, no swap can be used.<br />
<br />
To add a a USB device to SWAP, first take a USB flash and partition it with a swap partition.You can use graphical tools such as Gparted or console tools like fdisk. Make sure to label the partition as SWAP before writing the partition table. <br />
{{Warning|Make sure you are writing the partition to the correct disk!}}<br />
<br />
Next edit the {{Ic|fstab}}<br />
<br />
# nano /etc/fstab<br />
<br />
Now add a new entry, just under the current swap entry, which take the current swap partition over the new USB one<br />
<br />
UUID=... none swap defaults,pri=10 0 0<br />
<br />
where UUID is taken from the output of the command<br />
<br />
ls -l /dev/disk/by-uuid/ | grep /dev/sdc1<br />
<br />
Just replace sdc1 with your new USB swap partition. {{Ic|sdb1}}<br />
<br />
{{Tip|We use UUID because when you attach other devices to the computer it could modify the device order}}<br />
<br />
Last, add<br />
<br />
pri=0<br />
<br />
in the ''original'' swap entry for teaching fstab to use HD swap only when USB is full<br />
<br />
This guide will work for other memory such as SD cards, etc.<br />
<br />
== 交换测试 ==<br />
<br />
Ensure that swap is activated with {{Ic|swapon}} of {{Ic|free}}:<br />
<br />
$ swapon -s<br />
$ free -m<br />
<br />
== 性能优化 ==<br />
<br />
Swap 参数之可以调整来优化性能。<br />
<br />
=== Swappiness ===<br />
<br />
''swappiness'' [[sysctl]] 参数代表了内核对于交换空间的喜好(或厌恶)程度。Swappiness 可以有 0 到 100 的值。设置这个参数为较低的值会减少内存的交换,从而提升一些系统上的响应度。<br />
<br />
{{hc|/etc/sysctl.d/90-swappiness.conf<br />
|2=<nowiki><br />
vm.swappiness=1<br />
vm.vfs_cache_pressure=50<br />
</nowiki>}}<br />
<br />
=== 优先级 ===<br />
<br />
如果你有多于一个交换文件或交换分区,你可以给它们各自分配一个优先级值(0 到 32767)。系统会在使用较低优先级的交换区域前优先使用较高优先级的交换区域。例如,如果你有一个较快的磁盘 ({{ic|/dev/sda}}) 和一个较慢的磁盘 ({{ic|/dev/sdb}}),给较快的设备分配一个更高的优先级。优先级可以在 fstab 中通过 {{Ic|1=pri}} 参数指定:<br />
<br />
/dev/sda1 none swap defaults,pri=100 0 0<br />
/dev/sdb2 none swap defaults,pri=10 0 0<br />
<br />
或者通过 swapon 的 {{Ic|−p}} (或者 {{Ic|−−priority}}) 参数:<br />
<br />
# swapon -p 100 /dev/sda1<br />
<br />
如果两个或更多的区域有同样的优先级,并且它们都是可用的最高优先级,页面会按照循环的方式在它们之间分配。</div>2419https://wiki.archlinux.org/index.php?title=Arch_Linux_Archive_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=441842Arch Linux Archive (简体中文)2016-07-17T12:37:15Z<p>2419: /* 位置 */ correct some wrong Chinese words.</p>
<hr />
<div>[[Category:Package management (简体中文)]]<br />
[[fr:Arch Linux Archive]]<br />
[[ja:Arch Linux Archive]]<br />
[[en:Arch Linux Archive]]<br />
{{TranslationStatus (简体中文)|Arch_Linux_Archive|2016-06-20|438253}}<br />
{{Related articles start}}<br />
{{Related|Downgrading packages (简体中文)}}<br />
{{Related articles end}}<br />
<br />
Arch Linux 存档('''A'''rch '''L'''inux '''Archive''',''简称 ala''),以前称为 ''Arch Linux 回滚机器(Arch Linux Rollback Machine'',''简称 ARM''),保存了 ''官方仓库快照''、''iso 镜像'' 和 ''引导程序包'' 的历史版本。<br />
<br />
'''用途'''<br />
* 将某个包降级到某个早期版本(最新版本不能用,我需要之前的版本)<br />
* 将所有包恢复到某个指定的历史时刻(所有包都不能用,我要恢复到两个月之前的状态)<br />
* 查找某个历史版本的 ISO 镜像<br />
<br />
== 位置 ==<br />
<br />
Arch Linux 存档目前位于 https://archive.archlinux.org/ (即以前的 http://ala.seblu.net/ ) 。<br />
<br />
此前的下列网址即将关闭,建议不要再使用:<br />
* http://seblu.net/a/archive<br />
* http://ala.seblu.net/<br />
<br />
下列网址已关闭:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
[https://github.com/seblu/archivetools 这里] 的源代码可以帮助您架设自己的服务器。<br />
<br />
== 目录 ==<br />
<br />
'''存档'''分为下列三个主目录:<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
[https://archive.archlinux.org/repos repos] 这个目录包含官方仓库镜像的每日快照,按下例结构组织:<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
注意: 最下面的三个特定目录('''last'''、'''week''' 和 '''month''')分别链接到'''已同步的最新仓库版本'''、'''本周星期一版本'''和'''本月一日版本'''。<br />
<br />
=== /packages ===<br />
<br />
[https://archive.archlinux.org/packages packages] 这个目录包含每个包的所有版本及其相应的数字签名。每个包一个目录,按首字母排序。<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
你可以使用“魔法目录”[https://archive.archlinux.org/packages/.all .all] 按包名访问所有包。这是一个没有子目录的结构。<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
可以下载一个压缩的索引文件,包含完整的软件包列表 [https://archive.archlinux.org/packages/.all/index.0.xz index.0.xz].<br />
<br />
{{hc|$ curl <nowiki>https://archive.archlinux.org/packages/.all/index.0.xz |</nowiki> unxz|<br />
0ad-a14-1-i686<br />
0ad-a14-1-x86_64<br />
0ad-a14-2-i686<br />
...<br />
zziplib-0.13.62-1-x86_64<br />
zziplib-0.13.62-2-i686<br />
zziplib-0.13.62-2-x86_64}}<br />
<br />
=== /iso ===<br />
<br />
[https://archive.archlinux.org/iso iso] 目录按发布日期,保存官方 ISO 镜像和启动压缩包。<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
== 常见问题 ==<br />
<br />
=== 如何降级某个包 ===<br />
<br />
在 [[#/packages|/packages]] 中找到需要的软件包,下载并通过 {{ic|pacman -U}} 安装.<br />
<br />
[[Downgrading packages#Automation]] 包含了可以简化这个过程的工具。<br />
<br />
=== 如何恢复所有包到指定日期 ===<br />
<br />
如果想恢复所有包到指定日期(比如2014年3月30日),你必须如下例所示编辑 {{ic|/etc/pacman.conf}},从而让 [[pacman]] 保持在这个时间点并且直接使用指定的服务器:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
或者如下例编辑 {{ic|/etc/pacman.d/mirrorlist}}:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
然后同步包数据库以强制降级:<br />
# pacman -Syyuu<br />
<br />
{{注意|混用归档和更新镜像很不安全。万一降级失败,可能使用的是上游软件包,会出现软件包的 epoch 和系统其它软件不一致的现象。}}<br />
<br />
== 历史 ==<br />
<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.<br />
* New URL and closing the old ARM hierarchy on 2015-10-13. A new software, {{AUR|agetpkg-git}} was introduced.<br />
* Moved to [https://archive.archlinux.org archive.archlinux.org] on 2015-12-19.[https://lists.archlinux.org/pipermail/arch-dev-public/2015-December/027635.html]</div>2419https://wiki.archlinux.org/index.php?title=VirtualBox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=441597VirtualBox (简体中文)2016-07-16T08:28:58Z<p>2419: /* 使用正确的前端 */ update another "qt4" from English version.</p>
<hr />
<div>[[Category:Emulators (简体中文)]]<br />
[[Category:Virtualization (简体中文)]]<br />
[[cs:VirtualBox]]<br />
[[de:VirtualBox]]<br />
[[el:VirtualBox]]<br />
[[en:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|:Category:Hypervisors}}<br />
{{Related|VirtualBox/Tips and tricks}}<br />
{{Related|PhpVirtualBox}}<br />
{{Related|VirtualBox Arch Linux Guest On Physical Drive}}<br />
{{Related|Installing Arch Linux from VirtualBox}}<br />
{{Related|Moving an existing install into (or out of) a virtual machine}}<br />
{{Related articles end}}<br />
{{translateme (简体中文)|英文页面已更新}}<br />
{{TranslationStatus (简体中文)|VirtualBox|2016-6-12|434334}}<br />
'''VirtualBox''' 是一个类似 [[VMware]] 的虚拟 PC 模拟器,处于不断的开发中。使用 [[Qt]] 图形界面,提供了无界面运行和 [[Wikipedia:SDL|SDL]] 命令行工具进行运行管理。它包含'''guest additions'''为一些虚拟系统提供附加功能,包括文件共享、剪贴板和图形加速,支持 “无缝” 窗口整合模式。<br />
<br />
[[Wikipedia:Virtualbox]]<br />
<br />
==在Archlinux中安装VirtualBox的安装步骤==<br />
为了在您的Archlinux中安装VirtualBox,请遵循以下步骤。<br />
<br />
=== 安装基本软件包 ===<br />
<br />
[[pacman (简体中文)|安装]] 软件包 {{Pkg|virtualbox}}。从下面选择一个内核模块获取方式<br />
<br />
* 如果使用{{Pkg|linux}}内核,请安装{{Pkg|virtualbox-host-modules-arch}}<br />
* 其它内核安装 {{Pkg|virtualbox-host-dkms}}<br />
<br />
要编译 {{Pkg|virtualbox-host-dkms}} 提供的内核文件,需要同时安装对应的内核头文件(例如安装 {{Pkg|linux-lts}} 的头文件 {{Pkg|linux-lts-headers}}). [https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html] VirtualBox 或内核更新的时候,DKMS Pacman 钩子会自动编译内核模块。<br />
<br />
要使用基于 [[Qt]] 的图形界面,需要安装 {{Pkg|qt5-x11extras}} 软件包。如果使用命令行命令,则不需要安装。<br />
<br />
===加载VirtualBox的内核模块===<br />
<br />
从版本 5.0.16 开始,{{Pkg|virtualbox-host-modules-arch}} 和 {{Pkg|virtualbox-host-dkms}} 使用 {{ic|systemd-modules-load.service}} 在启动时自动加载内核模块。<br />
<br />
{{Note|如果不希望启动时就加载 VirtualBox 模块,需要屏蔽默认的 {{ic|/usr/lib/modules-load.d/virtualbox-host-modules-arch.conf}} (或 {{ic|-dkms.conf}})。创建一个同名空文件或链接到 {{ic|/dev/null}}.}}<br />
<br />
VirtualBox 在 Linux 上运行需要使用自己的[[kernel modules|内核模块]],'''vboxdrv'''模块必须在虚拟机运行前加载。<br />
<br />
手动加载模块:<br />
<br />
# modprobe vboxdrv<br />
<br />
{{Note|使用命令前可能需要更新内核模块数据库以避免 'no such file or directory' 错误,执行: {{ic|depmod -a}}.}}<br />
<br />
启动 VirtualBox 图形界面:<br />
<br />
$VirtualBox<br />
<br />
以下模块是可选的,但建议选上如果您不想在进行一些高级配置时被打扰(如下): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} 和{{ic|vboxpci}}.<br />
<br />
* {{ic|vboxnetadp}} 和{{ic|vboxnetflt}} 都是需要的当你使用网桥时 [https://www.virtualbox.org/manual/ch06.html#network_bridged bridged] or [https://www.virtualbox.org/manual/ch06.html#network_hostonly host-only networking] feature. More precisely, {{ic|vboxnetadp}} is needed to create the host interface in the VirtualBox global preferences, and {{ic|vboxnetflt}} is needed to launch a virtual machine using that network interface.<br />
<br />
* {{ic|vboxpci}}是需要的, 当你的虚拟机需要使用一个你的主机上的pci设备时<br />
<br />
{{Note|如果在virtualbox内核模块运行时你更新了模块,你需要手动重新加载这些模块以使用新版本。为了这么做,请在 root 权限下运行 {{ic|vboxreload}} }}<br />
<br />
最后,如果你使用前面提到的 "Host-only" 或是 "bridge networking" 功能,请确保 {{pkg|net-tools}} 已经安装。VirtualBoxt 为主机接口配置命令 {{ic|VBoxManage hostonlyif}} 使用 {{ic|ifconfig}} 和 {{ic|route}} 来定位 IP 和 route,或通过 GUI 的''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''选项。<br />
<br />
=== 在客户端系统访问主机 USB ===<br />
<br />
将需要运行 Virtualbox 的用户名添加到 '''vboxusers''' [[group|用户组]],USB 设备才能被访问。<br />
<br />
=== Guest 附加光盘 ===<br />
<br />
建议在运行VirtualBox 的主机系统上安装{{Pkg|virtualbox-guest-iso}} 软件包 。 这个包是一个磁盘镜像,用来安装虚拟系统的附加功能。 这个 ''.iso'' 文件会被定位在 {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}},也许需要手动在虚拟机中加载,当挂载之后你可以安装增强工具。<br />
<br />
=== 扩展组件 ===<br />
<br />
Oracle 的扩展组件以仅供个人使用的协议发布,在这里提供 [https://www.virtualbox.org/manual/ch01.html#intro-installing additional features]。安装 {{aur|virtualbox-ext-oracle}} 可获得这些组件, 已编译的版本可以在 [[Unofficial user repositories#seblu|seblu]]仓库找到。<br />
<br />
如果你喜欢使用传统的手动方法:手动下载扩展组件并通过 GUI 安装 (''File > Preferences > Extensions'') 或通过 {{ic|VBoxManage extpack install <.vbox-extpack>}}命令来安装, 请确保你拥有 toolkit (like [[Polkit]], gksu, etc.) 来获准进入 VirtualBox。安装过程 [https://www.virtualbox.org/ticket/8473 需要 root 权限].<br />
<br />
=== 使用正确的前端 ===<br />
<br />
恭喜你!现在,你已经准备好使用VirtualBox了。<br />
<br />
这里有多个前端提供给您,其中两个是默认提供:<br />
* 如果你只想在命令行下使用 VirtualBox (只想启动现有的虚拟机或是更改一些配置),你可以使用 {{ic|VBoxSDL}} 命令。VBoxSDL 仅仅提供一个简单的窗口包含所有虚拟机,没有菜单或是其他控制项。<br />
* 如果你想使用命令行并且不使用任何 GUI (例如在服务器上) 来创建、运行和配置虚拟机,使用 {{ic|VBoxHeadless}} 命令,不会有任何图形输出,但是仅仅使用 VRDP 数据(安装扩展模块之后才能使用)<br />
<br />
如果你安装了 {{Pkg|qt5-x11extras}}这一可选依赖,你可以运行 {{ic|VirtualBox}} 来获得一个美观易用的图形界面并能够使用鼠标。<br />
<br />
最后你可以使用 [[PhpVirtualBox]] 来通过网页界面来管理你的虚拟机。<br />
<br />
查阅 [https://www.virtualbox.org/manual VirtualBox manual] 来了解如何创建虚拟机。<br />
<br />
{{Warning|如果你打算在 [[Btrfs]] 文件系统上存储虚拟硬盘镜像在创建任何镜像之前,你应该考虑在镜像的目标文件夹中关闭[[Btrfs#Copy-On-Write_.28CoW.29|Copy-on-Write]] }}<br />
<br />
== 在 VirtualBox 中安装 Archlinux==<br />
<br />
在 VirtualBox 中新建一个虚拟机,并在加载 Archlinux 镜像,按照一般步骤完整安装 Archlinux系统,参考[[Beginners' guide (简体中文)]] 或是 [[Installation guide (简体中文)]]<br />
<br />
=== 在EFI模式下安装 ===<br />
<br />
If you want to install Arch Linux in EFI mode inside VirtualBox, in the settings of the virtual machine, choose ''System'' item from the panel on the left and ''Motherboard'' tab from the right panel, and check the checkbox ''Enable EFI (special OSes only)''. After selecting the kernel from the Arch Linux installation media's menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.<br />
<br />
Once the system and the boot loader are installed, VirtualBox will first attempt to run {{ic|/EFI/BOOT/BOOTX64.EFI}} from the [[ESP]]. If that first option fails, VirtualBox will then try the EFI shell script {{ic|startup.nsh}} from the root of the ESP. This means that in order to boot the system you have the following options:<br />
<br />
* [[Unified Extensible Firmware Interface#UEFI Shell|Launch the bootloader manually]] from the EFI shell every time;<br />
* Move the bootloader to the default {{ic|/EFI/BOOT/BOOTX64.EFI}} path;<br />
* Create the {{ic|startup.nsh}} script at the ESP root containing the path to the boot loader application, e.g. {{ic|\EFI\grub\grubx64.efi}}.<br />
<br />
Do not bother with the VirtualBox Boot Manager (accessible with {{ic|F2}} at boot): EFI entries added to it manually at boot or with {{Pkg|efibootmgr}} will persist after a reboot [https://www.virtualbox.org/ticket/11177 but are lost when the VM is shut down].<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=158003 UEFI Virtualbox installation boot problems].<br />
<br />
=== Install the Guest Additions ===<br />
<br />
VirtualBox [https://www.virtualbox.org/manual/ch04.html Guest Additions] provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, install:<br />
* {{Pkg|virtualbox-guest-utils}} for VirtualBox Guest utilities with X support<br />
* {{Pkg|virtualbox-guest-utils-nox}} for VirtualBox Guest utilities without X support<br />
<br />
Both packages will make you choose a package to provide guest modules:<br />
* for {{Pkg|linux}} kernel choose {{Pkg|virtualbox-guest-modules-arch}}<br />
* for other kernels choose {{Pkg|virtualbox-guest-dkms}}<br />
<br />
To compile the virtualbox modules provided by {{Pkg|virtualbox-guest-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s) (e.g. {{Pkg|linux-lts-headers}} for {{Pkg|linux-lts}}). [https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html] When either VirtualBox or the kernel is updated, the kernel modules will be automatically recompiled thanks to the DKMS Pacman hook.<br />
<br />
{{Note|<nowiki></nowiki><br />
* You can alternatively install the Guest Additions with the ISO from the {{Pkg|virtualbox-guest-iso}} package, provided you installed this on the host system. To do this, go to the device menu click Insert Guest Additions CD Image.<br />
* To recompile the vbox kernel modules, run {{ic|rcvboxdrv}} as root.<br />
}}<br />
<br />
=== Load the Virtualbox kernel modules ===<br />
<br />
To load the modules automatically, [[enable]] the {{ic|vboxservice}} service which loads the modules and synchronizes the guest's system time with the host.<br />
<br />
To load the modules manually, type:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
Since version 5.0.16, {{Pkg|virtualbox-guest-modules-arch}} and {{Pkg|virtualbox-guest-dkms}} use '''systemd-modules-load''' service to load their modules at boot time.<br />
<br />
{{Note|If you don't want the VirtualBox modules to be loaded at boot time, you have to mask the default {{ic|/usr/lib/modules-load.d/virtualbox-guest-modules-arch.conf}} (or {{ic|-dkms.conf}}) by creating an empty file (or symlink to {{ic|/dev/null}}) with the same name in {{ic|/etc/modules-load.d}}.}}<br />
<br />
=== Launch the VirtualBox guest services ===<br />
<br />
After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called {{ic|VBoxClient}} which will interact with your X Window System. {{ic|VBoxClient}} manages the following features:<br />
* shared clipboard and drag and drop between the host and the guest;<br />
* seamless window mode;<br />
* the guest display is automatically resized according to the size of the guest window;<br />
* checking the VirtualBox host version<br />
<br />
All of these features can be enabled independently with their dedicated flags:<br />
$ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion<br />
<br />
As a shortcut, the {{ic|VBoxClient-all}} bash script enables all of these features.<br />
<br />
{{Pkg|virtualbox-guest-utils}} installs {{ic|/etc/xdg/autostart/vboxclient.desktop}} that launches {{ic|VBoxClient-all}} on logon. If your [[desktop environment]] or [[window manager]] does not support this scheme, you will need to set up autostarting yourself, see [[Autostarting#Graphical]] for more details.<br />
<br />
VirtualBox can also synchronize the time between the host and the guest, to do this, [[start/enable]] the {{ic|vboxservice.service}}.<br />
<br />
Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. ''Settings > General > Advanced > Shared Clipboard'').<br />
<br />
=== Hardware acceleration ===<br />
<br />
Hardware acceleration can be activated from the VirtualBox options on the host computer. Note the [[GDM]] display manager 3.16+ is known to [https://bugzilla.gnome.org/show_bug.cgi?id=749390 break] hardware acceleration support. So if you get issues with hardware acceleration, try out another display manager (lightdm seems to work fine).[https://bbs.archlinux.org/viewtopic.php?id=200025] [https://bbs.archlinux.org/viewtopic.php?pid=1607593#p1607593] <br />
<br />
If you want to share folders between your host and your Arch Linux guest, read on.<br />
<br />
=== Enable shared folders ===<br />
<br />
Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the ''Shared Folders'' tab. There, ''Folder Path'', the name of the mount point identified by ''Folder name'', and options like ''Read-only'', ''Auto-mount'' and ''Make permanent'' can be specified. These parameters can be defined with the {{ic|VBoxManage}} command line utility. See [https://www.virtualbox.org/manual/ch04.html#sharedfolders there for more details].<br />
<br />
No matter which method you will use to mount your folder, all methods require some steps first.<br />
<br />
To avoid this issue {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, make sure the {{ic|vboxsf}} kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.<br />
<br />
Two additional steps are needed in order for the mount point to be accessible from users other than root:<br />
* the {{Pkg|virtualbox-guest-utils}} package created a group {{ic|vboxsf}} (done in a previous step);<br />
* your username must be in {{ic|vboxsf}} [[group]].<br />
<br />
==== Manual mounting ====<br />
<br />
Use the following command to mount your folder in your Arch Linux guest:<br />
# mount -t vboxsf ''shared_folder_name'' ''mount_point_on_guest_system''<br />
<br />
The vboxsf filesystem offers other options which can be displayed with this command:<br />
# mount.vboxsf<br />
<br />
For example if the user was not in the ''vboxsf'' group, we could have used this command to give access our mountpoint to him:<br />
# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/<br />
<br />
Where ''uid'' and ''gid'' are values corresponding to the users we want to give access to. These values are obtained from the {{ic|id}} command run against this user.<br />
<br />
==== Automounting ====<br />
<br />
In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional {{ic|--automount}} argument with the command {{ic|VBoxManage sharedfolder}}.<br />
<br />
The shared folder should now appear in {{ic|/media/sf_''shared_folder_name''}}. If users in {{ic|media}} cannot access the shared folders, check that {{ic|media}} has permissions 755 or has group ownership {{ic|vboxsf}} if using permission 750. This is currently not the default if media is created by installing the {{ic|virtualbox-guest-utils}}.<br />
<br />
You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:<br />
$ ln -s /media/sf_''shared_folder_name'' ~/''my_documents''<br />
<br />
==== Mount at boot ====<br />
<br />
You can mount your directory with [[fstab]]. However, to prevent startup problems with systemd, {{ic|1=comment=systemd.automount}} should be added to {{ic|/etc/fstab}}. This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd read fstab and mount the partitions.<br />
''sharedFolderName'' ''/path/to/mntPtOnGuestMachine'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,comment=systemd.automount 0 0<br />
<br />
* {{ic|''sharedFolderName''}}: the value from the VirtualMachine's ''Settings > SharedFolders > Edit > FolderName'' menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine's ''Settings'' go to the host OS VirtualBox application, select the corresponding virtual machine and click on ''Settings''.<br />
* {{ic|''/path/to/mntPtOnGuestMachine''}}: if not existing, this directory should be created manually (for example by using [[Core utilities#mkdir|mkdir]])<br />
* {{ic|dmode}}/{{ic|fmode}} are directory/file permissions for directories/files inside {{ic|''/path/to/mntPtOnGuestMachine''}}.}}<br />
<br />
As of 2012-08-02, mount.vboxsf does not support the ''nofail'' option:<br />
''desktop'' ''/media/desktop'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,nofail 0 0<br />
<br />
==虚拟磁盘管理 ==<br />
<br />
=== 支持VirtualBox的格式 ===<br />
<br />
VirtualBox supports the following virtual disk formats:<br />
<br />
* VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.<br />
<br />
* VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but it became now an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is specially useful if you want to store the virtual machine on machines which do not support very large files. Other formats, excluding the HDD format from Parallels, do not provide such an equivalent feature.<br />
<br />
* VHD: The Virtual Hard Disk is the format used by Microsoft in Windows Virtual PC and Hyper-V. If you intend to use any of these Microsoft products, you will have to choose this format.<br />
:{{Tip|Since Windows 7, this format can be mounted directly without any additional application.}} <br />
<br />
* VHDX (read only): This is the eXtended version of the Virtual Hard Disk format developed by Microsoft, which has been released on 2012-09-04 with Hyper-V 3.0 coming with Windows Server 2012. This new version of the disk format does offer enhanced performance (better block alignment), larger blocks size, and journal support which brings power failure resiliency. VirtualBox [https://www.virtualbox.org/manual/ch15.html#idp63002176 should support this format in read only].<br />
<br />
* Version 2 of the HDD: The HDD format is developed by Parallels Inc and used in their hypervisor solutions like Parallels Desktop for Mac. Newer versions of this format (i.e. 3 and 4) are not supported due to the lack of documentation for this proprietary format. {{Note|There is currently a controversy regarding the support of the version 2 of the format. While the official VirtualBox manual [https://www.virtualbox.org/manual/ch05.html#vdidetails only reports the second version of the HDD file format as supported], Wikipedia's contributors are [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|reporting the first version may work too]]. Help is welcome if you can perform some tests with the first version of the HDD format.}}<br />
<br />
* QED: The QEMU Enhanced Disk format is an old file format for QEMU, another free and open source hypervisor. This format was designed from 2010 in a way to provide a superior alternative to QCOW2 and others. This format features a fully asynchronous I/O path, strong data integrity, backing files, and sparse files. QED format is supported only for compatibility with virtual machines created with old versions of QEMU.<br />
<br />
* QCOW: The QEMU Copy On Write format is the current format for QEMU. The QCOW format does support zlib-based transparent compression and encryption (the latter has flaw and is not recommended). QCOW is available in two versions: QCOW and QCOW2. The latter tends to supersede the first one. QCOW is [https://www.virtualbox.org/manual/ch15.html#idp63002176 currently fully supported by VirtualBox]. QCOW2 comes in two revisions: QCOW2 0.10 and QCOW2 1.1 (which is the default when you create a virtual disk with QEMU). VirtualBox does not support this QCOW2 format (both revisions have been tried).<br />
<br />
* OVF: The Open Virtualization Format is an open format which has been designed for interoperability and distributions of virtual machines between different hypervisors. VirtualBox supports all revisions of this format via the [https://www.virtualbox.org/manual/ch08.html#idp55423424 {{ic|VBoxManage}} import/export feature] but with [https://www.virtualbox.org/manual/ch14.html#KnownProblems known limitations].<br />
<br />
* RAW: This is the mode when the virtual disk is exposed directly to the disk without being contained in a specific file format container. VirtualBox supports this feature in several ways: converting RAW disk [https://www.virtualbox.org/manual/ch08.html#idp59139136 to a specific format], or by [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi cloning a disk to RAW], or by using directly a VMDK file [https://www.virtualbox.org/manual/ch09.html#idp57804112 which points to a physical disk or a simple file].<br />
<br />
=== 磁盘映像格式转换 ===<br />
<br />
==== VMDK to VDI and VDI to VMDK ====<br />
<br />
VirtualBox can handle back and forth conversion between VDI and VMDK by itself with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}].<br />
<br />
VMDK to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VMDK:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK<br />
<br />
==== VHD to VDI and VDI to VDH ====<br />
<br />
VirtualBox can handle conversion back and forth this format with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] too.<br />
<br />
VHD to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VHD:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD<br />
<br />
==== QCOW2 to VDI and VDI to QCOW2 ====<br />
<br />
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] cannot handle the QEMU format conversion; we will thus rely on another tool. The {{ic|qemu-img}} command from {{Pkg|qemu}} can be used to convert images back and forth from VDI to QCOW2. {{Note|{{ic|qemu-img}} can handle a bunch of other formats too. According to the {{ic|qemu-img --help}}, here are the supported formats this tool supports: "''vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".}}<br />
<br />
QCOW2 to VDI:<br />
<br />
$ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''<br />
<br />
VDI to QCOW2:<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''<br />
<br />
As QCOW2 comes in two revisions (see [[#Formats supported by VirtualBox]], use the flag {{ic|1=-o compat=}} to specify the revision.<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=0.10<br />
or<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1<br />
<br />
{{Tip|The {{ic|-p}} parameter is used to get the progression of the conversion task.}}<br />
<br />
==从其他虚拟机中迁移==<br />
<code>qemu-img</code> 程序可以用来将映像从一种格式转换到另一种格式,或为一个映像添加压缩或加密。<br />
<br />
# pacman -S qemu<br />
<br />
===从QEMU映像转换===<br />
To convert a QEMU image for use with VirtualBox, first convert it to ''raw'' format, then use VirtualBox's conversion utility to convert and compact it in its native format.<br />
$ qemu-img convert -O raw test.qcow2 test.raw<br />
$ VBoxManage modifyvdi /full/path/to/test.vdi compact<br />
or <br />
$ qemu-img convert -O raw test.qcow2 test.raw<br />
(of course you must have installed qemu package for that)<br />
$ VBoxManage convertfromraw /full/path/to/test.raw /full/path/to/test.vdi<br />
$ VBoxManage modifyvdi /full/path/to/test.vdi compact<br />
<br />
===从VMware映像转换===<br />
运行 <br />
$ VBoxManage clonehd source.vmdk target.vdi --format VDI<br />
<br />
对于当前VirtualBox版本来说也许是不必要的(有待证实)<br />
<br />
=== 挂载虚拟磁盘 ===<br />
<br />
==== VDI ====<br />
<br />
Mounting vdi images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.<br />
<br />
The offset of the partition (within the vdi) is needed, then add the value of {{ic|offData}} to {{ic|32256}} (e.g. 69632 + 32256 = 101888):<br />
<br />
$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"<br />
<br />
The can now be mounted with:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/<br />
<br />
You can also use [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi] script that, which you can use as (install script itself to {{ic|/usr/bin/}}):<br />
<br />
# mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''<br />
<br />
Alternately you can use {{Pkg|qemu}}'s kernel module that can do this [[http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]]:<br />
<br />
# modprobe nbd max_part=16<br />
# qemu-nbd -c /dev/nbd0 <storage.vdi><br />
# mount /dev/nbd0p1 /mnt/dir/<br />
# # to unmount:<br />
# umount /mnt/dir/<br />
# qemu-nbd -d /dev/nbd0<br />
<br />
If the partition nodes are not propagated try using {{ic|partprobe /dev/nbd0}}; otherwise, a vdi partition can be mapped directly to a node by: {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.<br />
<br />
=== 压缩磁盘映像 ===<br />
<br />
Compacting virtual disks only works with {{ic|.vdi}} files and basically consists in the following steps.<br />
<br />
Boot your virtual machine and remove all bloat manually or by using cleaning tools like {{Pkg|bleachbit}} which is [http://bleachbit.sourceforge.net/download/windows available for Windows systems too].<br />
<br />
Wiping free space with zeroes can be achieved with several tools:<br />
* If you were previously using Bleachbit, check the checkbox ''System > Free disk space'' in the GUI, or use {{ic|bleachbit -c system.free_disk_space}} in CLI;<br />
* 在 UNIX基本系统,使用 {{ic|dd}} or preferably {{Pkg|dcfldd}} (see [http://superuser.com/a/355322 here] to learn the differences) :<br />
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}<br />
:When {{ic|fillfile}} reaches the limit of the partition, you will get a message like {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. This means that all of the user-space and non-reserved blocks of the partition will be filled with zeros. Using this command as root is important to make sure all free blocks have been overwritten. Indeed, by default, when using partitions with ext filesystem, a specified percentage of filesystem blocks is reserved for the super-user (see the {{ic|-m}} argument in the {{ic|mkfs.ext4}} man pages or use {{ic|tune2fs -l}} to see how much space is reserved for root applications).<br />
:When the aforementioned process has completed, you can remove the file {{ic|''fillfile''}} you created.<br />
<br />
* On Windows, there are two tools available:<br />
:*{{ic|sdelete}} from the [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], type {{ic|sdelete -s -z ''c:''}}, where you need to reexecute the command for each drive you have in your virtual machine;<br />
:* or, if you love scripts, there is a [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution], but which still needs to be repeated for all drives.<br />
::{{bc|PS> ./Write-ZeroesToFreeSpace.ps1 -Root ''c:\'' -PercentFree 0}}<br />
::{{Note|This script must be run in a PowerShell environment with administrator privileges. By default, scripts cannot be run, ensure the execution policy is at least on {{ic|RemoteSigned}} and not on {{ic|Restricted}}. This can be checked with {{ic|Get-ExecutionPolicy}} and the required policy can be set with {{ic|Set-ExecutionPolicy RemoteSigned}}.}}<br />
<br />
Once the free disk space have been wiped, shut down your virtual machine.<br />
<br />
The next time you boot your virtual machine, it is recommended to do a filesystem check.<br />
* On UNIX-based systems, you can use {{ic|fsck}} manually;<br />
:* On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot [[Fsck#Forcing the check|thanks to a kernel boot parameter]];<br />
* On Windows systems, you can use:<br />
:* either {{ic|chkdsk ''c:'' /F}} where {{ic|''c:''}} needs to be replaced by each disk you need to scan and fix errors;<br />
:* or {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx from here] which is basically the same software as {{ic|chkdsk}}, but without the need to repeat the command for all drives;<br />
<br />
Now, remove the zeros from the {{ic|vdi}} file with {{ic|[https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]}}:<br />
$ VBoxManage modifyhd ''your_disk.vdi'' --compact<br />
<br />
{{Note|If your virtual machine has snapshots, you need to apply the above command on each {{ic|.vdi}} files you have.}}<br />
<br />
=== 增加虚拟磁盘 ===<br />
<br />
If you are running out of space due to the small hard drive size you selected when you created your virtual machine, the solution adviced by the VirtualBox manual is to use [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi {{ic|VBoxManage modifyhd}}]. However this command only works for VDI and VHD disks and only for the dynamically allocated variants. If you want to resize a fixed size virtual disk disk too, read on this trick which works either for a Windows or UNIX-like virtual machine.<br />
<br />
First, create a new virtual disk next to the one you want to increase:<br />
$ VBoxManage createhd -filename ''new.vdi'' --size ''10000''<br />
<br />
where size is in MiB, in this example 10000MiB ~= 10GiB, and ''new.vdi'' is name of new hard drive to be created.<br />
<br />
Next, the old virtual disk needs to be cloned to the new one which this may take some time:<br />
$ VBoxManage clonehd ''old.vdi'' ''new.vdi'' --existing<br />
<br />
{{Note|By default, this command uses the ''Standard'' (corresponding to dynamic allocated) file format variant and thus will not use the same file format variant as your source virtual disk. If your ''old.vdi'' has a fixed size and you want to keep this variant, add the parameter {{ic|--variant Fixed}}.}}<br />
<br />
Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium ''new.vdi'' --type hdd<br />
<br />
To get the storage controller name and the port number, you can use the command {{ic|VBoxManage showvminfo ''VM_name''}}. Among the output you will get such a result (what you are looking for is in italic):<br />
<br />
{{bc|<br />
[...]<br />
Storage Controller Name (0): IDE<br />
Storage Controller Type (0): PIIX4<br />
Storage Controller Instance Number (0): 0<br />
Storage Controller Max Port Count (0): 2<br />
Storage Controller Port Count (0): 2<br />
Storage Controller Bootable (0): on<br />
Storage Controller Name (1): SATA<br />
Storage Controller Type (1): IntelAhci<br />
Storage Controller Instance Number (1): 0<br />
Storage Controller Max Port Count (1): 30<br />
Storage Controller Port Count (1): 1<br />
Storage Controller Bootable (1): on<br />
IDE (1, 0): Empty<br />
''SATA'' (''0'', 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)<br />
[...]}}<br />
<br />
Download [http://gparted.org/download.php GParted live image] and mount it as a virtual CD/DVD disk file, boot your virtual machine, increase/move your partitions, umount GParted live and reboot.<br />
<br />
{{Note|On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. GParted will ask to fix this, click on ''Fix'' both times. On MBR disks, you do not have such a problem as this partition table as no trailer at the end of the disk.}}<br />
<br />
Finally, unregister the virtual disk from VirtualBox and remove the file:<br />
$ VBoxManage closemedium disk ''old.vdi''<br />
$ rm ''old.vdi''<br />
<br />
==== Increase size for VDI disks ====<br />
<br />
If your disk is a vdi one, simply run:<br />
<br />
$ VBoxManage modifyhd ''your_virtual_disk.vdi'' --resize ''the_new_size''<br />
<br />
Then jump back to the Gparted step, to increase the size of the partition on the virtual disk.<br />
<br />
===从.vbox文件中手动更换虚拟磁盘 ===<br />
<br />
If you think that editing a simple ''XML'' file is more convenient than playing with the GUI or with {{ic|VBoxManage}} and you want to replace (or add) a virtual disk to your virtual machine, in the ''.vbox'' configuration file corresponding to your virtual machine, simply replace the GUID, the file location and the format to your needs:<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<HardDisk uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''" location="''ArchLinux_vm.vdi''" format="''VDI''" type="Normal"/><br />
}}<br />
<br />
then in the {{ic|<AttachedDevice>}} sub-tag of {{ic|<StorageController>}}, replace the GUID by the new one.<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<AttachedDevice type="HardDisk" port="0" device="0"><br />
<Image uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''"/><br />
</AttachedDevice><br />
}}<br />
<br />
{{Note|If you do not know the GUID of the drive you want to add, you can use the {{ic|VBoxManage showhdinfo ''file''}}. If you previously used {{ic|VBoxManage clonehd}} to copy/convert your virtual disk, this command should have outputted the GUID just after the copy/conversion completed. Using a random GUID does not work, as each [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}}<br />
<br />
====Linux主机和其他操作系统之间的转移 ====<br />
<br />
The information about path to harddisks and the snapshots is stored between {{ic|<HardDisks> .... </HardDisks>}} tags in the file with the ''.vbox'' extension. You can edit them manually or use this script where you will need change only the path or use defaults, assumed that ''.vbox'' is in the same directory with a virtual harddisk and the snapshots folder. It will print out new configuration to stdout.<br />
<br />
{{bc|1=<br />
#!/bin/bash<br />
NewPath="${PWD}/"<br />
Snapshots="Snapshots/"<br />
Filename="$1"<br />
<br />
awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"=");<br />
L=B[2];<br />
gsub(/\"/,"",L);<br />
sub(/^.*\//,"",L);<br />
sub(/^.*\\/,"",L);<br />
if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""};<br />
print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5}<br />
else print $0}' "$Filename"}}<br />
<br />
{{Note|<br />
* If you will prepare virtual machine for use in Windows host then in the path name end you should use backslash \ instead of / .<br />
* The script detects snapshots by looking for {{ic|{}} in the file name.<br />
* To make it run on a new host you will need to add it first to the register by clicking on '''Machine -> Add...''' or use hotkeys Ctrl+A and then browse to ''.vbox'' file that contains configuration or use command line {{ic|VBoxManage registervm ''filename''.vbox}}}}<br />
<br />
==配置==<br />
===网络===<br />
VirtualBox 客户端可以通过不同的方式连接网络;其中,有[[#NAT]]和[[#桥接]]链接。[[#NAT]]是最简单的且作为一个新虚拟机的默认方式。<br />
<br />
[http://www.virtualbox.org/manual/UserManual.html VirtualBox手册]涵盖了主机模式和内网选项。这些都被忽略了,因为在大多数情况下与操作系统无关。<br />
====NAT====<br />
在VirtualBox中:<br />
* 访问虚拟机的''设置''菜单;<br />
* 点击左边的''网络‘’;最后,<br />
* 在“连接方式”的下拉列表中选择''NAT''。<br />
<br />
与VirtualBox捆绑的DHCP服务使得客户端系统能够与DHCP一起配置,第一张卡的NAT IP地址是 10.0.2.0,第二张是10.0.3.0,往后以此类推。<br />
<br />
====桥接====<br />
桥接网络可能被以多种方式启动;其中,有要求以较少控制为代价进行最小启动的原生方式。对于较新版本,VirtualBox可以在没有第三方工具的帮助下,在客户端和无线主机接口间进行桥接。<br />
<br />
在继续之前,加载必要模块:<br />
# modprobe vboxnetflt<br />
<br />
在VirtualBox中:<br />
* 访问虚拟机的''设置''菜单;<br />
* 点击左边列表中的''网络''<br />
* 在''链接方式''的下拉列表中选择''Bridged Adapter(桥接适配器)'';最后,<br />
* 在''界面名称''下拉列表中,选择客户端操作系统被包含在内,主机用于连接网络的接口。<br />
<br />
Start the virtual machine and configure its network as usual; e.g., DHCP or static.<br />
打开虚拟机,像往常一样配置其网络;例如 DHCP 或 static(静态网络)。<br />
<br />
===主机端和客户端之间的键盘和鼠标===<br />
* 为了捕获键盘和鼠标,点击虚拟机内部。<br />
* 想要释放,按下右 {{ic|Ctrl}}.<br />
<br />
想要获得在主机端和客户端之间的无缝鼠标集成功能,在客户端内安装[[#客户端增强包]]。<br />
<br />
===主机端和客户端间的共享文件夹===<br />
在虚拟机的设置中,找到数据空间标签,然后加入你想要共享的文件夹。<br />
<br />
*注意:为了使用这个功能你需要安装客户端增强包。<br />
在Linux主机中,''设备 &rarr; 安装增强功能''<br />
确定(被要求下载CD镜像时)<br />
挂载(被要求注册和挂载时)<br />
<br />
In a Linux host, create one or more folders for sharing files, then set the shared folders via the virtualbox menu (guest window).<br />
在Linux主机端中,为共享的文件创建一个或更多的文件夹,然后通过Virtualbox菜单中设置(Windows客户端)<br />
<br />
在Windows客户端中,从VirtualBox 1.5.0开始,共享文件夹是可浏览的,所以在Windows资源管理器中是可视的。打开Windows资源管理器,在''我的网络位置(My Networking Places) &rarr; 整个网络(Entire Network) &rarr; VirtualBox Shared Folders(VirtualBox共享文件夹)''。<br />
<br />
启动Windows资源管理器(运行资源管理器命令),游览 网络位置(network places) -> (+)号展开:<br />
整个网络(entire network)&rarr; VirtualBox Shared Folders(VirtualBox共享文件夹) &rarr;'''\\Vboxsvr''' &rarr; 然后你就可以在此展开所有已配置的文件夹了,并且在客户端文件系统中为Linux文件夹创建快捷方式。你也可以使用“添加网络位置向导(Add network place wizard)”找到“VBoxsvr”。<br />
<br />
此外,在Windows命令行提示符中,你也可以使用以下命令:<br />
net use x: \\VBOXSVR\sharename<br />
<br />
虽然{{ic|VBOXSVR}}是一个固定名称,但请用你所想要用于共享的盘符替代{{ic|x:}},用VBoxManage指定的共享名替换sharename。<br />
<br />
在Windows客户端中,为了以VirtualBox共享文件夹改善文件的读取与保存(如MS Office),编辑''c:\windows\system32\drivers\etc\hosts''如下:<br />
127.0.0.1 localhost vboxsvr<br />
<br />
在Linux客户端中,实用以下命令:<br />
# mount -t vboxsf [-o OPTIONS] sharename mountpoint<br />
(注意:共享名是任意的,或者和VirtualBox对话框中选定的一样(在主机端文件系统中共享目录的挂载点)。<br />
:自动挂载共享文件夹可以通过Linux客户端 /etc/fstab 文件来实现。你可以指定uid=#,gid=#(# 用实际的数字uid和gid替换),以便以普通用户权限(而不是root权限)来挂载共享文件夹。(这个对于为了在Linux客户端中使用而挂载主机上~/home的一部分是很有用的。为了做到这点,依照以下格式添加一个条目到Linux客户端中的/etc/fstab:<br />
<br />
sharename mountpoint vboxsf uid=#,gid=# 0 0<br />
<br />
用在VBoxManage中指定的共享名替换{{ic|sharename}},并用你想要共享的路径替换mountpoint(如 /mnt/share)。通常的挂载申请,就是说,如果还没有的话,先创建这个文件夹。注意,如果你已经让VirtualBox“自动挂载”这个共享文件夹,这一步可能就不必了,而且你的文件夹可以在/media 下找到。<br />
<br />
除了mount命令提供的标准选项外,以下是可选的:<br />
iocharset=CHARSET<br />
设置用于I/O操作的字符集(默认utf8),并且:<br />
convertcp=CHARSET<br />
用于指定用于共享文件夹名称的字符集(默认utf8)<br />
<br />
=== Clone a virtual disk and assigning a new UUID to it ===<br />
<br />
UUIDs are widely used by VirtualBox. Each virtual machines and each virtual disk of a virtual machine must have a different UUID. When you launch a virtual machine in VirtualBox, the latter will keep track of all UUID of your virtual machine instance. See the [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list {{ic|VBoxManage list}}] to list the items registered with VirtualBox.<br />
<br />
If you cloned a virtual disk manually by copying the virtual disk file, you will need to assign a new UUID to the cloned virtual drive if you want to use the disk in the same virtual machine or even in another (if that one has already been opened, and thus registered, with VirtualBox).<br />
<br />
You can use this command to assign a new UUID to your virtual disk: <br />
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''<br />
<br />
{{Tip|In the future, to avoid copying the virtual disk and assigning a new UUID to your file manually, use {{ic|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd]}} instead.}}<br />
<br />
{{Note|The commands above supports [[#Formats supported by VirtualBox|all virtual disk formats supported by VirtualBox]].}}<br />
<br />
== 故障排除 ==<br />
<br />
=== modprobe Exec 格式错误 ===<br />
<br />
确认你使用的是最新系统:<br />
pacman -Syu<br />
<br />
=== VERR_ACCESS_DENIED ===<br />
<br />
To access the raw vmdk image on a windows host, run the VirtualBox GUI as administrator.<br />
<br />
=== pacstrap script fails === <br />
<br />
If you used ''pacstrap'' in the [[#Installation steps for Arch Linux guests]] to also [[#Install the Guest Additions]] '''before''' performing a first boot into the new guest, you will need to {{ic|umount -l /mnt/dev}} as root before using ''pacstrap'' again; a failure to do this will render it unusable.<br />
<br />
=== 键盘和鼠标都在我的虚拟机 ===<br />
<br />
This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right {{ic|Ctrl}} key and your input should control your host again.<br />
<br />
To control transparently your virtual machine with your mouse going back and forth your host, without having to press any key, and thus have a seamless integration, install the guest additions inside the guest. Read from the [[#Install the Guest Additions]] step if you guest is Arch Linux, otherwise read the official VirtualBox help.<br />
<br />
=== 无法发送CTRL + ALT+ Fn键到我的虚拟机 ===<br />
<br />
Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting {{ic|Ctrl+Alt+F2}} or exit your current X session with {{ic|Ctrl+Alt+Backspace}}. If you type these keyboard shortcuts without any adaptation, the guest will not receive any input and the host (if it is a GNU/Linux distribution too) will intercept these shortcut keys. To send {{ic|Ctrl+Alt+F2}} to the guest for example, simply hit your ''Host Key'' (usually the right {{ic|Ctrl}} key) and press {{ic|F2}} simultaneously.<br />
<br />
=== 解决ISO映像问题===<br />
<br />
While VirtualBox can mount ISO images without problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files. <br />
<br />
In this case, you will either have to use [[CDEmu]] for Linux inside VirtualBox or any other utility used to mount disk images.<br />
<br />
=== VirtualBox的GUI没有应用我的GTK主题===<br />
<br />
See [[Uniform Look for Qt and GTK Applications]] for information about theming Qt based applications like Virtualbox.<br />
<br />
===OpenBSD系统无法使用时,虚拟化指令不可用 ===<br />
<br />
While OpenBSD is reported to work fine on other hypervisors without virtualisation instructions (VT-x AMD-V) enabled, an OpenBSD virtual machine running on VirtualBox without these instructions will be unusable, manifesting with a bunch of segmentation faults. Starting VirtualBox with the ''-norawr0'' argument [https://www.virtualbox.org/ticket/3947 may solve the problem]. You can do it like this:<br />
$ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM''<br />
<br />
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===<br />
这种情形可能会在虚拟机没有正常退出时发生,解除锁定虚拟机并不难: <br />
$ VBoxManage controlvm ''virtual_machine_name'' poweroff<br />
<br />
=== USB 子系统在宿主机和虚拟机没有作用 ===<br />
<br />
Your user must be in the {{ic|vboxusers}} group, and you need to install the [[#Extension pack|extension pack]] if you want USB 2 support. Then you will be able to enable USB 2 in the VM settings and add one or several filters for the devices you want to access from the guest OS.<br />
<br />
Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} or in a not visible USB drive on the host, [https://bbs.archlinux.org/viewtopic.php?id=121377 even when the user is in the '''vboxusers''' group]. This problem is due to the fact that VirtualBox switched from ''usbfs'' to ''sysfs'' in version 3.0.8. If the host does not understand this change, you can revert to the old behaviour by defining the following environment variable in any file that is sourced by your shell (e.g. your {{ic|~/.bashrc}} if you are using ''bash''):<br />
<br />
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>usbfs}}<br />
<br />
Then make sure, the environment has been made aware of this change (reconnect, source the file manually, launch a new shell instance or reboot).<br />
<br />
Also make sure that your user is a member of the {{ic|storage}} group.<br />
<br />
=== 主机模式网络接口创建失败 ===<br />
<br />
Make sure all required kernel modules are loaded. See [[#Load the VirtualBox kernel modules]].<br />
<br />
To be able to create a Host-Only Network Adapter or a Bridged Network Adapter the kernel modules {{ic|vboxnetadp}} and {{ic|vboxnetflt}} need to be loaded, you also need to make sure the {{pkg|net-tools}} package is installed. It's possible to load these kernel modules manually with<br />
<br />
# modprobe -a vboxnetadp vboxnetflt<br />
<br />
若要开机自动加载,每个模块添加一行到 {{ic|/etc/modules-load.d/virtualbox.conf}}:<br />
<br />
vboxdrv<br />
vboxnetadp<br />
vboxnetflt<br />
<br />
{{Note|以前这些都要添加到 {{ic|/etc/rc.conf}} 的 {{ic|MODULES}} 数组,现此方法已过时。}}<br />
<br />
更多信息请看[https://bbs.archlinux.org/viewtopic.php?id=130581 这个]主题。<br />
<br />
=== WinXP: 位深不能大于 16 ===<br />
<br />
若你运行于 16 位色深,图标可能看起来糊糊的。但是当你试图调到更高色深,系统可能会受限于较低的分辨率,甚至根本不允许更改色深。若要修正此问题,运行 {{ic|regedit}} 并添加下列键值到虚拟 XP 注册表:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
接著在桌面属性窗口改变色深。若没有反应,可透过一些方法强制屏幕重绘 (按下 {{ic|Host+F}} 重绘/进入全屏)。<br />
<br />
=== 虚拟系统使用串行端口 ===<br />
确认你的串行端口权限<br />
$ /bin/ls -l /dev/ttyS*<br />
crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0<br />
crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1<br />
crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2<br />
crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3<br />
<br />
添加你的用户到 {{ic|uucp}} 组。<br />
# gpasswd -a $USER uucp <br />
然后重新登陆。<br />
<br />
=== Windows 8.x Error Code 0x000000C4===<br />
<br />
If you get this error code while booting, even if you choose OS Type Win 8, try to enable the {{ic|CMPXCHG16B}} CPU instruction:<br />
<br />
$ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1<br />
<br />
=== Windows 8, 8.1 or 10 fails to install, boot or has error "ERR_DISK_FULL" ===<br />
<br />
Update the VM's settings by going to ''Settings > Storage > Controller:SATA'' and check "Use Host I/O Cache".<br />
<br />
=== Linux guests have slow/distorted audio ===<br />
<br />
The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside Virtual Box, leading to audio that is either too slow or too fast. To fix this, create a file in {{ic|/etc/modprobe.d}} with the following line:<br />
<br />
options snd-intel8x0 ac97_clock=48000<br />
<br />
=== 客户端启动后的Xorg死机 ===<br />
<br />
Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [https://bbs.archlinux.org/viewtopic.php?pid=1167838] and [https://bbs.archlinux.org/viewtopic.php?id=156079]. Try disabling 3D acceleration in ''Settings > Display'', and check if all [[Xorg]] drivers are installed.<br />
<br />
=== "NS_ERROR_FAILURE" and missing menu items ===<br />
<br />
If you encounter this message when first time starting the virtual machine:<br />
<br />
{{bc|Failed to open a session for the virtual machine debian.<br />
Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'.<br />
QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF).<br />
VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF).<br />
<br />
Result Code: <br />
NS_ERROR_FAILURE (0x80004005)<br />
Component: <br />
Medium<br />
}}<br />
<br />
Exit VirtualBox, delete all files of the new machine and from virtualbox config file remove the last line in {{ic|MachineRegistry}} menu (or the offending machine you are creating):<br />
<br />
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=<br />
...<br />
<MachineRegistry><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/><br />
<strike><MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/></strike><br />
</MachineRegistry><br />
...<br />
}}<br />
<br />
This happens sometimes when selecting ''QCOW''/''QCOW2''/''QED'' disk format when creating a new virutal disk.<br />
<br />
=== USB modem ===<br />
<br />
If you have a USB modem which is being used by the guest OS, killing the guest OS can cause the modem to become unusable by the host system. Killing and restarting {{ic|VBoxSVC}} should fix this problem.<br />
<br />
=== "The specified path does not exist. Check the path and then try again." error in Windows guests ===<br />
<br />
This error message often appears when running an .exe file which requires administrator priviliges from a shared folder in windows guests. See [https://www.virtualbox.org/ticket/5732 the bug report] for details.<br />
<br />
There are several workarounds:<br />
<br />
# Disable UAC from Control Panel -> Action Center -> "Change User Account Control settings" from left side pane -> set slider to "Never notify" -> OK and reboot<br />
# Copy the file from the shared folder to the guest and run from there<br />
<br />
Other threads on the internet suggest to add VBOXSVR to the list of trusted sites, but this doesn't work with Windows 7 or newer.<br />
<br />
=== 挂载失败导致的啟动问题 ===<br />
<br />
若你在内核升级后 [[systemd]] 设定遇到问题,你应该透过 {{ic|1=init=/bin/bash}} 开啟系统 (如果应急 shell 对你没有作用)。<br />
<br />
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash<br />
<br />
接著附加写入权限挂载 ''root''-文件系统:<br />
<br />
# mount / -o remount,rw<br />
<br />
根据 [[#Arch Linux 客户机共享文件夹]] 更改 {{ic|/etc/fstab}}]],然后在 Bash shell 运行 systemd:<br />
<br />
# exec /bin/systemd<br />
<br />
=== 复制和粘贴在 Arch Linux 客户机没有作用 ===<br />
<br />
Since updating {{ic|virtualbox-guest-additions}} to version {{ic|4.2.0-2}} copy&paste from Host OS to Arch Linux Guest stopped working. It seems to be due to {{ic|VBoxClient-all}} requiring ''root'' access. In previous versions adding ''VBoxClient-all &'' to ''~/.xinitrc'' was sufficient to make copy&paste work. Update ''~/.xinitrc'' to match {{ic|sudo VBoxClient-all &}} and add the line {{ic|, NOPASSWD: /usr/bin/VBoxClient-all}} to your username in the sudoers file and restart X. It should all work again. The line in the sudoers file should look similar to this:<br />
<br />
# Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password<br />
you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all<br />
<br />
{{Note|使用 {{ic|visudo}} 编辑 sudoer 文件,这会在存储时检查语法错误。}}<br />
<br />
=== 唤醒后异常 ===<br />
有个已知臭虫导致唤醒后异常: https://www.virtualbox.org/ticket/11289。避开的方法很简单: 每次都按 Host+q 或菜单关闭虚拟机。<br />
<br />
=== Btrfs 系统镜像 ===<br />
In 2010 there were reports that OS disk images would not start if they were attached via a virtual SATA device. It was reportedly fixed, and seemed to be. But as of around March 2013, that particular bug report has been [https://www.virtualbox.org/ticket/6905 repoened]. This can be fixed by enabling the use of the host I/O cache, which is disabled by default with virtual SATA interfaces.<br />
<br />
=== vagrant 啟动问题 ===<br />
在最新版的 VirtualBox(4.2.14-1),运行 {{ic|vagrant up}} 命令伴随以下错误:<br />
<br />
Command: ["import",<br />
"/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf"]<br />
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%<br />
Interpreting<br />
/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf...<br />
OK.<br />
0%...<br />
Progress object failure: NS_ERROR_CALL_FAILED<br />
<br />
在[https://www.virtualbox.org/ticket/11895 这个修正]释出前,你需要使用其它方法解决,或是将 VirtualBox 降级。<br />
<br />
有个临时的解决方法是在 {{ic|~/.vagrant.d/boxes/BoxName/virtualbox}} 為每个 box 创建 manifest:<br />
<br />
openssl sha1 *.vmdk *.ovf > box.mf<br />
<br />
你可以降级 VirtualBox。若你的缓存有旧的软件包,可以透过下列命令降级:<br />
<br />
sudo pacman -U /var/cache/pacman/pkg/virtualbox-4.2.12-3-x86_64.pkg.tar.xz<br />
<br />
这个错误似乎同时出现在所有平台: http://www.marshut.com/pzisi/progress-object-failure-ns-error-call-failed-when-running-vagrant-up-in-getting-started-guide.html#qhihz<br />
<br />
It's unclean for the moment. It could be regression inside Virtualbox or a issue inside Vagrant. When you delete the cache you can downgrade via ArchLinux [https://aur.archlinux.org/packages/downgrader/ downgrader ] (I did not test it correctly, but I assume this works, else<br />
check the wiki page for downgrading: [[Downgrading packages]]<br />
<br />
更多信息请到 GitHub issue 页面查看 [https://github.com/mitchellh/vagrant/issues/1847 Clean install on OS X 10.8.4 w/ latest VirtualBox not working]<br />
<br />
根据 [https://twitter.com/mitchellh/status/348886504728305664 Vagrant creator on Twitter],这是 VirtualBox 的臭虫。在 2013 年 06 月 25 日,他说他们在 SVN 修正此臭虫,并且正在等待释出。同时,我可以确认这是跨平台的问题,4.2.14 在我的 Win7 上面是坏的。<br />
<br />
这个问题在 virtualbox-4.2.16-1 这份 VirtualBox 版本释出时已解决<br />
<br />
=== 没有64位客户端选项 ===<br />
<br />
When launching a VM client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named {{ic|VT-x}}) are enabled in the BIOS.<br />
<br />
=== 主机上的虚拟机启动操作系统死机===<br />
<br />
{{Expansion|Needs a link to a bug report; vague expressions like "currently" and "at the moment of writing" are of no help.}}<br />
<br />
Possible causes/solutions :<br />
* SMAP<br />
This is a known incompatiblity with SMAP enabled kernels affecting (mostly) Intel Broadwell chipsets. The matter is currently being investigated, with a wide variety of WIP vboxhost module patches out in the wild that are meant to solve the issue. At the moment of writing though, the only 100% guaranteed solution to this problem is disabling SMAP support in your kernel by appending the "nosmap" option to your kernel boot command line.<br />
* Hardware Virtualisation<br />
Disabling hardware virtualisation (VT-x/AMD-V) may solve the problem.<br />
* Various Kernel bugs<br />
** Fuse mounted partitions (like ntfs) [https://bbs.archlinux.org/viewtopic.php?id=185841], [https://bugzilla.kernel.org/show_bug.cgi?id=82951#c12]<br />
<br />
Generally, such issues are observed after upgrading VirtualBox or linux kernel. Downgrading them to the previous versions of theirs might solve the problem.<br />
<br />
=== The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1) ===<br />
<br />
When trying to launch a virtual machine, an error message like the following appears:<br />
<br />
{{bc|The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1)<br />
NS_ERROR_FAILURE 0x80004005<br />
Component: MachineWrap<br />
Interface: IMachine}}<br />
<br />
This may occur after upgrading the {{Pkg|virtualbox}} or {{Pkg|virtualbox-host-modules}} package. Try reloading the {{ic|vboxdrv}} module:<br />
<br />
{{bc|# modprobe -r vboxdrv<br />
# modprobe vboxdrv<br />
}}<br />
<br />
=== Analog microphone not working in guest ===<br />
<br />
If the audio input from an analog microphone is working correctly on the host, but no sound seems to get through to the guest, despite the microphone device apparently being detected normally, installing a [[Sound system#Sound servers|sound server]] such as [[PulseAudio]] on the host might fix the problem.<br />
<br />
=== Fullscreen mode shows blank guest screen ===<br />
On some window managers ([[i3]]), VirtualBox has issues with fullscreen mode properly due to the overlay bar. To workaround this issue, disable "Show in Full-screen/Seamless" option in "Guest Settings --> User Interface --> Mini ToolBar". See [https://www.virtualbox.org/ticket/14323 the upstream bug report] for more information.<br />
<br />
=== Failed to insert module ===<br />
<br />
If you encounter problem when loading modules as follow:<br />
<br />
Failed to insert 'vboxdrv': Required key not available<br />
<br />
Make sure you signed your modules or disable {{ic|CONFIG_MODULE_SIG_FORCE}} in your kernel config.<br />
<br />
== 参阅 ==<br />
<br />
* [https://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]<br />
* [[Wikipedia:VirtualBox]]</div>2419https://wiki.archlinux.org/index.php?title=VirtualBox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=441596VirtualBox (简体中文)2016-07-16T08:22:18Z<p>2419: /* 安装基本软件包 */ update the needed gui optional dependency from the English version.</p>
<hr />
<div>[[Category:Emulators (简体中文)]]<br />
[[Category:Virtualization (简体中文)]]<br />
[[cs:VirtualBox]]<br />
[[de:VirtualBox]]<br />
[[el:VirtualBox]]<br />
[[en:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
{{Related articles start (简体中文)}}<br />
{{Related|:Category:Hypervisors}}<br />
{{Related|VirtualBox/Tips and tricks}}<br />
{{Related|PhpVirtualBox}}<br />
{{Related|VirtualBox Arch Linux Guest On Physical Drive}}<br />
{{Related|Installing Arch Linux from VirtualBox}}<br />
{{Related|Moving an existing install into (or out of) a virtual machine}}<br />
{{Related articles end}}<br />
{{translateme (简体中文)|英文页面已更新}}<br />
{{TranslationStatus (简体中文)|VirtualBox|2016-6-12|434334}}<br />
'''VirtualBox''' 是一个类似 [[VMware]] 的虚拟 PC 模拟器,处于不断的开发中。使用 [[Qt]] 图形界面,提供了无界面运行和 [[Wikipedia:SDL|SDL]] 命令行工具进行运行管理。它包含'''guest additions'''为一些虚拟系统提供附加功能,包括文件共享、剪贴板和图形加速,支持 “无缝” 窗口整合模式。<br />
<br />
[[Wikipedia:Virtualbox]]<br />
<br />
==在Archlinux中安装VirtualBox的安装步骤==<br />
为了在您的Archlinux中安装VirtualBox,请遵循以下步骤。<br />
<br />
=== 安装基本软件包 ===<br />
<br />
[[pacman (简体中文)|安装]] 软件包 {{Pkg|virtualbox}}。从下面选择一个内核模块获取方式<br />
<br />
* 如果使用{{Pkg|linux}}内核,请安装{{Pkg|virtualbox-host-modules-arch}}<br />
* 其它内核安装 {{Pkg|virtualbox-host-dkms}}<br />
<br />
要编译 {{Pkg|virtualbox-host-dkms}} 提供的内核文件,需要同时安装对应的内核头文件(例如安装 {{Pkg|linux-lts}} 的头文件 {{Pkg|linux-lts-headers}}). [https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html] VirtualBox 或内核更新的时候,DKMS Pacman 钩子会自动编译内核模块。<br />
<br />
要使用基于 [[Qt]] 的图形界面,需要安装 {{Pkg|qt5-x11extras}} 软件包。如果使用命令行命令,则不需要安装。<br />
<br />
===加载VirtualBox的内核模块===<br />
<br />
从版本 5.0.16 开始,{{Pkg|virtualbox-host-modules-arch}} 和 {{Pkg|virtualbox-host-dkms}} 使用 {{ic|systemd-modules-load.service}} 在启动时自动加载内核模块。<br />
<br />
{{Note|如果不希望启动时就加载 VirtualBox 模块,需要屏蔽默认的 {{ic|/usr/lib/modules-load.d/virtualbox-host-modules-arch.conf}} (或 {{ic|-dkms.conf}})。创建一个同名空文件或链接到 {{ic|/dev/null}}.}}<br />
<br />
VirtualBox 在 Linux 上运行需要使用自己的[[kernel modules|内核模块]],'''vboxdrv'''模块必须在虚拟机运行前加载。<br />
<br />
手动加载模块:<br />
<br />
# modprobe vboxdrv<br />
<br />
{{Note|使用命令前可能需要更新内核模块数据库以避免 'no such file or directory' 错误,执行: {{ic|depmod -a}}.}}<br />
<br />
启动 VirtualBox 图形界面:<br />
<br />
$VirtualBox<br />
<br />
以下模块是可选的,但建议选上如果您不想在进行一些高级配置时被打扰(如下): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} 和{{ic|vboxpci}}.<br />
<br />
* {{ic|vboxnetadp}} 和{{ic|vboxnetflt}} 都是需要的当你使用网桥时 [https://www.virtualbox.org/manual/ch06.html#network_bridged bridged] or [https://www.virtualbox.org/manual/ch06.html#network_hostonly host-only networking] feature. More precisely, {{ic|vboxnetadp}} is needed to create the host interface in the VirtualBox global preferences, and {{ic|vboxnetflt}} is needed to launch a virtual machine using that network interface.<br />
<br />
* {{ic|vboxpci}}是需要的, 当你的虚拟机需要使用一个你的主机上的pci设备时<br />
<br />
{{Note|如果在virtualbox内核模块运行时你更新了模块,你需要手动重新加载这些模块以使用新版本。为了这么做,请在 root 权限下运行 {{ic|vboxreload}} }}<br />
<br />
最后,如果你使用前面提到的 "Host-only" 或是 "bridge networking" 功能,请确保 {{pkg|net-tools}} 已经安装。VirtualBoxt 为主机接口配置命令 {{ic|VBoxManage hostonlyif}} 使用 {{ic|ifconfig}} 和 {{ic|route}} 来定位 IP 和 route,或通过 GUI 的''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''选项。<br />
<br />
=== 在客户端系统访问主机 USB ===<br />
<br />
将需要运行 Virtualbox 的用户名添加到 '''vboxusers''' [[group|用户组]],USB 设备才能被访问。<br />
<br />
=== Guest 附加光盘 ===<br />
<br />
建议在运行VirtualBox 的主机系统上安装{{Pkg|virtualbox-guest-iso}} 软件包 。 这个包是一个磁盘镜像,用来安装虚拟系统的附加功能。 这个 ''.iso'' 文件会被定位在 {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}},也许需要手动在虚拟机中加载,当挂载之后你可以安装增强工具。<br />
<br />
=== 扩展组件 ===<br />
<br />
Oracle 的扩展组件以仅供个人使用的协议发布,在这里提供 [https://www.virtualbox.org/manual/ch01.html#intro-installing additional features]。安装 {{aur|virtualbox-ext-oracle}} 可获得这些组件, 已编译的版本可以在 [[Unofficial user repositories#seblu|seblu]]仓库找到。<br />
<br />
如果你喜欢使用传统的手动方法:手动下载扩展组件并通过 GUI 安装 (''File > Preferences > Extensions'') 或通过 {{ic|VBoxManage extpack install <.vbox-extpack>}}命令来安装, 请确保你拥有 toolkit (like [[Polkit]], gksu, etc.) 来获准进入 VirtualBox。安装过程 [https://www.virtualbox.org/ticket/8473 需要 root 权限].<br />
<br />
=== 使用正确的前端 ===<br />
<br />
恭喜你!现在,你已经准备好使用VirtualBox了。<br />
<br />
这里有多个前端提供给您,其中两个是默认提供:<br />
* 如果你只想在命令行下使用 VirtualBox (只想启动现有的虚拟机或是更改一些配置),你可以使用 {{ic|VBoxSDL}} 命令。VBoxSDL 仅仅提供一个简单的窗口包含所有虚拟机,没有菜单或是其他控制项。<br />
* 如果你想使用命令行并且不使用任何 GUI (例如在服务器上) 来创建、运行和配置虚拟机,使用 {{ic|VBoxHeadless}} 命令,不会有任何图形输出,但是仅仅使用 VRDP 数据(安装扩展模块之后才能使用)<br />
<br />
如果你安装了 {{Pkg|qt4}}这一可选依赖,你可以运行 {{ic|VirtualBox}} 来获得一个美观易用的图形界面并能够使用鼠标。<br />
<br />
最后你可以使用 [[PhpVirtualBox]] 来通过网页界面来管理你的虚拟机。<br />
<br />
查阅 [https://www.virtualbox.org/manual VirtualBox manual] 来了解如何创建虚拟机。<br />
<br />
{{Warning|如果你打算在 [[Btrfs]] 文件系统上存储虚拟硬盘镜像在创建任何镜像之前,你应该考虑在镜像的目标文件夹中关闭[[Btrfs#Copy-On-Write_.28CoW.29|Copy-on-Write]] }}<br />
<br />
== 在 VirtualBox 中安装 Archlinux==<br />
<br />
在 VirtualBox 中新建一个虚拟机,并在加载 Archlinux 镜像,按照一般步骤完整安装 Archlinux系统,参考[[Beginners' guide (简体中文)]] 或是 [[Installation guide (简体中文)]]<br />
<br />
=== 在EFI模式下安装 ===<br />
<br />
If you want to install Arch Linux in EFI mode inside VirtualBox, in the settings of the virtual machine, choose ''System'' item from the panel on the left and ''Motherboard'' tab from the right panel, and check the checkbox ''Enable EFI (special OSes only)''. After selecting the kernel from the Arch Linux installation media's menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.<br />
<br />
Once the system and the boot loader are installed, VirtualBox will first attempt to run {{ic|/EFI/BOOT/BOOTX64.EFI}} from the [[ESP]]. If that first option fails, VirtualBox will then try the EFI shell script {{ic|startup.nsh}} from the root of the ESP. This means that in order to boot the system you have the following options:<br />
<br />
* [[Unified Extensible Firmware Interface#UEFI Shell|Launch the bootloader manually]] from the EFI shell every time;<br />
* Move the bootloader to the default {{ic|/EFI/BOOT/BOOTX64.EFI}} path;<br />
* Create the {{ic|startup.nsh}} script at the ESP root containing the path to the boot loader application, e.g. {{ic|\EFI\grub\grubx64.efi}}.<br />
<br />
Do not bother with the VirtualBox Boot Manager (accessible with {{ic|F2}} at boot): EFI entries added to it manually at boot or with {{Pkg|efibootmgr}} will persist after a reboot [https://www.virtualbox.org/ticket/11177 but are lost when the VM is shut down].<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=158003 UEFI Virtualbox installation boot problems].<br />
<br />
=== Install the Guest Additions ===<br />
<br />
VirtualBox [https://www.virtualbox.org/manual/ch04.html Guest Additions] provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, install:<br />
* {{Pkg|virtualbox-guest-utils}} for VirtualBox Guest utilities with X support<br />
* {{Pkg|virtualbox-guest-utils-nox}} for VirtualBox Guest utilities without X support<br />
<br />
Both packages will make you choose a package to provide guest modules:<br />
* for {{Pkg|linux}} kernel choose {{Pkg|virtualbox-guest-modules-arch}}<br />
* for other kernels choose {{Pkg|virtualbox-guest-dkms}}<br />
<br />
To compile the virtualbox modules provided by {{Pkg|virtualbox-guest-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s) (e.g. {{Pkg|linux-lts-headers}} for {{Pkg|linux-lts}}). [https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html] When either VirtualBox or the kernel is updated, the kernel modules will be automatically recompiled thanks to the DKMS Pacman hook.<br />
<br />
{{Note|<nowiki></nowiki><br />
* You can alternatively install the Guest Additions with the ISO from the {{Pkg|virtualbox-guest-iso}} package, provided you installed this on the host system. To do this, go to the device menu click Insert Guest Additions CD Image.<br />
* To recompile the vbox kernel modules, run {{ic|rcvboxdrv}} as root.<br />
}}<br />
<br />
=== Load the Virtualbox kernel modules ===<br />
<br />
To load the modules automatically, [[enable]] the {{ic|vboxservice}} service which loads the modules and synchronizes the guest's system time with the host.<br />
<br />
To load the modules manually, type:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
Since version 5.0.16, {{Pkg|virtualbox-guest-modules-arch}} and {{Pkg|virtualbox-guest-dkms}} use '''systemd-modules-load''' service to load their modules at boot time.<br />
<br />
{{Note|If you don't want the VirtualBox modules to be loaded at boot time, you have to mask the default {{ic|/usr/lib/modules-load.d/virtualbox-guest-modules-arch.conf}} (or {{ic|-dkms.conf}}) by creating an empty file (or symlink to {{ic|/dev/null}}) with the same name in {{ic|/etc/modules-load.d}}.}}<br />
<br />
=== Launch the VirtualBox guest services ===<br />
<br />
After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called {{ic|VBoxClient}} which will interact with your X Window System. {{ic|VBoxClient}} manages the following features:<br />
* shared clipboard and drag and drop between the host and the guest;<br />
* seamless window mode;<br />
* the guest display is automatically resized according to the size of the guest window;<br />
* checking the VirtualBox host version<br />
<br />
All of these features can be enabled independently with their dedicated flags:<br />
$ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion<br />
<br />
As a shortcut, the {{ic|VBoxClient-all}} bash script enables all of these features.<br />
<br />
{{Pkg|virtualbox-guest-utils}} installs {{ic|/etc/xdg/autostart/vboxclient.desktop}} that launches {{ic|VBoxClient-all}} on logon. If your [[desktop environment]] or [[window manager]] does not support this scheme, you will need to set up autostarting yourself, see [[Autostarting#Graphical]] for more details.<br />
<br />
VirtualBox can also synchronize the time between the host and the guest, to do this, [[start/enable]] the {{ic|vboxservice.service}}.<br />
<br />
Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. ''Settings > General > Advanced > Shared Clipboard'').<br />
<br />
=== Hardware acceleration ===<br />
<br />
Hardware acceleration can be activated from the VirtualBox options on the host computer. Note the [[GDM]] display manager 3.16+ is known to [https://bugzilla.gnome.org/show_bug.cgi?id=749390 break] hardware acceleration support. So if you get issues with hardware acceleration, try out another display manager (lightdm seems to work fine).[https://bbs.archlinux.org/viewtopic.php?id=200025] [https://bbs.archlinux.org/viewtopic.php?pid=1607593#p1607593] <br />
<br />
If you want to share folders between your host and your Arch Linux guest, read on.<br />
<br />
=== Enable shared folders ===<br />
<br />
Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the ''Shared Folders'' tab. There, ''Folder Path'', the name of the mount point identified by ''Folder name'', and options like ''Read-only'', ''Auto-mount'' and ''Make permanent'' can be specified. These parameters can be defined with the {{ic|VBoxManage}} command line utility. See [https://www.virtualbox.org/manual/ch04.html#sharedfolders there for more details].<br />
<br />
No matter which method you will use to mount your folder, all methods require some steps first.<br />
<br />
To avoid this issue {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, make sure the {{ic|vboxsf}} kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.<br />
<br />
Two additional steps are needed in order for the mount point to be accessible from users other than root:<br />
* the {{Pkg|virtualbox-guest-utils}} package created a group {{ic|vboxsf}} (done in a previous step);<br />
* your username must be in {{ic|vboxsf}} [[group]].<br />
<br />
==== Manual mounting ====<br />
<br />
Use the following command to mount your folder in your Arch Linux guest:<br />
# mount -t vboxsf ''shared_folder_name'' ''mount_point_on_guest_system''<br />
<br />
The vboxsf filesystem offers other options which can be displayed with this command:<br />
# mount.vboxsf<br />
<br />
For example if the user was not in the ''vboxsf'' group, we could have used this command to give access our mountpoint to him:<br />
# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/<br />
<br />
Where ''uid'' and ''gid'' are values corresponding to the users we want to give access to. These values are obtained from the {{ic|id}} command run against this user.<br />
<br />
==== Automounting ====<br />
<br />
In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional {{ic|--automount}} argument with the command {{ic|VBoxManage sharedfolder}}.<br />
<br />
The shared folder should now appear in {{ic|/media/sf_''shared_folder_name''}}. If users in {{ic|media}} cannot access the shared folders, check that {{ic|media}} has permissions 755 or has group ownership {{ic|vboxsf}} if using permission 750. This is currently not the default if media is created by installing the {{ic|virtualbox-guest-utils}}.<br />
<br />
You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:<br />
$ ln -s /media/sf_''shared_folder_name'' ~/''my_documents''<br />
<br />
==== Mount at boot ====<br />
<br />
You can mount your directory with [[fstab]]. However, to prevent startup problems with systemd, {{ic|1=comment=systemd.automount}} should be added to {{ic|/etc/fstab}}. This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd read fstab and mount the partitions.<br />
''sharedFolderName'' ''/path/to/mntPtOnGuestMachine'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,comment=systemd.automount 0 0<br />
<br />
* {{ic|''sharedFolderName''}}: the value from the VirtualMachine's ''Settings > SharedFolders > Edit > FolderName'' menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine's ''Settings'' go to the host OS VirtualBox application, select the corresponding virtual machine and click on ''Settings''.<br />
* {{ic|''/path/to/mntPtOnGuestMachine''}}: if not existing, this directory should be created manually (for example by using [[Core utilities#mkdir|mkdir]])<br />
* {{ic|dmode}}/{{ic|fmode}} are directory/file permissions for directories/files inside {{ic|''/path/to/mntPtOnGuestMachine''}}.}}<br />
<br />
As of 2012-08-02, mount.vboxsf does not support the ''nofail'' option:<br />
''desktop'' ''/media/desktop'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,nofail 0 0<br />
<br />
==虚拟磁盘管理 ==<br />
<br />
=== 支持VirtualBox的格式 ===<br />
<br />
VirtualBox supports the following virtual disk formats:<br />
<br />
* VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.<br />
<br />
* VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but it became now an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is specially useful if you want to store the virtual machine on machines which do not support very large files. Other formats, excluding the HDD format from Parallels, do not provide such an equivalent feature.<br />
<br />
* VHD: The Virtual Hard Disk is the format used by Microsoft in Windows Virtual PC and Hyper-V. If you intend to use any of these Microsoft products, you will have to choose this format.<br />
:{{Tip|Since Windows 7, this format can be mounted directly without any additional application.}} <br />
<br />
* VHDX (read only): This is the eXtended version of the Virtual Hard Disk format developed by Microsoft, which has been released on 2012-09-04 with Hyper-V 3.0 coming with Windows Server 2012. This new version of the disk format does offer enhanced performance (better block alignment), larger blocks size, and journal support which brings power failure resiliency. VirtualBox [https://www.virtualbox.org/manual/ch15.html#idp63002176 should support this format in read only].<br />
<br />
* Version 2 of the HDD: The HDD format is developed by Parallels Inc and used in their hypervisor solutions like Parallels Desktop for Mac. Newer versions of this format (i.e. 3 and 4) are not supported due to the lack of documentation for this proprietary format. {{Note|There is currently a controversy regarding the support of the version 2 of the format. While the official VirtualBox manual [https://www.virtualbox.org/manual/ch05.html#vdidetails only reports the second version of the HDD file format as supported], Wikipedia's contributors are [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|reporting the first version may work too]]. Help is welcome if you can perform some tests with the first version of the HDD format.}}<br />
<br />
* QED: The QEMU Enhanced Disk format is an old file format for QEMU, another free and open source hypervisor. This format was designed from 2010 in a way to provide a superior alternative to QCOW2 and others. This format features a fully asynchronous I/O path, strong data integrity, backing files, and sparse files. QED format is supported only for compatibility with virtual machines created with old versions of QEMU.<br />
<br />
* QCOW: The QEMU Copy On Write format is the current format for QEMU. The QCOW format does support zlib-based transparent compression and encryption (the latter has flaw and is not recommended). QCOW is available in two versions: QCOW and QCOW2. The latter tends to supersede the first one. QCOW is [https://www.virtualbox.org/manual/ch15.html#idp63002176 currently fully supported by VirtualBox]. QCOW2 comes in two revisions: QCOW2 0.10 and QCOW2 1.1 (which is the default when you create a virtual disk with QEMU). VirtualBox does not support this QCOW2 format (both revisions have been tried).<br />
<br />
* OVF: The Open Virtualization Format is an open format which has been designed for interoperability and distributions of virtual machines between different hypervisors. VirtualBox supports all revisions of this format via the [https://www.virtualbox.org/manual/ch08.html#idp55423424 {{ic|VBoxManage}} import/export feature] but with [https://www.virtualbox.org/manual/ch14.html#KnownProblems known limitations].<br />
<br />
* RAW: This is the mode when the virtual disk is exposed directly to the disk without being contained in a specific file format container. VirtualBox supports this feature in several ways: converting RAW disk [https://www.virtualbox.org/manual/ch08.html#idp59139136 to a specific format], or by [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi cloning a disk to RAW], or by using directly a VMDK file [https://www.virtualbox.org/manual/ch09.html#idp57804112 which points to a physical disk or a simple file].<br />
<br />
=== 磁盘映像格式转换 ===<br />
<br />
==== VMDK to VDI and VDI to VMDK ====<br />
<br />
VirtualBox can handle back and forth conversion between VDI and VMDK by itself with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}].<br />
<br />
VMDK to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VMDK:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK<br />
<br />
==== VHD to VDI and VDI to VDH ====<br />
<br />
VirtualBox can handle conversion back and forth this format with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] too.<br />
<br />
VHD to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VHD:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD<br />
<br />
==== QCOW2 to VDI and VDI to QCOW2 ====<br />
<br />
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] cannot handle the QEMU format conversion; we will thus rely on another tool. The {{ic|qemu-img}} command from {{Pkg|qemu}} can be used to convert images back and forth from VDI to QCOW2. {{Note|{{ic|qemu-img}} can handle a bunch of other formats too. According to the {{ic|qemu-img --help}}, here are the supported formats this tool supports: "''vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".}}<br />
<br />
QCOW2 to VDI:<br />
<br />
$ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''<br />
<br />
VDI to QCOW2:<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''<br />
<br />
As QCOW2 comes in two revisions (see [[#Formats supported by VirtualBox]], use the flag {{ic|1=-o compat=}} to specify the revision.<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=0.10<br />
or<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1<br />
<br />
{{Tip|The {{ic|-p}} parameter is used to get the progression of the conversion task.}}<br />
<br />
==从其他虚拟机中迁移==<br />
<code>qemu-img</code> 程序可以用来将映像从一种格式转换到另一种格式,或为一个映像添加压缩或加密。<br />
<br />
# pacman -S qemu<br />
<br />
===从QEMU映像转换===<br />
To convert a QEMU image for use with VirtualBox, first convert it to ''raw'' format, then use VirtualBox's conversion utility to convert and compact it in its native format.<br />
$ qemu-img convert -O raw test.qcow2 test.raw<br />
$ VBoxManage modifyvdi /full/path/to/test.vdi compact<br />
or <br />
$ qemu-img convert -O raw test.qcow2 test.raw<br />
(of course you must have installed qemu package for that)<br />
$ VBoxManage convertfromraw /full/path/to/test.raw /full/path/to/test.vdi<br />
$ VBoxManage modifyvdi /full/path/to/test.vdi compact<br />
<br />
===从VMware映像转换===<br />
运行 <br />
$ VBoxManage clonehd source.vmdk target.vdi --format VDI<br />
<br />
对于当前VirtualBox版本来说也许是不必要的(有待证实)<br />
<br />
=== 挂载虚拟磁盘 ===<br />
<br />
==== VDI ====<br />
<br />
Mounting vdi images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.<br />
<br />
The offset of the partition (within the vdi) is needed, then add the value of {{ic|offData}} to {{ic|32256}} (e.g. 69632 + 32256 = 101888):<br />
<br />
$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"<br />
<br />
The can now be mounted with:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/<br />
<br />
You can also use [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi] script that, which you can use as (install script itself to {{ic|/usr/bin/}}):<br />
<br />
# mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''<br />
<br />
Alternately you can use {{Pkg|qemu}}'s kernel module that can do this [[http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]]:<br />
<br />
# modprobe nbd max_part=16<br />
# qemu-nbd -c /dev/nbd0 <storage.vdi><br />
# mount /dev/nbd0p1 /mnt/dir/<br />
# # to unmount:<br />
# umount /mnt/dir/<br />
# qemu-nbd -d /dev/nbd0<br />
<br />
If the partition nodes are not propagated try using {{ic|partprobe /dev/nbd0}}; otherwise, a vdi partition can be mapped directly to a node by: {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.<br />
<br />
=== 压缩磁盘映像 ===<br />
<br />
Compacting virtual disks only works with {{ic|.vdi}} files and basically consists in the following steps.<br />
<br />
Boot your virtual machine and remove all bloat manually or by using cleaning tools like {{Pkg|bleachbit}} which is [http://bleachbit.sourceforge.net/download/windows available for Windows systems too].<br />
<br />
Wiping free space with zeroes can be achieved with several tools:<br />
* If you were previously using Bleachbit, check the checkbox ''System > Free disk space'' in the GUI, or use {{ic|bleachbit -c system.free_disk_space}} in CLI;<br />
* 在 UNIX基本系统,使用 {{ic|dd}} or preferably {{Pkg|dcfldd}} (see [http://superuser.com/a/355322 here] to learn the differences) :<br />
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}<br />
:When {{ic|fillfile}} reaches the limit of the partition, you will get a message like {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. This means that all of the user-space and non-reserved blocks of the partition will be filled with zeros. Using this command as root is important to make sure all free blocks have been overwritten. Indeed, by default, when using partitions with ext filesystem, a specified percentage of filesystem blocks is reserved for the super-user (see the {{ic|-m}} argument in the {{ic|mkfs.ext4}} man pages or use {{ic|tune2fs -l}} to see how much space is reserved for root applications).<br />
:When the aforementioned process has completed, you can remove the file {{ic|''fillfile''}} you created.<br />
<br />
* On Windows, there are two tools available:<br />
:*{{ic|sdelete}} from the [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], type {{ic|sdelete -s -z ''c:''}}, where you need to reexecute the command for each drive you have in your virtual machine;<br />
:* or, if you love scripts, there is a [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution], but which still needs to be repeated for all drives.<br />
::{{bc|PS> ./Write-ZeroesToFreeSpace.ps1 -Root ''c:\'' -PercentFree 0}}<br />
::{{Note|This script must be run in a PowerShell environment with administrator privileges. By default, scripts cannot be run, ensure the execution policy is at least on {{ic|RemoteSigned}} and not on {{ic|Restricted}}. This can be checked with {{ic|Get-ExecutionPolicy}} and the required policy can be set with {{ic|Set-ExecutionPolicy RemoteSigned}}.}}<br />
<br />
Once the free disk space have been wiped, shut down your virtual machine.<br />
<br />
The next time you boot your virtual machine, it is recommended to do a filesystem check.<br />
* On UNIX-based systems, you can use {{ic|fsck}} manually;<br />
:* On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot [[Fsck#Forcing the check|thanks to a kernel boot parameter]];<br />
* On Windows systems, you can use:<br />
:* either {{ic|chkdsk ''c:'' /F}} where {{ic|''c:''}} needs to be replaced by each disk you need to scan and fix errors;<br />
:* or {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx from here] which is basically the same software as {{ic|chkdsk}}, but without the need to repeat the command for all drives;<br />
<br />
Now, remove the zeros from the {{ic|vdi}} file with {{ic|[https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]}}:<br />
$ VBoxManage modifyhd ''your_disk.vdi'' --compact<br />
<br />
{{Note|If your virtual machine has snapshots, you need to apply the above command on each {{ic|.vdi}} files you have.}}<br />
<br />
=== 增加虚拟磁盘 ===<br />
<br />
If you are running out of space due to the small hard drive size you selected when you created your virtual machine, the solution adviced by the VirtualBox manual is to use [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi {{ic|VBoxManage modifyhd}}]. However this command only works for VDI and VHD disks and only for the dynamically allocated variants. If you want to resize a fixed size virtual disk disk too, read on this trick which works either for a Windows or UNIX-like virtual machine.<br />
<br />
First, create a new virtual disk next to the one you want to increase:<br />
$ VBoxManage createhd -filename ''new.vdi'' --size ''10000''<br />
<br />
where size is in MiB, in this example 10000MiB ~= 10GiB, and ''new.vdi'' is name of new hard drive to be created.<br />
<br />
Next, the old virtual disk needs to be cloned to the new one which this may take some time:<br />
$ VBoxManage clonehd ''old.vdi'' ''new.vdi'' --existing<br />
<br />
{{Note|By default, this command uses the ''Standard'' (corresponding to dynamic allocated) file format variant and thus will not use the same file format variant as your source virtual disk. If your ''old.vdi'' has a fixed size and you want to keep this variant, add the parameter {{ic|--variant Fixed}}.}}<br />
<br />
Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium ''new.vdi'' --type hdd<br />
<br />
To get the storage controller name and the port number, you can use the command {{ic|VBoxManage showvminfo ''VM_name''}}. Among the output you will get such a result (what you are looking for is in italic):<br />
<br />
{{bc|<br />
[...]<br />
Storage Controller Name (0): IDE<br />
Storage Controller Type (0): PIIX4<br />
Storage Controller Instance Number (0): 0<br />
Storage Controller Max Port Count (0): 2<br />
Storage Controller Port Count (0): 2<br />
Storage Controller Bootable (0): on<br />
Storage Controller Name (1): SATA<br />
Storage Controller Type (1): IntelAhci<br />
Storage Controller Instance Number (1): 0<br />
Storage Controller Max Port Count (1): 30<br />
Storage Controller Port Count (1): 1<br />
Storage Controller Bootable (1): on<br />
IDE (1, 0): Empty<br />
''SATA'' (''0'', 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)<br />
[...]}}<br />
<br />
Download [http://gparted.org/download.php GParted live image] and mount it as a virtual CD/DVD disk file, boot your virtual machine, increase/move your partitions, umount GParted live and reboot.<br />
<br />
{{Note|On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. GParted will ask to fix this, click on ''Fix'' both times. On MBR disks, you do not have such a problem as this partition table as no trailer at the end of the disk.}}<br />
<br />
Finally, unregister the virtual disk from VirtualBox and remove the file:<br />
$ VBoxManage closemedium disk ''old.vdi''<br />
$ rm ''old.vdi''<br />
<br />
==== Increase size for VDI disks ====<br />
<br />
If your disk is a vdi one, simply run:<br />
<br />
$ VBoxManage modifyhd ''your_virtual_disk.vdi'' --resize ''the_new_size''<br />
<br />
Then jump back to the Gparted step, to increase the size of the partition on the virtual disk.<br />
<br />
===从.vbox文件中手动更换虚拟磁盘 ===<br />
<br />
If you think that editing a simple ''XML'' file is more convenient than playing with the GUI or with {{ic|VBoxManage}} and you want to replace (or add) a virtual disk to your virtual machine, in the ''.vbox'' configuration file corresponding to your virtual machine, simply replace the GUID, the file location and the format to your needs:<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<HardDisk uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''" location="''ArchLinux_vm.vdi''" format="''VDI''" type="Normal"/><br />
}}<br />
<br />
then in the {{ic|<AttachedDevice>}} sub-tag of {{ic|<StorageController>}}, replace the GUID by the new one.<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<AttachedDevice type="HardDisk" port="0" device="0"><br />
<Image uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''"/><br />
</AttachedDevice><br />
}}<br />
<br />
{{Note|If you do not know the GUID of the drive you want to add, you can use the {{ic|VBoxManage showhdinfo ''file''}}. If you previously used {{ic|VBoxManage clonehd}} to copy/convert your virtual disk, this command should have outputted the GUID just after the copy/conversion completed. Using a random GUID does not work, as each [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}}<br />
<br />
====Linux主机和其他操作系统之间的转移 ====<br />
<br />
The information about path to harddisks and the snapshots is stored between {{ic|<HardDisks> .... </HardDisks>}} tags in the file with the ''.vbox'' extension. You can edit them manually or use this script where you will need change only the path or use defaults, assumed that ''.vbox'' is in the same directory with a virtual harddisk and the snapshots folder. It will print out new configuration to stdout.<br />
<br />
{{bc|1=<br />
#!/bin/bash<br />
NewPath="${PWD}/"<br />
Snapshots="Snapshots/"<br />
Filename="$1"<br />
<br />
awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"=");<br />
L=B[2];<br />
gsub(/\"/,"",L);<br />
sub(/^.*\//,"",L);<br />
sub(/^.*\\/,"",L);<br />
if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""};<br />
print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5}<br />
else print $0}' "$Filename"}}<br />
<br />
{{Note|<br />
* If you will prepare virtual machine for use in Windows host then in the path name end you should use backslash \ instead of / .<br />
* The script detects snapshots by looking for {{ic|{}} in the file name.<br />
* To make it run on a new host you will need to add it first to the register by clicking on '''Machine -> Add...''' or use hotkeys Ctrl+A and then browse to ''.vbox'' file that contains configuration or use command line {{ic|VBoxManage registervm ''filename''.vbox}}}}<br />
<br />
==配置==<br />
===网络===<br />
VirtualBox 客户端可以通过不同的方式连接网络;其中,有[[#NAT]]和[[#桥接]]链接。[[#NAT]]是最简单的且作为一个新虚拟机的默认方式。<br />
<br />
[http://www.virtualbox.org/manual/UserManual.html VirtualBox手册]涵盖了主机模式和内网选项。这些都被忽略了,因为在大多数情况下与操作系统无关。<br />
====NAT====<br />
在VirtualBox中:<br />
* 访问虚拟机的''设置''菜单;<br />
* 点击左边的''网络‘’;最后,<br />
* 在“连接方式”的下拉列表中选择''NAT''。<br />
<br />
与VirtualBox捆绑的DHCP服务使得客户端系统能够与DHCP一起配置,第一张卡的NAT IP地址是 10.0.2.0,第二张是10.0.3.0,往后以此类推。<br />
<br />
====桥接====<br />
桥接网络可能被以多种方式启动;其中,有要求以较少控制为代价进行最小启动的原生方式。对于较新版本,VirtualBox可以在没有第三方工具的帮助下,在客户端和无线主机接口间进行桥接。<br />
<br />
在继续之前,加载必要模块:<br />
# modprobe vboxnetflt<br />
<br />
在VirtualBox中:<br />
* 访问虚拟机的''设置''菜单;<br />
* 点击左边列表中的''网络''<br />
* 在''链接方式''的下拉列表中选择''Bridged Adapter(桥接适配器)'';最后,<br />
* 在''界面名称''下拉列表中,选择客户端操作系统被包含在内,主机用于连接网络的接口。<br />
<br />
Start the virtual machine and configure its network as usual; e.g., DHCP or static.<br />
打开虚拟机,像往常一样配置其网络;例如 DHCP 或 static(静态网络)。<br />
<br />
===主机端和客户端之间的键盘和鼠标===<br />
* 为了捕获键盘和鼠标,点击虚拟机内部。<br />
* 想要释放,按下右 {{ic|Ctrl}}.<br />
<br />
想要获得在主机端和客户端之间的无缝鼠标集成功能,在客户端内安装[[#客户端增强包]]。<br />
<br />
===主机端和客户端间的共享文件夹===<br />
在虚拟机的设置中,找到数据空间标签,然后加入你想要共享的文件夹。<br />
<br />
*注意:为了使用这个功能你需要安装客户端增强包。<br />
在Linux主机中,''设备 &rarr; 安装增强功能''<br />
确定(被要求下载CD镜像时)<br />
挂载(被要求注册和挂载时)<br />
<br />
In a Linux host, create one or more folders for sharing files, then set the shared folders via the virtualbox menu (guest window).<br />
在Linux主机端中,为共享的文件创建一个或更多的文件夹,然后通过Virtualbox菜单中设置(Windows客户端)<br />
<br />
在Windows客户端中,从VirtualBox 1.5.0开始,共享文件夹是可浏览的,所以在Windows资源管理器中是可视的。打开Windows资源管理器,在''我的网络位置(My Networking Places) &rarr; 整个网络(Entire Network) &rarr; VirtualBox Shared Folders(VirtualBox共享文件夹)''。<br />
<br />
启动Windows资源管理器(运行资源管理器命令),游览 网络位置(network places) -> (+)号展开:<br />
整个网络(entire network)&rarr; VirtualBox Shared Folders(VirtualBox共享文件夹) &rarr;'''\\Vboxsvr''' &rarr; 然后你就可以在此展开所有已配置的文件夹了,并且在客户端文件系统中为Linux文件夹创建快捷方式。你也可以使用“添加网络位置向导(Add network place wizard)”找到“VBoxsvr”。<br />
<br />
此外,在Windows命令行提示符中,你也可以使用以下命令:<br />
net use x: \\VBOXSVR\sharename<br />
<br />
虽然{{ic|VBOXSVR}}是一个固定名称,但请用你所想要用于共享的盘符替代{{ic|x:}},用VBoxManage指定的共享名替换sharename。<br />
<br />
在Windows客户端中,为了以VirtualBox共享文件夹改善文件的读取与保存(如MS Office),编辑''c:\windows\system32\drivers\etc\hosts''如下:<br />
127.0.0.1 localhost vboxsvr<br />
<br />
在Linux客户端中,实用以下命令:<br />
# mount -t vboxsf [-o OPTIONS] sharename mountpoint<br />
(注意:共享名是任意的,或者和VirtualBox对话框中选定的一样(在主机端文件系统中共享目录的挂载点)。<br />
:自动挂载共享文件夹可以通过Linux客户端 /etc/fstab 文件来实现。你可以指定uid=#,gid=#(# 用实际的数字uid和gid替换),以便以普通用户权限(而不是root权限)来挂载共享文件夹。(这个对于为了在Linux客户端中使用而挂载主机上~/home的一部分是很有用的。为了做到这点,依照以下格式添加一个条目到Linux客户端中的/etc/fstab:<br />
<br />
sharename mountpoint vboxsf uid=#,gid=# 0 0<br />
<br />
用在VBoxManage中指定的共享名替换{{ic|sharename}},并用你想要共享的路径替换mountpoint(如 /mnt/share)。通常的挂载申请,就是说,如果还没有的话,先创建这个文件夹。注意,如果你已经让VirtualBox“自动挂载”这个共享文件夹,这一步可能就不必了,而且你的文件夹可以在/media 下找到。<br />
<br />
除了mount命令提供的标准选项外,以下是可选的:<br />
iocharset=CHARSET<br />
设置用于I/O操作的字符集(默认utf8),并且:<br />
convertcp=CHARSET<br />
用于指定用于共享文件夹名称的字符集(默认utf8)<br />
<br />
=== Clone a virtual disk and assigning a new UUID to it ===<br />
<br />
UUIDs are widely used by VirtualBox. Each virtual machines and each virtual disk of a virtual machine must have a different UUID. When you launch a virtual machine in VirtualBox, the latter will keep track of all UUID of your virtual machine instance. See the [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list {{ic|VBoxManage list}}] to list the items registered with VirtualBox.<br />
<br />
If you cloned a virtual disk manually by copying the virtual disk file, you will need to assign a new UUID to the cloned virtual drive if you want to use the disk in the same virtual machine or even in another (if that one has already been opened, and thus registered, with VirtualBox).<br />
<br />
You can use this command to assign a new UUID to your virtual disk: <br />
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''<br />
<br />
{{Tip|In the future, to avoid copying the virtual disk and assigning a new UUID to your file manually, use {{ic|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd]}} instead.}}<br />
<br />
{{Note|The commands above supports [[#Formats supported by VirtualBox|all virtual disk formats supported by VirtualBox]].}}<br />
<br />
== 故障排除 ==<br />
<br />
=== modprobe Exec 格式错误 ===<br />
<br />
确认你使用的是最新系统:<br />
pacman -Syu<br />
<br />
=== VERR_ACCESS_DENIED ===<br />
<br />
To access the raw vmdk image on a windows host, run the VirtualBox GUI as administrator.<br />
<br />
=== pacstrap script fails === <br />
<br />
If you used ''pacstrap'' in the [[#Installation steps for Arch Linux guests]] to also [[#Install the Guest Additions]] '''before''' performing a first boot into the new guest, you will need to {{ic|umount -l /mnt/dev}} as root before using ''pacstrap'' again; a failure to do this will render it unusable.<br />
<br />
=== 键盘和鼠标都在我的虚拟机 ===<br />
<br />
This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right {{ic|Ctrl}} key and your input should control your host again.<br />
<br />
To control transparently your virtual machine with your mouse going back and forth your host, without having to press any key, and thus have a seamless integration, install the guest additions inside the guest. Read from the [[#Install the Guest Additions]] step if you guest is Arch Linux, otherwise read the official VirtualBox help.<br />
<br />
=== 无法发送CTRL + ALT+ Fn键到我的虚拟机 ===<br />
<br />
Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting {{ic|Ctrl+Alt+F2}} or exit your current X session with {{ic|Ctrl+Alt+Backspace}}. If you type these keyboard shortcuts without any adaptation, the guest will not receive any input and the host (if it is a GNU/Linux distribution too) will intercept these shortcut keys. To send {{ic|Ctrl+Alt+F2}} to the guest for example, simply hit your ''Host Key'' (usually the right {{ic|Ctrl}} key) and press {{ic|F2}} simultaneously.<br />
<br />
=== 解决ISO映像问题===<br />
<br />
While VirtualBox can mount ISO images without problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files. <br />
<br />
In this case, you will either have to use [[CDEmu]] for Linux inside VirtualBox or any other utility used to mount disk images.<br />
<br />
=== VirtualBox的GUI没有应用我的GTK主题===<br />
<br />
See [[Uniform Look for Qt and GTK Applications]] for information about theming Qt based applications like Virtualbox.<br />
<br />
===OpenBSD系统无法使用时,虚拟化指令不可用 ===<br />
<br />
While OpenBSD is reported to work fine on other hypervisors without virtualisation instructions (VT-x AMD-V) enabled, an OpenBSD virtual machine running on VirtualBox without these instructions will be unusable, manifesting with a bunch of segmentation faults. Starting VirtualBox with the ''-norawr0'' argument [https://www.virtualbox.org/ticket/3947 may solve the problem]. You can do it like this:<br />
$ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM''<br />
<br />
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===<br />
这种情形可能会在虚拟机没有正常退出时发生,解除锁定虚拟机并不难: <br />
$ VBoxManage controlvm ''virtual_machine_name'' poweroff<br />
<br />
=== USB 子系统在宿主机和虚拟机没有作用 ===<br />
<br />
Your user must be in the {{ic|vboxusers}} group, and you need to install the [[#Extension pack|extension pack]] if you want USB 2 support. Then you will be able to enable USB 2 in the VM settings and add one or several filters for the devices you want to access from the guest OS.<br />
<br />
Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} or in a not visible USB drive on the host, [https://bbs.archlinux.org/viewtopic.php?id=121377 even when the user is in the '''vboxusers''' group]. This problem is due to the fact that VirtualBox switched from ''usbfs'' to ''sysfs'' in version 3.0.8. If the host does not understand this change, you can revert to the old behaviour by defining the following environment variable in any file that is sourced by your shell (e.g. your {{ic|~/.bashrc}} if you are using ''bash''):<br />
<br />
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>usbfs}}<br />
<br />
Then make sure, the environment has been made aware of this change (reconnect, source the file manually, launch a new shell instance or reboot).<br />
<br />
Also make sure that your user is a member of the {{ic|storage}} group.<br />
<br />
=== 主机模式网络接口创建失败 ===<br />
<br />
Make sure all required kernel modules are loaded. See [[#Load the VirtualBox kernel modules]].<br />
<br />
To be able to create a Host-Only Network Adapter or a Bridged Network Adapter the kernel modules {{ic|vboxnetadp}} and {{ic|vboxnetflt}} need to be loaded, you also need to make sure the {{pkg|net-tools}} package is installed. It's possible to load these kernel modules manually with<br />
<br />
# modprobe -a vboxnetadp vboxnetflt<br />
<br />
若要开机自动加载,每个模块添加一行到 {{ic|/etc/modules-load.d/virtualbox.conf}}:<br />
<br />
vboxdrv<br />
vboxnetadp<br />
vboxnetflt<br />
<br />
{{Note|以前这些都要添加到 {{ic|/etc/rc.conf}} 的 {{ic|MODULES}} 数组,现此方法已过时。}}<br />
<br />
更多信息请看[https://bbs.archlinux.org/viewtopic.php?id=130581 这个]主题。<br />
<br />
=== WinXP: 位深不能大于 16 ===<br />
<br />
若你运行于 16 位色深,图标可能看起来糊糊的。但是当你试图调到更高色深,系统可能会受限于较低的分辨率,甚至根本不允许更改色深。若要修正此问题,运行 {{ic|regedit}} 并添加下列键值到虚拟 XP 注册表:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
接著在桌面属性窗口改变色深。若没有反应,可透过一些方法强制屏幕重绘 (按下 {{ic|Host+F}} 重绘/进入全屏)。<br />
<br />
=== 虚拟系统使用串行端口 ===<br />
确认你的串行端口权限<br />
$ /bin/ls -l /dev/ttyS*<br />
crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0<br />
crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1<br />
crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2<br />
crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3<br />
<br />
添加你的用户到 {{ic|uucp}} 组。<br />
# gpasswd -a $USER uucp <br />
然后重新登陆。<br />
<br />
=== Windows 8.x Error Code 0x000000C4===<br />
<br />
If you get this error code while booting, even if you choose OS Type Win 8, try to enable the {{ic|CMPXCHG16B}} CPU instruction:<br />
<br />
$ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1<br />
<br />
=== Windows 8, 8.1 or 10 fails to install, boot or has error "ERR_DISK_FULL" ===<br />
<br />
Update the VM's settings by going to ''Settings > Storage > Controller:SATA'' and check "Use Host I/O Cache".<br />
<br />
=== Linux guests have slow/distorted audio ===<br />
<br />
The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside Virtual Box, leading to audio that is either too slow or too fast. To fix this, create a file in {{ic|/etc/modprobe.d}} with the following line:<br />
<br />
options snd-intel8x0 ac97_clock=48000<br />
<br />
=== 客户端启动后的Xorg死机 ===<br />
<br />
Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [https://bbs.archlinux.org/viewtopic.php?pid=1167838] and [https://bbs.archlinux.org/viewtopic.php?id=156079]. Try disabling 3D acceleration in ''Settings > Display'', and check if all [[Xorg]] drivers are installed.<br />
<br />
=== "NS_ERROR_FAILURE" and missing menu items ===<br />
<br />
If you encounter this message when first time starting the virtual machine:<br />
<br />
{{bc|Failed to open a session for the virtual machine debian.<br />
Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'.<br />
QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF).<br />
VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF).<br />
<br />
Result Code: <br />
NS_ERROR_FAILURE (0x80004005)<br />
Component: <br />
Medium<br />
}}<br />
<br />
Exit VirtualBox, delete all files of the new machine and from virtualbox config file remove the last line in {{ic|MachineRegistry}} menu (or the offending machine you are creating):<br />
<br />
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=<br />
...<br />
<MachineRegistry><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/><br />
<strike><MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/></strike><br />
</MachineRegistry><br />
...<br />
}}<br />
<br />
This happens sometimes when selecting ''QCOW''/''QCOW2''/''QED'' disk format when creating a new virutal disk.<br />
<br />
=== USB modem ===<br />
<br />
If you have a USB modem which is being used by the guest OS, killing the guest OS can cause the modem to become unusable by the host system. Killing and restarting {{ic|VBoxSVC}} should fix this problem.<br />
<br />
=== "The specified path does not exist. Check the path and then try again." error in Windows guests ===<br />
<br />
This error message often appears when running an .exe file which requires administrator priviliges from a shared folder in windows guests. See [https://www.virtualbox.org/ticket/5732 the bug report] for details.<br />
<br />
There are several workarounds:<br />
<br />
# Disable UAC from Control Panel -> Action Center -> "Change User Account Control settings" from left side pane -> set slider to "Never notify" -> OK and reboot<br />
# Copy the file from the shared folder to the guest and run from there<br />
<br />
Other threads on the internet suggest to add VBOXSVR to the list of trusted sites, but this doesn't work with Windows 7 or newer.<br />
<br />
=== 挂载失败导致的啟动问题 ===<br />
<br />
若你在内核升级后 [[systemd]] 设定遇到问题,你应该透过 {{ic|1=init=/bin/bash}} 开啟系统 (如果应急 shell 对你没有作用)。<br />
<br />
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash<br />
<br />
接著附加写入权限挂载 ''root''-文件系统:<br />
<br />
# mount / -o remount,rw<br />
<br />
根据 [[#Arch Linux 客户机共享文件夹]] 更改 {{ic|/etc/fstab}}]],然后在 Bash shell 运行 systemd:<br />
<br />
# exec /bin/systemd<br />
<br />
=== 复制和粘贴在 Arch Linux 客户机没有作用 ===<br />
<br />
Since updating {{ic|virtualbox-guest-additions}} to version {{ic|4.2.0-2}} copy&paste from Host OS to Arch Linux Guest stopped working. It seems to be due to {{ic|VBoxClient-all}} requiring ''root'' access. In previous versions adding ''VBoxClient-all &'' to ''~/.xinitrc'' was sufficient to make copy&paste work. Update ''~/.xinitrc'' to match {{ic|sudo VBoxClient-all &}} and add the line {{ic|, NOPASSWD: /usr/bin/VBoxClient-all}} to your username in the sudoers file and restart X. It should all work again. The line in the sudoers file should look similar to this:<br />
<br />
# Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password<br />
you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all<br />
<br />
{{Note|使用 {{ic|visudo}} 编辑 sudoer 文件,这会在存储时检查语法错误。}}<br />
<br />
=== 唤醒后异常 ===<br />
有个已知臭虫导致唤醒后异常: https://www.virtualbox.org/ticket/11289。避开的方法很简单: 每次都按 Host+q 或菜单关闭虚拟机。<br />
<br />
=== Btrfs 系统镜像 ===<br />
In 2010 there were reports that OS disk images would not start if they were attached via a virtual SATA device. It was reportedly fixed, and seemed to be. But as of around March 2013, that particular bug report has been [https://www.virtualbox.org/ticket/6905 repoened]. This can be fixed by enabling the use of the host I/O cache, which is disabled by default with virtual SATA interfaces.<br />
<br />
=== vagrant 啟动问题 ===<br />
在最新版的 VirtualBox(4.2.14-1),运行 {{ic|vagrant up}} 命令伴随以下错误:<br />
<br />
Command: ["import",<br />
"/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf"]<br />
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%<br />
Interpreting<br />
/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf...<br />
OK.<br />
0%...<br />
Progress object failure: NS_ERROR_CALL_FAILED<br />
<br />
在[https://www.virtualbox.org/ticket/11895 这个修正]释出前,你需要使用其它方法解决,或是将 VirtualBox 降级。<br />
<br />
有个临时的解决方法是在 {{ic|~/.vagrant.d/boxes/BoxName/virtualbox}} 為每个 box 创建 manifest:<br />
<br />
openssl sha1 *.vmdk *.ovf > box.mf<br />
<br />
你可以降级 VirtualBox。若你的缓存有旧的软件包,可以透过下列命令降级:<br />
<br />
sudo pacman -U /var/cache/pacman/pkg/virtualbox-4.2.12-3-x86_64.pkg.tar.xz<br />
<br />
这个错误似乎同时出现在所有平台: http://www.marshut.com/pzisi/progress-object-failure-ns-error-call-failed-when-running-vagrant-up-in-getting-started-guide.html#qhihz<br />
<br />
It's unclean for the moment. It could be regression inside Virtualbox or a issue inside Vagrant. When you delete the cache you can downgrade via ArchLinux [https://aur.archlinux.org/packages/downgrader/ downgrader ] (I did not test it correctly, but I assume this works, else<br />
check the wiki page for downgrading: [[Downgrading packages]]<br />
<br />
更多信息请到 GitHub issue 页面查看 [https://github.com/mitchellh/vagrant/issues/1847 Clean install on OS X 10.8.4 w/ latest VirtualBox not working]<br />
<br />
根据 [https://twitter.com/mitchellh/status/348886504728305664 Vagrant creator on Twitter],这是 VirtualBox 的臭虫。在 2013 年 06 月 25 日,他说他们在 SVN 修正此臭虫,并且正在等待释出。同时,我可以确认这是跨平台的问题,4.2.14 在我的 Win7 上面是坏的。<br />
<br />
这个问题在 virtualbox-4.2.16-1 这份 VirtualBox 版本释出时已解决<br />
<br />
=== 没有64位客户端选项 ===<br />
<br />
When launching a VM client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named {{ic|VT-x}}) are enabled in the BIOS.<br />
<br />
=== 主机上的虚拟机启动操作系统死机===<br />
<br />
{{Expansion|Needs a link to a bug report; vague expressions like "currently" and "at the moment of writing" are of no help.}}<br />
<br />
Possible causes/solutions :<br />
* SMAP<br />
This is a known incompatiblity with SMAP enabled kernels affecting (mostly) Intel Broadwell chipsets. The matter is currently being investigated, with a wide variety of WIP vboxhost module patches out in the wild that are meant to solve the issue. At the moment of writing though, the only 100% guaranteed solution to this problem is disabling SMAP support in your kernel by appending the "nosmap" option to your kernel boot command line.<br />
* Hardware Virtualisation<br />
Disabling hardware virtualisation (VT-x/AMD-V) may solve the problem.<br />
* Various Kernel bugs<br />
** Fuse mounted partitions (like ntfs) [https://bbs.archlinux.org/viewtopic.php?id=185841], [https://bugzilla.kernel.org/show_bug.cgi?id=82951#c12]<br />
<br />
Generally, such issues are observed after upgrading VirtualBox or linux kernel. Downgrading them to the previous versions of theirs might solve the problem.<br />
<br />
=== The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1) ===<br />
<br />
When trying to launch a virtual machine, an error message like the following appears:<br />
<br />
{{bc|The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1)<br />
NS_ERROR_FAILURE 0x80004005<br />
Component: MachineWrap<br />
Interface: IMachine}}<br />
<br />
This may occur after upgrading the {{Pkg|virtualbox}} or {{Pkg|virtualbox-host-modules}} package. Try reloading the {{ic|vboxdrv}} module:<br />
<br />
{{bc|# modprobe -r vboxdrv<br />
# modprobe vboxdrv<br />
}}<br />
<br />
=== Analog microphone not working in guest ===<br />
<br />
If the audio input from an analog microphone is working correctly on the host, but no sound seems to get through to the guest, despite the microphone device apparently being detected normally, installing a [[Sound system#Sound servers|sound server]] such as [[PulseAudio]] on the host might fix the problem.<br />
<br />
=== Fullscreen mode shows blank guest screen ===<br />
On some window managers ([[i3]]), VirtualBox has issues with fullscreen mode properly due to the overlay bar. To workaround this issue, disable "Show in Full-screen/Seamless" option in "Guest Settings --> User Interface --> Mini ToolBar". See [https://www.virtualbox.org/ticket/14323 the upstream bug report] for more information.<br />
<br />
=== Failed to insert module ===<br />
<br />
If you encounter problem when loading modules as follow:<br />
<br />
Failed to insert 'vboxdrv': Required key not available<br />
<br />
Make sure you signed your modules or disable {{ic|CONFIG_MODULE_SIG_FORCE}} in your kernel config.<br />
<br />
== 参阅 ==<br />
<br />
* [https://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]<br />
* [[Wikipedia:VirtualBox]]</div>2419https://wiki.archlinux.org/index.php?title=List_of_applications/Multimedia&diff=441408List of applications/Multimedia2016-07-14T13:33:39Z<p>2419: /* Mobile phone managers */</p>
<hr />
<div><noinclude><br />
[[Category:Applications]]<br />
[[Category:Multimedia]]<br />
[[es:List of applications/Multimedia]]<br />
[[it:List of applications/Multimedia]]<br />
[[ja:アプリケーション一覧/マルチメディア]]<br />
[[ru:List of applications/Multimedia]]<br />
[[zh-cn:List of applications/Multimedia]]<br />
[[zh-tw:List of applications/Multimedia]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Multimedia ==<br />
<br />
=== Codecs ===<br />
<br />
See the main article: [[Codecs]].<br />
<br />
=== Image ===<br />
<br />
==== Image viewers ====<br />
<br />
See also [[Wikipedia:Comparison of image viewers]].<br />
<br />
===== Console =====<br />
<br />
* {{App|fbi|Image viewer for the linux framebuffer console.|https://www.kraxel.org/blog/linux/fbida/|{{Pkg|fbida}}}}<br />
* {{App|fbv|Very simple graphic file viewer for the framebuffer console.|http://s-tech.elsat.net.pl/fbv/|{{Pkg|fbv}}}}<br />
* {{App|fim|Highly customizable and scriptable framebuffer image viewer based on fbi.|http://www.nongnu.org/fbi-improved/|{{AUR|fim}}}}<br />
* {{App|jfbview|Framebuffer PDF and image viewer based on Imlib2. Features include Vim-like controls, rotation and zoom, zoom-to-fit, and fast multi-threaded rendering.|http://seasonofcode.com/pages/jfbview.html|{{AUR|jfbview}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Eye_of_GNOME|Eye of GNOME]]|Image viewing and cataloging program, which is a part of the GNOME desktop environment.|https://wiki.gnome.org/Apps/EyeOfGnome|{{Pkg|eog}}}}<br />
* {{App|Eye of MATE|Simple graphics viewer for the MATE desktop.|https://github.com/mate-desktop/eom|{{Pkg|eom}}}}<br />
* {{App|[[feh]]|Fast, lightweight image viewer that uses imlib2.|http://feh.finalrewind.org|{{Pkg|feh}}}}<br />
* {{App|meh|meh is a small, simple, super fast image viewer using raw XLib.|http://www.johnhawthorn.com/meh/|{{AUR|meh-git}}}}<br />
* {{App|GalaPix|OpenGL-based image viewer for simultaneously viewing and zooming large collections of image files,|http://code.google.com/p/galapix/|{{AUR|galapix}}}}<br />
* {{App|[[Wikipedia:Geeqie|Geeqie]]|Image browser and viewer (fork of GQview) that adds additional functionality such as support for RAW files.|http://geeqie.sourceforge.net/|{{Pkg|geeqie}}}}<br />
* {{App|Gimmage|Gtkmm image viewer.|http://gimmage.berlios.de/|{{Pkg|gimmage}}}}<br />
* {{App|GPicView|Simple and fast image viewer for X, which is part of the [[LXDE]] desktop.|http://lxde.sourceforge.net/gpicview/|{{Pkg|gpicview}}}}<br />
* {{App|[[Wikipedia:GQview|GQview]]|Image browser that features single click access to view images and move around the directory tree|http://gqview.sourceforge.net/|{{AUR|gqview-devel}}}}<br />
* {{App|[[Wikipedia:GThumb|gThumb]]|Image viewer for the GNOME desktop.|https://wiki.gnome.org/Apps/gthumb|{{Pkg|gthumb}}}}<br />
* {{App|[[Wikipedia:Gwenview|Gwenview]]|Fast and easy to use image viewer for the KDE desktop.|http://gwenview.sourceforge.net/|{{Pkg|gwenview}}}}<br />
* {{App|imv|Lightweight image viewer with support for Wayland and animated GIFs.|https://www.github.com/eXeC64/imv/|{{AUR|imv}}}}<br />
* {{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail panel.|http://mirageiv.berlios.de|{{Pkg|mirage}}}}<br />
* {{App|nomacs|Free (GPLv3) Qt image viewer for many operating systems. It is feature-rich but starts fast and can be configured to show additional widgets or only the image.|http://www.nomacs.org/|{{Pkg|nomacs}}}}<br />
* {{App|Phototonic|Fast and functional image viewer and organizer (Qt).| https://github.com/oferkv/phototonic|{{AUR|phototonic}}}}<br />
* {{App|PhotoQt|Fast and highly configurable image viewer with a simple and nice interface.|http://photoqt.org/|{{AUR|photoqt}}}}<br />
* {{App|[[Wikipedia:Picasa|Picasa]]|Image organizer and viewer from Google that has editing capabilities and integration with the photo-sharing website.|http://picasa.google.com/|{{AUR?|picasa}}}}<br />
* {{App|Quick Image Viewer|Very small and fast image viewer based on GTK+ and imlib2.|http://spiegl.de/qiv/|{{Pkg|qiv}}}}<br />
* {{App|Ristretto|Fast and lightweight image viewer for the Xfce desktop environment.|http://goodies.xfce.org/projects/applications/ristretto|{{Pkg|ristretto}}}}<br />
* {{App|Shotwell|A digital photo organizer designed for the GNOME desktop environment|https://wiki.gnome.org/Apps/Shotwell|{{Pkg|shotwell}}}}<br />
* {{App|[[sxiv]]|Simple image viewer based on imlib2 that works well with tiling window managers.|https://github.com/muennich/sxiv|{{Pkg|sxiv}}}}<br />
* {{App|Viewnior|Minimalistic GTK+ image viewer featuring support for flipping, rotating, animations and configurable mouse actions.|http://siyanpanayotov.com/project/viewnior/|{{Pkg|viewnior}}}}<br />
* {{App|Xloadimage|Classic X image viewer.|http://sioseis.ucsd.edu/xloadimage.html|{{Pkg|xloadimage}}}}<br />
* {{App|[[Wikipedia:XnView|XnView MP]]|Efficient image viewer, browser and converter.|http://www.xnview.com/en/index.html|{{AUR|xnviewmp}}}}<br />
* {{App|[[Wikipedia:Xv_(software)|xv]]|Shareware program written by John Bradley to display and modify digital images under the X Window System.|http://www.trilon.com/xv/|{{Pkg|xv}}}}<br />
<br />
==== Graphics and image manipulation ====<br />
<br />
===== Raster editors =====<br />
<br />
See also [[Wikipedia:Comparison of raster graphics editors]].<br />
<br />
* {{App|AfterShot Pro|Professional workflow and RAW conversion. Successor of Bibble Pro.|http://www.aftershotpro.com/en/products/aftershot-pro/|{{AUR|aftershotpro}}}}<br />
* {{App|AzPainter|A Painting software. |http://azpainter.sourceforge.jp/|{{AUR|azpainter}}}}<br />
* {{App|[[Wikipedia:darktable|darktable]]|Photography workflow and RAW development application.|http://www.darktable.org//|{{Pkg|darktable}}}}<br />
* {{App|dcraw|Converts many camera RAW formats.|http://www.cybercom.net/~dcoffin/dcraw/|{{Pkg|dcraw}}}}<br />
* {{App|[[Wikipedia:digiKam|digiKam]]|KDE-based image organizer with built-in editing features via a plugin architecture. digiKam asserts it is more full featured than similar applications with a larger set of image manipulation features including RAW image import and manipulation.|http://www.digikam.org/|{{Pkg|digikam}}}}<br />
* {{App|[[GIMP]]|Image editing suite in the vein of proprietary editors such as [[Wikipedia:Adobe Photoshop|Adobe Photoshop]]. GIMP ([[GNU]] Image Manipulation Program) has been started in the mid 1990s and has acquired a large number of [[CMYK support in The GIMP|plugins]] and additional tools.|http://www.gimp.org/|{{Pkg|gimp}}}}<br />
* {{App|[[Wikipedia:GNU Paint|Gpaint]]|[[Wikipedia:PC_Paintbrush|Paintbrush]] clone for GNOME.|http://www.gnu.org/software/gpaint/|{{AUR|gpaint}}}}<br />
* {{App|[[Wikipedia:GraphicsMagick|GraphicsMagick]]|Fork of ImageMagick designed to have API and command-line stability. It also supports multi-CPU for enhanced performance and thus is used by some large commercial sites (Flickr, etsy) for its performance.|http://www.graphicsmagick.org/|{{Pkg|graphicsmagick}}}}<br />
* {{App|[[Wikipedia:ImageMagick|ImageMagick]]|Command-line image manipulation program. It is known for its accurate format conversions with support for over 100 formats. Its API enables it to be scripted and it is usually used as a backend processor.|http://www.imagemagick.org/script/index.php|{{Pkg|imagemagick}}}}<br />
* {{App|[[Wikipedia:KolourPaint|KolourPaint]]|Free raster graphics editor for KDE, similar to Microsoft's Paint application before Windows 7, but with some additional features such as support for transparency. Part of {{Grp|kde-applications}} and {{Grp|kdegraphics}} groups.|http://kolourpaint.org|{{Pkg|kdegraphics-kolourpaint}}}}<br />
* {{App|[[Wikipedia:Krita|Krita]]|Digital painting and illustration software included based on the KDE platform and Calligra libraries. Part of {{Grp|calligra}} group.|http://krita.org/|{{Pkg|calligra-krita}}{{Broken package link|replaced by {{Pkg|krita}}}}}}<br />
* {{App|Luminance HDR|Open source graphical user interface application that aims to provide a workflow for HDR imaging.|http://qtpfsgui.sourceforge.net/|{{Pkg|luminancehdr}}}}<br />
* {{App|mtPaint|Graphics editing program geared towards creating indexed palette images and pixel art.|http://mtpaint.sourceforge.net/|{{Pkg|mtpaint}}}}<br />
* {{App|[[Wikipedia:MyPaint|MyPaint]]|Free software graphics application for digital painters.|http://mypaint.org|{{Pkg|mypaint}}}}<br />
* {{App|[[Wikipedia:Pinta (software)|Pinta]]|Drawing and editing program modeled after [[Wikipedia:Paint.net|Paint.NET]]. Its goal is to provide a simplified alternative to GIMP for casual users.|http://pinta-project.com/|{{Pkg|pinta}}}}<br />
* {{App|[[Wikipedia:Shotwell_(software)|Shotwell]]|Image organizer with a small set of image manipulation features (rotate, crop, color adjust, and red eye removal). It can import photos directly from digital cameras and export them to social media sites (Facebook, Flickr, Picasa Web Albums, etc.).|http://yorba.org/shotwell/|{{Pkg|shotwell}}}}<br />
* {{App|[[Wikipedia:XPaint|XPaint]]|Color image editing tool which features most standard paint program options.|http://sourceforge.net/projects/sf-xpaint/|{{AUR|xpaint}}}}<br />
<br />
===== Vector graphics - illustration =====<br />
<br />
See also [[Wikipedia:Comparison of vector graphics editors]].<br />
<br />
* {{App|[[Wikipedia:Asymptote_(vector_graphics_language)|Asymptote]]|A descriptive vector graphics language (like PGF/TikZ and Metapost) with a C-like syntax and LaTeX support.|http://asymptote.sourceforge.net|{{Pkg|asymptote}}}}<br />
* {{App|[[Wikipedia:Dia_(software)|Dia]]|GTK+-based diagram creation program.|https://wiki.gnome.org/Apps/Dia|{{Pkg|dia}}}}<br />
* {{App|[[Wikipedia:Graphviz|Graphviz]]|Set of tools for drawing graphs in the descriptive DOT language.|http://www.graphviz.org|{{Pkg|graphviz}}}}<br />
* {{App|[[Wikipedia:Inkscape|Inkscape]]|Vector graphics editor, with capabilities similar to [[Wikipedia:Adobe Illustrator|Illustrator]], [[Wikipedia:CorelDRAW|CorelDraw]], or [[Wikipedia:Xara X|Xara X]], using the SVG (Scalable Vector Graphics) file format. Inkscape supports many advanced SVG features (markers, clones, alpha blending, etc.) and great care is taken in designing a streamlined interface. It is very easy to edit nodes, perform complex path operations, trace bitmaps and much more. It's developers also aim to maintain a thriving user and developer community by using open, community-oriented development.|http://inkscape.org/|{{Pkg|inkscape}}}}<br />
* {{App|[[Wikipedia:Karbon (software)|Karbon]]|Vector graphics editor, part of the Calligra Suite. Part of {{Grp|calligra}} group.|http://www.calligra-suite.org/karbon/|{{Pkg|calligra-karbon}}}}<br />
* {{App|[[Wikipedia:Pencil2D|Pencil Project]]|An open-source GUI prototyping and mockup tool.|http://pencil.evolus.vn/|{{AUR|pencil}}}}<br />
* {{App|qasm2circ|Quantum circuit generator for latex|http://www.media.mit.edu/quanta/qasm2circ/|{{AUR|qasm2circ}}}}<br />
* {{App|[[Wikipedia:SK1_(program)|sK1]]|Replacement for Adobe Illustrator or CorelDraw, oriented for "prepress ready" PostScript & PDF output.|http://sk1project.org/|{{Pkg|sk1}}}}<br />
* {{App|[[Wikipedia:Xara_Xtreme_LX|Xara LX]]|Advanced vector graphics program, the open source version of the commercial Xara X.|http://www.xaraxtreme.org/|{{AUR|xaralx}}}}<br />
* {{App|[[Wikipedia:yEd|yEd]]|General-purpose diagramming program for flowcharts, network diagrams, UML diagrams, BPMN diagrams, mind maps, organization charts, and Entity Relationship diagrams.|http://www.yworks.com/en/products_yed_about.html|{{AUR|yed}}}}<br />
<br />
===== Vector graphics - CAD =====<br />
<br />
See also [[Wikipedia:List of computer-aided design editors]].<br />
<br />
* {{App|[[Wikipedia:BRL-CAD|BRL-CAD]]|Constructive solid geometry (CSG) solid modeling computer-aided design (CAD) system that includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, scripting, image-processing and signal-processing tools.|http://brlcad.org/|{{AUR|brlcad}}}}<br />
* {{App|DraftSight|Dassault Systemes' freeware 2D CAD application. DraftSight allows users to access DWG/DXF files, regardless of which CAD software was originally used to create them.|http://www.3ds.com/products-services/draftsight/overview/|{{AUR|draftsight}}}}<br />
* {{App|[[Wikipedia:FreeCAD|FreeCAD]]|CAD/CAE program, based on OpenCascade, Qt and Python with features such as macro recording, workbenches and the ability to run as server.|http://sourceforge.net/projects/free-cad/|{{Pkg|freecad}}}}<br />
* {{App|LeoCAD|CAD program for creating virtual LEGO models. It has an easy to use interface and currently includes over 6000 different pieces created by the LDraw community.|http://leocad.org|{{AUR|leocad}}}}<br />
* {{App|[[Wikipedia:LibreCAD|LibreCAD]]|Powerful 2D CAD application based on Qt. It has been forked from QCad Community Edition.|http://www.librecad.org/|{{Pkg|librecad}}}}<br />
* {{App|[[Wikipedia:OpenSCAD|OpenSCAD]]|Open source 2D/3D CAD using programmers approach.|http://www.openscad.org|{{Pkg|openscad}} {{AUR|openscad-git}}}}<br />
* {{App|[[Wikipedia:QCad|QCAD]]|Powerful 2D CAD application that began in 1999. QCaD includes DFX standard file format and supports HPGL format.|http://www.qcad.org/|{{Pkg|qcad}}}}<br />
<br />
===== 3D modeling/rendering =====<br />
<br />
See also [[Wikipedia:Comparison of 3D computer graphics software]].<br />
<br />
* {{App|[[Wikipedia:Art_of_Illusion|Art of Illusion]]|3D modeling and rendering studio written in Java.|http://www.artofillusion.org/|{{AUR|aoi}}}}<br />
* {{App|[[Wikipedia:Blender_(software)|Blender]]|fully integrated 3D graphics creation suite capable of 3D modeling, texturing, and animation, among other things.|http://www.blender.org/|{{Pkg|blender}}}}<br />
* {{App|[[Wikipedia:MakeHuman|MakeHuman™]]|Parametrical modeling program for creating human bodies.|http://www.makehuman.org/|{{AUR|makehuman}}}}<br />
* {{App|[[Wikipedia:POV-Ray|POV-Ray]]|Script-based raytracer for creating 3D graphics.|http://www.povray.org/|{{Pkg|povray}}}}<br />
* {{App|[[Wikipedia:Wings3d|Wings 3D]]|Advanced subdivision modeler that is both powerful and easy to use.|http://www.wings3d.com/|{{Pkg|wings3d}}}}<br />
<br />
==== Screen capture ====<br />
<br />
See also: [[Taking a screenshot]].<br />
<br />
=== Audio ===<br />
<br />
==== Audio systems ====<br />
<br />
See the main article: [[Sound system]].<br />
<br />
See also [[Wikipedia:Sound server]].<br />
<br />
* {{App|wineasio|Provides an ASIO to JACK driver for ''wine''. ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.|http://sourceforge.net/projects/wineasio/|{{AUR|wineasio}}}}<br />
<br />
==== Audio players ====<br />
<br />
See also [[Wikipedia:Comparison of audio player software]].<br />
<br />
===== Music player daemons and clients =====<br />
<br />
See also: [[Music_Player_Daemon#Clients|List of MPD clients]]<br />
<br />
* {{App|[[Music Player Daemon]]|Lightweight and scalable choice for music management.|http://www.musicpd.org/|{{Pkg|mpd}}}}<br />
* {{App|[[Wikipedia:XMMS2|XMMS2]]|Complete rewrite of the popular music player.|https://xmms2.org|{{Pkg|xmms2}}}}<br />
<br />
===== Command-line players =====<br />
<br />
* {{App|[[cmus]]|Very feature-rich ncurses-based music player.|http://cmus.github.io/|{{Pkg|cmus}}}}<br />
* {{App|Cplay|Curses front-end for various audio players (ogg123, mpg123, mpg321, splay, madplay, and mikmod, xmp, and sox).|http://directory.fsf.org/wiki/Cplay|{{AUR|cplay}}}}<br />
* {{App|Herrie|Minimalistic console-based music player with native AudioScrobbler support.|http://herrie.info/|{{AUR|herrie}}}}<br />
* {{App|[[Moc|MOC]]|Ncurses console audio player with support for the MP3, OGG, and WAV formats.|http://moc.daper.net/|{{Pkg|moc}}}}<br />
* {{App|MPFC|Gstreamer-based audio player with curses interface.|http://code.google.com/p/mpfc/|{{AUR|mpfc}}}}<br />
* {{App|[[Wikipedia:Mpg123|mpg123]]|Fast free MP3 console audio player for Linux, FreeBSD, Solaris, HP-UX and nearly all other UNIX systems (also decodes MP1 and MP2 files).|http://www.mpg123.org/|{{Pkg|mpg123}}}}<br />
* {{App|mps-youtube|Terminal based YouTube jukebox with playlist management. Plays audio/video through mplayer/mpv.|https://github.com/mps-youtube/mps-youtube|{{Pkg|mps-youtube}}}}<br />
* {{App|pancake|Cli pandora client built with urwid.|https://github.com/osum4est/pancake/}}<br />
* {{App|[[pianobar]]|Console-based frontend for Pandora.|http://6xq.net/projects/pianobar/|{{Pkg|pianobar}}}}<br />
* {{App|shell-fm|Console-based player for the streams provided by [http://www.last.fm/ last.fm].|https://github.com/jkramer/shell-fm/|{{AUR|shell-fm}}{{Broken package link|{{aur-mirror|shell-fm}}}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player with ncurses interface module, and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|whistle|a curses-based commandline audio player.|https://github.com/ap0calypse/whistle/|{{AUR|whistle-git}}}}<br />
<br />
===== GUI players =====<br />
<br />
* {{App|[[Amarok]]|Mature Qt-based player known for its plethora of features.|http://amarok.kde.org/|{{Pkg|amarok}}}}<br />
* {{App|[[Wikipedia:aTunes|aTunes]]|Audio player written in Java.|http://www.atunes.org/|{{AUR|atunes}}{{Broken package link|{{aur-mirror|atunes}}}}}}<br />
* {{App|[[Audacious]]|[[Wikipedia:Winamp|Winamp]] clone like Beep and old XMMS versions.|http://audacious-media-player.org/|{{Pkg|audacious}}}}<br />
* {{App|[[Wikipedia:Banshee (media player)|Banshee]]|[[Wikipedia:iTunes|iTunes]] clone, built with GTK+ and [[Mono]], feature-rich and more actively developed.|http://banshee.fm/|{{Pkg|banshee}}}}<br />
* {{App|[[Wikipedia:Clementine_(software)|Clementine]]|Amarok 1.4 clone, ported to Qt 4.|http://www.clementine-player.org/|{{Pkg|clementine}}}}<br />
* {{App|Cuberok|Music player and collection manager with a lightweight interface.|http://code.google.com/p/cuberok/|{{AUR|cuberok}}}}<br />
* {{App|DeaDBeeF|Light and fast music player with many features, no GNOME or KDE dependencies, supports console-only, as well as a GTK+ GUI, comes with many plugins, and has a metadata editor.|http://deadbeef.sourceforge.net/|{{Pkg|deadbeef}}}}<br />
* {{App|[[Exaile]]|GTK+ clone of Amarok.|http://www.exaile.org/|{{AUR|exaile}}}}<br />
* {{App|gmusicbrowser|Open-source jukebox for large collections of MP3/OGG/FLAC files.|http://gmusicbrowser.org/|{{AUR|gmusicbrowser}}}}<br />
* {{App|GNOME Music|Music is the new GNOME music playing application. It aims to combine an elegant and immersive browsing experience with simple and straightforward controls.|https://wiki.gnome.org/Apps/Music|{{Pkg|gnome-music}}}}<br />
* {{App|Goggles Music Manager|Music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support. Uses the [[Wikipedia:Fox toolkit|Fox toolkit]].|http://gogglesmm.github.io/|{{Pkg|gogglesmm}}}}<br />
* {{App|Guayadeque|Full featured media player that can easily manage large collections and uses the GStreamer media framework.|http://guayadeque.org/|{{AUR|guayadeque}}}}<br />
* {{App|[[Wikipedia:JuK|JuK]]|JuK is an audio jukebox application, supporting collections of MP3, Ogg Vorbis, and FLAC audio files.|https://www.kde.org/applications/multimedia/juk/|{{Pkg|kdemultimedia-juk}}}}<br />
* {{App|Listen|Listen is a Music player and management for GNOME written in python.|https://launchpad.net/listen|{{AUR|listen}}}}<br />
* {{App|Lollypop|A GNOME music player.|https://gnumdk.github.io/lollypop-web/|{{Pkg|lollypop}}}}<br />
* {{App|LXMusic|A minimalist xmms2-based music player.|http://wiki.lxde.org/en/LXMusic|{{Pkg|lxmusic}}}}<br />
* {{App|Miam-player|Cross-platform open source music player.|http://miam-player.org/|{{AUR|miam-player}}}}<br />
* {{App|Musique|Just another music player, only better.|http://flavio.tordini.org/musique|{{AUR|musique}}}}<br />
* {{App|[[Wikipedia:Nightingale (software)|Nightingale]]|Open source clone of iTunes-based on [[Wikipedia:Songbird (software)|Songbird]], that uses Mozilla technologies and the GStreamer framework.|http://getnightingale.com/|{{AUR|nightingale-git}}}}<br />
* {{App|Noise|Simple, fast, and good looking music player.|https://launchpad.net/noise|{{Pkg|noise-player}}}}<br />
* {{App|Nuvola Player|Integrated Google Music, 8tracks and Hype Machine player.|http://nuvolaplayer.fenryxo.cz/|{{AUR|nuvolaplayer}}}}<br />
* {{App|Potamus|Lightweight, intuitive GTK+ audio player with an emphasis on high audio quality.|http://offog.org/code/potamus.html|{{AUR|potamus}}{{Broken package link|{{aur-mirror|potamus}}}}}}<br />
* {{App|Pragha|GTK+ music manager. (fork of the Consonance Music Manager)|https://pragha-music-player.github.io/|{{Pkg|pragha}}}}<br />
* {{App|Qmmp|Qt-based multimedia player with a user interface that is similar to Winamp or XMMS.|http://qmmp.ylsoftware.com/|{{Pkg|qmmp}}}}<br />
* {{App|[[Wikipedia:Quod Libet (software)|Quod Libet]]|Audio player written with PyGTK and GStreamer with support for regular expressions in playlists.|http://code.google.com/p/quodlibet/|{{Pkg|quodlibet}}}}<br />
* {{App|[[Wikipedia:Rhythmbox|Rhythmbox]]|GTK+ clone of iTunes, used by default in GNOME.|https://wiki.gnome.org/Apps/Rhythmbox|{{Pkg|rhythmbox}}}}<br />
* {{App|[[Spotify]]|Proprietary music streaming service. It supports local playback and streaming from Spotify's vast library (requires a free account).|http://www.spotify.com/|{{AUR|spotify}}}}<br />
* {{App|[[SpotCommander]]|A remote control for Spotify, optimized for mobile devices. It works on any device with a modern browser, and it's free and open source.|http://olejon.github.io/spotcommander/|{{AUR|spotcommander}}}}<br />
* {{App|Tomahawk|Music player application written in C++/Qt. It decouples the name of the song from the source it was shared from - and fulfills the request using all of your available sources.|http://www.tomahawk-player.org/|{{AUR|tomahawk}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|[[wikipedia:XMMS|XMMS]]|Skinnable GTK+ standalone media player similar to Winamp.|http://legacy.xmms2.org/|{{AUR|xmms}}}}<br />
<br />
==== Volume managers ====<br />
<br />
* {{App|GVolWheel|An audio mixer which lets you control the volume through a tray icon.|http://sourceforge.net/projects/gvolwheel/|{{AUR|gvolwheel}}}}<br />
* {{App|GVTray|A master volume mixer for the system tray.|http://code.google.com/p/gtk-tray-utils/|{{AUR|gvtray}}{{Broken package link|{{aur-mirror|gvtray}}}}}}<br />
*{{App|pa-applet|PulseAudio system tray applet with volume bar.|https://github.com/fernandotcl/pa-applet|{{Aur|pa-applet-git}}}}<br />
* {{App|PNMixer|A fork of Obmixer. It has many new features such as ALSA channel selection, connect/disconnect detection, shortcuts, etc.|https://github.com/nicklan/pnmixer/wiki|{{AUR|pnmixer}}}}<br />
*{{App|Volctl|Per-application volume control for GNU/Linux desktops.|https://buzz.github.io/volctl/|{{Aur|volctl}}}}<br />
*{{App|[[Volnoti]]|A lightweight volume notification daemon for GNU/Linux and other POSIX operating systems.|https://github.com/davidbrazdil/volnoti|{{Aur|volnoti}}}}<br />
* {{App|Volti|A GTK application for controlling audio volume from system tray with an internal mixer and support for multimedia keys that uses only ALSA.|http://code.google.com/p/volti/|{{AUR|volti}}}}<br />
* {{App|VolumeIcon|Another volume control for your system tray with channel selection, themes and an external mixer.|http://softwarebakery.com/maato/volumeicon.html|{{Pkg|volumeicon}}}}<br />
* {{App|VolWheel|A little application which lets you control the sound volume easily through a tray icon you can scroll on.|http://oliwer.net/b/volwheel.html|{{Pkg|volwheel}}}}<br />
<br />
==== CD ripping ====<br />
<br />
See [[Optical disc drive#CD]].<br />
<br />
==== Visualization ====<br />
<br />
* {{App|[[Wikipedia:MilkDrop|ProjectM]]|Music visualizer which uses 3D accelerated iterative image-based rendering.|http://projectm.sourceforge.net/|{{Pkg|projectm}}}}<br />
* {{App|[[Wikipedia:VSXu|VSXu]]|Free to use program that lets you create and perform real-time audio visual presets.|http://www.vsxu.com/|{{AUR|vsxu}}}}<br />
<br />
==== Audio tag editors ====<br />
<br />
* {{App|Audio Tag Tool|Tool to edit tags in MP3 and Ogg Vorbis files.|http://tagtool.sourceforge.net/|{{AUR|tagtool}}}}<br />
* {{App|Cowbell|Elegant music organizer that supports many audio formats including MP3, Ogg/FLAC, and MusePack.|http://more-cowbell.org/|{{AUR|cowbell}}{{Broken package link|{{aur-mirror|cowbell}}}}}}<br />
* {{App|[[Wikipedia:EasyTag|EasyTag]]|Utility for viewing, editing and writing ID3 tags of music files, supports many audio formats.|http://easytag.sourceforge.net/|{{Pkg|easytag}}}}<br />
* {{App|[[Wikipedia:Ex Falso (software)|Ex Falso]]|Cross-platform free and open source audio tag editor and library organizer.|http://code.google.com/p/quodlibet/|{{AUR|exfalso}}}}<br />
* {{App|ID3 Mass Tagger|Command-line utility to edit ID3 1.x and 2.x tags.|http://squell.github.io/id3/|{{Pkg|id3}}}}<br />
* {{App|Kid3|MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files tag editor.|http://kid3.sourceforge.net/|{{Pkg|kid3}}}}<br />
* {{App|MP3Info|MP3 technical info viewer and ID3 1.x tag editor.|http://ibiblio.org/mp3info/|{{Pkg|mp3info}}}}<br />
* {{App|[[Wikipedia:MusicBrainz Picard|MusicBrainz Picard]]|Cross-platform audio tag editor written in Python (the official MusicBrainz tagger).|http://musicbrainz.org/doc/MusicBrainz_Picard|{{Pkg|picard}}}}<br />
* {{App|[[Wikipedia:Puddletag|Puddletag]]|Replacement for the famous MP3tag for Windows.|http://puddletag.sourceforge.net/|{{Pkg|puddletag}}}}<br />
* {{App|taffy|Simple command-line tag editor for many audio formats.|http://github.com/jangler/taffy|{{AUR|taffy}}}}<br />
* {{App|Tag Editor|A tag editor with Qt 5 GUI and command-line interface supporting MP4/AAC (iTunes), ID3v1, ID3v2, Ogg/Vorbis and Matroska.|http://github.com/Martchus/tageditor|{{AUR|tageditor}}}}<br />
* {{App|Qoobar|Universal QT-based audio tagger (specialized for classical music)|http://qoobar.sourceforge.net/en/index.htm|{{AUR|qoobar}}}}<br />
<br />
==== Sound editing ====<br />
<br />
* {{App|[[Wikipedia:Ardour (software)|Ardour]]|Multichannel hard disk recorder and digital audio workstation.|http://ardour.org/|{{Pkg|ardour}}}}<br />
* {{App|[[Wikipedia:Audacity (audio editor)|Audacity]]|Program that lets you manipulate digital audio waveforms.|http://audacity.sourceforge.net/|{{Pkg|audacity}}}}<br />
* {{App|Bitwig Studio|Proprietary professional digital audio workstation.|http://bitwig.com/|{{AUR|bitwig-studio-demo}}{{Broken package link|{{aur-mirror|bitwig-studio-demo}}}}}}<br />
* {{App|GNOME Sound Recorder|The Sound Recorder application enables you to record and play .flac, .ogg (OGG audio, or .oga), and .wav sound files.|https://wiki.gnome.org/Design/Apps/SoundRecorder|{{Pkg|gnome-sound-recorder}}}}<br />
* {{App|[[Wikipedia:Jokosher|Jokosher]]|Non-linear multi-track digital audio editor that is being developed in Python, using the GTK+ interface and GStreamer as an audio back-end.|https://launchpad.net/jokosher/|{{AUR|jokosher}}}}<br />
* {{App|KWave|Sound editor for KDE.|http://kwave.sourceforge.net/|{{AUR|kwave-git}}}}<br />
* {{App|[[LMMS]]|The Linux MultiMedia Studio. Free cross-platform software which allows you to produce music with your computer.|http://lmms.sourceforge.net/|{{Pkg|lmms}}}}<br />
* {{App|[[Wikipedia:Qtractor|Qtractor]]|Qt-based hard disk recorder and digital audio workstation application that aims to provide digital audio workstation software simple enough for the average home user, and yet powerful enough for the professional user.|http://qtractor.sourceforge.net/qtractor-index.html|{{Pkg|qtractor}}}}<br />
* {{App|[[Wikipedia:Rosegarden|Rosegarden]]|Digital audio workstation program developed with ALSA and Qt that acts as an audio and MIDI sequencer, scorewriter and musical composition and editing tool.|http://www.rosegardenmusic.com/|{{Pkg|rosegarden}}}}<br />
* {{App|XCFA|Tool to extract the contens of audio CDs and convert them to various formats.|http://www.xcfa.tuxfamily.org/|{{AUR|xcfa}}}}<br />
<br />
=== Mobile phone managers ===<br />
<br />
* {{App|[[Wikipedia:Gnokii|gnokii]]|Tools and user space driver for use with mobile phones.|http://www.gnokii.org/|{{Pkg|gnokii}}}}<br />
* {{App|GNOME Phone Manager|Control your mobile phone from your GNOME desktop.|https://wiki.gnome.org/PhoneManager|{{Pkg|gnome-phone-manager}}}}<br />
* {{App|KDE Connect|A project that aims to communicate all your devices.|http://community.kde.org/KDEConnect|{{Pkg|kdeconnect}}}}<br />
* {{App|Moto4Lin|File manager and seem editor for Motorola P2K phones (like C380/C650).|http://sourceforge.net/projects/moto4lin/|{{AUR|moto4lin}}{{Broken package link|{{aur-mirror|moto4lin}}}}}}<br />
<br />
=== Video ===<br />
<br />
==== Video players ====<br />
<br />
See also [[Wikipedia:Comparison of video player software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[MPlayer]]|Video player that supports a complete and versatile array of video and audio formats.|http://www.mplayerhq.hu/design7/news.html|{{Pkg|mplayer}} (See also a very similar fork: {{AUR|mplayer2}}}})<br />
* {{App|[[mpv]]|Movie player based on MPlayer and mplayer2.|http://mpv.io|{{Pkg|mpv}} {{AUR|mpv-git}}}}<br />
* {{App|[[Wikipedia:xine|xine-ui]]|Free multimedia player.|http://www.xine-project.org|{{Pkg|xine-ui}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC ncurses]]|Command-line version of the famous video player that can play smoothly high definition videos in the TTY.|https://www.videolan.org/vlc/|{{AUR|vlc-nox}}}}<br />
<br />
===== Graphical =====<br />
<br />
See also: [[MPlayer#Frontends/GUIs]], [[mpv#Front ends]].<br />
<br />
* {{App|[[Wikipedia:Kdemultimedia#Dragon Player|Dragon Player]]|Simple video player for KDE. Part of the {{Grp|kdemultimedia}} group.|http://www.kde.org/applications/multimedia/dragonplayer/|{{Pkg|dragon}}}}<br />
* {{App|[[Wikipedia:Kaffeine|Kaffeine]]|Very versatile KDE media player that, by default, utilizes Xine as its backend and has excellent support of digital TV (DVB).|http://kaffeine.kde.org/|{{Pkg|kaffeine}}}}<br />
* {{App|Parole|Modern media player based on the GStreamer framework.|http://goodies.xfce.org/projects/applications/parole/|{{Pkg|parole}}}}<br />
* {{App|Rage|Video and audio player written with Enlightenment Foundation Libraries with some extra bells and whistles.|http://www.enlightenment.org/p.php?p&#61;about/rage|{{AUR|rage}}}}<br />
* {{App|Snappy|Powerful media player with a minimalistic interface.|https://wiki.gnome.org/Apps/Snappy|{{Pkg|snappy-player}}}}<br />
* {{App|[[Wikipedia:GNOME Videos|GNOME Videos]]|Media player (audio and video) for the GNOME desktop that uses GStreamer. Part of {{Grp|gnome}}|https://wiki.gnome.org/Apps/Videos|{{Pkg|totem}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC media player]]|Middleweight video player with support for a wide variety of audio and video formats.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|Whaaw! Media Player|Lightweight GStreamer-based audio and video player that can serve as a good alternative to Totem for those who do not like all of those GNOME dependencies.|http://home.gna.org/whaawmp/|{{Pkg|whaawmp}}}}<br />
* {{App|Xnoise|GTK+ and GStreamer-based media player for both audio and video with "a slick GUI, great speed and lots of features." (development ceased)|http://www.xnoise-media-player.com/|{{Pkg|xnoise}}}}<br />
* {{App|QMPlay2|QMPlay2 is a QT based video player. It can play and stream all formats supported by ffmpeg and libmodplug. It has on integrated module system, which includes a Youtube browser.|3=http://qt-apps.org/content/show.php/QMPlay2?content=153339|4={{AUR|qmplay2}}}}<br />
* {{App|xt7-player-mpv|Audio/Video player with rich set of configurable options including filters and drivers, ladspa plugins support as well as library/playlist managment, YouTube, online radios, podcasts, DVB-T and more.|https://github.com/kokoko3k/xt7-player-mpv|{{AUR|xt7-player-mpv-git}}}}<br />
<br />
==== Subtitles ====<br />
<br />
* {{App|Gaupol|Full-featured subtitle editor.|http://home.gna.org/gaupol|{{Pkg|gaupol}}}}<br />
* {{App|Penguin Subtitle Player|Penguin Subtitle Player is an open-source, cross-platform standalone subtitle player, as an alternative to Greenfish Subtitle Player, SrtViewer (Mac), SRTPlayer, JustSubsPlayer and Free Subtitle Player.|https://github.com/carsonip/Penguin-Subtitle-Player|{{AUR|penguin-subtitle-player-git}}}}<br />
* {{App|subdl|Automatic subtitle downloader.|https://github.com/akexakex/subdl|{{Pkg|subdl}}}}<br />
* {{App|SubtitlesPrinter|Print subtitles above a X-screen, independently of the video player.|https://github.com/OlivierMarty/SubtitlesPrinter|{{AUR|subtitles-printer-git}}}}<br />
* {{App|Subtitle Composer|open-source Subtitle editor with Qt 5 based GUI supporting various formats, features different player backends, able to display wave form|https://github.com/maxrd2/subtitlecomposer|{{AUR|subtitlecomposer}}}}<br />
<br />
==== DVD ripping ====<br />
<br />
See [[Optical disc drive#DVD_2]].<br />
<br />
==== Video editors ====<br />
<br />
See also [[Wikipedia:Comparison of video editing software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-cli}}}}<br />
* {{App|[[FFmpeg]]|Complete, cross-platform solution to record, convert and stream audio and video.|http://ffmpeg.org/|{{Pkg|ffmpeg}}}}<br />
* {{App|HandBrake-CLI|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping.|http://handbrake.fr/|{{Pkg|handbrake-cli}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-gtk}} {{Pkg|avidemux-qt}}}}<br />
* {{App|[[Wikipedia:Cinelerra|Cinelerra (Community Version)]]|Professional video editing and compositing environment.|http://cinelerra.org/|{{Pkg|cinelerra-cv}}}}<br />
* {{App|HandBrake|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping. GTK+ version.|http://handbrake.fr/|{{Pkg|handbrake}}}}<br />
* {{App|[[Wikipedia:Kdenlive|Kdenlive]]|Non-linear video editor designed for basic to semi-professional work.|http://kdenlive.org/|{{Pkg|kdenlive}}}}<br />
* {{App|[[Wikipedia:Lightworks|Lightworks]]|A proprietary professional non-linear editing system for editing and mastering digital video in various formats.|http://www.lwks.com/|{{AUR|lwks}}}}<br />
* {{App|[[Wikipedia:LiVES|LiVES]]|Video editor and VJ (live performance) platform.| http://lives-video.com/ |{{AUR|lives}}}}<br />
* {{App|[[Wikipedia:OpenShot_Video_Editor|Open Shot]]|Non-linear video editor based on MLT framework.|http://www.openshotvideo.com/|{{Pkg|openshot}}}}<br />
* {{App|[[Wikipedia:Pitivi|PiTiVi]]|Video editor designed to be intuitive and integrate well in the GNOME desktop.|http://www.pitivi.org/ |{{Pkg|pitivi}}}}<br />
* {{App|[[Wikipedia:Shotcut|Shotcut]]|Shotcut is a free, open source, cross-platform video editor.|http://www.shotcut.org/ |{{AUR|shotcut-bin}}}}<br />
* {{App|Transmageddon|Simple python application for transcoding video into formats supported by GStreamer.|http://www.linuxrising.org/ |{{Pkg|transmageddon}}}}<br />
<br />
==== Screencast ====<br />
<br />
See also [[Wikipedia:Comparison of screencasting software]].<br />
<br />
Screencast utilities allow you to create a video of your desktop or individual windows.<br />
<br />
* {{App|byzanz|Simple screencast tool that produces GIF animations.|http://blogs.gnome.org/otte/2009/08/30/byzanz-0-2-0/|{{AUR|byzanz}}}}<br />
* {{App|glc|Screencast tool that can capture the sound and video from OpenGL applications, such as games, where regular X11 screencast tools produce choppy results.|https://github.com/nullkey/glc|{{AUR|glc}}{{Broken package link|{{aur-mirror|glc}}}}}}<br />
* {{App|Istanbul|Simple desktop session recorder that produces ogg videos.|https://wiki.gnome.org/Projects/Istanbul|{{AUR|istanbul}}}}<br />
* {{App|Kazam|Screencasting program with design in mind. Handles multiscreen setups.|https://launchpad.net/kazam|{{AUR|kazam}}}}<br />
* {{App|OBS|Free and open source software for video recording and live streaming.|https://obsproject.com/|{{Pkg|obs-studio}}}}<br />
* {{App|[[Wikipedia:RecordMyDesktop|RecordMyDesktop]]|An easy to use utility that records your desktop into the ogg format with a CLI, Qt or GTK+ interface.|http://recordmydesktop.sourceforge.net/|{{Pkg|recordmydesktop}} {{Pkg|gtk-recordmydesktop}} {{Pkg|qt-recordmydesktop}}}}<br />
* {{App|simplescreenrecorder|A feature-rich screen recorder written in C++/Qt4 that supports X11 and OpenGL.|http://www.maartenbaert.be/simplescreenrecorder/|{{Pkg|simplescreenrecorder}}}}<br />
* {{App|vokoscreen|Simple screencast tool, GUI ffmpeg.|http://www.kohaupt-online.de/hp|{{AUR|vokoscreen}}}}<br />
* {{App|[[Wikipedia:XVidCap|XVidCap]]|Application used for recording a screencast or digital recording of an X Window System screen output with an audio narration.|http://xvidcap.sourceforge.net/|{{AUR|xvidcap}}}}<br />
* {{App|FFcast|FFmpeg-based screencast tool written in Bash.|https://github.com/lolilolicon/FFcast|{{AUR|ffcast}}}}<br />
<br />
=== Optical media burning ===<br />
<br />
See [[Optical disc drive#Burning CD/DVD/BD with a GUI]].<br />
<br />
=== Podcasts ===<br />
<br />
see [[List of applications/Internet#Podcast_clients|Podcast clients]]<br />
<br />
=== Collection managers ===<br />
<br />
* {{App|[[Beets]]|Music library organizer, tagger and more.|http://beets.radbox.org/|{{Pkg|beets}}}}<br />
* {{App|Demlo|Batch music tagger, encoder, renamer and more.|http://ambrevar.bitbucket.org/demlo/|{{AUR|demlo}}}}<br />
* {{App|[[Wikipedia:GCstar|GCstar]]|GNOME application for organizing various collections (board games, comic books, movies, stamps, etc.).|http://www.gcstar.org/|{{Pkg|gcstar}}}}<br />
* {{App|[[Kodi]]|Application for organizing various collections and automatically retrieving info about them (video, music, photos).|https://kodi.tv/|{{Pkg|kodi}}}}<br />
* {{App|[[Wikipedia:Tellico|Tellico]]|KDE application for organizing various collections (books, video, music, coins, etc.).|http://tellico-project.org/|{{Pkg|tellico}}}}<br />
<br />
=== Lyrics fetchers ===<br />
<br />
* {{App|clyrics|An extensible lyrics fetcher, with daemon support for cmus and mocp.|http://beets.radbox.org/|{{AUR|clyrics}}}}</div>2419https://wiki.archlinux.org/index.php?title=List_of_applications/Multimedia&diff=441407List of applications/Multimedia2016-07-14T13:33:17Z<p>2419: /* Mobile phone managers */</p>
<hr />
<div><noinclude><br />
[[Category:Applications]]<br />
[[Category:Multimedia]]<br />
[[es:List of applications/Multimedia]]<br />
[[it:List of applications/Multimedia]]<br />
[[ja:アプリケーション一覧/マルチメディア]]<br />
[[ru:List of applications/Multimedia]]<br />
[[zh-cn:List of applications/Multimedia]]<br />
[[zh-tw:List of applications/Multimedia]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Multimedia ==<br />
<br />
=== Codecs ===<br />
<br />
See the main article: [[Codecs]].<br />
<br />
=== Image ===<br />
<br />
==== Image viewers ====<br />
<br />
See also [[Wikipedia:Comparison of image viewers]].<br />
<br />
===== Console =====<br />
<br />
* {{App|fbi|Image viewer for the linux framebuffer console.|https://www.kraxel.org/blog/linux/fbida/|{{Pkg|fbida}}}}<br />
* {{App|fbv|Very simple graphic file viewer for the framebuffer console.|http://s-tech.elsat.net.pl/fbv/|{{Pkg|fbv}}}}<br />
* {{App|fim|Highly customizable and scriptable framebuffer image viewer based on fbi.|http://www.nongnu.org/fbi-improved/|{{AUR|fim}}}}<br />
* {{App|jfbview|Framebuffer PDF and image viewer based on Imlib2. Features include Vim-like controls, rotation and zoom, zoom-to-fit, and fast multi-threaded rendering.|http://seasonofcode.com/pages/jfbview.html|{{AUR|jfbview}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Eye_of_GNOME|Eye of GNOME]]|Image viewing and cataloging program, which is a part of the GNOME desktop environment.|https://wiki.gnome.org/Apps/EyeOfGnome|{{Pkg|eog}}}}<br />
* {{App|Eye of MATE|Simple graphics viewer for the MATE desktop.|https://github.com/mate-desktop/eom|{{Pkg|eom}}}}<br />
* {{App|[[feh]]|Fast, lightweight image viewer that uses imlib2.|http://feh.finalrewind.org|{{Pkg|feh}}}}<br />
* {{App|meh|meh is a small, simple, super fast image viewer using raw XLib.|http://www.johnhawthorn.com/meh/|{{AUR|meh-git}}}}<br />
* {{App|GalaPix|OpenGL-based image viewer for simultaneously viewing and zooming large collections of image files,|http://code.google.com/p/galapix/|{{AUR|galapix}}}}<br />
* {{App|[[Wikipedia:Geeqie|Geeqie]]|Image browser and viewer (fork of GQview) that adds additional functionality such as support for RAW files.|http://geeqie.sourceforge.net/|{{Pkg|geeqie}}}}<br />
* {{App|Gimmage|Gtkmm image viewer.|http://gimmage.berlios.de/|{{Pkg|gimmage}}}}<br />
* {{App|GPicView|Simple and fast image viewer for X, which is part of the [[LXDE]] desktop.|http://lxde.sourceforge.net/gpicview/|{{Pkg|gpicview}}}}<br />
* {{App|[[Wikipedia:GQview|GQview]]|Image browser that features single click access to view images and move around the directory tree|http://gqview.sourceforge.net/|{{AUR|gqview-devel}}}}<br />
* {{App|[[Wikipedia:GThumb|gThumb]]|Image viewer for the GNOME desktop.|https://wiki.gnome.org/Apps/gthumb|{{Pkg|gthumb}}}}<br />
* {{App|[[Wikipedia:Gwenview|Gwenview]]|Fast and easy to use image viewer for the KDE desktop.|http://gwenview.sourceforge.net/|{{Pkg|gwenview}}}}<br />
* {{App|imv|Lightweight image viewer with support for Wayland and animated GIFs.|https://www.github.com/eXeC64/imv/|{{AUR|imv}}}}<br />
* {{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail panel.|http://mirageiv.berlios.de|{{Pkg|mirage}}}}<br />
* {{App|nomacs|Free (GPLv3) Qt image viewer for many operating systems. It is feature-rich but starts fast and can be configured to show additional widgets or only the image.|http://www.nomacs.org/|{{Pkg|nomacs}}}}<br />
* {{App|Phototonic|Fast and functional image viewer and organizer (Qt).| https://github.com/oferkv/phototonic|{{AUR|phototonic}}}}<br />
* {{App|PhotoQt|Fast and highly configurable image viewer with a simple and nice interface.|http://photoqt.org/|{{AUR|photoqt}}}}<br />
* {{App|[[Wikipedia:Picasa|Picasa]]|Image organizer and viewer from Google that has editing capabilities and integration with the photo-sharing website.|http://picasa.google.com/|{{AUR?|picasa}}}}<br />
* {{App|Quick Image Viewer|Very small and fast image viewer based on GTK+ and imlib2.|http://spiegl.de/qiv/|{{Pkg|qiv}}}}<br />
* {{App|Ristretto|Fast and lightweight image viewer for the Xfce desktop environment.|http://goodies.xfce.org/projects/applications/ristretto|{{Pkg|ristretto}}}}<br />
* {{App|Shotwell|A digital photo organizer designed for the GNOME desktop environment|https://wiki.gnome.org/Apps/Shotwell|{{Pkg|shotwell}}}}<br />
* {{App|[[sxiv]]|Simple image viewer based on imlib2 that works well with tiling window managers.|https://github.com/muennich/sxiv|{{Pkg|sxiv}}}}<br />
* {{App|Viewnior|Minimalistic GTK+ image viewer featuring support for flipping, rotating, animations and configurable mouse actions.|http://siyanpanayotov.com/project/viewnior/|{{Pkg|viewnior}}}}<br />
* {{App|Xloadimage|Classic X image viewer.|http://sioseis.ucsd.edu/xloadimage.html|{{Pkg|xloadimage}}}}<br />
* {{App|[[Wikipedia:XnView|XnView MP]]|Efficient image viewer, browser and converter.|http://www.xnview.com/en/index.html|{{AUR|xnviewmp}}}}<br />
* {{App|[[Wikipedia:Xv_(software)|xv]]|Shareware program written by John Bradley to display and modify digital images under the X Window System.|http://www.trilon.com/xv/|{{Pkg|xv}}}}<br />
<br />
==== Graphics and image manipulation ====<br />
<br />
===== Raster editors =====<br />
<br />
See also [[Wikipedia:Comparison of raster graphics editors]].<br />
<br />
* {{App|AfterShot Pro|Professional workflow and RAW conversion. Successor of Bibble Pro.|http://www.aftershotpro.com/en/products/aftershot-pro/|{{AUR|aftershotpro}}}}<br />
* {{App|AzPainter|A Painting software. |http://azpainter.sourceforge.jp/|{{AUR|azpainter}}}}<br />
* {{App|[[Wikipedia:darktable|darktable]]|Photography workflow and RAW development application.|http://www.darktable.org//|{{Pkg|darktable}}}}<br />
* {{App|dcraw|Converts many camera RAW formats.|http://www.cybercom.net/~dcoffin/dcraw/|{{Pkg|dcraw}}}}<br />
* {{App|[[Wikipedia:digiKam|digiKam]]|KDE-based image organizer with built-in editing features via a plugin architecture. digiKam asserts it is more full featured than similar applications with a larger set of image manipulation features including RAW image import and manipulation.|http://www.digikam.org/|{{Pkg|digikam}}}}<br />
* {{App|[[GIMP]]|Image editing suite in the vein of proprietary editors such as [[Wikipedia:Adobe Photoshop|Adobe Photoshop]]. GIMP ([[GNU]] Image Manipulation Program) has been started in the mid 1990s and has acquired a large number of [[CMYK support in The GIMP|plugins]] and additional tools.|http://www.gimp.org/|{{Pkg|gimp}}}}<br />
* {{App|[[Wikipedia:GNU Paint|Gpaint]]|[[Wikipedia:PC_Paintbrush|Paintbrush]] clone for GNOME.|http://www.gnu.org/software/gpaint/|{{AUR|gpaint}}}}<br />
* {{App|[[Wikipedia:GraphicsMagick|GraphicsMagick]]|Fork of ImageMagick designed to have API and command-line stability. It also supports multi-CPU for enhanced performance and thus is used by some large commercial sites (Flickr, etsy) for its performance.|http://www.graphicsmagick.org/|{{Pkg|graphicsmagick}}}}<br />
* {{App|[[Wikipedia:ImageMagick|ImageMagick]]|Command-line image manipulation program. It is known for its accurate format conversions with support for over 100 formats. Its API enables it to be scripted and it is usually used as a backend processor.|http://www.imagemagick.org/script/index.php|{{Pkg|imagemagick}}}}<br />
* {{App|[[Wikipedia:KolourPaint|KolourPaint]]|Free raster graphics editor for KDE, similar to Microsoft's Paint application before Windows 7, but with some additional features such as support for transparency. Part of {{Grp|kde-applications}} and {{Grp|kdegraphics}} groups.|http://kolourpaint.org|{{Pkg|kdegraphics-kolourpaint}}}}<br />
* {{App|[[Wikipedia:Krita|Krita]]|Digital painting and illustration software included based on the KDE platform and Calligra libraries. Part of {{Grp|calligra}} group.|http://krita.org/|{{Pkg|calligra-krita}}{{Broken package link|replaced by {{Pkg|krita}}}}}}<br />
* {{App|Luminance HDR|Open source graphical user interface application that aims to provide a workflow for HDR imaging.|http://qtpfsgui.sourceforge.net/|{{Pkg|luminancehdr}}}}<br />
* {{App|mtPaint|Graphics editing program geared towards creating indexed palette images and pixel art.|http://mtpaint.sourceforge.net/|{{Pkg|mtpaint}}}}<br />
* {{App|[[Wikipedia:MyPaint|MyPaint]]|Free software graphics application for digital painters.|http://mypaint.org|{{Pkg|mypaint}}}}<br />
* {{App|[[Wikipedia:Pinta (software)|Pinta]]|Drawing and editing program modeled after [[Wikipedia:Paint.net|Paint.NET]]. Its goal is to provide a simplified alternative to GIMP for casual users.|http://pinta-project.com/|{{Pkg|pinta}}}}<br />
* {{App|[[Wikipedia:Shotwell_(software)|Shotwell]]|Image organizer with a small set of image manipulation features (rotate, crop, color adjust, and red eye removal). It can import photos directly from digital cameras and export them to social media sites (Facebook, Flickr, Picasa Web Albums, etc.).|http://yorba.org/shotwell/|{{Pkg|shotwell}}}}<br />
* {{App|[[Wikipedia:XPaint|XPaint]]|Color image editing tool which features most standard paint program options.|http://sourceforge.net/projects/sf-xpaint/|{{AUR|xpaint}}}}<br />
<br />
===== Vector graphics - illustration =====<br />
<br />
See also [[Wikipedia:Comparison of vector graphics editors]].<br />
<br />
* {{App|[[Wikipedia:Asymptote_(vector_graphics_language)|Asymptote]]|A descriptive vector graphics language (like PGF/TikZ and Metapost) with a C-like syntax and LaTeX support.|http://asymptote.sourceforge.net|{{Pkg|asymptote}}}}<br />
* {{App|[[Wikipedia:Dia_(software)|Dia]]|GTK+-based diagram creation program.|https://wiki.gnome.org/Apps/Dia|{{Pkg|dia}}}}<br />
* {{App|[[Wikipedia:Graphviz|Graphviz]]|Set of tools for drawing graphs in the descriptive DOT language.|http://www.graphviz.org|{{Pkg|graphviz}}}}<br />
* {{App|[[Wikipedia:Inkscape|Inkscape]]|Vector graphics editor, with capabilities similar to [[Wikipedia:Adobe Illustrator|Illustrator]], [[Wikipedia:CorelDRAW|CorelDraw]], or [[Wikipedia:Xara X|Xara X]], using the SVG (Scalable Vector Graphics) file format. Inkscape supports many advanced SVG features (markers, clones, alpha blending, etc.) and great care is taken in designing a streamlined interface. It is very easy to edit nodes, perform complex path operations, trace bitmaps and much more. It's developers also aim to maintain a thriving user and developer community by using open, community-oriented development.|http://inkscape.org/|{{Pkg|inkscape}}}}<br />
* {{App|[[Wikipedia:Karbon (software)|Karbon]]|Vector graphics editor, part of the Calligra Suite. Part of {{Grp|calligra}} group.|http://www.calligra-suite.org/karbon/|{{Pkg|calligra-karbon}}}}<br />
* {{App|[[Wikipedia:Pencil2D|Pencil Project]]|An open-source GUI prototyping and mockup tool.|http://pencil.evolus.vn/|{{AUR|pencil}}}}<br />
* {{App|qasm2circ|Quantum circuit generator for latex|http://www.media.mit.edu/quanta/qasm2circ/|{{AUR|qasm2circ}}}}<br />
* {{App|[[Wikipedia:SK1_(program)|sK1]]|Replacement for Adobe Illustrator or CorelDraw, oriented for "prepress ready" PostScript & PDF output.|http://sk1project.org/|{{Pkg|sk1}}}}<br />
* {{App|[[Wikipedia:Xara_Xtreme_LX|Xara LX]]|Advanced vector graphics program, the open source version of the commercial Xara X.|http://www.xaraxtreme.org/|{{AUR|xaralx}}}}<br />
* {{App|[[Wikipedia:yEd|yEd]]|General-purpose diagramming program for flowcharts, network diagrams, UML diagrams, BPMN diagrams, mind maps, organization charts, and Entity Relationship diagrams.|http://www.yworks.com/en/products_yed_about.html|{{AUR|yed}}}}<br />
<br />
===== Vector graphics - CAD =====<br />
<br />
See also [[Wikipedia:List of computer-aided design editors]].<br />
<br />
* {{App|[[Wikipedia:BRL-CAD|BRL-CAD]]|Constructive solid geometry (CSG) solid modeling computer-aided design (CAD) system that includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, scripting, image-processing and signal-processing tools.|http://brlcad.org/|{{AUR|brlcad}}}}<br />
* {{App|DraftSight|Dassault Systemes' freeware 2D CAD application. DraftSight allows users to access DWG/DXF files, regardless of which CAD software was originally used to create them.|http://www.3ds.com/products-services/draftsight/overview/|{{AUR|draftsight}}}}<br />
* {{App|[[Wikipedia:FreeCAD|FreeCAD]]|CAD/CAE program, based on OpenCascade, Qt and Python with features such as macro recording, workbenches and the ability to run as server.|http://sourceforge.net/projects/free-cad/|{{Pkg|freecad}}}}<br />
* {{App|LeoCAD|CAD program for creating virtual LEGO models. It has an easy to use interface and currently includes over 6000 different pieces created by the LDraw community.|http://leocad.org|{{AUR|leocad}}}}<br />
* {{App|[[Wikipedia:LibreCAD|LibreCAD]]|Powerful 2D CAD application based on Qt. It has been forked from QCad Community Edition.|http://www.librecad.org/|{{Pkg|librecad}}}}<br />
* {{App|[[Wikipedia:OpenSCAD|OpenSCAD]]|Open source 2D/3D CAD using programmers approach.|http://www.openscad.org|{{Pkg|openscad}} {{AUR|openscad-git}}}}<br />
* {{App|[[Wikipedia:QCad|QCAD]]|Powerful 2D CAD application that began in 1999. QCaD includes DFX standard file format and supports HPGL format.|http://www.qcad.org/|{{Pkg|qcad}}}}<br />
<br />
===== 3D modeling/rendering =====<br />
<br />
See also [[Wikipedia:Comparison of 3D computer graphics software]].<br />
<br />
* {{App|[[Wikipedia:Art_of_Illusion|Art of Illusion]]|3D modeling and rendering studio written in Java.|http://www.artofillusion.org/|{{AUR|aoi}}}}<br />
* {{App|[[Wikipedia:Blender_(software)|Blender]]|fully integrated 3D graphics creation suite capable of 3D modeling, texturing, and animation, among other things.|http://www.blender.org/|{{Pkg|blender}}}}<br />
* {{App|[[Wikipedia:MakeHuman|MakeHuman™]]|Parametrical modeling program for creating human bodies.|http://www.makehuman.org/|{{AUR|makehuman}}}}<br />
* {{App|[[Wikipedia:POV-Ray|POV-Ray]]|Script-based raytracer for creating 3D graphics.|http://www.povray.org/|{{Pkg|povray}}}}<br />
* {{App|[[Wikipedia:Wings3d|Wings 3D]]|Advanced subdivision modeler that is both powerful and easy to use.|http://www.wings3d.com/|{{Pkg|wings3d}}}}<br />
<br />
==== Screen capture ====<br />
<br />
See also: [[Taking a screenshot]].<br />
<br />
=== Audio ===<br />
<br />
==== Audio systems ====<br />
<br />
See the main article: [[Sound system]].<br />
<br />
See also [[Wikipedia:Sound server]].<br />
<br />
* {{App|wineasio|Provides an ASIO to JACK driver for ''wine''. ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.|http://sourceforge.net/projects/wineasio/|{{AUR|wineasio}}}}<br />
<br />
==== Audio players ====<br />
<br />
See also [[Wikipedia:Comparison of audio player software]].<br />
<br />
===== Music player daemons and clients =====<br />
<br />
See also: [[Music_Player_Daemon#Clients|List of MPD clients]]<br />
<br />
* {{App|[[Music Player Daemon]]|Lightweight and scalable choice for music management.|http://www.musicpd.org/|{{Pkg|mpd}}}}<br />
* {{App|[[Wikipedia:XMMS2|XMMS2]]|Complete rewrite of the popular music player.|https://xmms2.org|{{Pkg|xmms2}}}}<br />
<br />
===== Command-line players =====<br />
<br />
* {{App|[[cmus]]|Very feature-rich ncurses-based music player.|http://cmus.github.io/|{{Pkg|cmus}}}}<br />
* {{App|Cplay|Curses front-end for various audio players (ogg123, mpg123, mpg321, splay, madplay, and mikmod, xmp, and sox).|http://directory.fsf.org/wiki/Cplay|{{AUR|cplay}}}}<br />
* {{App|Herrie|Minimalistic console-based music player with native AudioScrobbler support.|http://herrie.info/|{{AUR|herrie}}}}<br />
* {{App|[[Moc|MOC]]|Ncurses console audio player with support for the MP3, OGG, and WAV formats.|http://moc.daper.net/|{{Pkg|moc}}}}<br />
* {{App|MPFC|Gstreamer-based audio player with curses interface.|http://code.google.com/p/mpfc/|{{AUR|mpfc}}}}<br />
* {{App|[[Wikipedia:Mpg123|mpg123]]|Fast free MP3 console audio player for Linux, FreeBSD, Solaris, HP-UX and nearly all other UNIX systems (also decodes MP1 and MP2 files).|http://www.mpg123.org/|{{Pkg|mpg123}}}}<br />
* {{App|mps-youtube|Terminal based YouTube jukebox with playlist management. Plays audio/video through mplayer/mpv.|https://github.com/mps-youtube/mps-youtube|{{Pkg|mps-youtube}}}}<br />
* {{App|pancake|Cli pandora client built with urwid.|https://github.com/osum4est/pancake/}}<br />
* {{App|[[pianobar]]|Console-based frontend for Pandora.|http://6xq.net/projects/pianobar/|{{Pkg|pianobar}}}}<br />
* {{App|shell-fm|Console-based player for the streams provided by [http://www.last.fm/ last.fm].|https://github.com/jkramer/shell-fm/|{{AUR|shell-fm}}{{Broken package link|{{aur-mirror|shell-fm}}}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player with ncurses interface module, and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|whistle|a curses-based commandline audio player.|https://github.com/ap0calypse/whistle/|{{AUR|whistle-git}}}}<br />
<br />
===== GUI players =====<br />
<br />
* {{App|[[Amarok]]|Mature Qt-based player known for its plethora of features.|http://amarok.kde.org/|{{Pkg|amarok}}}}<br />
* {{App|[[Wikipedia:aTunes|aTunes]]|Audio player written in Java.|http://www.atunes.org/|{{AUR|atunes}}{{Broken package link|{{aur-mirror|atunes}}}}}}<br />
* {{App|[[Audacious]]|[[Wikipedia:Winamp|Winamp]] clone like Beep and old XMMS versions.|http://audacious-media-player.org/|{{Pkg|audacious}}}}<br />
* {{App|[[Wikipedia:Banshee (media player)|Banshee]]|[[Wikipedia:iTunes|iTunes]] clone, built with GTK+ and [[Mono]], feature-rich and more actively developed.|http://banshee.fm/|{{Pkg|banshee}}}}<br />
* {{App|[[Wikipedia:Clementine_(software)|Clementine]]|Amarok 1.4 clone, ported to Qt 4.|http://www.clementine-player.org/|{{Pkg|clementine}}}}<br />
* {{App|Cuberok|Music player and collection manager with a lightweight interface.|http://code.google.com/p/cuberok/|{{AUR|cuberok}}}}<br />
* {{App|DeaDBeeF|Light and fast music player with many features, no GNOME or KDE dependencies, supports console-only, as well as a GTK+ GUI, comes with many plugins, and has a metadata editor.|http://deadbeef.sourceforge.net/|{{Pkg|deadbeef}}}}<br />
* {{App|[[Exaile]]|GTK+ clone of Amarok.|http://www.exaile.org/|{{AUR|exaile}}}}<br />
* {{App|gmusicbrowser|Open-source jukebox for large collections of MP3/OGG/FLAC files.|http://gmusicbrowser.org/|{{AUR|gmusicbrowser}}}}<br />
* {{App|GNOME Music|Music is the new GNOME music playing application. It aims to combine an elegant and immersive browsing experience with simple and straightforward controls.|https://wiki.gnome.org/Apps/Music|{{Pkg|gnome-music}}}}<br />
* {{App|Goggles Music Manager|Music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support. Uses the [[Wikipedia:Fox toolkit|Fox toolkit]].|http://gogglesmm.github.io/|{{Pkg|gogglesmm}}}}<br />
* {{App|Guayadeque|Full featured media player that can easily manage large collections and uses the GStreamer media framework.|http://guayadeque.org/|{{AUR|guayadeque}}}}<br />
* {{App|[[Wikipedia:JuK|JuK]]|JuK is an audio jukebox application, supporting collections of MP3, Ogg Vorbis, and FLAC audio files.|https://www.kde.org/applications/multimedia/juk/|{{Pkg|kdemultimedia-juk}}}}<br />
* {{App|Listen|Listen is a Music player and management for GNOME written in python.|https://launchpad.net/listen|{{AUR|listen}}}}<br />
* {{App|Lollypop|A GNOME music player.|https://gnumdk.github.io/lollypop-web/|{{Pkg|lollypop}}}}<br />
* {{App|LXMusic|A minimalist xmms2-based music player.|http://wiki.lxde.org/en/LXMusic|{{Pkg|lxmusic}}}}<br />
* {{App|Miam-player|Cross-platform open source music player.|http://miam-player.org/|{{AUR|miam-player}}}}<br />
* {{App|Musique|Just another music player, only better.|http://flavio.tordini.org/musique|{{AUR|musique}}}}<br />
* {{App|[[Wikipedia:Nightingale (software)|Nightingale]]|Open source clone of iTunes-based on [[Wikipedia:Songbird (software)|Songbird]], that uses Mozilla technologies and the GStreamer framework.|http://getnightingale.com/|{{AUR|nightingale-git}}}}<br />
* {{App|Noise|Simple, fast, and good looking music player.|https://launchpad.net/noise|{{Pkg|noise-player}}}}<br />
* {{App|Nuvola Player|Integrated Google Music, 8tracks and Hype Machine player.|http://nuvolaplayer.fenryxo.cz/|{{AUR|nuvolaplayer}}}}<br />
* {{App|Potamus|Lightweight, intuitive GTK+ audio player with an emphasis on high audio quality.|http://offog.org/code/potamus.html|{{AUR|potamus}}{{Broken package link|{{aur-mirror|potamus}}}}}}<br />
* {{App|Pragha|GTK+ music manager. (fork of the Consonance Music Manager)|https://pragha-music-player.github.io/|{{Pkg|pragha}}}}<br />
* {{App|Qmmp|Qt-based multimedia player with a user interface that is similar to Winamp or XMMS.|http://qmmp.ylsoftware.com/|{{Pkg|qmmp}}}}<br />
* {{App|[[Wikipedia:Quod Libet (software)|Quod Libet]]|Audio player written with PyGTK and GStreamer with support for regular expressions in playlists.|http://code.google.com/p/quodlibet/|{{Pkg|quodlibet}}}}<br />
* {{App|[[Wikipedia:Rhythmbox|Rhythmbox]]|GTK+ clone of iTunes, used by default in GNOME.|https://wiki.gnome.org/Apps/Rhythmbox|{{Pkg|rhythmbox}}}}<br />
* {{App|[[Spotify]]|Proprietary music streaming service. It supports local playback and streaming from Spotify's vast library (requires a free account).|http://www.spotify.com/|{{AUR|spotify}}}}<br />
* {{App|[[SpotCommander]]|A remote control for Spotify, optimized for mobile devices. It works on any device with a modern browser, and it's free and open source.|http://olejon.github.io/spotcommander/|{{AUR|spotcommander}}}}<br />
* {{App|Tomahawk|Music player application written in C++/Qt. It decouples the name of the song from the source it was shared from - and fulfills the request using all of your available sources.|http://www.tomahawk-player.org/|{{AUR|tomahawk}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|[[wikipedia:XMMS|XMMS]]|Skinnable GTK+ standalone media player similar to Winamp.|http://legacy.xmms2.org/|{{AUR|xmms}}}}<br />
<br />
==== Volume managers ====<br />
<br />
* {{App|GVolWheel|An audio mixer which lets you control the volume through a tray icon.|http://sourceforge.net/projects/gvolwheel/|{{AUR|gvolwheel}}}}<br />
* {{App|GVTray|A master volume mixer for the system tray.|http://code.google.com/p/gtk-tray-utils/|{{AUR|gvtray}}{{Broken package link|{{aur-mirror|gvtray}}}}}}<br />
*{{App|pa-applet|PulseAudio system tray applet with volume bar.|https://github.com/fernandotcl/pa-applet|{{Aur|pa-applet-git}}}}<br />
* {{App|PNMixer|A fork of Obmixer. It has many new features such as ALSA channel selection, connect/disconnect detection, shortcuts, etc.|https://github.com/nicklan/pnmixer/wiki|{{AUR|pnmixer}}}}<br />
*{{App|Volctl|Per-application volume control for GNU/Linux desktops.|https://buzz.github.io/volctl/|{{Aur|volctl}}}}<br />
*{{App|[[Volnoti]]|A lightweight volume notification daemon for GNU/Linux and other POSIX operating systems.|https://github.com/davidbrazdil/volnoti|{{Aur|volnoti}}}}<br />
* {{App|Volti|A GTK application for controlling audio volume from system tray with an internal mixer and support for multimedia keys that uses only ALSA.|http://code.google.com/p/volti/|{{AUR|volti}}}}<br />
* {{App|VolumeIcon|Another volume control for your system tray with channel selection, themes and an external mixer.|http://softwarebakery.com/maato/volumeicon.html|{{Pkg|volumeicon}}}}<br />
* {{App|VolWheel|A little application which lets you control the sound volume easily through a tray icon you can scroll on.|http://oliwer.net/b/volwheel.html|{{Pkg|volwheel}}}}<br />
<br />
==== CD ripping ====<br />
<br />
See [[Optical disc drive#CD]].<br />
<br />
==== Visualization ====<br />
<br />
* {{App|[[Wikipedia:MilkDrop|ProjectM]]|Music visualizer which uses 3D accelerated iterative image-based rendering.|http://projectm.sourceforge.net/|{{Pkg|projectm}}}}<br />
* {{App|[[Wikipedia:VSXu|VSXu]]|Free to use program that lets you create and perform real-time audio visual presets.|http://www.vsxu.com/|{{AUR|vsxu}}}}<br />
<br />
==== Audio tag editors ====<br />
<br />
* {{App|Audio Tag Tool|Tool to edit tags in MP3 and Ogg Vorbis files.|http://tagtool.sourceforge.net/|{{AUR|tagtool}}}}<br />
* {{App|Cowbell|Elegant music organizer that supports many audio formats including MP3, Ogg/FLAC, and MusePack.|http://more-cowbell.org/|{{AUR|cowbell}}{{Broken package link|{{aur-mirror|cowbell}}}}}}<br />
* {{App|[[Wikipedia:EasyTag|EasyTag]]|Utility for viewing, editing and writing ID3 tags of music files, supports many audio formats.|http://easytag.sourceforge.net/|{{Pkg|easytag}}}}<br />
* {{App|[[Wikipedia:Ex Falso (software)|Ex Falso]]|Cross-platform free and open source audio tag editor and library organizer.|http://code.google.com/p/quodlibet/|{{AUR|exfalso}}}}<br />
* {{App|ID3 Mass Tagger|Command-line utility to edit ID3 1.x and 2.x tags.|http://squell.github.io/id3/|{{Pkg|id3}}}}<br />
* {{App|Kid3|MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files tag editor.|http://kid3.sourceforge.net/|{{Pkg|kid3}}}}<br />
* {{App|MP3Info|MP3 technical info viewer and ID3 1.x tag editor.|http://ibiblio.org/mp3info/|{{Pkg|mp3info}}}}<br />
* {{App|[[Wikipedia:MusicBrainz Picard|MusicBrainz Picard]]|Cross-platform audio tag editor written in Python (the official MusicBrainz tagger).|http://musicbrainz.org/doc/MusicBrainz_Picard|{{Pkg|picard}}}}<br />
* {{App|[[Wikipedia:Puddletag|Puddletag]]|Replacement for the famous MP3tag for Windows.|http://puddletag.sourceforge.net/|{{Pkg|puddletag}}}}<br />
* {{App|taffy|Simple command-line tag editor for many audio formats.|http://github.com/jangler/taffy|{{AUR|taffy}}}}<br />
* {{App|Tag Editor|A tag editor with Qt 5 GUI and command-line interface supporting MP4/AAC (iTunes), ID3v1, ID3v2, Ogg/Vorbis and Matroska.|http://github.com/Martchus/tageditor|{{AUR|tageditor}}}}<br />
* {{App|Qoobar|Universal QT-based audio tagger (specialized for classical music)|http://qoobar.sourceforge.net/en/index.htm|{{AUR|qoobar}}}}<br />
<br />
==== Sound editing ====<br />
<br />
* {{App|[[Wikipedia:Ardour (software)|Ardour]]|Multichannel hard disk recorder and digital audio workstation.|http://ardour.org/|{{Pkg|ardour}}}}<br />
* {{App|[[Wikipedia:Audacity (audio editor)|Audacity]]|Program that lets you manipulate digital audio waveforms.|http://audacity.sourceforge.net/|{{Pkg|audacity}}}}<br />
* {{App|Bitwig Studio|Proprietary professional digital audio workstation.|http://bitwig.com/|{{AUR|bitwig-studio-demo}}{{Broken package link|{{aur-mirror|bitwig-studio-demo}}}}}}<br />
* {{App|GNOME Sound Recorder|The Sound Recorder application enables you to record and play .flac, .ogg (OGG audio, or .oga), and .wav sound files.|https://wiki.gnome.org/Design/Apps/SoundRecorder|{{Pkg|gnome-sound-recorder}}}}<br />
* {{App|[[Wikipedia:Jokosher|Jokosher]]|Non-linear multi-track digital audio editor that is being developed in Python, using the GTK+ interface and GStreamer as an audio back-end.|https://launchpad.net/jokosher/|{{AUR|jokosher}}}}<br />
* {{App|KWave|Sound editor for KDE.|http://kwave.sourceforge.net/|{{AUR|kwave-git}}}}<br />
* {{App|[[LMMS]]|The Linux MultiMedia Studio. Free cross-platform software which allows you to produce music with your computer.|http://lmms.sourceforge.net/|{{Pkg|lmms}}}}<br />
* {{App|[[Wikipedia:Qtractor|Qtractor]]|Qt-based hard disk recorder and digital audio workstation application that aims to provide digital audio workstation software simple enough for the average home user, and yet powerful enough for the professional user.|http://qtractor.sourceforge.net/qtractor-index.html|{{Pkg|qtractor}}}}<br />
* {{App|[[Wikipedia:Rosegarden|Rosegarden]]|Digital audio workstation program developed with ALSA and Qt that acts as an audio and MIDI sequencer, scorewriter and musical composition and editing tool.|http://www.rosegardenmusic.com/|{{Pkg|rosegarden}}}}<br />
* {{App|XCFA|Tool to extract the contens of audio CDs and convert them to various formats.|http://www.xcfa.tuxfamily.org/|{{AUR|xcfa}}}}<br />
<br />
=== Mobile phone managers ===<br />
<br />
* {{App|[[Wikipedia:Gnokii|gnokii]]|Tools and user space driver for use with mobile phones[[Wikipedia:Gnokii|gnokii]].|http://www.gnokii.org/|{{Pkg|gnokii}}}}<br />
* {{App|GNOME Phone Manager|Control your mobile phone from your GNOME desktop.|https://wiki.gnome.org/PhoneManager|{{Pkg|gnome-phone-manager}}}}<br />
* {{App|KDE Connect|A project that aims to communicate all your devices.|http://community.kde.org/KDEConnect|{{Pkg|kdeconnect}}}}<br />
* {{App|Moto4Lin|File manager and seem editor for Motorola P2K phones (like C380/C650).|http://sourceforge.net/projects/moto4lin/|{{AUR|moto4lin}}{{Broken package link|{{aur-mirror|moto4lin}}}}}}<br />
<br />
=== Video ===<br />
<br />
==== Video players ====<br />
<br />
See also [[Wikipedia:Comparison of video player software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[MPlayer]]|Video player that supports a complete and versatile array of video and audio formats.|http://www.mplayerhq.hu/design7/news.html|{{Pkg|mplayer}} (See also a very similar fork: {{AUR|mplayer2}}}})<br />
* {{App|[[mpv]]|Movie player based on MPlayer and mplayer2.|http://mpv.io|{{Pkg|mpv}} {{AUR|mpv-git}}}}<br />
* {{App|[[Wikipedia:xine|xine-ui]]|Free multimedia player.|http://www.xine-project.org|{{Pkg|xine-ui}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC ncurses]]|Command-line version of the famous video player that can play smoothly high definition videos in the TTY.|https://www.videolan.org/vlc/|{{AUR|vlc-nox}}}}<br />
<br />
===== Graphical =====<br />
<br />
See also: [[MPlayer#Frontends/GUIs]], [[mpv#Front ends]].<br />
<br />
* {{App|[[Wikipedia:Kdemultimedia#Dragon Player|Dragon Player]]|Simple video player for KDE. Part of the {{Grp|kdemultimedia}} group.|http://www.kde.org/applications/multimedia/dragonplayer/|{{Pkg|dragon}}}}<br />
* {{App|[[Wikipedia:Kaffeine|Kaffeine]]|Very versatile KDE media player that, by default, utilizes Xine as its backend and has excellent support of digital TV (DVB).|http://kaffeine.kde.org/|{{Pkg|kaffeine}}}}<br />
* {{App|Parole|Modern media player based on the GStreamer framework.|http://goodies.xfce.org/projects/applications/parole/|{{Pkg|parole}}}}<br />
* {{App|Rage|Video and audio player written with Enlightenment Foundation Libraries with some extra bells and whistles.|http://www.enlightenment.org/p.php?p&#61;about/rage|{{AUR|rage}}}}<br />
* {{App|Snappy|Powerful media player with a minimalistic interface.|https://wiki.gnome.org/Apps/Snappy|{{Pkg|snappy-player}}}}<br />
* {{App|[[Wikipedia:GNOME Videos|GNOME Videos]]|Media player (audio and video) for the GNOME desktop that uses GStreamer. Part of {{Grp|gnome}}|https://wiki.gnome.org/Apps/Videos|{{Pkg|totem}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC media player]]|Middleweight video player with support for a wide variety of audio and video formats.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|Whaaw! Media Player|Lightweight GStreamer-based audio and video player that can serve as a good alternative to Totem for those who do not like all of those GNOME dependencies.|http://home.gna.org/whaawmp/|{{Pkg|whaawmp}}}}<br />
* {{App|Xnoise|GTK+ and GStreamer-based media player for both audio and video with "a slick GUI, great speed and lots of features." (development ceased)|http://www.xnoise-media-player.com/|{{Pkg|xnoise}}}}<br />
* {{App|QMPlay2|QMPlay2 is a QT based video player. It can play and stream all formats supported by ffmpeg and libmodplug. It has on integrated module system, which includes a Youtube browser.|3=http://qt-apps.org/content/show.php/QMPlay2?content=153339|4={{AUR|qmplay2}}}}<br />
* {{App|xt7-player-mpv|Audio/Video player with rich set of configurable options including filters and drivers, ladspa plugins support as well as library/playlist managment, YouTube, online radios, podcasts, DVB-T and more.|https://github.com/kokoko3k/xt7-player-mpv|{{AUR|xt7-player-mpv-git}}}}<br />
<br />
==== Subtitles ====<br />
<br />
* {{App|Gaupol|Full-featured subtitle editor.|http://home.gna.org/gaupol|{{Pkg|gaupol}}}}<br />
* {{App|Penguin Subtitle Player|Penguin Subtitle Player is an open-source, cross-platform standalone subtitle player, as an alternative to Greenfish Subtitle Player, SrtViewer (Mac), SRTPlayer, JustSubsPlayer and Free Subtitle Player.|https://github.com/carsonip/Penguin-Subtitle-Player|{{AUR|penguin-subtitle-player-git}}}}<br />
* {{App|subdl|Automatic subtitle downloader.|https://github.com/akexakex/subdl|{{Pkg|subdl}}}}<br />
* {{App|SubtitlesPrinter|Print subtitles above a X-screen, independently of the video player.|https://github.com/OlivierMarty/SubtitlesPrinter|{{AUR|subtitles-printer-git}}}}<br />
* {{App|Subtitle Composer|open-source Subtitle editor with Qt 5 based GUI supporting various formats, features different player backends, able to display wave form|https://github.com/maxrd2/subtitlecomposer|{{AUR|subtitlecomposer}}}}<br />
<br />
==== DVD ripping ====<br />
<br />
See [[Optical disc drive#DVD_2]].<br />
<br />
==== Video editors ====<br />
<br />
See also [[Wikipedia:Comparison of video editing software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-cli}}}}<br />
* {{App|[[FFmpeg]]|Complete, cross-platform solution to record, convert and stream audio and video.|http://ffmpeg.org/|{{Pkg|ffmpeg}}}}<br />
* {{App|HandBrake-CLI|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping.|http://handbrake.fr/|{{Pkg|handbrake-cli}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-gtk}} {{Pkg|avidemux-qt}}}}<br />
* {{App|[[Wikipedia:Cinelerra|Cinelerra (Community Version)]]|Professional video editing and compositing environment.|http://cinelerra.org/|{{Pkg|cinelerra-cv}}}}<br />
* {{App|HandBrake|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping. GTK+ version.|http://handbrake.fr/|{{Pkg|handbrake}}}}<br />
* {{App|[[Wikipedia:Kdenlive|Kdenlive]]|Non-linear video editor designed for basic to semi-professional work.|http://kdenlive.org/|{{Pkg|kdenlive}}}}<br />
* {{App|[[Wikipedia:Lightworks|Lightworks]]|A proprietary professional non-linear editing system for editing and mastering digital video in various formats.|http://www.lwks.com/|{{AUR|lwks}}}}<br />
* {{App|[[Wikipedia:LiVES|LiVES]]|Video editor and VJ (live performance) platform.| http://lives-video.com/ |{{AUR|lives}}}}<br />
* {{App|[[Wikipedia:OpenShot_Video_Editor|Open Shot]]|Non-linear video editor based on MLT framework.|http://www.openshotvideo.com/|{{Pkg|openshot}}}}<br />
* {{App|[[Wikipedia:Pitivi|PiTiVi]]|Video editor designed to be intuitive and integrate well in the GNOME desktop.|http://www.pitivi.org/ |{{Pkg|pitivi}}}}<br />
* {{App|[[Wikipedia:Shotcut|Shotcut]]|Shotcut is a free, open source, cross-platform video editor.|http://www.shotcut.org/ |{{AUR|shotcut-bin}}}}<br />
* {{App|Transmageddon|Simple python application for transcoding video into formats supported by GStreamer.|http://www.linuxrising.org/ |{{Pkg|transmageddon}}}}<br />
<br />
==== Screencast ====<br />
<br />
See also [[Wikipedia:Comparison of screencasting software]].<br />
<br />
Screencast utilities allow you to create a video of your desktop or individual windows.<br />
<br />
* {{App|byzanz|Simple screencast tool that produces GIF animations.|http://blogs.gnome.org/otte/2009/08/30/byzanz-0-2-0/|{{AUR|byzanz}}}}<br />
* {{App|glc|Screencast tool that can capture the sound and video from OpenGL applications, such as games, where regular X11 screencast tools produce choppy results.|https://github.com/nullkey/glc|{{AUR|glc}}{{Broken package link|{{aur-mirror|glc}}}}}}<br />
* {{App|Istanbul|Simple desktop session recorder that produces ogg videos.|https://wiki.gnome.org/Projects/Istanbul|{{AUR|istanbul}}}}<br />
* {{App|Kazam|Screencasting program with design in mind. Handles multiscreen setups.|https://launchpad.net/kazam|{{AUR|kazam}}}}<br />
* {{App|OBS|Free and open source software for video recording and live streaming.|https://obsproject.com/|{{Pkg|obs-studio}}}}<br />
* {{App|[[Wikipedia:RecordMyDesktop|RecordMyDesktop]]|An easy to use utility that records your desktop into the ogg format with a CLI, Qt or GTK+ interface.|http://recordmydesktop.sourceforge.net/|{{Pkg|recordmydesktop}} {{Pkg|gtk-recordmydesktop}} {{Pkg|qt-recordmydesktop}}}}<br />
* {{App|simplescreenrecorder|A feature-rich screen recorder written in C++/Qt4 that supports X11 and OpenGL.|http://www.maartenbaert.be/simplescreenrecorder/|{{Pkg|simplescreenrecorder}}}}<br />
* {{App|vokoscreen|Simple screencast tool, GUI ffmpeg.|http://www.kohaupt-online.de/hp|{{AUR|vokoscreen}}}}<br />
* {{App|[[Wikipedia:XVidCap|XVidCap]]|Application used for recording a screencast or digital recording of an X Window System screen output with an audio narration.|http://xvidcap.sourceforge.net/|{{AUR|xvidcap}}}}<br />
* {{App|FFcast|FFmpeg-based screencast tool written in Bash.|https://github.com/lolilolicon/FFcast|{{AUR|ffcast}}}}<br />
<br />
=== Optical media burning ===<br />
<br />
See [[Optical disc drive#Burning CD/DVD/BD with a GUI]].<br />
<br />
=== Podcasts ===<br />
<br />
see [[List of applications/Internet#Podcast_clients|Podcast clients]]<br />
<br />
=== Collection managers ===<br />
<br />
* {{App|[[Beets]]|Music library organizer, tagger and more.|http://beets.radbox.org/|{{Pkg|beets}}}}<br />
* {{App|Demlo|Batch music tagger, encoder, renamer and more.|http://ambrevar.bitbucket.org/demlo/|{{AUR|demlo}}}}<br />
* {{App|[[Wikipedia:GCstar|GCstar]]|GNOME application for organizing various collections (board games, comic books, movies, stamps, etc.).|http://www.gcstar.org/|{{Pkg|gcstar}}}}<br />
* {{App|[[Kodi]]|Application for organizing various collections and automatically retrieving info about them (video, music, photos).|https://kodi.tv/|{{Pkg|kodi}}}}<br />
* {{App|[[Wikipedia:Tellico|Tellico]]|KDE application for organizing various collections (books, video, music, coins, etc.).|http://tellico-project.org/|{{Pkg|tellico}}}}<br />
<br />
=== Lyrics fetchers ===<br />
<br />
* {{App|clyrics|An extensible lyrics fetcher, with daemon support for cmus and mocp.|http://beets.radbox.org/|{{AUR|clyrics}}}}</div>2419https://wiki.archlinux.org/index.php?title=List_of_applications/Multimedia&diff=441406List of applications/Multimedia2016-07-14T13:32:39Z<p>2419: /* Mobile phone managers */ add wikipedia link for lack of weblink</p>
<hr />
<div><noinclude><br />
[[Category:Applications]]<br />
[[Category:Multimedia]]<br />
[[es:List of applications/Multimedia]]<br />
[[it:List of applications/Multimedia]]<br />
[[ja:アプリケーション一覧/マルチメディア]]<br />
[[ru:List of applications/Multimedia]]<br />
[[zh-cn:List of applications/Multimedia]]<br />
[[zh-tw:List of applications/Multimedia]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Multimedia ==<br />
<br />
=== Codecs ===<br />
<br />
See the main article: [[Codecs]].<br />
<br />
=== Image ===<br />
<br />
==== Image viewers ====<br />
<br />
See also [[Wikipedia:Comparison of image viewers]].<br />
<br />
===== Console =====<br />
<br />
* {{App|fbi|Image viewer for the linux framebuffer console.|https://www.kraxel.org/blog/linux/fbida/|{{Pkg|fbida}}}}<br />
* {{App|fbv|Very simple graphic file viewer for the framebuffer console.|http://s-tech.elsat.net.pl/fbv/|{{Pkg|fbv}}}}<br />
* {{App|fim|Highly customizable and scriptable framebuffer image viewer based on fbi.|http://www.nongnu.org/fbi-improved/|{{AUR|fim}}}}<br />
* {{App|jfbview|Framebuffer PDF and image viewer based on Imlib2. Features include Vim-like controls, rotation and zoom, zoom-to-fit, and fast multi-threaded rendering.|http://seasonofcode.com/pages/jfbview.html|{{AUR|jfbview}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Eye_of_GNOME|Eye of GNOME]]|Image viewing and cataloging program, which is a part of the GNOME desktop environment.|https://wiki.gnome.org/Apps/EyeOfGnome|{{Pkg|eog}}}}<br />
* {{App|Eye of MATE|Simple graphics viewer for the MATE desktop.|https://github.com/mate-desktop/eom|{{Pkg|eom}}}}<br />
* {{App|[[feh]]|Fast, lightweight image viewer that uses imlib2.|http://feh.finalrewind.org|{{Pkg|feh}}}}<br />
* {{App|meh|meh is a small, simple, super fast image viewer using raw XLib.|http://www.johnhawthorn.com/meh/|{{AUR|meh-git}}}}<br />
* {{App|GalaPix|OpenGL-based image viewer for simultaneously viewing and zooming large collections of image files,|http://code.google.com/p/galapix/|{{AUR|galapix}}}}<br />
* {{App|[[Wikipedia:Geeqie|Geeqie]]|Image browser and viewer (fork of GQview) that adds additional functionality such as support for RAW files.|http://geeqie.sourceforge.net/|{{Pkg|geeqie}}}}<br />
* {{App|Gimmage|Gtkmm image viewer.|http://gimmage.berlios.de/|{{Pkg|gimmage}}}}<br />
* {{App|GPicView|Simple and fast image viewer for X, which is part of the [[LXDE]] desktop.|http://lxde.sourceforge.net/gpicview/|{{Pkg|gpicview}}}}<br />
* {{App|[[Wikipedia:GQview|GQview]]|Image browser that features single click access to view images and move around the directory tree|http://gqview.sourceforge.net/|{{AUR|gqview-devel}}}}<br />
* {{App|[[Wikipedia:GThumb|gThumb]]|Image viewer for the GNOME desktop.|https://wiki.gnome.org/Apps/gthumb|{{Pkg|gthumb}}}}<br />
* {{App|[[Wikipedia:Gwenview|Gwenview]]|Fast and easy to use image viewer for the KDE desktop.|http://gwenview.sourceforge.net/|{{Pkg|gwenview}}}}<br />
* {{App|imv|Lightweight image viewer with support for Wayland and animated GIFs.|https://www.github.com/eXeC64/imv/|{{AUR|imv}}}}<br />
* {{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail panel.|http://mirageiv.berlios.de|{{Pkg|mirage}}}}<br />
* {{App|nomacs|Free (GPLv3) Qt image viewer for many operating systems. It is feature-rich but starts fast and can be configured to show additional widgets or only the image.|http://www.nomacs.org/|{{Pkg|nomacs}}}}<br />
* {{App|Phototonic|Fast and functional image viewer and organizer (Qt).| https://github.com/oferkv/phototonic|{{AUR|phototonic}}}}<br />
* {{App|PhotoQt|Fast and highly configurable image viewer with a simple and nice interface.|http://photoqt.org/|{{AUR|photoqt}}}}<br />
* {{App|[[Wikipedia:Picasa|Picasa]]|Image organizer and viewer from Google that has editing capabilities and integration with the photo-sharing website.|http://picasa.google.com/|{{AUR?|picasa}}}}<br />
* {{App|Quick Image Viewer|Very small and fast image viewer based on GTK+ and imlib2.|http://spiegl.de/qiv/|{{Pkg|qiv}}}}<br />
* {{App|Ristretto|Fast and lightweight image viewer for the Xfce desktop environment.|http://goodies.xfce.org/projects/applications/ristretto|{{Pkg|ristretto}}}}<br />
* {{App|Shotwell|A digital photo organizer designed for the GNOME desktop environment|https://wiki.gnome.org/Apps/Shotwell|{{Pkg|shotwell}}}}<br />
* {{App|[[sxiv]]|Simple image viewer based on imlib2 that works well with tiling window managers.|https://github.com/muennich/sxiv|{{Pkg|sxiv}}}}<br />
* {{App|Viewnior|Minimalistic GTK+ image viewer featuring support for flipping, rotating, animations and configurable mouse actions.|http://siyanpanayotov.com/project/viewnior/|{{Pkg|viewnior}}}}<br />
* {{App|Xloadimage|Classic X image viewer.|http://sioseis.ucsd.edu/xloadimage.html|{{Pkg|xloadimage}}}}<br />
* {{App|[[Wikipedia:XnView|XnView MP]]|Efficient image viewer, browser and converter.|http://www.xnview.com/en/index.html|{{AUR|xnviewmp}}}}<br />
* {{App|[[Wikipedia:Xv_(software)|xv]]|Shareware program written by John Bradley to display and modify digital images under the X Window System.|http://www.trilon.com/xv/|{{Pkg|xv}}}}<br />
<br />
==== Graphics and image manipulation ====<br />
<br />
===== Raster editors =====<br />
<br />
See also [[Wikipedia:Comparison of raster graphics editors]].<br />
<br />
* {{App|AfterShot Pro|Professional workflow and RAW conversion. Successor of Bibble Pro.|http://www.aftershotpro.com/en/products/aftershot-pro/|{{AUR|aftershotpro}}}}<br />
* {{App|AzPainter|A Painting software. |http://azpainter.sourceforge.jp/|{{AUR|azpainter}}}}<br />
* {{App|[[Wikipedia:darktable|darktable]]|Photography workflow and RAW development application.|http://www.darktable.org//|{{Pkg|darktable}}}}<br />
* {{App|dcraw|Converts many camera RAW formats.|http://www.cybercom.net/~dcoffin/dcraw/|{{Pkg|dcraw}}}}<br />
* {{App|[[Wikipedia:digiKam|digiKam]]|KDE-based image organizer with built-in editing features via a plugin architecture. digiKam asserts it is more full featured than similar applications with a larger set of image manipulation features including RAW image import and manipulation.|http://www.digikam.org/|{{Pkg|digikam}}}}<br />
* {{App|[[GIMP]]|Image editing suite in the vein of proprietary editors such as [[Wikipedia:Adobe Photoshop|Adobe Photoshop]]. GIMP ([[GNU]] Image Manipulation Program) has been started in the mid 1990s and has acquired a large number of [[CMYK support in The GIMP|plugins]] and additional tools.|http://www.gimp.org/|{{Pkg|gimp}}}}<br />
* {{App|[[Wikipedia:GNU Paint|Gpaint]]|[[Wikipedia:PC_Paintbrush|Paintbrush]] clone for GNOME.|http://www.gnu.org/software/gpaint/|{{AUR|gpaint}}}}<br />
* {{App|[[Wikipedia:GraphicsMagick|GraphicsMagick]]|Fork of ImageMagick designed to have API and command-line stability. It also supports multi-CPU for enhanced performance and thus is used by some large commercial sites (Flickr, etsy) for its performance.|http://www.graphicsmagick.org/|{{Pkg|graphicsmagick}}}}<br />
* {{App|[[Wikipedia:ImageMagick|ImageMagick]]|Command-line image manipulation program. It is known for its accurate format conversions with support for over 100 formats. Its API enables it to be scripted and it is usually used as a backend processor.|http://www.imagemagick.org/script/index.php|{{Pkg|imagemagick}}}}<br />
* {{App|[[Wikipedia:KolourPaint|KolourPaint]]|Free raster graphics editor for KDE, similar to Microsoft's Paint application before Windows 7, but with some additional features such as support for transparency. Part of {{Grp|kde-applications}} and {{Grp|kdegraphics}} groups.|http://kolourpaint.org|{{Pkg|kdegraphics-kolourpaint}}}}<br />
* {{App|[[Wikipedia:Krita|Krita]]|Digital painting and illustration software included based on the KDE platform and Calligra libraries. Part of {{Grp|calligra}} group.|http://krita.org/|{{Pkg|calligra-krita}}{{Broken package link|replaced by {{Pkg|krita}}}}}}<br />
* {{App|Luminance HDR|Open source graphical user interface application that aims to provide a workflow for HDR imaging.|http://qtpfsgui.sourceforge.net/|{{Pkg|luminancehdr}}}}<br />
* {{App|mtPaint|Graphics editing program geared towards creating indexed palette images and pixel art.|http://mtpaint.sourceforge.net/|{{Pkg|mtpaint}}}}<br />
* {{App|[[Wikipedia:MyPaint|MyPaint]]|Free software graphics application for digital painters.|http://mypaint.org|{{Pkg|mypaint}}}}<br />
* {{App|[[Wikipedia:Pinta (software)|Pinta]]|Drawing and editing program modeled after [[Wikipedia:Paint.net|Paint.NET]]. Its goal is to provide a simplified alternative to GIMP for casual users.|http://pinta-project.com/|{{Pkg|pinta}}}}<br />
* {{App|[[Wikipedia:Shotwell_(software)|Shotwell]]|Image organizer with a small set of image manipulation features (rotate, crop, color adjust, and red eye removal). It can import photos directly from digital cameras and export them to social media sites (Facebook, Flickr, Picasa Web Albums, etc.).|http://yorba.org/shotwell/|{{Pkg|shotwell}}}}<br />
* {{App|[[Wikipedia:XPaint|XPaint]]|Color image editing tool which features most standard paint program options.|http://sourceforge.net/projects/sf-xpaint/|{{AUR|xpaint}}}}<br />
<br />
===== Vector graphics - illustration =====<br />
<br />
See also [[Wikipedia:Comparison of vector graphics editors]].<br />
<br />
* {{App|[[Wikipedia:Asymptote_(vector_graphics_language)|Asymptote]]|A descriptive vector graphics language (like PGF/TikZ and Metapost) with a C-like syntax and LaTeX support.|http://asymptote.sourceforge.net|{{Pkg|asymptote}}}}<br />
* {{App|[[Wikipedia:Dia_(software)|Dia]]|GTK+-based diagram creation program.|https://wiki.gnome.org/Apps/Dia|{{Pkg|dia}}}}<br />
* {{App|[[Wikipedia:Graphviz|Graphviz]]|Set of tools for drawing graphs in the descriptive DOT language.|http://www.graphviz.org|{{Pkg|graphviz}}}}<br />
* {{App|[[Wikipedia:Inkscape|Inkscape]]|Vector graphics editor, with capabilities similar to [[Wikipedia:Adobe Illustrator|Illustrator]], [[Wikipedia:CorelDRAW|CorelDraw]], or [[Wikipedia:Xara X|Xara X]], using the SVG (Scalable Vector Graphics) file format. Inkscape supports many advanced SVG features (markers, clones, alpha blending, etc.) and great care is taken in designing a streamlined interface. It is very easy to edit nodes, perform complex path operations, trace bitmaps and much more. It's developers also aim to maintain a thriving user and developer community by using open, community-oriented development.|http://inkscape.org/|{{Pkg|inkscape}}}}<br />
* {{App|[[Wikipedia:Karbon (software)|Karbon]]|Vector graphics editor, part of the Calligra Suite. Part of {{Grp|calligra}} group.|http://www.calligra-suite.org/karbon/|{{Pkg|calligra-karbon}}}}<br />
* {{App|[[Wikipedia:Pencil2D|Pencil Project]]|An open-source GUI prototyping and mockup tool.|http://pencil.evolus.vn/|{{AUR|pencil}}}}<br />
* {{App|qasm2circ|Quantum circuit generator for latex|http://www.media.mit.edu/quanta/qasm2circ/|{{AUR|qasm2circ}}}}<br />
* {{App|[[Wikipedia:SK1_(program)|sK1]]|Replacement for Adobe Illustrator or CorelDraw, oriented for "prepress ready" PostScript & PDF output.|http://sk1project.org/|{{Pkg|sk1}}}}<br />
* {{App|[[Wikipedia:Xara_Xtreme_LX|Xara LX]]|Advanced vector graphics program, the open source version of the commercial Xara X.|http://www.xaraxtreme.org/|{{AUR|xaralx}}}}<br />
* {{App|[[Wikipedia:yEd|yEd]]|General-purpose diagramming program for flowcharts, network diagrams, UML diagrams, BPMN diagrams, mind maps, organization charts, and Entity Relationship diagrams.|http://www.yworks.com/en/products_yed_about.html|{{AUR|yed}}}}<br />
<br />
===== Vector graphics - CAD =====<br />
<br />
See also [[Wikipedia:List of computer-aided design editors]].<br />
<br />
* {{App|[[Wikipedia:BRL-CAD|BRL-CAD]]|Constructive solid geometry (CSG) solid modeling computer-aided design (CAD) system that includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, scripting, image-processing and signal-processing tools.|http://brlcad.org/|{{AUR|brlcad}}}}<br />
* {{App|DraftSight|Dassault Systemes' freeware 2D CAD application. DraftSight allows users to access DWG/DXF files, regardless of which CAD software was originally used to create them.|http://www.3ds.com/products-services/draftsight/overview/|{{AUR|draftsight}}}}<br />
* {{App|[[Wikipedia:FreeCAD|FreeCAD]]|CAD/CAE program, based on OpenCascade, Qt and Python with features such as macro recording, workbenches and the ability to run as server.|http://sourceforge.net/projects/free-cad/|{{Pkg|freecad}}}}<br />
* {{App|LeoCAD|CAD program for creating virtual LEGO models. It has an easy to use interface and currently includes over 6000 different pieces created by the LDraw community.|http://leocad.org|{{AUR|leocad}}}}<br />
* {{App|[[Wikipedia:LibreCAD|LibreCAD]]|Powerful 2D CAD application based on Qt. It has been forked from QCad Community Edition.|http://www.librecad.org/|{{Pkg|librecad}}}}<br />
* {{App|[[Wikipedia:OpenSCAD|OpenSCAD]]|Open source 2D/3D CAD using programmers approach.|http://www.openscad.org|{{Pkg|openscad}} {{AUR|openscad-git}}}}<br />
* {{App|[[Wikipedia:QCad|QCAD]]|Powerful 2D CAD application that began in 1999. QCaD includes DFX standard file format and supports HPGL format.|http://www.qcad.org/|{{Pkg|qcad}}}}<br />
<br />
===== 3D modeling/rendering =====<br />
<br />
See also [[Wikipedia:Comparison of 3D computer graphics software]].<br />
<br />
* {{App|[[Wikipedia:Art_of_Illusion|Art of Illusion]]|3D modeling and rendering studio written in Java.|http://www.artofillusion.org/|{{AUR|aoi}}}}<br />
* {{App|[[Wikipedia:Blender_(software)|Blender]]|fully integrated 3D graphics creation suite capable of 3D modeling, texturing, and animation, among other things.|http://www.blender.org/|{{Pkg|blender}}}}<br />
* {{App|[[Wikipedia:MakeHuman|MakeHuman™]]|Parametrical modeling program for creating human bodies.|http://www.makehuman.org/|{{AUR|makehuman}}}}<br />
* {{App|[[Wikipedia:POV-Ray|POV-Ray]]|Script-based raytracer for creating 3D graphics.|http://www.povray.org/|{{Pkg|povray}}}}<br />
* {{App|[[Wikipedia:Wings3d|Wings 3D]]|Advanced subdivision modeler that is both powerful and easy to use.|http://www.wings3d.com/|{{Pkg|wings3d}}}}<br />
<br />
==== Screen capture ====<br />
<br />
See also: [[Taking a screenshot]].<br />
<br />
=== Audio ===<br />
<br />
==== Audio systems ====<br />
<br />
See the main article: [[Sound system]].<br />
<br />
See also [[Wikipedia:Sound server]].<br />
<br />
* {{App|wineasio|Provides an ASIO to JACK driver for ''wine''. ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.|http://sourceforge.net/projects/wineasio/|{{AUR|wineasio}}}}<br />
<br />
==== Audio players ====<br />
<br />
See also [[Wikipedia:Comparison of audio player software]].<br />
<br />
===== Music player daemons and clients =====<br />
<br />
See also: [[Music_Player_Daemon#Clients|List of MPD clients]]<br />
<br />
* {{App|[[Music Player Daemon]]|Lightweight and scalable choice for music management.|http://www.musicpd.org/|{{Pkg|mpd}}}}<br />
* {{App|[[Wikipedia:XMMS2|XMMS2]]|Complete rewrite of the popular music player.|https://xmms2.org|{{Pkg|xmms2}}}}<br />
<br />
===== Command-line players =====<br />
<br />
* {{App|[[cmus]]|Very feature-rich ncurses-based music player.|http://cmus.github.io/|{{Pkg|cmus}}}}<br />
* {{App|Cplay|Curses front-end for various audio players (ogg123, mpg123, mpg321, splay, madplay, and mikmod, xmp, and sox).|http://directory.fsf.org/wiki/Cplay|{{AUR|cplay}}}}<br />
* {{App|Herrie|Minimalistic console-based music player with native AudioScrobbler support.|http://herrie.info/|{{AUR|herrie}}}}<br />
* {{App|[[Moc|MOC]]|Ncurses console audio player with support for the MP3, OGG, and WAV formats.|http://moc.daper.net/|{{Pkg|moc}}}}<br />
* {{App|MPFC|Gstreamer-based audio player with curses interface.|http://code.google.com/p/mpfc/|{{AUR|mpfc}}}}<br />
* {{App|[[Wikipedia:Mpg123|mpg123]]|Fast free MP3 console audio player for Linux, FreeBSD, Solaris, HP-UX and nearly all other UNIX systems (also decodes MP1 and MP2 files).|http://www.mpg123.org/|{{Pkg|mpg123}}}}<br />
* {{App|mps-youtube|Terminal based YouTube jukebox with playlist management. Plays audio/video through mplayer/mpv.|https://github.com/mps-youtube/mps-youtube|{{Pkg|mps-youtube}}}}<br />
* {{App|pancake|Cli pandora client built with urwid.|https://github.com/osum4est/pancake/}}<br />
* {{App|[[pianobar]]|Console-based frontend for Pandora.|http://6xq.net/projects/pianobar/|{{Pkg|pianobar}}}}<br />
* {{App|shell-fm|Console-based player for the streams provided by [http://www.last.fm/ last.fm].|https://github.com/jkramer/shell-fm/|{{AUR|shell-fm}}{{Broken package link|{{aur-mirror|shell-fm}}}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player with ncurses interface module, and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|whistle|a curses-based commandline audio player.|https://github.com/ap0calypse/whistle/|{{AUR|whistle-git}}}}<br />
<br />
===== GUI players =====<br />
<br />
* {{App|[[Amarok]]|Mature Qt-based player known for its plethora of features.|http://amarok.kde.org/|{{Pkg|amarok}}}}<br />
* {{App|[[Wikipedia:aTunes|aTunes]]|Audio player written in Java.|http://www.atunes.org/|{{AUR|atunes}}{{Broken package link|{{aur-mirror|atunes}}}}}}<br />
* {{App|[[Audacious]]|[[Wikipedia:Winamp|Winamp]] clone like Beep and old XMMS versions.|http://audacious-media-player.org/|{{Pkg|audacious}}}}<br />
* {{App|[[Wikipedia:Banshee (media player)|Banshee]]|[[Wikipedia:iTunes|iTunes]] clone, built with GTK+ and [[Mono]], feature-rich and more actively developed.|http://banshee.fm/|{{Pkg|banshee}}}}<br />
* {{App|[[Wikipedia:Clementine_(software)|Clementine]]|Amarok 1.4 clone, ported to Qt 4.|http://www.clementine-player.org/|{{Pkg|clementine}}}}<br />
* {{App|Cuberok|Music player and collection manager with a lightweight interface.|http://code.google.com/p/cuberok/|{{AUR|cuberok}}}}<br />
* {{App|DeaDBeeF|Light and fast music player with many features, no GNOME or KDE dependencies, supports console-only, as well as a GTK+ GUI, comes with many plugins, and has a metadata editor.|http://deadbeef.sourceforge.net/|{{Pkg|deadbeef}}}}<br />
* {{App|[[Exaile]]|GTK+ clone of Amarok.|http://www.exaile.org/|{{AUR|exaile}}}}<br />
* {{App|gmusicbrowser|Open-source jukebox for large collections of MP3/OGG/FLAC files.|http://gmusicbrowser.org/|{{AUR|gmusicbrowser}}}}<br />
* {{App|GNOME Music|Music is the new GNOME music playing application. It aims to combine an elegant and immersive browsing experience with simple and straightforward controls.|https://wiki.gnome.org/Apps/Music|{{Pkg|gnome-music}}}}<br />
* {{App|Goggles Music Manager|Music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support. Uses the [[Wikipedia:Fox toolkit|Fox toolkit]].|http://gogglesmm.github.io/|{{Pkg|gogglesmm}}}}<br />
* {{App|Guayadeque|Full featured media player that can easily manage large collections and uses the GStreamer media framework.|http://guayadeque.org/|{{AUR|guayadeque}}}}<br />
* {{App|[[Wikipedia:JuK|JuK]]|JuK is an audio jukebox application, supporting collections of MP3, Ogg Vorbis, and FLAC audio files.|https://www.kde.org/applications/multimedia/juk/|{{Pkg|kdemultimedia-juk}}}}<br />
* {{App|Listen|Listen is a Music player and management for GNOME written in python.|https://launchpad.net/listen|{{AUR|listen}}}}<br />
* {{App|Lollypop|A GNOME music player.|https://gnumdk.github.io/lollypop-web/|{{Pkg|lollypop}}}}<br />
* {{App|LXMusic|A minimalist xmms2-based music player.|http://wiki.lxde.org/en/LXMusic|{{Pkg|lxmusic}}}}<br />
* {{App|Miam-player|Cross-platform open source music player.|http://miam-player.org/|{{AUR|miam-player}}}}<br />
* {{App|Musique|Just another music player, only better.|http://flavio.tordini.org/musique|{{AUR|musique}}}}<br />
* {{App|[[Wikipedia:Nightingale (software)|Nightingale]]|Open source clone of iTunes-based on [[Wikipedia:Songbird (software)|Songbird]], that uses Mozilla technologies and the GStreamer framework.|http://getnightingale.com/|{{AUR|nightingale-git}}}}<br />
* {{App|Noise|Simple, fast, and good looking music player.|https://launchpad.net/noise|{{Pkg|noise-player}}}}<br />
* {{App|Nuvola Player|Integrated Google Music, 8tracks and Hype Machine player.|http://nuvolaplayer.fenryxo.cz/|{{AUR|nuvolaplayer}}}}<br />
* {{App|Potamus|Lightweight, intuitive GTK+ audio player with an emphasis on high audio quality.|http://offog.org/code/potamus.html|{{AUR|potamus}}{{Broken package link|{{aur-mirror|potamus}}}}}}<br />
* {{App|Pragha|GTK+ music manager. (fork of the Consonance Music Manager)|https://pragha-music-player.github.io/|{{Pkg|pragha}}}}<br />
* {{App|Qmmp|Qt-based multimedia player with a user interface that is similar to Winamp or XMMS.|http://qmmp.ylsoftware.com/|{{Pkg|qmmp}}}}<br />
* {{App|[[Wikipedia:Quod Libet (software)|Quod Libet]]|Audio player written with PyGTK and GStreamer with support for regular expressions in playlists.|http://code.google.com/p/quodlibet/|{{Pkg|quodlibet}}}}<br />
* {{App|[[Wikipedia:Rhythmbox|Rhythmbox]]|GTK+ clone of iTunes, used by default in GNOME.|https://wiki.gnome.org/Apps/Rhythmbox|{{Pkg|rhythmbox}}}}<br />
* {{App|[[Spotify]]|Proprietary music streaming service. It supports local playback and streaming from Spotify's vast library (requires a free account).|http://www.spotify.com/|{{AUR|spotify}}}}<br />
* {{App|[[SpotCommander]]|A remote control for Spotify, optimized for mobile devices. It works on any device with a modern browser, and it's free and open source.|http://olejon.github.io/spotcommander/|{{AUR|spotcommander}}}}<br />
* {{App|Tomahawk|Music player application written in C++/Qt. It decouples the name of the song from the source it was shared from - and fulfills the request using all of your available sources.|http://www.tomahawk-player.org/|{{AUR|tomahawk}}}}<br />
* {{App|[[Wikipedia:VLC_media_player|VLC]]|Highly portable multimedia player and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs, VCDs, and various streaming protocols.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|[[wikipedia:XMMS|XMMS]]|Skinnable GTK+ standalone media player similar to Winamp.|http://legacy.xmms2.org/|{{AUR|xmms}}}}<br />
<br />
==== Volume managers ====<br />
<br />
* {{App|GVolWheel|An audio mixer which lets you control the volume through a tray icon.|http://sourceforge.net/projects/gvolwheel/|{{AUR|gvolwheel}}}}<br />
* {{App|GVTray|A master volume mixer for the system tray.|http://code.google.com/p/gtk-tray-utils/|{{AUR|gvtray}}{{Broken package link|{{aur-mirror|gvtray}}}}}}<br />
*{{App|pa-applet|PulseAudio system tray applet with volume bar.|https://github.com/fernandotcl/pa-applet|{{Aur|pa-applet-git}}}}<br />
* {{App|PNMixer|A fork of Obmixer. It has many new features such as ALSA channel selection, connect/disconnect detection, shortcuts, etc.|https://github.com/nicklan/pnmixer/wiki|{{AUR|pnmixer}}}}<br />
*{{App|Volctl|Per-application volume control for GNU/Linux desktops.|https://buzz.github.io/volctl/|{{Aur|volctl}}}}<br />
*{{App|[[Volnoti]]|A lightweight volume notification daemon for GNU/Linux and other POSIX operating systems.|https://github.com/davidbrazdil/volnoti|{{Aur|volnoti}}}}<br />
* {{App|Volti|A GTK application for controlling audio volume from system tray with an internal mixer and support for multimedia keys that uses only ALSA.|http://code.google.com/p/volti/|{{AUR|volti}}}}<br />
* {{App|VolumeIcon|Another volume control for your system tray with channel selection, themes and an external mixer.|http://softwarebakery.com/maato/volumeicon.html|{{Pkg|volumeicon}}}}<br />
* {{App|VolWheel|A little application which lets you control the sound volume easily through a tray icon you can scroll on.|http://oliwer.net/b/volwheel.html|{{Pkg|volwheel}}}}<br />
<br />
==== CD ripping ====<br />
<br />
See [[Optical disc drive#CD]].<br />
<br />
==== Visualization ====<br />
<br />
* {{App|[[Wikipedia:MilkDrop|ProjectM]]|Music visualizer which uses 3D accelerated iterative image-based rendering.|http://projectm.sourceforge.net/|{{Pkg|projectm}}}}<br />
* {{App|[[Wikipedia:VSXu|VSXu]]|Free to use program that lets you create and perform real-time audio visual presets.|http://www.vsxu.com/|{{AUR|vsxu}}}}<br />
<br />
==== Audio tag editors ====<br />
<br />
* {{App|Audio Tag Tool|Tool to edit tags in MP3 and Ogg Vorbis files.|http://tagtool.sourceforge.net/|{{AUR|tagtool}}}}<br />
* {{App|Cowbell|Elegant music organizer that supports many audio formats including MP3, Ogg/FLAC, and MusePack.|http://more-cowbell.org/|{{AUR|cowbell}}{{Broken package link|{{aur-mirror|cowbell}}}}}}<br />
* {{App|[[Wikipedia:EasyTag|EasyTag]]|Utility for viewing, editing and writing ID3 tags of music files, supports many audio formats.|http://easytag.sourceforge.net/|{{Pkg|easytag}}}}<br />
* {{App|[[Wikipedia:Ex Falso (software)|Ex Falso]]|Cross-platform free and open source audio tag editor and library organizer.|http://code.google.com/p/quodlibet/|{{AUR|exfalso}}}}<br />
* {{App|ID3 Mass Tagger|Command-line utility to edit ID3 1.x and 2.x tags.|http://squell.github.io/id3/|{{Pkg|id3}}}}<br />
* {{App|Kid3|MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files tag editor.|http://kid3.sourceforge.net/|{{Pkg|kid3}}}}<br />
* {{App|MP3Info|MP3 technical info viewer and ID3 1.x tag editor.|http://ibiblio.org/mp3info/|{{Pkg|mp3info}}}}<br />
* {{App|[[Wikipedia:MusicBrainz Picard|MusicBrainz Picard]]|Cross-platform audio tag editor written in Python (the official MusicBrainz tagger).|http://musicbrainz.org/doc/MusicBrainz_Picard|{{Pkg|picard}}}}<br />
* {{App|[[Wikipedia:Puddletag|Puddletag]]|Replacement for the famous MP3tag for Windows.|http://puddletag.sourceforge.net/|{{Pkg|puddletag}}}}<br />
* {{App|taffy|Simple command-line tag editor for many audio formats.|http://github.com/jangler/taffy|{{AUR|taffy}}}}<br />
* {{App|Tag Editor|A tag editor with Qt 5 GUI and command-line interface supporting MP4/AAC (iTunes), ID3v1, ID3v2, Ogg/Vorbis and Matroska.|http://github.com/Martchus/tageditor|{{AUR|tageditor}}}}<br />
* {{App|Qoobar|Universal QT-based audio tagger (specialized for classical music)|http://qoobar.sourceforge.net/en/index.htm|{{AUR|qoobar}}}}<br />
<br />
==== Sound editing ====<br />
<br />
* {{App|[[Wikipedia:Ardour (software)|Ardour]]|Multichannel hard disk recorder and digital audio workstation.|http://ardour.org/|{{Pkg|ardour}}}}<br />
* {{App|[[Wikipedia:Audacity (audio editor)|Audacity]]|Program that lets you manipulate digital audio waveforms.|http://audacity.sourceforge.net/|{{Pkg|audacity}}}}<br />
* {{App|Bitwig Studio|Proprietary professional digital audio workstation.|http://bitwig.com/|{{AUR|bitwig-studio-demo}}{{Broken package link|{{aur-mirror|bitwig-studio-demo}}}}}}<br />
* {{App|GNOME Sound Recorder|The Sound Recorder application enables you to record and play .flac, .ogg (OGG audio, or .oga), and .wav sound files.|https://wiki.gnome.org/Design/Apps/SoundRecorder|{{Pkg|gnome-sound-recorder}}}}<br />
* {{App|[[Wikipedia:Jokosher|Jokosher]]|Non-linear multi-track digital audio editor that is being developed in Python, using the GTK+ interface and GStreamer as an audio back-end.|https://launchpad.net/jokosher/|{{AUR|jokosher}}}}<br />
* {{App|KWave|Sound editor for KDE.|http://kwave.sourceforge.net/|{{AUR|kwave-git}}}}<br />
* {{App|[[LMMS]]|The Linux MultiMedia Studio. Free cross-platform software which allows you to produce music with your computer.|http://lmms.sourceforge.net/|{{Pkg|lmms}}}}<br />
* {{App|[[Wikipedia:Qtractor|Qtractor]]|Qt-based hard disk recorder and digital audio workstation application that aims to provide digital audio workstation software simple enough for the average home user, and yet powerful enough for the professional user.|http://qtractor.sourceforge.net/qtractor-index.html|{{Pkg|qtractor}}}}<br />
* {{App|[[Wikipedia:Rosegarden|Rosegarden]]|Digital audio workstation program developed with ALSA and Qt that acts as an audio and MIDI sequencer, scorewriter and musical composition and editing tool.|http://www.rosegardenmusic.com/|{{Pkg|rosegarden}}}}<br />
* {{App|XCFA|Tool to extract the contens of audio CDs and convert them to various formats.|http://www.xcfa.tuxfamily.org/|{{AUR|xcfa}}}}<br />
<br />
=== Mobile phone managers ===<br />
<br />
* {{App|[[Wikipedia:Gnokii]gnokii]|Tools and user space driver for use with mobile phones[[Wikipedia:Gnokii|gnokii]].|http://www.gnokii.org/|{{Pkg|gnokii}}}}<br />
* {{App|GNOME Phone Manager|Control your mobile phone from your GNOME desktop.|https://wiki.gnome.org/PhoneManager|{{Pkg|gnome-phone-manager}}}}<br />
* {{App|KDE Connect|A project that aims to communicate all your devices.|http://community.kde.org/KDEConnect|{{Pkg|kdeconnect}}}}<br />
* {{App|Moto4Lin|File manager and seem editor for Motorola P2K phones (like C380/C650).|http://sourceforge.net/projects/moto4lin/|{{AUR|moto4lin}}{{Broken package link|{{aur-mirror|moto4lin}}}}}}<br />
<br />
=== Video ===<br />
<br />
==== Video players ====<br />
<br />
See also [[Wikipedia:Comparison of video player software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[MPlayer]]|Video player that supports a complete and versatile array of video and audio formats.|http://www.mplayerhq.hu/design7/news.html|{{Pkg|mplayer}} (See also a very similar fork: {{AUR|mplayer2}}}})<br />
* {{App|[[mpv]]|Movie player based on MPlayer and mplayer2.|http://mpv.io|{{Pkg|mpv}} {{AUR|mpv-git}}}}<br />
* {{App|[[Wikipedia:xine|xine-ui]]|Free multimedia player.|http://www.xine-project.org|{{Pkg|xine-ui}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC ncurses]]|Command-line version of the famous video player that can play smoothly high definition videos in the TTY.|https://www.videolan.org/vlc/|{{AUR|vlc-nox}}}}<br />
<br />
===== Graphical =====<br />
<br />
See also: [[MPlayer#Frontends/GUIs]], [[mpv#Front ends]].<br />
<br />
* {{App|[[Wikipedia:Kdemultimedia#Dragon Player|Dragon Player]]|Simple video player for KDE. Part of the {{Grp|kdemultimedia}} group.|http://www.kde.org/applications/multimedia/dragonplayer/|{{Pkg|dragon}}}}<br />
* {{App|[[Wikipedia:Kaffeine|Kaffeine]]|Very versatile KDE media player that, by default, utilizes Xine as its backend and has excellent support of digital TV (DVB).|http://kaffeine.kde.org/|{{Pkg|kaffeine}}}}<br />
* {{App|Parole|Modern media player based on the GStreamer framework.|http://goodies.xfce.org/projects/applications/parole/|{{Pkg|parole}}}}<br />
* {{App|Rage|Video and audio player written with Enlightenment Foundation Libraries with some extra bells and whistles.|http://www.enlightenment.org/p.php?p&#61;about/rage|{{AUR|rage}}}}<br />
* {{App|Snappy|Powerful media player with a minimalistic interface.|https://wiki.gnome.org/Apps/Snappy|{{Pkg|snappy-player}}}}<br />
* {{App|[[Wikipedia:GNOME Videos|GNOME Videos]]|Media player (audio and video) for the GNOME desktop that uses GStreamer. Part of {{Grp|gnome}}|https://wiki.gnome.org/Apps/Videos|{{Pkg|totem}}}}<br />
* {{App|[[Wikipedia:VLC media player|VLC media player]]|Middleweight video player with support for a wide variety of audio and video formats.|https://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
* {{App|Whaaw! Media Player|Lightweight GStreamer-based audio and video player that can serve as a good alternative to Totem for those who do not like all of those GNOME dependencies.|http://home.gna.org/whaawmp/|{{Pkg|whaawmp}}}}<br />
* {{App|Xnoise|GTK+ and GStreamer-based media player for both audio and video with "a slick GUI, great speed and lots of features." (development ceased)|http://www.xnoise-media-player.com/|{{Pkg|xnoise}}}}<br />
* {{App|QMPlay2|QMPlay2 is a QT based video player. It can play and stream all formats supported by ffmpeg and libmodplug. It has on integrated module system, which includes a Youtube browser.|3=http://qt-apps.org/content/show.php/QMPlay2?content=153339|4={{AUR|qmplay2}}}}<br />
* {{App|xt7-player-mpv|Audio/Video player with rich set of configurable options including filters and drivers, ladspa plugins support as well as library/playlist managment, YouTube, online radios, podcasts, DVB-T and more.|https://github.com/kokoko3k/xt7-player-mpv|{{AUR|xt7-player-mpv-git}}}}<br />
<br />
==== Subtitles ====<br />
<br />
* {{App|Gaupol|Full-featured subtitle editor.|http://home.gna.org/gaupol|{{Pkg|gaupol}}}}<br />
* {{App|Penguin Subtitle Player|Penguin Subtitle Player is an open-source, cross-platform standalone subtitle player, as an alternative to Greenfish Subtitle Player, SrtViewer (Mac), SRTPlayer, JustSubsPlayer and Free Subtitle Player.|https://github.com/carsonip/Penguin-Subtitle-Player|{{AUR|penguin-subtitle-player-git}}}}<br />
* {{App|subdl|Automatic subtitle downloader.|https://github.com/akexakex/subdl|{{Pkg|subdl}}}}<br />
* {{App|SubtitlesPrinter|Print subtitles above a X-screen, independently of the video player.|https://github.com/OlivierMarty/SubtitlesPrinter|{{AUR|subtitles-printer-git}}}}<br />
* {{App|Subtitle Composer|open-source Subtitle editor with Qt 5 based GUI supporting various formats, features different player backends, able to display wave form|https://github.com/maxrd2/subtitlecomposer|{{AUR|subtitlecomposer}}}}<br />
<br />
==== DVD ripping ====<br />
<br />
See [[Optical disc drive#DVD_2]].<br />
<br />
==== Video editors ====<br />
<br />
See also [[Wikipedia:Comparison of video editing software]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-cli}}}}<br />
* {{App|[[FFmpeg]]|Complete, cross-platform solution to record, convert and stream audio and video.|http://ffmpeg.org/|{{Pkg|ffmpeg}}}}<br />
* {{App|HandBrake-CLI|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping.|http://handbrake.fr/|{{Pkg|handbrake-cli}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Avidemux|Avidemux]]|Free video editor designed for simple cutting, filtering and encoding tasks.|http://fixounet.free.fr/avidemux/|{{Pkg|avidemux-gtk}} {{Pkg|avidemux-qt}}}}<br />
* {{App|[[Wikipedia:Cinelerra|Cinelerra (Community Version)]]|Professional video editing and compositing environment.|http://cinelerra.org/|{{Pkg|cinelerra-cv}}}}<br />
* {{App|HandBrake|Simple yet powerful video transcoder ideal for batch mkv/x264 ripping. GTK+ version.|http://handbrake.fr/|{{Pkg|handbrake}}}}<br />
* {{App|[[Wikipedia:Kdenlive|Kdenlive]]|Non-linear video editor designed for basic to semi-professional work.|http://kdenlive.org/|{{Pkg|kdenlive}}}}<br />
* {{App|[[Wikipedia:Lightworks|Lightworks]]|A proprietary professional non-linear editing system for editing and mastering digital video in various formats.|http://www.lwks.com/|{{AUR|lwks}}}}<br />
* {{App|[[Wikipedia:LiVES|LiVES]]|Video editor and VJ (live performance) platform.| http://lives-video.com/ |{{AUR|lives}}}}<br />
* {{App|[[Wikipedia:OpenShot_Video_Editor|Open Shot]]|Non-linear video editor based on MLT framework.|http://www.openshotvideo.com/|{{Pkg|openshot}}}}<br />
* {{App|[[Wikipedia:Pitivi|PiTiVi]]|Video editor designed to be intuitive and integrate well in the GNOME desktop.|http://www.pitivi.org/ |{{Pkg|pitivi}}}}<br />
* {{App|[[Wikipedia:Shotcut|Shotcut]]|Shotcut is a free, open source, cross-platform video editor.|http://www.shotcut.org/ |{{AUR|shotcut-bin}}}}<br />
* {{App|Transmageddon|Simple python application for transcoding video into formats supported by GStreamer.|http://www.linuxrising.org/ |{{Pkg|transmageddon}}}}<br />
<br />
==== Screencast ====<br />
<br />
See also [[Wikipedia:Comparison of screencasting software]].<br />
<br />
Screencast utilities allow you to create a video of your desktop or individual windows.<br />
<br />
* {{App|byzanz|Simple screencast tool that produces GIF animations.|http://blogs.gnome.org/otte/2009/08/30/byzanz-0-2-0/|{{AUR|byzanz}}}}<br />
* {{App|glc|Screencast tool that can capture the sound and video from OpenGL applications, such as games, where regular X11 screencast tools produce choppy results.|https://github.com/nullkey/glc|{{AUR|glc}}{{Broken package link|{{aur-mirror|glc}}}}}}<br />
* {{App|Istanbul|Simple desktop session recorder that produces ogg videos.|https://wiki.gnome.org/Projects/Istanbul|{{AUR|istanbul}}}}<br />
* {{App|Kazam|Screencasting program with design in mind. Handles multiscreen setups.|https://launchpad.net/kazam|{{AUR|kazam}}}}<br />
* {{App|OBS|Free and open source software for video recording and live streaming.|https://obsproject.com/|{{Pkg|obs-studio}}}}<br />
* {{App|[[Wikipedia:RecordMyDesktop|RecordMyDesktop]]|An easy to use utility that records your desktop into the ogg format with a CLI, Qt or GTK+ interface.|http://recordmydesktop.sourceforge.net/|{{Pkg|recordmydesktop}} {{Pkg|gtk-recordmydesktop}} {{Pkg|qt-recordmydesktop}}}}<br />
* {{App|simplescreenrecorder|A feature-rich screen recorder written in C++/Qt4 that supports X11 and OpenGL.|http://www.maartenbaert.be/simplescreenrecorder/|{{Pkg|simplescreenrecorder}}}}<br />
* {{App|vokoscreen|Simple screencast tool, GUI ffmpeg.|http://www.kohaupt-online.de/hp|{{AUR|vokoscreen}}}}<br />
* {{App|[[Wikipedia:XVidCap|XVidCap]]|Application used for recording a screencast or digital recording of an X Window System screen output with an audio narration.|http://xvidcap.sourceforge.net/|{{AUR|xvidcap}}}}<br />
* {{App|FFcast|FFmpeg-based screencast tool written in Bash.|https://github.com/lolilolicon/FFcast|{{AUR|ffcast}}}}<br />
<br />
=== Optical media burning ===<br />
<br />
See [[Optical disc drive#Burning CD/DVD/BD with a GUI]].<br />
<br />
=== Podcasts ===<br />
<br />
see [[List of applications/Internet#Podcast_clients|Podcast clients]]<br />
<br />
=== Collection managers ===<br />
<br />
* {{App|[[Beets]]|Music library organizer, tagger and more.|http://beets.radbox.org/|{{Pkg|beets}}}}<br />
* {{App|Demlo|Batch music tagger, encoder, renamer and more.|http://ambrevar.bitbucket.org/demlo/|{{AUR|demlo}}}}<br />
* {{App|[[Wikipedia:GCstar|GCstar]]|GNOME application for organizing various collections (board games, comic books, movies, stamps, etc.).|http://www.gcstar.org/|{{Pkg|gcstar}}}}<br />
* {{App|[[Kodi]]|Application for organizing various collections and automatically retrieving info about them (video, music, photos).|https://kodi.tv/|{{Pkg|kodi}}}}<br />
* {{App|[[Wikipedia:Tellico|Tellico]]|KDE application for organizing various collections (books, video, music, coins, etc.).|http://tellico-project.org/|{{Pkg|tellico}}}}<br />
<br />
=== Lyrics fetchers ===<br />
<br />
* {{App|clyrics|An extensible lyrics fetcher, with daemon support for cmus and mocp.|http://beets.radbox.org/|{{AUR|clyrics}}}}</div>2419