{"id":20110134,"url":"https://github.com/red5d/linux-on-chuwi-hibook-pro","last_synced_at":"2025-05-06T10:31:41.560Z","repository":{"id":152398388,"uuid":"131526682","full_name":"Red5d/Linux-on-Chuwi-HiBook-Pro","owner":"Red5d","description":"Linux setup and driver information for running Linux on the Chuwi HiBook Pro","archived":false,"fork":false,"pushed_at":"2018-05-09T04:09:37.000Z","size":99,"stargazers_count":6,"open_issues_count":0,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T11:49:07.540Z","etag":null,"topics":["chuwi","drivers","hibook","linux","touchscreen"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Red5d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-29T20:16:04.000Z","updated_at":"2024-03-19T14:06:35.000Z","dependencies_parsed_at":"2023-05-30T22:15:27.064Z","dependency_job_id":null,"html_url":"https://github.com/Red5d/Linux-on-Chuwi-HiBook-Pro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Red5d%2FLinux-on-Chuwi-HiBook-Pro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Red5d%2FLinux-on-Chuwi-HiBook-Pro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Red5d%2FLinux-on-Chuwi-HiBook-Pro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Red5d%2FLinux-on-Chuwi-HiBook-Pro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Red5d","download_url":"https://codeload.github.com/Red5d/Linux-on-Chuwi-HiBook-Pro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252666040,"owners_count":21785189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chuwi","drivers","hibook","linux","touchscreen"],"created_at":"2024-11-13T18:10:38.645Z","updated_at":"2025-05-06T10:31:41.540Z","avatar_url":"https://github.com/Red5d.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux on the Chuwi HiBook Pro\n\nTested with Ubuntu 18.04. Antergos worked too when running from a live USB stick, but I encountered a bug or something in the Antergos installer that prevented the install from finishing.\n\nWiFi works perfectly out-of-the-box.\n\nThings that don't work out-of-the-box:\n* Touchscreen - working with the method below\n* Bluetooth - In progress... Testing some drivers.\n* Audio - Headphone jack and built-in microphone work after blacklisting the snd_hdmi_lpe_audio module.\n* Cameras - TBD\n\nThe accelerometer that controls screen rotation partially works. In landscape orientation, it flips the screen upside down. Portrait mode is rotated correctly though. As a workaround for landscape, hold the screen with the top edge facing the floor so it rotates \"correctly\", then click the rotation lock button from the upper-right dropdown menu and you can bring it right-side up again and it will stay that way.\n\nYou can also run this xrandr command to flip the screen right-side up:\n\n    xrandr --output eDP-1 --rotate normal\n\nI've also read comments that the micro-HDMI port works, but doesn't output sound over HDMI. I haven't personally tested this yet.\n\nI initially started testing with a live USB stick, keyboard, and mouse connected through a powered USB hub to the micro-USB port on the device (powered hub required since the device doesn't output enough power through micro-USB to run anything but a flash drive), but this was rather impractical since I had wires going everywhere and didn't have a good way to hold the device up conveniently while plugged into micro-USB and USBc power, so I got this docking keyboard for it that connects using the POGO pins and holds it in place with some metal tabs and strong magnets: https://www.amazon.com/gp/product/B01F8SSOPG/\n\nIt also adds a touchpad, 2 full-size USB2 ports, and a magnet that triggers the \"screen closed\" action on the device to turn off the screen like a laptop does when you close it.\n\n## Touchscreen\n\n**TL;DR:** If you just want it to work, and you're on Ubuntu 18.04, run the **hibook-pro-ts-setup.sh** script from this repo to download the firmware I extracted/converted, and the kernel driver module I compiled for this and it will setup both of those and run the calibration tool.\n\nIf you're not on Ubuntu 18.04, the kernel module *might* still work, but to be sure and build it yourself, run the **hibook-pro-ts-build-setup.sh** script from this repo instead. It will do the setup just like the other script, but will also build the kernel module and convert the firmware from the Windows version.\n\n---\n\nTwo things are needed to enable the touchscreen. The firmware file and the kernel module driver for it.\n\nThe touchscreen uses a Silead GSLx680-series controller. Some people seem to have been able to get it working with the silead driver built into the kernel after adding the firmware, but it didn't work for me.\n\nI got the SileadTouch.sys Windows firmware for the touchscreen from the C109K_HiBook_Pro_Drivers.zip file linked on this official post in the Chuwi forum:\n\nhttps://forum.chuwi.com/forum.php?mod=viewthread\u0026tid=2009\n\nThen, I used fwtool from the \"tools\" folder in the following repo to convert it to the format that Linux needs and set some parameters to flip the y-axis and set the screen resolution:\n\n    git clone https://github.com/onitake/gsl-firmware.git\n    cd gsl-firmware/tools\n    ./fwtool -c ../../SileadTouch.sys -3 -m 1680 -w 2560 -h 1600 -t 10 -f track,yflip ../../silead_ts.fw\n\nNext, I installed the \"gcc\" and \"make\" packages, downloaded the kernel module driver, compiled, and inserted the module:\n\n    git clone https://github.com/onitake/gslx680-acpi.git\n    cd gslx680-acpi\n    make\n    sudo insmod gslx680_ts_acpi.ko\n\nThis activated the touchscreen, and it accepted touch input, but still needed calibration. The usual xinput_calibrator tool for calibrating touchscreens on Linux doesn't seem to work on this one, so for that, I used the xcal python script from here:\n\nhttps://github.com/reinderien/xcal\n\nIt requires the python3-tk and python3-numpy packages. The xcal script automates a process of calculating touch coordinate values for the screen which is described on this page: https://wiki.archlinux.org/index.php/Talk:Calibrating_Touchscreen\n\nRun it with *./xcal* and after answering the configuration questions, it will open a fullscreen window with points to tap on the screen to perform the calibration.\n\nAfter the calibration is complete, the new settings can be applied, and the script will output the calibration matrix values that were set. If you put these values into an xinput command in a script or service that runs automatically on boot, they will be set automatically in the future. See the link below for instructions on putting the matrix values into an xinput command: https://wiki.archlinux.org/index.php/Calibrating_Touchscreen#Apply_the_Matrix\n\nOnce the touchscreen is operational and calibrated, it seems to work pretty well. You can also use [Gnome's touchscreen gestures](https://help.gnome.org/misc/release-notes/3.14/touchscreen-gestures.html.en) with it. The \"message tray\" that page refers to is the onscreen keyboard that you can activate.\n\nFirefox needs an environment variable set in order for touchscreen scrolling to work properly though: https://askubuntu.com/questions/853910/ubuntu-16-and-touchscreen-scrolling-in-firefox\n\n\n## Bluetooth\n\nThe WiFi and Bluetooth interfaces are both on the rtl8723bs chip. The Bluetooth part doesn't work out-of-the-box, but this firmware and script might work:\n\nhttps://github.com/lwfinger/rtl8723bs_bt\n\nI'm testing this and will update if/when I get it working.\n\nDiscussion about Linux Wifi/Bluetooth/Audio drivers for the similar Chuwi vi8 device: https://github.com/Manouchehri/vi8/issues/2\n\n## Audio\n\nThe headphone jack and microphone work if you blacklist the \"snd_hdmi_lpe_audio\" module.\n\nAdd the following to /etc/modprobe.d/blacklist.conf (create the file if it doesn't exist)\n\n    blacklist snd_hdmi_lpe_audio\n\n## Accelerometer\n\nThis \"sensor-proxy\" tool might be able to fix the auto screen rotation issue mentioned above: https://github.com/hadess/iio-sensor-proxy\n\n\n## Misc. Resources\n\nHere are some other resources that I used in figuring some of this out.\n\n### Linux setup\n\nhttps://github.com/kszere/Linux-For-CHUWI-HiBook-Pro - Work In Progress\n\nhttps://github.com/Split7fire/linux_on_chuwi_hibook\n\n#### Linux on other Chuwi devices\n\nThe hardware for some other Chuwi devices like the Hi10 is similar to the HiBook Pro and these links helped me in figuring out some things like the touchscreen firmware/driver settings.\n\nhttps://github.com/onitake/gslx680-acpi/issues/20\n\nhttps://txlab.wordpress.com/2017/03/11/running-ubuntu-on-chuwi-hi10-pro-tablet/\n\nhttps://jonathansblog.co.uk/ubuntu-on-the-chuwi-hi10-pro\n\n\n## Removing Android and Re-installing Windows only\n\nThe Android version for the Chuwi devices is pretty old, and I wanted space on the internal storage for Linux, but wanted to keep Windows on there too for dual-boot, so I first tried just removing all the Android partitions, but that broke the Windows bootloader.\n\nTo restore Windows, I downloaded the Windows image from the [official Chuwi forum thread](https://forum.chuwi.com/forum.php?mod=viewthread\u0026tid=2009) (The Z8350 version), and followed their [tutorial for flashing Windows on the Hi8 Pro](https://forum.chuwi.com/forum.php?mod=viewthread\u0026tid=1271) (different device, yes, but the process is the same). However, I modified the installation script to a \"SingleOS\" configuration where it would install Windows only and not account for an Android installation (you can shrink the Windows partition later to make space for Linux). The steps for this are documented here: https://forum.chuwi.com/forum.php?mod=viewthread\u0026tid=5449 (listed in the forum section for the Hi8 Pro device, but again, the steps are the same for the HiBook Pro)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fred5d%2Flinux-on-chuwi-hibook-pro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fred5d%2Flinux-on-chuwi-hibook-pro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fred5d%2Flinux-on-chuwi-hibook-pro/lists"}