[Hi10 Plus] Ubuntu 20.04 Mate on Hi10Plus

Nice! Thanks for sharing the tip bout the rotation. I’ll insert on main thread.

Regarding the cameras, I don’t remember if I tried to use them. Have you tried using a LTS version, not a 20.04, but the 18.04.4?

I do not own the chuwi anymore, so I cannot test. But, good luck

Manjaro doesn’t boot. Don’t know why. But thanks to your clue my sound works using KDE plasma based flavours (Ubuntu 19 not 18.4)

See you

Great Tutorial! Month ago I’d successfully installed Ubuntu-Mate 19.01 beside Win10, without Android at a separate partition (my favourite Xubuntu doesn’t support most things out of the box). Boot process not solved, SwitchNow is disabled and while booting I’ve to press F7 for UEFI boot menu to boot into Ubuntu. Now I tried to make an upgrade to 20.04 LTS, but it fails and so it was a clean installation of 20.04 - it works out of the box, again without silead touch support. unfortunately I don’t have my old .fw file. My Log say’s that my Chuwi Hi10 pro is searching for "silead_ts i2c-MSSL0017:00: Direct firmware load for silead/mssl0017.fw " - your blog link to onitake doesn’t references correct. I’ve found this link for Chuwi Hi10 plus: https://github.com/onitake/gsl-firmware/tree/master/firmware/chuwi/hi10_plus
But which file is correct, the firmware.fw or silead_ts.fw or something from folder below? And should I rename this to mssl0017.fw as seen in my log?
Thanks, Lutz

