Chuwi Hi10 Air Linux Installation Guide

Search This thread

Shazbot10

New member
Sep 22, 2019
1
0
Any hope for the camera?

First off nice guide. I got everything running with Manjaro using Deepin. The touchscreen had to be calibrated using Xcal. My only issue is the cameras don't work.

Is there no way to get even alpha or beta level gc0310, ov2680, ov8858, or hm6040 camera drivers?
 

jmcruzlorite

New member
Oct 10, 2019
1
0
Chuwi Hi10 air, problem with the accelerometer

I have seen in the forum the same problem that I have with the accelerometer, dmesg says: bmc150_accel_i2c i2c-bosc0200: 00: invalid chip 3

But I have not seen any solution. Is there a solution sl problem?
 

aveemashfaq

Senior Member
Jul 27, 2012
100
68
30
warangal
A user sent me a PM to explain him how to install Touchscreen drivers. Putting it here for everyone's reference.

BTW, it does not work in Fedora and only works on Ubuntu/Ubuntu based distros and Arch.

1. After installing Ubuntu, make sure that you have updated all the software.
2. Download touchscreen drivers from this location. https://github.com/onitake/gsl-firmware/tree/master/firmware/linux/silead
3. Rename the driver to mssl1680.fw
4. Copy the driver into /lib/firmware/silead. The folder silead does not exist, you need to create one.
5. Uninstall driver xserver-xorg-input-libinput and install driver xserver-xorg-input-evdev
6. Install xinput-calibrator and run the program
7. Calibrate your screen and touchscreen starts working as expected.
8. Copy the settings in the terminal to /usr/share/X11/xorg.conf.d/99-calibration.conf

It works permanently now.

---------- Post added at 11:09 AM ---------- Previous post was at 11:02 AM ----------

BTW, my Chuwi has died. I have been travelling a lot lately and I have been using my Phone charger to charge up Chuwi. My Phone has QC 3.0 charger and can deliver 12 V at 1.5A or 5V 3A. It worked fine for a couple of days because 5V 3A is the rating of our Chuwi charger. But then the charging circuit went kaput one day and now, whenever I turn it on even without connecting the charger, it overheats around the USB-C port and it trips off within few seconds. It's not because of heat sink because the heatsink is still in place and I inspected damage. It's directly below the micro USB port. Broke the tab into thousand pieces and threw it away.

Bottom line - Chuwi charger is only 5V 2A one and do not charge it with a bigger charger. Once or twice is fine but if you charge like that for a month or so, it will fail as mine did.

Side note - I repurposed the Keyboard device to work as a USB device. It is a very simple mod and if anyone is interested, I can post a tutorial here.
 

Myself5

Recognized Developer
Mar 17, 2011
3,437
9,829
26
myself5.de
Sony Xperia Z3 Compact
Sony Xperia Z3v
A user sent me a PM to explain him how to install Touchscreen drivers. Putting it here for everyone's reference.

BTW, it does not work in Fedora and only works on Ubuntu/Ubuntu based distros and Arch.

1. After installing Ubuntu, make sure that you have updated all the software.
2. Download touchscreen drivers from this location. https://github.com/onitake/gsl-firmware/tree/master/firmware/linux/silead
3. Rename the driver to mssl1680.fw
4. Copy the driver into /lib/firmware/silead. The folder silead does not exist, you need to create one.
5. Uninstall driver xserver-xorg-input-libinput and install driver xserver-xorg-input-evdev
6. Install xinput-calibrator and run the program
7. Calibrate your screen and touchscreen starts working as expected.
8. Copy the settings in the terminal to /usr/share/X11/xorg.conf.d/99-calibration.conf

It works permanently now.

The renaming part is no longer needed after my device detection update had been merged in the 5.2 kernel. Also I wonder, why do you replace libinput with evdev?
 

aveemashfaq

Senior Member
Jul 27, 2012
100
68
30
warangal
The renaming part is no longer needed after my device detection update had been merged in the 5.2 kernel. Also I wonder, why do you replace libinput with evdev?
Oh. Ok. So you mean that you don't need to calibrate touchscreen any more?

I replaced libinput with evdev because no matter what setting I tried to put for calibration in libinput, nothing ever happened to touch screen. The calibration remained the same. I tried it out in Ubuntu and Fedora. Never worked. And just installing evdev and setting up device in evdev also did not work. Once I uninstalled libinput, the evdev drivers started working and touchscreen was calibration worked perfectly.
 

