Friday, 20 November 2015

Acer V3-372 WiFi Backup Plan with RTL8192cu

My $2 USB wifi adapter arrived a few days ago. At first I was very disappointed as the speed was excruciatingly slow.


I learned that this was due to poor hardware crypto performance. A simple swenc=1 option in module load up fixed it.

While I believe it is possible to compile a driver for the QCA6174 wireless module, I think this is likely to be more hassle than it is worth and so I ordered an Intel 7265n wifi card until the Qualcomm card gets mainline support.

Acer V3-372 SATA failed command: READ FPDMA QUEUED


Just when you think you got the laptop fixed and running well, I noticed these errors in dmesg:

[    9.998225] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[   10.001522] ata1.00: configured for UDMA/100
[   10.002694] ata1: EH complete
[   10.046132] ata1: limiting SATA link speed to 3.0 Gbps
[   10.047274] ata1.00: exception Emask 0x10 SAct 0x700 SErr 0x280100 action 0x6 frozen
[   10.048415] ata1.00: irq_stat 0x08000000, interface fatal error
[   10.049557] ata1: SError: { UnrecovData 10B8B BadCRC }
[   10.050707] ata1.00: failed command: READ FPDMA QUEUED
[   10.051842] ata1.00: cmd 60/80:40:80:f8:3a/01:00:1c:00:00/40 tag 8 ncq 196608 in
                        res 50/00:50:20:f8:3a/00:00:1c:00:00/40 Emask 0x10 (ATA bus error)
[   10.054118] ata1.00: status: { DRDY }
[   10.055250] ata1.00: failed command: READ FPDMA QUEUED
[   10.056376] ata1.00: cmd 60/38:48:40:f8:3a/00:00:1c:00:00/40 tag 9 ncq 28672 in
                        res 50/00:50:20:f8:3a/00:00:1c:00:00/40 Emask 0x10 (ATA bus error)
[   10.058647] ata1.00: status: { DRDY }
[   10.059759] ata1.00: failed command: READ FPDMA QUEUED
[   10.060883] ata1.00: cmd 60/18:50:20:f8:3a/00:00:1c:00:00/40 tag 10 ncq 12288 in
                        res 50/00:50:20:f8:3a/00:00:1c:00:00/40 Emask 0x10 (ATA bus error)
[   10.063158] ata1.00: status: { DRDY }
[   10.064277] ata1: hard resetting link
[   10.382466] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)

Read errors leading to a down-rating of the link to 3Gbps. OK, not the end of the world, but potentially worrying if it portends future data integrity issues.

Having tested this further, I'm able to reproduce the errors when I put the Logitech mouse usb receiver on the usb port on the right of the machine (near the SSD). Putting the receiver on the left side away from the SSD eliminates this problem.

I will check whether it can be fixed with shielding.

Wednesday, 18 November 2015

Acer V3-372 Touchpad settings with Syndaemon and Synclient

To get the touchpad to the sane settings that I like, I have the following synclient and syndaemons settings:

synclient PalmDetect=1 PalmMinWidth=6 PalmMinZ=1 \
AreaLeftEdge=900 AreaRightEdge=2400 \
FingerLow=1 FingerHigh=5 TapButton1=1 TapButton2=3 \
HorizTwoFingerScroll=1 RightButtonAreaTop=0 RightButtonAreaLeft=0

syndaemon -d -t -K -R -i 2


Note that I make a big left and right section of the pad 'dead' to avoid accidental touches while typing (which I hate) and disable right button tap.

With the more aggresive synclient settings, I'm now also experimenting with disabling syndaemon completely.

Acer V3-372 Battery Life

So having done the basic setup of the laptop, I used powertop to check the power consumption.

With my current setup and using an external USB stick for WiFi, I get the following result:


Powertop indicates over 8 hours of battery life which is in line with the official estimated battery life of 7.5 hours.

Of course, this is for light browsing and I expect that with heavier work, realistic battery life may be more in the 5-7 hour range.

Acer V3-372 Internals

For those interest, I post a photo of the inside of the Acer V3-372.

The machine was easy to take apart. All screws holding it together were exposed (none hidden underneath the rubber feet).

