This is a HowTo for installing the 32bit Debian 9 aka. stretch on the ASUS EeePC 1015pn - A laptop with hybrid graphics from Intel N570 and a Nvidia ION2. Installing Debian from USB media works like a charm (press ESC to choose the boot media).

Overheating and Fancontrol

The BIOS on this laptop controls the fanspeed insufficiently. Only if the Nvidia card is disabled completely, the BIOS manages to sufficiently cool the laptop. However, the BIOS default is to use the Nvidia card which overheats the system without user intervention (same with Windows). The current versions of the kernel module asus_wmi,etc... that are loaded by default do not provide a hwmon interface for monitoring and controlling the fan.

One solution is to add the kernel parameter acpi_osi=Linux permanently to grub2 which leads the system to load the older acpi module eeepc_laptop providing a hwmon interface rather than the newer wmi kernel modules. Use the software packages lm-sensors and fancontrol to monitor and manage these hwmon interfaces. Avoid using the temperature sensor of the Nvidia card, since it is only readable if the nouveau driver is used and the Nvidia card is active.

Since the Nvidia chip reaches much higher temperatures (70-130) than the CPU (50-90) and the Nvidia chip is at the end of the common heatpipe you have to use a very steep fancontrol curve. You need the full fanspeed on temperatures higher than ~70 for sure. A /etc/fancontrol file that worked fine for me is as follows:

# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon0= hwmon2=devices/platform/eeepc
DEVNAME=hwmon0=acpitz hwmon2=eeepc
FCTEMPS=hwmon2/pwm1=hwmon0/temp1_input
FCFANS= hwmon2/pwm1=
MINTEMP=hwmon2/pwm1=58
MAXTEMP=hwmon2/pwm1=70
MINSTART=hwmon2/pwm1=105
MINSTOP=hwmon2/pwm1=75
MINPWM=hwmon2/pwm1=50
MAXPWM=hwmon2/pwm1=255

In the far future this patch might allow fancontrol with Asus laptops out of the box. Despite the fan spinning at maximum speed the systems CPU will overheat if the nvidia card ist used more than moderate. This is due the much higher desired working and throttling temperature and the single heatpipe:

|----------------------------------------------------------------------|
| Radiator & FAN            GPU (max. 135 C)          CPU (max. 95 C)  |
|----------------------------------------------------------------------|

Eventually the GPU will heat up the CPU over its critical zone and the system will reboot. I did not find a way to limit the GPUs max temperature in software and I didn't want to spend any money on improving the CPU cooling with bulky constructions. So I ended up adding thermal resistance between GPU and heatpipe limiting the thermal conductivity. I used a thin layer of thermal compound for the CPU (high conductivity) and a bulky total of 4 double-sided thermal tapes for the GPU (low conductivity). See my picture on cooling Nvidia ION2 and the Atom N570. This does a good enough job protecting the CPU when the GPU goes to its thermal limits. E.g. full GPU load with 140C does not heat up the idle CPU cores to more than ~70C. This leaves some room for some CPU load and still manages to cool down the GPU <100C after load.

Nouveau or Nvidia drivers?

As of now nouveau version 1:1.0.12 does not allow clocking down the GPU. This leads the GPU to run at full power with idle temperatures not below ~85 at full fanspeed - rendering the system unusable without the hardware adjustments. This practically forbids the useage of bumblebee on this system. As of now, only the proprietary nvidia driver offers resonable idle temperatures at ~70. The Debian package nvidia-detect recommends to not use the most recent kernel module for the Nvidia GT218 chip but the legacy driver nvidia-legacy-340xx-driver.

Switching GPUs from GRUB

The kernel framework vgaswitcheroo does not work on this machine. The hardware mux capabilities might be missing. However, you may switch GPUs with a acpi call. This requires a special kernel module provided by the package acpi-call-dkms. After modprobe of the kernel module or adding it permamently via '/etc/modules-load.d/modules.conf' you may use the acpi codes as found online. If you reboot to the hybrid mode make sure to power down the Nvidia GPU.

You may use systemd and a custom grub entry to perform switching without typing passwords. Create two files : /etc/systemd/system/asus1015pnRebootIntel.target

[Unit]
Description=Target for reboot in Intel GPU mode

[Install]

And the file /etc/systemd/system/asus1015pnRebootIntel.service

[Unit]
Description=Reboot in Intel GPU mode
Wants=systemd-modules-load.service
After=systemd-modules-load.service
AssertPathExists=/proc/acpi/call

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo '\OSGS 1' > /proc/acpi/call && reboot --force"

[Install]
WantedBy=asus1015pnRebootIntel.target

Install the service sudo systemctl enable asus1015pnRebootIntel.service. Now we may use the kernel parameter systemd.unit=....target to boot to this new target. Make it more comfortable by appending a entry to /etc/grub.d/40_custom :

menuentry 'Reboot with Intel GPU' --class debian --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3  953ffa64-e652-44b4-94dd-79ed834e193a
        else
          search --no-floppy --fs-uuid --set=root 953ffa64-e652-44b4-94dd-79ed834e193a
        fi
        echo    'Loading Linux 4.3.0-1-686-pae ...'
        linux   /vmlinuz root=UUID=953ffa64-e652-44b4-94dd-79ed834e193a ro  quiet acpi_osi=Linux systemd.unit=asus1015pnRebootIntel.target
        echo    'Performing init ... Rebooting with Intel GPU'
        initrd  /initrd.img
}

Finally, use sudo update-grub to install your additional entry.

WiFi Module

The open drivers currently struggle to load the firmware to the card or get confused by interface renaming. Install the proprietary driver package broadcom-sta-dkms from the non-free sources. The proprietary driver wl does not work with suspend to RAM.


CategoryDebianOn