Translation(s): none

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

Models covered
PIPO X8
- CPU: Intel Atom Z3736F @ 1.33GHz
- Video card: Integrated Intel HD Graphics
- Screen size: 7" (800x1280, touchscreen)
- Wireless card: RTL8723BE (SDIO)
- LAN network card: 10/100M
- 32 GB Flash, 2 GB RAM
- MicroSD card slot
- Sound card: ?
- Bluetooth: ?

Overall Status

Installation was taken from an USB stick installed at a similar device.
Debian Installer was just not tested on this device.
Tests were done with a testing/Stretch installation as of March 2016.

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

LAN network card:

{OK} {i}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

[?]

Sleep / Suspend

[?]

Xorg

{OK} {i}

- OpenGL

{OK}

- Resize-and-Rotate(randr)

{OK}

Switch to External Screen

[?]

Touchscreen

{OK} {i}

Wireless/Wifi

{OK} X-(

Sound Card

/!\

MicroSD card slot

{OK} {i}

Micro-USB connector

[?]

Power and volume buttons

[?]

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

{i} linux-image-4.4.0-1-amd64 4.4.4-2

Important Note

Device is delivered with Windows/Android 4.4 dual boot installation.
Device has UEFI x64 firmware with secure boot disabled when switched to boot Android.
When switched to boot Windows it seems to be a UEFI ia32 firmware.
At least EFI shell complains when trying to load the "wrong" grub architecture.

Boot device selection is requested with F7 key (at external USB keyboard).
Sometimes the boot device selection shows up but disappears immediately
to boot the default OS.

After many manual selections via F7 it looked like booting took a very lot longer.
But after loading defaults in EFI the USB stick does not appear anymore
in the Boot device selection screen. It was still possible to
boot from USB stick via EFI shell and e.g. fs3:\efi\boot\bootia32.efi or
fs3:\efi\boot\bootia32.efi .

As I tried to create my own EFI boot entry it seemed the space for such
was filled up as the new generated one was just visible, had no content
and made "efibootmgr -v" crash.
There were 9 entries like following:

Boot0008* UEFI OS       VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)

Removing some of them made my USB stick available again on next boot.
Also the "Boot override" section is now filled with entries again.
Therefore I assume this EFI firmware has problems handling more entries
with the same name.
This seemingly filled up NVRAM probably also caused the preinstalled
Android to boot up properly sometimes.

PIPO seems not to release kernel sources for their Android kernel.

Configuration

Display

{i} Display adapter is identified in dmesg as:

[   10.193194] [drm] Initialized i915 1.6.0 20151010 for 0000:00:02.0 on minor 0

In UEFI and efifb stage the screen is rotated to portrait view.
Kernel module inteldrmfb needs kernel parameter to show in landscape view.

/etc/default/grub

GRUB_CMDLINE_LINUX="fbcon=rotate:3"

After editing execute "update-grub" to rebuild grub config and test by rebooting.

The framebuffer seems to be controlled after efifb by module simplefb.
Because of the used rotate value the framebuffer is shown upside down.
But some seconds later module inteldrmfb takes over and shows correct landscape view.

Xorg by default tried to use driver in package xserver-xorg-video-intel.
"This driver is deprecated in favor of the server builtin modesetting driver."
Both drivers comming up again in portrait mode.
This could be resolved with this change:

/usr/share/X11/xorg.conf.d/10-pipo-driver-and-rotation.conf

Section "Device"
        Identifier  "Card0"
        Driver      "modesetting"
EndSection

Section "Monitor"
        Identifier  "DSI-1"
        Option      "Rotate" "left"
EndSection

Audio

/!\ Got it not to work, even when some firmware from package firmware-intel-sound is loaded at boot.

A version of this file reqested here is in package firmware-intel-sound.

[   10.654061] intel_sst_acpi 80860F28:00: Direct firmware load for intel/fw_sst_0f28.bin failed with error -2

When booted from ia32 EFI and tested with kernel v4.5-rc7-244-g03c668a
some audio hardware seems to be detected:

[   10.586500] intel_sst_acpi 80860F28:00: LPE base: 0x90a00000 size:0x200000
[   10.586510] intel_sst_acpi 80860F28:00: IRAM base: 0x90ac0000
[   10.586613] intel_sst_acpi 80860F28:00: DRAM base: 0x90b00000
[   10.586634] intel_sst_acpi 80860F28:00: SHIM base: 0x90b40000
[   10.586653] intel_sst_acpi 80860F28:00: Mailbox base: 0x90b44000
[   10.586669] intel_sst_acpi 80860F28:00: DDR base: 0x20000000
[   10.586793] intel_sst_acpi 80860F28:00: Got drv data max stream 25
[   11.103543] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[   11.103634] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> deepbuffer-cpu-dai mapping ok
[   11.103687] compress asoc: snd-soc-dummy-dai <-> compress-cpu-dai mapping ok
[   11.126678] bytcr_rt5640 bytcr_rt5640: rt5640-aif1 <-> ssp2-port mapping ok