Of note:
  • There is a second RAM slot allowing 16GB of RAM in total (I haven't tried whether 32GB is supported). RAM is standard DDR3L
  • The SSD is M.2 SATA. I was disappointed that it was not a NVMe or PCI-E
  • WIFI uses M.2 slot also
  • Battery is ~48Wh
When I received the machine, I noticed the RAM was not seated in the slot properly and I re-seated it to avoid problems. Also I moved the antennas crossing the SSD ribbon cable so that they run on top of the cable (from this view) and taped the ribbon cable down to the metal. I did this to increase distance between the two in case interference caused any WiFI problems.




Sunday, 8 November 2015

Acer V3-372 Linux Crash

Just a post to record crashes.

So far, I had only two crashes and both were when plugged into AC power and using an ancient USB 802.11g wifi adapter.

The first crash happened when trying to receive a Google Hangouts call. The second when making a Google websearch.

Next time, I will watch more carefully and check the crash reports to try to figure out the cause.

EDIT: I think I've fixed the crash. I believe it is due to buggy i915 driver and so I disabled intel pstate by adding intel_pstate=disable in the kernel parameters and I've had fewer crashes since then.

QCA6174 Linux WiFi Support ath10k

The drivers in the Debian 4.2 and 4.3 kernels do not currently work reliably with the QCA6174 card even with the latest WiFi card firmware.

I have seen some proposed kernel patches and will see if I can get an externally built module to work.

I am hoping that there will be kernel support soon as even if it does work, maintaining an out of tree driver will be a pain.

For now, I am using an external USB wifi dongle .In the worst case, I can replace the wifi card with a better supported one, but I find that a non-working wifi card isn't as big a problem as I thought because:


  • I can use wired lan
  • When I am on the move, I anyway USB tether to my phone which has a wireless plan
  • I can use a USB wifi dongle

Intel Skylake Graphics Firmware for Linux

I'm not sure if it helps, but I installed the following firmware blobs:

https://01.org/zh/linuxgraphics/intel-linux-graphics-firmwares

Saturday, 7 November 2015

Acer V3-372 RAM upgrade

I saw conflicting information about the RAM expandability. I confirm that my version came with 8GB RAM in a single slot and has a spare slot.

I've populated the empty slot with another 8GB of DDR3L RAM and this works giving a total of 16GB RAM.

Wednesday, 4 November 2015

Brightness controls

Although the brightness controls work, they operate in rather large steps. If you use your laptop at night, like I do, then you might want to get the screen darker without turning off completely.

You can do this by writing a value directly to:

/sys/class/backlight/intel_backlight/brightness

as the root user.

I adapted a previous script I wrote to do this and bound this to a shortcut key which now gives an additional 3 steps between the current darkest setting and 'off'. I will upload the script and associated polkit later.

$ cat set-brightness
#!/bin/sh
echo "$1" > /sys/class/backlight/intel_backlight/brightness

$ cat brightness
#!/bin/sh
# Control screen brightness on Acer V3-372
#
# Adjusts brightness between 0 and 187
# Usage: brightness [u|d]

PKEXEC=/usr/bin/pkexec
#GSDBL=/usr/lib/gnome-settings-daemon/gsd-backlight-helper
#GSDBL=/usr/lib/xserver-xorg-video-intel/xf86-video-intel-backlight-helper
GSDBL=/usr/local/bin/set-brightness
#BRIGHTNESS=$( ${PKEXEC} ${GSDBL} --get-brightness )
BRIGHTNESS=$(cat /sys/class/backlight/intel_backlight/brightness )
case "$1" in
   u* ) 
${PKEXEC} ${GSDBL} $(($BRIGHTNESS*2))  
if [ "$BRIGHTNESS" -ge "90" ]
then ${PKEXEC} ${GSDBL} "187"  
elif [ "$BRIGHTNESS" -eq "0" ] 
then ${PKEXEC} ${GSDBL} "1"  
#else 
# ${PKEXEC} ${GSDBL} $(($BRIGHTNESS*2))  
fi
;;
   d* ) 
if [ "$BRIGHTNESS" -gt "186" ]
then ${PKEXEC} ${GSDBL} "128"  
elif [ "$BRIGHTNESS" -eq "1" ] 
then ${PKEXEC} ${GSDBL} "0"  
else 
${PKEXEC} ${GSDBL} $(($BRIGHTNESS/2))  
fi
;;
esac
BRIGHTNESS=$(cat /sys/class/backlight/intel_backlight/brightness )
echo "Screen brightness = " $BRIGHTNESS "/187"
/usr/bin/notify-send -t 500 $BRIGHTNESS"/187"
exit 0

$ cat org.freedesktop.policykit.exec.policy 
<?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
   <policyconfig>

<vendor>Examples for the PolicyKit Project</vendor>
<vendor_url>http://hal.freedesktop.org/docs/PolicyKit/</vendor_url>

<action id="org.freedesktop.policykit.exec.run.set-brightness">
  <description>Run the PolicyKit example program Frobnicate</description>
  <description xml:lang="da">Kør PolicyKit eksemplet Frobnicate</description>
  <message>Authentication is required to run the PolicyKit example program Frobnicate (user=$(user), program=$(program), command_line=$(command_line))</message>
  <message xml:lang="da">Autorisering er påkrævet for at afvikle PolicyKit eksemplet Frobnicate (user=$(user), program=$(program), command_line=$(command_line))</message>
  <icon_name>audio-x-generic</icon_name>
  <defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
  </defaults>
  <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/set-brightness</annotate>
</action>

</policyconfig>

Sunday, 1 November 2015

Electrical interference and TLP

I installed TLP to see if it could help with battery life, but found that it caused the laptop to reboot when left idle for a few minutes. Rather than try to figure it out, I simply uninstalled TLP.

I also noticed that when touching the touchpad, a high pitched whine can be heard from the speakers. I wonder if the cause can be found and fixed.

Getting Linux (Debian) Running on the Acer V3-372 Skylake Laptop

This post is being written on the Acer V3-372 laptop running Debian, so I have had some degree of success in getting it to work, but it is not perfect.

I'm documenting this as a reminder and to help anyone else who is stuck trying to get this to work.

Legacy BIOS

  • I didn't try to install using UEFI, I switched the BIOS to legacy boot.
  • You can get into BIOS by pressing F2 on boot
  • While you are there, you can change the Touchpad setting to 'Basic'
Installation
  • Installation from USB stick worked fine
Graphics crash
  • First problem is hanging when switching to graphics mode. To avoid this put in the file /etc/default/grub the line:
  • GRUB_CMDLINE_LINUX_DEFAULT="i915.preliminary_hw_support=1 i915.modeset=1 acpi_osi=Linux acpi_backlight=vendor"
  • run "update_grub" to apply the settings
Touchpad
  • To get this to work, make sure the touchpad is set to "Basic" in the BIOS
  • Then also press Fn-F7 to enable the touchpad
Backlight
  • This should work if you added the options: "acpi_osi=Linux acpi_backlight=vendor" to the kernel options.
Wifi
  • I have not yet managed to get WiFi to work.