====== Acer Switch 3 ====== Creato venerdì 12 luglio 2019 At the end, I've found the perfect device I was looking for, since years. The Acer Switch 3 is a convertible 2 in 1 device, that can be used as tablet and also for work, with external monitor. Installation Usb keys are needed. 2 or 3, better. If you also have a usb to lan adapter, your life will be easier. Bios Enter the uefi "bios" ( with F1 or Volume up button ) and disable the secure boot. It is a bit tricky to configure the right choices. Some features will enable only if you set the Supervisor password. Booting the installer I used a usb key with Debian 10 xfce for amd64. With F12 or pressing the Volume down button on the switch3 you should be able to Boot from the usb key. A second usb key with the firmware needed from the package firmware-iwlwifi may be useful. It did not work for me, though. Install as usual, I used the expert non-graphical mode, because the touchpad is not working. I suggest to use xfce in this tutorial to setup all aspects described here. Partitioning I started with a empty disk, GPT partition table. I've installed Windows 10 in the minimum space (18 GB), just for particular tasks. I used a partition for / and 4.2GB for swap. Bootloader At the end, DO NOT INSTALL the bootloader, otherwise the Switch will freeze with incomplete installation process. Complete the installation without bootloader (i.e.: Grub). You need a rEFInd usb key now, to boot the system for the first time with Buster. Once logged in, connect to internet and install rEFInd with apt. When done, install rEFInd on your esp boot partition (in my case [[/dev/mmcblk1p2]]) : modprobe efivars refind-install --usedefault [[/dev/mmcblk1p2]] - Now inside the "Bios" you must manually choose the refind boot file, and give a label to the new boot entry, for example "Debian-10" If you want to set the boot delay and the default system you must edit /boot/efi/EFI/Boot/refind.conf Setup the environment Firmware and other packages apt install firmware-iwlwifi firmware-linux Virtual keyboard apt install onboard lightdm-gtk-greeter-settings On "lightdm GTK+ greeter" choose Onboard as on-screen keyboard, to log in also as tablet. You can set it in auto-start in your session settings Touchpad To make it work, create the file [[/etc/modprobe.d/hid.conf]] with content -- blacklist hid_rmi -- Do not forget update-initramfs -u Rotation Install packages apt install i2c-tools iio-sensor-proxy With "cat [[/proc/bus/input/devices"]] you will see all your input devices. Identify the "Name" of your i2c_designware touchscreen device; mine is 04F3224A:00 04F3:24FE as you see here I: Bus=0018 Vendor=04f3 Product=24fe Version=0100 N: Name="04F3224A:00 04F3:24FE" P: Phys=i2c-04F3224A:00 S: Sysfs=/devices/pci0000:00/0000:00:16.3/i2c_designware.2/i2c-3/i2c-04F3224A:00/0018:04F3:24FE.0001/input/input19 U: Uniq= H: Handlers=mouse0 event5 B: PROP=2 B: EV=1b B: KEY=400 0 0 0 0 0 B: ABS=3273800000000003 B: MSC=20 In the following script autoRotate.sh, replace 04F3224A:00 04F3:24FE with the Name you have found above. Put it in [[/usr/local/bin/]] and make it executable with "chmod +x /usr/local/bin/autoRotate.sh" #!/bin/sh # Auto rotate screen based on device orientation # Receives input from monitor-sensor (part of iio-sensor-proxy package) # Screen orientation and launcher location is set based upon accelerometer position # Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation # This script should be added to startup applications for the user # Clear sensor.log so it doesn't get too long over time > sensor.log # Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script monitor-sensor >> sensor.log 2>&1 & # Parse output or monitor sensor to get the new orientation whenever the log file is updated # Possibles are: normal, bottom-up, right-up, left-up # Light data will be ignored while inotifywait -e modify sensor.log; do # Read the last line that was added to the file and get the orientation ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$') # Set the actions to be taken for each possible orientation case "$ORIENTATION" in left-up) xrandr -o normal && xinput set-prop "04F3224A:00 04F3:24FE" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0 ;; right-up) xrandr -o inverted && xinput set-prop "04F3224A:00 04F3:24FE" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1 ;; normal) xrandr -o left && xinput set-prop "04F3224A:00 04F3:24FE" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1 ;; bottom-up) xrandr -o right && xinput set-prop "04F3224A:00 04F3:24FE" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1 ;; esac done You can put it in your startup programs or set shortcuts to start it or kill it.