nikmag

Member
Mar 26, 2009
30
0
I am not sure if this method works in Ubuntu with kernel 5.3. I tried to activate touchscreen in Ubuntu 19.10 with no success. Any idea?
 

tstirbu@yahoo.com

New member
Dec 18, 2012
1
0
Hello, I have a new Chuwi Hi10 air and the touchscreen is not working after I tried all the solutions exposed here. I put bellow my dmidecode. Can you help me? Thank you!

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Table at 0x7B6ED000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: C109D_X_T.301
Release Date: 05/24/2019
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 6144 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 5.11

Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: CHUWI INNOVATION AND TECHNOLOGY(SHENZHEN)CO.LTD
Product Name: Hi10 pro tablet
Version: Reserve
Serial Number: Hi10AirQ64G19083698
UUID: 03000200-0400-0500-0006-000700080009
Wake-up Type: Power Switch
SKU Number: C109D_X_T
Family: CherryTrail CR

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Morshow
Product Name: Cherry Trail CR
Version: V100
Serial Number: ABCDEF0123456789
Asset Tag: Reserve
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Reserve
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0

Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
Manufacturer: Default string
Type: Desktop
Lock: Not Present
Version: Default string
Serial Number: Default string
Asset Tag: Default string
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Safe
Security Status: None
OEM Information: 0x00000000
Height: Unspecified
Number Of Power Cords: 1
Contained Elements: 0
SKU Number: Default string

Handle 0x0008, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J1A1
Internal Connector Type: None
External Reference Designator: PS2Mouse
External Connector Type: PS/2
Port Type: Mouse Port

Handle 0x0009, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J1A1
Internal Connector Type: None
External Reference Designator: Keyboard
External Connector Type: PS/2
Port Type: Keyboard Port

Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J2A1
Internal Connector Type: None
 
Thank you @Myself5 for the guide and all the other people here that posted tips and codes.
I usually run Ubuntu but since on Arch Linux most things were working out of the box, I installed Manjaro on my new Chuwi Hi10 Air.

In my case, of the touchscreen, xinput_calibrator was not working on Manjaro or on Ubuntu. I manually calibrated the touchscreen with the evdev driver.

So, I just created the config file
Code:
sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf
Contents of 99-calibration.conf:
Code:
Section "InputClass"
	Identifier	"touchscreen"
	MatchProduct	"silead_ts"
	Driver	"evdev"
	Option	"Calibration"	"5 1265 80 1960"
	Option	"SwapAxes"	"1"
EndSection

As @Myself5 said, our kernel has to be 5.1 or better.
Code:
$ uname -r
5.3.12-1-MANJARO
On Ubuntu you can install/unistall/manage kernels easily using the ukuu app.

You will also need to download the touchscreen driver files, as described on the previous posts:
Code:
sudo mkdir /lib/firmware/silead/
sudo wget -O /lib/firmware/silead/gsl1680-chuwi-hi10-air.fw https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl1680-chuwi-hi10-air.fw
sudo cp /lib/firmware/silead/gsl1680-chuwi-hi10-air.fw /lib/firmware/silead/mssl1680.fw

Then reboot and check that the touchscreen is listed on your devices, as "silead_ts"
Code:
$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ silead_ts                               	id=10	[slave  pointer  (2)]
⎜   ↳ HS-C109S-US-01-00- USB Keyboard Mouse   	id=14	[slave  pointer  (2)]
⎜   ↳ HS-C109S-US-01-00- USB Keyboard Consumer Control	id=15	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ HS-C109S-US-01-00- USB Keyboard System Control	id=13	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ bytcr-rt5651 Headset                    	id=9	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ HS-C109S-US-01-00- USB Keyboard Wireless Radio Control	id=17	[slave  keyboard (3)]
    ↳ HS-C109S-US-01-00- USB Keyboard Consumer Control	id=16	[slave  keyboard (3)]
    ↳ HS-C109S-US-01-00- USB Keyboard         	id=18	[slave  keyboard (3)]
    ↳ gpio-keys                               	id=11	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ gpio-keys                               	id=12	[slave  keyboard (3)]

Some more things...

Gnome has a built in on board keyboard (since Gnome 3.28) that fires automatically when you click an input or if you swipe up from the bottom of the screen.

Set frame buffer rotation (while boot and on CTRL+ALT+F<number>) on grub, by adding on the kernel parameters
Code:
video=efifb fbcon=rotate:1
You can easily do that by installing the Grub Customizer and visiting the "General settings" tab, and adding the parameters under the kernel parameters.