$ LANG=C aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: bytcrrt5640 [bytcr-rt5640], device 0: Baytrail Audio (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: bytcrrt5640 [bytcr-rt5640], device 1: Deep-Buffer Audio (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

But when trying to play something this error is given:

aplay: set_params:1297: Unable to install hw params:

[  141.466529] intel_sst_acpi 80860F28:00: Wait timed-out condition:0x0, msg_id:0x0 fw_state 0x1
[  141.466538] intel_sst_acpi 80860F28:00: fw download failed -16
[  141.466551] intel_sst_acpi 80860F28:00: FW download fail -16
[  141.478937]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port

When applying these amixer settings (last one, "Ext Spk" is not available)
and having applied irq adjustment to the kernel module,
then "speaker-test" gives no error anymore, but still nothing to hear,
except kind of a crack when opening and closing the audio device.
Interrupts are visible:

# cat /proc/interrupts | grep -E "CPU|sst"
            CPU0       CPU1       CPU2       CPU3       
   1:          1       1734          0          0   IO-APIC   29-fasteoi   intel_sst_driver

Asked on alsa-devel got some more information, but it seems to be not supported as of today.

Power Management

Touchscreen

{i} Manufacturer is Goodix.
This module is not enabled in the default kernel.
Tried to build upstream version of the kernel module on top of kernel 4.4:

mkdir linux-git-goodix; cd linux-git-goodix
wget http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/drivers/input/touchscreen/goodix.c
wget "https://wiki.debian.org/InstallingDebianOn/PIPO/PIPO%20X8?action=AttachFile&do=get&target=0001-Input-goodix-add-changes-to-support-PIPO-X8.patch" -O - | patch -p 4
echo -e "obj-m += goodix.o\nall:\n\tmake -C /lib/modules/\$(shell uname -r)/build M=\$(PWD) modules\nclean:\n\tmake -C /lib/modules/\$(shell uname -r)/build M=\$(PWD) clean" > Makefile
make
echo -n 'file gpiolib.c +p' > /sys/kernel/debug/dynamic_debug/control
echo -n 'file gpiolib-acpi.c +p' > /sys/kernel/debug/dynamic_debug/control
echo -n 'file property.c +p' > /sys/kernel/debug/dynamic_debug/control
insmod goodix.ko dyndbg==pmf

But failed with these messages:

Mär 11 14:18:02 kernel: acpi GDIX1001:01: GPIO: looking up 0 in _CRS
Mär 11 14:18:02 kernel: goodix:goodix_ts_probe: Goodix-TS i2c-GDIX1001:01: I2C Address: 0x14
Mär 11 14:18:02 kernel: Goodix-TS i2c-GDIX1001:01: GPIO lookup for consumer irq
Mär 11 14:18:02 kernel: Goodix-TS i2c-GDIX1001:01: using ACPI for GPIO lookup
Mär 11 14:18:02 kernel: acpi GDIX1001:01: GPIO: looking up irq-gpios
Mär 11 14:18:02 kernel: acpi GDIX1001:01: GPIO: looking up irq-gpio
Mär 11 14:18:02 kernel: acpi GDIX1001:01: GPIO: looking up 0 in _CRS
Mär 11 14:18:02 kernel: Goodix-TS i2c-GDIX1001:01: lookup for GPIO irq failed
Mär 11 14:18:02 kernel: goodix:goodix_get_gpio_config: Goodix-TS i2c-GDIX1001:01: Failed to get irq GPIO: -22
Mär 11 14:18:02 kernel: Goodix-TS: probe of i2c-GDIX1001:01 failed with error -22

Tested again with a complete build of the vanilla kernel version v4.5-rc7-244-g03c668a plus attached patch applied:

[   11.129797] Goodix-TS i2c-GDIX1001:00: ID 911, version: 1060
[   11.141772] Goodix-TS i2c-GDIX1001:00: Applying 'PIPO X8' quirk
[   11.141932] input: Goodix Capacitive TouchScreen as /devices/platform/80860F41:01/i2c-1/i2c-GDIX1001:00/input/input2

This touchscreen is only recognised if the last default startup OS is switched
to Windows. (Has not to be started at all, just EFI arch needs to be ia32).
In this configuration it is working as expected.

WiFi

X-( Got it to work as described below. The HP Pavilion x2 10 seems to have the same wireless device.

mkdir hadess; cd hadess
git clone https://github.com/hadess/rtl8723bs.git
cd rtl8723bs
make -j4
make install
echo r8723bs >> /etc/modules-load.d/modules.conf

[ 9220.925733] RTL8723BS: module init start
[ 9220.925741] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[ 9220.925745] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[ 9221.046153] RTL8723BS: rtw_ndev_init(wlan0)
[ 9221.050588] RTL8723BS: module init ret =0
...

Git rev 6accf79 in rtl8723bs did work on Debian kernel 4.4.6-1 (2016-03-17).

Either 6accf79 or current head 6918e9b does work with Debian kernel 4.5.1-1 (2016-04-14).
The line "rtw_ndev_init" is missing.
This is probably tracked in this bug report.

LAN network card

{i}

[    3.357232] usb 1-1: New USB device found, idVendor=0a46, idProduct=1269
[    3.357255] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.357271] usb 1-1: Product: DM9621A USB To FastEther
[    3.357284] usb 1-1: Manufacturer: DAVICOM

Current testing/Stretch seems to load for this device two drivers: dm9601 and cdc_ether
If dm9601 is faster loading device does not work.

Therefore blacklisted dm9601 for now:

echo blacklist dm9601 > /etc/modprobe.d/blacklist-dm9601.conf

But sometimes cdc_ether still fails and required a reboot.

MicroSD card slot

{i}

[    2.365942] mmc2: SDHCI controller on ACPI [80860F14:02] using ADMA

A card inserted before a warm boot is probably not correctly recognized.
It seems to work better from a cold boot.
Or probably also affected by which pre-installed OS was booted last.

Seems to work more reliably with newer Debian kernel 4.5.1-1 (2016-04-14).


System Summary

lspci

00:00.0 Host bridge [0600]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register [8086:0f00] (rev 0f)
00:02.0 VGA compatible controller [0300]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display [8086:0f31] (rev 0f)
00:03.0 Multimedia controller [0480]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Camera ISP [8086:0f38] (rev 0f)
00:14.0 USB controller [0c03]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI [8086:0f35] (rev 0f)
00:16.0 USB controller [0c03]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series OTG USB Device [8086:0f37] (rev 0f)
00:1a.0 Encryption controller [1080]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine [8086:0f18] (rev 0f)
00:1f.0 ISA bridge [0601]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit [8086:0f1c] (rev 0f)

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' | grep -v "(Bus Powered)" 2>/dev/null

Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                1 USB2.0 Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
Bus 001 Device 002: ID 0a46:1269 Davicom Semiconductor, Inc. 
  bDeviceClass            2 Communications
  bDeviceProtocol         0 
  iProduct                2 DM9621A USB To FastEther
  bDeviceClass            2 Communications
  bDeviceProtocol         0 

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

efi entries

# efibootmgr -v

BootCurrent: 000A
Timeout: 1 seconds
BootOrder: 0003,0007,0002,000A,0008,0009,0001,0004,0005
Boot0001* UEFI:CD/DVD Drive     BBS(129,,0x0)
Boot0002* UEFI: Built-in EFI Shell      VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
Boot0003* UEFI OS       HD(1,GPT,c12a7328-f81f-11d2-ba4b-00a0c93ec93b,0x28,0x20000)/File(\EFI\BOOT\BOOTX64.EFI)
Boot0004* UEFI:Removable Device BBS(130,,0x0)
Boot0005* UEFI:Network Device   BBS(131,,0x0)
Boot0007* Windows Boot Manager  HD(1,GPT,c12a7328-f81f-11d2-ba4b-00a0c93ec93b,0x28,0x20000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...c................
Boot0008* UEFI OS       VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0009* UEFI OS       VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot000A* UEFI: KingstonDataTraveler 3.0PMAP    PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/USB(1,0)/HD(1,MBR,0x4294967196,0x800,0x96000)..BO

Resources

Attachments

Some configuration files and sample outputs.

  • [get | view] (2016-03-14 14:01:10, 2.0 KB) [[attachment:0001-Input-goodix-add-changes-to-support-PIPO-X8.patch]]
  • [get | view] (2016-03-15 13:21:53, 34.3 KB) [[attachment:amixer.txt]]
  • [get | view] (2016-03-14 16:37:33, 37.2 KB) [[attachment:efi-ia32-booted_dsdt.dsl.gz]]
  • [get | view] (2016-03-14 16:37:49, 38.0 KB) [[attachment:efi-x86_64-booted_dsdt.dsl.gz]]
 All files | Selected Files: delete move to page copy to page

Credits