Acer Aspire V15 Nitro Linux install notes

From Note to self
Revision as of 06:25, 7 January 2015 by Hansvi (Talk | contribs) (Installing Fosphor)

Jump to: navigation, search

Experiments

This page keeps track of what I've been doing on getting my laptop to work. It's not an installation guide.

Dual-boot problems

After messing around a bit, I just decided that it just wasn't worth the effort and I went with a Linux-only install. This has the added advantage of freeing up some more disk-space (256Gb is not *that* much).

See here: Acer Aspire VN7-591G USB boot + SSD question

Just a heads up. I found that this laptop (in UEFI mode) is one that will only boot EFI/Microsoft/Boot/bootmgfw.efi.
You can install a Linux EFI img and change the boot order with something like 'efibootmgr' and it will switch the boot
order back to Windows first on reboot. You can hit F-12 at boot and then select your Linux image but that's a pain.
I ended up copying Window's bootmgfw.efi to EFI/Microsoft/bootmgfw.efi and installing rEFInd as bootmgfw.efi as described here.


I made a backup of the Windows restore partition to a USB flash drive that I'll keep aside just in case. (using the Acer restore utility)

Device info

#lspci -q -nn
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller [8086:0c04] (rev 06)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06)
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05)
00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 05)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 [8086:8c14] (rev d5)
00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 [8086:8c16] (rev d5)
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 [8086:8c26] (rev 05)
00:1f.0 ISA bridge [0601]: Intel Corporation HM86 Express LPC Controller [8086:8c49] (rev 05)
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [8086:8c03] (rev 05)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05)
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 860M] [10de:1392] (rev a2)
07:00.0 Network controller [0280]: Qualcomm Atheros Killer N1525 Wireless-AC [168c:003e] (rev 20)
08:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)

Linux Installation

Mint 17.1

It's time to try out a new Linux distribution. I always tend to end up with Debian, my last excursion being Ubuntu until they started with their Unity BS. For now, I'll install Linux Mint. If I don't like it, I can always change.

Booting from USB

I just downloaded the iso and copied the file to the stick:

dd bs=4M if=linuxmint-17.1-kde-64bit-rc.iso of=/dev/sdX

Then I changed the Boot options on the portable (F2 at boot time) to Legacy mode. Guided install - full disk. Bye bye, windows.

Touchpad

See: touch-pad not detected on Acer Aspire VN7-591g

This is a bit annoying: in the live session, you can't click on the install icon. This is circumvented by pressing the context menu key on the keyboard, press 'n' to select "Run...", then start typing "install" and the installation program should be in the suggestion list.

After upgrading to kernel 3.16 the Touchpad works, but right-clicking is not recognized. I'll look into this further (information is provided in the link above), but meanwhile in the KDE settings I selected a two-finger click to be interpreted as a right-click.

Network

Wifi not recognized?

SSD wear prevention

  • Added noatime to /etc/fstab root partition options
UUID=70829450-5b80-414a-8a8d-e7c58c2512c3 /               ext4    noatime,errors=remount-ro 0       1

NVidia

WIP.

  • NVidia drivers in Mint 17.1 do not support the 860M
  • There is now some support for dual gfx cards, through bumblebee.