Rotating the login screen, configure you desktop screen and then copy your configuration to the login screen
Code:
sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/monitors.xml

Commands to change on demand screen scale and orientation:
Code:
# DSI1 is my screen name, you can find your by running `xrandr`
# Rotate to portrait mode
xrandr --output DSI1 --rotate "normal"
# Rotate to landscale
xrandr --output DSI1 --rotate "right"
# Scale screen
xrandr --output DSI1 --scale 1.25x1.25

Script to toggle screen rotation
Code:
#!/bin/sh

# Get output
info=`xrandr`
expr='m/([a-zA-Z0-9_-]+) connected primary \d+x\d+\+\d+\+\d+ ([a-z]+|)/'

# Get screen name
match=${expr}';print $1;'
display=`echo $info | perl -lne "$match"`

# Get orientation
match=${expr}';print $2;'
orientation=`echo $info | perl -lne "$match"`

#echo $display
#echo $orientation

# Toggle
if [ "$orientation" = "right" ]; then 
	xrandr --output "$display" --rotate "normal"
else
	xrandr --output "$display" --rotate "right"
fi;
# You can also change the scale by removing the # on the next line
#xrandr --output "$display" --scale 1.25x1.25
You can add a button to your GNOME top bar to call this script by installing the extension
https://extensions.gnome.org/extension/1154/top-bar-script-executor/
I created a "Toggle screen orientation" button y saving the script under `~/.scripts/orientation.sh` with the icon `object-rotate-left`
 
Last edited:

rmarcoro

New member
Nov 26, 2019
1
0
Bricked

Hello Everyone! Here I am with TUTORIAL TO INSTALL ANDROID ON CHUWI HI10 AIR TABLET.
Mind me and confront me as I don't know the rules of the forum. However I respect it a lot. Thank you.

So follow-on,

Format a usb pen drive to FAT32 and name it 'WINPE'.
copy all the files from the cross-bios folder to the 'WINPE' drive.

Connect Chuwi Hi-10 air to the keyboard or an external keyboard via usb.
When chuwi boot appears, press F7 to enter boot selection menu
Select WINPE Drive and wait for bios to get installed.

After Reboot- the screen will look messed up and thats okay.
That's how it will be for bios and boot but it won't matter to the OPERATING SYSTEM/ANDROID.

Shutdown the device.
PRESS VOLUME UP + VOLUME DOWN + POWER BUTTON TOGETHER UNTIL DMX MODE APPEARS.

Connect via usb to computer and start intel platform flash tool.
Make sure usb drivers are installed lol

In the flash tool, select browse and browse to unzipped Chuwi hi10 android folder that has flash.json file. Select the file.
Make sure device can be seen connected in the flash tool.
Flash. Relax.

Wait for device to boot -reboot - boot a few times on its own until REMIX OS boot appears.

During installation, do not connect to wifi because Remix OS behaves stupid. Connect later after installation and setup. Keep some patience and trust me.

HAVE FUN!

Ask me further if you need some help with the Android. I'll help you make it perfect that you'll love the Tablet.


File Links - ( Files belong to me and are uploaded by me to my g-drive- citing myself and not breaking laws)
The Android Zip -

Extract it. It contains a flash.json file that needs to be located and used by flash tool.

Bios and installer zip (also contains README for help) -

The folder has the bios for the WINPE drive and Intel's flashtool for installing android.


Hi,
I’ve tried to install Android using this tuturial but my tablet goes to a black screen and don’t turn on again.
I’ve unplugged the battery, turned the tablet on again, but the screen remains black.
This tutorial is for Hi10 AIR version? There is Hi10 PRO files on the zip.

I’ll try to flash the BIOS using the CLAMP tutorial but I really want to use android on the tablet.
 

nikmag

Member
Mar 26, 2009
30
0
I followed DarkThanos guide on Deepin 15.11 (Debian 9 Kernel - Linux 5.3.13-xanmod9 (x86_64)) but I cannot see with input silead_ts drivers. After xinput_calibrator --output-type xinput I have Error: No calibratable devices found.
Any idea?
 
I followed DarkThanos guide on Deepin 15.11 (Debian 9 Kernel - Linux 5.3.13-xanmod9 (x86_64)) but I cannot see with input silead_ts drivers. After xinput_calibrator --output-type xinput I have Error: No calibratable devices found.
Any idea?

