Minibook N4100 touch screen firmware Linux

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

I tried this 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 ?


Hi Vince,
did you find the solution?

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 followed the gslx680_ts_acpi step in (using firmware in ). Touch now works, not perfectly but works. Tomorrow i will try another way to stabilize the touchscreen

1 Like

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?

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.

I got the touchscreen working using the extracted firmware from the windows drivers with the tools from here:

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 to calibrate the screen (note that I had to select disable rotation: no)

the libintput rotation matrix that I ended up with is

-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 ( 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.


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.

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

I have the same problem than Alda (Linux on Chuwi Minibook 8) 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 :frowning:

Thank you exel, i will test your matrix.

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

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

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…

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

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.

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 :frowning:

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 ( 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

Have you tried xinput calibrate?
Here is a very old tutorial on how to calibrate touchscreen.
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.

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 ‘’ 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

i think, that MinX, MaxX, MinY, MaxY have wrong values
i tried instruction from your link or from this link but unfortunately nothing works (maybe I did it wrong)

I tried this tutorial and make script


set -e

TRANSFORM=‘libinput Calibration Matrix’


if [ -z “$1” ]; then

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

hi, i am idiot :grinning:
the value for X_SCALE, Y_SCALE, X_OFFSET and Y_OFFSET can i take from @exel, so the script is now:


set -e

TRANSFORM=‘libinput Calibration Matrix’


if [ -z “$1” ]; then

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 :+1:

1 Like

Yeayyy finally. Good news that touch screen works fine :wink:

1 Like