Sure that the kernel driver for silead touch firmware is included in Mate 20.04 or it’s neccessary to build a .ko ? (at ubuntu 18 it was neccessary, see: https://github.com/onitake/gslx680-acpi )
And do you have a working Stylus (HiPen2)?

I do not own a Chuwi anymore to help you out with this, but trying this will not damage your stuff… if it doesn’t work and you want to change back, just undo the renaming and folder movings.

Hey man… in order to make the dualboot work, things change a bit from what I’ve put on thread post. I have never had the intention of dualbooting so those instruction abore are not meant to this, but… you may try doing this:

  1. Rename the folder ‘/efi/EFI/Microsoft’ -> ‘/efi/EFI/Microsoft2’
  2. Update GRUB in order to ‘detect’ the new path for M$Win efi files.
    $ sudo update-grub
  3. Now, rename Ubuntu folder as -> ‘Microsoft’.
  4. Inside the new ‘Microsoft’ (Ubuntu) folder, create a new folder called ‘Boot’ and put everything to this new folder.
  5. Rename shimx64.efi to bootmgfw.efi.

Concept here:

Just after the BIOS POST, a built-in “program” is called where it present us the dual boot order. Android, or Windows. This program has routines for searching and picking ‘default’ filepaths.

For instance, for this program boot Windows, it needs to find an EFI partition, and this partition must have the following file in the following path: ‘/efi/EFI/Microsoft/Boot/bootmgfw.efi’. If it’s not like that, or mispelled, missing a character, it won’t work.

1 Like

You do not need to build the kernel objects. It’s easier than you imagine…

Just go tho this website: https://github.com/onitake/gsl-firmware/tree/master/firmware/linux/silead

There you may download the appropriate firmware. They’ve corrected the filename (changelog: fixed mistypo). That’s why that link I provided is not working anymore:
https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl1680-chuwi-hi10plus.fw

1 Like

puedes hacer un vídeo de la instalación de los draivers del touch?

adicional si tienes los draivers de la cámara y micrófono?

Silead workaround:
Sure! Here it is! > https://youtu.be/KJbFaHRZDgg
The video description comments each command, if you have any doubts.

Camera, microphone:

I haven’t noticed the missing camera and microphone functionality when I was using the system, so I didn’t look for fixing or attempt workarounds.

I would need to investigate but I do not own this Chuwi anymore. If you’re not experienced with this, the only thing I might recommend then is to wait a kernel release with built-in “drivers”.

When I was trying to find a fix for touch issue I searched using:

$ dmesg | grep ‘silead’

To point for boot errors regarding the silead device. You may replace ‘silead’ for another string, such as ‘micro’ and ‘camera’ and try checking the output.

Hey,
Looks like what you had done on chromium custom flags 2 years ago, I got to do the same thing now.


reference to this video I just saw.

I released a Chromium-armv7 base package to run libwidevine :wink:
Nice.

I was using kusti8 release, but since it installs as a “chromium” package, it conflicts dependencies when apt-get updates… would you release as an another package? Github?

Well I have packaged it for Manjaro Arm aarch64 and it can also be used with Arch Linux Arm aarch64.
It launches chromium inside a docker image with hw acc and libwidevine.

muchas gracias por el video

Hi guys,
I need help.
I want replace windows with linux, but how can I install Ubuntu while keeping Android. How can I organize the partition?
Thanks

  1. You will need to identify and delete Windows-related partitions only. The partitions which contains Windows and MSR ‘system-reserved’.

Important: Do not delete EFI partition. It contains boot files for all operational systems. If you delete it, Android will not boot.

  1. Install/format steps:
    I. Create a SWAP partition and
    II. Create the partition where Ubuntu will be installed. Set it as mounting point for /
    III. Do not delete or modify EFI partition anyhow.
    IV. Proceed with installation.
    V. After conclusion of installation stay on live install. Do not reboot.

After the conclusion there will still have a dual boot loader for Android and Windows. What you need to do next is to replace Microsoft EFI file by an Ubuntu EFI file.

  1. Copy what is inside /boot/efi/EFI/Ubuntu to /boot/efi/EFI/Microsoft/Boot
  2. Rename shimx64.efi to bootmgfw.efi.

Now whenever you boot for Windows, it will actually boot for Linux. We gotta do this because the EFI file path “BIOS” is set to only read specific paths for Android and Windows, forced by the manufacturer.

1 Like

Hey Hello People!

Any chance to sucesfully install touchscreen driver on the latest Ubuntu MATE 21.04 ?
Copying gsl1680-chuwi-hi10plus.fw to /lib/firmware/silead/
Is not doing anything…

How to compile driver for this tablet…

I find this :

gslx680-acpi/README.md at master · onitake/gslx680-acpi · GitHub

And that: vi8/Ubuntu_instructions.md at master · Manouchehri/vi8 · GitHub

Tryed with 20.04 as well… same results… touch screen does not work.

Any idea for this @manonegra222 ?

dmesg | grep ‘silead’

says does not find mssl0017.fw or something in the silead dir so i
renamed to this and restart… After reboot behive like touchpad+right
button
https://youtu.be/jCb2rmAA5cM… Same behaving when use my finger.

Onitake says, who have this repo: https://github.com/onitake/gsl-firmware

“If it’s searching for mssl0017.fw instead of the proper firmware file
that you installed, that means you’ve got a device that isn’t supported
yet. Some vendors change their hardware in the middle of a product
cycle, which causes compatibility issues.”

I just share this info couse i see @LuRhe Has the same isue, and does not responded after @candidosobrinho.sa Shared the correct link to the firmware, which is clearly not working on my Hi10 Plus. Im curious @LuRhe can use his hipen couse i have too… or the same like me no succes with those …

How to enable touch screen in ubuntu:

  1. To do this, you need to: download this file gsl1680-chuwi-hi10plus.fw
  2. Next, you need to copy it along the path /lib/firmware/silead, the silead folder must be created if you do not have it.
  3. Rename gsl1680-chuwi-hi10plus.fw to mssl0017.fw
  4. We reboot. And see if it worked. If so, it needs to be calibrated, because not the entire area may work for you.
  5. xinput-calibrator doesn’t work here. Enter the command into the console:
    xinput set-prop 'silead_ts' --type=float 'libinput Calibration Matrix' 2.15, 0, 0, 0, 3.22, 0, 0, 0, 1
    and check by clicking on the screen if everything is ok.
  6. If all is well, you need to make sure that this calibration is applied when starting ubuntu. Create a text file 98-touchscreen-cal.rules on /etc/udev/rules.d/ and write to it:
    ATTRS{name}=="silead_ts", ENV{LIBINPUT_CALIBRATION_MATRIX}="2.15 0.0 0.0 0.0 3.22 0.0"
  7. Reboot and see the result.
    The silead_ts name may vary. So write down the value according to yours. You can find it out by entering the xinput -list command (should be entered after copying the driver)
    I don’t know if it will work on other distributions, but on the ubuntu family it should
1 Like