I think in my case (Manjaro, Arch based), both libinput and evdev where installed by default, while on my first try on Ubuntu, I had to follow @aveemashfaq 's info to install evdev. The xinput-calibrator failed for me. Just for reference I am talking about this post:

You need to remove libinput and replace it with evdev drivers and add the touchscreen firmware for touchscreen to work.

Run the following command in terminal
Code:
sudo apt remove xserver-xorg-input-libinput
sudo apt install xserver-xorg-input-evdev
sudo apt install xinput-calibrator

This sets up the necessary software for touchscreen to work. Then download the touchscreen drivers from the first post and copy them into this location /lib/firmware/silead/mssl1680.fw That means that you have to create a directory called silead inside /lib/firmware and rename your pasted file to mmsl1680.fw Then use the "Calibrate Touchscreen" app that you have just installed to finish off the calibration.

To make it permanent, you have to copy the information into /usr/share/X11/xorg.conf.d/99-calibration.conf

Try installing evdev if not already installed.
Code:
sudo apt install xserver-xorg-input-evdev

Also check the xorg log for errors.
Code:
sudo cat /var/log/Xorg.0.log
 
Last edited:

nikmag

Member
Mar 26, 2009
30
0
Thanks Thanos Ευχαριστώ. I had already installed evdev after deleting libinput. I will check log. I am afraid that the kernel is the problem.
 

nikmag

Member
Mar 26, 2009
30
0
I installed Manjaro but still to touchscreen.I run xinput but no silead_ts driver. Windows 10 work perfect. Very strange. Bios issue?

6.279655] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 6.279705] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 6.280129] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360707
[ 6.280239] axp20x-i2c i2c-INT33F4:00: AXP20x variant AXP288 found
[ 6.376671] axp20x-i2c i2c-INT33F4:00: AXP20X driver loaded
[ 6.467624] tpm_tis MSFT0101:01: IRQ index 0 not found
 

beber666

Member
Jul 30, 2008
10
1
Hi,
I’ve tried to install Android using this tuturial but my tablet goes to a black screen and don’t turn on again.
I’ve unplugged the battery, turned the tablet on again, but the screen remains black.
This tutorial is for Hi10 AIR version? There is Hi10 PRO files on the zip.

I’ll try to flash the BIOS using the CLAMP tutorial but I really want to use android on the tablet.

Hello

Did you solved your issue? I was intersted as well to install Android on my Hi 10 Air tablet

Thanks !
 

wwortel

Member
Oct 17, 2010
45
5
Help wanted to get accelerometer working (Hi10 Air)

Brand new Hi10 Air (type CW1529, Q64G1908xxxx)
First tried Debian Live 10.2 but although from the USB stick it manages to get wifi working, the install on the internal eMMC in the end lacks any wifi and even a network manager.
Then tried Manjaro with LXQt (5.4.2-1-MANJARO, Juhraya, rel 18.1.4). The install process went smooth.
Much works right away and adding firmware for the touchscreen also brought that up and running.
The problem is the automatic screen rotation.
There is an I2C device 'BOSC0200', supposedly an accelerometer, but the driver that should serve it, bmc150_accel_i2c, protests because it does not know chip-id '3'.
'i2cget -f 2 0x18 0x00' (accelerometer) indeed gives 0x03.
'i2cget -f 2 0x18 0x40' (magnetometer) gives 0xC6.
I2C slave address 0x18 is not a BMC150 (0x10 or 0x11 and a separate address for 0x12 or 0x13 for the magnetometer) and indeed the chip id is also different.
The source code of the driver has no device with an ID '0x03' and thus throws the error.
QUESTION: which accelerometer chip has I2C slave addres 0x18 and in register 0x00 the ID '03' and is there a driver for it??
 

Lookanio

Member
Dec 27, 2018
7
0
{...}
The problem is the automatic screen rotation.
There is an I2C device 'BOSC0200', supposedly an accelerometer, but the driver that should serve it, bmc150_accel_i2c, protests because it does not know chip-id '3'.
'i2cget -f 2 0x18 0x00' (accelerometer) indeed gives 0x03.
'i2cget -f 2 0x18 0x40' (magnetometer) gives 0xC6.
I2C slave address 0x18 is not a BMC150 (0x10 or 0x11 and a separate address for 0x12 or 0x13 for the magnetometer) and indeed the chip id is also different.
The source code of the driver has no device with an ID '0x03' and thus throws the error.
QUESTION: which accelerometer chip has I2C slave addres 0x18 and in register 0x00 the ID '03' and is there a driver for it??