Some of the fiddling so far ( Most of the time I have no clue what I'm doing ;-) ):

apt-get install linux-headers-3.16.0-28
apt-get install linux-headers-3.16.0-28-generic
cd /home/hans/Downloads/
chmod 755 NVIDIA-Linux-x86_64-346.22.run 
./NVIDIA-Linux-x86_64-346.22.run 
/etc/init.d/mdm stop
apt-get install bumblebee-nvidia
apt-cache show primus
apt-get install bumblebee-nvidia primus
/etc/init.d/mdm start
/etc/init.d/mdm stop
./NVIDIA-Linux-x86_64-346.22.run 
nvidia-xconfig 
/etc/init.d/mdm start
vi /etc/bumblebee/xorg.conf.nvidia 
vi /etc/bumblebee/bumblebee.conf 
updatedb
locate nvidia
vi /etc/bumblebee/bumblebee.conf 
/etc/init.d/mdm start

Trying to undo the changes:

./NVIDIA-Linux-x86_64-346.22.run --uninstall
apt-get remove --purge bumblebee-nvidia primus
apt-get autoremove

Next, trying xorg-edgers ppa

add-apt-repository ppa:xorg-edgers/ppa
apt-get update
apt-get install nvidia-346 nvidia-settings

(it removed nvidia-304 which was installed too, apparently). After a reboot, I ran glxinfo to check if the NVIDIA driver was being used, but no. Then I read I needed to do an upgrade.

apt-get upgrade
apt-get install bumblebee bumblebee-nvidia primus

After installing bumblebee, I can use both cards.

glxinfo
optirun glxinfo

The first command shows an Intel graphics card is being used, the second command shows that the NVIDIA card is used.

Links

GnuRadio

Installation

Quite easy using pybombs.

apt-get install git
git clone git://github.com/pybombs/pybombs
cd pybombs
./pybombs install gnuradio


Installing OpenCL

Fosphor requires OpenCL. Following the install instructions:

apt-get install cmake xorg-dev libglu1-mesa-dev

If you execute the next step, it will install the 331 version of the driver. Therefore, I explicitely added the nvidia-opencl-icd-346 package first

apt-get install nvidia-opencl-icd-346

If I then try the next step I get an error:

apt-get install nvidia-opencl-dev opencl-headers 
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 nvidia-opencl-dev : Depends: nvidia-libopencl1 (>= 319.37) but it is not installable or
                              nvidia-libopencl1-331 but it is not going to be installed or
                              nvidia-libopencl1-331-updates but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Again, it only considers version 331. Let's install v346 manually (I wonder why it uninstalls ocl-icd-libopencl1)

apt-get install nvidia-libopencl1-346
The following packages will be REMOVED:
  ocl-icd-libopencl1
The following NEW packages will be installed:
  nvidia-libopencl1-346
0 upgraded, 1 newly installed, 1 to remove and 3 not upgraded.
Need to get 20,8 kB of archives.
After this operation, 39,9 kB disk space will be freed.
Do you want to continue? [Y/n] 

The problem persists. opencl-headers installs without problems

 apt-get install opencl-headers 

The only thing remaining is nvidia-opencl-dev. All the packages this metapackage depends on are already there, so it's rather useless, unless its presence is needed for other packages.

Installing Fosphor

Using pybombs, it fails:

./pybombs install gr-fosphor
Settled on prefix: /usr/local
Loading recipes ...
Installing packages:
* glfw3
* gr-fosphor
PyBombs.sysutils - WARNING - deb_exists: could not find a downloadable version of libglfw3-dev
Installing from source: glfw3
Cloning into 'glfw3'...
remote: Counting objects: 14365, done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 14365 (delta 13), reused 0 (delta 0)
Receiving objects: 100% (14365/14365), 7.15 MiB | 1.20 MiB/s, done.
Resolving deltas: 100% (8966/8966), done.
Checking connectivity... done.
Configuring: (100%) [==========================================================]
Building:    (100%) [==========================================================]
Installing: (100%) [===========================================================]
installation ok via: src
Installing from source: gr-fosphor
Cloning into 'gr-fosphor'...
remote: Counting objects: 775, done.
remote: Compressing objects: 100% (545/545), done.
remote: Total 775 (delta 527), reused 298 (delta 200)
Receiving objects: 100% (775/775), 357.35 KiB | 0 bytes/s, done.
Resolving deltas: 100% (527/527), done.
Checking connectivity... done.
Configuring: (100%) [==========================================================]
Configuration failed. Re-trying with higher verbosity.
make: *** No targets specified and no makefile found.  Stop.
Build failed. See output above for error messages.

I don't get any wiser from that error message. Let's try installing it manually:

git clone git://git.osmocom.org/gr-fosphor
cd gr-fosphor
mkdir build
cd build
cmake ..
(....)
- Could NOT find OpenCL (missing:  OPENCL_LIBRARIES) 
CMake Error at CMakeLists.txt:104 (message):
 OpenCL required to compile gr-fosphor

After this, I added the following line to pybombs/recipes/gr-fosphor.lwr:

var config_opt = " -DOPENCL_LIBRARY=/usr/lib/x86_64-linux-gnu/libOpenCL.so.1 "

and I can install fosphor with pybombs.

Then I installed gr-osmosdr and python-opengl

./pybombs install gr-osmosdr
apt-get install python-opengl


But osmocom_fft is still complaining

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libOpenCL.so.1 optirun osmocom_fft -F
linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.001-42-g8c87a524
gr-osmosdr v0.1.4-8-g46bb1ad1 (0.1.5git) gnuradio 3.7.6git-276-gc67281b6
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace 
-- Operating over USB 3.
-- Initialize CODEC control...
-- Initialize Radio control...
-- Performing register loopback test... pass
-- Performing CODEC loopback test... pass
-- Asking for clock rate 32.000000 MHz... 
-- Actually got clock rate 32.000000 MHz.
-- Performing timer loopback test... pass
-- Setting master clock rate selection to 'automatic'.
-- Using subdev spec 'A:A'.
[!] CL Error (-1001, /home/hans/source/pybombs/src/gr-fosphor/lib/fosphor/cl.c:275): Unable to fetch platform IDs
[!] No suitable OpenCL device found

Trying to read up on OpenCL, I found this page. I downloaded the testsoftware, but it failed to compile, even after adding the path in the makefile

make
gcc  -L/usr/lib/x86_64-linux-gnu/ -std=gnu99 -ocl-demo cl-demo.c cl-helper.c -lrt -lOpenCL
/usr/bin/ld: cannot find -lOpenCL
collect2: error: ld returned 1 exit status

I had to create a symbolic link to solve this

ln -s libOpenCL.so.1 libOpenCL.so

After this, I can see the error message:

./print-devices 
modprobe: FATAL: Module nvidia not found.
*** 'clGetPlatformIDs' in 'cl-helper.c' on line 113 failed with error 'invalid/unknown error code'.
Aborted

After a reboot, the error changes to nvidia-uvm. Installing cuda doesn't help.

apt-get install libcuda1-346

There is a specific nvidia-uvm package

apt-get install nvidia-346-uvm

but after installing that, I still get the error. Time for another reboot, but that doesn't solve a thing. It turns out that the nvidia-346-uvm package contains source code, not the compiled driver, and there is a missing makefile see here. So I located and symlinked the missing file.

cd /usr/src
ln -s nvidia-346-346.22/nvidia-modules-common.mk nvidia-modules-common.mk
apt-get remove nvidia-346-uvm 
apt-get install nvidia-346-uvm

Now the install compiles the module(?), but still OpenCL isn't working

modprobe seems to fail to load nvidia-uvm. See debian bug #747336

NVIDIA driver documentation