https://wiki.archlinux.org/api.php?action=feedcontributions&user=Crobe&feedformat=atomArchWiki - User contributions [en]2024-03-29T11:55:37ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Bumblebee&diff=602005Bumblebee2020-03-18T20:59:41Z<p>Crobe: vulkaninfo is a good example for Vulkan functionality.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|PRIME}}<br />
{{Related|Nvidia-xrun}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
:Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.<br />
<br />
{{Note|1=Bumblebee has significant performance issues[https://github.com/Witko/nvidia-xrun/issues/4#issuecomment-153386837][https://bbs.archlinux.org/viewtopic.php?pid=1822926]. See [[NVIDIA Optimus]] for alternative solutions.}}<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[https://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[https://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS does not have to provide this option). If neither "Optimus" or "switchable" is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
[[Install]]:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* An appropriate version of the NVIDIA driver, see [[NVIDIA#Installation]]. <br />
* Optionally install {{Pkg|xf86-video-intel}} - Intel [[Xorg]] driver.<br />
<br />
For 32-bit application support, enable the [[multilib]] repository and install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{AUR|lib32-nvidia-340xx-utils}} (match the version of the regular NVIDIA driver).<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
{{note|The {{Pkg|bumblebee}} package will install a kernel module blacklist file that prevents the {{ic|nvidia-drm}} module from loading on boot. Remember to uninstall this if you later switch away to other solutions.}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
{{Note|A patched version of {{AUR|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}.}}<br />
<br />
For a list of all available options, see {{man|1|optirun}}.<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a [[Lenovo ThinkPad T480]] in an eGPU setup with NVIDIA GTX 1060 6GB and {{AUR|unigine-heaven}} benchmark (1920x1080, max settings, 8x AA):<br />
<br />
{| class="wikitable"<br />
! Command !! Display !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || internal || 20.7 || 521 || 6.9 || 26.6<br />
|-<br />
| primusrun unigine-heaven || internal || 36.9 || 930 || 15.3 || 44.1<br />
|-<br />
| unigine-heaven || internal in [[Nvidia-xrun]] || 51.3 || 1293 || 8.4 || 95.6<br />
|-<br />
| unigine-heaven || external in [[Nvidia-xrun]] || 56.1 || 1414 || 8.4 || 111.9<br />
|}<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you will not have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
==== Pvkrun ====<br />
<br />
{{ic|pvkrun}} from the package {{Pkg|primus_vk}} is a drop-in replacement for {{ic|primusrun}} that enables to run [[Vulkan]]-based applications. A quick check can be done with {{ic|vulkaninfo}} from {{Pkg|vulkan-tools}}.<br />
<br />
$ pvkrun vulkaninfo<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (for {{Pkg|linux}}) or {{Pkg|bbswitch-dkms}} (for {{Pkg|linux-lts}} or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
To run bbswitch without bumblebeed on system startup, do not forget to add {{ic|bbswitch}} to {{ic|/etc/modules-load.d}}.<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then [[enable]] the {{ic|nvidia-enable.service}} unit.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
If the above fix fails, try the following command:<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
To rescan the PCI bus automatically after a suspend, create a script as described in [[Power management#Hooks in /usr/lib/systemd/system-sleep]].<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use ''intel-virtual-output'', a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo's Legion Y720.<br />
<br />
$ optirun intel-virtual-output<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
When run in a terminal, ''intel-virtual-output'' will daemonize itself unless the {{ic|-f}} switch is used. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
If ''intel-virtual-output'' does not detect displays, or if a {{ic|no VIRTUAL outputs on ":0"}} message is obtained, then try editing the following two files as follows (and rebooting):<br />
<br />
{{Style|Comments do not belong into code blocks, but into the surrounding wikitext. See [[Help:Style#Command line text]] and [[Help:Reading]].}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device" # This file does not exist by default<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true" # Bumblebee defaults to false<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "DiscreteNvidia"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "ProbeAllGpus" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "true" # Bumblebee defaults to false<br />
Option "AllowEmptyInitialConfiguration" # Add this line<br />
# Option "UseDisplayDevice" "none" # Remove or comment out this line<br />
EndSection<br />
<br />
Section "Screen" # Add this section<br />
Identifier "Screen0"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
See [https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.<br />
<br />
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.<br />
<br />
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook's screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.<br />
<br />
=== Multiple NVIDIA Graphics Cards ===<br />
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card), you need to make a minor edit to {{ic|/etc/bumblebee/xorg.conf.nvidia}}. If this change is not made the daemon may default to using the internal NVIDIA card. <br />
<br />
First, determine the BusID of the external card:<br />
{{hc|<nowiki>$ lspci | grep -E "VGA|3D"</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)<br />
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)<br />
0b:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)<br />
}}<br />
<br />
In this case, the BusID is {{ic|0b:00.0}}.<br />
<br />
Now edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and add the following line to {{ic|Section "Device"}}:<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "Device"<br />
...<br />
BusID "PCI:11:00:0"<br />
Option "AllowExternalGpus" "true" # If the GPU is external<br />
...<br />
EndSection<br />
}}<br />
<br />
{{Note|Notice that the hex {{ic|0b}} became a base10 {{ic|11}}}}<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installation]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you are using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/bumblebee/xorg.conf.nvidia}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
If the following line in {{ic|/etc/bumblebee/xorg.conf.nvidia}} does not exist, you can add it to the "Device" section:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
If it does already exist, you can try changing it to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
After that, restart the Bumblebee service to apply these changes.<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0)) ====<br />
<br />
You might encounter an issue when after resume from sleep, {{ic|primusrun}} or {{ic|optirun}} command does not work anymore. there are two ways to fix this issue - reboot your system or execute the following command:<br />
<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
And try to test if {{ic|primusrun}} or {{ic|optirun}} works.<br />
<br />
If the above command did not help, try finding your NVIDIA card's bus ID:<br />
$ lspci | grep NVIDIA<br />
<br />
For example, above command showed {{ic|01:00.0}} so we use following commands with this bus ID:<br />
# echo 1 > /sys/bus/pci/devices/0000:'''01:00.0'''/remove<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== [ERROR]Cannot access secondary GPU - error: X did not start properly ===<br />
<br />
Set the {{ic|"AutoAddDevices"}} option to {{ic|"true"}} in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/88 here]):<br />
<br />
{{bc|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
}}<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee do not know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure {{Pkg|nvidia-settings}} is installed and run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to [[Intel#Tearing]] on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You have no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Using Primus causes a segmentation fault ===<br />
<br />
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see {{Bug|58933}}.<br />
<br />
The workaround is skipping auto-detection by manually setting {{ic|PRIMUS_UPLOAD}} [[environment variable]] to either 1 or 2, depending on which one is faster on your setup.<br />
<br />
$ PRIMUS_UPLOAD=1 primusrun ...<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
One possible solution for this is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun does not work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
{{Note|Some tools such as {{ic|powertop --auto-tune}} automatically enable power management on PCI devices, which leads to the same problem [https://github.com/Bumblebee-Project/bbswitch/issues/159]. Use the same workaround or do not use the all-in-one tools.}}<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA Optimus#Lockup issue (lspci hangs)]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
=== Discrete card always on and acpi warnings ===<br />
Add {{ic|1=acpi_osi=Linux}} to your [[Kernel parameters]].<br />
See [https://github.com/Bumblebee-Project/Bumblebee/issues/592] and [https://github.com/Bumblebee-Project/bbswitch/issues/112] for more information.<br />
<br />
=== Screen 0 deleted because of no matching config section ===<br />
Modify the file xorg.conf.nvidia: First add {{ic|Screen 0 "nvidia"}} to the section ServerLayout and then create a new section. <br />
{{bc|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== Erratic, unpredictable behaviour ===<br />
If Bumblebee starts/works in a random manner, check that you have set your [[Network configuration#Local network hostname resolution]] (details [https://github.com/Bumblebee-Project/Bumblebee/pull/939 here]).<br />
<br />
=== Discrete card always on and nvidia driver cannot be unloaded ===<br />
<br />
Make sure {{ic|nvidia-persistenced.service}} is disabled and not currently active. It is intended to keep the {{ic|nvidia}} driver running at all times [https://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/README/nvidia-persistenced.html], which prevents the card being turned off.<br />
<br />
=== Discrete card is silently activated when egl is requested by some application ===<br />
<br />
If the discrete card is activated by some program (lets say mpv with gpu backend) and stays on.<br />
The problem might be {{ic|libglvnd}} which is loading nvidia drivers and activating the card.<br />
<br />
To disable this set environment variable {{ic|__EGL_VENDOR_LIBRARY_FILENAMES}} <br />
(see [https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md documentation]) to only load mesa config file:<br />
<br />
__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"<br />
<br />
Package nvidia-utils (and its branches) is installing nvidia config file at {{ic|/usr/share/glvnd/egl_vendor.d/10_nvidia.json}} which has priority and causes libglvnd to load nvidia drivers and enable the card.<br />
<br />
The other solution is to remove the config file provided by nvidia-utils.<br />
<br />
=== Framerate drops to 1 FPS after a fixed period of time ===<br />
<br />
With the nvidia 440.36 driver, the [https://devtalk.nvidia.com/default/topic/1067676/linux/440-36-with-bumblebee-drops-to-1-fps-after-running-for-10-minutes/post/5409047/#5409047 DPMS setting is enabled by default] resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the "Device" section in {{ic|/etc/bumblebee/xorg.conf.nvidia}}<br />
<br />
{{bc|Option "HardDPMS" "false"}}<br />
<br />
== See also ==<br />
<br />
* [https://www.bumblebee-project.org/ Bumblebee project repository]<br />
* [https://github.com/Bumblebee-Project/Bumblebee/wiki Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Crobehttps://wiki.archlinux.org/index.php?title=Bumblebee&diff=602003Bumblebee2020-03-18T20:50:02Z<p>Crobe: Added results for eGPU and external display</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|PRIME}}<br />
{{Related|Nvidia-xrun}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
:Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.<br />
<br />
{{Note|1=Bumblebee has significant performance issues[https://github.com/Witko/nvidia-xrun/issues/4#issuecomment-153386837][https://bbs.archlinux.org/viewtopic.php?pid=1822926]. See [[NVIDIA Optimus]] for alternative solutions.}}<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[https://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[https://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS does not have to provide this option). If neither "Optimus" or "switchable" is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
[[Install]]:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* An appropriate version of the NVIDIA driver, see [[NVIDIA#Installation]]. <br />
* Optionally install {{Pkg|xf86-video-intel}} - Intel [[Xorg]] driver.<br />
<br />
For 32-bit application support, enable the [[multilib]] repository and install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{AUR|lib32-nvidia-340xx-utils}} (match the version of the regular NVIDIA driver).<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
{{note|The {{Pkg|bumblebee}} package will install a kernel module blacklist file that prevents the {{ic|nvidia-drm}} module from loading on boot. Remember to uninstall this if you later switch away to other solutions.}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
{{Note|A patched version of {{AUR|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}.}}<br />
<br />
For a list of all available options, see {{man|1|optirun}}.<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a [[Lenovo ThinkPad T480]] in an eGPU setup with NVIDIA GTX 1060 6GB and {{AUR|unigine-heaven}} benchmark (1920x1080, max settings, 8x AA):<br />
<br />
{| class="wikitable"<br />
! Command !! Display !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || internal || 20.7 || 521 || 6.9 || 26.6<br />
|-<br />
| primusrun unigine-heaven || internal || 36.9 || 930 || 15.3 || 44.1<br />
|-<br />
| unigine-heaven || internal in [[Nvidia-xrun]] || 51.3 || 1293 || 8.4 || 95.6<br />
|-<br />
| unigine-heaven || external in [[Nvidia-xrun]] || 56.1 || 1414 || 8.4 || 111.9<br />
|}<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you will not have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
==== Pvkrun ====<br />
<br />
{{ic|pvkrun}} from the package {{Pkg|primus_vk}} is a drop-in replacement for {{ic|primusrun}} that enables to run [[Vulkan]]-based applications. <br />
<br />
$ pvkrun wine witcher3.exe<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (for {{Pkg|linux}}) or {{Pkg|bbswitch-dkms}} (for {{Pkg|linux-lts}} or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
To run bbswitch without bumblebeed on system startup, do not forget to add {{ic|bbswitch}} to {{ic|/etc/modules-load.d}}.<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then [[enable]] the {{ic|nvidia-enable.service}} unit.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
If the above fix fails, try the following command:<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
To rescan the PCI bus automatically after a suspend, create a script as described in [[Power management#Hooks in /usr/lib/systemd/system-sleep]].<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use ''intel-virtual-output'', a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo's Legion Y720.<br />
<br />
$ optirun intel-virtual-output<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
When run in a terminal, ''intel-virtual-output'' will daemonize itself unless the {{ic|-f}} switch is used. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
If ''intel-virtual-output'' does not detect displays, or if a {{ic|no VIRTUAL outputs on ":0"}} message is obtained, then try editing the following two files as follows (and rebooting):<br />
<br />
{{Style|Comments do not belong into code blocks, but into the surrounding wikitext. See [[Help:Style#Command line text]] and [[Help:Reading]].}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device" # This file does not exist by default<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true" # Bumblebee defaults to false<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "DiscreteNvidia"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "ProbeAllGpus" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "true" # Bumblebee defaults to false<br />
Option "AllowEmptyInitialConfiguration" # Add this line<br />
# Option "UseDisplayDevice" "none" # Remove or comment out this line<br />
EndSection<br />
<br />
Section "Screen" # Add this section<br />
Identifier "Screen0"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
See [https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.<br />
<br />
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.<br />
<br />
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook's screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.<br />
<br />
=== Multiple NVIDIA Graphics Cards ===<br />
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card), you need to make a minor edit to {{ic|/etc/bumblebee/xorg.conf.nvidia}}. If this change is not made the daemon may default to using the internal NVIDIA card. <br />
<br />
First, determine the BusID of the external card:<br />
{{hc|<nowiki>$ lspci | grep -E "VGA|3D"</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)<br />
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)<br />
0b:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)<br />
}}<br />
<br />
In this case, the BusID is {{ic|0b:00.0}}.<br />
<br />
Now edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and add the following line to {{ic|Section "Device"}}:<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "Device"<br />
...<br />
BusID "PCI:11:00:0"<br />
Option "AllowExternalGpus" "true" # If the GPU is external<br />
...<br />
EndSection<br />
}}<br />
<br />
{{Note|Notice that the hex {{ic|0b}} became a base10 {{ic|11}}}}<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installation]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you are using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/bumblebee/xorg.conf.nvidia}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
If the following line in {{ic|/etc/bumblebee/xorg.conf.nvidia}} does not exist, you can add it to the "Device" section:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
If it does already exist, you can try changing it to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
After that, restart the Bumblebee service to apply these changes.<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0)) ====<br />
<br />
You might encounter an issue when after resume from sleep, {{ic|primusrun}} or {{ic|optirun}} command does not work anymore. there are two ways to fix this issue - reboot your system or execute the following command:<br />
<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
And try to test if {{ic|primusrun}} or {{ic|optirun}} works.<br />
<br />
If the above command did not help, try finding your NVIDIA card's bus ID:<br />
$ lspci | grep NVIDIA<br />
<br />
For example, above command showed {{ic|01:00.0}} so we use following commands with this bus ID:<br />
# echo 1 > /sys/bus/pci/devices/0000:'''01:00.0'''/remove<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== [ERROR]Cannot access secondary GPU - error: X did not start properly ===<br />
<br />
Set the {{ic|"AutoAddDevices"}} option to {{ic|"true"}} in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/88 here]):<br />
<br />
{{bc|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
}}<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee do not know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure {{Pkg|nvidia-settings}} is installed and run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to [[Intel#Tearing]] on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You have no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Using Primus causes a segmentation fault ===<br />
<br />
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see {{Bug|58933}}.<br />
<br />
The workaround is skipping auto-detection by manually setting {{ic|PRIMUS_UPLOAD}} [[environment variable]] to either 1 or 2, depending on which one is faster on your setup.<br />
<br />
$ PRIMUS_UPLOAD=1 primusrun ...<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
One possible solution for this is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun does not work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
{{Note|Some tools such as {{ic|powertop --auto-tune}} automatically enable power management on PCI devices, which leads to the same problem [https://github.com/Bumblebee-Project/bbswitch/issues/159]. Use the same workaround or do not use the all-in-one tools.}}<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA Optimus#Lockup issue (lspci hangs)]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
=== Discrete card always on and acpi warnings ===<br />
Add {{ic|1=acpi_osi=Linux}} to your [[Kernel parameters]].<br />
See [https://github.com/Bumblebee-Project/Bumblebee/issues/592] and [https://github.com/Bumblebee-Project/bbswitch/issues/112] for more information.<br />
<br />
=== Screen 0 deleted because of no matching config section ===<br />
Modify the file xorg.conf.nvidia: First add {{ic|Screen 0 "nvidia"}} to the section ServerLayout and then create a new section. <br />
{{bc|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== Erratic, unpredictable behaviour ===<br />
If Bumblebee starts/works in a random manner, check that you have set your [[Network configuration#Local network hostname resolution]] (details [https://github.com/Bumblebee-Project/Bumblebee/pull/939 here]).<br />
<br />
=== Discrete card always on and nvidia driver cannot be unloaded ===<br />
<br />
Make sure {{ic|nvidia-persistenced.service}} is disabled and not currently active. It is intended to keep the {{ic|nvidia}} driver running at all times [https://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/README/nvidia-persistenced.html], which prevents the card being turned off.<br />
<br />
=== Discrete card is silently activated when egl is requested by some application ===<br />
<br />
If the discrete card is activated by some program (lets say mpv with gpu backend) and stays on.<br />
The problem might be {{ic|libglvnd}} which is loading nvidia drivers and activating the card.<br />
<br />
To disable this set environment variable {{ic|__EGL_VENDOR_LIBRARY_FILENAMES}} <br />
(see [https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md documentation]) to only load mesa config file:<br />
<br />
__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"<br />
<br />
Package nvidia-utils (and its branches) is installing nvidia config file at {{ic|/usr/share/glvnd/egl_vendor.d/10_nvidia.json}} which has priority and causes libglvnd to load nvidia drivers and enable the card.<br />
<br />
The other solution is to remove the config file provided by nvidia-utils.<br />
<br />
=== Framerate drops to 1 FPS after a fixed period of time ===<br />
<br />
With the nvidia 440.36 driver, the [https://devtalk.nvidia.com/default/topic/1067676/linux/440-36-with-bumblebee-drops-to-1-fps-after-running-for-10-minutes/post/5409047/#5409047 DPMS setting is enabled by default] resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the "Device" section in {{ic|/etc/bumblebee/xorg.conf.nvidia}}<br />
<br />
{{bc|Option "HardDPMS" "false"}}<br />
<br />
== See also ==<br />
<br />
* [https://www.bumblebee-project.org/ Bumblebee project repository]<br />
* [https://github.com/Bumblebee-Project/Bumblebee/wiki Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Crobehttps://wiki.archlinux.org/index.php?title=Nvidia-xrun&diff=599018Nvidia-xrun2020-02-25T18:55:41Z<p>Crobe: Add section for eGPU</p>
<hr />
<div>[[Category:Graphics]]<br />
[[ja:Nvidia-xrun]]<br />
[[ru:Nvidia-xrun]]<br />
[[zh-hans:Nvidia-xrun]]<br />
[https://github.com/Witko/nvidia-xrun Nvidia-xrun] is a utility to allow Nvidia optimus enabled laptops run [[X server]] with discrete nvidia graphics on demand. This solution offers full GPU utilization, compatibility and better performance than [[Bumblebee]].<br />
<br />
X server can only be used with integrated graphics or discrete Nvidia graphics, but not both, so user might want to switch to separate [[Linux_console|virtual console]] and start another X server using different graphics from what was used for the first X server.<br />
<br />
== Installation ==<br />
{{Out of date|As of [https://github.com/Witko/nvidia-xrun/issues/109 nvidia-xrun release 0.4], the PM fork has been merged and bbswitch is no longer used. There may be changes to AUR packages and bbswitch configuration}}<br />
[[Install]]:<br />
* {{Pkg|nvidia}}<br />
* {{Pkg|bbswitch}}<br />
* {{AUR|nvidia-xrun}}, {{AUR|nvidia-xrun-git}},<br />
** or {{AUR|nvidia-xrun-pm}} if bbswitch doesn't support your hardware (see [https://bbs.archlinux.org/viewtopic.php?id=238389])<br />
* a [[Window manager]], such as {{Pkg|openbox}} or {{Pkg|xfce4-session}},because running apps directly with {{ic|nvidia-xrun <application>}} does not work well.<br />
<br />
== Configuration ==<br />
=== Setting the right bus id ===<br />
<br />
{{Note|If you installed package from [[AUR]], the bus id has been automatically set in {{ic|/etc/X11/nvidia-xorg.conf}}. Make sure the bus ID has been correctly set, otherwise change it (you can find correct bus ID using {{ic|lspci}} command). In some cases you need to convert the hex output from {{ic|lspci}} to decimal for nvidia-xorg.conf, e.g. 3b:00.0 becomes "PCI:59:0:0"}}<br />
<br />
Find your display device bus id:<br />
$ lspci | grep -i nvidia | awk '{print $1}'<br />
<br />
It might return something similar to '''{{ic|01:00.0}}'''. Then create a file (for example {{ic|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf}}) to set the proper bus id:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "Device"<br />
Identifier "nvidia"<br />
Driver "nvidia"<br />
BusID "PCI:'''1:0:0'''"<br />
EndSection}}<br />
<br />
Also this way you can adjust some nvidia settings if you encounter issues:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "nvidia"<br />
# Option "AllowEmptyInitialConfiguration" "Yes"<br />
# Option "UseDisplayDevice" "none"<br />
EndSection}}<br />
<br />
=== eGPU setup ===<br />
<br />
You can also use this in an eGPU setup. Make sure to load the ''nvidia-modeset'' and ''nvidia-drm'' modules and add the option {{ic|Option "AllowExternalGpus" "true"}} to the ''"Device"'' section.<br />
<br />
Change the auto-generated configuration to use the '''internal display''' on devices with multiple NVIDIA cards:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "ServerLayout"<br />
Identifier "layout"<br />
Screen 0 "nvidia" 0 0<br />
Inactive "intel"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidia"<br />
Driver "nvidia"<br />
BusID "PCI:9:0:0"<br />
Option "AllowExternalGpus" "true"<br />
Option "ProbeAllGpus" "false"<br />
Option "HardDPMS" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "false"<br />
# Option "UseDisplayDevice" "none"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "nvidia"<br />
Option "AllowEmptyInitialConfiguration" "Yes"<br />
# Option "UseDisplayDevice" "None"<br />
EndSection}}<br />
<br />
Remember to set the bus id to the correct graphics card.<br />
<br />
=== Automatically run window manager ===<br />
<br />
For convenience you can create an {{ic|~/.nvidia-xinitrc}} file with your favourite window manager.<br />
<br />
if [ $# -gt 0 ]; then<br />
$*<br />
else<br />
openbox-session<br />
# Alternatively, you can also use xfce4:<br />
# xfce4-session<br />
fi<br />
<br />
With it you do not need to specify the app and can simply execute:<br />
<br />
$ nvidia-xrun<br />
<br />
=== Use bbswitch to manage nvidia ===<br />
When the nvidia card is not needed, ''bbswitch'' can be used to turn it off. The ''nvidia-xrun'' script will automatically take care of running a window manager and waking up the nvidia card. To achieve that, you need to:<br />
<br />
* Load bbswitch module on boot<br />
# echo 'bbswitch ' > /etc/modules-load.d/bbswitch.conf<br />
<br />
* Disable the nvidia module on boot:<br />
# echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf <br />
<br />
After a reboot, the nvidia card will be off. This can be seen by querying bbswitch's status:<br />
<br />
$ cat /proc/acpi/bbswitch <br />
<br />
To force the card to turn on/off respectively run:<br />
<br />
# tee /proc/acpi/bbswitch <<<OFF<br />
# tee /proc/acpi/bbswitch <<<ON<br />
<br />
For more about bbswitch see [https://github.com/Bumblebee-Project/bbswitch Bumblebee-Project/bbswitch].<br />
<br />
== Usage ==<br />
<br />
Once the system boots, from the virtual console, login to your user, and run {{ic|nvidia-xrun <application>}}.<br />
<br />
If above does not work, [[Keyboard_shortcuts#Xorg_and_Wayland|switch]] to unused virtual console and try again.<br />
<br />
As mentioned before, running apps directly with {{ic|nvidia-xrun <application>}} '''does not work well''', so it is best to create an {{ic|~/.nvidia-xinitrc}} as outlined earlier, and use {{ic|nvidia-xrun}} to launch your window manager.<br />
<br />
== Troubleshooting ==<br />
<br />
=== NVIDIA GPU fails to switch off or is set to be default ===<br />
<br />
See [[#Use bbswitch to manage nvidia]].<br />
<br />
If Nvidia GPU still fails to switch off, or is somehow set to be default whenever you use or not {{ic|nvidia-xrun}}, then you might likely need to blacklist specific modules (which were previously blacklisted by [[Bumblebee]]). Create this file and restart your system:<br />
<br />
{{hc|/usr/lib/modprobe.d/nvidia-xrun.conf|<br />
blacklist nvidia<br />
blacklist nvidia-drm<br />
blacklist nvidia-modeset<br />
blacklist nvidia-uvm<br />
blacklist nouveau<br />
}}<br />
<br />
Make sure DRM kernel mode setting is disabled see [[NVIDIA#DRM kernel mode setting]]</div>Crobehttps://wiki.archlinux.org/index.php?title=Nvidia-xrun&diff=599016Nvidia-xrun2020-02-25T18:54:16Z<p>Crobe: Add configuration for eGPU and internal display.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[ja:Nvidia-xrun]]<br />
[[ru:Nvidia-xrun]]<br />
[[zh-hans:Nvidia-xrun]]<br />
[https://github.com/Witko/nvidia-xrun Nvidia-xrun] is a utility to allow Nvidia optimus enabled laptops run [[X server]] with discrete nvidia graphics on demand. This solution offers full GPU utilization, compatibility and better performance than [[Bumblebee]].<br />
<br />
X server can only be used with integrated graphics or discrete Nvidia graphics, but not both, so user might want to switch to separate [[Linux_console|virtual console]] and start another X server using different graphics from what was used for the first X server.<br />
<br />
== Installation ==<br />
{{Out of date|As of [https://github.com/Witko/nvidia-xrun/issues/109 nvidia-xrun release 0.4], the PM fork has been merged and bbswitch is no longer used. There may be changes to AUR packages and bbswitch configuration}}<br />
[[Install]]:<br />
* {{Pkg|nvidia}}<br />
* {{Pkg|bbswitch}}<br />
* {{AUR|nvidia-xrun}}, {{AUR|nvidia-xrun-git}},<br />
** or {{AUR|nvidia-xrun-pm}} if bbswitch doesn't support your hardware (see [https://bbs.archlinux.org/viewtopic.php?id=238389])<br />
* a [[Window manager]], such as {{Pkg|openbox}} or {{Pkg|xfce4-session}},because running apps directly with {{ic|nvidia-xrun <application>}} does not work well.<br />
<br />
== Configuration ==<br />
=== Setting the right bus id ===<br />
<br />
{{Note|If you installed package from [[AUR]], the bus id has been automatically set in {{ic|/etc/X11/nvidia-xorg.conf}}. Make sure the bus ID has been correctly set, otherwise change it (you can find correct bus ID using {{ic|lspci}} command). In some cases you need to convert the hex output from {{ic|lspci}} to decimal for nvidia-xorg.conf, e.g. 3b:00.0 becomes "PCI:59:0:0"}}<br />
<br />
Find your display device bus id:<br />
$ lspci | grep -i nvidia | awk '{print $1}'<br />
<br />
It might return something similar to '''{{ic|01:00.0}}'''. Then create a file (for example {{ic|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf}}) to set the proper bus id:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "Device"<br />
Identifier "nvidia"<br />
Driver "nvidia"<br />
BusID "PCI:'''1:0:0'''"<br />
EndSection}}<br />
<br />
Also this way you can adjust some nvidia settings if you encounter issues:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "nvidia"<br />
# Option "AllowEmptyInitialConfiguration" "Yes"<br />
# Option "UseDisplayDevice" "none"<br />
EndSection}}<br />
<br />
You can also use this in an eGPU setup. Make sure to load the ''nvidia-modeset'' and ''nvidia-drm'' modules and add the option {{ic|Option "AllowExternalGpus" "true"}} to the ''"Device"'' section.<br />
<br />
Change the auto-generated configuration to use the '''internal display''' on devices with multiple NVIDIA cards:<br />
<br />
{{hc|/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf|<br />
Section "ServerLayout"<br />
Identifier "layout"<br />
Screen 0 "nvidia" 0 0<br />
Inactive "intel"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidia"<br />
Driver "nvidia"<br />
BusID "PCI:9:0:0"<br />
Option "AllowExternalGpus" "true"<br />
Option "ProbeAllGpus" "false"<br />
Option "HardDPMS" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "false"<br />
# Option "UseDisplayDevice" "none"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "nvidia"<br />
Option "AllowEmptyInitialConfiguration" "Yes"<br />
# Option "UseDisplayDevice" "None"<br />
EndSection}}<br />
<br />
Remember to set the bus id to the correct graphics card.<br />
<br />
=== Automatically run window manager ===<br />
<br />
For convenience you can create an {{ic|~/.nvidia-xinitrc}} file with your favourite window manager.<br />
<br />
if [ $# -gt 0 ]; then<br />
$*<br />
else<br />
openbox-session<br />
# Alternatively, you can also use xfce4:<br />
# xfce4-session<br />
fi<br />
<br />
With it you do not need to specify the app and can simply execute:<br />
<br />
$ nvidia-xrun<br />
<br />
=== Use bbswitch to manage nvidia ===<br />
When the nvidia card is not needed, ''bbswitch'' can be used to turn it off. The ''nvidia-xrun'' script will automatically take care of running a window manager and waking up the nvidia card. To achieve that, you need to:<br />
<br />
* Load bbswitch module on boot<br />
# echo 'bbswitch ' > /etc/modules-load.d/bbswitch.conf<br />
<br />
* Disable the nvidia module on boot:<br />
# echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf <br />
<br />
After a reboot, the nvidia card will be off. This can be seen by querying bbswitch's status:<br />
<br />
$ cat /proc/acpi/bbswitch <br />
<br />
To force the card to turn on/off respectively run:<br />
<br />
# tee /proc/acpi/bbswitch <<<OFF<br />
# tee /proc/acpi/bbswitch <<<ON<br />
<br />
For more about bbswitch see [https://github.com/Bumblebee-Project/bbswitch Bumblebee-Project/bbswitch].<br />
<br />
== Usage ==<br />
<br />
Once the system boots, from the virtual console, login to your user, and run {{ic|nvidia-xrun <application>}}.<br />
<br />
If above does not work, [[Keyboard_shortcuts#Xorg_and_Wayland|switch]] to unused virtual console and try again.<br />
<br />
As mentioned before, running apps directly with {{ic|nvidia-xrun <application>}} '''does not work well''', so it is best to create an {{ic|~/.nvidia-xinitrc}} as outlined earlier, and use {{ic|nvidia-xrun}} to launch your window manager.<br />
<br />
== Troubleshooting ==<br />
<br />
=== NVIDIA GPU fails to switch off or is set to be default ===<br />
<br />
See [[#Use bbswitch to manage nvidia]].<br />
<br />
If Nvidia GPU still fails to switch off, or is somehow set to be default whenever you use or not {{ic|nvidia-xrun}}, then you might likely need to blacklist specific modules (which were previously blacklisted by [[Bumblebee]]). Create this file and restart your system:<br />
<br />
{{hc|/usr/lib/modprobe.d/nvidia-xrun.conf|<br />
blacklist nvidia<br />
blacklist nvidia-drm<br />
blacklist nvidia-modeset<br />
blacklist nvidia-uvm<br />
blacklist nouveau<br />
}}<br />
<br />
Make sure DRM kernel mode setting is disabled see [[NVIDIA#DRM kernel mode setting]]</div>Crobehttps://wiki.archlinux.org/index.php?title=Bumblebee&diff=597602Bumblebee2020-02-15T21:54:15Z<p>Crobe: Remove primus_vk note.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|PRIME}}<br />
{{Related|Nvidia-xrun}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
:Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.<br />
<br />
{{Note|1=Bumblebee has significant performance issues[https://github.com/Witko/nvidia-xrun/issues/4#issuecomment-153386837][https://bbs.archlinux.org/viewtopic.php?pid=1822926]. See [[NVIDIA Optimus]] for alternative solutions.}}<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[https://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[https://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS does not have to provide this option). If neither "Optimus" or "switchable" is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
[[Install]]:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* An appropriate version of the NVIDIA driver, see [[NVIDIA#Installation]]. <br />
* Optionally install {{Pkg|xf86-video-intel}} - Intel [[Xorg]] driver.<br />
<br />
For 32-bit application support, enable the [[multilib]] repository and install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{AUR|lib32-nvidia-340xx-utils}} (match the version of the regular NVIDIA driver).<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
{{note|The {{Pkg|bumblebee}} package will install a kernel module blacklist file that prevents the {{ic|nvidia-drm}} module from loading on boot. Remember to uninstall this if you later switch away to other solutions.}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
{{Note|A patched version of {{AUR|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}.}}<br />
<br />
For a list of all available options, see {{man|1|optirun}}.<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a [[Lenovo_ThinkPad_T480]] in an eGPU setup with NVIDIA GTX 1060 6GB using the internal Display and {{AUR|unigine-heaven}} benchmark (1920x1080, max settings):<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 20.7 || 521 || 6.9 || 26.6<br />
|-<br />
| primusrun unigine-heaven || 36.9 || 930 || 15.3 || 44.1<br />
|-<br />
| unigine-heaven # in [[Nvidia-xrun]] || 51.3 || 1293 || 8.4 || 95.6<br />
|}<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you will not have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
==== Pvkrun ====<br />
<br />
The package {{Pkg|primus_vk}} is a drop-in replacement for {{ic|primusrun}} that enables to run Vulkan-based applications. <br />
<br />
$ pvkrun wine witcher3.exe # for the DXVK enabled version<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (for {{Pkg|linux}}) or {{Pkg|bbswitch-dkms}} (for {{Pkg|linux-lts}} or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
To run bbswitch without bumblebeed on system startup, do not forget to add {{ic|bbswitch}} to {{ic|/etc/modules-load.d}}.<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then [[enable]] the {{ic|nvidia-enable.service}} unit.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
If the above fix fails, try the following command:<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
To rescan the PCI bus automatically after a suspend, create a script as described in [[Power management#Hooks in /usr/lib/systemd/system-sleep]].<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use ''intel-virtual-output'', a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo's Legion Y720.<br />
<br />
$ optirun intel-virtual-output<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
When run in a terminal, ''intel-virtual-output'' will daemonize itself unless the {{ic|-f}} switch is used. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
If ''intel-virtual-output'' does not detect displays, or if a {{ic|no VIRTUAL outputs on ":0"}} message is obtained, then try editing the following two files as follows (and rebooting):<br />
<br />
{{Style|Comments do not belong into code blocks, but into the surrounding wikitext. See [[Help:Style#Command line text]] and [[Help:Reading]].}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device" # This file does not exist by default<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true" # Bumblebee defaults to false<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "DiscreteNvidia"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "ProbeAllGpus" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "true" # Bumblebee defaults to false<br />
Option "AllowEmptyInitialConfiguration" # Add this line<br />
# Option "UseDisplayDevice" "none" # Remove or comment out this line<br />
EndSection<br />
<br />
Section "Screen" # Add this section<br />
Identifier "Screen0"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
See [https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.<br />
<br />
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.<br />
<br />
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook's screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.<br />
<br />
=== Multiple NVIDIA Graphics Cards ===<br />
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card), you need to make a minor edit to {{ic|/etc/bumblebee/xorg.conf.nvidia}}. If this change is not made the daemon may default to using the internal NVIDIA card. <br />
<br />
First, determine the BusID of the external card:<br />
{{hc|<nowiki>$ lspci | grep -E "VGA|3D"</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)<br />
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)<br />
0b:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)<br />
}}<br />
<br />
In this case, the BusID is {{ic|0b:00.0}}.<br />
<br />
Now edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and add the following line to {{ic|Section "Device"}}:<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "Device"<br />
...<br />
BusID "PCI:11:00:0"<br />
Option "AllowExternalGpus" "true" # If the GPU is external<br />
...<br />
EndSection<br />
}}<br />
<br />
{{Note|Notice that the hex {{ic|0b}} became a base10 {{ic|11}}}}<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installation]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you are using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/bumblebee/xorg.conf.nvidia}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
If the following line in {{ic|/etc/bumblebee/xorg.conf.nvidia}} does not exist, you can add it to the "Device" section:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
If it does already exist, you can try changing it to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
After that, restart the Bumblebee service to apply these changes.<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0)) ====<br />
<br />
You might encounter an issue when after resume from sleep, {{ic|primusrun}} or {{ic|optirun}} command does not work anymore. there are two ways to fix this issue - reboot your system or execute the following command:<br />
<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
And try to test if {{ic|primusrun}} or {{ic|optirun}} works.<br />
<br />
If the above command did not help, try finding your NVIDIA card's bus ID:<br />
$ lspci | grep NVIDIA<br />
<br />
For example, above command showed {{ic|01:00.0}} so we use following commands with this bus ID:<br />
# echo 1 > /sys/bus/pci/devices/0000:'''01:00.0'''/remove<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== [ERROR]Cannot access secondary GPU - error: X did not start properly ===<br />
<br />
Set the {{ic|"AutoAddDevices"}} option to {{ic|"true"}} in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/88 here]):<br />
<br />
{{bc|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
}}<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee do not know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure {{Pkg|nvidia-settings}} is installed and run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to [[Intel#Tearing]] on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You have no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Using Primus causes a segmentation fault ===<br />
<br />
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see {{Bug|58933}}.<br />
<br />
The workaround is skipping auto-detection by manually setting {{ic|PRIMUS_UPLOAD}} [[environment variable]] to either 1 or 2, depending on which one is faster on your setup.<br />
<br />
$ PRIMUS_UPLOAD=1 primusrun ...<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
One possible solution for this is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun does not work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
{{Note|Some tools such as {{ic|powertop --auto-tune}} automatically enable power management on PCI devices, which leads to the same problem [https://github.com/Bumblebee-Project/bbswitch/issues/159]. Use the same workaround or do not use the all-in-one tools.}}<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA Optimus#Lockup issue (lspci hangs)]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
=== Discrete card always on and acpi warnings ===<br />
Add {{ic|1=acpi_osi=Linux}} to your [[Kernel parameters]].<br />
See [https://github.com/Bumblebee-Project/Bumblebee/issues/592] and [https://github.com/Bumblebee-Project/bbswitch/issues/112] for more information.<br />
<br />
=== Screen 0 deleted because of no matching config section ===<br />
Modify the file xorg.conf.nvidia: First add {{ic|Screen 0 "nvidia"}} to the section ServerLayout and then create a new section. <br />
{{bc|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== Erratic, unpredictable behaviour ===<br />
If Bumblebee starts/works in a random manner, check that you have set your [[Network configuration#Local network hostname resolution]] (details [https://github.com/Bumblebee-Project/Bumblebee/pull/939 here]).<br />
<br />
=== Discrete card always on and nvidia driver cannot be unloaded ===<br />
<br />
Make sure {{ic|nvidia-persistenced.service}} is disabled and not currently active. It is intended to keep the {{ic|nvidia}} driver running at all times [https://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/README/nvidia-persistenced.html], which prevents the card being turned off.<br />
<br />
=== Discrete card is silently activated when egl is requested by some application ===<br />
<br />
If the discrete card is activated by some program (lets say mpv with gpu backend) and stays on.<br />
The problem might be {{ic|libglvnd}} which is loading nvidia drivers and activating the card.<br />
<br />
To disable this set environment variable {{ic|__EGL_VENDOR_LIBRARY_FILENAMES}} <br />
(see [https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md documentation]) to only load mesa config file:<br />
<br />
__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"<br />
<br />
Package nvidia-utils (and its branches) is installing nvidia config file at {{ic|/usr/share/glvnd/egl_vendor.d/10_nvidia.json}} which has priority and causes libglvnd to load nvidia drivers and enable the card.<br />
<br />
The other solution is to remove the config file provided by nvidia-utils.<br />
<br />
=== Framerate drops to 1 FPS after a fixed period of time ===<br />
<br />
With the nvidia 440.36 driver, the [https://devtalk.nvidia.com/default/topic/1067676/linux/440-36-with-bumblebee-drops-to-1-fps-after-running-for-10-minutes/post/5409047/#5409047 DPMS setting is enabled by default] resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the "Device" section in {{ic|/etc/bumblebee/xorg.conf.nvidia}}<br />
<br />
{{bc|Option "HardDPMS" "false"}}<br />
<br />
== See also ==<br />
<br />
* [https://www.bumblebee-project.org/ Bumblebee project repository]<br />
* [https://github.com/Bumblebee-Project/Bumblebee/wiki Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Crobehttps://wiki.archlinux.org/index.php?title=Bumblebee&diff=597601Bumblebee2020-02-15T21:48:45Z<p>Crobe: Add a section about primus-vk.</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|PRIME}}<br />
{{Related|Nvidia-xrun}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
:Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.<br />
<br />
{{Note|1=Bumblebee not only has significant performance issues[https://github.com/Witko/nvidia-xrun/issues/4#issuecomment-153386837][https://bbs.archlinux.org/viewtopic.php?pid=1822926], but also has no plans to support [[Vulkan]][https://github.com/Bumblebee-Project/Bumblebee/issues/769#issuecomment-218016574]. See [[NVIDIA Optimus]] for alternative solutions.}}<br />
<br />
{{Expansion|What is [https://github.com/felixdoerre/primus_vk primus_vk] and how can we use it with Bumblebee? Also see {{AUR|primus-vk-git}}}}<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[https://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[https://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS does not have to provide this option). If neither "Optimus" or "switchable" is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
[[Install]]:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* An appropriate version of the NVIDIA driver, see [[NVIDIA#Installation]]. <br />
* Optionally install {{Pkg|xf86-video-intel}} - Intel [[Xorg]] driver.<br />
<br />
For 32-bit application support, enable the [[multilib]] repository and install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{AUR|lib32-nvidia-340xx-utils}} (match the version of the regular NVIDIA driver).<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
{{note|The {{Pkg|bumblebee}} package will install a kernel module blacklist file that prevents the {{ic|nvidia-drm}} module from loading on boot. Remember to uninstall this if you later switch away to other solutions.}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
{{Note|A patched version of {{AUR|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}.}}<br />
<br />
For a list of all available options, see {{man|1|optirun}}.<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a [[Lenovo_ThinkPad_T480]] in an eGPU setup with NVIDIA GTX 1060 6GB using the internal Display and {{AUR|unigine-heaven}} benchmark (1920x1080, max settings):<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 20.7 || 521 || 6.9 || 26.6<br />
|-<br />
| primusrun unigine-heaven || 36.9 || 930 || 15.3 || 44.1<br />
|-<br />
| unigine-heaven # in [[Nvidia-xrun]] || 51.3 || 1293 || 8.4 || 95.6<br />
|}<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you will not have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
==== Pvkrun ====<br />
<br />
The package {{Pkg|primus_vk}} is a drop-in replacement for {{ic|primusrun}} that enables to run Vulkan-based applications. <br />
<br />
$ pvkrun wine witcher3.exe # for the DXVK enabled version<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (for {{Pkg|linux}}) or {{Pkg|bbswitch-dkms}} (for {{Pkg|linux-lts}} or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
To run bbswitch without bumblebeed on system startup, do not forget to add {{ic|bbswitch}} to {{ic|/etc/modules-load.d}}.<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then [[enable]] the {{ic|nvidia-enable.service}} unit.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
If the above fix fails, try the following command:<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
To rescan the PCI bus automatically after a suspend, create a script as described in [[Power management#Hooks in /usr/lib/systemd/system-sleep]].<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use ''intel-virtual-output'', a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo's Legion Y720.<br />
<br />
$ optirun intel-virtual-output<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
When run in a terminal, ''intel-virtual-output'' will daemonize itself unless the {{ic|-f}} switch is used. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
If ''intel-virtual-output'' does not detect displays, or if a {{ic|no VIRTUAL outputs on ":0"}} message is obtained, then try editing the following two files as follows (and rebooting):<br />
<br />
{{Style|Comments do not belong into code blocks, but into the surrounding wikitext. See [[Help:Style#Command line text]] and [[Help:Reading]].}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device" # This file does not exist by default<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true" # Bumblebee defaults to false<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "DiscreteNvidia"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "ProbeAllGpus" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "true" # Bumblebee defaults to false<br />
Option "AllowEmptyInitialConfiguration" # Add this line<br />
# Option "UseDisplayDevice" "none" # Remove or comment out this line<br />
EndSection<br />
<br />
Section "Screen" # Add this section<br />
Identifier "Screen0"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
See [https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.<br />
<br />
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.<br />
<br />
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook's screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.<br />
<br />
=== Multiple NVIDIA Graphics Cards ===<br />
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card), you need to make a minor edit to {{ic|/etc/bumblebee/xorg.conf.nvidia}}. If this change is not made the daemon may default to using the internal NVIDIA card. <br />
<br />
First, determine the BusID of the external card:<br />
{{hc|<nowiki>$ lspci | grep -E "VGA|3D"</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)<br />
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)<br />
0b:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)<br />
}}<br />
<br />
In this case, the BusID is {{ic|0b:00.0}}.<br />
<br />
Now edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and add the following line to {{ic|Section "Device"}}:<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "Device"<br />
...<br />
BusID "PCI:11:00:0"<br />
Option "AllowExternalGpus" "true" # If the GPU is external<br />
...<br />
EndSection<br />
}}<br />
<br />
{{Note|Notice that the hex {{ic|0b}} became a base10 {{ic|11}}}}<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installation]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you are using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/bumblebee/xorg.conf.nvidia}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
If the following line in {{ic|/etc/bumblebee/xorg.conf.nvidia}} does not exist, you can add it to the "Device" section:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
If it does already exist, you can try changing it to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
After that, restart the Bumblebee service to apply these changes.<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0)) ====<br />
<br />
You might encounter an issue when after resume from sleep, {{ic|primusrun}} or {{ic|optirun}} command does not work anymore. there are two ways to fix this issue - reboot your system or execute the following command:<br />
<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
And try to test if {{ic|primusrun}} or {{ic|optirun}} works.<br />
<br />
If the above command did not help, try finding your NVIDIA card's bus ID:<br />
$ lspci | grep NVIDIA<br />
<br />
For example, above command showed {{ic|01:00.0}} so we use following commands with this bus ID:<br />
# echo 1 > /sys/bus/pci/devices/0000:'''01:00.0'''/remove<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== [ERROR]Cannot access secondary GPU - error: X did not start properly ===<br />
<br />
Set the {{ic|"AutoAddDevices"}} option to {{ic|"true"}} in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/88 here]):<br />
<br />
{{bc|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
}}<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee do not know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure {{Pkg|nvidia-settings}} is installed and run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to [[Intel#Tearing]] on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You have no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Using Primus causes a segmentation fault ===<br />
<br />
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see {{Bug|58933}}.<br />
<br />
The workaround is skipping auto-detection by manually setting {{ic|PRIMUS_UPLOAD}} [[environment variable]] to either 1 or 2, depending on which one is faster on your setup.<br />
<br />
$ PRIMUS_UPLOAD=1 primusrun ...<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
One possible solution for this is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun does not work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
{{Note|Some tools such as {{ic|powertop --auto-tune}} automatically enable power management on PCI devices, which leads to the same problem [https://github.com/Bumblebee-Project/bbswitch/issues/159]. Use the same workaround or do not use the all-in-one tools.}}<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA Optimus#Lockup issue (lspci hangs)]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
=== Discrete card always on and acpi warnings ===<br />
Add {{ic|1=acpi_osi=Linux}} to your [[Kernel parameters]].<br />
See [https://github.com/Bumblebee-Project/Bumblebee/issues/592] and [https://github.com/Bumblebee-Project/bbswitch/issues/112] for more information.<br />
<br />
=== Screen 0 deleted because of no matching config section ===<br />
Modify the file xorg.conf.nvidia: First add {{ic|Screen 0 "nvidia"}} to the section ServerLayout and then create a new section. <br />
{{bc|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== Erratic, unpredictable behaviour ===<br />
If Bumblebee starts/works in a random manner, check that you have set your [[Network configuration#Local network hostname resolution]] (details [https://github.com/Bumblebee-Project/Bumblebee/pull/939 here]).<br />
<br />
=== Discrete card always on and nvidia driver cannot be unloaded ===<br />
<br />
Make sure {{ic|nvidia-persistenced.service}} is disabled and not currently active. It is intended to keep the {{ic|nvidia}} driver running at all times [https://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/README/nvidia-persistenced.html], which prevents the card being turned off.<br />
<br />
=== Discrete card is silently activated when egl is requested by some application ===<br />
<br />
If the discrete card is activated by some program (lets say mpv with gpu backend) and stays on.<br />
The problem might be {{ic|libglvnd}} which is loading nvidia drivers and activating the card.<br />
<br />
To disable this set environment variable {{ic|__EGL_VENDOR_LIBRARY_FILENAMES}} <br />
(see [https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md documentation]) to only load mesa config file:<br />
<br />
__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"<br />
<br />
Package nvidia-utils (and its branches) is installing nvidia config file at {{ic|/usr/share/glvnd/egl_vendor.d/10_nvidia.json}} which has priority and causes libglvnd to load nvidia drivers and enable the card.<br />
<br />
The other solution is to remove the config file provided by nvidia-utils.<br />
<br />
=== Framerate drops to 1 FPS after a fixed period of time ===<br />
<br />
With the nvidia 440.36 driver, the [https://devtalk.nvidia.com/default/topic/1067676/linux/440-36-with-bumblebee-drops-to-1-fps-after-running-for-10-minutes/post/5409047/#5409047 DPMS setting is enabled by default] resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the "Device" section in {{ic|/etc/bumblebee/xorg.conf.nvidia}}<br />
<br />
{{bc|Option "HardDPMS" "false"}}<br />
<br />
== See also ==<br />
<br />
* [https://www.bumblebee-project.org/ Bumblebee project repository]<br />
* [https://github.com/Bumblebee-Project/Bumblebee/wiki Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Crobehttps://wiki.archlinux.org/index.php?title=Bumblebee&diff=597600Bumblebee2020-02-15T21:35:23Z<p>Crobe: Add comparison of optirun, primusrun and nvidia-xrun</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|PRIME}}<br />
{{Related|Nvidia-xrun}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
:Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.<br />
<br />
{{Note|1=Bumblebee not only has significant performance issues[https://github.com/Witko/nvidia-xrun/issues/4#issuecomment-153386837][https://bbs.archlinux.org/viewtopic.php?pid=1822926], but also has no plans to support [[Vulkan]][https://github.com/Bumblebee-Project/Bumblebee/issues/769#issuecomment-218016574]. See [[NVIDIA Optimus]] for alternative solutions.}}<br />
<br />
{{Expansion|What is [https://github.com/felixdoerre/primus_vk primus_vk] and how can we use it with Bumblebee? Also see {{AUR|primus-vk-git}}}}<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[https://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[https://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS does not have to provide this option). If neither "Optimus" or "switchable" is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
[[Install]]:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* An appropriate version of the NVIDIA driver, see [[NVIDIA#Installation]]. <br />
* Optionally install {{Pkg|xf86-video-intel}} - Intel [[Xorg]] driver.<br />
<br />
For 32-bit application support, enable the [[multilib]] repository and install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{AUR|lib32-nvidia-340xx-utils}} (match the version of the regular NVIDIA driver).<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
{{note|The {{Pkg|bumblebee}} package will install a kernel module blacklist file that prevents the {{ic|nvidia-drm}} module from loading on boot. Remember to uninstall this if you later switch away to other solutions.}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
{{Note|A patched version of {{AUR|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}.}}<br />
<br />
For a list of all available options, see {{man|1|optirun}}.<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a [[Lenovo_ThinkPad_T480]] in an eGPU setup with NVIDIA GTX 1060 6GB using the internal Display and {{AUR|unigine-heaven}} benchmark (1920x1080, max settings):<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 20.7 || 521 || 6.9 || 26.6<br />
|-<br />
| primusrun unigine-heaven || 36.9 || 930 || 15.3 || 44.1<br />
|-<br />
| unigine-heaven # in [[Nvidia-xrun]] || 51.3 || 1293 || 8.4 || 95.6<br />
|}<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you will not have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (for {{Pkg|linux}}) or {{Pkg|bbswitch-dkms}} (for {{Pkg|linux-lts}} or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
To run bbswitch without bumblebeed on system startup, do not forget to add {{ic|bbswitch}} to {{ic|/etc/modules-load.d}}.<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then [[enable]] the {{ic|nvidia-enable.service}} unit.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
If the above fix fails, try the following command:<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
To rescan the PCI bus automatically after a suspend, create a script as described in [[Power management#Hooks in /usr/lib/systemd/system-sleep]].<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use ''intel-virtual-output'', a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo's Legion Y720.<br />
<br />
$ optirun intel-virtual-output<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
When run in a terminal, ''intel-virtual-output'' will daemonize itself unless the {{ic|-f}} switch is used. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
If ''intel-virtual-output'' does not detect displays, or if a {{ic|no VIRTUAL outputs on ":0"}} message is obtained, then try editing the following two files as follows (and rebooting):<br />
<br />
{{Style|Comments do not belong into code blocks, but into the surrounding wikitext. See [[Help:Style#Command line text]] and [[Help:Reading]].}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device" # This file does not exist by default<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true" # Bumblebee defaults to false<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "DiscreteNvidia"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "ProbeAllGpus" "false"<br />
Option "NoLogo" "true"<br />
Option "UseEDID" "true" # Bumblebee defaults to false<br />
Option "AllowEmptyInitialConfiguration" # Add this line<br />
# Option "UseDisplayDevice" "none" # Remove or comment out this line<br />
EndSection<br />
<br />
Section "Screen" # Add this section<br />
Identifier "Screen0"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
See [https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.<br />
<br />
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.<br />
<br />
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook's screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.<br />
<br />
=== Multiple NVIDIA Graphics Cards ===<br />
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card), you need to make a minor edit to {{ic|/etc/bumblebee/xorg.conf.nvidia}}. If this change is not made the daemon may default to using the internal NVIDIA card. <br />
<br />
First, determine the BusID of the external card:<br />
{{hc|<nowiki>$ lspci | grep -E "VGA|3D"</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)<br />
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)<br />
0b:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)<br />
}}<br />
<br />
In this case, the BusID is {{ic|0b:00.0}}.<br />
<br />
Now edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and add the following line to {{ic|Section "Device"}}:<br />
{{hc|/etc/bumblebee/xorg.conf.nvidia|<br />
Section "Device"<br />
...<br />
BusID "PCI:11:00:0"<br />
Option "AllowExternalGpus" "true" # If the GPU is external<br />
...<br />
EndSection<br />
}}<br />
<br />
{{Note|Notice that the hex {{ic|0b}} became a base10 {{ic|11}}}}<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installation]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you are using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/bumblebee/xorg.conf.nvidia}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
If the following line in {{ic|/etc/bumblebee/xorg.conf.nvidia}} does not exist, you can add it to the "Device" section:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
If it does already exist, you can try changing it to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
After that, restart the Bumblebee service to apply these changes.<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0)) ====<br />
<br />
You might encounter an issue when after resume from sleep, {{ic|primusrun}} or {{ic|optirun}} command does not work anymore. there are two ways to fix this issue - reboot your system or execute the following command:<br />
<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
And try to test if {{ic|primusrun}} or {{ic|optirun}} works.<br />
<br />
If the above command did not help, try finding your NVIDIA card's bus ID:<br />
$ lspci | grep NVIDIA<br />
<br />
For example, above command showed {{ic|01:00.0}} so we use following commands with this bus ID:<br />
# echo 1 > /sys/bus/pci/devices/0000:'''01:00.0'''/remove<br />
# echo 1 > /sys/bus/pci/rescan<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== [ERROR]Cannot access secondary GPU - error: X did not start properly ===<br />
<br />
Set the {{ic|"AutoAddDevices"}} option to {{ic|"true"}} in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/88 here]):<br />
<br />
{{bc|<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Option "AutoAddDevices" "true"<br />
Option "AutoAddGPU" "false"<br />
EndSection<br />
}}<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee do not know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure {{Pkg|nvidia-settings}} is installed and run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to [[Intel#Tearing]] on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You have no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Using Primus causes a segmentation fault ===<br />
<br />
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see {{Bug|58933}}.<br />
<br />
The workaround is skipping auto-detection by manually setting {{ic|PRIMUS_UPLOAD}} [[environment variable]] to either 1 or 2, depending on which one is faster on your setup.<br />
<br />
$ PRIMUS_UPLOAD=1 primusrun ...<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
One possible solution for this is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun does not work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
{{Note|Some tools such as {{ic|powertop --auto-tune}} automatically enable power management on PCI devices, which leads to the same problem [https://github.com/Bumblebee-Project/bbswitch/issues/159]. Use the same workaround or do not use the all-in-one tools.}}<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA Optimus#Lockup issue (lspci hangs)]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
=== Discrete card always on and acpi warnings ===<br />
Add {{ic|1=acpi_osi=Linux}} to your [[Kernel parameters]].<br />
See [https://github.com/Bumblebee-Project/Bumblebee/issues/592] and [https://github.com/Bumblebee-Project/bbswitch/issues/112] for more information.<br />
<br />
=== Screen 0 deleted because of no matching config section ===<br />
Modify the file xorg.conf.nvidia: First add {{ic|Screen 0 "nvidia"}} to the section ServerLayout and then create a new section. <br />
{{bc|<br />
Section "Screen"<br />
Identifier "nvidia"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== Erratic, unpredictable behaviour ===<br />
If Bumblebee starts/works in a random manner, check that you have set your [[Network configuration#Local network hostname resolution]] (details [https://github.com/Bumblebee-Project/Bumblebee/pull/939 here]).<br />
<br />
=== Discrete card always on and nvidia driver cannot be unloaded ===<br />
<br />
Make sure {{ic|nvidia-persistenced.service}} is disabled and not currently active. It is intended to keep the {{ic|nvidia}} driver running at all times [https://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/README/nvidia-persistenced.html], which prevents the card being turned off.<br />
<br />
=== Discrete card is silently activated when egl is requested by some application ===<br />
<br />
If the discrete card is activated by some program (lets say mpv with gpu backend) and stays on.<br />
The problem might be {{ic|libglvnd}} which is loading nvidia drivers and activating the card.<br />
<br />
To disable this set environment variable {{ic|__EGL_VENDOR_LIBRARY_FILENAMES}} <br />
(see [https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md documentation]) to only load mesa config file:<br />
<br />
__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"<br />
<br />
Package nvidia-utils (and its branches) is installing nvidia config file at {{ic|/usr/share/glvnd/egl_vendor.d/10_nvidia.json}} which has priority and causes libglvnd to load nvidia drivers and enable the card.<br />
<br />
The other solution is to remove the config file provided by nvidia-utils.<br />
<br />
=== Framerate drops to 1 FPS after a fixed period of time ===<br />
<br />
With the nvidia 440.36 driver, the [https://devtalk.nvidia.com/default/topic/1067676/linux/440-36-with-bumblebee-drops-to-1-fps-after-running-for-10-minutes/post/5409047/#5409047 DPMS setting is enabled by default] resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the "Device" section in {{ic|/etc/bumblebee/xorg.conf.nvidia}}<br />
<br />
{{bc|Option "HardDPMS" "false"}}<br />
<br />
== See also ==<br />
<br />
* [https://www.bumblebee-project.org/ Bumblebee project repository]<br />
* [https://github.com/Bumblebee-Project/Bumblebee/wiki Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=416230Clevo W840SU2016-01-19T20:50:28Z<p>Crobe: Add bug report and remove ALSA problems.</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
== Installation ==<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
=== Airplane Mode ===<br />
<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
You can automate this by installing the AUR package ''clevo-airplane-mode''.<br />
<br />
=== Webcam ===<br />
<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc<br />
Bus 002 Device 002: ID 8087:07da Intel Corp.<br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
=== Brightness Keys ===<br />
<br />
Only the dimming key works properly by default. This can be resolved by adjusting the keybindings either manually or automatically by a [[desktop environment]] like [[KDE]].<br />
<br />
To do it manually, ensure that {{ic|<XF86MonBrightnessUp>}} [[Extra keyboard keys in Xorg|is mapped]] to e. g. {{ic|xbacklight -inc 10}} (from {{Pkg|xorg-xbacklight}}), resp. {{ic|<XF86MonBrightnessDown>}} to {{ic|xbacklight -dec 10}}.<br />
<br />
=== Sound ===<br />
<br />
Sound mostly works out of the box. Using ''pulseaudio'' simplyfies configuration, switching outputs is possible. <br />
<br />
'''Microphone'''<br />
<br />
The volume control for the microphone is mislabeled and reads ''Digital'' in ALSA.<br />
<br />
=== Touchpad ===<br />
<br />
The touchpad works out of the box with the ''synaptics'' driver. All current features are supported including two finger scroll, two- and three finger click and optional mouse buttons for the edges. Use ''synclient'' for configuration.<br />
Four finger recognition and three finger swipe gestures do not seem to work, though.<br />
<br />
== Problems ==<br />
<br />
=== Suspend/Hibernate/Resume ===<br />
<br />
Suspend to disk works best with kernel 3.14.43-2-lts. Newer kernels, including the new LTS 4.1.9 and 4.2 series lead to black screens or reboots immediately after resuming. Further information may be found in https://bugs.archlinux.org/task/44807 .</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=404040Clevo W840SU2015-10-10T17:53:05Z<p>Crobe: hint on kernel versions for suspend/resume problems.</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
== Installation ==<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
=== Airplane Mode ===<br />
<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
You can automate this by installing the AUR package ''clevo-airplane-mode''.<br />
<br />
=== Webcam ===<br />
<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc<br />
Bus 002 Device 002: ID 8087:07da Intel Corp.<br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
=== Brightness Keys ===<br />
<br />
Only the dimming key works properly by default. This can be resolved by adjusting the keybindings either manually or automatically by a [[desktop environment]] like [[KDE]].<br />
<br />
To do it manually, ensure that {{ic|<XF86MonBrightnessUp>}} [[Extra keyboard keys in Xorg|is mapped]] to e. g. {{ic|xbacklight -inc 10}} (from {{Pkg|xorg-xbacklight}}), resp. {{ic|<XF86MonBrightnessDown>}} to {{ic|xbacklight -dec 10}}.<br />
<br />
=== Sound ===<br />
<br />
Sound mostly works out of the box. Using ''pulseaudio'' simplyfies configuration, switching outputs is possible.<br />
Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ LANG=C aplay -l<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: PCH [HDA Intel PCH], device 0: ALC282 Analog [ALC282 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following {{ic|~/.asoundrc}} resp. {{ic|/etc/asound.conf}} works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
# pcm "dmix:1,0" # Use this for dmix<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
Or alternatively:<br />
<br />
defaults.pcm {<br />
card 1<br />
device 0<br />
}<br />
defaults.ctl {<br />
card 1<br />
device 0<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is necessary for multiple sound sources, as it is not loaded by default for digital devices. This may degrade sound quality. An asound.conf that uses DMIX and works for one owner of a W840SU is this:<br />
<br />
pcm.!default {<br />
type plug<br />
slave.pcm "dmixer"<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
pcm.dmixer {<br />
type dmix<br />
ipc_key 1024<br />
ipc_key_add_uid off<br />
ipc_perm 0666 # so that other users can acces it, e.g. mpd<br />
slave {<br />
pcm "hw:1"<br />
period_time 4 # I had to add this to fix stutter in wine games<br />
period_size 2048<br />
buffer_size 4096<br />
rate 44100<br />
}<br />
bindings {<br />
0 0<br />
1 1<br />
}<br />
}<br />
ctl.dmixer {<br />
type hw<br />
card 1<br />
}<br />
<br />
<br />
'''Microphone'''<br />
<br />
The volume control for the microphone is mislabeled and reads ''Digital''.<br />
<br />
=== Touchpad ===<br />
<br />
The touchpad works out of the box with the ''synaptics'' driver. All current features are supported including two finger scroll, two- and three finger click and optional mouse buttons for the edges. Use ''synclient'' for configuration.<br />
Four finger recognition and three finger swipe gestures do not seem to work, though.<br />
<br />
== Problems ==<br />
<br />
=== Suspend/Hibernate/Resume ===<br />
<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
Suspend to disk works best with kernel 3.14.43-2-lts. Newer kernels, including the new LTS 4.1.9 and 4.2 series lead to black screens or reboots immediately after resuming after the system has been in suspend to disk for several hours. Shorter times in suspend (to disk and ram) work in most cases, which makes the problem hard to debug.<br />
<br />
=== Brightness Keys ===<br />
<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=369890Clevo W840SU2015-04-17T09:08:33Z<p>Crobe: minor additions.</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
== Installation ==<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
=== Airplane Mode ===<br />
<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
You can automate this by installing the AUR package ''clevo-airplane-mode''.<br />
<br />
=== Webcam ===<br />
<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc<br />
Bus 002 Device 002: ID 8087:07da Intel Corp.<br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
=== Brightness Keys ===<br />
<br />
Only the dimming key works properly by default. This can be resolved by adjusting the keybindings either manually or automatically by a [[desktop environment]] like [[KDE]].<br />
<br />
To do it manually, ensure that {{ic|<XF86MonBrightnessUp>}} [[Extra keyboard keys in Xorg|is mapped]] to e. g. {{ic|xbacklight -inc 10}} (from {{Pkg|xorg-xbacklight}}), resp. {{ic|<XF86MonBrightnessDown>}} to {{ic|xbacklight -dec 10}}.<br />
<br />
=== Sound ===<br />
<br />
Sound mostly works out of the box. Using ''pulseaudio'' simplyfies configuration, switching outputs is possible.<br />
Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ LANG=C aplay -l<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: PCH [HDA Intel PCH], device 0: ALC282 Analog [ALC282 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following {{ic|~/.asoundrc}} resp. {{ic|/etc/asound.conf}} works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
# pcm "dmix:1,0" # Use this for dmix<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
Or alternatively:<br />
<br />
defaults.pcm {<br />
card 1<br />
device 0<br />
}<br />
defaults.ctl {<br />
card 1<br />
device 0<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is necessary for multiple sound sources, as it is not loaded by default for digital devices. This may degrade sound quality. An asound.conf that uses DMIX and works for one owner of a W840SU is this:<br />
<br />
pcm.!default {<br />
type plug<br />
slave.pcm "dmixer"<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
pcm.dmixer {<br />
type dmix<br />
ipc_key 1024<br />
ipc_key_add_uid off<br />
ipc_perm 0666 # so that other users can acces it, e.g. mpd<br />
slave {<br />
pcm "hw:1"<br />
period_time 4 # I had to add this to fix stutter in wine games<br />
period_size 2048<br />
buffer_size 4096<br />
rate 44100<br />
}<br />
bindings {<br />
0 0<br />
1 1<br />
}<br />
}<br />
ctl.dmixer {<br />
type hw<br />
card 1<br />
}<br />
<br />
<br />
'''Microphone'''<br />
<br />
The volume control for the microphone is mislabeled and reads ''Digital''.<br />
<br />
=== Touchpad ===<br />
<br />
The touchpad works out of the box with the ''synaptics'' driver. All current features are supported including two finger scroll, two- and three finger click and optional mouse buttons for the edges. Use ''synclient'' for configuration.<br />
Four finger recognition and three finger swipe gestures do not seem to work, though.<br />
<br />
== Problems ==<br />
<br />
=== Suspend/Hibernate/Resume ===<br />
<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
=== Brightness Keys ===<br />
<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Talk:Clevo_W840SU&diff=317899Talk:Clevo W840SU2014-06-03T19:18:27Z<p>Crobe: Created page with "Battery still does not monitor discharge information and gives only a rough estimation of its current state."</p>
<hr />
<div>Battery still does not monitor discharge information and gives only a rough estimation of its current state.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=312905Clevo W840SU2014-05-01T13:26:46Z<p>Crobe: touchpad additions</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
== Sound ==<br />
Sound mostly works out of the box. Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ aplay -l<br />
**** Liste der Hardware-Geräte (PLAYBACK) ****<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC282 Analog [ALC282 Analog]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following ''~/.asoundrc'' works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
# pcm "dmix:1,0" # Use this for dmix<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is neccessary for multiple sound sources, as it is not loaded by default for digital devices. This may degrade sound quality.<br />
<br />
'''Microphone'''<br />
<br />
The volume control for the microphone is mislabeled and reads ''Digital''.<br />
<br />
== Touchpad ==<br />
The touchpad works out of the box with the ''synaptics'' driver. All current features are supported including two finger scroll, two- and three finger click and optional mouse buttons for the edges. Use ''synclient'' for configuration.<br />
Four finger recognition and three finger swipe gestures do not seem to work, though.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=309480Clevo W840SU2014-04-09T15:47:14Z<p>Crobe: Microphone hint</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
== Sound ==<br />
Sound mostly works out of the box. Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ aplay -l<br />
**** Liste der Hardware-Geräte (PLAYBACK) ****<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC282 Analog [ALC282 Analog]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following ''~/.asoundrc'' works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
# pcm "dmix:1,0" # Use this for dmix<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is neccessary for multiple sound sources, as it is not loaded by default for digital devices. This may degrade sound quality.<br />
<br />
'''Microphone'''<br />
The volume control for the microphone is mislabeled and reads ''Digital''.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=309343Clevo W840SU2014-04-08T19:56:51Z<p>Crobe: Changed configuration slightly.</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
== Sound ==<br />
Sound mostly works out of the box. Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ aplay -l<br />
**** Liste der Hardware-Geräte (PLAYBACK) ****<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC282 Analog [ALC282 Analog]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following ''~/.asoundrc'' works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
# pcm "dmix:1,0" # Use this for dmix<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is neccessary for multiple sound sources, as it is not loaded by default for digital devices. This may degrade sound quality.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=309319Clevo W840SU2014-04-08T18:07:42Z<p>Crobe: Some corrections</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
== Sound ==<br />
Sound mostly works out of the box. Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ aplay -l<br />
**** Liste der Hardware-Geräte (PLAYBACK) ****<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC282 Analog [ALC282 Analog]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas '''only''' number 7 works for HDMI audio. The second card is the Analog output including the speakers and the output jack. PulseAudio, as described on [[PulseAudio/Examples]] has a bug with more than 1 HDMI audio output, but the described workaround by editing ''default.pa'' did not help for this device.<br />
<br />
Instead, the following ''~/.asoundrc'' works by setting the default ALSA device to either HDMI or analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
pcm.dsp {<br />
type plug<br />
slave.pcm "dmix"<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is neccessary, as it is not loaded by default for digital devices.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=309318Clevo W840SU2014-04-08T18:05:43Z<p>Crobe: Added sound information</p>
<hr />
<div>[[Category:Clevo]]<br />
The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
== Sound ==<br />
Sound mostly works out of the box. Unfortunately, the Haswell Intel HD Audio has a strange device list:<br />
<br />
$ aplay -l<br />
**** Liste der Hardware-Geräte (PLAYBACK) ****<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC282 Analog [ALC282 Analog]<br />
Sub-Geräte: 1/1<br />
Sub-Gerät #0: subdevice #0<br />
<br />
The first three devices on the first card are HDMI devices, whereas only number 7 works for HDMI Audio. The second card is the Analog output including the speakers and the output jack. Pulseaudio, as described on [[PulseAudio/Examples]] has a bug with more then 1 HDMI Audio output, but the described workaround did not help for this device.<br />
<br />
Instead, the following ~/.asoundrc works by setting the default ALSA device to either HDMI or Analog:<br />
<br />
pcm.!default {<br />
type plug<br />
slave {<br />
pcm "hw:1,0" # 1,0 is analog<br />
# pcm "hw:0,7" # 1,0 is HDMI<br />
}<br />
}<br />
ctl.!default {<br />
type hw<br />
card 1<br />
}<br />
pcm.dsp {<br />
type plug<br />
slave.pcm "dmix"<br />
}<br />
<br />
You have to restart all ALSA devices for this to work. Including DMIX is neccessary, as it is not loaded by default for digital devices.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=User:Crobe&diff=304426User:Crobe2014-03-14T08:01:07Z<p>Crobe: Created user page</p>
<hr />
<div>User crobe<br />
<br />
Germany<br />
<br />
Used Linux dists: SuSE Linux 6.3, Mandrake Linux 10.1, Debian 3.0</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=304424Clevo W840SU2014-03-14T07:58:48Z<p>Crobe: Brightness controls</p>
<hr />
<div>The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.<br />
<br />
== Brightness Keys ==<br />
The brightness keys stop working after an external display was connected. This may be due to the fact, that the device exposes two brightness controls:<br />
<br />
$ ls /sys/class/backlight/<br />
acpi_video0 intel_backlight<br />
<br />
Changing the brightness is still possible via the inte_backlight control but not via ACPI, which is used by KDE.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=304423Clevo W840SU2014-03-14T07:57:19Z<p>Crobe: Brightness</p>
<hr />
<div>The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
== Brightness Keys ==<br />
Brightness keys are not recognized while booting and work magically once KDE is started.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=304422Clevo W840SU2014-03-14T07:55:19Z<p>Crobe: Battery monitoring.</p>
<hr />
<div>The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
== Battery Monitoring ==<br />
The battery does not report any discharge information. <br />
<br />
$ cat current_now <br />
cat: current_now: No such device<br />
<br />
Current monitoring is only possible by following the ''charge_now'' and ''voltage_now'', but this gives only a rough estimation.<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.</div>Crobehttps://wiki.archlinux.org/index.php?title=Clevo_W840SU&diff=304421Clevo W840SU2014-03-14T07:50:12Z<p>Crobe: Add Clevo W840SU</p>
<hr />
<div>The W840SU is a device by the taiwanese OEM manufacturer Clevo. It is sold as Schenker S403, Tuxedo Book UC1402 and Nexoc B401. A touch version exists as W840SU-T or UT1402. The hardware is configurable and includes an Intel Haswell Core i3/i5/i7, Intel HD 4400 graphics, a 7 mm harddrive, a mSATA device (storage, 3g/LTE modem) and a HDMI output.<br />
<br />
= Installation =<br />
<br />
Installing Archlinux is straightforward and most of the hardware works out of the box.<br />
<br />
== Airplane Mode ==<br />
To make use of the flightmode button, install ''tuxedo-wmi'' from the AUR and load the tuxedo-wmi module. Use xbindkeys to map the key 255 (NoSymbol) to some script that disables wifi and bluetooth and enables the airplane mode LED.<br />
<br />
$ cat ~/.xbindkeysrc<br />
"sudo /home/user/bin/setAirplane.sh"<br />
m:0x0 + c:255<br />
NoSymbol<br />
<br />
Enable the LED with:<br />
<br />
echo 1 > /sys/class/leds/tuxedo::airplane/brightness<br />
<br />
== Webcam ==<br />
The webcam needs to be activated by pressing FN+F10, otherwise you do not see the device.<br />
<br />
$ lsusb<br />
Bus 001 Device 002: ID 8087:8000 Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 002 Device 003: ID 5986:0536 Acer, Inc <br />
Bus 002 Device 002: ID 8087:07da Intel Corp. <br />
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
<br />
= Problems =<br />
<br />
== Suspend/Hibernate/Resume ==<br />
Resuming with an inserted SD stops after reading the image. This is most likely a problem with the cardreader driver and is still investigated.</div>Crobehttps://wiki.archlinux.org/index.php?title=PulseAudio&diff=249837PulseAudio2013-03-07T20:38:40Z<p>Crobe: Low mic volume.</p>
<hr />
<div>[[Category:Audio/Video]]<br />
[[cs:PulseAudio]]<br />
[[es:PulseAudio]]<br />
[[fr:PulseAudio]]<br />
[[it:PulseAudio]]<br />
[[pt:PulseAudio]]<br />
[[ru:PulseAudio]]<br />
[[tr:PulseAudio]]<br />
[[Wikipedia:PulseAudio|PulseAudio]] is the default sound server that serves as a proxy to sound applications using existing kernel sound components like [[ALSA]] or [[OSS]]. Since [[ALSA]] is included in Arch Linux by default so the most common deployment scenarios include PulseAudio with [[ALSA]].<br />
<br />
{{Article summary start}}<br />
{{Article summary text|'''PulseAudio''' is a general purpose sound server. For a list of features, see [[Wikipedia:PulseAudio#Features]].}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|PulseAudio/Examples}}<br />
{{Article summary end}}<br />
<br />
==Installation==<br />
*Required PKG: {{Pkg|pulseaudio}}<br />
*Optional GTK GUIs: {{Pkg|paprefs}} and {{Pkg|pavucontrol}}<br />
*Optional volume control via mapped keyboard keys: {{AUR|pulseaudio_ctl}}<br />
*Optional console mixer: {{AUR|ponymix-git}} and {{AUR|pamixer-git}}<br />
*Optional system tray icon: {{AUR|pasystray-git}}<br />
*Optional KDE plasma applet: {{Pkg|kdemultimedia-kmix}} and {{AUR|kdeplasma-applets-veromix}}<br />
<br />
==Running==<br />
{{Note|Pulseaudio requires [[D-Bus]] to function.}}<br />
{{Note|Most X11 environments start pulseaudio automatically with the X11 session.}}<br />
<br />
In the unlikely event that pulseaudio is not automatically called upon entering X, it can can be started with:<br />
$ pulseaudio --start<br />
<br />
PulseAudio can be stopped with:<br />
$ pulseaudio --kill<br />
<br />
==Equalizer==<br />
<br />
Newer pulseaudio versions have an intergrated 10-band equalizer system. In order to use the equalizer do the following:<br />
<br />
===Load equalizer sink module===<br />
<br />
$ pactl load-module module-equalizer-sink<br />
<br />
===Install and run the gui frontend===<br />
<br />
# pacman -S --needed python2-pyqt<br />
<br />
$ qpaeq<br />
<br />
{{Note|If qpaeq has no effect, install pavucontrol and change "ALSA Playback on" to "FFT based equalizer on ..." while the media player is running.}}<br />
<br />
===Load equalizer module on every boot===<br />
<br />
Edit the file {{ic|/etc/pulse/default.pa}} with your favorite editor and append the following lines:<br />
<br />
### Load the integrated pulseaudio equalizer module<br />
load-module module-equalizer-sink<br />
<br />
==Backend Configuration==<br />
<br />
===ALSA===<br />
*Recommended PKG: {{Pkg|pulseaudio-alsa}}<br />
*Optional PKGs: {{Pkg|lib32-libpulse}} and {{Pkg|lib32-alsa-plugins}}<br />
<br />
{{Note|Optional PKGs are needed only if running x86_64 and wanting to have sound for 32 bit programs (like Wine).}}<br />
<br />
For the applications that do not support PulseAudio and support ALSA it is '''recommended''' to install the PulseAudio plugin for ALSA. This package also contains the necessary {{ic|/etc/asound.conf}} for configuring ALSA to use PulseAudio.<br />
<br />
To prevent applications from using ALSA's OSS emulation and bypassing Pulseaudio (thereby preventing other applications from playing sound), make sure the module {{ic|snd_pcm_oss}} is not being loaded at boot. If it is currently loaded (<code>lsmod|grep oss</code>), disable it by executing:<br />
# rmmod snd_pcm_oss<br />
<br />
===ALSA/dmix without grabbing hardware device===<br />
{{Note|This section describes alternative configuration, which is generally NOT recommended.}}<br />
<br />
You may want to use ALSA directly in most of your applications and to be able to use other applications, which constantly require PulseAudio at the same time. The following steps allow you to make PulseAudio use dmix instead of grabbing ALSA hardware device.<br />
<br />
*Remove package {{Pkg|pulseaudio-alsa}}, which provides compatibility layer between ALSA applications and PulseAudio. After this your ALSA apps will use ALSA directly without being hooked by Pulse.<br />
$ sudo pacman -R pulseaudio-alsa<br />
<br />
*Edit {{ic|/etc/pulse/default.pa}}.<br />
:Find and uncomment lines which load backend drivers. Add '''device''' parameters as follows. Then find and comment lines which load autodetect modules.<br />
load-module module-alsa-sink '''device=dmix'''<br />
load-module module-alsa-source '''device=dsnoop'''<br />
# load-module module-udev-detect<br />
# load-module module-detect<br />
<br />
*''Optional:'' If you use {{Pkg|kdemultimedia-kmix}} you may want to control ALSA volume instead of PulseAudio volume:<br />
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh<br />
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh<br />
<br />
*Now, reboot your computer and try running alsa and pulseaudio applications at the same time. They both should produce sound simultaneously.<br />
:Use {{Pkg|pavucontrol}} to control PulseAudio volume if needed.<br />
<br />
===OSS===<br />
There are multiple ways of making OSS-only programs play to PulseAudio:<br />
<br />
====ossp====<br />
Start {{Pkg|ossp}} with:<br />
rc.d start osspd<br />
<br />
Afterwards, add it to DAEMONS in {{ic|rc.conf}}.<br />
<br />
====padsp wrapper (part of PulseAudio)====<br />
Programs using OSS can work with PulseAudio by starting it with padsp:<br />
<br />
$ padsp OSSprogram<br />
A few examples:<br />
$ padsp aumix<br />
$ padsp sox foo.wav -t ossdsp /dev/dsp<br />
<br />
One can also rename the {{ic|OSSprogram-bin}} binary and replace it with a script like this: <br />
{{hc|/usr/bin/OSSProgram|<nowiki><br />
#!/bin/sh<br />
if test -x /usr/bin/padsp; then<br />
exec /usr/bin/padsp /usr/bin/OSSprogram-bin "$@"<br />
else<br />
exec /usr/bin/OSSprogram "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
===GStreamer===<br />
To make [[GStreamer]] use PulseAudio, you need to install {{Pkg|gstreamer0.10-good-plugins}}, execute {{ic|gstreamer-properties}} (part of ''gnome-media'' package) and select ''PulseAudio Sound Server'' in both Audio Input and Output. Alternatively, this can be done by setting the gconf variables {{ic|/system/gstreamer/0.10/default/audiosink}} to ''pulsesink'' and {{ic|/system/gstreamer/0.10/default/audiosrc}} to ''pulsesrc'':<br />
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink<br />
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc<br />
<br />
Some applications (like Rhythmbox) ignore the ''audiosink'' property, but rely instead on ''musicaudiosink'', which cannot be configured using {{ic|gstreamer-properties}} but needs to be manually set using {{ic|gconf-editor}} or the {{ic|gconftool-2}}:<br />
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink<br />
<br />
===OpenAL===<br />
OpenAL Soft should use PulseAudio by default, but can be explicitly configured to do so: {{hc|/etc/openal/alsoft.conf|2=drivers=pulse,alsa}}<br />
<br />
===libao===<br />
Edit the libao configuration file:<br />
{{hc|/etc/libao.conf|2=default_driver=pulse}}<br />
Be sure to remove the ''dev=default'' option of the alsa driver or adjust it to specify a specific Pulse sink name or number. Alternatively, note that you could keep the libao standard of outputting to the ''alsa'' driver and its default device if you install {{Pkg|pulseaudio-alsa}} since the ALSA default device then '''is''' PulseAudio.<br />
<br />
===ESD===<br />
PulseAudio is a drop-in replacement for the enlightened sound daemon (ESD). While PulseAudio is running, ESD clients should be able to output to it without configuration.<br />
<br />
==Desktop Environments==<br />
===General X11===<br />
{{Note|As mentioned previously, PulseAudio is very likely launched automatically via either {{ic|/etc/X11/xinit/xinitrc.d/pulseaudio}} or the files in {{ic|/etc/xdg/autostart/}} if users have some DE installed.}}<br />
<br />
Check to see if PulseAudio is running:<br />
<br />
$ ps aux | grep pulse<br />
facade 1794 0.0 0.0 360464 6532 ? S<l 15:33 0:00 /usr/bin/pulseaudio --start<br />
facade 1827 0.0 0.0 68888 2608 ? S 15:33 0:00 /usr/lib/pulse/gconf-helper<br />
<br />
If Pulseaudio is not running and users are using X, the following will start PulseAudio with the needed the X11 plugins manually:<br />
$ start-pulseaudio-x11<br />
<br />
If you are not running Gnome, KDE or XFCE and your {{ic|~/.xinitrc}} does not source the scripts in {{ic|/etc/X11/xinit/xinitrc.d}} (such as is done in the example file {{ic|/etc/skel/.xinitrc}}) then you can launch PulseAudio on boot by adding the following line to ~/.xinitrc:<br />
/usr/bin/start-pulseaudio-x11<br />
<br />
===GNOME===<br />
As of GNOME 3, GNOME fully integrates with PulseAudio and no extra configuration is needed.<br />
<br />
===KDE 3===<br />
PulseAudio is ''not'' a drop-in replacement for aRts. Users of KDE 3 cannot use PulseAudio. However note, recent versions of PulseAudio may have eliminated the prohibition:<br />
<br />
See: http://www.pulseaudio.org/wiki/PerfectSetup KDE 3 uses the artsd sound server by default. However, artsd itself can be configured to use an Esound backend. Edit kcmartsrc (either in /etc/kde or /usr/share/config for global configuration or .kde/share/config to configure only one user) like this:<br />
<br />
[Arts]<br />
Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c drkonqi -l 3 -f<br />
NetworkTransparent=true<br />
SuspendTime=1<br />
<br />
===KDE Plasma Workspaces and Qt4===<br />
PulseAudio, it will be used by KDE/Qt4 applications. For more information see the [http://www.pulseaudio.org/wiki/KDE KDE page in the PulseAudio wiki].<br />
<br />
PulseAudio support has been merged into KMix, the default KDE sound mixer.<br />
<br />
If the phonon-gstreamer backend is used for Phonon, GStreamer should also be [[PulseAudio#GStreamer|configured]] to use PulseAudio by installing {{Pkg|gstreamer0.10-good-plugins}}.<br />
<br />
One useful tidbit from that page is to add {{ic|load-module module-device-manager}} to {{ic|/etc/pulse/default.pa}}.<br />
<br />
Additionally, the {{AUR|kdeplasma-applets-veromix}} is available in the [[AUR]] as a KDE alternative to KMix or pavucontrol.<br />
<br />
===Xfce===<br />
Applications running under Xfce can take advantage of PulseAudio. To manage PulseAudio settings you can use {{Pkg|pavucontrol}}.<br />
<br />
==Applications==<br />
===Audacious===<br />
[[Audacious]] natively supports PulseAudio. In order to use it, set Audacious Preferences -> Audio -> Current output plugin to 'PulseAudio Output Plugin'.<br />
<br />
===Java/OpenJDK 6===<br />
Create a wrapper for the java executable using padsp as seen on the [[Java#Java_sound_with_Pulseaudio|Java sound with Pulseaudio]] page.<br />
<br />
===Music Player Daemon (MPD)===<br />
[http://mpd.wikia.com/wiki/PulseAudio configure] [[MPD]] to use PulseAudio.<br />
<br />
===MPlayer===<br />
[[MPlayer]] natively supports PulseAudio output with the "{{ic|-ao pulse}}" option. It can also be configured to default to PulseAudio output, in {{ic|~/.mplayer/config}} for per-user, or {{ic|/etc/mplayer/mplayer.conf}} for system-wide:<br />
{{hc|/etc/mplayer/mplayer.conf|2=ao=pulse}}<br />
<br />
===Skype (x86_64 only)===<br />
Install {{Pkg|lib32-libpulse}}, otherwise the following error will occur when trying to initiate a call: "Problem with Audio Playback".<br />
<br />
==Troubleshooting==<br />
===No sound after install===<br />
<br />
====Muted audio device====<br />
If one experiences no audio output via any means while using ALSA, attempt to unmute the sound card. To do this, launch alsamixer and make sure each column has a green 00 under it (this can be toggled by pressing 'm')<br />
$ alsamixer -c 0<br />
<br />
====Bad configuration files====<br />
If after starting pulseaudio, the system outputs no sound, it may be necessary to delete the contents of {{ic|~/.pulse}}. Pulseaudio will automatically create new configuration files on its next start.<br />
<br />
====Flash Content====<br />
Since Adobe Flash does not directly support PulseAudio the recommended way is to [https://wiki.archlinux.org/index.php/PulseAudio#ALSA configure ALSA to use the virtual PulseAudio soundcard].<br />
<br />
Alternatively you may try out {{AUR|libflashsupport-pulse}} from the [[AUR]].<br />
{{Note|This may invariably crash the flash plugin.}}<br />
<br />
====No cards====<br />
If PulseAudio starts, run {{ic|pacmd list}}. If no cards are reported, make sure that the ALSA devices are not in use:<br />
$ fuser -v /dev/snd/*<br />
$ fuser -v /dev/dsp<br />
<br />
Make sure any applications using the pcm or dsp files are shut down before restarting PulseAudio.<br />
<br />
====The only device shown is "dummy output"====<br />
This may be caused by different reasons, one of them being the .asoundrc file in $HOME is taking precedence over the systemwide /etc/asound.conf.<br />
<br />
The user file is modified also by the tool '''asoundconf''' or by its graphical variant '''asoundconf-gtk''' (the latter is named "Default sound card" in the menu) as soon as it runs. Prevent the effects of .asoundrc altogether by commenting the last line like this:<br />
<br />
#</home/<yourusername>/.asoundrc.asoundconf><br />
<br />
Another reason is [[FluidSynth]] conclicting with pulseaudio as discussed in [https://bbs.archlinux.org/viewtopic.php?id=154002 this thread]. The solution is to remove FluidSynth:<br />
<br />
# pacman -Rnsc fluidsynth<br />
<br />
====KDE4====<br />
It may be that another output device set as preferred in phonon. Make sure that every setting reflects the preferred output device at the top, and check the playback streams tab in kmix to make sure that applications are using the device for output.<br />
<br />
====Failed to create sink input: sink is suspended====<br />
If you do not have any output sound and receive dozens of errors related to a suspended sink in your '''journalctl -b''' log, then backup first and then delete your user-specific pulse folders:<br />
<br />
$ rm -r ~/.pulse ~/.pulse-cookie<br />
<br />
===Bluetooth headset replay problems===<br />
Some user [https://bbs.archlinux.org/viewtopic.php?id=117420 report] huge delays or even no sound when the bluetooth connection does not send any data. This is due to an idle-suspend-module that puts the related sinks/sources automatically into suspend. As this can cause problems with headset, the responsible module can be deactivated. <br />
<br />
1. cp /etc/pulse/default.pa ~/.pulse/default.pa<br />
2. comment out the "load-module module-suspend-on-idle" line in ~/.pulse/default.pa<br />
3. pulseaudio -k && pulseaudio --start<br />
<br />
[http://robert.orzanna.de/2011/08/prevent-idle-suspend-with-bluetooth.html More information]<br />
<br />
===Automatically switch to Bluetooth or USB headset===<br />
Add the following to your /etc/pulse/default.pa:<br />
<br />
# automatically switch to newly-connected devices<br />
load-module module-switch-on-connect<br />
<br />
===Pulse overwrites ALSA settings===<br />
Pulseaudio usually overwrites the ALSA settings- for example set with alsamixer- at start up, even when the alsa daemon is loaded. Since there seems to be no other way to restrict this behaviour, a workaround is to restore the alsa settings again after pulseaudio had started. Add the following command to {{ic|.xinitrc}} {{ic|.bash_login}} or any other autostart file:<br />
<br />
restore_alsa() {<br />
while [ -z "`pidof pulseaudio`" ]; do<br />
sleep 0.5<br />
done<br />
alsactl -f /var/lib/alsa/asound.state restore <br />
}<br />
restore_alsa &<br />
<br />
===Prevent Pulse from restarting after being killed===<br />
Sometimes you may wish to temporarily disable Pulse. In order to do so you will have to prevent Pulse from restarting after being killed.<br />
<br />
$ echo autospawn=no > ~/.pulse/client.conf<br />
<br />
===Daemon startup failed===<br />
Try resetting PulseAudio. To do that:<br />
$ pulseaudio --kill<br />
$ killall pulseaudio<br />
$ killall -9 pulseaudio<br />
$ rm -rf ~/.pulse*<br />
$ rm -rf /tmp/pulse*<br />
<br />
Afterwards, start PulseAudio again.<br />
<br />
If there is no server running but pulseaudio fails to start with an error message "User-configured server at ... refusing to start/autospawn", the issue may be with PulseAudio settings from a previous login. Check to see if there are any stale properties attached to the X11 root window with {{ic|pax11publish -d}}, and if there are, remove them with {{ic|pax11publish -r}} before trying to start the server. This manual cleanup is always required when using LXDM because it does not restart the X server on logout; see [[LXDM#PulseAudio]].<br />
<br />
===padevchooser===<br />
If one cannot launch the PulseAudio Device Chooser, first (re)start the Avahi daemon as follows:<br />
$ rc.d restart avahi-daemon<br />
<br />
===Glitches, skips or crackling===<br />
The newer implementation of PulseAudio sound server uses a timer-based audio scheduling instead of the traditional interrupt-driven approach. <br />
<br />
Timer-based scheduling may expose issues in some ALSA drivers. On the other hand, other drivers might be glitchy without it on, so check to see what works on your system. <br />
<br />
To turn timer-based scheduling off, replace the line:<br />
load-module module-udev-detect <br />
in {{ic|/etc/pulse/default.pa}} by:<br />
load-module module-udev-detect tsched=0<br />
Then restart the PulseAudio server.<br />
<br />
Do the reverse to enable timer-based scheduling, if not already enabled by default.<br />
<br />
Please report any such cards to [http://pulseaudio.org/wiki/BrokenSoundDrivers PulseAudio Broken Sound Driver page]<br />
<br />
===Setting the default fragment number and buffer size in Pulseaudio===<br />
<br />
1. Finding out your audio device parameters<br />
<br />
Run the following Bash commands to find your sound card buffering settings:<br />
echo autospawn = no >> ~/.pulse/client.conf<br />
killall pulseaudio<br />
LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10<br />
sed -i '$d' ~/.pulse/client.conf<br />
<br />
For each sound card detected by Pulseaudio, you will see output similar to this:<br />
I: [pulseaudio] source.c: alsa.long_card_name = "HDA Intel at 0xfa200000 irq 46"<br />
I: [pulseaudio] source.c: alsa.driver_name = "snd_hda_intel"<br />
I: [pulseaudio] source.c: device.bus_path = "pci-0000:00:1b.0"<br />
I: [pulseaudio] source.c: sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"<br />
I: [pulseaudio] source.c: device.bus = "pci"<br />
I: [pulseaudio] source.c: device.vendor.id = "8086"<br />
I: [pulseaudio] source.c: device.vendor.name = "Intel Corporation"<br />
I: [pulseaudio] source.c: device.product.name = "82801I (ICH9 Family) HD Audio Controller"<br />
I: [pulseaudio] source.c: device.form_factor = "internal"<br />
I: [pulseaudio] source.c: device.string = "front:0"<br />
I: [pulseaudio] source.c: device.buffering.buffer_size = "768000"<br />
I: [pulseaudio] source.c: device.buffering.fragment_size = "384000"<br />
<br />
Take note the buffer_size and fragment_size values for the relevant sound card.<br />
<br />
2. Calculate your fragment size in msecs and number of fragments<br />
<br />
Pulseaudio's default sampling rate and bit depth are set to 44100Hz @ 16 bits.<br />
<br />
With this configuration, the bit rate we need is 44100*16 = 705600 bits per second. That's 1411200 bps for stereo.<br />
<br />
Let's take a look at the parameters we've found in the previous step:<br />
<br />
device.buffering.buffer_size = "768000" => 768000/1411200 = 0.544217687075s = 544 msecs<br />
device.buffering.fragment_size = "384000" => 384000/1411200 = 0.272108843537s = 272 msecs<br />
<br />
3.Modify Pulseaudio's configuration file<br />
<br />
Edit the configuration file located at {{ic|/etc/pulse/daemon.conf}} using the editor of your choice.<br />
<br />
For example:<br />
sudo vi /etc/pulse/daemon.conf<br />
<br />
Locate & uncomment (remove leading semicolons) these lines:<br />
<br />
; default-fragments = X<br />
; default-fragment-size-msec = Y<br />
<br />
<br />
In the previous step, we calculated the fragment size parameter.<br />
The number of fragments is simply buffer_size/fragment_size, which in this case (544/272) is 2.<br />
<br />
Edit the lines to use your calculated settings:<br />
<br />
default-fragment-size-msec = 272<br />
default-fragments = 2<br />
<br />
Save the file.<br />
<br />
<br />
4.Restart the Pulseaudio daemon<br />
<br />
pulseaudio -k<br />
pulseaudio --start<br />
<br />
Source: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 kwevej @ Linux Mint Forums]<br />
<br />
===Laggy sound===<br />
This issue is due to incorrect buffer sizes.<br />
Edit {{ic|/etc/pulse/daemon.conf}}<br />
<br />
Either disable any modifications (if any) to these entries, or, if issue still exists, uncomment and change them in the following way:<br />
default-fragments = 8<br />
default-fragment-size-msec = 5<br />
<br />
===Choppy, overdriven sound===<br />
Choppy sound in pulsaudio can result from wrong settings for the sample rate in {{Ic|/etc/pulse/daemon.conf}}. Try changing the line <br />
; default-sample-rate = 44100<br />
to <br />
default-sample-rate = 48000<br />
and restart the PulseAudio server.<br />
<br />
If one experiences choppy sound in applications using openAL, change the sample rate in /etc/openal/alsoft.conf:<br />
frequency = 48000<br />
<br />
Setting the PCM volume above 0dB can cause clipping of the audio signal. Running {{ic|alsamixer -c0}} will allow you to see if this is the problem and if so fix it.<br />
<br />
===Volume adjustment does not work properly===<br />
Check:<br />
{{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common}}<br />
<br />
If the volume does not appear to increment/decrement properly using {{ic|alsamixer}} or {{ic|amixer}}, it may be due to pulseaudio having a larger number of increments (65537 to be exact). Try using larger values when changing volume (e.g. {{ic|amixer set Master 655+}}).<br />
<br />
===Volume gets louder every time a new application is started===<br />
Per default, it seems as if changing the volume in an application sets the global system volume to that level instead of only affecting the respective application. Applications setting their volume on startup will therefore cause the system volume to "jump".<br />
<br />
Fix this by uncommenting the line<br />
flat-volumes = yes<br />
and changing it to:<br />
flat-volumes = no<br />
in<br />
/etc/pulse/daemon.conf<br />
and then restarting PulseAudio by executing<br />
pulseaudio --kill && pulseaudio --start<br />
<br />
When Pulse comes back after a few seconds, applications will not alter the global system volume anymore but have their own volume level again.<br />
<br />
{{Note|A previously installed and removed pulseaudio-equalizer may leave behind remnants of the setup in {{Ic|$HOME/.pulse/default.pa}} which can also cause maximized volume trouble. Comment that out as needed.}}<br />
<br />
===No mic on ThinkPad T400/T500/T420===<br />
Run<br />
alsamixer -c 0<br />
Maximize the volume of/unmute the "Internal Mic".<br />
<br />
Once you see the device with<br />
arecord -l<br />
you might still need to adjust the settings. The microphone and the audio jack are duplexed. Set the configuration of the internal audio in pavucontrol to ''Analog Stereo Duplex''.<br />
<br />
===No mic input on Acer Aspire One===<br />
Install pavucontrol, unlink the microphone channels and turn down the left one to 0.<br />
Reference: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048<br />
<br />
===Sound output is only mono on M-Audio Audiophile 2496 sound card===<br />
Add the following to /etc/pulseaudio/default.pa:<br />
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7<br />
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9<br />
set-default-sink delta_out<br />
set-default-source delta_in<br />
<br />
===Static Noise in Microphone Recording===<br />
If we are getting static noise in skype, gnome-sound-recorder, arecord, etc.'s recordings then the sound card samplerate is incorrect. That is why there is static noise in linux microphone recordings. To fix this We need to set sample-rate in /etc/pulse/daemon.conf for the sound hardware.<br />
<br />
====1. Determine soundcards in the system====<br />
This requires alsa-utils and related packages to be installed:<br />
$ arecord --list-devices<br />
<br />
output:<br />
**** List of CAPTURE Hardware Devices ****<br />
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
soundcard is hw:0,0<br />
<br />
====2. Determine sampling-rate of the sound card====<br />
arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav<br />
<br />
output:<br />
"Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo<br />
Warning: rate is not accurate (requested = 60000Hz, '''got = 96000Hz''')<br />
please, try the plug plugin<br />
<br />
observe, the '''got = 96000Hz''', this is the max sample-rate of our card.<br />
<br />
====3. Setting the soundcard's sampling rate into pulse audio configuration====<br />
the default sample-rate in pulseaudio is<br />
grep "sample-rate" /etc/pulse/daemon.conf<br />
<br />
output:<br />
; default-sample-rate = 44100<br />
<br />
It is 44100 and is disabled. Let us set our sound card's settings into pulseaudio configuation file<br />
su -c "sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf"<br />
<br />
Let us verify the changes to deamon.conf<br />
grep "sample-rate" /etc/pulse/daemon.conf <br />
output:<br />
default-sample-rate = 96000<br />
and it is done.<br />
<br />
====4. Restart pulseaudio to apply the new settings====<br />
pulseaudio --kill<br />
pulseaudio --start<br />
<br />
====5. Finally check by recording and playing it back====<br />
Let us record some voice using mic for say 10 seconds. Make sure the mic is not muted and all<br />
arecord -f cd -d 10 test-mic.wav<br />
<br />
After 10 seconds, let us play the recording...<br />
aplay test-mic.wav<br />
<br />
Now hopefully, there is no static noise in microphone recording anymore.<br />
<br />
=== My Bluetooth device is paired but does not play any sound ===<br />
[[Bluetooth#My_device_is_paired_but_no_sound_is_played_from_it|See the article in Bluetooth section]]<br />
<br />
Starting from PulseAudio 2.99 and bluez 4.101 you should '''avoid''' using Socket interface. Do NOT add <br />
[General]<br />
Enable=Socket<br />
to your /etc/bluetooth/audio.conf.<br />
If you face problems with A2DP and PA 2.99 make sure you have SBC library:<br />
pacman -S sbc <br />
<br />
=== Subwoofer stops working after end of every song ===<br />
Known issue: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099<br />
<br />
To fix this, must edit: {{ic|/etc/pulse/daemon.conf}} and enable {{ic|enable-lfe-remixing}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== Pulseaudio uses wrong microphone ===<br />
If Pulseaudio uses the wrong microphone, and changing the Input Device with Pavucontrol did not help, take a look at alsamixer. It seems that Pavucontrol does not always set the input source correctly.<br><br />
Run:<br />
<br />
$ alsamixer<br />
<br />
press F6 and choose your sound card, e.g. HDA Intel. Now press F5 to display all items. Try to find the item: {{ic|Input Source}}. With the up/down arrow keys you are able to change the input source. <br><br />
Now try if the correct microphone is used for recording.<br />
<br />
=== Choppy Sound with Analog Surround Sound Setup ===<br />
<br />
The low-frequency effects (LFE) channel is not remixed per default. To enable it the following needs to be set in {{ic|/etc/pulse/daemon.conf}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== No sound below a volume cutoff ===<br />
Known issue (won't fix): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133<br />
<br />
If sound doesn't play when Pulseaudio's volume is set below a certain level, try editing {{ic|/etc/pulse/default.pa}} and changing:<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-udev-detect<br />
</nowiki>}}<br />
to<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-udev-detect ignore_dB=1<br />
</nowiki>}}<br />
<br />
=== Low volume for internal mic ===<br />
If you experience low volume on internal notebook microphone, try setting <br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
set-source-volume 1 300000<br />
</nowiki>}} at the end of the file.<br />
<br />
==External links==<br />
*[http://www.pulseaudio.org/wiki/PerfectSetup http://www.pulseaudio.org/wiki/PerfectSetup] - A good guide to make your configuration perfect<br />
*[http://www.alsa-project.org/main/index.php/Asoundrc http://www.alsa-project.org/main/index.php/Asoundrc] - Alsa wiki on .asoundrc<br />
*[http://www.pulseaudio.org/ http://www.pulseaudio.org/] - PulseAudio official site<br />
*[http://www.pulseaudio.org/wiki/FAQ http://www.pulseaudio.org/wiki/FAQ] - PulseAudio FAQ</div>Crobehttps://wiki.archlinux.org/index.php?title=PHC&diff=246795PHC2013-02-08T09:41:49Z<p>Crobe: systemd addition</p>
<hr />
<div>[[Category:CPU]]<br />
[[Category:Power management]]<br />
[[ru:PHC]]<br />
{{Translateme}}<br />
{{Article summary start}}<br />
{{Article summary text | Provides a guide to installing, configuring and using a PHC.}}<br />
{{Article summary heading | Related articles}}<br />
{{Article summary wiki | Laptop}}<br />
{{Article summary wiki | Pm-utils}}<br />
{{Article summary wiki | CPU Frequency Scaling}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
<br />
PHC is an acpi-cpufreq patch built with the purpose of enabling undervolting on your processor. This can potentially divide the power consumption of your processor by two or more, and in turn increase battery life and reduce fan noise noticiably. PHC works only if your processor's architecture supports undervolting.<br />
<br />
For a complete power management suite see ''Related articles'' in top-right of the page.<br />
<br />
===Alternative to PHC===<br />
<br />
{{AUR|cpupowerd}} is a userland solution to replace the in-kernel cpufreq governors and also enable undervolting, only on AMD processors. Like PHC, it requires the user to find safe voltages by himself.<br />
<br />
==Supported CPUs==<br />
<br />
PHC supports the following processor families:<br />
<br />
===Intel===<br />
<br />
*Mobile Centrino<br />
*Atom (N2xx)<br />
*Core / Core2 (T and P Series)<br />
*Core i (tested on Core i3 550)<br />
{{note|Frequency locking does not seem to be working on Core i3 with the current stable 0.3.2 release of PHC, so finding the best vids for all but the highest frequency might be difficult or impossible.}}<br />
<br />
===AMD===<br />
<br />
*K8 series<br />
<br />
==Installing the necessary packages==<br />
<br />
Install from the [[Arch User Repository|AUR]] either {{AUR|phc-intel}} if you have an Intel processor, or {{AUR|phc-k8}} if you have an AMD-K8-series one.<br />
<br />
Next you need to compile the module for your kernel; this will also be necessary after a kernel update.<br />
<br />
You need to have {{pkg|linux-headers}} and/or {{pkg|linux-lts-headers}} installed to be able to build the module.<br />
<br />
Type:<br />
# phc-intel setup<br />
or<br />
# rc.d setup phc-k8<br />
<br />
If the [[CPU_Frequency_Scaling#CPU_frequency_driver|''acpi-cpufreq'']] module is not already being loaded at boot, create the appropriate file in {{ic|/etc/modules-load.d/}}. See [[Kernel_modules#Loading|this]] wiki article for more information.<br />
<br />
{{Note|In the case of {{AUR|phc-intel}}, the ''acpi-cpufreq'' module is automatically loaded by {{ic|/usr/lib/modprobe.d/phc-intel.conf}}.}}<br />
<br />
==Configuring PHC==<br />
<br />
===Finding safe low voltages===<br />
<br />
To automatically find the best voltages, you can use the [https://bbs.archlinux.org/viewtopic.php?pid=1141702#p1141702 mprime-phc-setup] script. Just copy the code into a text file, chmod +x it to make it executable and run it. You need to install {{AUR|mprime}} first (it is used to check that the CPU is stable). This script has not been tested on many systems yet, but should be safe.<br />
<br />
You can also try {{AUR|linux-phc-optimize}}, although it has produced unsafe vids on [https://bbs.archlinux.org/viewtopic.php?pid=1044323#p1044323 some setups]. The script progressively lowers the values until the system crashes, and adds two to the values for stability. Because the system will crash, do not do anything else during the tests. Run it once for each value, then check {{ic|/usr/share/linux-phc-optimize/phc_tweaked_vids}}.<br />
<br />
===Editing the configuration===<br />
<br />
After the phc module is compiled and the lowest voltages are found, they need to be added to the configuration file at {{ic|/etc/phc-intel.conf}} or {{ic|/etc/phc-k8.conf}}.<br />
<br />
For example:<br />
<br />
VIDS="25 22 15 8 5"<br />
<br />
If you are still running a sysvinit configuration, then just restart the phc daemon:<br />
<br />
# rc.d start phc-intel<br />
or<br />
# rc.d start phc-k8<br />
<br />
In case you are using systemd (recommended), simply restart the system and the modules will be loaded and setup automatically.<br />
<br />
==Troubleshooting==<br />
<br />
===Module loading===<br />
<br />
Run:<br />
<br />
$ dmesg | grep acpi-cpufreq<br />
<br />
If you see errors regarding this module, something has gone wrong OR you cannot use PHC.<br />
<br />
===Hardware recognition===<br />
<br />
There should be some files in {{ic|/sys/devices/system/cpu/cpu0/cpufreq/}} beginning with "phc_".<br />
To check whether PHC is working or not, just type:<br />
<br />
$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls<br />
<br />
you should read some values. If the values do not appear, then PHC is probably not supported by your CPU.<br />
<br />
===Voltage controlling===<br />
<br />
You can easily check whether PHC is working or not by looking at the cpu voltages: if the voltages are lower than the normal ones, then PHC has done its job. You can also manually set voltages, for example:<br />
# echo 34 26 18 12 8 5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids<br />
<br />
===System stability===<br />
<br />
To make sure that your undervolted CPU is stable, you can run long sessions of {{AUR|mprime}} and/or {{AUR|linpack}} (Intel-only).<br />
<br />
==Links==<br />
<br />
* [http://www.linux-phc.org/ PHC homepage]<br />
* [http://www.linux-phc.org/wiki/doku.php PHC official wiki]</div>Crobehttps://wiki.archlinux.org/index.php?title=Talk:Dm-crypt&diff=246493Talk:Dm-crypt2013-02-05T21:45:54Z<p>Crobe: /* after 2012.07.15 */</p>
<hr />
<div>== Cleanup and Clarification ==<br />
Hello. This wiki page while very exhaustive in content is tangenital with a fractured flow. It seems the prefered method for straight forward system encryption in single drive systems is to use a combination of Luks and LVM2 - this solution provides for an encrypted swap that does not have any issues with hibernation or suspend. I propose making this section the first part of the wiki page to follow the justification for using Luks with the rather large volume of detailed information to follow in other sections. If there are no objections I'll go ahead and structure this in the wiki page itself.<br />
[[User:Vinhsynd|Vinhsynd]] 9:55, 30 September 2010 (CDT)<br />
<br />
Hey all, I was trying to encrypt my hd using this page as a reference, but it was a bit difficult to read. As such, I'm going to try to clean things up a bit. It would be nice if there were a clean set of instructions with tips along the way for specialized setups.<br />
<br />
On a related note... would anyone mind if some of the posts on this page were erased? There are a number of posts from 2007, 2008...<br />
--[[User:Arcanazar|Arcanazar]] 13:22, 21 August 2010 (EDT)<br />
<br />
I'm considering to do some editing and rewriting of this page, mainly in part "4 The Steps". The content would mostly stay the same, safe for some changes introduced with the newer versions of arch, where less console switching and module loading is needed. On the same subject should we drop, or move to a subsection, the parts related to versions 0.72 of arch?<br />
<br />
Does anyone have objections to my plans, or should I just go ahead and we can revert back if it doesn't fit?<br />
[[User:WhiteMagic|WhiteMagic]] 12:56, 24 May 2007 (EDT)<br />
<br />
: Clean up is really needed. Please someone with enough knowledge start the job. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 02:55, 8 June 2012 (UTC)<br />
<br />
:: Someone review the made changes to clean up. Suggested next bits to clean-up should include removing legacy Grub section after making sure the relevant kernel parameters are adequately covered in the Grub2 paras. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 13:14, 26 September 2012 (UTC)<br />
<br />
== Discard/TRIM support for solid state disks (SSD) ==<br />
Does leaving half the drive unpartitioned (to manually resize partition-table, LUKS and filesystems when needed) ease problems?<br />
:That's an interesting question. Before the TRIM feature was added, this was the general advice to avoid degrading SSD performance over time due. I am not aware of a general answer to this, particularly since SSDs chipsets evolve considerably still. If someone has a link to up-to-date information (e.g. a comparison of pros/cons of discard and leaving empty space on a drive) that is very worthwile adding in my opinion. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 10:34, 30 September 2012 (UTC)<br />
Altough the security limitation topic is already explained within other sections above I think there should be a small but explicit WarningBox about Discard/TRIM as once there already was. --[[User:Nonix|Nonix]] ([[User talk:Nonix|talk]]) 12:38, 28 September 2012 (UTC)<br />
:The first two paras of that SSD trim section '''only''' talk about the security impacts and why it is not default. In my opinion that is enough. Add a regular sentence ala "As explained above in section ...", if you really feel it necessary. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 22:06, 29 September 2012 (UTC) I have added another sentence & link regarding TRIM issues, have a look if its better now in your view also. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 09:01, 2 October 2012 (UTC)<br />
<br />
== Suspend to disk instructions are insecure ==<br />
They cause the swap encryption key to be picked up by mkinitcpio and stored on the unencrypted /boot partition, thus rendering the encryption useless. Better still, the suspend image contains the keys for any other encrypted partitions that were currently open too...<br />
<br />
Unless someone thinks otherwise, I'm going to remove the stuff about key files and replace it with a warning not to do that. I think the approach using a password should be secure, and it's somewhat workable (at least in my setup with uresume): we can place the 'openswap' and 'uresume' hooks ''before'' 'encrypt' and rely on the above-mentioned keys in the suspend image to magically have the root unlocked once the resume is complete. Downside is typing two passwords during a normal boot - it's a quick fix for the current instructions at any rate.<br />
<br />
There are a few other options, but probably the tidiest strategy would be to put root and swap (and anything else) on an encrypted LVM PV, then the 'encrypt' hook can unlock everything in one go. I guess that makes a mess if the VG contain other PVs which need decrypting too, but that's probably not an issue at least for laptop users. I've not tried this though.<br />
<br />
Of course, ideally there'd be support for multiple volumes (preferably with a single password prompt) in the 'encrypt' hook.<br />
<br />
--[[User:Jmawebb|Jmawebb]] 19:44, 27 February 2010 (EST)<br />
<br />
:Is there a fix for this yet? Maybe the luksSuspend function? --[[User:Revelation60|Revelation60]] 21:21, 20 December 2010 (GMT+1)<br />
<br />
== Luks and suspend2 ==<br />
Would it be worth adding a section on opening encrypted drives from the kernel command line, or more specifically on combining luks and suspend2? As far as I can tell opening a swap partition from crypttab doesn't make it available in time to resume from, but adding the following to a lilo append option does:<br />
resume2=swap:/dev/mapper/swap cryptdevice=/dev/sda2:swap<br />
I'm not sure if this is the correct/best way of doing this, though, and didn't see other documentation.<br />
<br />
== New cipher mode ==<br />
Kernel 2.6.24 supports "aes-xts-plain" (instead of "cbc" or "lrw"). Waiting for kernel 2.6.24 to reach [core] (and new CD version), stay tuned :-) [[User:Ekerazha|ekerazha]] 09:00, 6 February 2008 (EST)<br />
:Sounds cool.<br />
<br />
:If you can't wait you can get a livecd that has a 2.6.24 kernel (such as the [http://cdimage.ubuntu.com/daily-live/current/ daily builds of ubuntu]). It worked for me. --[[User:inthemedium|inthemedium]] 10:14, 6 February 2008 (EST)<br />
:'''Question:''' [http://thread.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/2585 xts-plain VS xts-benbi] --[[User:Ekerazha|ekerazha]] 09:13, 13 April 2008 (EDT)<br />
:: -plain is the good one (specs: [http://grouper.ieee.org/groups/1619/email/pdf00086.pdf aes-xts-plain_specs.pdf from grouper.ieee.org]) --[[User:Ekerazha|ekerazha]] 13:00, 16 April 2008 (EDT)<br />
<br />
:::Note that after [https://wiki.archlinux.org/index.php?title=Dm-crypt_with_LUKS&oldid=225227#Prepare_hard_drive_for_Arch_Install_Scripts 26.09.2012 (revision 225227)] the default luksFormat Instructions were [https://wiki.archlinux.org/index.php?title=Dm-crypt_with_LUKS&diff=225278&oldid=225227 changed] back to cryptsetup's compiled in vanilla defaults. (aes-cbc-essiv / sha1) This has advantages in compatibility with older cryptsetup versions.<br />
:::'''explanatory statement:'''"Change luksFormat to default compiled in cypher, less typing for everyone, less CPU overhead and default for a reason."<br />
<br />
:::I added a table comparing and explaining the default options for a LUKS container with one single passphrase keyslot against example options in the [[#Using_LUKS_to_Format_Partitions_with_a_Passphrase]]-section.<br />
<br />
:::Everyone is welcome to adopt it in the keyfile or other sections on corresponding options. The [[Wikipedia:Help:Table|format]] of the table is yust screwed together, improvements would be great!<br />
<br />
:::'''Question:''' I think the {{ic|-y}} switch is deprecated as it '''is''' the compiled-in default at least for cryptsetup >=1.5. --[[User:Nonix|Nonix]] ([[User talk:Nonix|talk]]) 03:03, 27 September 2012 (UTC)<br />
::::'''Comment:''' Yeah, I tried it also, it seems to default to "y". I also looked at the google code revision, but could not find adhoc a definite statement plus in the current manpage it is still advised to use "y" with luksFormat. That's why I think we better leave that in for now not to provoke easy user errors. Thanks for looking over it!! (I was actually writing it up a couple of weeks after doing it - do correct what you think has to change. Thanks) --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 15:52, 27 September 2012 (UTC)<br />
<br />
== Proposed update of the section 'Storing the key between MBR and 1st partition' ==<br />
{| style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 3px 3px; border: 1px solid #aaa;"<br />
|-<br />
|'''Background'''<br />
<br />
I tried to setup automatic mount of my LUKS encrypted {{ic|/home}} using a keyfile stored between MBR and first partition header of my USB key following this wiki page and realized that it didn't work out because the howto is incomplete. I had to manually go through the encrypt hook to figure out what it does. To save other users this tiresome work that cost me hours until all finally worked out the way I wanted it I propose to update the mentioned section in the following way. Suggestions welcome. Maybe it should be noted in the parent section that {{ic|/etc/crypttab}} conflicts with using the howto presented here.<br />
|}<br />
<br />
Add the temporary keyfile we created before with cryptsetup:<br />
cryptsetup luksAddKey /dev/hda3 secretkey<br />
<br />
That should return you output like this:<br />
Enter any LUKS passphrase:<br />
key slot 0 unlocked.<br />
Command successful.<br />
<br />
Next you'll have to write the key directly between MBR and first partition.<br />
<br />
WARNING: you should only follow this step if you know what you are doing - '''it can cause data loss and damage your partitions or MBR on the stick!'''<br />
<br />
If you have a bootloader installed on your drive you have to adjust the values. E.g. GRUB needs the first 16 sectors, you would have to replace seek=4 with seek=16; otherwise you would overwrite parts of your GRUB installation. When in doubt, take a look at the first 64 sectors of your drive and decide on your own where to place your key. <br />
<br />
''Optional''<br />
dd if=/dev/usbstick of=64sectors bs=512 count=64 # gives you copy of your first 64 sectors<br />
hexcurse 64sectors # determine free space<br />
<br />
Write your key to the disk:<br />
dd if=secretkey of=/dev/usbstick bs=512 seek=4<br />
<br />
If everything went fine you can now overwrite and delete your temporary secretkey:<br />
shred --remove --zero secretkey<br />
You should not simply use rm as the keyfile would only be unlinked from your filesystem and be left physically intact.<br />
<br />
Now you have to add a kernel parameter in your {{ic|/boot/grub/menu.lst}} (GRUB), it should look something like this:<br />
kernel /vmlinuz-linux root=/dev/hda3 ro vga=791 cryptkey=/dev/usbstick:2048:2048 cryptdevice=/dev/hda4:home<br />
Format for the cryptkey option:<br />
cryptkey=BLOCKDEVICE:OFFSET:SIZE<br />
OFFSET and SIZE match in this example, but this is coincidence - they can differ (and often will). An other possible example could be (if you use skip=16 in the 'dd' command above to protect the bootloader)<br />
kernel /vmlinuz-linux root=/dev/hda3 ro vga=791 cryptkey=/dev/usbstick:8192:2048 cryptdevice=/dev/hda4:home<br />
Format for the cryptdevice option:<br />
cryptdevice=BLOCKDEVICE:MAPPING_TARGET<br />
The encrypted block device BLOCKDEVICE will then be mapped to {{ic|/dev/mapper/MAPPING_TARGET}}<br />
<br />
'''Note:''' You will _not_ need to have {{ic|/etc/crypttab}} setup for this device then (but maybe you want to use it for other encrypted devices where you want to enter the passphrase manually or e.g. use a keyfile stored on this afterwards decrypted partition)! But don't forget to activate the ''encrypt'' hook in {{ic|/etc/mkinitcpio.conf}} (_before_ the ''filesystems'' hook)<br />
<br />
That's all, reboot and have fun! And look if your partitions still work after that ;-).<br />
<br />
== Backup of volume header ==<br />
I think that its important to backup headers of your volumes. This should be mentioned in the wiki imo.<br />
<br />
== LVM2 and LUKS ==<br />
I'm quite sure this section is misleading. You have to setup up encryption ''before'' LVM2 partitions on the decrypted device.<br />
<br />
And you have to add the "encrypt" hook ''before'' the "lvm2" hook, because you need to make the decrypted device available before LVM2 imports volume groupe and makes logical volumes available.<br />
<br />
Yet this chapter tends to tell the other way round. Is my English so bad ?<br />
<br />
I agree.. I find this entire wiki article unnecessarily complicated .. this link for an LVM on top of an encrypted partition is MUCH!!! easier to follow, and for a laptop would be better. [http://www.pindarsign.de/webblog/?p=767 Arch Linux: LVM on top of an encrypted partition]<br />
<br />
- This section is misleading. What the author meant was if you encrypt the contents of LVM partitions, THEN you have to move the lvm2 hook before the encrypt hook. I made a few small changes, so other newbies (like me) don't end up with an unbootable system.<br />
<br />
-- I also agree that the section needs a further overhaul, assuming here everyone commenting means the "Encrypting and LVM Setup" (because "LVM2 and LUKS" is not in the TOC). Having encrypt over (i.e. before) LVM is def the typical and easiest setup (and this should be expanded on more clearly in the wiki like in the link above I agree). However, all methods have a usecase. It depends what the user wants to achieve. Time permitting, the differences should be worked out. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 19:53, 18 September 2012 (UTC)<br />
<br />
== Prepare hard drive ==<br />
The actual text is:<br />
<br />
Skip the Partitioning and Auto-Prepare business and go straight to "Set Filesystem Mountpoints". When asked for your {{ic|/}} (root) partition, do NOT select {{ic|/dev/sda3}} as you normally would. Select {{ic|/dev/mapper/root}} instead. Similarly, use {{ic|/dev/mapper/home}} instead of {{ic|/dev/sda4}} as the partition to be mounted as {{ic|/home}}. The same is valid for a swap partition which is set up like the home partition. Make sure you mount {{ic|/dev/sda1}} as the {{ic|/boot}} partition or else the installer will not properly set up the bootloader. <br />
<br />
but the Arch Linux installer says:<br />
[code]<br />
/dev/sda1<br />
/dev/sda2<br />
/dev/mapper/root<br />
/dev/mapper/lvm-home<br />
/dev/mapper/lvm-root<br />
/dev/mapper/lvm-swap<br />
/dev/mapper/lvm-tmp<br />
[/code]<br />
When asked for {{ic|/}} (root) partition: is it {{ic|/dev/mapper/root}} or {{ic|/dev/mapper/lvm-root}}. I suppose it is the first one because the second one does not match.<br />
<br />
== Decryption of root during boot with the assistance of UDEV when key is stored on USB drive between MBR and 1st Partition ==<br />
The instructions in the wiki were very helpful but a bit confusing/lacking when it comes to getting Decryption via USB keyfile stored between MBR and 1st Partition.<br />
<br />
[[System_Encryption_with_LUKS#Storing_the_key_between_MBR_and_1st_partition]] makes references to {{ic|/dev/usbkey}} but the previous instructions aren't entirely clear on how to ensure your usb drive can always be found at this location.<br />
<br />
When modifying your bootloader you will be unable to use ''/dev/disk/by-uuid'' because you are not referencing a filesystem. You wouldn't want to use ''/dev/sd[x]'' because this can and will change depending on what other drives and media you have connected during boot. The best bet is to create a udev rule that will exist in early userspace to alias your usb drive to an arbitrary name, in this case "usbkey". The rule must be added to the initial ramdisk so it can be read and processed to alias your drive at ''/dev/usbkey'' before root decryption is attempted via the key hidden on the drive.<br />
<br />
[[System_Encryption_with_LUKS#Using_udev]] runs you through the initial steps you need to create a basic rule based on the USB drive's serial number. That is the very same rule I used. I named the rules file "62-usbkey.rules" and placed it in {{ic|/etc/udev/rules.d/}}.<br />
<br />
Now modify {{ic|/etc/mkinitcpio.conf}}, look for the "FILES" section and add the udev rule that you created above:<br />
<br />
<pre><br />
# FILES<br />
# This setting is similar to BINARIES above, however, files are added<br />
# as-is and are not parsed in any way. This is useful for config files.<br />
# Some users may wish to include modprobe.conf for custom module options<br />
# like so:<br />
# FILES="/etc/modprobe.d/modprobe.conf"<br />
FILES="/etc/udev/rules.d/62-usbkey.rules"<br />
</pre><br />
<br />
Run ''mkinitcpio'' ala [[Mkinitcpio#Image_creation_and_activation]] and rebuild your ramdisk with the new udev rule you've included. You can now continue to follow the instructions in [[System_Encryption_with_LUKS#Storing_the_key_between_MBR_and_1st_partition]] to modify your bootloader and substitute references to "usbkey" to whatever you named your drive alias above.<br />
<br />
[[User:S0ma|S0ma]] 13:48, 16 December 2011 (EST)<br />
<br />
== GRUB-Legacy/GRUB2 changes regarding the Kernel Line ==<br />
Since GRUB-Legacy doesn't play that much of a role anymore it'd be advisable to exchange the explainations for adjusting the kernel line in the bootloader to the procedure used in GRUB2.<br />
<br />
For example @ the last step of #With_suspend-to-disk_support<br />
<br />
<br />
== systemd addidtions ==<br />
systemd requires lvm-on-cryptdevice.service active in order to open LVMs on cryptdevices that are not the root partition (which is handled by the initrd).<br />
<br />
== after 2012.07.15 ==<br />
<br />
What change with the new installation process and systemd change ? If I understand correctly parts related to /etc/rc.conf files are no longer useful but what's the correct way now ? thanks --[[User:Martvefun|Martvefun]] ([[User talk:Martvefun|talk]]) 00:27, 9 January 2013 (UTC) -> question and response asked[https://bbs.archlinux.org/viewtopic.php?id=155863|here]<br />
:For reference - two more bbs threads covering the subject: [https://bbs.archlinux.org/viewtopic.php?pid=1212076#p1212076| with systemd] and [https://bbs.archlinux.org/viewtopic.php?pid=1170012#p1170012| with a nice backup script]--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 20:07, 9 January 2013 (UTC)<br />
<br />
== Encrypted swap With suspend-to-disk support ==<br />
Shouldn't the openswap hook go after the encrypt hook? Otherwise you have to always open the root device prior to the swap, even on resume.</div>Crobehttps://wiki.archlinux.org/index.php?title=Enlightenment&diff=246406Enlightenment2013-02-05T12:15:48Z<p>Crobe: Described wrong effect.</p>
<hr />
<div>[[Category:Desktop environments]] <br />
[[cs:Enlightenment]]<br />
[[fr:Enlightenment]]<br />
[[it:Enlightenment]]<br />
{{Article summary start}}<br />
{{Article summary text|The Enlightenment project provides useful libraries, a graphical environment and other applications as well as development tools for creating such applications. This article covers its installation, configuration, and troubleshooting.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
From the [http://trac.enlightenment.org/e/wiki/Enlightenment Enlightenment wiki]:<br />
<br />
:''The Enlightenment desktop shell provides an efficient yet breathtaking window manager based on the Enlightenment Foundation Libraries along with other essential desktop components like a file manager, desktop icons and widgets. It boasts an unprecedented level of theme-ability while still being capable of performing on older hardware or embedded devices.''<br />
<br />
== Enlightenment Desktop Shell (formerly E17) ==<br />
<br />
This is comprised of both the Enlightenment [[window manager]] and Enlightenment Foundation Libraries (EFL), which provide additional desktop environment features such as a toolkit, object canvas, and abstracted objects. It has been under development since 2005, but in February 2011 the core EFLs saw their first stable 1.0 release. Enlightenment the window manager was released as version 0.17.0 on December 21st 2012, along with the 1.7.4 release of the EFL libraries. Many people currently use Enlightenment as a day-to-day desktop environment without problems.<br />
<br />
{{Warning|This page refers to both stable and development packages. Any PKGBUILD which ends with -svn as well as scripts like easy_e17.sh will use unstable development code. Use them at your own risk. Since the release of the EFL libraries and Enlightenment itself, it's no longer necessary and even discouraged to build from svn. "Unless you're developing E or willing to live bleeding edge, stay away from trunk."([http://sourceforge.net/mailarchive/message.php?msg_id&#61;30310890 source]) Unfortunately, many of the additional software packages have not been released and building from SVN is the only way to use them.}}<br />
<br />
=== Installing ===<br />
<br />
==== From the extra repository ====<br />
<br />
To install Enlightenment, install the {{Pkg|enlightenment17}} package.<br />
<br />
You might also want to install additional [[Fonts]]. You need at least 1 True Type Font.<br />
<br />
If you need/want an Enlightenment package which is not (yet) available in [extra], see if it is available in the [[AUR]].<br />
<br />
==== From the AUR ====<br />
<br />
SVN PKGBUILDs which download and install the very latest development code are available in the [[AUR]] as {{AUR|enlightenment17-svn}} and it's dependencies.<br />
<br />
==== Compiling with easy_e17.sh ====<br />
{{ic|easy_e17.sh}} compiles E17 from source and installs it in {{ic|/opt/e17}}. It does not create packages and therefore does not install dependencies automatically and is not tracked by pacman.<br />
<br />
# Get it from the [[AUR]]: {{AUR|easy-e17}}.<br />
# Edit {{ic|/etc/easy_e17.conf}} if you want.<br />
# Run it as user, so it downloads to ~/e17_src and builds as user, to install E17 (the script will immediately ask for your password so it can install in the end): {{bc|# easy_e17.sh -i}}<br />
# Put {{ic|/opt/e17/bin}} in your {{ic|PATH}} by editing {{ic|/etc/profile}}. For example, you can add this line at the end of the file: {{bc|1=PATH="$PATH:/opt/e17/bin"}}<br />
# If, after completing the install, xinitrc complains that it cannot find enlightenment upon starting, you may need to add these lines to the end of /etc/profile as well:{{bc|1=PYTHONPATH=":$PYTHONPATH"}}{{bc|1=LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/e17/lib"}}<br />
<br />
If you encounter any errors while trying to install E17, first check to make sure it is not a dependency problem. If it is, install the dependency and continue installing e17.<br />
<br />
To update all installed EFL/E17 components, run this command:<br />
# easy_e17.sh -u<br />
<br />
=== Starting ===<br />
==== startx ====<br />
If you use {{ic|startx}} or a simple [[Display Manager]] like XDM or [[SLiM]], add or uncomment the following command in [[xinitrc]]:<br />
{{hc|~/.xinitrc|<br />
exec enlightenment_start<br />
}}<br />
<br />
==== Entrance ====<br />
Nowadays E17 has a new display manager called Entrance, you can download it from AUR {{AUR|entrance-svn}}.<br />
Entrance is quite sophisticated and its configuration is controlled by {{ic|/etc/entrance.conf}}.<br />
To use Entrance : <br />
<br />
# systemctl enable entrance<br />
<br />
==== Other ====<br />
More advanced display managers like [[GDM]] and [[KDM]] will automatically detect E17 thanks to the {{ic|/usr/share/xsessions/enlightenment.desktop}} file provided by the {{pkg|enlightenment17}} package.<br />
<br />
=== Configuring the Network ===<br />
<br />
==== ConnMan ====<br />
<br />
E17's preferred network manager is [[Connman|ConnMan]]. It is available from the [community] repository as the {{Pkg|connman}} package. For extended configuration, you may also install EConnman (available in AUR as {{AUR|econnman-svn}}) and it's associated dependencies.<br />
<br />
Finally, configure systemd to start the ConnMan daemon at startup:<br />
<br />
systemctl enable connman<br />
<br />
ConnMan loads very quickly and appears to handle DHCP quite nicely. If you have installed [[Wpa_supplicant]], ConnMan latches onto that shows all available wireless connections.<br />
<br />
==== NetworkManager ====<br />
<br />
You can also use {{Pkg|networkmanager}} to manage your network connections.<br />
<br />
pacman -S networkmanager<br />
<br />
Follow the instructions on [[NetworkManager]] to do the configuration. You may also need {{Pkg|network-manager-applet}} to help with your settings.<br />
<br />
pacman -S network-manager-applet<br />
<br />
You may want to add it to the start up programs so every time your E17 starts it appears on systray.<br />
<br />
Settings -> Settings Panel -> Apps -> Startup Applications -> System -> Network<br />
<br />
=== Installing Themes ===<br />
<br />
More themes to customize the look of e17 are available from:<br />
* [http://exchange.enlightenment.org/ exchange.enlightenment.org], for which you can use the {{AUR|e17-themes}} [[AUR]] package<br />
* [http://www.e17-stuff.org e17-stuff.org]<br />
* [http://relighted.c0n.de/#100 relighted.c0n.de] for the default theme in 200 different colors<br />
* [http://trac.enlightenment.org/e/browser/trunk/THEMES svn trunk] (svn checkout the theme you like, run 'make' and you end up with a .edj theme file)<br />
<br />
You can install the themes (coming in .edj format) using the theme configuration dialog or by moving them to {{ic|~/.e/e/themes}}. <br />
<br />
{{Note|During 2010 there was a change in how themes work, so older themes will not work unless they were updated. There used to be an edje_convert tool to do this, but that has been dropped long ago (see: [http://trac.enlightenment.org/e/changeset/56156 trac.enlightenment.org])}}<br />
<br />
=== Modules and Gadgets ===<br />
;Module:Name used in enlightenment to refer to the "backing" code for a gadget. <br />
;Gadget:Front-end or user interface that should help the end users of Enlightenment do something.<br />
<br />
Many Modules provide Gadgets that can be added to your desktop or on a shelf. Some Modules (such as CPUFreq) only provide a single Gadget while others (such as Composite) provide additional features without any gadgets. Note that certain gadgets such as Systray can only be added to a shelf while others such as Moon can only be loaded on the desktop. <br />
<br />
==== Compositing ====<br />
E17 offers two modules for compositing, '''''Composite''''' and '''''Ecomorph''''', depending on your hardware and preference.<br />
<br />
====== Composite ======<br />
The ''Composite'' module is the standard compositing manager provided in enlightenment. It provides some minimal compositing effects such as transparency, fade and shadow. Composite provides the more stable module and is supported on most hardware through either OpenGL or compositing software rendering. When the configuration is messed up and the settings windows can no longer be approached, configuration for the comp module can be reset by the hardcoded keybinding {{ic|Ctrl + Alt + Shift + Home}}.<br />
<br />
====== Ecomorph ======<br />
The ''Ecomorph'' module is a full-featured compositing manager which was ported from [[Compiz]] for E17. It can be downloaded from AUR {{AUR|ecomorph-git}}. Some experience instability with Ecomorph while others use it without a problem. Ecomorph requires 3D acceleration, while Composite does not. Development of ecomorph has been discontinued in favor of the official composite module, although some maintenance and bug fixing may still be done ([http://code.google.com/p/itask-module/wiki/Stuff source]).<br />
<br />
{{Note|The ability to unload the Composite module and load Ecomorph has been removed in the latest development code. Starting with the e18 release, Ecomorph will be officially dead.}}<br />
<br />
==== "Extra" modules ====<br />
{{Warning|These are 3rd party modules and not officially supported by the Enlightenment developers. They are also pulled directly from SVN, so they are development code that may or may not work at any time. Use at your own risk.}}<br />
These modules are available from the AUR, either as part of {{AUR|e-modules-extra-svn}} or as individual packages.<br />
<br />
====== Places ======<br />
From the current source code [http://trac.enlightenment.org/e/browser/trunk/E-MODULES-EXTRA/places/README README] for Places: ''This module manage the volumes device attached to the system.''<br />
<br />
In other words, Places is a gadget that will help you browse files on various devices you might plug into your computer, like phones, cameras, or other various storage devices you might plug into the usb port.<br />
<br />
Available from {{AUR|e17-places-svn}}<br />
{{Note|This module is no longer required for auto-mounting external devices in e17}}<br />
<br />
====== Scale Windows ======<br />
The ''Scale Windows'' module, which requires compositing to be enabled, adds several features. The scale windows effect shrinks all open windows and brings them all into view. This is known in Mac OS X as "Exposé". The scale pager effect zooms out and shows all desktops as a wall, like the compiz expo plugin. Both can be added to the desktop as a gadget or bound to a key binding, mouse binding or screen edge binding. <br />
<br />
Some people like to change the standard window selection key binding {{ic|ALT + Tab}} to use Scale Windows to select windows. To change this setting, you navigate to {{ic|Menu > Settings > Settings Panel > Input > Keys}}. From here, you can set any key binding you would like. <br />
<br />
To replace the window selection key binding functionality with Scale Windows, scroll through the left panel until you find the "ALT" section and then find and select {{ic|ALT + Tab}}. Then, scroll through the right panel looking for the "Scale Windows" section and choose either {{ic|Select Next}} or {{ic|Select Next (All)}} depending on whether you would like to see windows from only the current desktop or from all desktops and click "Apply" to save the binding.<br />
<br />
Available from {{AUR|comp-scale-svn}}<br />
<br />
====== Engage ======<br />
Engage is CairoDock/GLX-Dock style docking bar for both application launchers and open applications. It requires compositing to be enabled and has full controls for transparency, size, zoom levels, and more.<br />
<br />
Available from {{AUR|engage-svn}}<br />
<br />
=== Gnome Keyring integration ===<br />
<br />
It is possible to use gnome-keyring in e17. However at the time of writing you need a small hack to make it work in full.<br />
First you must tell e17 to autostart gnome-kering. For that you should go to {{ic|Settings Panel > Apps > Startup Applications}} and activate "Certificate and Key Storage", "GPG Password Agent", "SSH Key Agent" and "Secret Storage Service".<br />
After this you should edit your {{ic|~/.profile}} and add the following:<br />
<br />
if [ -n "$GNOME_KEYRING_PID" ]; then<br />
eval $(gnome-keyring-daemon --start)<br />
export SSH_AUTH_SOCK<br />
export GNOME_KEYRING_CONTROL<br />
export GPG_AGENT_INFO<br />
fi<br />
<br />
This should export the variables you need for your key management at your next login.<br />
<br />
=== Troubleshooting ===<br />
<br />
If you find some unexpected behavior, there are a few things you can do:<br />
# try to see if the same behavior exists with the default theme<br />
# disable any 3rd party modules you may have installed<br />
# backup {{ic|~/.e}} and remove it (e.g. {{ic|mv ~/.e ~/.e.back}})<br />
<br />
If you are sure you found a bug please report it directly upstream. http://trac.enlightenment.org/e/report<br />
<br />
==== Screen unlocking does not work ====<br />
<br />
If screenlock does not accept your password add the following to {{ic|/etc/pam.d/enlightenment}}:<br />
auth required pam_unix_auth.so<br />
<br />
==== Unreadable fonts ====<br />
<br />
If fonts are too small and your screen is unreadable, be sure the right font packages are installed:<br />
pacman -S ttf-dejavu ttf-bitstream-vera<br />
<br />
==== Failure in mounting internal partitions ====<br />
Check if user is in storage group:<br />
{{bc|# groups <user>}}<br />
<br />
If user is not in storage group:<br />
{{bc|# groupadd storage <br />
# gpasswd -a <user> storage}}<br />
<br />
Then create this file as root:<br />
{{bc|# nano /etc/polkit-1/localauthority/50-local.d/10-storage-group-mount-override.pkla}}<br />
<br />
And write into the file:<br />
<br />
[storage group mount override]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks2.filesystem-mount-system<br />
ResultAny=yes<br />
ResultInactive=yes<br />
ResultActive=yes<br />
<br />
For more information, see:<br />
http://bbs.archbang.org/viewtopic.php?id=2720<br />
<br />
== Enlightenment DR16 ==<br />
Enlightenment, Development Release 16 was first released in 2000, and went 1.0 in 2009. It is still under development today, regularly updated by its maintainer Kim 'kwo' Woelders. With compositing, shadows and transparencies, E DR16 kept all of the speed but with up to date refinement.<br />
<br />
=== To install E16 ===<br />
Simply run<br />
# pacman -S enlightenment<br />
<br />
E can be quite different from the other WM's out there, read '''/usr/share/doc/e16/e16.html''' after installation to learn more<br />
The man page is at 'man e16' , not 'man enlightenment', and only gives startup options.<br />
<br />
=== Basic Configuration ===<br />
<br />
Most everything in E DR16 resides in ~/.e16 and is text-based, editable at will. That includes the Menus too.<br />
<br />
Shortcut keys can be either modified by hand, or with the e16keyedit software provided as source on the [http://sourceforge.net/projects/enlightenment/ sourceforge] page of the e16 project, or from the [https://aur.archlinux.org/packages.php?ID=20751 AUR].<br />
<br />
==== Background images ====<br />
<br />
You have to copy the desired wallpapers into ~/.e16/backgrounds/<br />
<br />
MMB or RMB anywhere on the desktop will give access to the settings, select /Desktop/Backgrounds/<br />
<br />
Any new item copied there will get the list auto-updated. Select desired wallpaper from drop-down menu. In side the apropriate tabs in the global e16 settings you can adjust things like tiling of the background image, filling screen and such.<br />
<br />
==== Start/Restart/Stop Scripts ====<br />
<br />
Create a Init , Start and Stop folders in your ~/.e16 folder: any .sh script found there will either be executed at Startup (from Init folder), at each Restart (from Start folder), or at Shutdown (from Stop folder); provided you allowed it trough the MMB / settings / session / <enable scripts> button and made them executable with ''chmod +x '''yourscript.sh'''''.<br />
<br />
==== Compositor ====<br />
<br />
Shadows, Transparent effects ''et all'' can be found in MMB or RMB /Settings, under Composite .<br />
<br />
== External Links ==<br />
* [http://www.enlightenment.org/ Enlightenment Homepage]<br />
* [http://exchange.enlightenment.org/ Enlightenment Exchange]<br />
* [http://trac.enlightenment.org/e/wiki/EFL EFL User Guide]<br />
* [http://www.bodhilinux.com/e17guide/e17guideEN/ Bodhi Guide to Enlightenment]<br />
* [http://www.e17-stuff.org/ E17-Stuff]<br />
* [http://sourceforge.net/projects/enlightenment/ DR16 download resource]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-users E-Users mail list]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-devel E-Devs mail list]<br />
*irc://irc.freenode.net#e</div>Crobehttps://wiki.archlinux.org/index.php?title=Enlightenment&diff=246336Enlightenment2013-02-04T20:41:01Z<p>Crobe: /* Scale Windows */</p>
<hr />
<div>[[Category:Desktop environments]] <br />
[[cs:Enlightenment]]<br />
[[fr:Enlightenment]]<br />
[[it:Enlightenment]]<br />
{{Article summary start}}<br />
{{Article summary text|The Enlightenment project provides useful libraries, a graphical environment and other applications as well as development tools for creating such applications. This article covers its installation, configuration, and troubleshooting.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
From the [http://trac.enlightenment.org/e/wiki/Enlightenment Enlightenment wiki]:<br />
<br />
:''The Enlightenment desktop shell provides an efficient yet breathtaking window manager based on the Enlightenment Foundation Libraries along with other essential desktop components like a file manager, desktop icons and widgets. It boasts an unprecedented level of theme-ability while still being capable of performing on older hardware or embedded devices.''<br />
<br />
== Enlightenment Desktop Shell (formerly E17) ==<br />
<br />
This is comprised of both the Enlightenment [[window manager]] and Enlightenment Foundation Libraries (EFL), which provide additional desktop environment features such as a toolkit, object canvas, and abstracted objects. It has been under development since 2005, but in February 2011 the core EFLs saw their first stable 1.0 release. Enlightenment the window manager was released as version 0.17.0 on December 21st 2012, along with the 1.7.4 release of the EFL libraries. Many people currently use Enlightenment as a day-to-day desktop environment without problems.<br />
<br />
{{Warning|This page refers to both stable and development packages. Any PKGBUILD which ends with -svn as well as scripts like easy_e17.sh will use unstable development code. Use them at your own risk. Since the release of the EFL libraries and Enlightenment itself, it's no longer necessary and even discouraged to build from svn. "Unless you're developing E or willing to live bleeding edge, stay away from trunk."([http://sourceforge.net/mailarchive/message.php?msg_id&#61;30310890 source]) Unfortunately, many of the additional software packages have not been released and building from SVN is the only way to use them.}}<br />
<br />
=== Installing ===<br />
<br />
==== From the extra repository ====<br />
<br />
To install Enlightenment, install the {{Pkg|enlightenment17}} package.<br />
<br />
You might also want to install additional [[Fonts]]. You need at least 1 True Type Font.<br />
<br />
If you need/want an Enlightenment package which is not (yet) available in [extra], see if it is available in the [[AUR]].<br />
<br />
==== From the AUR ====<br />
<br />
SVN PKGBUILDs which download and install the very latest development code are available in the [[AUR]] as {{AUR|enlightenment17-svn}} and it's dependencies.<br />
<br />
==== Compiling with easy_e17.sh ====<br />
{{ic|easy_e17.sh}} compiles E17 from source and installs it in {{ic|/opt/e17}}. It does not create packages and therefore does not install dependencies automatically and is not tracked by pacman.<br />
<br />
# Get it from the [[AUR]]: {{AUR|easy-e17}}.<br />
# Edit {{ic|/etc/easy_e17.conf}} if you want.<br />
# Run it as user, so it downloads to ~/e17_src and builds as user, to install E17 (the script will immediately ask for your password so it can install in the end): {{bc|# easy_e17.sh -i}}<br />
# Put {{ic|/opt/e17/bin}} in your {{ic|PATH}} by editing {{ic|/etc/profile}}. For example, you can add this line at the end of the file: {{bc|1=PATH="$PATH:/opt/e17/bin"}}<br />
# If, after completing the install, xinitrc complains that it cannot find enlightenment upon starting, you may need to add these lines to the end of /etc/profile as well:{{bc|1=PYTHONPATH=":$PYTHONPATH"}}{{bc|1=LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/e17/lib"}}<br />
<br />
If you encounter any errors while trying to install E17, first check to make sure it is not a dependency problem. If it is, install the dependency and continue installing e17.<br />
<br />
To update all installed EFL/E17 components, run this command:<br />
# easy_e17.sh -u<br />
<br />
=== Starting ===<br />
==== startx ====<br />
If you use {{ic|startx}} or a simple [[Display Manager]] like XDM or [[SLiM]], add or uncomment the following command in [[xinitrc]]:<br />
{{hc|~/.xinitrc|<br />
exec enlightenment_start<br />
}}<br />
<br />
==== Entrance ====<br />
Nowadays E17 has a new display manager called Entrance, you can download it from AUR {{AUR|entrance-svn}}.<br />
Entrance is quite sophisticated and its configuration is controlled by {{ic|/etc/entrance.conf}}.<br />
To use Entrance : <br />
<br />
# systemctl enable entrance<br />
<br />
==== Other ====<br />
More advanced display managers like [[GDM]] and [[KDM]] will automatically detect E17 thanks to the {{ic|/usr/share/xsessions/enlightenment.desktop}} file provided by the {{pkg|enlightenment17}} package.<br />
<br />
=== Configuring the Network ===<br />
<br />
==== ConnMan ====<br />
<br />
E17's preferred network manager is [[Connman|ConnMan]]. It is available from the [community] repository as the {{Pkg|connman}} package. For extended configuration, you may also install EConnman (available in AUR as {{AUR|econnman-svn}}) and it's associated dependencies.<br />
<br />
Finally, configure systemd to start the ConnMan daemon at startup:<br />
<br />
systemctl enable connman<br />
<br />
ConnMan loads very quickly and appears to handle DHCP quite nicely. If you have installed [[Wpa_supplicant]], ConnMan latches onto that shows all available wireless connections.<br />
<br />
==== NetworkManager ====<br />
<br />
You can also use {{Pkg|networkmanager}} to manage your network connections.<br />
<br />
pacman -S networkmanager<br />
<br />
Follow the instructions on [[NetworkManager]] to do the configuration. You may also need {{Pkg|network-manager-applet}} to help with your settings.<br />
<br />
pacman -S network-manager-applet<br />
<br />
You may want to add it to the start up programs so every time your E17 starts it appears on systray.<br />
<br />
Settings -> Settings Panel -> Apps -> Startup Applications -> System -> Network<br />
<br />
=== Installing Themes ===<br />
<br />
More themes to customize the look of e17 are available from:<br />
* [http://exchange.enlightenment.org/ exchange.enlightenment.org], for which you can use the {{AUR|e17-themes}} [[AUR]] package<br />
* [http://www.e17-stuff.org e17-stuff.org]<br />
* [http://relighted.c0n.de/#100 relighted.c0n.de] for the default theme in 200 different colors<br />
* [http://trac.enlightenment.org/e/browser/trunk/THEMES svn trunk] (svn checkout the theme you like, run 'make' and you end up with a .edj theme file)<br />
<br />
You can install the themes (coming in .edj format) using the theme configuration dialog or by moving them to {{ic|~/.e/e/themes}}. <br />
<br />
{{Note|During 2010 there was a change in how themes work, so older themes will not work unless they were updated. There used to be an edje_convert tool to do this, but that has been dropped long ago (see: [http://trac.enlightenment.org/e/changeset/56156 trac.enlightenment.org])}}<br />
<br />
=== Modules and Gadgets ===<br />
;Module:Name used in enlightenment to refer to the "backing" code for a gadget. <br />
;Gadget:Front-end or user interface that should help the end users of Enlightenment do something.<br />
<br />
Many Modules provide Gadgets that can be added to your desktop or on a shelf. Some Modules (such as CPUFreq) only provide a single Gadget while others (such as Composite) provide additional features without any gadgets. Note that certain gadgets such as Systray can only be added to a shelf while others such as Moon can only be loaded on the desktop. <br />
<br />
==== Compositing ====<br />
E17 offers two modules for compositing, '''''Composite''''' and '''''Ecomorph''''', depending on your hardware and preference.<br />
<br />
====== Composite ======<br />
The ''Composite'' module is the standard compositing manager provided in enlightenment. It provides some minimal compositing effects such as transparency, fade and shadow. Composite provides the more stable module and is supported on most hardware through either OpenGL or compositing software rendering. When the configuration is messed up and the settings windows can no longer be approached, configuration for the comp module can be reset by the hardcoded keybinding {{ic|Ctrl + Alt + Shift + Home}}.<br />
<br />
====== Ecomorph ======<br />
The ''Ecomorph'' module is a full-featured compositing manager which was ported from [[Compiz]] for E17. It can be downloaded from AUR {{AUR|ecomorph-git}}. Some experience instability with Ecomorph while others use it without a problem. Ecomorph requires 3D acceleration, while Composite does not. Development of ecomorph has been discontinued in favor of the official composite module, although some maintenance and bug fixing may still be done ([http://code.google.com/p/itask-module/wiki/Stuff source]).<br />
<br />
{{Note|The ability to unload the Composite module and load Ecomorph has been removed in the latest development code. Starting with the e18 release, Ecomorph will be officially dead.}}<br />
<br />
==== "Extra" modules ====<br />
{{Warning|These are 3rd party modules and not officially supported by the Enlightenment developers. They are also pulled directly from SVN, so they are development code that may or may not work at any time. Use at your own risk.}}<br />
These modules are available from the AUR, either as part of {{AUR|e-modules-extra-svn}} or as individual packages.<br />
<br />
====== Places ======<br />
From the current source code [http://trac.enlightenment.org/e/browser/trunk/E-MODULES-EXTRA/places/README README] for Places: ''This module manage the volumes device attached to the system.''<br />
<br />
In other words, Places is a gadget that will help you browse files on various devices you might plug into your computer, like phones, cameras, or other various storage devices you might plug into the usb port.<br />
<br />
Available from {{AUR|e17-places-svn}}<br />
{{Note|This module is no longer required for auto-mounting external devices in e17}}<br />
<br />
====== Scale Windows ======<br />
The ''Scale Windows'' module, which requires compositing to be enabled, adds several features. The scale windows effect shrinks all open windows and brings them all into view. The scale pager effect zooms out and shows all desktops as a wall, like the compiz expo plugin. This is known from MacOSX as "Exposé" effect. Both can be added to the desktop as a gadget or bound to a key binding, mouse binding or screen edge binding. <br />
<br />
Some people like to change the standard window selection key binding {{ic|ALT + Tab}} to use Scale Windows to select windows. To change this setting, you navigate to {{ic|Menu > Settings > Settings Panel > Input > Keys}}. From here, you can set any key binding you would like. <br />
<br />
To replace the window selection key binding functionality with Scale Windows, scroll through the left panel until you find the "ALT" section and then find and select {{ic|ALT + Tab}}. Then, scroll through the right panel looking for the "Scale Windows" section and choose either {{ic|Select Next}} or {{ic|Select Next (All)}} depending on whether you would like to see windows from only the current desktop or from all desktops and click "Apply" to save the binding.<br />
<br />
Available from {{AUR|comp-scale-svn}}<br />
<br />
====== Engage ======<br />
Engage is CairoDock/GLX-Dock style docking bar for both application launchers and open applications. It requires compositing to be enabled and has full controls for transparency, size, zoom levels, and more.<br />
<br />
Available from {{AUR|engage-svn}}<br />
<br />
=== Gnome Keyring integration ===<br />
<br />
It is possible to use gnome-keyring in e17. However at the time of writing you need a small hack to make it work in full.<br />
First you must tell e17 to autostart gnome-kering. For that you should go to {{ic|Settings Panel > Apps > Startup Applications}} and activate "Certificate and Key Storage", "GPG Password Agent", "SSH Key Agent" and "Secret Storage Service".<br />
After this you should edit your {{ic|~/.profile}} and add the following:<br />
<br />
if [ -n "$GNOME_KEYRING_PID" ]; then<br />
eval $(gnome-keyring-daemon --start)<br />
export SSH_AUTH_SOCK<br />
export GNOME_KEYRING_CONTROL<br />
export GPG_AGENT_INFO<br />
fi<br />
<br />
This should export the variables you need for your key management at your next login.<br />
<br />
=== Troubleshooting ===<br />
<br />
If you find some unexpected behavior, there are a few things you can do:<br />
# try to see if the same behavior exists with the default theme<br />
# disable any 3rd party modules you may have installed<br />
# backup {{ic|~/.e}} and remove it (e.g. {{ic|mv ~/.e ~/.e.back}})<br />
<br />
If you are sure you found a bug please report it directly upstream. http://trac.enlightenment.org/e/report<br />
<br />
==== Screen unlocking does not work ====<br />
<br />
If screenlock does not accept your password add the following to {{ic|/etc/pam.d/enlightenment}}:<br />
auth required pam_unix_auth.so<br />
<br />
==== Unreadable fonts ====<br />
<br />
If fonts are too small and your screen is unreadable, be sure the right font packages are installed:<br />
pacman -S ttf-dejavu ttf-bitstream-vera<br />
<br />
==== Failure in mounting internal partitions ====<br />
Check if user is in storage group:<br />
{{bc|# groups <user>}}<br />
<br />
If user is not in storage group:<br />
{{bc|# groupadd storage <br />
# gpasswd -a <user> storage}}<br />
<br />
Then create this file as root:<br />
{{bc|# nano /etc/polkit-1/localauthority/50-local.d/10-storage-group-mount-override.pkla}}<br />
<br />
And write into the file:<br />
<br />
[storage group mount override]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks2.filesystem-mount-system<br />
ResultAny=yes<br />
ResultInactive=yes<br />
ResultActive=yes<br />
<br />
For more information, see:<br />
http://bbs.archbang.org/viewtopic.php?id=2720<br />
<br />
== Enlightenment DR16 ==<br />
Enlightenment, Development Release 16 was first released in 2000, and went 1.0 in 2009. It is still under development today, regularly updated by its maintainer Kim 'kwo' Woelders. With compositing, shadows and transparencies, E DR16 kept all of the speed but with up to date refinement.<br />
<br />
=== To install E16 ===<br />
Simply run<br />
# pacman -S enlightenment<br />
<br />
E can be quite different from the other WM's out there, read '''/usr/share/doc/e16/e16.html''' after installation to learn more<br />
The man page is at 'man e16' , not 'man enlightenment', and only gives startup options.<br />
<br />
=== Basic Configuration ===<br />
<br />
Most everything in E DR16 resides in ~/.e16 and is text-based, editable at will. That includes the Menus too.<br />
<br />
Shortcut keys can be either modified by hand, or with the e16keyedit software provided as source on the [http://sourceforge.net/projects/enlightenment/ sourceforge] page of the e16 project, or from the [https://aur.archlinux.org/packages.php?ID=20751 AUR].<br />
<br />
==== Background images ====<br />
<br />
You have to copy the desired wallpapers into ~/.e16/backgrounds/<br />
<br />
MMB or RMB anywhere on the desktop will give access to the settings, select /Desktop/Backgrounds/<br />
<br />
Any new item copied there will get the list auto-updated. Select desired wallpaper from drop-down menu. In side the apropriate tabs in the global e16 settings you can adjust things like tiling of the background image, filling screen and such.<br />
<br />
==== Start/Restart/Stop Scripts ====<br />
<br />
Create a Init , Start and Stop folders in your ~/.e16 folder: any .sh script found there will either be executed at Startup (from Init folder), at each Restart (from Start folder), or at Shutdown (from Stop folder); provided you allowed it trough the MMB / settings / session / <enable scripts> button and made them executable with ''chmod +x '''yourscript.sh'''''.<br />
<br />
==== Compositor ====<br />
<br />
Shadows, Transparent effects ''et all'' can be found in MMB or RMB /Settings, under Composite .<br />
<br />
== External Links ==<br />
* [http://www.enlightenment.org/ Enlightenment Homepage]<br />
* [http://exchange.enlightenment.org/ Enlightenment Exchange]<br />
* [http://trac.enlightenment.org/e/wiki/EFL EFL User Guide]<br />
* [http://www.bodhilinux.com/e17guide/e17guideEN/ Bodhi Guide to Enlightenment]<br />
* [http://www.e17-stuff.org/ E17-Stuff]<br />
* [http://sourceforge.net/projects/enlightenment/ DR16 download resource]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-users E-Users mail list]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-devel E-Devs mail list]<br />
*irc://irc.freenode.net#e</div>Crobehttps://wiki.archlinux.org/index.php?title=Nextcloud&diff=227013Nextcloud2012-10-05T19:29:04Z<p>Crobe: Don't forget SSL</p>
<hr />
<div>[[Category:Web Server]]<br />
[http://en.wikipedia.org/wiki/OwnCloud ownCloud] is a software suite that provides a location-independent storage area for data (cloud storage).<br />
<br />
== Installation ==<br />
{{AUR|owncloud}} is available in the [[AUR]]. <br />
#First of all set up the [[LAMP]] stack as described in the corresponding Wiki article. <br />
#Install the {{AUR|owncloud}} package as described in [[AUR#Installing_packages]].<br />
#Add the following lines into '''/etc/httpd/conf/httpd.conf''':<br />
Include /etc/httpd/conf/extra/owncloud.conf<br />
LoadModule php5_module modules/libphp5.so<br />
Include conf/extra/php5_module.conf<br />
Uncomment extensions in '''/etc/php/php.ini'''<br />
gd.so<br />
xmlrpc.so<br />
zip.so<br />
iconv.so<br />
Depending on which database backend you are going to use uncomment either one of the following extensions in '''/etc/php/php.ini'''<br />
sqlite.so<br />
sqlite3.so<br />
pdo_sqlite.so<br />
OR<br />
mysql.so<br />
mysqli.so<br />
pdo_mysql.so<br />
now restart the apache server with:<br />
# rc.d restart httpd<br />
and open [http://localhost http://localhost] in your browser. You should now be able to create a user account and follow the installation wizard.<br />
<br />
== Custom configurations ==<br />
With the default configuration ownCloud only allows the upload of filesizes less than 2MB.<br />
This can be changed by changing the following line in '''/etc/php/php.ini''' to your liking.<br />
<br />
'''As of version 4.0 this is no longer necessary! The maximum upload size is now set via the ownCloud gui'''<br />
upload_max_filesize = 2M<br />
<br />
== Important Notes ==<br />
* When using a subdomain (like cloud.example.xxx), make sure it is covered by your certificate. Otherwise, connection via the owncloud client or webdav might fail.<br />
<br />
* If you are planning on using OwnCloud's [http://owncloud.org/sync-clients/ sync-clients], make sure to have [[Network_Time_Protocol_daemon|NTP]] installed and running on your OwnCloud server, otherwise the sync-clients will fail.<br />
<br />
* Add some [[LAMP#SSL|SSL encryption]] to your connection!</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=223059Dell XPS M1330 / M15302012-09-14T14:33:14Z<p>Crobe: Added a value</p>
<hr />
<div>[[Category:Dell]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
Sound should now work out of the box. Just be sure to unmute all channels in '''alsamixer'''. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
With the current Linux kernel 3.0 and [[Advanced Linux Sound Architecture|ALSA]] 1.0.24, do not mess around with the snd-hda-intel module, like supposed in different Threads ( model=3stack etc. ). Automatic detection works fine.<br />
<br />
== Touchpad Synaptics ==<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a {{ic|lsusb}}). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install {{Pkg|fprint}}.<br />
<br />
Add yourself to the scanner group<br />
# gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
$ sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, {{ic|/etc/pam.d/sudo}}, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
==== Ethernet Setup ====<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Note| M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
* '''Intel chipset : 4965agn'''<br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the Wi-Fi LED working, you can install {{AUR|compat-wireless}} from [[AUR]]. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
{{Note|The Wi-Fi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).}}<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the GNOME Keyring keeps asking for a password at login by editing {{ic|/etc/pam.d/login}} in addition to the other edits suggested to /etc/pam.d/gdm [[NetworkManager#PolicyKit_issues]]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you do not use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
{{Note|You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so cannot even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)}}<br />
<br />
{{Note|Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)}}<br />
<br />
{{Note|Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)}}<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install {{Pkg|bluez-utils}} & {{Pkg|bluez-libs}} from extra repository.<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
# rc.d restart bluetooth<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions do not work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing {{Ic|bluez-utils}} and installing {{Pkg|blueman}} instead.<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Note|If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Note|This only works since kernel 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in {{Ic|/etc/pm/sleep.d/66dummy}}:<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
# chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
If your hard drive clicks regurlarly, you may suffer from this [https://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add these lines to your {{ic|/etc/rc.local}}:<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in {{ic|sdX}} by the letter of your drive, e.g. {{ic|sda}})<br />
<br />
When resuming from a pm-suspend, you might notice that the hard drive is clicking again. To fix this, modify your {{ic|/etc/pm/sleep.d/66dummy}} to put the lines above. Following the last example in previous suspend section:<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make the file executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
For kernels prior to 2.6.26,you have to install linux-uvc drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently): {{Pkg|linux-uvc-svn}}{{Linkrot|2012|01|31}} (maybe {{Pkg|linux-uvc-utils-svn}} now?).<br />
<br />
Then you have to load corresponding modules:<br />
# modprobe usbvision<br />
# modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
Install i8k packages: {{Pkg|i8kmon}} and {{Pkg|i8kutils}}.<br />
<br />
This will provide many useful information (temperature, fan speed, BIOS...) and utilities (fan monitor, BIOS update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
* They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use GNOME, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
* If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an {{ic|~/.Xmodmap}} file. Here is my {{ic|~/.Xmodmap}} file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it (package {{Pkg|aumix-gtk}}).<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
* KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the GNOME settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Note| Updating your BIOS is always a dangerous operation (even if it is safer on a laptop with a battery). '''Perform it at your own risks.'''}}<br />
<br />
You can perform BIOS updates under GNU/Linux! Just install {{pkg|i8kutils}}!<br />
<br />
Download latest BIOS (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This BIOS is for device ID 0x0209. You can check your device ID by installing {{pkg|libsmbios}} and then running:<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the BIOS file and type as root:<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
<br />
Reboot, stare at the white frightening screen saying "BIOS update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You are done!<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance {{Keypress|Fn+F8}} function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== Battery Usage ==<br />
I have been monitoring the battery usage for while. Test setting is quite easy: Get as Low as Possible with display on and X-Server running, values are reported by Powertop.<br />
<br />
Kernel 3.4.4-3-ARCH and NVidia Driver 304.37, 2,4 Ghz undervolted, Crucial M4 SSD, 9,75 W. Device is 5 years old now.<br />
Kernel 3.0-ARCH and NVidia Driver 275.xx 2,4 Ghz, OCZ SSD, pci_aspm=force on kernel line, 10,8 W. Guess that is near the technical minimum.<br />
Kernel 2.6.37-ARCH and NVidia Driver 270.xx, 2.4 Ghz, OCZ SSD: 11,6 W<br />
Kernel 2.6.36-ARCH and NVidia Driver 256.xx, 1.8 Ghz, Samsung HDD: 11,0 W<br />
<br />
== External Resources ==<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br />
<br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobehttps://wiki.archlinux.org/index.php?title=Benchmarking/Data_storage_devices&diff=214883Benchmarking/Data storage devices2012-07-26T09:29:05Z<p>Crobe: Filled table.</p>
<hr />
<div>[[Category:Storage]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers several Linux-native apps that benchmark I/O devices such as HDDs, SSDs, USB thumb drives, etc. There is also a "database" section specific to SSDs meant to capture user-entered benchmark results.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Benchmarking}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
Several I/O benchmark options exist under Linux.<br />
<br />
* Using hddparm with the -Tt switch, one can time sequential reads. This method is '''independent''' of partition alignment!<br />
* There is a graphical benchmark called palimpsest contained in the [http://www.archlinux.org/packages/?sort=&arch=&repo=&q=gnome-disk-utility&maintainer=&last_update=&flagged=&limit=50 gnome-disk-utility] package that will give min/max/ave reads along with ave access time and a nice graphical display. This method is '''independent''' of partition alignment!'''<br />
* The dd utility can be used to measure both reads and writes. This method is '''dependent''' on partition alignment! In other words, if you failed to properly align your partitions, this fact will be seen here since you're writing and reading to a mounted filesystem.<br />
* [http://wiki.archlinux.org/index.php/Benchmarking#Bonnie.2B.2B Bonnie++]<br />
<br />
=== Using hdparm ===<br />
<br />
# hdparm -Tt /dev/sdX<br />
/dev/sdX:<br />
Timing cached reads: x MB in y seconds = z MB/sec<br />
Timing buffered disk reads: x MB in y seconds = z MB/sec<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of read speed per the hddparm man page.}}<br />
<br />
=== Using palimpsest ===<br />
<br />
# palimpsest<br />
<br />
Users will need to navigate through the GUI to the benchmark button.<br />
<br />
=== Using dd ===<br />
<br />
{{Note|This method requires the command to be executed from a mounted partition on the device of interest!}}<br />
<br />
First, enter a directory on the SSD with at least 1.1 GB of free space (and one that obviously gives your user wrx permissions) and write a test file to measure write speeds and to give the device something to read:<br />
<br />
$ cd /path/to/SSD<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Next, clear the buffer-cache to accurately measure read speeds directly from the device:<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Now that the last file is in the buffer, repeat the command to see the speed of the buffer-cache:<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z GB/s<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of the buffer read speed.}}<br />
<br />
Finally, delete the temp file<br />
$ rm tempfile<br />
<br />
=== Model Specific Data ===<br />
Please contribute to this section using the template below to post results obtained.<br />
<br />
See [http://www.anandtech.com/bench/SSD/65 here] for a nice database of benchmarks.<br />
<br />
=== Template ===<br />
*SSD:<br />
*Model Number:<br />
*Firmware Version:<br />
*Capacity: x GB<br />
*User:<br />
*Kernel:<br />
[*Filesystem: write something about your FS, optional]<br />
[*Notes: additional Notes, optional]<br />
<br />
# hdparm -Tt /dev/sdx<br />
<br />
Minimum Read Rate: x MB/s<br />
Maximum Read Rate: x MB/s<br />
Average Read Rate: x MS/s<br />
Average Access Time x ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
<br />
== Results ==<br />
<br />
=== Table ===<br />
<br />
All values are taken from the ''dd'' "benchmark". This is just an overview and has no scientific use.<br />
<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! User !! Vendor !! Model !! Capacity [Gb] !! Write [Mb/sec] !! Read [Mb/sec] !! Re-Read [Mb/sec]<br />
|-<br />
| jac || Crucial || C300 || 128G || 138 || 372 || 6500<br />
|-<br />
| lynix || Crucial || M4 || 128 || 193 || 268 || 6800<br />
|-<br />
| dundee || Intel || 310 Soda Creek || 40 || 44.2 || 197 || 4200<br />
|- <br />
| Cirk || Intel || X18-M (G2) || 160 || 103 || 263 || 2700<br />
|-<br />
| Graysky || Intel || X25-M (G2) || 80 || 80.6 || 268 || 6300<br />
|-<br />
| fackamato || Intel || X25-M (G2) || 160 || 98 || 262 || 3000<br />
|-<br />
| Cirk || Intel || X25-M (G2) || 80 || 70 || 208 || 4200<br />
|-<br />
| timo.hardebusch || Intel || X25-M (G2) || 120 || 106 || 265 || 2900<br />
|-<br />
| Graysky || OCZ || Vertex 4 SATA 3 || 128 || 228 || 394 || -<br />
|-<br />
| Graysky || OCZ || Vertex 4 SATA 2 || 128 || 251 || 284 || -<br />
|-<br />
| Surfed || OCZ || Vertex || 60 || 142 || 236 || 5200<br />
|-<br />
| Sputnick || OCZ || Vertex 3 || 120 || 245 || 225 || 4600<br />
|-<br />
| ScottKidder || OCZ || Vertex Turbo || 30 || 49 || 115 || 2600<br />
|-<br />
| longint || OCZ || Vertex 2 || 240 || 852? || 241 || 3400<br />
|-<br />
| muflone || OCZ || Vertex 3 || 120 || 377 || 291 || 10300<br />
|-<br />
| bardo || OCZ || Agility 3 || 120 || 445 || 455 || 8200<br />
|-<br />
| Cirk || Samsung || MMCQE28GFMUP-MVA || 128 || 45 || 99 || 2300<br />
|-<br />
| skylinux || Samsung || 470 || 64 || 188 || 204 || 1000<br />
|-<br />
| kevincodux || Samsung || 830 || 128 || 313 || 525 || 9000<br />
|-<br />
| Dani || Sandisk || Extreme || 240 || 481 || 414 || 6000<br />
|- <br />
| Artsibash || Kingston || HyperX || 120 || 451 || 431 || 8600<br />
|- <br />
| Tuxe || Kingston || SSDNow V+100 || 128 || 110 || 232 || 3300<br />
|-<br />
| thof || Kingston || SNV425-S2BD || 128 || 164 || 260 || 3000<br />
|-<br />
|}<br />
<br />
=== Crucial ===<br />
==== Crucial C300 ====<br />
*SSD: Crucial C300 (SATA 3: 6Gb/s)<br />
*Model Number: CTFDDAC128MAG-1G1<br />
*Capacity: 128 GB<br />
*User: jac<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sda:<br />
Timing cached reads: 24112 MB in 2.00 seconds = 12072.84 MB/sec<br />
Timing buffered disk reads: 1056 MB in 3.00 seconds = 351.58 MB/sec<br />
<br />
Minimum Read Rate: 350.88 MB/s<br />
Maximum Read Rate: 351.58 MB/s<br />
Average Read Rate: 351.264 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.77883 s, 138 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.88752 s, 372 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.164471 s, 6.5 GB/s<br />
<br />
==== Crucial M4 ====<br />
*SSD: Crucial M4 (SATA 3: 6Gb/s)<br />
*Model Number: M4-CT128M4SSD2 (Firmware: 0009)<br />
*Capacity: 128 GB<br />
*User: lynix<br />
*Filesystem: ext4 on LVM<br />
*Notes: connected to SATAII 3Gb/s port while benchmarking. firmware matters!<br />
<br />
# hdparm -Tt /dev/sde<br />
/dev/sde:<br />
Timing cached reads: 19094 MB in 2.00 seconds = 9559.40 MB/sec<br />
Timing buffered disk reads: 786 MB in 3.00 seconds = 261.63 MB/sec<br />
<br />
Minimum Read Rate: 271.7 MB/s<br />
Maximum Read Rate: 381.7 MB/s<br />
Average Read Rate: 279.0 MB/s<br />
<br />
Minimum Write Rate: 58.6 MB/s<br />
Maximum Write Rate: 258.9 MB/s<br />
Average Write Rate: 194.8 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.57478 s, 193 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00688 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.157567 s, 6.8 GB/s<br />
<br />
=== Intel ===<br />
==== Intel 310 Soda Creek ====<br />
*SSD: Intel 310 Soda Creek<br />
*Model Number: SSDMAEMC040G2<br />
*Firmware Version: 2CV1023M<br />
*Capacity: 40 GB<br />
*User: dundee<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 6278 MB in 2.00 seconds = 3141.39 MB/sec<br />
Timing buffered disk reads: 784 MB in 3.00 seconds = 260.96 MB/sec<br />
<br />
Minimum Read Rate: 189.7 MB/s<br />
Maximum Read Rate: 281.1 MB/s<br />
Average Read Rate: 277.1 MS/s<br />
Minimum Write Rate: 30.3 MB/s<br />
Maximum Write Rate: 44.6 MB/s<br />
Average Write Rate: 43.8 MS/s<br />
<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 24.3013 s, 44.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.45325 s, 197 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.255569 s, 4.2 GB/s<br />
<br />
==== Intel X18-M (G2) ====<br />
*SSD: Intel X18-M Generation 2<br />
*Model Number: SSDSA1M1602GN<br />
*Capacity: 160 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2826 MB in 2.00 seconds = 1414.39 MB/sec<br />
Timing buffered disk reads: 694 MB in 3.00 seconds = 231.14 MB/sec<br />
<br />
Minimum Read Rate: 216.1 MB/s<br />
Maximum Read Rate: 283.5 MB/s<br />
Average Read Rate: 271.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.4608 s, 103 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.0866 s, 263 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.403244 s, 2.7 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH080G2R5<br />
*Capacity: 80 GB<br />
*User: Graysky<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 15644 MB in 1.99 seconds = 7845.48 MB/sec<br />
Timing buffered disk reads: 788 MB in 3.00 seconds = 262.52 MB/sec<br />
<br />
Minimum Read Rate: 253.6 MB/s<br />
Maximum Read Rate: 286.1 MB/s<br />
Average Read Rate: 282.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 13.3236 s, 80.6 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00297 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.169713 s, 6.3 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M160G2GC<br />
*Capacity: 160 GB<br />
*User: fackamato<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2890 MB in 2.00 seconds = 1445.86 MB/sec<br />
Timing buffered disk reads: 738 MB in 3.00 seconds = 245.69 MB/sec<br />
<br />
Minimum Read Rate: 244.3 MB/s<br />
Maximum Read Rate: 278.6 MB/s<br />
Average Read Rate: 273.3 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.8582 s, 98.9 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.09679 s, 262 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363709 s, 3.0 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M080G2C<br />
*Capacity: 80 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 9384 MB in 2.00 seconds = 4694.29 MB/sec<br />
Timing buffered disk reads: 808 MB in 3.01 seconds = 268.64 MB/sec<br />
<br />
Minimum Read Rate: 229.9 MB/s<br />
Maximum Read Rate: 281.6 MB/s<br />
Average Read Rate: 272.4 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 15.1671 s, 70.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.15237 s, 208 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.256211 s, 4.2 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH120G2K5<br />
*Capacity: 120 GB<br />
*User: timo.hardebusch<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 4358 MB in 2.00 seconds = 2178.89 MB/sec<br />
Timing buffered disk reads: 752 MB in 3.01 seconds = 250.07 MB/sec<br />
<br />
Minimum Read Rate: 259.1 MB/s<br />
Maximum Read Rate: 283.3 MB/s<br />
Average Read Rate: 280.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.1452 s, 106 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.05181 s, 265 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.369308 s, 2.9 GB/s<br />
<br />
=== OCZ ===<br />
==== OCZ-VERTEX 4 128 GB ====<br />
*SSD:OCZ Vertex 4<br />
*Model Number: VTX4-25SAT3 - '''firmware 1.5'''<br />
*Capacity: 128 GB<br />
*User: Graysky<br />
===== In SATA3 Controller =====<br />
{{Note|The SATA controller here is a Highpoint Rocket 620 in PCIe 8.0x slot running at PCIe bus speeds of 5.0 GB/s which is NOT 6.0 GB/s like an onboard SATA3 controller.}}<br />
<br />
# hdparm -Tt /dev/sda<br />
<br />
/dev/sda:<br />
Timing cached reads: 16656 MB in 2.00 seconds = 8338.76 MB/sec<br />
Timing buffered disk reads: 1114 MB in 3.00 seconds = 370.95 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in <br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.71208 s, 228 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.72833 s, 394 MB/s<br />
<br />
===== In SATA2 Controller =====<br />
# hdparm -Tt /dev/sda<br />
<br />
/dev/sda:<br />
Timing cached reads: 15842 MB in 2.00 seconds = 7930.79 MB/sec<br />
Timing buffered disk reads: 814 MB in 3.00 seconds = 271.02 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.28493 s, 251 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.78546 s, 284 MB/s<br />
<br />
==== OCZ-VERTEX 60gb ====<br />
*SSD:OCZ-VERTEX<br />
*Model Number:Firmware 1.5<br />
*Capacity: 60 GB<br />
*User:Surfed<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 16306 MB in 2.00 seconds = 8162.55 MB/sec<br />
Timing buffered disk reads: 646 MB in 3.00 seconds = 215.09 MB/sec<br />
<br />
<br />
Minimum Read Rate: 226.7 MB/s<br />
Maximum Read Rate: 275.2 MB/s<br />
Average Read Rate: 256.9 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.5581 s, 142 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.55881 s, 236 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.205299 s, 5.2 GB/s<br />
<br />
==== OCZ-VERTEX3 120GO ====<br />
*SSD:OCZ-VERTEX3<br />
*Firmware Version:2.06<br />
*Capacity: 6Gb/s SATA III<br />
*User:[[User:Sputnick]]<br />
*Notes: tested on '''SATA II 3Gb/s Dell Optiplex 780 motherboard''' 0C27VV <br />
<br />
# hdparm -Tt /dev/sdc<br />
<br />
/dev/sdc:<br />
Timing cached reads: 13702 MB in 2.00 seconds = 6859.89 MB/sec<br />
Timing buffered disk reads: 644 MB in 3.00 seconds = 214.40 MB/sec<br />
<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,37831 s, 245 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,76932 s, 225 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 0,234682 s, 4,6 GB/s<br />
<br />
==== OCZ-VERTEX-TURBO 30gb ====<br />
*SSD:OCZ-VERTEX-TURBO<br />
*Model Number:Firmware 1.5<br />
*Capacity: 30 GB<br />
*User:ScottKidder<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 6286 MB in 2.00 seconds = 3149.62 MB/sec<br />
Timing buffered disk reads: 630 MB in 3.01 seconds = 209.10 MB/sec<br />
<br />
Minimum Read Rate: 211.8 MB/s<br />
Maximum Read Rate: 254.1 MB/s<br />
Average Read Rate: 249.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 21.5437 s, 49.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34704 s, 115 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.40667 s, 2.6 GB/s<br />
<br />
==== OCZ-VERTEX2 240GB ====<br />
*SSD: OCZ<br />
*Model Number: Vertex2<br />
*Capacity: 240GB<br />
*User: longint<br />
*Filesystem: btrfs compression=lzo,space_cache<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 10972 MB in 2.00 seconds = 5489.70 MB/sec<br />
Timing buffered disk reads: 648 MB in 3.00 seconds = 215.96 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.26013 s, 852 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.45112 s, 241 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.320492 s, 3.4 GB/s<br />
<br />
==== OCZ-VERTEX3 120GB ====<br />
*SSD:OCZ-VERTEX3 SATA III<br />
*Firmware Version:2.13<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard and commit=60<br />
*[[User:muflone]]<br />
<br />
# hdparm -Tt /dev/sdc<br />
/dev/sdc:<br />
Timing cached reads: 23870 MB in 2.00 seconds = 11950.12 MB/sec<br />
Timing buffered disk reads: 866 MB in 3.00 seconds = 288.36 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.85159 s, 377 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.6931 s, 291 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.10383 s, 10.3 GB/s<br />
<br />
==== OCZ-AGILITY3 120GB ====<br />
*SSD:OCZ-AGILITY3 SATA III<br />
*Firmware Version:2.15<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard<br />
*[[User:bardo]]<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 27738 MB in 2.00 seconds = 13889.38 MB/sec<br />
Timing buffered disk reads: 1158 MB in 3.01 seconds = 385.08 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.41537 s, 445 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.35961 s, 455 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.130664 s, 8.2 GB/s<br />
<br />
=== Samsung ===<br />
==== SAMSUNG 128GB / SATAII ====<br />
*SSD: SAMSUNG 128GB / SATAII<br />
*Model Number: MMCQE28GFMUP-MVA<br />
*Capacity: 128 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2612 MB in 2.00 seconds = 1307.40 MB/sec<br />
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.67 MB/sec<br />
<br />
Minimum Read Rate: 108.7 MB/s<br />
Maximum Read Rate: 114.5 MB/s<br />
Average Read Rate: 113.7 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 23.7352 s, 45.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.7563 s, 99.8 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.464824 s, 2.3 GB/s<br />
<br />
==== SAMSUNG 470 64GB ====<br />
*SSD: SAMSUNG 470 64GB<br />
*Model Number: MZ-5PA064/US<br />
*Firmware: AXM070Q1<br />
*Capacity: 64 GB<br />
*User: skylinux<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 1736 MB in 2.00 seconds = 868.62 MB/sec<br />
Timing buffered disk reads: 516 MB in 3.00 seconds = 171.87 MB/sec<br />
<br />
Minimum Read Rate: 276.5 MB/s<br />
Maximum Read Rate: 278.8 MB/s<br />
Average Read Rate: 278.2 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.69714 s, 188 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.25116 s, 204 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.05824 s, 1.0 GB/s<br />
<br />
==== SAMSUNG 830 128GB ====<br />
*SSD: SAMSUNG 830 128GB<br />
*Model Number: MZ-7PC128D<br />
*Firmware: CXM03B1Q<br />
*Capacity: 128 GB<br />
*[[User: kevincodux]]<br />
*Filesystem: ext4,discard,noatime<br />
*Notes: SATAIII, partitions aligned and no swap<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 22130 MB in 2.00 seconds = 11080.54 MB/sec<br />
Timing buffered disk reads: 1500 MB in 3.00 seconds = 499.38 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.42567 s, 313 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.04691 s, 525 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.119695 s, 9.0 GB/s<br />
<br />
=== Sandisk ===<br />
==== Sandisk Extreme ====<br />
*SSD: Sandisk Extreme (SATA 3: 6Gb/s)<br />
*Model Number: SDSSDX240GG25<br />
*Capacity: 240 GB<br />
*User: Dani<br />
<br />
# sudo hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 11596 MB in 2.00 seconds = 5802.26 MB/sec<br />
Timing buffered disk reads: 1190 MB in 3.00 seconds = 396.16 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.23003 s, 481 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.5909 s, 414 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.177952 s, 6.0 GB/s<br />
<br />
=== Kingston ===<br />
==== Kingston HyperX 120 GB ====<br />
*SSD: Kingston HyperX 120 GB<br />
*Model Number: SH100S3120G<br />
*Firmware: 320ABBF0<br />
*Capacity: 120 GB<br />
*User: Artsibash<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 26564 MB in 2.00 seconds = 13296.53 MB/sec<br />
Timing buffered disk reads: 1130 MB in 3.00 seconds = 376.16 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.37858 s, 451 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.48961 s, 431 MB/s<br />
<br />
# dd if=/tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.125463 s, 8.6 GB/s<br />
<br />
==== Kingston SSDNow V+100 128 GB ====<br />
*SSD: Kingston SSDNow v+100 128 GB<br />
*Model Number: SVP100S2128G<br />
*Firmware: CJRA0202<br />
*Capacity: 128 GB<br />
*User: Tuxe<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 11598 MB in 1.99 seconds = 5822.73 MB/sec<br />
Timing buffered disk reads: 598 MB in 3.01 seconds = 198.90 MB/sec<br />
<br />
Minimum Read Rate: 145.8 MB/s<br />
Maximum Read Rate: 259.2 MB/s<br />
Average Read Rate: 243.5 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.74199 s, 110 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.62165 s, 232 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.330142 s, 3.3 GB/s<br />
<br />
==== Kingston SNV425-S2BD 128GB ====<br />
*SSD: Kingston SNV425-S2BD/128GB<br />
*Model Number: SNV425S2128GB<br />
*Firmware: C09112a6<br />
*Capacity: 128 GB<br />
*User: thof<br />
*Filesystem: ext4<br />
*Kernel: 3.3.4<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 3614 MB in 2.00 seconds = 1808.83 MB/sec<br />
Timing buffered disk reads: 736 MB in 3.01 seconds = 244.91 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 6.5301 s, 164 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.1377 s, 260 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363142 s, 3.0 GB/s<br />
<br />
= Encrypted Partitions =<br />
<br />
This section should show some data for encrypted partitions.<br />
<br />
== dm-crypt with AES ==<br />
<br />
Please list your CPU and if you are using AES-NI. Without AES-NI support in the CPU, the processor will be the bottleneck long before you touch the >500MB/s SSD speeds. <br />
<br />
'''i7-620M Benchmark'''<br />
*~570 MB/s :With AES-NI<br />
*~100 MB/s :Without AES-NI<br />
<br />
=== Crucial ===<br />
<br />
The crucial drive does not use any compression to reach its speeds, so it is expected to be fast.<br />
<br />
==== Crucial M4 256 Gb ====<br />
<br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt<br />
* Running Sata 6 Gbit/s on an older 3 Gbit/s controller<br />
* Comment: The drive is faster on writing ( on fresh space ), which has been observed on the internet. Maybe this is the maximum of my machine.<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 256 bits<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3012 MB in 2.00 seconds = 1507.62 MB/sec<br />
Timing buffered disk reads: 558 MB in 3.00 seconds = 185.93 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 7,86539 s, 137 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 9,78325 s, 110 MB/s<br />
<br />
=== OCZ ===<br />
<br />
The OCZ Drives use compression on Data, so with uncompressible encrypted Data, speeds are expected to be way lower. Still, seek times should be as low as ever and the drive shouldn't get slower when it gets full, so there should be enough speed.<br />
<br />
==== OCZ-VERTEX2 180GB ====<br />
<br />
* SSD: OCZ <br />
* Model Number: Vertex2 <br />
* Capacity: 180Gb <br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt with AES, essiv, sha256<br />
* The bottleneck for the read/write speeds is definately the drive<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 2842 MB in 2.00 seconds = 1422.61 MB/sec<br />
Timing buffered disk reads: 550 MB in 3.00 seconds = 183.26 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 16,9194 s, 63,5 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 14,5509 s, 73,8 MB/s<br />
<br />
Same values for bonnie++.<br />
<br />
=== Samsung ===<br />
<br />
==== SAMSUNG 470 128GB ====<br />
<br />
*SSD: SAMSUNG 470 128GB<br />
*Firmware: AXM09B1Q<br />
*Capacity: 128 GB<br />
*User: FredericChopin<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 512 bits<br />
offset: 8192 sectors<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3226 MB in 2.00 seconds = 1614.42 MB/sec<br />
Timing buffered disk reads: 570 MB in 3.00 seconds = 189.84 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.62518 s, 112 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34282 s, 115 MB/s<br />
<br />
== Truecrypt ==<br />
<br />
= Comparison - high end SCSI RAID 0 hard drive benchmark =<br />
== LSI 320-2X Megaraid SCSI == <br />
<br />
* SSD: N/A<br />
* Model Number: LSI MegaRAID 320-2x RAID 0 x 2 Seagate Cheetah ST373455LC 15,000 RPM 146GB drives<br />
* Capacity: 292Gb <br />
* User: rabinnh<br />
* Filesystem: ext4 on x86_64<br />
* Comment: No, this is not an SSD, but Googlers should have a reasonable basis for comparison to a high end hard drive system, and you won't get much higher end for an individual workstation. The cost of this disk subsystem is conservatively $760, and it gives at best half the performance of most SSDs.<br />
<br />
<pre>$sudo hdparm -Tt /dev/sda2<br />
/dev/sda2:<br />
Timing cached reads: 6344 MB in 2.00 seconds = 3174.02 MB/sec<br />
Timing buffered disk reads: 442 MB in 3.01 seconds = 146.97 MB/sec</pre><br />
<br />
<pre>$dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.13482 s, 150 MB/s<br />
</pre><br />
<pre><br />
$echo 3 > /proc/sys/vm/drop_caches<br />
$dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.24267 s, 148 MB/s</pre><br />
<br />
<pre>$dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.459814 s, 2.3 GB/s</pre></div>Crobehttps://wiki.archlinux.org/index.php?title=Benchmarking/Data_storage_devices&diff=214882Benchmarking/Data storage devices2012-07-26T09:11:32Z<p>Crobe: Minor reformat and adding table</p>
<hr />
<div>[[Category:Storage]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers several Linux-native apps that benchmark I/O devices such as HDDs, SSDs, USB thumb drives, etc. There is also a "database" section specific to SSDs meant to capture user-entered benchmark results.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Benchmarking}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
Several I/O benchmark options exist under Linux.<br />
<br />
* Using hddparm with the -Tt switch, one can time sequential reads. This method is '''independent''' of partition alignment!<br />
* There is a graphical benchmark called palimpsest contained in the [http://www.archlinux.org/packages/?sort=&arch=&repo=&q=gnome-disk-utility&maintainer=&last_update=&flagged=&limit=50 gnome-disk-utility] package that will give min/max/ave reads along with ave access time and a nice graphical display. This method is '''independent''' of partition alignment!'''<br />
* The dd utility can be used to measure both reads and writes. This method is '''dependent''' on partition alignment! In other words, if you failed to properly align your partitions, this fact will be seen here since you're writing and reading to a mounted filesystem.<br />
* [http://wiki.archlinux.org/index.php/Benchmarking#Bonnie.2B.2B Bonnie++]<br />
<br />
=== Using hdparm ===<br />
<br />
# hdparm -Tt /dev/sdX<br />
/dev/sdX:<br />
Timing cached reads: x MB in y seconds = z MB/sec<br />
Timing buffered disk reads: x MB in y seconds = z MB/sec<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of read speed per the hddparm man page.}}<br />
<br />
=== Using palimpsest ===<br />
<br />
# palimpsest<br />
<br />
Users will need to navigate through the GUI to the benchmark button.<br />
<br />
=== Using dd ===<br />
<br />
{{Note|This method requires the command to be executed from a mounted partition on the device of interest!}}<br />
<br />
First, enter a directory on the SSD with at least 1.1 GB of free space (and one that obviously gives your user wrx permissions) and write a test file to measure write speeds and to give the device something to read:<br />
<br />
$ cd /path/to/SSD<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Next, clear the buffer-cache to accurately measure read speeds directly from the device:<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Now that the last file is in the buffer, repeat the command to see the speed of the buffer-cache:<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z GB/s<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of the buffer read speed.}}<br />
<br />
Finally, delete the temp file<br />
$ rm tempfile<br />
<br />
=== Model Specific Data ===<br />
Please contribute to this section using the template below to post results obtained.<br />
<br />
See [http://www.anandtech.com/bench/SSD/65 here] for a nice database of benchmarks.<br />
<br />
=== Template ===<br />
*SSD:<br />
*Model Number:<br />
*Firmware Version:<br />
*Capacity: x GB<br />
*User:<br />
*Kernel:<br />
[*Filesystem: write something about your FS, optional]<br />
[*Notes: additional Notes, optional]<br />
<br />
# hdparm -Tt /dev/sdx<br />
<br />
Minimum Read Rate: x MB/s<br />
Maximum Read Rate: x MB/s<br />
Average Read Rate: x MS/s<br />
Average Access Time x ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
<br />
== Results ==<br />
<br />
=== Table ===<br />
<br />
=== Crucial ===<br />
==== Crucial C300 ====<br />
*SSD: Crucial C300 (SATA 3: 6Gb/s)<br />
*Model Number: CTFDDAC128MAG-1G1<br />
*Capacity: 128 GB<br />
*User: jac<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sda:<br />
Timing cached reads: 24112 MB in 2.00 seconds = 12072.84 MB/sec<br />
Timing buffered disk reads: 1056 MB in 3.00 seconds = 351.58 MB/sec<br />
<br />
Minimum Read Rate: 350.88 MB/s<br />
Maximum Read Rate: 351.58 MB/s<br />
Average Read Rate: 351.264 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.77883 s, 138 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.88752 s, 372 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.164471 s, 6.5 GB/s<br />
<br />
==== Crucial M4 ====<br />
*SSD: Crucial M4 (SATA 3: 6Gb/s)<br />
*Model Number: M4-CT128M4SSD2 (Firmware: 0009)<br />
*Capacity: 128 GB<br />
*User: lynix<br />
*Filesystem: ext4 on LVM<br />
*Notes: connected to SATAII 3Gb/s port while benchmarking. firmware matters!<br />
<br />
# hdparm -Tt /dev/sde<br />
/dev/sde:<br />
Timing cached reads: 19094 MB in 2.00 seconds = 9559.40 MB/sec<br />
Timing buffered disk reads: 786 MB in 3.00 seconds = 261.63 MB/sec<br />
<br />
Minimum Read Rate: 271.7 MB/s<br />
Maximum Read Rate: 381.7 MB/s<br />
Average Read Rate: 279.0 MB/s<br />
<br />
Minimum Write Rate: 58.6 MB/s<br />
Maximum Write Rate: 258.9 MB/s<br />
Average Write Rate: 194.8 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.57478 s, 193 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00688 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.157567 s, 6.8 GB/s<br />
<br />
=== Intel ===<br />
==== Intel 310 Soda Creek ====<br />
*SSD: Intel 310 Soda Creek<br />
*Model Number: SSDMAEMC040G2<br />
*Firmware Version: 2CV1023M<br />
*Capacity: 40 GB<br />
*User: dundee<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 6278 MB in 2.00 seconds = 3141.39 MB/sec<br />
Timing buffered disk reads: 784 MB in 3.00 seconds = 260.96 MB/sec<br />
<br />
Minimum Read Rate: 189.7 MB/s<br />
Maximum Read Rate: 281.1 MB/s<br />
Average Read Rate: 277.1 MS/s<br />
Minimum Write Rate: 30.3 MB/s<br />
Maximum Write Rate: 44.6 MB/s<br />
Average Write Rate: 43.8 MS/s<br />
<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 24.3013 s, 44.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.45325 s, 197 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.255569 s, 4.2 GB/s<br />
<br />
==== Intel X18-M (G2) ====<br />
*SSD: Intel X18-M Generation 2<br />
*Model Number: SSDSA1M1602GN<br />
*Capacity: 160 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2826 MB in 2.00 seconds = 1414.39 MB/sec<br />
Timing buffered disk reads: 694 MB in 3.00 seconds = 231.14 MB/sec<br />
<br />
Minimum Read Rate: 216.1 MB/s<br />
Maximum Read Rate: 283.5 MB/s<br />
Average Read Rate: 271.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.4608 s, 103 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.0866 s, 263 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.403244 s, 2.7 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH080G2R5<br />
*Capacity: 80 GB<br />
*User: Graysky<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 15644 MB in 1.99 seconds = 7845.48 MB/sec<br />
Timing buffered disk reads: 788 MB in 3.00 seconds = 262.52 MB/sec<br />
<br />
Minimum Read Rate: 253.6 MB/s<br />
Maximum Read Rate: 286.1 MB/s<br />
Average Read Rate: 282.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 13.3236 s, 80.6 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00297 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.169713 s, 6.3 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M160G2GC<br />
*Capacity: 160 GB<br />
*User: fackamato<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2890 MB in 2.00 seconds = 1445.86 MB/sec<br />
Timing buffered disk reads: 738 MB in 3.00 seconds = 245.69 MB/sec<br />
<br />
Minimum Read Rate: 244.3 MB/s<br />
Maximum Read Rate: 278.6 MB/s<br />
Average Read Rate: 273.3 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.8582 s, 98.9 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.09679 s, 262 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363709 s, 3.0 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M080G2C<br />
*Capacity: 80 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 9384 MB in 2.00 seconds = 4694.29 MB/sec<br />
Timing buffered disk reads: 808 MB in 3.01 seconds = 268.64 MB/sec<br />
<br />
Minimum Read Rate: 229.9 MB/s<br />
Maximum Read Rate: 281.6 MB/s<br />
Average Read Rate: 272.4 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 15.1671 s, 70.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.15237 s, 208 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.256211 s, 4.2 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH120G2K5<br />
*Capacity: 120 GB<br />
*User: timo.hardebusch<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 4358 MB in 2.00 seconds = 2178.89 MB/sec<br />
Timing buffered disk reads: 752 MB in 3.01 seconds = 250.07 MB/sec<br />
<br />
Minimum Read Rate: 259.1 MB/s<br />
Maximum Read Rate: 283.3 MB/s<br />
Average Read Rate: 280.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.1452 s, 106 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.05181 s, 265 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.369308 s, 2.9 GB/s<br />
<br />
=== OCZ ===<br />
==== OCZ-VERTEX 4 128 GB ====<br />
*SSD:OCZ Vertex 4<br />
*Model Number: VTX4-25SAT3 - '''firmware 1.5'''<br />
*Capacity: 128 GB<br />
*User: Graysky<br />
===== In SATA3 Controller =====<br />
{{Note|The SATA controller here is a Highpoint Rocket 620 in PCIe 8.0x slot running at PCIe bus speeds of 5.0 GB/s which is NOT 6.0 GB/s like an onboard SATA3 controller.}}<br />
<br />
# hdparm -Tt /dev/sda<br />
<br />
/dev/sda:<br />
Timing cached reads: 16656 MB in 2.00 seconds = 8338.76 MB/sec<br />
Timing buffered disk reads: 1114 MB in 3.00 seconds = 370.95 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in <br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.71208 s, 228 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.72833 s, 394 MB/s<br />
<br />
===== In SATA2 Controller =====<br />
# hdparm -Tt /dev/sda<br />
<br />
/dev/sda:<br />
Timing cached reads: 15842 MB in 2.00 seconds = 7930.79 MB/sec<br />
Timing buffered disk reads: 814 MB in 3.00 seconds = 271.02 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.28493 s, 251 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.78546 s, 284 MB/s<br />
<br />
==== OCZ-VERTEX 60gb ====<br />
*SSD:OCZ-VERTEX<br />
*Model Number:Firmware 1.5<br />
*Capacity: 60 GB<br />
*User:Surfed<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 16306 MB in 2.00 seconds = 8162.55 MB/sec<br />
Timing buffered disk reads: 646 MB in 3.00 seconds = 215.09 MB/sec<br />
<br />
<br />
Minimum Read Rate: 226.7 MB/s<br />
Maximum Read Rate: 275.2 MB/s<br />
Average Read Rate: 256.9 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.5581 s, 142 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.55881 s, 236 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.205299 s, 5.2 GB/s<br />
<br />
==== OCZ-VERTEX3 120GO ====<br />
*SSD:OCZ-VERTEX3<br />
*Firmware Version:2.06<br />
*Capacity: 6Gb/s SATA III<br />
*User:[[User:Sputnick]]<br />
*Notes: tested on '''SATA II 3Gb/s Dell Optiplex 780 motherboard''' 0C27VV <br />
<br />
# hdparm -Tt /dev/sdc<br />
<br />
/dev/sdc:<br />
Timing cached reads: 13702 MB in 2.00 seconds = 6859.89 MB/sec<br />
Timing buffered disk reads: 644 MB in 3.00 seconds = 214.40 MB/sec<br />
<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,37831 s, 245 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,76932 s, 225 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 0,234682 s, 4,6 GB/s<br />
<br />
==== OCZ-VERTEX-TURBO 30gb ====<br />
*SSD:OCZ-VERTEX-TURBO<br />
*Model Number:Firmware 1.5<br />
*Capacity: 30 GB<br />
*User:ScottKidder<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 6286 MB in 2.00 seconds = 3149.62 MB/sec<br />
Timing buffered disk reads: 630 MB in 3.01 seconds = 209.10 MB/sec<br />
<br />
Minimum Read Rate: 211.8 MB/s<br />
Maximum Read Rate: 254.1 MB/s<br />
Average Read Rate: 249.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 21.5437 s, 49.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34704 s, 115 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.40667 s, 2.6 GB/s<br />
<br />
==== OCZ-VERTEX2 240GB ====<br />
*SSD: OCZ<br />
*Model Number: Vertex2<br />
*Capacity: 240GB<br />
*User: longint<br />
*Filesystem: btrfs compression=lzo,space_cache<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 10972 MB in 2.00 seconds = 5489.70 MB/sec<br />
Timing buffered disk reads: 648 MB in 3.00 seconds = 215.96 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.26013 s, 852 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.45112 s, 241 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.320492 s, 3.4 GB/s<br />
<br />
==== OCZ-VERTEX3 120GB ====<br />
*SSD:OCZ-VERTEX3 SATA III<br />
*Firmware Version:2.13<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard and commit=60<br />
*[[User:muflone]]<br />
<br />
# hdparm -Tt /dev/sdc<br />
/dev/sdc:<br />
Timing cached reads: 23870 MB in 2.00 seconds = 11950.12 MB/sec<br />
Timing buffered disk reads: 866 MB in 3.00 seconds = 288.36 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.85159 s, 377 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.6931 s, 291 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.10383 s, 10.3 GB/s<br />
<br />
==== OCZ-AGILITY3 120GB ====<br />
*SSD:OCZ-AGILITY3 SATA III<br />
*Firmware Version:2.15<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard<br />
*[[User:bardo]]<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 27738 MB in 2.00 seconds = 13889.38 MB/sec<br />
Timing buffered disk reads: 1158 MB in 3.01 seconds = 385.08 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.41537 s, 445 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.35961 s, 455 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.130664 s, 8.2 GB/s<br />
<br />
=== Samsung ===<br />
==== SAMSUNG 128GB / SATAII ====<br />
*SSD: SAMSUNG 128GB / SATAII<br />
*Model Number: MMCQE28GFMUP-MVA<br />
*Capacity: 128 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2612 MB in 2.00 seconds = 1307.40 MB/sec<br />
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.67 MB/sec<br />
<br />
Minimum Read Rate: 108.7 MB/s<br />
Maximum Read Rate: 114.5 MB/s<br />
Average Read Rate: 113.7 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 23.7352 s, 45.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.7563 s, 99.8 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.464824 s, 2.3 GB/s<br />
<br />
==== SAMSUNG 470 64GB ====<br />
*SSD: SAMSUNG 470 64GB<br />
*Model Number: MZ-5PA064/US<br />
*Firmware: AXM070Q1<br />
*Capacity: 64 GB<br />
*User: skylinux<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 1736 MB in 2.00 seconds = 868.62 MB/sec<br />
Timing buffered disk reads: 516 MB in 3.00 seconds = 171.87 MB/sec<br />
<br />
Minimum Read Rate: 276.5 MB/s<br />
Maximum Read Rate: 278.8 MB/s<br />
Average Read Rate: 278.2 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.69714 s, 188 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.25116 s, 204 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.05824 s, 1.0 GB/s<br />
<br />
==== SAMSUNG 830 128GB ====<br />
*SSD: SAMSUNG 830 128GB<br />
*Model Number: MZ-7PC128D<br />
*Firmware: CXM03B1Q<br />
*Capacity: 128 GB<br />
*[[User: kevincodux]]<br />
*Filesystem: ext4,discard,noatime<br />
*Notes: SATAIII, partitions aligned and no swap<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 22130 MB in 2.00 seconds = 11080.54 MB/sec<br />
Timing buffered disk reads: 1500 MB in 3.00 seconds = 499.38 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.42567 s, 313 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.04691 s, 525 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.119695 s, 9.0 GB/s<br />
<br />
=== Sandisk ===<br />
==== Sandisk Extreme ====<br />
*SSD: Sandisk Extreme (SATA 3: 6Gb/s)<br />
*Model Number: SDSSDX240GG25<br />
*Capacity: 240 GB<br />
*User: Dani<br />
<br />
# sudo hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 11596 MB in 2.00 seconds = 5802.26 MB/sec<br />
Timing buffered disk reads: 1190 MB in 3.00 seconds = 396.16 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.23003 s, 481 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.5909 s, 414 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.177952 s, 6.0 GB/s<br />
<br />
=== Kingston ===<br />
==== Kingston HyperX 120 GB ====<br />
*SSD: Kingston HyperX 120 GB<br />
*Model Number: SH100S3120G<br />
*Firmware: 320ABBF0<br />
*Capacity: 120 GB<br />
*User: Artsibash<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 26564 MB in 2.00 seconds = 13296.53 MB/sec<br />
Timing buffered disk reads: 1130 MB in 3.00 seconds = 376.16 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.37858 s, 451 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.48961 s, 431 MB/s<br />
<br />
# dd if=/tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.125463 s, 8.6 GB/s<br />
<br />
==== Kingston SSDNow V+100 128 GB ====<br />
*SSD: Kingston SSDNow v+100 128 GB<br />
*Model Number: SVP100S2128G<br />
*Firmware: CJRA0202<br />
*Capacity: 128 GB<br />
*User: Tuxe<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 11598 MB in 1.99 seconds = 5822.73 MB/sec<br />
Timing buffered disk reads: 598 MB in 3.01 seconds = 198.90 MB/sec<br />
<br />
Minimum Read Rate: 145.8 MB/s<br />
Maximum Read Rate: 259.2 MB/s<br />
Average Read Rate: 243.5 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.74199 s, 110 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.62165 s, 232 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.330142 s, 3.3 GB/s<br />
<br />
==== Kingston SNV425-S2BD 128GB ====<br />
*SSD: Kingston SNV425-S2BD/128GB<br />
*Model Number: SNV425S2128GB<br />
*Firmware: C09112a6<br />
*Capacity: 128 GB<br />
*User: thof<br />
*Filesystem: ext4<br />
*Kernel: 3.3.4<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 3614 MB in 2.00 seconds = 1808.83 MB/sec<br />
Timing buffered disk reads: 736 MB in 3.01 seconds = 244.91 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 6.5301 s, 164 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.1377 s, 260 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363142 s, 3.0 GB/s<br />
<br />
= Encrypted Partitions =<br />
<br />
This section should show some data for encrypted partitions.<br />
<br />
== dm-crypt with AES ==<br />
<br />
Please list your CPU and if you are using AES-NI. Without AES-NI support in the CPU, the processor will be the bottleneck long before you touch the >500MB/s SSD speeds. <br />
<br />
'''i7-620M Benchmark'''<br />
*~570 MB/s :With AES-NI<br />
*~100 MB/s :Without AES-NI<br />
<br />
=== Crucial ===<br />
<br />
The crucial drive does not use any compression to reach its speeds, so it is expected to be fast.<br />
<br />
==== Crucial M4 256 Gb ====<br />
<br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt<br />
* Running Sata 6 Gbit/s on an older 3 Gbit/s controller<br />
* Comment: The drive is faster on writing ( on fresh space ), which has been observed on the internet. Maybe this is the maximum of my machine.<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 256 bits<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3012 MB in 2.00 seconds = 1507.62 MB/sec<br />
Timing buffered disk reads: 558 MB in 3.00 seconds = 185.93 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 7,86539 s, 137 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 9,78325 s, 110 MB/s<br />
<br />
=== OCZ ===<br />
<br />
The OCZ Drives use compression on Data, so with uncompressible encrypted Data, speeds are expected to be way lower. Still, seek times should be as low as ever and the drive shouldn't get slower when it gets full, so there should be enough speed.<br />
<br />
==== OCZ-VERTEX2 180GB ====<br />
<br />
* SSD: OCZ <br />
* Model Number: Vertex2 <br />
* Capacity: 180Gb <br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt with AES, essiv, sha256<br />
* The bottleneck for the read/write speeds is definately the drive<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 2842 MB in 2.00 seconds = 1422.61 MB/sec<br />
Timing buffered disk reads: 550 MB in 3.00 seconds = 183.26 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 16,9194 s, 63,5 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 14,5509 s, 73,8 MB/s<br />
<br />
Same values for bonnie++.<br />
<br />
=== Samsung ===<br />
<br />
==== SAMSUNG 470 128GB ====<br />
<br />
*SSD: SAMSUNG 470 128GB<br />
*Firmware: AXM09B1Q<br />
*Capacity: 128 GB<br />
*User: FredericChopin<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 512 bits<br />
offset: 8192 sectors<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3226 MB in 2.00 seconds = 1614.42 MB/sec<br />
Timing buffered disk reads: 570 MB in 3.00 seconds = 189.84 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.62518 s, 112 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34282 s, 115 MB/s<br />
<br />
== Truecrypt ==<br />
<br />
= Comparison - high end SCSI RAID 0 hard drive benchmark =<br />
== LSI 320-2X Megaraid SCSI == <br />
<br />
* SSD: N/A<br />
* Model Number: LSI MegaRAID 320-2x RAID 0 x 2 Seagate Cheetah ST373455LC 15,000 RPM 146GB drives<br />
* Capacity: 292Gb <br />
* User: rabinnh<br />
* Filesystem: ext4 on x86_64<br />
* Comment: No, this is not an SSD, but Googlers should have a reasonable basis for comparison to a high end hard drive system, and you won't get much higher end for an individual workstation. The cost of this disk subsystem is conservatively $760, and it gives at best half the performance of most SSDs.<br />
<br />
<pre>$sudo hdparm -Tt /dev/sda2<br />
/dev/sda2:<br />
Timing cached reads: 6344 MB in 2.00 seconds = 3174.02 MB/sec<br />
Timing buffered disk reads: 442 MB in 3.01 seconds = 146.97 MB/sec</pre><br />
<br />
<pre>$dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.13482 s, 150 MB/s<br />
</pre><br />
<pre><br />
$echo 3 > /proc/sys/vm/drop_caches<br />
$dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.24267 s, 148 MB/s</pre><br />
<br />
<pre>$dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.459814 s, 2.3 GB/s</pre></div>Crobehttps://wiki.archlinux.org/index.php?title=Solid_state_drive/Memory_cell_clearing&diff=200734Solid state drive/Memory cell clearing2012-05-08T11:52:45Z<p>Crobe: /* Step 1 - Make sure the drive security is not frozen */</p>
<hr />
<div>[[Category:Storage]]<br />
{{i18n|SSD Memory Cell Clearing}}<br />
{{Article summary start}}<br />
{{Article summary text|This article presents a method to reset all cells on an SSD to their factory default state thus recovering any loss of write performance.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Securely Wipe HDD}}<br />
{{Article summary end}}<br />
<br />
== Introduction ==<br />
<br />
On occasion, users may wish to completely reset an SSD's cells to the same virgin state they were manufactured, thus restoring it to its [http://www.anandtech.com/storage/showdoc.aspx?i=3531&p=8 factory default write performance]. Write performance is known to degrade over time even on SSDs with native TRIM support. TRIM only safeguards against file deletes, not replacements such as an incremental save.<br />
{{Warning|Back up ALL data of importance prior to continuing! Using this procedure will destroy ALL data on the SSD and render it unrecoverable by even data recovery services! Users will have to repartition the device and restore the data after completing this procedure!}}<br />
<br />
== Quick N' Dirty ==<br />
<br />
{{Warning|It is recommended that you read the rest of the article BEFORE you try this!}}<br />
<br />
hdparm --user-master u --security-set-pass Eins /dev/sdX<br />
hdparm --user-master u --security-erase Eins /dev/sdX<br />
<br />
== Step 1 - Make sure the drive security is not frozen ==<br />
Issue the following command:<br />
# hdparm -I /dev/sdX<br />
<br />
If the command output shows "frozen" one cannot continue to the next step. Most BIOSes block (do no allow) the ATA Secure Erase command by issuing a "SECURITY FREEZE" command to "freeze" the drive before booting an operating system.<br />
<br />
A possible solution for SATA drives is hot-(re)plug the data cable (which might crash the kernel). If hot-(re)pluging the SATA data cable crashes the kernel try letting the operating system fully boot up, then quickly hot-(re)plug both the SATA power and data cables.<br />
<br />
* It has been reported that hooking up the drive to an eSATA SIIG ExpressCard/54 with an eSATA enclosure will leave the drive security state to "not frozen."<br />
* Placing the target system into "sleep" (Clevo M865TU notebook, Fujitsu T2010 notebook, Dell XPS M1330) and waking it up again has been reported to work as well; this may reset drives to "not frozen". In case you are booting from USB, you need a distribution, that runs entirely in RAM, like [http://grml.org], see the grml2ram option. Run ''echo -n mem > /sys/power/state'' to set the computer to sleep.<br />
* Hooking up the drive to a USB 2/3 port does '''NOT''' work, as you need to issue IDE commands which is only possible via IDE/SATA connection.<br />
* Make sure drive security is '''disabled''' in BIOS, so no password is set.<br />
<br />
<pre>Security: <br />
Master password revision code = 65534<br />
supported<br />
not enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Step 2 - Enable security by setting a user password ==<br />
{{Note|When the user password is set the drive will be locked after next power cycle denying normal access until unlocked with the correct password).}}<br />
<br />
Any password will do, as this should only be temporary. After the secure erase the password will be set back to NULL. In this example, the password is "Eins" as shown:<br />
# hdparm --user-master u --security-set-pass Eins /dev/sdX<br />
security_password="Eins"<br />
/dev/sdX:<br />
Issuing SECURITY_SET_PASS command, password="Eins", user=user, mode=high<br />
<br />
As a sanity check, issue the following command<br />
<br />
# hdparm -I /dev/sdX<br />
<br />
The command output should display "enabled":<br />
<pre> Security: <br />
Master password revision code = 65534<br />
supported<br />
enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
Security level high<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Step 3 - Issue the ATA Secure Erase command ==<br />
<br />
# time hdparm --user-master u --security-erase Eins /dev/sdX<br />
<br />
Wait until the command completes. This example output shows it took about 40 seconds for an Intel X25-M 80GB SSD, for a 1TB hard disk it might take 3 hours or more!<br />
<br />
security_password="Eins"<br />
/dev/sdX:<br />
Issuing SECURITY_ERASE command, password="Eins", user=user<br />
0.000u 0.000s 0:39.71 0.0% 0+0k 0+0io 0pf+0w<br />
<br />
The drive is now erased. After a successful erasure the drive security should automatically be set to disabled (thus no longer requiring a password for access). Verify this by running the following command:<br />
# hdparm -I /dev/sdX<br />
<br />
The command output should display "not enabled": <br />
<pre> Security: <br />
Master password revision code = 65534<br />
supported<br />
not enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Post Process Observation ==<br />
<br />
{{Note|Once switching from an MBR to GPT partition scheme, this is a non-issue.}}<br />
<br />
I experienced a "glitch" with my Intel X25-M (G2) after doing this procedure. I do not know if it's fdisk's fault or the procedure's fault.<br />
<br />
For some reason, after creating two partitions (1st = 68 G and 2nd = rest of drive), the 32 H and 32 S settings weren't retained. Creating just one partition, writing changes, and exiting gave a result consistent with the -H 32 -S 32 settings when checking via the "fdisk -l" command. However, after adding the 2nd partition, writing and running the same "fdisk -l" command, new values for the geometry were shown - they switched to 255/63! The solution was to start fdisk with the 32/32 parameters and write down the number of cylinders, then use cfdisk to do my partitioning.<br />
<br />
Example:<br />
<br />
# fdisk -H 32 -S 32 /dev/sdb<br />
<br />
Command (m for help): p<br />
<br />
Disk /dev/sdb: 80.0 GB, 80026361856 bytes<br />
32 heads, 32 sectors/track, 152638 cylinders, total 156301488 sectors<br />
Units = sectors of 1 * 512 = 512 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sdb1 32 132812799 66406384 83 Linux<br />
/dev/sdb2 132812800 156301311 11744256 83 Linux<br />
<br />
Here the correct number of cylinders is 152638. I now went into cfdisk and invoked the "geometry" option via: {{Keypress|g}}. I then manually defined the number of heads to 32, sectors per track to 32, and cylinders to 152638. Now I setup my partitions:<br />
<br />
<pre> cfdisk (util-linux-ng 2.18)<br />
<br />
Disk Drive: /dev/sdb<br />
Size: 80026361856 bytes, 80.0 GB<br />
Heads: 32 Sectors per Track: 32 Cylinders: 152638<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------------------------------------<br />
sdb1 Primary ext4 68000.16 <br />
sdb2 Primary ext4 12026.12</pre><br />
<br />
Now querying the device via fdisk gave the consistent values.<br />
<br />
# fdisk -l /dev/sdb<br />
<br />
Disk /dev/sdb: 80.0 GB, 80026361856 bytes<br />
32 heads, 32 sectors/track, 152638 cylinders, total 156301488 sectors<br />
Units = sectors of 1 * 512 = 512 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sdb1 32 132812799 66406384 83 Linux<br />
/dev/sdb2 132812800 156301311 11744256 83 Linux</div>Crobehttps://wiki.archlinux.org/index.php?title=Solid_state_drive/Memory_cell_clearing&diff=200733Solid state drive/Memory cell clearing2012-05-08T11:51:11Z<p>Crobe: Added some information as I just erased my drive.</p>
<hr />
<div>[[Category:Storage]]<br />
{{i18n|SSD Memory Cell Clearing}}<br />
{{Article summary start}}<br />
{{Article summary text|This article presents a method to reset all cells on an SSD to their factory default state thus recovering any loss of write performance.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Securely Wipe HDD}}<br />
{{Article summary end}}<br />
<br />
== Introduction ==<br />
<br />
On occasion, users may wish to completely reset an SSD's cells to the same virgin state they were manufactured, thus restoring it to its [http://www.anandtech.com/storage/showdoc.aspx?i=3531&p=8 factory default write performance]. Write performance is known to degrade over time even on SSDs with native TRIM support. TRIM only safeguards against file deletes, not replacements such as an incremental save.<br />
{{Warning|Back up ALL data of importance prior to continuing! Using this procedure will destroy ALL data on the SSD and render it unrecoverable by even data recovery services! Users will have to repartition the device and restore the data after completing this procedure!}}<br />
<br />
== Quick N' Dirty ==<br />
<br />
{{Warning|It is recommended that you read the rest of the article BEFORE you try this!}}<br />
<br />
hdparm --user-master u --security-set-pass Eins /dev/sdX<br />
hdparm --user-master u --security-erase Eins /dev/sdX<br />
<br />
== Step 1 - Make sure the drive security is not frozen ==<br />
Issue the following command:<br />
# hdparm -I /dev/sdX<br />
<br />
If the command output shows "frozen" one cannot continue to the next step. Most BIOSes block (do no allow) the ATA Secure Erase command by issuing a "SECURITY FREEZE" command to "freeze" the drive before booting an operating system.<br />
<br />
A possible solution for SATA drives is hot-(re)plug the data cable (which might crash the kernel). If hot-(re)pluging the SATA data cable crashes the kernel try letting the operating system fully boot up, then quickly hot-(re)plug both the SATA power and data cables.<br />
<br />
* It has been reported that hooking up the drive to an eSATA SIIG ExpressCard/54 with an eSATA enclosure will leave the drive security state to "not frozen."<br />
* Placing the target system into "sleep" (Clevo M865TU notebook, Fujitsu T2010 notebook, Dell XPS M1330) has reported to work as well; this may reset other drives to "not frozen". In case you are booting from USB, you need a distribution, that runs entirely in RAM, like [http://grml.org], see the grml2ram option. Run ''echo -n mem > /sys/power/state'' to set the computer to sleep.<br />
* Hooking up the drive to a USB 2/3 port does '''NOT''' work, as you need to issue IDE commands which is only possible via IDE/SATA connection.<br />
* Make sure drive security is '''disabled''' in BIOS, so no password is set.<br />
<br />
<pre>Security: <br />
Master password revision code = 65534<br />
supported<br />
not enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Step 2 - Enable security by setting a user password ==<br />
{{Note|When the user password is set the drive will be locked after next power cycle denying normal access until unlocked with the correct password).}}<br />
<br />
Any password will do, as this should only be temporary. After the secure erase the password will be set back to NULL. In this example, the password is "Eins" as shown:<br />
# hdparm --user-master u --security-set-pass Eins /dev/sdX<br />
security_password="Eins"<br />
/dev/sdX:<br />
Issuing SECURITY_SET_PASS command, password="Eins", user=user, mode=high<br />
<br />
As a sanity check, issue the following command<br />
<br />
# hdparm -I /dev/sdX<br />
<br />
The command output should display "enabled":<br />
<pre> Security: <br />
Master password revision code = 65534<br />
supported<br />
enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
Security level high<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Step 3 - Issue the ATA Secure Erase command ==<br />
<br />
# time hdparm --user-master u --security-erase Eins /dev/sdX<br />
<br />
Wait until the command completes. This example output shows it took about 40 seconds for an Intel X25-M 80GB SSD, for a 1TB hard disk it might take 3 hours or more!<br />
<br />
security_password="Eins"<br />
/dev/sdX:<br />
Issuing SECURITY_ERASE command, password="Eins", user=user<br />
0.000u 0.000s 0:39.71 0.0% 0+0k 0+0io 0pf+0w<br />
<br />
The drive is now erased. After a successful erasure the drive security should automatically be set to disabled (thus no longer requiring a password for access). Verify this by running the following command:<br />
# hdparm -I /dev/sdX<br />
<br />
The command output should display "not enabled": <br />
<pre> Security: <br />
Master password revision code = 65534<br />
supported<br />
not enabled<br />
not locked<br />
not frozen<br />
not expired: security count<br />
supported: enhanced erase<br />
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.</pre><br />
<br />
== Post Process Observation ==<br />
<br />
{{Note|Once switching from an MBR to GPT partition scheme, this is a non-issue.}}<br />
<br />
I experienced a "glitch" with my Intel X25-M (G2) after doing this procedure. I do not know if it's fdisk's fault or the procedure's fault.<br />
<br />
For some reason, after creating two partitions (1st = 68 G and 2nd = rest of drive), the 32 H and 32 S settings weren't retained. Creating just one partition, writing changes, and exiting gave a result consistent with the -H 32 -S 32 settings when checking via the "fdisk -l" command. However, after adding the 2nd partition, writing and running the same "fdisk -l" command, new values for the geometry were shown - they switched to 255/63! The solution was to start fdisk with the 32/32 parameters and write down the number of cylinders, then use cfdisk to do my partitioning.<br />
<br />
Example:<br />
<br />
# fdisk -H 32 -S 32 /dev/sdb<br />
<br />
Command (m for help): p<br />
<br />
Disk /dev/sdb: 80.0 GB, 80026361856 bytes<br />
32 heads, 32 sectors/track, 152638 cylinders, total 156301488 sectors<br />
Units = sectors of 1 * 512 = 512 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sdb1 32 132812799 66406384 83 Linux<br />
/dev/sdb2 132812800 156301311 11744256 83 Linux<br />
<br />
Here the correct number of cylinders is 152638. I now went into cfdisk and invoked the "geometry" option via: {{Keypress|g}}. I then manually defined the number of heads to 32, sectors per track to 32, and cylinders to 152638. Now I setup my partitions:<br />
<br />
<pre> cfdisk (util-linux-ng 2.18)<br />
<br />
Disk Drive: /dev/sdb<br />
Size: 80026361856 bytes, 80.0 GB<br />
Heads: 32 Sectors per Track: 32 Cylinders: 152638<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------------------------------------<br />
sdb1 Primary ext4 68000.16 <br />
sdb2 Primary ext4 12026.12</pre><br />
<br />
Now querying the device via fdisk gave the consistent values.<br />
<br />
# fdisk -l /dev/sdb<br />
<br />
Disk /dev/sdb: 80.0 GB, 80026361856 bytes<br />
32 heads, 32 sectors/track, 152638 cylinders, total 156301488 sectors<br />
Units = sectors of 1 * 512 = 512 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sdb1 32 132812799 66406384 83 Linux<br />
/dev/sdb2 132812800 156301311 11744256 83 Linux</div>Crobehttps://wiki.archlinux.org/index.php?title=Benchmarking/Data_storage_devices&diff=171287Benchmarking/Data storage devices2011-11-27T12:00:45Z<p>Crobe: /* Crucial M4 256 Gb */</p>
<hr />
<div>[[Category: Storage (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers several Linux-native apps that benchmark I/O devices such as HDDs, SSDs, USB thumb drives, etc. There is also a "database" section specific to SSDs meant to capture user-entered benchmark results.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Benchmarking}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
Several I/O benchmark options exist under Linux.<br />
<br />
* Using hddparm with the -Tt switch, one can time sequential reads. This method is '''independent''' of partition alignment!<br />
* There is a graphical benchmark called palimpsest contained in the [http://www.archlinux.org/packages/?sort=&arch=&repo=&q=gnome-disk-utility&maintainer=&last_update=&flagged=&limit=50 gnome-disk-utility] package that will give min/max/ave reads along with ave access time and a nice graphical display. This method is '''independent''' of partition alignment!'''<br />
* The dd utility can be used to measure both reads and writes. This method is '''dependent''' on partition alignment! In other words, if you failed to properly align your partitions, this fact will be seen here since you're writing and reading to a mounted filesystem.<br />
* [http://wiki.archlinux.org/index.php/Benchmarking#Bonnie.2B.2B Bonnie++]<br />
<br />
== Using hdparm ==<br />
<br />
# hdparm -Tt /dev/sdX<br />
/dev/sdX:<br />
Timing cached reads: x MB in y seconds = z MB/sec<br />
Timing buffered disk reads: x MB in y seconds = z MB/sec<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of read speed per the hddparm man page.}}<br />
<br />
== Using palimpsest ==<br />
<br />
# sudo palimpsest<br />
<br />
Users will need to navigate through the GUI to the benchmark button.<br />
<br />
== Using dd ==<br />
<br />
{{Note|This method requires the command to be executed from a mounted partition on the device of interest!}}<br />
<br />
First, enter a directory on the SSD with at least 1.1 GB of free space (and one that obviously gives your user wrx permissions) and write a test file to measure write speeds and to give the device something to read:<br />
<br />
$ cd /path/to/SSD<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Next, clear the buffer-cache to accurately measure read speeds directly from the device:<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Now that the last file is in the buffer, repeat the command to see the speed of the buffer-cache:<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z GB/s<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of the buffer read speed.}}<br />
<br />
Finally, delete the temp file<br />
$ rm tempfile<br />
<br />
== Model Specific Data ==<br />
Please contribute to this section using the template below to post results obtained.<br />
<br />
See [http://www.anandtech.com/bench/SSD/65 here] for a nice database of benchmarks.<br />
<br />
=== Template ===<br />
*SSD:<br />
*Model Number:<br />
*Firmware Version:<br />
*Capacity: x GB<br />
*User:<br />
[*Filesystem: write something about your FS, optional]<br />
[*Notes: additional Notes, optional]<br />
<br />
# hdparm -Tt /dev/sdx<br />
<br />
Minimum Read Rate: x MB/s<br />
Maximum Read Rate: x MB/s<br />
Average Read Rate: x MS/s<br />
Average Access Time x ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
<br />
=== Crucial ===<br />
==== Crucial C300 ====<br />
*SSD: Crucial C300 (SATA 3: 6Gb/s)<br />
*Model Number: CTFDDAC128MAG-1G1<br />
*Capacity: 128 GB<br />
*User: jac<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sda:<br />
Timing cached reads: 24112 MB in 2.00 seconds = 12072.84 MB/sec<br />
Timing buffered disk reads: 1056 MB in 3.00 seconds = 351.58 MB/sec<br />
<br />
Minimum Read Rate: 350.88 MB/s<br />
Maximum Read Rate: 351.58 MB/s<br />
Average Read Rate: 351.264 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.77883 s, 138 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.88752 s, 372 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.164471 s, 6.5 GB/s<br />
<br />
==== Crucial M4 ====<br />
*SSD: Crucial M4 (SATA 3: 6Gb/s)<br />
*Model Number: M4-CT128M4SSD2 (Firmware: 0009)<br />
*Capacity: 128 GB<br />
*User: lynix<br />
*Filesystem: ext4 on LVM<br />
*Notes: connected to SATAII 3Gb/s port while benchmarking. firmware matters!<br />
<br />
# hdparm -Tt /dev/sde<br />
/dev/sde:<br />
Timing cached reads: 19094 MB in 2.00 seconds = 9559.40 MB/sec<br />
Timing buffered disk reads: 786 MB in 3.00 seconds = 261.63 MB/sec<br />
<br />
Minimum Read Rate: 271.7 MB/s<br />
Maximum Read Rate: 381.7 MB/s<br />
Average Read Rate: 279.0 MB/s<br />
<br />
Minimum Write Rate: 58.6 MB/s<br />
Maximum Write Rate: 258.9 MB/s<br />
Average Write Rate: 194.8 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.57478 s, 193 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00688 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.157567 s, 6.8 GB/s<br />
<br />
=== Intel ===<br />
==== Intel 310 Soda Creek ====<br />
*SSD: Intel 310 Soda Creek<br />
*Model Number: SSDMAEMC040G2<br />
*Firmware Version: 2CV1023M<br />
*Capacity: 40 GB<br />
*User: dundee<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 6278 MB in 2.00 seconds = 3141.39 MB/sec<br />
Timing buffered disk reads: 784 MB in 3.00 seconds = 260.96 MB/sec<br />
<br />
Minimum Read Rate: 189.7 MB/s<br />
Maximum Read Rate: 281.1 MB/s<br />
Average Read Rate: 277.1 MS/s<br />
Minimum Write Rate: 30.3 MB/s<br />
Maximum Write Rate: 44.6 MB/s<br />
Average Write Rate: 43.8 MS/s<br />
<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 24.3013 s, 44.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.45325 s, 197 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.255569 s, 4.2 GB/s<br />
<br />
==== Intel X18-M (G2) ====<br />
*SSD: Intel X18-M Generation 2<br />
*Model Number: SSDSA1M1602GN<br />
*Capacity: 160 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2826 MB in 2.00 seconds = 1414.39 MB/sec<br />
Timing buffered disk reads: 694 MB in 3.00 seconds = 231.14 MB/sec<br />
<br />
Minimum Read Rate: 216.1 MB/s<br />
Maximum Read Rate: 283.5 MB/s<br />
Average Read Rate: 271.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.4608 s, 103 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.0866 s, 263 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.403244 s, 2.7 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH080G2R5<br />
*Capacity: 80 GB<br />
*User: Graysky<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 15644 MB in 1.99 seconds = 7845.48 MB/sec<br />
Timing buffered disk reads: 788 MB in 3.00 seconds = 262.52 MB/sec<br />
<br />
Minimum Read Rate: 253.6 MB/s<br />
Maximum Read Rate: 286.1 MB/s<br />
Average Read Rate: 282.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 13.3236 s, 80.6 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00297 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.169713 s, 6.3 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M160G2GC<br />
*Capacity: 160 GB<br />
*User: fackamato<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2890 MB in 2.00 seconds = 1445.86 MB/sec<br />
Timing buffered disk reads: 738 MB in 3.00 seconds = 245.69 MB/sec<br />
<br />
Minimum Read Rate: 244.3 MB/s<br />
Maximum Read Rate: 278.6 MB/s<br />
Average Read Rate: 273.3 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.8582 s, 98.9 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.09679 s, 262 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363709 s, 3.0 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M080G2C<br />
*Capacity: 80 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 9384 MB in 2.00 seconds = 4694.29 MB/sec<br />
Timing buffered disk reads: 808 MB in 3.01 seconds = 268.64 MB/sec<br />
<br />
Minimum Read Rate: 229.9 MB/s<br />
Maximum Read Rate: 281.6 MB/s<br />
Average Read Rate: 272.4 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 15.1671 s, 70.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.15237 s, 208 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.256211 s, 4.2 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH120G2K5<br />
*Capacity: 120 GB<br />
*User: timo.hardebusch<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 4358 MB in 2.00 seconds = 2178.89 MB/sec<br />
Timing buffered disk reads: 752 MB in 3.01 seconds = 250.07 MB/sec<br />
<br />
Minimum Read Rate: 259.1 MB/s<br />
Maximum Read Rate: 283.3 MB/s<br />
Average Read Rate: 280.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.1452 s, 106 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.05181 s, 265 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.369308 s, 2.9 GB/s<br />
<br />
=== OCZ ===<br />
==== OCZ-VERTEX 60gb ====<br />
*SSD:OCZ-VERTEX<br />
*Model Number:Firmware 1.5<br />
*Capacity: 60 GB<br />
*User:Surfed<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 16306 MB in 2.00 seconds = 8162.55 MB/sec<br />
Timing buffered disk reads: 646 MB in 3.00 seconds = 215.09 MB/sec<br />
<br />
<br />
Minimum Read Rate: 226.7 MB/s<br />
Maximum Read Rate: 275.2 MB/s<br />
Average Read Rate: 256.9 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.5581 s, 142 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.55881 s, 236 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.205299 s, 5.2 GB/s<br />
<br />
==== OCZ-VERTEX3 120GO ====<br />
*SSD:OCZ-VERTEX3<br />
*Firmware Version:2.06<br />
*Capacity: 6Gb/s SATA III<br />
*User:[[User:Sputnick]]<br />
*Notes: tested on '''SATA II 3Gb/s Dell Optiplex 780 motherboard''' 0C27VV <br />
<br />
# hdparm -Tt /dev/sdc<br />
<br />
/dev/sdc:<br />
Timing cached reads: 13702 MB in 2.00 seconds = 6859.89 MB/sec<br />
Timing buffered disk reads: 644 MB in 3.00 seconds = 214.40 MB/sec<br />
<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,37831 s, 245 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,76932 s, 225 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 0,234682 s, 4,6 GB/s<br />
<br />
==== OCZ-VERTEX-TURBO 30gb ====<br />
*SSD:OCZ-VERTEX-TURBO<br />
*Model Number:Firmware 1.5<br />
*Capacity: 30 GB<br />
*User:ScottKidder<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 6286 MB in 2.00 seconds = 3149.62 MB/sec<br />
Timing buffered disk reads: 630 MB in 3.01 seconds = 209.10 MB/sec<br />
<br />
Minimum Read Rate: 211.8 MB/s<br />
Maximum Read Rate: 254.1 MB/s<br />
Average Read Rate: 249.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 21.5437 s, 49.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34704 s, 115 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.40667 s, 2.6 GB/s<br />
<br />
==== OCZ-VERTEX2 240GB ====<br />
*SSD: OCZ<br />
*Model Number: Vertex2<br />
*Capacity: 240GB<br />
*User: longint<br />
*Filesystem: btrfs compression=lzo,space_cache<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 10972 MB in 2.00 seconds = 5489.70 MB/sec<br />
Timing buffered disk reads: 648 MB in 3.00 seconds = 215.96 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.26013 s, 852 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.45112 s, 241 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.320492 s, 3.4 GB/s<br />
<br />
==== OCZ-VERTEX3 120GB ====<br />
*SSD:OCZ-VERTEX3 SATA III<br />
*Firmware Version:2.13<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard and commit=60<br />
*[[User:muflone]]<br />
<br />
# hdparm -Tt /dev/sdc<br />
/dev/sdc:<br />
Timing cached reads: 23870 MB in 2.00 seconds = 11950.12 MB/sec<br />
Timing buffered disk reads: 866 MB in 3.00 seconds = 288.36 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.85159 s, 377 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.6931 s, 291 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.10383 s, 10.3 GB/s<br />
<br />
==== OCZ-AGILITY3 120GB ====<br />
*SSD:OCZ-AGILITY3 SATA III<br />
*Firmware Version:2.15<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard<br />
*[[User:bardo]]<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 27738 MB in 2.00 seconds = 13889.38 MB/sec<br />
Timing buffered disk reads: 1158 MB in 3.01 seconds = 385.08 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.41537 s, 445 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.35961 s, 455 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.130664 s, 8.2 GB/s<br />
<br />
=== Samsung ===<br />
==== SAMSUNG 128GB / SATAII ====<br />
*SSD: SAMSUNG 128GB / SATAII<br />
*Model Number: MMCQE28GFMUP-MVA<br />
*Capacity: 128 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2612 MB in 2.00 seconds = 1307.40 MB/sec<br />
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.67 MB/sec<br />
<br />
Minimum Read Rate: 108.7 MB/s<br />
Maximum Read Rate: 114.5 MB/s<br />
Average Read Rate: 113.7 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 23.7352 s, 45.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.7563 s, 99.8 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.464824 s, 2.3 GB/s<br />
<br />
==== SAMSUNG 470 64GB ====<br />
*SSD: SAMSUNG 470 64GB<br />
*Model Number: MZ-5PA064/US<br />
*Firmware: AXM070Q1<br />
*Capacity: 64 GB<br />
*User: skylinux<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 1736 MB in 2.00 seconds = 868.62 MB/sec<br />
Timing buffered disk reads: 516 MB in 3.00 seconds = 171.87 MB/sec<br />
<br />
Minimum Read Rate: 276.5 MB/s<br />
Maximum Read Rate: 278.8 MB/s<br />
Average Read Rate: 278.2 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.69714 s, 188 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.25116 s, 204 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.05824 s, 1.0 GB/s<br />
<br />
=== Kingston ===<br />
==== Kingston SSDNow V+100 128 GB ====<br />
*SSD: Kingston SSDNow v+100 128 GB<br />
*Model Number: SVP100S2128G<br />
*Firmware: CJRA0202<br />
*Capacity: 128 GB<br />
*User: Tuxe<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 11598 MB in 1.99 seconds = 5822.73 MB/sec<br />
Timing buffered disk reads: 598 MB in 3.01 seconds = 198.90 MB/sec<br />
<br />
Minimum Read Rate: 145.8 MB/s<br />
Maximum Read Rate: 259.2 MB/s<br />
Average Read Rate: 243.5 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.74199 s, 110 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.62165 s, 232 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.330142 s, 3.3 GB/s<br />
<br />
==== Kingston SNV425-S2BD 128GB ====<br />
*SSD: Kingston SNV425-S2BD/128GB<br />
*Model Number: SNV425S2128GB<br />
*Firmware: C09112a6<br />
*Capacity: 128 GB<br />
*User: thof<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 3480 MB in 2.00 seconds = 1741.72 MB/sec<br />
Timing buffered disk reads: 486 MB in 3.00 seconds = 161.82 MB/sec<br />
<br />
Minimum Read Rate: 235.0 MB/s<br />
Maximum Read Rate: 255.8 MB/s<br />
Average Read Rate: 250.2 MB/s<br />
Average Access Time 0.4 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 8.00357 s, 134 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.5384 s, 194 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.415414 s, 2.6 GB/s<br />
<br />
= Encrypted Partitions =<br />
<br />
This section should show some data for encrypted partitions.<br />
<br />
== dm-crypt with AES ==<br />
<br />
I guess most people are using AES as encryption, if any.<br />
<br />
=== Crucial ===<br />
<br />
The crucial drive does not use any compression to reach its speeds, so it is expected to be fast.<br />
<br />
==== Crucial M4 256 Gb ====<br />
<br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt<br />
* Running Sata 6 Gbit/s on an older 3 Gbit/s controller<br />
* Comment: The drive is faster on writing ( on fresh space ), which has been observed on the internet. Maybe this is the maximum of my machine.<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 256 bits<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3012 MB in 2.00 seconds = 1507.62 MB/sec<br />
Timing buffered disk reads: 558 MB in 3.00 seconds = 185.93 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 7,86539 s, 137 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 9,78325 s, 110 MB/s<br />
<br />
=== OCZ ===<br />
<br />
The OCZ Drives use compression on Data, so with uncompressible encrypted Data, speeds are expected to be way lower. Still, seek times should be as low as ever and the drive shouldn't get slower when it gets full, so there should be enough speed.<br />
<br />
==== OCZ-VERTEX2 180GB ====<br />
<br />
* SSD: OCZ <br />
* Model Number: Vertex2 <br />
* Capacity: 180Gb <br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt with AES, essiv, sha256<br />
* The bottleneck for the read/write speeds is definately the drive<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 2842 MB in 2.00 seconds = 1422.61 MB/sec<br />
Timing buffered disk reads: 550 MB in 3.00 seconds = 183.26 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 16,9194 s, 63,5 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 14,5509 s, 73,8 MB/s<br />
<br />
Same values for bonnie++.<br />
<br />
=== Samsung ===<br />
<br />
==== SAMSUNG 470 128GB ====<br />
<br />
*SSD: SAMSUNG 470 128GB<br />
*Firmware: AXM09B1Q<br />
*Capacity: 128 GB<br />
*User: FredericChopin<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 512 bits<br />
offset: 8192 sectors<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3226 MB in 2.00 seconds = 1614.42 MB/sec<br />
Timing buffered disk reads: 570 MB in 3.00 seconds = 189.84 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.62518 s, 112 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34282 s, 115 MB/s<br />
<br />
== Truecrypt ==</div>Crobehttps://wiki.archlinux.org/index.php?title=Benchmarking/Data_storage_devices&diff=171286Benchmarking/Data storage devices2011-11-27T11:59:44Z<p>Crobe: Added Crucial M4</p>
<hr />
<div>[[Category: Storage (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers several Linux-native apps that benchmark I/O devices such as HDDs, SSDs, USB thumb drives, etc. There is also a "database" section specific to SSDs meant to capture user-entered benchmark results.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Benchmarking}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
Several I/O benchmark options exist under Linux.<br />
<br />
* Using hddparm with the -Tt switch, one can time sequential reads. This method is '''independent''' of partition alignment!<br />
* There is a graphical benchmark called palimpsest contained in the [http://www.archlinux.org/packages/?sort=&arch=&repo=&q=gnome-disk-utility&maintainer=&last_update=&flagged=&limit=50 gnome-disk-utility] package that will give min/max/ave reads along with ave access time and a nice graphical display. This method is '''independent''' of partition alignment!'''<br />
* The dd utility can be used to measure both reads and writes. This method is '''dependent''' on partition alignment! In other words, if you failed to properly align your partitions, this fact will be seen here since you're writing and reading to a mounted filesystem.<br />
* [http://wiki.archlinux.org/index.php/Benchmarking#Bonnie.2B.2B Bonnie++]<br />
<br />
== Using hdparm ==<br />
<br />
# hdparm -Tt /dev/sdX<br />
/dev/sdX:<br />
Timing cached reads: x MB in y seconds = z MB/sec<br />
Timing buffered disk reads: x MB in y seconds = z MB/sec<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of read speed per the hddparm man page.}}<br />
<br />
== Using palimpsest ==<br />
<br />
# sudo palimpsest<br />
<br />
Users will need to navigate through the GUI to the benchmark button.<br />
<br />
== Using dd ==<br />
<br />
{{Note|This method requires the command to be executed from a mounted partition on the device of interest!}}<br />
<br />
First, enter a directory on the SSD with at least 1.1 GB of free space (and one that obviously gives your user wrx permissions) and write a test file to measure write speeds and to give the device something to read:<br />
<br />
$ cd /path/to/SSD<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Next, clear the buffer-cache to accurately measure read speeds directly from the device:<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Now that the last file is in the buffer, repeat the command to see the speed of the buffer-cache:<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z GB/s<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of the buffer read speed.}}<br />
<br />
Finally, delete the temp file<br />
$ rm tempfile<br />
<br />
== Model Specific Data ==<br />
Please contribute to this section using the template below to post results obtained.<br />
<br />
See [http://www.anandtech.com/bench/SSD/65 here] for a nice database of benchmarks.<br />
<br />
=== Template ===<br />
*SSD:<br />
*Model Number:<br />
*Firmware Version:<br />
*Capacity: x GB<br />
*User:<br />
[*Filesystem: write something about your FS, optional]<br />
[*Notes: additional Notes, optional]<br />
<br />
# hdparm -Tt /dev/sdx<br />
<br />
Minimum Read Rate: x MB/s<br />
Maximum Read Rate: x MB/s<br />
Average Read Rate: x MS/s<br />
Average Access Time x ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
<br />
=== Crucial ===<br />
==== Crucial C300 ====<br />
*SSD: Crucial C300 (SATA 3: 6Gb/s)<br />
*Model Number: CTFDDAC128MAG-1G1<br />
*Capacity: 128 GB<br />
*User: jac<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sda:<br />
Timing cached reads: 24112 MB in 2.00 seconds = 12072.84 MB/sec<br />
Timing buffered disk reads: 1056 MB in 3.00 seconds = 351.58 MB/sec<br />
<br />
Minimum Read Rate: 350.88 MB/s<br />
Maximum Read Rate: 351.58 MB/s<br />
Average Read Rate: 351.264 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.77883 s, 138 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.88752 s, 372 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.164471 s, 6.5 GB/s<br />
<br />
==== Crucial M4 ====<br />
*SSD: Crucial M4 (SATA 3: 6Gb/s)<br />
*Model Number: M4-CT128M4SSD2 (Firmware: 0009)<br />
*Capacity: 128 GB<br />
*User: lynix<br />
*Filesystem: ext4 on LVM<br />
*Notes: connected to SATAII 3Gb/s port while benchmarking. firmware matters!<br />
<br />
# hdparm -Tt /dev/sde<br />
/dev/sde:<br />
Timing cached reads: 19094 MB in 2.00 seconds = 9559.40 MB/sec<br />
Timing buffered disk reads: 786 MB in 3.00 seconds = 261.63 MB/sec<br />
<br />
Minimum Read Rate: 271.7 MB/s<br />
Maximum Read Rate: 381.7 MB/s<br />
Average Read Rate: 279.0 MB/s<br />
<br />
Minimum Write Rate: 58.6 MB/s<br />
Maximum Write Rate: 258.9 MB/s<br />
Average Write Rate: 194.8 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.57478 s, 193 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00688 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.157567 s, 6.8 GB/s<br />
<br />
=== Intel ===<br />
==== Intel 310 Soda Creek ====<br />
*SSD: Intel 310 Soda Creek<br />
*Model Number: SSDMAEMC040G2<br />
*Firmware Version: 2CV1023M<br />
*Capacity: 40 GB<br />
*User: dundee<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 6278 MB in 2.00 seconds = 3141.39 MB/sec<br />
Timing buffered disk reads: 784 MB in 3.00 seconds = 260.96 MB/sec<br />
<br />
Minimum Read Rate: 189.7 MB/s<br />
Maximum Read Rate: 281.1 MB/s<br />
Average Read Rate: 277.1 MS/s<br />
Minimum Write Rate: 30.3 MB/s<br />
Maximum Write Rate: 44.6 MB/s<br />
Average Write Rate: 43.8 MS/s<br />
<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 24.3013 s, 44.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.45325 s, 197 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.255569 s, 4.2 GB/s<br />
<br />
==== Intel X18-M (G2) ====<br />
*SSD: Intel X18-M Generation 2<br />
*Model Number: SSDSA1M1602GN<br />
*Capacity: 160 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2826 MB in 2.00 seconds = 1414.39 MB/sec<br />
Timing buffered disk reads: 694 MB in 3.00 seconds = 231.14 MB/sec<br />
<br />
Minimum Read Rate: 216.1 MB/s<br />
Maximum Read Rate: 283.5 MB/s<br />
Average Read Rate: 271.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.4608 s, 103 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.0866 s, 263 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.403244 s, 2.7 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH080G2R5<br />
*Capacity: 80 GB<br />
*User: Graysky<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 15644 MB in 1.99 seconds = 7845.48 MB/sec<br />
Timing buffered disk reads: 788 MB in 3.00 seconds = 262.52 MB/sec<br />
<br />
Minimum Read Rate: 253.6 MB/s<br />
Maximum Read Rate: 286.1 MB/s<br />
Average Read Rate: 282.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 13.3236 s, 80.6 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00297 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.169713 s, 6.3 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M160G2GC<br />
*Capacity: 160 GB<br />
*User: fackamato<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2890 MB in 2.00 seconds = 1445.86 MB/sec<br />
Timing buffered disk reads: 738 MB in 3.00 seconds = 245.69 MB/sec<br />
<br />
Minimum Read Rate: 244.3 MB/s<br />
Maximum Read Rate: 278.6 MB/s<br />
Average Read Rate: 273.3 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.8582 s, 98.9 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.09679 s, 262 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363709 s, 3.0 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M080G2C<br />
*Capacity: 80 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 9384 MB in 2.00 seconds = 4694.29 MB/sec<br />
Timing buffered disk reads: 808 MB in 3.01 seconds = 268.64 MB/sec<br />
<br />
Minimum Read Rate: 229.9 MB/s<br />
Maximum Read Rate: 281.6 MB/s<br />
Average Read Rate: 272.4 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 15.1671 s, 70.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.15237 s, 208 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.256211 s, 4.2 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH120G2K5<br />
*Capacity: 120 GB<br />
*User: timo.hardebusch<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 4358 MB in 2.00 seconds = 2178.89 MB/sec<br />
Timing buffered disk reads: 752 MB in 3.01 seconds = 250.07 MB/sec<br />
<br />
Minimum Read Rate: 259.1 MB/s<br />
Maximum Read Rate: 283.3 MB/s<br />
Average Read Rate: 280.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.1452 s, 106 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.05181 s, 265 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.369308 s, 2.9 GB/s<br />
<br />
=== OCZ ===<br />
==== OCZ-VERTEX 60gb ====<br />
*SSD:OCZ-VERTEX<br />
*Model Number:Firmware 1.5<br />
*Capacity: 60 GB<br />
*User:Surfed<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 16306 MB in 2.00 seconds = 8162.55 MB/sec<br />
Timing buffered disk reads: 646 MB in 3.00 seconds = 215.09 MB/sec<br />
<br />
<br />
Minimum Read Rate: 226.7 MB/s<br />
Maximum Read Rate: 275.2 MB/s<br />
Average Read Rate: 256.9 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.5581 s, 142 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.55881 s, 236 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.205299 s, 5.2 GB/s<br />
<br />
==== OCZ-VERTEX3 120GO ====<br />
*SSD:OCZ-VERTEX3<br />
*Firmware Version:2.06<br />
*Capacity: 6Gb/s SATA III<br />
*User:[[User:Sputnick]]<br />
*Notes: tested on '''SATA II 3Gb/s Dell Optiplex 780 motherboard''' 0C27VV <br />
<br />
# hdparm -Tt /dev/sdc<br />
<br />
/dev/sdc:<br />
Timing cached reads: 13702 MB in 2.00 seconds = 6859.89 MB/sec<br />
Timing buffered disk reads: 644 MB in 3.00 seconds = 214.40 MB/sec<br />
<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,37831 s, 245 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,76932 s, 225 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 0,234682 s, 4,6 GB/s<br />
<br />
==== OCZ-VERTEX-TURBO 30gb ====<br />
*SSD:OCZ-VERTEX-TURBO<br />
*Model Number:Firmware 1.5<br />
*Capacity: 30 GB<br />
*User:ScottKidder<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 6286 MB in 2.00 seconds = 3149.62 MB/sec<br />
Timing buffered disk reads: 630 MB in 3.01 seconds = 209.10 MB/sec<br />
<br />
Minimum Read Rate: 211.8 MB/s<br />
Maximum Read Rate: 254.1 MB/s<br />
Average Read Rate: 249.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 21.5437 s, 49.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34704 s, 115 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.40667 s, 2.6 GB/s<br />
<br />
==== OCZ-VERTEX2 240GB ====<br />
*SSD: OCZ<br />
*Model Number: Vertex2<br />
*Capacity: 240GB<br />
*User: longint<br />
*Filesystem: btrfs compression=lzo,space_cache<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 10972 MB in 2.00 seconds = 5489.70 MB/sec<br />
Timing buffered disk reads: 648 MB in 3.00 seconds = 215.96 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.26013 s, 852 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.45112 s, 241 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.320492 s, 3.4 GB/s<br />
<br />
==== OCZ-VERTEX3 120GB ====<br />
*SSD:OCZ-VERTEX3 SATA III<br />
*Firmware Version:2.13<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard and commit=60<br />
*[[User:muflone]]<br />
<br />
# hdparm -Tt /dev/sdc<br />
/dev/sdc:<br />
Timing cached reads: 23870 MB in 2.00 seconds = 11950.12 MB/sec<br />
Timing buffered disk reads: 866 MB in 3.00 seconds = 288.36 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.85159 s, 377 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 3.6931 s, 291 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.10383 s, 10.3 GB/s<br />
<br />
==== OCZ-AGILITY3 120GB ====<br />
*SSD:OCZ-AGILITY3 SATA III<br />
*Firmware Version:2.15<br />
*Capacity: 120 GB<br />
*Filesystem: ext4 with discard<br />
*[[User:bardo]]<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 27738 MB in 2.00 seconds = 13889.38 MB/sec<br />
Timing buffered disk reads: 1158 MB in 3.01 seconds = 385.08 MB/sec<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.41537 s, 445 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.35961 s, 455 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.130664 s, 8.2 GB/s<br />
<br />
=== Samsung ===<br />
==== SAMSUNG 128GB / SATAII ====<br />
*SSD: SAMSUNG 128GB / SATAII<br />
*Model Number: MMCQE28GFMUP-MVA<br />
*Capacity: 128 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2612 MB in 2.00 seconds = 1307.40 MB/sec<br />
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.67 MB/sec<br />
<br />
Minimum Read Rate: 108.7 MB/s<br />
Maximum Read Rate: 114.5 MB/s<br />
Average Read Rate: 113.7 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 23.7352 s, 45.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.7563 s, 99.8 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.464824 s, 2.3 GB/s<br />
<br />
==== SAMSUNG 470 64GB ====<br />
*SSD: SAMSUNG 470 64GB<br />
*Model Number: MZ-5PA064/US<br />
*Firmware: AXM070Q1<br />
*Capacity: 64 GB<br />
*User: skylinux<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 1736 MB in 2.00 seconds = 868.62 MB/sec<br />
Timing buffered disk reads: 516 MB in 3.00 seconds = 171.87 MB/sec<br />
<br />
Minimum Read Rate: 276.5 MB/s<br />
Maximum Read Rate: 278.8 MB/s<br />
Average Read Rate: 278.2 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.69714 s, 188 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.25116 s, 204 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.05824 s, 1.0 GB/s<br />
<br />
=== Kingston ===<br />
==== Kingston SSDNow V+100 128 GB ====<br />
*SSD: Kingston SSDNow v+100 128 GB<br />
*Model Number: SVP100S2128G<br />
*Firmware: CJRA0202<br />
*Capacity: 128 GB<br />
*User: Tuxe<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 11598 MB in 1.99 seconds = 5822.73 MB/sec<br />
Timing buffered disk reads: 598 MB in 3.01 seconds = 198.90 MB/sec<br />
<br />
Minimum Read Rate: 145.8 MB/s<br />
Maximum Read Rate: 259.2 MB/s<br />
Average Read Rate: 243.5 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.74199 s, 110 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.62165 s, 232 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.330142 s, 3.3 GB/s<br />
<br />
==== Kingston SNV425-S2BD 128GB ====<br />
*SSD: Kingston SNV425-S2BD/128GB<br />
*Model Number: SNV425S2128GB<br />
*Firmware: C09112a6<br />
*Capacity: 128 GB<br />
*User: thof<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 3480 MB in 2.00 seconds = 1741.72 MB/sec<br />
Timing buffered disk reads: 486 MB in 3.00 seconds = 161.82 MB/sec<br />
<br />
Minimum Read Rate: 235.0 MB/s<br />
Maximum Read Rate: 255.8 MB/s<br />
Average Read Rate: 250.2 MB/s<br />
Average Access Time 0.4 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 8.00357 s, 134 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.5384 s, 194 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.415414 s, 2.6 GB/s<br />
<br />
= Encrypted Partitions =<br />
<br />
This section should show some data for encrypted partitions.<br />
<br />
== dm-crypt with AES ==<br />
<br />
I guess most people are using AES as encryption, if any.<br />
<br />
=== Crucial ===<br />
<br />
The crucial drive does not use any compression to reach its speeds, so it is expected to be fast.<br />
<br />
==== Crucial M4 256 Gb ====<br />
<br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt<br />
* Comment: The drive is faster on writing ( on fresh space ), which has been observed on the internet. Maybe this is the maximum of my machine.<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 256 bits<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3012 MB in 2.00 seconds = 1507.62 MB/sec<br />
Timing buffered disk reads: 558 MB in 3.00 seconds = 185.93 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 7,86539 s, 137 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 9,78325 s, 110 MB/s<br />
<br />
=== OCZ ===<br />
<br />
The OCZ Drives use compression on Data, so with uncompressible encrypted Data, speeds are expected to be way lower. Still, seek times should be as low as ever and the drive shouldn't get slower when it gets full, so there should be enough speed.<br />
<br />
==== OCZ-VERTEX2 180GB ====<br />
<br />
* SSD: OCZ <br />
* Model Number: Vertex2 <br />
* Capacity: 180Gb <br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt with AES, essiv, sha256<br />
* The bottleneck for the read/write speeds is definately the drive<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 2842 MB in 2.00 seconds = 1422.61 MB/sec<br />
Timing buffered disk reads: 550 MB in 3.00 seconds = 183.26 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 16,9194 s, 63,5 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 14,5509 s, 73,8 MB/s<br />
<br />
Same values for bonnie++.<br />
<br />
=== Samsung ===<br />
<br />
==== SAMSUNG 470 128GB ====<br />
<br />
*SSD: SAMSUNG 470 128GB<br />
*Firmware: AXM09B1Q<br />
*Capacity: 128 GB<br />
*User: FredericChopin<br />
<br />
# cryptsetup status<br />
type: LUKS1<br />
cipher: aes-xts-plain<br />
keysize: 512 bits<br />
offset: 8192 sectors<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 3226 MB in 2.00 seconds = 1614.42 MB/sec<br />
Timing buffered disk reads: 570 MB in 3.00 seconds = 189.84 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.62518 s, 112 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34282 s, 115 MB/s<br />
<br />
== Truecrypt ==</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=163302Dell XPS M1330 / M15302011-10-02T12:23:23Z<p>Crobe: Messed around 1 hour with the sound until I let it autodetect.</p>
<hr />
<div>[[Category:Dell (English)]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
<br />
Sound should now work out of the box. Just be sure to unmute all channels in alsamixer. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
With the current Kernel 3.0 and Alsa 1.0.24, don't mess around with the snd-hda-intel module, like supposed in different Threads ( model=3stack etc. ). Autodetection works fine.<br />
<br />
== Touchpad Synaptics ==<br />
<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a "lsusb"). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install fprint<br />
sudo pacman -S fprint<br />
<br />
Add yourself to the scanner group<br />
sudo gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, /etc/pam.d/sudo, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
<br />
==== Ethernet Setup ====<br />
<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Box Note | M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
*<b>Intel chipset : 4965agn</b><br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the wifi LED working, you can install [http://aur.archlinux.org/packages.php?ID=16829 compat-wireless] from AUR. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
<b>NOTE:</b> The wifi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the Gnome Keyring keeps asking for a password at login by editing /etc/pam.d/login in addition to the other edits suggested to /etc/pam.d/gdm [http://wiki.archlinux.org/index.php/Networkmanager#PolicyKit_issues]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you don't use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
<b>NOTE:</b> You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so can't even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br> <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)<br />
<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
<br />
<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install bluez-utils & bluez-libs from extra repository:<br />
<br />
pacman -S bluez-utils bluez-libs<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
/etc/rc.d/bluetooth restart<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions don't work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing bluez-utils and installing blueman instead:<br />
<br />
sudo pacman -S blueman<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Note|If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Note|This only works since kernel 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in /etc/pm/sleep.d/66dummy :<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
<br />
If your hard drive clicks regurlarly, you may suffer from this [http://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add those lines to your /etc/rc.local :<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in "sdX" by the letter of your drive, e.g : sda)<br />
<br />
When resuming from a pm-suspend, you might notice that this damn hard drive is clicking again. To fix this, modify your /etc/pm/sleep.d/66dummy to put the lines above. Following the last example in previous suspend section :<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make it executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
<br />
<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
<br />
For kernels prior to 2.6.26,you have to install [http://aur.archlinux.org/packages.php?ID=6906 linux-uvc] drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently) :<br />
pacman -S linux-uvc-svn<br />
<br />
Then you have to load corresponding modules :<br />
modprobe usbvision<br />
modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
<br />
Install i8k packages :<br />
pacman -S i8kmon i8kutils<br />
<br />
This will provide many useful information (temperature, fan speed, bios...) and utilities (fan monitor, bios update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
<br />
*They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use Gnome, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
*If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an ~/.Xmodmap file. Here is my ~/.Xmodmap file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it:<br />
<br />
pacman -S aumix-gtk<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
<br />
*KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the gnome settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Box Note | Updating your Bios is always a dangerous operation (even if it is safer on a laptop with a battery). <b>Perform it at your own risks.</b>}}<br />
<br />
You can perform bios updates under GNU/Linux ! Just install i8kutils :<br />
pacman -S i8kutils<br />
<br />
Download latest bios (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This bios is for device ID 0x0209. You can check your device ID by installing libsmbios :<br />
pacman -S libsmbios<br />
and then :<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the bios and type as root :<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
Reboot, stare at the white frightening screen saying "Bios update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You're done !<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance Fn+F8 function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== Battery Usage ==<br />
<br />
I have been monitoring the battery usage for while. Test setting is quite easy: Get as Low as Possible, reported by Powertop.<br />
<br />
Kernel 3.0-ARCH and NVidia Driver 275.xx 2,4Ghz, OCZ SSD, pci_aspm=force on kernel line, 10,8W. Guess that is near the technical minimum.<br />
Kernel 2.6.37-ARCH and NVidia Driver 270.xx, 2.4Ghz, OCZ SSD: 11,6W<br />
Kernel 2.6.36-ARCH and NVidia Driver 256.xx, 1.8Ghz, Samsung HD: 11,0W, hard to reproduce<br />
<br />
== External Resources ==<br />
<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br><br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=161770Dell XPS M1330 / M15302011-09-23T07:43:06Z<p>Crobe: ok, no contractions</p>
<hr />
<div>[[Category:Dell (English)]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
<br />
Sound should now work out of the box. Just be sure to unmute all channels in alsamixer. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
== Touchpad Synaptics ==<br />
<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a "lsusb"). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install fprint<br />
sudo pacman -S fprint<br />
<br />
Add yourself to the scanner group<br />
sudo gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, /etc/pam.d/sudo, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
<br />
==== Ethernet Setup ====<br />
<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Box Note | M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
*<b>Intel chipset : 4965agn</b><br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the wifi LED working, you can install [http://aur.archlinux.org/packages.php?ID=16829 compat-wireless] from AUR. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
<b>NOTE:</b> The wifi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the Gnome Keyring keeps asking for a password at login by editing /etc/pam.d/login in addition to the other edits suggested to /etc/pam.d/gdm [http://wiki.archlinux.org/index.php/Networkmanager#PolicyKit_issues]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you don't use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
<b>NOTE:</b> You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so can't even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br> <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)<br />
<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
<br />
<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install bluez-utils & bluez-libs from extra repository:<br />
<br />
pacman -S bluez-utils bluez-libs<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
/etc/rc.d/bluetooth restart<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions don't work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing bluez-utils and installing blueman instead:<br />
<br />
sudo pacman -S blueman<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Note|If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Note|This only works since kernel 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in /etc/pm/sleep.d/66dummy :<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
<br />
If your hard drive clicks regurlarly, you may suffer from this [http://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add those lines to your /etc/rc.local :<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in "sdX" by the letter of your drive, e.g : sda)<br />
<br />
When resuming from a pm-suspend, you might notice that this damn hard drive is clicking again. To fix this, modify your /etc/pm/sleep.d/66dummy to put the lines above. Following the last example in previous suspend section :<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make it executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
<br />
<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
<br />
For kernels prior to 2.6.26,you have to install [http://aur.archlinux.org/packages.php?ID=6906 linux-uvc] drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently) :<br />
pacman -S linux-uvc-svn<br />
<br />
Then you have to load corresponding modules :<br />
modprobe usbvision<br />
modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
<br />
Install i8k packages :<br />
pacman -S i8kmon i8kutils<br />
<br />
This will provide many useful information (temperature, fan speed, bios...) and utilities (fan monitor, bios update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
<br />
*They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use Gnome, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
*If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an ~/.Xmodmap file. Here is my ~/.Xmodmap file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it:<br />
<br />
pacman -S aumix-gtk<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
<br />
*KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the gnome settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Box Note | Updating your Bios is always a dangerous operation (even if it is safer on a laptop with a battery). <b>Perform it at your own risks.</b>}}<br />
<br />
You can perform bios updates under GNU/Linux ! Just install i8kutils :<br />
pacman -S i8kutils<br />
<br />
Download latest bios (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This bios is for device ID 0x0209. You can check your device ID by installing libsmbios :<br />
pacman -S libsmbios<br />
and then :<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the bios and type as root :<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
Reboot, stare at the white frightening screen saying "Bios update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You're done !<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance Fn+F8 function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== Battery Usage ==<br />
<br />
I have been monitoring the battery usage for while. Test setting is quite easy: Get as Low as Possible, reported by Powertop.<br />
<br />
Kernel 3.0-ARCH and NVidia Driver 275.xx 2,4Ghz, OCZ SSD, pci_aspm=force on kernel line, 10,8W. Guess that is near the technical minimum.<br />
Kernel 2.6.37-ARCH and NVidia Driver 270.xx, 2.4Ghz, OCZ SSD: 11,6W<br />
Kernel 2.6.36-ARCH and NVidia Driver 256.xx, 1.8Ghz, Samsung HD: 11,0W, hard to reproduce<br />
<br />
== External Resources ==<br />
<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br><br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=161484Dell XPS M1330 / M15302011-09-22T15:32:35Z<p>Crobe: Battery usage</p>
<hr />
<div>[[Category:Dell (English)]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
<br />
Sound should now work out of the box. Just be sure to unmute all channels in alsamixer. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
== Touchpad Synaptics ==<br />
<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a "lsusb"). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install fprint<br />
sudo pacman -S fprint<br />
<br />
Add yourself to the scanner group<br />
sudo gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, /etc/pam.d/sudo, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
<br />
==== Ethernet Setup ====<br />
<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Box Note | M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
*<b>Intel chipset : 4965agn</b><br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the wifi LED working, you can install [http://aur.archlinux.org/packages.php?ID=16829 compat-wireless] from AUR. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
<b>NOTE:</b> The wifi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the Gnome Keyring keeps asking for a password at login by editing /etc/pam.d/login in addition to the other edits suggested to /etc/pam.d/gdm [http://wiki.archlinux.org/index.php/Networkmanager#PolicyKit_issues]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you don't use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
<b>NOTE:</b> You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so can't even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br> <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)<br />
<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
<br />
<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install bluez-utils & bluez-libs from extra repository:<br />
<br />
pacman -S bluez-utils bluez-libs<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
/etc/rc.d/bluetooth restart<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions don't work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing bluez-utils and installing blueman instead:<br />
<br />
sudo pacman -S blueman<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Note|If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Note|This only works since kernel 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in /etc/pm/sleep.d/66dummy :<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
<br />
If your hard drive clicks regurlarly, you may suffer from this [http://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add those lines to your /etc/rc.local :<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in "sdX" by the letter of your drive, e.g : sda)<br />
<br />
When resuming from a pm-suspend, you might notice that this damn hard drive is clicking again. To fix this, modify your /etc/pm/sleep.d/66dummy to put the lines above. Following the last example in previous suspend section :<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make it executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
<br />
<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
<br />
For kernels prior to 2.6.26,you have to install [http://aur.archlinux.org/packages.php?ID=6906 linux-uvc] drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently) :<br />
pacman -S linux-uvc-svn<br />
<br />
Then you have to load corresponding modules :<br />
modprobe usbvision<br />
modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
<br />
Install i8k packages :<br />
pacman -S i8kmon i8kutils<br />
<br />
This will provide many useful information (temperature, fan speed, bios...) and utilities (fan monitor, bios update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
<br />
*They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use Gnome, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
*If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an ~/.Xmodmap file. Here is my ~/.Xmodmap file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it:<br />
<br />
pacman -S aumix-gtk<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
<br />
*KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the gnome settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Box Note | Updating your Bios is always a dangerous operation (even if it is safer on a laptop with a battery). <b>Perform it at your own risks.</b>}}<br />
<br />
You can perform bios updates under GNU/Linux ! Just install i8kutils :<br />
pacman -S i8kutils<br />
<br />
Download latest bios (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This bios is for device ID 0x0209. You can check your device ID by installing libsmbios :<br />
pacman -S libsmbios<br />
and then :<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the bios and type as root :<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
Reboot, stare at the white frightening screen saying "Bios update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You're done !<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance Fn+F8 function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== Battery Usage ==<br />
<br />
I have been monitoring the battery usage for while. Test setting is quite easy: Get as Low as Possible, reported by Powertop.<br />
<br />
Kernel 3.0-ARCH and NVidia Driver 275.xx 2,4Ghz, OCZ SSD, pci_aspm=force on kernel line, 10,8W. Guess thats near the technical minimum.<br />
Kernel 2.6.37-ARCH and NVidia Driver 270.xx, 2.4Ghz, OCZ SSD: 11,6W<br />
Kernel 2.6.36-ARCH and NVidia Driver 256.xx, 1.8Ghz, Samsung HD: 11,0W, hard to reproduce<br />
<br />
== External Resources ==<br />
<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br><br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobehttps://wiki.archlinux.org/index.php?title=Benchmarking/Data_storage_devices&diff=160853Benchmarking/Data storage devices2011-09-20T20:55:29Z<p>Crobe: Added values for my new SSD on ENCRYPTED drive.</p>
<hr />
<div>[[Category: Storage (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers several Linux-native apps that benchmark I/O devices such as HDDs, SSDs, USB thumb drives, etc. There is also a "database" section specific to SSDs meant to capture user-entered benchmark results.}}<br />
{{Article summary heading|Related Articles}}<br />
{{Article summary wiki|Solid State Drives}}<br />
{{Article summary wiki|Benchmarking}}<br />
{{Article summary end}}<br />
<br />
==Introduction==<br />
Several I/O benchmark options exist under Linux.<br />
<br />
* Using hddparm with the -Tt switch, one can time sequential reads. This method is '''independent''' of partition alignment!<br />
* There is a graphical benchmark called palimpsest contained in the [http://www.archlinux.org/packages/?sort=&arch=&repo=&q=gnome-disk-utility&maintainer=&last_update=&flagged=&limit=50 gnome-disk-utility] package that will give min/max/ave reads along with ave access time and a nice graphical display. This method is '''independent''' of partition alignment!'''<br />
* The dd utility can be used to measure both reads and writes. This method is '''dependent''' on partition alignment! In other words, if you failed to properly align your partitions, this fact will be seen here since you're writing and reading to a mounted filesystem.<br />
* [http://wiki.archlinux.org/index.php/Benchmarking#Bonnie.2B.2B Bonnie++]<br />
<br />
== Using hdparm ==<br />
<br />
# hdparm -Tt /dev/sdX<br />
/dev/sdX:<br />
Timing cached reads: x MB in y seconds = z MB/sec<br />
Timing buffered disk reads: x MB in y seconds = z MB/sec<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of read speed per the hddparm man page.}}<br />
<br />
== Using palimpsest ==<br />
<br />
# sudo palimpsest<br />
<br />
Users will need to navigate through the GUI to the benchmark button.<br />
<br />
== Using dd ==<br />
<br />
{{Note|This method requires the command to be executed from a mounted partition on the device of interest!}}<br />
<br />
First, enter a directory on the SSD with at least 1.1 GB of free space (and one that obviously gives your user wrx permissions) and write a test file to measure write speeds and to give the device something to read:<br />
<br />
$ cd /path/to/SSD<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Next, clear the buffer-cache to accurately measure read speeds directly from the device:<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z MB/s<br />
<br />
Now that the last file is in the buffer, repeat the command to see the speed of the buffer-cache:<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
w bytes (x GB) copied, y s, z GB/s<br />
<br />
{{Note|One should run the above command 4-5 times and manually average the results for an accurate evaluation of the buffer read speed.}}<br />
<br />
Finally, delete the temp file<br />
$ rm tempfile<br />
<br />
== Model Specific Data ==<br />
Please contribute to this section using the template below to post results obtained.<br />
<br />
See [http://www.anandtech.com/bench/SSD/65 here] for a nice database of benchmarks.<br />
<br />
=== Template ===<br />
*SSD:<br />
*Model Number:<br />
*Firmware Version:<br />
*Capacity: x GB<br />
*User:<br />
[*Filesystem: write something about your FS, optional]<br />
[*Notes: additional Notes, optional]<br />
<br />
# hdparm -Tt /dev/sdx<br />
<br />
Minimum Read Rate: x MB/s<br />
Maximum Read Rate: x MB/s<br />
Average Read Rate: x MS/s<br />
Average Access Time x ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
<br />
=== Crucial ===<br />
==== Crucial C300 ====<br />
*SSD: Crucial C300 (SATA 3: 6Gb/s)<br />
*Model Number: CTFDDAC128MAG-1G1<br />
*Capacity: 128 GB<br />
*User: jac<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sda:<br />
Timing cached reads: 24112 MB in 2.00 seconds = 12072.84 MB/sec<br />
Timing buffered disk reads: 1056 MB in 3.00 seconds = 351.58 MB/sec<br />
<br />
Minimum Read Rate: 350.88 MB/s<br />
Maximum Read Rate: 351.58 MB/s<br />
Average Read Rate: 351.264 MB/s<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.77883 s, 138 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 2.88752 s, 372 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.164471 s, 6.5 GB/s<br />
<br />
=== Intel ===<br />
==== Intel X18-M (G2) ====<br />
*SSD: Intel X18-M Generation 2<br />
*Model Number: SSDSA1M1602GN<br />
*Capacity: 160 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2826 MB in 2.00 seconds = 1414.39 MB/sec<br />
Timing buffered disk reads: 694 MB in 3.00 seconds = 231.14 MB/sec<br />
<br />
Minimum Read Rate: 216.1 MB/s<br />
Maximum Read Rate: 283.5 MB/s<br />
Average Read Rate: 271.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.4608 s, 103 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.0866 s, 263 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.403244 s, 2.7 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH080G2R5<br />
*Capacity: 80 GB<br />
*User: Graysky<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 15644 MB in 1.99 seconds = 7845.48 MB/sec<br />
Timing buffered disk reads: 788 MB in 3.00 seconds = 262.52 MB/sec<br />
<br />
Minimum Read Rate: 253.6 MB/s<br />
Maximum Read Rate: 286.1 MB/s<br />
Average Read Rate: 282.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 13.3236 s, 80.6 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.00297 s, 268 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.169713 s, 6.3 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M160G2GC<br />
*Capacity: 160 GB<br />
*User: fackamato<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2890 MB in 2.00 seconds = 1445.86 MB/sec<br />
Timing buffered disk reads: 738 MB in 3.00 seconds = 245.69 MB/sec<br />
<br />
Minimum Read Rate: 244.3 MB/s<br />
Maximum Read Rate: 278.6 MB/s<br />
Average Read Rate: 273.3 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.8582 s, 98.9 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.09679 s, 262 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.363709 s, 3.0 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2M080G2C<br />
*Capacity: 80 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 9384 MB in 2.00 seconds = 4694.29 MB/sec<br />
Timing buffered disk reads: 808 MB in 3.01 seconds = 268.64 MB/sec<br />
<br />
Minimum Read Rate: 229.9 MB/s<br />
Maximum Read Rate: 281.6 MB/s<br />
Average Read Rate: 272.4 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 15.1671 s, 70.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.15237 s, 208 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.256211 s, 4.2 GB/s<br />
<br />
==== Intel X25-M (G2) ====<br />
*SSD: Intel X25-M Generation 2<br />
*Model Number: SSDSA2MH120G2K5<br />
*Capacity: 120 GB<br />
*User: timo.hardebusch<br />
<br />
# hdparm -Tt /dev/sdb<br />
/dev/sdb:<br />
Timing cached reads: 4358 MB in 2.00 seconds = 2178.89 MB/sec<br />
Timing buffered disk reads: 752 MB in 3.01 seconds = 250.07 MB/sec<br />
<br />
Minimum Read Rate: 259.1 MB/s<br />
Maximum Read Rate: 283.3 MB/s<br />
Average Read Rate: 280.6 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.1452 s, 106 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.05181 s, 265 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.369308 s, 2.9 GB/s<br />
<br />
=== OCZ ===<br />
==== OCZ-VERTEX 60gb ====<br />
*SSD:OCZ-VERTEX<br />
*Model Number:Firmware 1.5<br />
*Capacity: 60 GB<br />
*User:Surfed<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 16306 MB in 2.00 seconds = 8162.55 MB/sec<br />
Timing buffered disk reads: 646 MB in 3.00 seconds = 215.09 MB/sec<br />
<br />
<br />
Minimum Read Rate: 226.7 MB/s<br />
Maximum Read Rate: 275.2 MB/s<br />
Average Read Rate: 256.9 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 7.5581 s, 142 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.55881 s, 236 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.205299 s, 5.2 GB/s<br />
<br />
==== OCZ-VERTEX3 120GO ====<br />
*SSD:OCZ-VERTEX3<br />
*Firmware Version:2.06<br />
*Capacity: 6Gb/s SATA III<br />
*User:[[User:Sputnick]]<br />
*Notes: tested on '''SATA II 3Gb/s Dell Optiplex 780 motherboard''' 0C27VV <br />
<br />
# hdparm -Tt /dev/sdc<br />
<br />
/dev/sdc:<br />
Timing cached reads: 13702 MB in 2.00 seconds = 6859.89 MB/sec<br />
Timing buffered disk reads: 644 MB in 3.00 seconds = 214.40 MB/sec<br />
<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,37831 s, 245 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 4,76932 s, 225 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 enregistrements lus<br />
1024+0 enregistrements écrits<br />
1073741824 octets (1,1 GB) copiés, 0,234682 s, 4,6 GB/s<br />
<br />
==== OCZ-VERTEX-TURBO 30gb ====<br />
*SSD:OCZ-VERTEX-TURBO<br />
*Model Number:Firmware 1.5<br />
*Capacity: 30 GB<br />
*User:ScottKidder<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 6286 MB in 2.00 seconds = 3149.62 MB/sec<br />
Timing buffered disk reads: 630 MB in 3.01 seconds = 209.10 MB/sec<br />
<br />
Minimum Read Rate: 211.8 MB/s<br />
Maximum Read Rate: 254.1 MB/s<br />
Average Read Rate: 249.2 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 21.5437 s, 49.8 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.34704 s, 115 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.40667 s, 2.6 GB/s<br />
<br />
==== OCZ-VERTEX2 240GB ====<br />
*SSD: OCZ<br />
*Model Number: Vertex2<br />
*Capacity: 240GB<br />
*User: longint<br />
*Filesystem: btrfs compression=lzo,space_cache<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 10972 MB in 2.00 seconds = 5489.70 MB/sec<br />
Timing buffered disk reads: 648 MB in 3.00 seconds = 215.96 MB/sec<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.26013 s, 852 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.45112 s, 241 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.320492 s, 3.4 GB/s<br />
<br />
=== Samsung ===<br />
==== SAMSUNG 128GB / SATAII ====<br />
*SSD: SAMSUNG 128GB / SATAII<br />
*Model Number: MMCQE28GFMUP-MVA<br />
*Capacity: 128 GB<br />
*User: Cirk<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 2612 MB in 2.00 seconds = 1307.40 MB/sec<br />
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.67 MB/sec<br />
<br />
Minimum Read Rate: 108.7 MB/s<br />
Maximum Read Rate: 114.5 MB/s<br />
Average Read Rate: 113.7 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 23.7352 s, 45.2 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 10.7563 s, 99.8 MB/s<br />
<br />
$ dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.464824 s, 2.3 GB/s<br />
<br />
==== SAMSUNG 470 64GB ====<br />
*SSD: SAMSUNG 470 64GB<br />
*Model Number: MZ-5PA064/US<br />
*Firmware: AXM070Q1<br />
*Capacity: 64 GB<br />
*User: skylinux<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 1736 MB in 2.00 seconds = 868.62 MB/sec<br />
Timing buffered disk reads: 516 MB in 3.00 seconds = 171.87 MB/sec<br />
<br />
Minimum Read Rate: 276.5 MB/s<br />
Maximum Read Rate: 278.8 MB/s<br />
Average Read Rate: 278.2 MB/s<br />
Average Access Time 0.2 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.69714 s, 188 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.25116 s, 204 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 1.05824 s, 1.0 GB/s<br />
<br />
=== Kingston ===<br />
==== Kingston SSDNow V+100 128 GB ====<br />
*SSD: Kingston SSDNow v+100 128 GB<br />
*Model Number: SVP100S2128G<br />
*Firmware: CJRA0202<br />
*Capacity: 128 GB<br />
*User: Tuxe<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 11598 MB in 1.99 seconds = 5822.73 MB/sec<br />
Timing buffered disk reads: 598 MB in 3.01 seconds = 198.90 MB/sec<br />
<br />
Minimum Read Rate: 145.8 MB/s<br />
Maximum Read Rate: 259.2 MB/s<br />
Average Read Rate: 243.5 MB/s<br />
Average Access Time 0.1 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 9.74199 s, 110 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 4.62165 s, 232 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.330142 s, 3.3 GB/s<br />
<br />
==== Kingston SNV425-S2BD 128GB ====<br />
*SSD: Kingston SNV425-S2BD/128GB<br />
*Model Number: SNV425S2128GB<br />
*Firmware: C09112a6<br />
*Capacity: 128 GB<br />
*User: thof<br />
*Filesystem: ext4<br />
<br />
# hdparm -Tt /dev/sda<br />
Timing cached reads: 3480 MB in 2.00 seconds = 1741.72 MB/sec<br />
Timing buffered disk reads: 486 MB in 3.00 seconds = 161.82 MB/sec<br />
<br />
Minimum Read Rate: 235.0 MB/s<br />
Maximum Read Rate: 255.8 MB/s<br />
Average Read Rate: 250.2 MB/s<br />
Average Access Time 0.4 ms<br />
<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 8.00357 s, 134 MB/s<br />
<br />
# echo 3 > /proc/sys/vm/drop_caches <br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 5.5384 s, 194 MB/s<br />
<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 records in<br />
1024+0 records out<br />
1073741824 bytes (1.1 GB) copied, 0.415414 s, 2.6 GB/s<br />
<br />
= Encrypted Partitions =<br />
<br />
This section should show some data for encrypted partitions.<br />
<br />
== dm-crypt with AES ==<br />
<br />
I guess most people are using AES as encryption, if any.<br />
<br />
=== OCZ ===<br />
<br />
The OCZ Drives use compression on Data, so with uncompressible encrypted Data, speeds are expected to be way lower. Still, seek times should be as low as ever and the drive shouldn't get slower when it gets full, so there should be enough speed.<br />
<br />
==== OCZ-VERTEX2 180GB ====<br />
<br />
* SSD: OCZ <br />
* Model Number: Vertex2 <br />
* Capacity: 180Gb <br />
* User: crobe<br />
* Filesystem: ext4 on dm-crypt with AES, essiv, sha256<br />
<br />
# hdparm -Tt /dev/sda<br />
/dev/sda:<br />
Timing cached reads: 2842 MB in 2.00 seconds = 1422.61 MB/sec<br />
Timing buffered disk reads: 550 MB in 3.00 seconds = 183.26 MB/sec<br />
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 16,9194 s, 63,5 MB/s<br />
# echo 3 > /proc/sys/vm/drop_caches<br />
# dd if=tempfile of=/dev/null bs=1M count=1024<br />
1024+0 Datensätze ein<br />
1024+0 Datensätze aus<br />
1073741824 Bytes (1,1 GB) kopiert, 14,5509 s, 73,8 MB/s<br />
<br />
Same values for bonnie++.<br />
<br />
== Truecrypt ==</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=160852Dell XPS M1330 / M15302011-09-20T20:47:18Z<p>Crobe: Some hints on Battery Usage. Am I the last XPS User?</p>
<hr />
<div>[[Category:Dell (English)]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
<br />
Sound should now work out of the box. Just be sure to unmute all channels in alsamixer. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
== Touchpad Synaptics ==<br />
<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a "lsusb"). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install fprint<br />
sudo pacman -S fprint<br />
<br />
Add yourself to the scanner group<br />
sudo gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, /etc/pam.d/sudo, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
<br />
==== Ethernet Setup ====<br />
<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Box Note | M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
*<b>Intel chipset : 4965agn</b><br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the wifi LED working, you can install [http://aur.archlinux.org/packages.php?ID=16829 compat-wireless] from AUR. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
<b>NOTE:</b> The wifi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the Gnome Keyring keeps asking for a password at login by editing /etc/pam.d/login in addition to the other edits suggested to /etc/pam.d/gdm [http://wiki.archlinux.org/index.php/Networkmanager#PolicyKit_issues]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you don't use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
<b>NOTE:</b> You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so can't even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br> <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)<br />
<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
<br />
<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install bluez-utils & bluez-libs from extra repository:<br />
<br />
pacman -S bluez-utils bluez-libs<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
/etc/rc.d/bluetooth restart<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions don't work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing bluez-utils and installing blueman instead:<br />
<br />
sudo pacman -S blueman<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Note|If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Note|This only works since kernel 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in /etc/pm/sleep.d/66dummy :<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
<br />
If your hard drive clicks regurlarly, you may suffer from this [http://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add those lines to your /etc/rc.local :<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in "sdX" by the letter of your drive, e.g : sda)<br />
<br />
When resuming from a pm-suspend, you might notice that this damn hard drive is clicking again. To fix this, modify your /etc/pm/sleep.d/66dummy to put the lines above. Following the last example in previous suspend section :<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make it executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
<br />
<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
<br />
For kernels prior to 2.6.26,you have to install [http://aur.archlinux.org/packages.php?ID=6906 linux-uvc] drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently) :<br />
pacman -S linux-uvc-svn<br />
<br />
Then you have to load corresponding modules :<br />
modprobe usbvision<br />
modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
<br />
Install i8k packages :<br />
pacman -S i8kmon i8kutils<br />
<br />
This will provide many useful information (temperature, fan speed, bios...) and utilities (fan monitor, bios update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
<br />
*They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use Gnome, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
*If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an ~/.Xmodmap file. Here is my ~/.Xmodmap file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it:<br />
<br />
pacman -S aumix-gtk<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
<br />
*KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the gnome settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Box Note | Updating your Bios is always a dangerous operation (even if it is safer on a laptop with a battery). <b>Perform it at your own risks.</b>}}<br />
<br />
You can perform bios updates under GNU/Linux ! Just install i8kutils :<br />
pacman -S i8kutils<br />
<br />
Download latest bios (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This bios is for device ID 0x0209. You can check your device ID by installing libsmbios :<br />
pacman -S libsmbios<br />
and then :<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the bios and type as root :<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
Reboot, stare at the white frightening screen saying "Bios update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You're done !<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance Fn+F8 function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== Battery Usage ==<br />
<br />
I've been monitoring the battery usage for while. Test setting is quite easy: Get as Low as Possible, reported by Powertop.<br />
<br />
Kernel 2.6.37-ARCH and NVidia Driver 270.xx, 2.4Ghz, OCZ SSD: 11,6W<br />
Kernel 2.6.36-ARCH and NVidia Driver 256.xx, 1.8Ghz, Samsung HD: 11,0W, hard to reproduce<br />
<br />
== External Resources ==<br />
<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br><br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobehttps://wiki.archlinux.org/index.php?title=Dell_XPS_M1330_/_M1530&diff=146888Dell XPS M1330 / M15302011-06-21T16:24:26Z<p>Crobe: GPU Temperature</p>
<hr />
<div>[[Category:Dell (English)]]<br />
Dell XPS M1330 works quite well out of the box with Arch and GNU/Linux in general, just like his big brother [[Dell XPS M1530]]. Here you can find (or put !) information to configure your laptop and become a mobile Archer.<br />
<br />
== Sound ==<br />
<br />
Sound should now work out of the box. Just be sure to unmute all channels in alsamixer. To get the microphone working, you may have to change the digital input source (right now I have Digital Mic 1 but this could change in a new alsa version).<br />
<br />
I suggest muting the PC speaker using alsamixer, as it makes an annoying squeak otherwise.<br />
<br />
== Touchpad Synaptics ==<br />
<br />
To configure the touchpad, you can refer to: [[Touchpad Synaptics]] Page.<br />
<br />
== Fingerprint reader ==<br />
<br />
As of today, the device manufacturer is SGS Thomson Microelectronics (you can check with a "lsusb"). Install it using [[ThinkFinger]].<br />
<br />
If you can't get thinkfinger going, try fprint<br />
<br />
Install fprint<br />
sudo pacman -S fprint<br />
<br />
Add yourself to the scanner group<br />
sudo gpasswd -a username scanner<br />
<br />
Enroll your finger print<br />
sudo pam_fprint_enroll<br />
<br />
If you want to use your fingerprint with sudo, edit the PAM config file for sudo, /etc/pam.d/sudo, as follows:<br />
<br />
auth sufficient pam_fprint.so<br />
auth required pam_unix.so try_first_pass nullok_secure <br />
auth required pam_nologin.so<br />
<br />
When you do something with sudo, it should ask you to swipe your finger<br />
<br />
== Network ==<br />
<br />
==== Ethernet Setup ====<br />
<br />
the ethernet card is recognized by the kernel, simply load the network module to use it, or use a connection manager (see [[Wireless Setup]] for a list of programs)<br />
<br />
==== Wireless Setup ====<br />
{{Box Note | M1330 has been shipped with many different wireless chipset. You can find out what your card is with 'hwdetect --show-net' or 'lshwd'. Check also [[Wireless_Setup|Arch Wireless Setup]].}}<br />
<br />
*<b>Intel chipset : 4965agn</b><br />
This is the most common chipset, the correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-4965-ucode]].<br /><br />
To get the wifi LED working, you can install [http://aur.archlinux.org/packages.php?ID=16829 compat-wireless] from AUR. See this [http://bbs.archlinux.org/viewtopic.php?id=49189 forum thread] (some versions can freeze your system !).<br />
<br />
<b>NOTE:</b> The wifi light works "out of the box" using the 2009.8 install disc (and, presumably, all newer release).<br />
<br />
Using NetworkManager makes the wireless and wired GUI connection interface in GNOME easy. It is possible to disable the annoying 'feature' whereby the Gnome Keyring keeps asking for a password at login by editing /etc/pam.d/login in addition to the other edits suggested to /etc/pam.d/gdm [http://wiki.archlinux.org/index.php/Networkmanager#PolicyKit_issues]. You can also try deleting ~/.gnome2/keyrings. This is especially useful if you don't use gdm to login, rather login straight from the shell. YMMV if you use kde or another DE.<br />
<br />
<b>NOTE:</b> You may run into some trouble with the 2.6.25 Kernel: being unable to logon to any wireless network. Some people suggested using the compat-wireless package from AUR, but that didn't really help. When using the package dated 2008.05.26. the wireless card may be detected, but you may still not be able to connect. The newest version(2008.06.11.) also may not find your card, so can't even see any wireless networks. Reverting back to kernel 2.6.24.4-1 MAY help <br> <br />
- [[User:Nihathrael|Nihathrael]] 07:53, 11 June 2008 (EDT)<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k (according to dmesg), which is obtainable from core/iwlwifi-4965-ucode 4.44.1.20-1. <br> <br />
- [[User:Oblong_Cheese|Oblong_Cheese]] 09:11, 18 June 2008 (AEST)<br />
<br />
<br />
<b>NOTE:</b> Running 2.6.25 is fine with module 'iwl4695' version 1.2.23k, But upgrading to iwlwifi-4965-ucode crashes the notebook. Downgrading to 4.44.1.20-1 and works fine.<br />
- [[User:Pix]] 15:56, 1 August 2008 (UTC+1)<br />
<br />
*<b>Intel chipset : 3945abg</b><br />
The correct wireless driver to install is [[Wireless_Setup#ipw3945_and_ipw4965|iwlwifi-3945-ucode]].<br />
<br />
*<b>Broadcom chipset : bcm43xx or b43 or bcm4312</b><br />
See [[Wireless_Setup#BCM43XX|this]] or [[Wireless_Setup#b43|this]] or [[Wireless_Setup#broadcom-wl|this]].<br />
<br />
<b>NOTE:</b> The Broadcom 4310 chipset is unsupported by bcm43xx and b43 (<b> but is now supported by the official broadcom driver BCM4312, check [[Broadcom_BCM4312|this]] wiki entry</b> - [[User:Mak|Mak]] 00:15, 29 November 2008 (EST)). <br />
<br />
<b>NOTE:</b> For getting the Dell Wireless 1395 802.11g Mini Card to work (or any other card with the 4310 chipset), I have made a brief [http://eckveldt.blogspot.com/2008/08/installing-broadcom-4310-linux-driver.html guide] for getting this card to work.<br />
- [[User:Madhat|Madhat]] 02:09, 2 August 2008 (EST)<br />
<br />
<b>NOTE:</b> Arch 64 with Dell Wireless 1395 (Broadcom 4312 chipset): Use the bcm4312 driver referenced [[Broadcom_BCM4312|above]], works like a charm with Arch 64. Wireless will be called eth1 instead of wlan0, so be sure to change all references of wlan0 to eth1 (like in Wicd if you're using it.)<br />
- [[User:greyhat.goon]] 13:09, 1 January 2009 (PST)<br />
<br />
==== Bluetooth ====<br />
<br />
<br />
{{Warning|If you have had Windows Vista installed, MAKE SURE YOU SWITCH THE BLUETOOTH MODULE 'ON' IN VISTA! Failure to do this can render the bluetooth device (Wireless 355 Bluetooth Module) unuseable in Arch or any other O/S such as Windows 7 or XP. This is despite enabling the module in the BIOS, or even reflashing the BIOS. The Bluetooth module remains firmly 'off'. Annoying.<br />
<br />
Before taking drastic measures however, ensure the transmitter switch is 'On' - it's the switch on the right-hand side of the laptop next to the slot loading DVD Drive. If this switch is 'off' then wifi won't work either.<br />
<br />
If you're unfortunate to find yourself with Arch installed and a 'switched off' bluetooth device your only solution may be to reinstall Vista and switch the module back on before re-installing Linux. You can safely delete Vista again once you have switched the module back on. Another option is to install Windows 7 or XP then re-enable the module using the Dell patch (R159805.EXE) as described here: http://codereflect.com/2009/01/17/what-you-can-do-if-your-dell-laptop-doesnt-show-bluetooth-device-after-re-installing-windows-vista/}}<br />
<br />
Once you've enabled your Bluetooth module, you can then install the relevant software.<br />
<br />
Install bluez-utils & bluez-libs from extra repository:<br />
<br />
pacman -S bluez-utils bluez-libs<br />
<br />
Edit /etc/conf.d/bluetooth:<br />
DAEMON_ENABLE="true"<br />
HIDD_ENABLE="true"<br />
<br />
Restart bluetooth service:<br />
/etc/rc.d/bluetooth restart<br />
<br />
A list of utilities for bluetooth managing is present in AUR database.<br />
<br />
If the above solutions don't work, for example, your Logitech BT Travel Mouse is detected the first time only, then fails to be detected, you can try removing bluez-utils and installing blueman instead:<br />
<br />
sudo pacman -S blueman<br />
<br />
== nVidia Graphics ==<br />
For those of you with the nVidia 8400GM chipset, using the [[NVIDIA|nVidia]] driver package works fine.<br />
<br />
==== Compiz Fusion ====<br />
<br />
Works just great with the nVidia chipset. You might like to tweak the nVidia Powermizer for maximum battery life. I have forced my graphics chipset to the lowest performance level and Compiz-Fusion runs satisfactorily with a little slowdown here and there. [[NVIDIA#Force Powermizer performance level (for laptops)| See this part of the Arch nVidia wiki]] for more details on how to set this up.<br />
<br />
To have better performance with nVidia drivers, you should try "loose binding" in Compiz Fusion (bug with Geforce 8 series). If you use Fusion Icon, just right click it, then "Compiz Options"->"Loose Binding".<br />
<br />
==== GPU Temperature ====<br />
<br />
Starting with drives > 256.53 the reported GPU Temperature is about 10° higher then before. It *may* be a driver problem resulting in higher battery usage, as higher Temperature = More Power, but it also may be something else. Hope that it doesn't shorten the life of the card. Using the 256.53 driver with Kernels newer X-Servers > 1.10 does not work, so there is a problem.<br />
<br />
== Suspend ==<br />
{{Box Note | If you have suspend problems, try [ftp://download.nvidia.com/XFree86/Linux-x86/180.25/ nvidia-prerelease driver 180.25], it seems to solve the problem described below.}}<br />
With 180.x series of proprietary NVidia driver, suspend does not work properly, using 177.x series helps but it's slower in 2d rendering. Hibernate also works with 180.x series.<br />
<br />
{{Box Note | This only works since kernel26 2.6.25.x (stock Arch kernel). In former versions, force unloading modules is not provided and you have to recompile your kernel with this option.}}<br />
<br />
With acpi-freq running, you might notice that CPU1 is deactivated after using pm-suspend. To fix this you have to unload acpi-freq module each time pm-suspend is called.<br />
<br />
Put this in /etc/pm/sleep.d/66dummy :<br />
<br />
#!/bin/bash<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
Then make it executable :<br />
chmod +x /etc/pm/sleep.d/66dummy<br />
<br />
Solution was provided by this [http://bbs.archlinux.org/viewtopic.php?id=44500 forum topic].<br />
<br />
== Hard Drive ==<br />
<br />
If your hard drive clicks regurlarly, you may suffer from this [http://bbs.archlinux.org/viewtopic.php?id=39258 problem]. To fix it, add those lines to your /etc/rc.local :<br />
<br />
hdparm -B 254 /dev/sdX >> /dev/null<br />
<br />
or :<br />
<br />
hdparm -B 224 /dev/sdX >> /dev/null<br />
<br />
(replace X in "sdX" by the letter of your drive, e.g : sda)<br />
<br />
When resuming from a pm-suspend, you might notice that this damn hard drive is clicking again. To fix this, modify your /etc/pm/sleep.d/66dummy to put the lines above. Following the last example in previous suspend section :<br />
case $1 in<br />
suspend)<br />
rmmod -f acpi_cpufreq<br />
;;<br />
resume)<br />
modprobe acpi_cpufreq<br />
hdparm -B 224 /dev/sda >> /dev/null<br />
;;<br />
*) echo "somebody is calling me totally wrong."<br />
;;<br />
esac<br />
<br />
If not already done, make it executable.<br />
<br />
== SD Card Reader ==<br />
The device is recognized by the kernel. The Adapter module is: sdhci<br />
<br />
The card will be availabe for mounting under the device:<br />
<br />
/dev/mmcblk0p1<br />
<br />
== Webcam ==<br />
<br />
<br />
{{Box Note | The uvc modules are now compiled as part of the kernel (as of 2.6.26), so it should no longer be necessary to install uvc separately.}}<br />
<br />
<br />
{{Box Note | Some m1330's come without a webcam, or the camera cable may be damaged or have become detached internally. If in doubt (and before pulling your hair out trying to figure out why the camera won't work despite trying every software trick), run the built-in diagnostics (available by pushing 'F12' during the POST screen, then selecting 'Diagnostics'). If no camera is hooked up or the cable is damaged, you'll receive the following message: "Hardware Detect Error - Auxiliary LCD cable not detected."}}<br />
<br />
If this is the case, you can try to fix / replace / install the needed hardware according the following:<br />
[http://ahwee.com/how-to-disassemble-laptop-dell-xps-m1330],<br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/display.htm], <br />
[http://support.dell.com/support/edocs/systems/xpsm1330/en/sm/camera.htm#wp1084976]<br />
<br />
<br />
For kernels prior to 2.6.26,you have to install [http://aur.archlinux.org/packages.php?ID=6906 linux-uvc] drivers to have a working webcam (works for both VGA webcam from LED display and HD webcam from CCFL display apparently) :<br />
pacman -S linux-uvc-svn<br />
<br />
Then you have to load corresponding modules :<br />
modprobe usbvision<br />
modprobe uvcvideo<br />
<br />
If you want them to be loaded at startup, put usbvision and uvcvideo in the MODULES section of /etc/rc.conf.<br />
<br />
== Sensors / Hardware info ==<br />
<br />
Install i8k packages :<br />
pacman -S i8kmon i8kutils<br />
<br />
This will provide many useful information (temperature, fan speed, bios...) and utilities (fan monitor, bios update...). For CPU temps, use [[Lm sensors]].<br />
<br />
== Extra media keys ==<br />
<br />
*They are recognized by default with evdev so you can directly bind them.<br />
<br />
If you use Gnome, go in System->Preferences->Keyboard Shortcuts. <br />
<br />
The remote control should work fine too.<br />
<br />
*If you are not using evdev you can still map those keys with xmodmap. <br />
<br />
First you need to identify the corresponding keycodes, for instance, running xev, and map them with an ~/.Xmodmap file. Here is my ~/.Xmodmap file that you can copy (it may not work on your own machine - try [[Hotkeys#Using_xev|xev]] first):<br />
<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext<br />
keycode 160 = XF86AudioMute<br />
keycode 162 = XF86AudioPause<br />
keycode 164 = XF86AudioStop<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 176 = XF86AudioRaiseVolume<br />
keycode 222 = XF86PowerDown<br />
<br />
You can now load the mappings with:<br />
<br />
xmodmap ~/.Xmodmap<br />
<br />
If you are using a lightweight window manager like Openbox or Awesome then you might want to use xbindkeys to set the mapped keys to functions like so:<br />
<pre><br />
"amixer set Master mute"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
"amixer set Master 1dB+ unmute"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
</pre><br />
<br />
Now use ''xbindkeys -mk'' to get your own codes and assign functions to them and put them in .xbindkeysrc and also load xmodmap and xbindkeys in your .xinitrc:<br />
<pre><br />
xmodmap $HOME/.Xmodmap &<br />
xbindkeys &<br />
</pre><br />
<br />
If you are running XFCE, you'll notice that XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute are binded to the aumix command. So you'll need to install it:<br />
<br />
pacman -S aumix-gtk<br />
<br />
Or remap them to something like this "amixer sset PCM 5+" for instance.<br />
<br />
<br />
*KDE 3.5.x/4.x.x.<br />
First of all in KDE you can enable the multimedia keys by choosing the "Dell Laptop/notebook 6xxx/8xxx" layout in System Settings -> Regional and Language -> Keyboard Layout. Alternatively, you can disable keyboard layouts in KDE and add the following in the "InputDevice" section for your keyboard:<br />
<br />
Option "XkbLayout" <your preferred language here, e.g., "us"><br />
Option "XkbModel" "inspiron"<br />
Option "XkbRules" "xorg"<br />
#Option "XkbVariant" "nodeadkeys" # Variant options, if you need them<br />
<br />
Next, you can bind the multimedia-key actions to your needs with Keyboard Shortcuts in System Settings (different places depending on KDE version), e.g., in KMix bind "Toggle Mute - Front, HDA Intel" to the mute button etc..<br />
<br />
*In KDE 3.5.x/4.x.x I experience the multimedia keys repeat 2-4 times on each keypress.<br />
This may apply to other DE's as well.<br />
<br />
The problem is related to the autorepeat settings for the keyboard, as each keypress on the multimedia-keys lasts ~660ms, which is below the default keyrepeat hold-time setting.<br />
<br />
Add the following setting to the "InputDevice" section for your keyboard:<br />
<br />
Option "AutoRepeat" "700 20" # First time is the hold-time in ms before autorepeat starts,<br />
# second is the repeats per second.<br />
# Experiment with hold-times of ~680-700ms to find the lowest possible.<br />
<br />
In KDE 3.5.x the autorepeat settings can be set in System Settings instead. I think the KDE 4.x.x system (needs confirmation) does not agree to the autorepeat setting in xorg.conf and you cannot set them in System Settings currently (<= 4.1.2).<br />
<br />
In my case (KDE 4.x.x), the autorepeat still makes the auto-repeat activate when pressing the multimedia keys. I found out though, that the setting in gnome-control-center -> Keyboard -> Repeat Keys settings actually make the multimedia keys work as they should, after adjusting the Delay slider. Even on the default setting, they work, the gnome settings just have to be activated, which gnome-settings-daemon may take care of. Thus, add gnome-settings-daemon to you autostarts in KDE and you have nice auto-repeat settings and your multimedia keys actually work!<br />
<br />
The latter feature/bug? with the gnome-control-center fixing it, lost my attention for a long while, so I hope this can help others solving this annoyance faster.<br />
<br />
== BIOS ==<br />
{{Box Note | Updating your Bios is always a dangerous operation (even if it is safer on a laptop with a battery). <b>Perform it at your own risks.</b>}}<br />
<br />
You can perform bios updates under GNU/Linux ! Just install i8kutils :<br />
pacman -S i8kutils<br />
<br />
Download latest bios (A15) [http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0209_version_a15/bios.hdr here (.hdr file)]. This bios is for device ID 0x0209. You can check your device ID by installing libsmbios :<br />
pacman -S libsmbios<br />
and then :<br />
smbios-sys-info-lite<br />
You can find other bios fitting your system ID [http://linux.dell.com/repo/firmware/bios-hdrs/ there].<br />
<br />
Then go in the directory where you downloaded the bios and type as root :<br />
modprobe dell_rbu<br />
<br />
dellBiosUpdate-combat -u -f bios.hdr<br />
Reboot, stare at the white frightening screen saying "Bios update" for an endless minute. Listen to the sweet vacuum-like full speed sound of your fans just before it reboots automatically. Then observe the boot screen with Dell logo displayed much longer than usual. Sweep the sweat on your forehead. You're done !<br />
<br />
=== History of BIOS Revisions ===<br />
Check this '''[http://forum.notebookreview.com/showthread.php?t=324392 thread]''' from NoteBook Review for detailed info. <br />
<br />
'''A10''' : ''May '08''<br />
* The only enhancement I noticed with this bios is that you can now eject a CD/DVD without freezing your system (this was really a weird behaviour !). <b>Please upgrade to A11 or A12 if you are currently using A10 !</b><br />
<br />
'''A11''' : ''Jun '08''<br />
* Fixing [http://forum.notebookreview.com/showthread.php?t=264653 overheating issues] introduced with A10 bios.<br />
<br />
'''A12''' : ''Jul '08'' <br />
* Other thermal enhancements. Temperatures are lower for me but the fan is always running.<br />
<br />
'''A13''' : ''Oct '08'' (removed-from-the-official-list)<br />
* Added support for new versions of Intel CPUs.<br />
* Added support for 8GB memory.<br />
<br />
'''A14''' : ''Nov '08''<br />
* Added enhancement for Wifi sniffer function.<br />
<br />
'''A15''' : ''Jan '09''<br />
* Enhance Fn+F8 function (probably only for Intel integrated graphics)<br />
* Support for 8GB memory is... back!<br />
<br />
== External Resources ==<br />
<br />
[http://intr.overt.org/blog/?page_id=56 This page] describes all of the various driver modules required to make the hardware in the XPS M1330 work.<br><br />
French speaking people can also refer to [http://www.atlas95.com/blog/category/dell/xps-1330/ these articles].</div>Crobe