I have the same issue. Likely, we received another (newer?) revision of this tablet :(
BTW Starting from kernel 5.4 wayland works really great. Tested it with Gnome and sway.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    Disclaimer: I got this device from the Manufacturer to test Linux on it. The below findings are my own and express my own opinion.

    Specs and short review:

    • Intel Atom x5-Z8350 CPU (4x1,92 GHz)
    • Intel Integrated GPU
    • 1920x1200 10.1" IPS Screen
    • 4GB RAM
    • 64GB Internal Storage
    • 1 x USB C
    • 1 x USB Micro B
    • 1 x Mini HDMI
    • Bluetooth 4.2
    • 2.4GHz WiFi
    • Rotation Sensor
    • Front and Back Camera
    • Mico SD Card slot up to 400GB (Website claims 64GB but I sucessfully tested it with an 128GB Card that uses the SDXC Standard)
    • Headphone Jack
    • Stereo Speakers
    • Keyboard Dock Support
    • Touchpen support

    The Chuwi Hi10 Air is a compact 10.1" Tablet running a Windows 10. It has a sturdy Aluminium Body and the overall build quality is astonishing.

    The speakers are surprisingly good for a tablet in that price segment. Paired with Bluetooth, a headphone jack and the 1920x1200 WUXGA display it's perfect for all kind of Media Playback. The battery is powerful enough to easily survive a few Movies. The optional detachable keyboard is a welcome addition for when you need to write some text.

    The keyboard is nice to type on, but I had cases where it would send keys out of nowhere. I can't guarantee that's not caused by the few drops of water I accidentally spilled on the connection to the tablet at some point. I'm not a big fan of the trackpad, mainly because it's way to small to be usable for me but that might be because I am used to the trackpad on my 15" MacBook Pro.

    The Touchpen is very accurate thanks to the digitizer, however the touchscreen does not send different signals for Pen and Finger to the System. That means trying to take notes while resting your hand on the screen doesn't really work.

    Sadly, the full Windows 10 install user experience is really impacted by the entry level Intel Atom Z8350. It's just not powerful enough to accomplish any advanced tasks.

    However, Chuwi sent me the device to bring linux to it, so that's what I did. This allows us to use lighter Window Managers and therefore more resources for actual tasks, resulting in a better performance.


    Install Linux
    First of all you need to install Linux on the tablet. That means you will erase your internal Windows installation, so make sure to either do a backup of it, or at least make yourself familiar with how to reinstall Windows in case it's needed.

    Please note that you can NOT install Linux on an SDCard because the BIOS can not boot from the SDCard.

    Backup
    You can find the Hi10 Air Windows drivers here:
    https://forum.chuwi.com/forum.php?mod=viewthread&tid=6861
    And a guide here (applies for the Hi10 Air too):
    https://forum.chuwi.com/forum.php?mod=viewthread&tid=15&page=7#pid29091
    https://forum.chuwi.com/thread-15-1-1.html

    Install
    Next up, it's time to choose your Linux distro.
    I recommend anything that is based on Arch Linux and that uses either LightDM or lxdm, because that is what my guide will be using to setup certain features. Of cause you're free to choosewhatever you want.

    That means you could for example use Antergos, an ArchLinux based distro that includes Desktop managers (for Antergos I recommend XFCE), or go the hard way and install ArchLinux from scratch and use lxdm with LXQt. LXQt proved to me to be the best lightweight and yet High-DPI friendly Desktop Environment, so that's what I used.

    I trust you will be able to find the guides on how to install either with a quick Google search, so I will not go much further into detail here.
    To get into the boot menu, you need to press F7.

    After your installation is done most things are already working.

    Fixing Remaining Issues
    Out of the box, there are a few issues and things that do not work because they are missing drivers or similar.

    Automatic Rotation
    We're getting started with the most important which is rotation.

    As you'll need to enter a couple commands to get automatic rotation working, start off with manually rotating the screen by opening a terminal and run the command
    Code:
    xrandr -o left
    Note: xrandr is part of xorg-xrandr, and you will need that package for autoration to work.

    There are a couple solution on how to rotate the screen out there, however I decided to go for the one with least overhead that looked the cleanest to me.

    First of all, compile the 2in1screen binary. The sourcecode can be found on my GitHub. Download, compile it and push it to /usr/local/bin.

    Note: Make sure to install xorg-xrandr and xorg-xinput for this tool to work.

    Code:
    wget https://raw.githubusercontent.com/Myself5/Chuwi_Hi10_Air_Linux/master/2in1screen.c
    gcc -O2 -o 2in1screen 2in1screen.c
    sudo mv 2in1screen /usr/local/bin/
    sudo chmod +x /usr/local/bin/2in1screen

    Now configure the Desktop Manager to start it after login.

    LXDE: add
    Code:
    /usr/local/bin/2in1screen &
    to
    Code:
    /etc/lxdm/PostLogin

    LightDM: Place the screenrotate.sh in /etc/lightdm/screenrotate.sh and set
    Code:
    display-setup-script
    in
    Code:
    /etc/lightdm/lightdm.conf
    to
    Code:
    display-setup-script /etc/lightdm/screenrotate.sh

    screenrotate.sh
    Code:
    #!/bin/bash
    pkill -9 2in1screen
    /usr/bin/2in1screen &

    Reboot and make sure everything works as desired.

    Touchscreen
    The Hi10 Airs Silead touchscreen requires drivers that are not bundled with a Linux install. You can download them here: https://github.com/onitake/gsl-firmware/tree/master/firmware/linux
    See the Readme on how to install them.

    These drivers get loaded by the Linux kernel. I submitted a commit to add support for the Hi10 Air to the Linux Kernel and it has been approved. The commit is merged in the 5.1 (and newer) Kernel. That means you need to update your kernel for a proper touch support.

    If you previously used my Kernel you can go back to the official kernel by running:
    Code:
    sudo pacman -R linux-chewbacca linux-chewbacca-headers
    sudo pacman -Syu linux linux-headers
    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Now reboot and enjoy your touchscreen.

    Audio
    If your Audio isn't working, make sure to update the alsa-lib to Version 1.1.7 or above. On Arch that package is in the stable repos so a
    Code:
    sudo pacman -Syu
    will be enough.

    Bluetooth
    Install blueman and follow the firmware instructions mentioned here:
    https://github.com/lwfinger/rtl8723bs_bt/issues/28#issuecomment-432806835

    Which means you need to clone https://github.com/lwfinger/rtl8723bs_bt
    and run
    Code:
    sudo cp rtlbt_fw /usr/lib/firmware/rtl_bt/rtl8723bs_fw.bin
    sudo cp rtlbt_config /usr/lib/firmware/rtl_bt/rtl8723bs_config.bin
    cd /usr/lib/firmware/rtl_bt
    sudo ln -s rtl8723bs_config.bin rtl8723bs_config-OBDA8723.bin

    General UI
    Now, you probably already noticed, everything is a bit small to use your Fingers.

    As a browser I recommend Google Chrome as that has a great touchscreen UI already.

    For File browsing and reading I suggest using nautilus and evince because of their touch friendlyness.

    System DPI
    For the whole system, there is a few things you can improve:
    First of all, increase the general DPI.
    You can do so by adding
    Code:
    Xft.dpi: 150
    to
    Code:
    ~/.Xresources
    . If the file doesn't exist, create it.

    LXQt Tweaks
    Next up a few additional tweaks for LXQt:
    First of all increase the Panel bar
    Rightclick on the Panel and Press "Configure Panel". Then set the Size to 50px and the Icon Size to 30px.

    Next up, Go to the Menu -> Preferences -> LXQt settings -> Appearance -> Font and set the DPI to 96
    and finally go to Menu -> Preferences -> LXQt settings -> OpenBox Settings -> Font and increase the individual fonts to get a window title bar to drag/drop as well as hit the navigation with the finger. I set mine to Cantarell 16 and Cantarell 14.

    Install OnBoard
    Another Handy feature I found myself in need of was an onscreen keyboard. For that I installed OnBoard, and found a very neat feature here: https://bugs.launchpad.net/onboard/+bug/1232107

    You can map a button to open/close the keyboard.
    I set mine to Super L, which equals the left Windows button and the touch button on the tablet itself.

    In the LXQt Settings Menu you can configure Shortcut Keys.
    Create or edit the existing shortcut and either map the following DBus Call.

    DBus Call:
    Service:
    Code:
    org.onboard.Onboard
    Path:
    Code:
    /org/onboard/Onboard/Keyboard
    Interface:
    Code:
    org.onboard.Onboard.Keyboard
    Method:
    Code:
    ToggleVisible

    If your Desktop environment doesn't support DBus calls, use the following command:
    Code:
    dbus-send --type=method_call --dest=org.onboard.Onboard /org/onboard/Onboard/Keyboard org.onboard.Onboard.Keyboard.ToggleVisible
    4
    Hardware mod to make Chuwi faster

    I have experience with these chinese thin and light laptops. They usually skip out on heat sinks. I suspected the same case here and it is definitely true. As it turns out, there is a small thermal pad on the processor which is stuck on to a laminated steel shield that works as a heat sink.:eek::eek::eek: I decided to do something about it. I added a heatsink and the results are nothing short of mind boggling.

    First step is to open up the four screws on the four corners of tablet. We use a T5 screw driver for it.
    IMG_20190717_155259.jpg
    After that, we need to pry open the back aluminium panel and separate it from the front panel. I have marked locations where you can insert your tool without any worries. Other places have some component which might get damaged in the process. Please note that this view is of the back side of the tablet and if you have the screen side facing up, the locations will be mirrored.
    IMG_20190717_154400.jpg
    It is a good idea to detach the battery first before we do any sort of mods to our tablet. Here is the battery connection which you need to unplug first. Here it is in the unplugged position
    IMG_20190717_154456.jpg
    Then we pry out the steel shield with a screw driver. Look at the position where it is safe to pry from this image. The white border is the outline of where the steel shield is. Please note that the new heat sink is already attached in this image.
    IMG_20190717_154520.jpg
    The steel shield is pretty much useless for heat dissipation. It more or less protects the heat from escaping into the aluminium body of the tablet. Here is an image of how the shield looks like from both sides.
    IMG_20190717_153950.jpg
    IMG_20190717_153956.jpg
    You can see that it is pretty much useless with laminated back which is a heat insulator and thermal pads which are not efficient in heat conduction at all. We have to replace it with the heat sink of our choice.

    You have aluminium and copper plates that are precut to the size of the processor that we can use. You can find them on online stores. I had an aluminium heat sink at home from another DIY project. So, I took that and chopped down the fins. This is time consuming and I suggest that you prefer buying a copper plate of 20mmx20mm instead. Anyways, this is what I did.
    IMG_20190717_154144.jpg
    I took that aluminium heat sink and chopped the fins off of it. I glued it on to the processor using thermal glue.
    IMG_20190717_153935.jpg
    It is important to use Thermal plaster because you don't have any mounting holes and there is slight risk that the heatsink will move around and short the connections. I applied the thermal paste onto the heat sink, stuck the heatsink on the processor and let it dry for 30 minutes.
    IMG_20190717_153427.jpg
    It adds enough thickness to the processor that now the processor can come in contact with the aluminium body. So, apply thermal paste on top of the heat sink as well and then put the back panel on. Don't forget to connect the battery wire before putting the panel on.

    After that, boot up your laptop and you can instantly see the difference. Earlier, the atom would thermal throttle with 15 seconds of usage and the speed would decrease considerably. it was laggy as hell. Now, I don't see any thermal throttling at all. It is responsive from the get go. I can watch full HD youtube videos without a lot of framedrops. The only caveat, the backside gets warm and with a full load on CPU for extended periods of time, it gets hot to around 50c. But performance is so good that I use it as daily driver to browse the web. Don't expect i3 levels of performance though.
    2
    Thank you @Myself5 for the guide and all the other people here that posted tips and codes.
    I usually run Ubuntu but since on Arch Linux most things were working out of the box, I installed Manjaro on my new Chuwi Hi10 Air.

    In my case, of the touchscreen, xinput_calibrator was not working on Manjaro or on Ubuntu. I manually calibrated the touchscreen with the evdev driver.

    So, I just created the config file
    Code:
    sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf
    Contents of 99-calibration.conf:
    Code:
    Section "InputClass"
    	Identifier	"touchscreen"
    	MatchProduct	"silead_ts"
    	Driver	"evdev"
    	Option	"Calibration"	"5 1265 80 1960"
    	Option	"SwapAxes"	"1"
    EndSection

    As @Myself5 said, our kernel has to be 5.1 or better.
    Code:
    $ uname -r
    5.3.12-1-MANJARO
    On Ubuntu you can install/unistall/manage kernels easily using the ukuu app.

    You will also need to download the touchscreen driver files, as described on the previous posts:
    Code:
    sudo mkdir /lib/firmware/silead/
    sudo wget -O /lib/firmware/silead/gsl1680-chuwi-hi10-air.fw https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl1680-chuwi-hi10-air.fw
    sudo cp /lib/firmware/silead/gsl1680-chuwi-hi10-air.fw /lib/firmware/silead/mssl1680.fw

    Then reboot and check that the touchscreen is listed on your devices, as "silead_ts"
    Code:
    $ xinput
    ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
    ⎜   ↳ silead_ts                               	id=10	[slave  pointer  (2)]
    ⎜   ↳ HS-C109S-US-01-00- USB Keyboard Mouse   	id=14	[slave  pointer  (2)]
    ⎜   ↳ HS-C109S-US-01-00- USB Keyboard Consumer Control	id=15	[slave  pointer  (2)]
    ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
        ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
        ↳ HS-C109S-US-01-00- USB Keyboard System Control	id=13	[slave  keyboard (3)]
        ↳ Power Button                            	id=6	[slave  keyboard (3)]
        ↳ bytcr-rt5651 Headset                    	id=9	[slave  keyboard (3)]
        ↳ Video Bus                               	id=7	[slave  keyboard (3)]
        ↳ HS-C109S-US-01-00- USB Keyboard Wireless Radio Control	id=17	[slave  keyboard (3)]
        ↳ HS-C109S-US-01-00- USB Keyboard Consumer Control	id=16	[slave  keyboard (3)]
        ↳ HS-C109S-US-01-00- USB Keyboard         	id=18	[slave  keyboard (3)]
        ↳ gpio-keys                               	id=11	[slave  keyboard (3)]
        ↳ Power Button                            	id=8	[slave  keyboard (3)]
        ↳ gpio-keys                               	id=12	[slave  keyboard (3)]

    Some more things...

    Gnome has a built in on board keyboard (since Gnome 3.28) that fires automatically when you click an input or if you swipe up from the bottom of the screen.

    Set frame buffer rotation (while boot and on CTRL+ALT+F<number>) on grub, by adding on the kernel parameters
    Code:
    video=efifb fbcon=rotate:1
    You can easily do that by installing the Grub Customizer and visiting the "General settings" tab, and adding the parameters under the kernel parameters.

    Rotating the login screen, configure you desktop screen and then copy your configuration to the login screen
    Code:
    sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/monitors.xml

    Commands to change on demand screen scale and orientation:
    Code:
    # DSI1 is my screen name, you can find your by running `xrandr`
    # Rotate to portrait mode
    xrandr --output DSI1 --rotate "normal"
    # Rotate to landscale
    xrandr --output DSI1 --rotate "right"
    # Scale screen
    xrandr --output DSI1 --scale 1.25x1.25

    Script to toggle screen rotation
    Code:
    #!/bin/sh
    
    # Get output
    info=`xrandr`
    expr='m/([a-zA-Z0-9_-]+) connected primary \d+x\d+\+\d+\+\d+ ([a-z]+|)/'
    
    # Get screen name
    match=${expr}';print $1;'
    display=`echo $info | perl -lne "$match"`
    
    # Get orientation
    match=${expr}';print $2;'
    orientation=`echo $info | perl -lne "$match"`
    
    #echo $display
    #echo $orientation
    
    # Toggle
    if [ "$orientation" = "right" ]; then 
    	xrandr --output "$display" --rotate "normal"
    else
    	xrandr --output "$display" --rotate "right"
    fi;
    # You can also change the scale by removing the # on the next line
    #xrandr --output "$display" --scale 1.25x1.25
    You can add a button to your GNOME top bar to call this script by installing the extension
    https://extensions.gnome.org/extension/1154/top-bar-script-executor/
    I created a "Toggle screen orientation" button y saving the script under `~/.scripts/orientation.sh` with the icon `object-rotate-left`
    2
    Does this do a total partition wipe? Can you install to the Android partition and keep windows?

    The Hi10 Air is Windows only, there's no Android on it.

    You could, however, resize the Windows Partition and install Linux alongside it. Generic Tutorials that float around the internet apply just fine here.

    For Tablets that have Android and Windows like the Hi10 Plus, I don't quite know how the Android system is setup there. As far as I know you can remove Android entirely though, then you can just follow the procedure to resize Windows and Install Linux alongside.
    1
    I got a Chinese manufactured pad-like device which is supported by the Linux mainline kernel and works pretty well except for the ****ty wifi chipset from Broadcom. That device has z8300 Soc and runs pretty well. I really like the On-The-Go device design as it is easy to carry around. Thanks for sharing!