# Minibook N4100 touch screen firmware Linux

**URL:** <https://forum.chuwi.com/t/topic/3367>\
**Category:** MiniBook\
**Created:** [November 22, 2019, 5:36pm UTC](https://forum.chuwi.com/t/topic/3367 "2019-11-22T17:36:20Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [November 22, 2019, 5:36pm UTC](https://forum.chuwi.com/t/topic/3367/1 "2019-11-22T17:36:20Z")

</div>

Hi,  
il installed Ubuntu 19.10.  
Impossible to have the touchscreen avalaible.

I tried this firmware [https://github.com/onitake/gsl-firmware](https://github.com/onitake/gsl-firmware) , the touch works but not in the good place.  
I tried different Coordinate Transformation Matrix but no way.

Is there a special firwmare for the minibook ?  
Thx

Vincent

---

<div class="post-metadata">

**Author:** ![white\_sheep](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/white_sheep/32/2014_2.png) [@white\_sheep](https://forum.chuwi.com/u/white_sheep)\
**Post date:** [March 13, 2020, 10:39pm UTC](https://forum.chuwi.com/t/topic/3367/2 "2020-03-13T22:39:15Z")

</div>

Hi Vince,  
did you find the solution?

---

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [March 16, 2020, 8:42am UTC](https://forum.chuwi.com/t/topic/3367/3 "2020-03-16T08:42:16Z")

</div>

No solution yet. I had a big problem with the bios (without flashing) when i activated Linux as OS (black screen), obliged to return to the factory, 3 months for the repair and return …  
If you find a solution, i m interested.  
Best ,

---

<div class="post-metadata">

**Author:** ![white\_sheep](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/white_sheep/32/2014_2.png) [@white\_sheep](https://forum.chuwi.com/u/white_sheep)\
**Post date:** [March 16, 2020, 9:29pm UTC](https://forum.chuwi.com/t/topic/3367/4 "2020-03-16T21:29:12Z")

</div>

I followed the gslx680\_ts\_acpi step in [https://github.com/onitake/gsl-firmware](https://github.com/onitake/gsl-firmware) (using firmware in [http://www.mediafire.com/file/b1ccd9mqvxphuox/Mini\_Book-drivers.rar/file](http://www.mediafire.com/file/b1ccd9mqvxphuox/Mini_Book-drivers.rar/file) ). Touch now works, not perfectly but works. Tomorrow i will try another way to stabilize the touchscreen

---

<div class="post-metadata">

**Author:** ![spikerguy](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/spikerguy/32/1971_2.png) [@spikerguy](https://forum.chuwi.com/u/spikerguy)\
**Post date:** [March 16, 2020, 11:01pm UTC](https://forum.chuwi.com/t/topic/3367/5 "2020-03-16T23:01:01Z")

</div>

Looks like the firmware files will work fine if installed correctly.

If they’re for the same device as mentioned in the git repo and if the device have the same model of the touchscreen controller chip then it should work.

@white_sheep how did you install the firmware?

---

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [March 17, 2020, 8:28am UTC](https://forum.chuwi.com/t/topic/3367/6 "2020-03-17T08:28:23Z")

</div>

@white_sheep  
you say: doesn’t work perfectly, Is it usable?  
I can also get the touchscreen to work, but there’s a problem with the position. When you touch one place, the cursor appears in another place.

---

<div class="post-metadata">

**Author:** ![exel](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@exel](https://forum.chuwi.com/u/exel)\
**Post date:** [March 31, 2020, 10:40am UTC](https://forum.chuwi.com/t/topic/3367/7 "2020-03-31T10:40:53Z")

</div>

I got the touchscreen working using the [extracted firmware](https://filebin.ca/5HV60JIUngWr/mssl1680.fw) from the windows drivers with the tools from here: `github.com/onitake/gsl-firmware`

the file needs to be placed under: `/lib/firmware/silead/mssl1680.fw` in order to be found by `silead` kernel module which needs to be present and loaded. this way he touchscreen gets recognized.

the next problem is the callibration. I used `https://github.com/reinderien/xcal` to calibrate the screen (note that I had to select disable rotation: no)

the libintput rotation matrix that I ended up with is

```auto
-0.003622923570787379 3.709528216791325 -0.004723837559728938 
 2.442943240520969 -0.014587762028163658 -0.008818738010799037 
 0.0 0.0 1.0

```

I modified the script from rubo77s script ([https://pastebin.com/ha3twD3Q](https://pastebin.com/ha3twD3Q)) to automatically rotate the screen based on the sensors.

Im using nixos and had to configure everything by hand but more integrated distros like ubuntu might automate some of that.

hope it helps.

---

<div class="post-metadata">

**Author:** ![spikerguy](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/spikerguy/32/1971_2.png) [@spikerguy](https://forum.chuwi.com/u/spikerguy)\
**Post date:** [March 31, 2020, 5:15pm UTC](https://forum.chuwi.com/t/topic/3367/8 "2020-03-31T17:15:41Z")

</div>

Hello and welcome to the forum,

This is good to see chuwi device getting more linux support  
Nice work. Hope someone with minibook can make use of your finding.

Keep contributing.  
Thanks.

---

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [March 31, 2020, 5:37pm UTC](https://forum.chuwi.com/t/topic/3367/9 "2020-03-31T17:37:56Z")

</div>

“chuwi device getting more linux support” I wouldn’t go that far 😉

I have the same problem than Alda ([Linux on Chuwi Minibook 8](https://forum.chuwi.com/t/linux-on-chuwi-minibook-8/7071)) about linux installed on sata drive. I tested different kernel version and with the lastest 5.6 and the same problem. I can’t install ubuntu without errors, i can install fedora c31 and use it but sometimes i have some freezes. Dmesg return some errors about sata. The sollution will be to install Linux on the emmc memory but i prefere to keep windows on that.

In addition, I have a doubt about the stability of the machine. I just modified a parameter in the BIOS about OS feature and the result was a black screen with the impossibility to boot, obliged to return to the factory ☹

---

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [March 31, 2020, 6:55pm UTC](https://forum.chuwi.com/t/topic/3367/10 "2020-03-31T18:55:04Z")

</div>

@exel  
Thank you exel, i will test your matrix.

---

<div class="post-metadata">

**Author:** ![spikerguy](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/spikerguy/32/1971_2.png) [@spikerguy](https://forum.chuwi.com/u/spikerguy)\
**Post date:** [March 31, 2020, 7:56pm UTC](https://forum.chuwi.com/t/topic/3367/11 "2020-03-31T19:56:45Z")

</div>

> [@Vince](#):
>
> In addition, I have a doubt about the stability of the machine. I just modified a parameter in the BIOS about OS feature and the result was a black screen with the impossibility to boot, obliged to return to the factory ☹

This must be something from bios side, so maybe chuwi can fix such issues in the future.

Let’s hope for the best though 🙂 hopefully we will see many devices with linux pre-installed and officially supported.

---

<div class="post-metadata">

**Author:** ![exel](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@exel](https://forum.chuwi.com/u/exel)\
**Post date:** [April 1, 2020, 9:55am UTC](https://forum.chuwi.com/t/topic/3367/12 "2020-04-01T09:55:55Z")

</div>

I had the same problems with the sata and finally installed on the emmc drive because I thought the sata was just broken. Also I still cant get the system to predict the battery state.

Would be excited to see these things fixed.

The machine is cheap and good enough. Unfortunately there’s these problems with the bios (my fan won’t turn off) and the support (aka. bios updates via media fire links in this forum’) is a total joke…

---

<div class="post-metadata">

**Author:** ![Vince](https://avatars.discourse-cdn.com/v4/letter/v/b5e925/32.png) [@Vince](https://forum.chuwi.com/u/Vince)\
**Post date:** [April 1, 2020, 2:03pm UTC](https://forum.chuwi.com/t/topic/3367/13 "2020-04-01T14:03:11Z")

</div>

Yes i share your point of vue, in addition the linux compatibility is a joke 😉  
Too bad they had announced an official linux compatibility on chuwi’s official website ☹

I don’t dare to modify anything in the bios afraid of having to return it to the factory again, and for the flashing let’s not talk about it …

Concerning a linux support, let’s not talk about it, the only feedback I got on the touchsreen is that the minibook doesn’t support it under linux.

---

<div class="post-metadata">

**Author:** ![alda.cerny](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/alda.cerny/32/1877_2.png) [@alda.cerny](https://forum.chuwi.com/u/alda.cerny)\
**Post date:** [April 2, 2020, 5:56pm UTC](https://forum.chuwi.com/t/topic/3367/14 "2020-04-02T17:56:23Z")

</div>

> [@Vince](#):
>
> No solution yet. I had a big problem with the bios (without flashing) when i activated Linux as OS (black screen), obliged to return to the factory, 3 months for the repair and return …  
> If you find a solution, i m interested.  
> Best ,

i had the same problem, the solution was to disconnect the battery from the motherboard for about 1 hour \>\> then returned the BIOS to its original values and the laptop began working again

to do it I had to break the warranty sticker ☹

---

<div class="post-metadata">

**Author:** ![alda.cerny](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/alda.cerny/32/1877_2.png) [@alda.cerny](https://forum.chuwi.com/u/alda.cerny)\
**Post date:** [April 11, 2020, 3:44pm UTC](https://forum.chuwi.com/t/topic/3367/15 "2020-04-11T15:44:45Z")

</div>

> [@exel](#):
>
> I got the touchscreen working using the [extracted firmware](https://filebin.ca/5HV60JIUngWr/mssl1680.fw) from the windows drivers with the tools from here: `github.com/onitake/gsl-firmware`
> 
> the file needs to be placed under: `/lib/firmware/silead/mssl1680.fw` in order to be found by `silead` kernel module which needs to be present and loaded. this way he touchscreen gets recognized.
> 
> the next problem is the callibration. I used `https://github.com/reinderien/xcal` to calibrate the screen (note that I had to select disable rotation: no)
> 
> the libintput rotation matrix that I ended up with is
> 
> ```auto
> -0.003622923570787379 3.709528216791325 -0.004723837559728938 
> 2.442943240520969 -0.014587762028163658 -0.008818738010799037 
> 0.0 0.0 1.0
> 
> ```
> 
> I modified the script from rubo77s script ([#!bash# This script rotates the screen and touchscreen input 90 degrees each t - Pastebin.com](https://pastebin.com/ha3twD3Q)) to automatically rotate the screen based on the sensors.
> 
> Im using nixos and had to configure everything by hand but more integrated distros like ubuntu might automate some of that.
> 
> hope it helps.

hi exel, thank you for your message

I’m trying ubuntu 20.04 (beta), the screen rotation works great (the screen rotation works out of the box)

I’m trying to make the touch screen work - there is my problem  
I uploaded the file mssl1680.fw to /lib/firmware/silead/mssl1680.fw - the touch screen began work, but as exel wrote, the problem is with calibration,  
i tried calibrate it via xcal ([GitHub - reinderien/xcalibrate: X.org touchscreen calibrator](https://github.com/reinderien/xcal)) but it doesn’t work in ubuntu 20.04 and i don’t know how it do it  
is there somebody, who did it in ubuntu and can help me with calibration?

thank you

---

<div class="post-metadata">

**Author:** ![spikerguy](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/spikerguy/32/1971_2.png) [@spikerguy](https://forum.chuwi.com/u/spikerguy)\
**Post date:** [April 11, 2020, 10:51pm UTC](https://forum.chuwi.com/t/topic/3367/16 "2020-04-11T22:51:36Z")

</div>

Hello,  
Have you tried xinput calibrate?  
Here is a very old tutorial on how to calibrate touchscreen.  
[https://www.thefanclub.co.za/how-to/how-ubuntu-1204-touchscreen-calibration](https://www.thefanclub.co.za/how-to/how-ubuntu-1204-touchscreen-calibration)  
Someone with good linux knowledge who have the device to test can help. As I don’t have the device I can only point you in the right direction but cannot really get things working.

All the best.

---

<div class="post-metadata">

**Author:** ![alda.cerny](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/alda.cerny/32/1877_2.png) [@alda.cerny](https://forum.chuwi.com/u/alda.cerny)\
**Post date:** [April 12, 2020, 11:40am UTC](https://forum.chuwi.com/t/topic/3367/17 "2020-04-12T11:40:26Z")

</div>

hi spikerguy, at first thank you for your message and for your link

utouch is not available in ubuntu 20.04, so i installed only xinput-calibrator, but the output of this was this:

> Calibrating standard Xorg driver “silead\_ts”  
> current calibration values: min\_x=0, max\_x=65535 and min\_y=0, max\_y=65535  
> If these values are estimated wrong, either supply it manually with the --precalib option, or run the ‘get\_precalib.sh’ script to automatically get it (through HAL).  
> → Making the calibration permanent ←   
> copy the snippet below into ‘/etc/X11/xorg.conf.d/99-calibration.conf’ (/usr/share/X11/xorg.conf.d/ in some distro’s)  
> Section “InputClass”  
> Identifier “calibration”  
> MatchProduct “silead\_ts”  
> Option “MinX” “32207”  
> Option “MaxX” “32184”  
> Option “MinY” “14600”  
> Option “MaxY” “14454”  
> Option “SwapXY” “1” # unless it was already set to 1  
> Option “InvertX” “0” # unless it was already set  
> Option “InvertY” “0” # unless it was already set  
> EndSection

i think, that MinX, MaxX, MinY, MaxY have wrong values  
i tried instruction from your link or from this link [Chuwi Hi10 Air Linux Installation Guide | Page 5 | XDA Forums](https://forum.xda-developers.com/showpost.php?p=80497141&postcount=86) but unfortunately nothing works (maybe I did it wrong)

I tried this tutorial [Ubuntu 18.10 calibration. · Issue #95 · onitake/gsl-firmware · GitHub](https://github.com/onitake/gsl-firmware/issues/95) and make script

> #!/bin/bash
> 
> set -e
> 
> TOUCHSCREEN=‘silead\_ts’  
> XDISPLAY=‘DSI-1’  
> TRANSFORM=‘libinput Calibration Matrix’
> 
> X\_SCALE=2.17  
> Y\_SCALE=3.22  
> X\_OFFSET=-0.045  
> Y\_OFFSET=-0.004
> 
> if [-z “$1”]; then  
> ROTATION=right  
> else  
> ROTATION=$1  
> fi
> 
> xrandr --output $XDISPLAY --rotate $ROTATION  
> xinput set-prop ‘silead\_ts’ --type=float “$TRANSFORM” 0 $Y\_SCALE $Y\_OFFSET $X\_SCALE 0 $X\_OFFSET 0 0 1  
> xinput --map-to-output “$TOUCHSCREEN” “$XDISPLAY”

the touchscreen works better, but it is not exactly calibrated yet  
I don’t know how to calculate X\_SCALE, Y\_SCALE, X\_OFFSET and Y\_OFFSET for Chuwi Minibook yet

maybe it will help someone or someone tell me how to do it

---

<div class="post-metadata">

**Author:** ![alda.cerny](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/alda.cerny/32/1877_2.png) [@alda.cerny](https://forum.chuwi.com/u/alda.cerny)\
**Post date:** [April 12, 2020, 6:09pm UTC](https://forum.chuwi.com/t/topic/3367/18 "2020-04-12T18:09:04Z")

</div>

hi, i am idiot 😀  
the value for X\_SCALE, Y\_SCALE, X\_OFFSET and Y\_OFFSET can i take from @exel, so the script is now:

> #!/bin/bash
> 
> set -e
> 
> TOUCHSCREEN=‘silead\_ts’  
> XDISPLAY=‘DSI-1’  
> TRANSFORM=‘libinput Calibration Matrix’
> 
> X\_SCALE=2.442943240520969  
> Y\_SCALE=3.709528216791325  
> X\_OFFSET=-0.014587762028163658  
> Y\_OFFSET=-0.004723837559728938
> 
> if [-z “$1”]; then  
> ROTATION=right  
> else  
> ROTATION=$1  
> fi
> 
> xrandr --output $XDISPLAY --rotate $ROTATION  
> xinput set-prop ‘silead\_ts’ --type=float “$TRANSFORM” 0 $Y\_SCALE $Y\_OFFSET $X\_SCALE 0 $X\_OFFSET 0 0 1  
> xinput --map-to-output “$TOUCHSCREEN” “$XDISPLAY”

it looks like it works 👍

---

<div class="post-metadata">

**Author:** ![spikerguy](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.chuwi.com/spikerguy/32/1971_2.png) [@spikerguy](https://forum.chuwi.com/u/spikerguy)\
**Post date:** [April 12, 2020, 9:38pm UTC](https://forum.chuwi.com/t/topic/3367/19 "2020-04-12T21:38:31Z")

</div>

Yeayyy finally. Good news that touch screen works fine 😉
