Been quite some time since I last visited here, but I've been messing up/round with my linx8 and linux, and the information/scripts here should be useful for anyone wanting to try/use a debian (supports 32bit uefi, fedora 27 may support it on release too) based distro.
! | This is only a semi-guide, not a step-by-step one and I take no responsibility for anything you do to your Linx. |
What doesn't work: Battery charging (it will start charging occasionally if the charge reaches 28% and stop when it reaches 29%), Automatic screen rotation. volume keys (panel volume slider works), Firefox (crashed a lot

What wasn't tested: Bluetooth but is detected.
So first things first the reason most stuff works is thanks to the hard work by linuxium with the isorespin.sh script.
This script (which has a nice UI) extracts, changes and recreates a debian based linux iso file (in my case Lubuntu 17.04) with the drivers etc. required for such devices as ours (and others). This url will be useful if you want to try a respin Tutorial
You need to run the script from within a linux environment, not sure if you could do it from within a live environment but don't see why not providing you have a disk to perform the script on.
The important thing to remember is that you need to apply the recommended baytrail settings (wifi etc.) and update the kernel to at minimum 4.12.8 so the wifi is supported which at the time of typing is the latest stable linux kernel release.
I would also recommend trying to add the onboard keyboard into your new iso.
Now for my own attempt things didn't go to plan, all I got was an iso with an updated kernel and wifi drivers.
If this happens to you and you have no physical keyboard, you can (as I had to) use the character map in Lubuntu (fairly sure all the *ubuntu's have it) to drag 'n' drop letters into the installation wizard when the time has come to boot and install from your respun machine.
Post-install you can use the character map to connect to your wifi, and then load the software centre and search for/install onboard from there (again the character map for the search term and sudo password).
Now that you have a keyboard I would suggest you install the following new software:
Code: Select all
sudo apt-get update && sudo apt install xinput chromium-browser
Now, the computer tends not to wake from sleep so I advise you to disable the sleep options (Lubuntu: Preferences>Power Manager>System/Display tabs).
My respun iso failed to include the soundcard drivers, so grab and use the linuxium script: mcu audio
In the pulse audio properties you may now want to click the green shield to set the internal sound card as default (bytcr...) and as a note I only got audio with mono speaker output.
Now as mentioned the volume keys dont work for adjusting the volume but they do work as keys, so you can use them to run commands such as screen rotation or brightness, by binding them to programs/actions in (Lubuntu:Prdferences>Setup hot keys).
Here are two scripts (screen_brightness.sh and screen_rotation.sh) that I made which you may find useful, the first is for the hardware screen brightness, call it with either - or + and then a value to increment/decrement the hardware brightness level. I made this script as xbackight cant find the screen brightness and the fix I found to symlink to the folder it looks to didn't work and apparently isn't recommended, while xrandr brightness it turned out is gamma not backlight adjustment. I should say I don't know if this is considered a good method or not but it works for me

Code: Select all
#!/bin/bash
#bash -c "sh /home/username/screen_brightness.sh + 5"
#bash -c "sh /home/username/screen_brightness.sh - 5"
plusminus=$1
new_brightness=$2
current_brightness=`cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DSI-1/intel_backlight/brightness`
echo $plusminus
echo $new_brightness
echo $current_brightness
if [ "$plusminus" != "+" ]
then
new="$(($current_brightness - $2))"
echo "$new" > "/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DSI-1/intel_backlight/brightness"
else
new="$(($current_brightness + $2))"
echo "$new" > "/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DSI-1/intel_backlight/brightness"
fi
Code: Select all
xgamma -rgamma 1.0 -ggamma 1.0 -bgamma 1.0
Now the next script is for screen rotation. When I tried a previous Lubuntu some time ago the rotation did work automatically but the touchscreen didn't work right, as it stands now for me I have working touch input but no automatic rotation so I cobbled together this script. If you start the command with true after it then the rotation will go anticlockwise.
Code: Select all
#!/bin/bash
##################################################################
##################################################################
#If the command has the argument true passed to it then invert the rotation.
#This means clockwise rotation bind to key command: bash -c "sh /home/username/screen_rotation.sh"
#While anti-clockwise rotation bind to key command is: bash -c "sh /home/username/screen_rotation.sh true"
anticlockwise=$1
#Location of auto-generated file.
file="screen_orientation.txt"
##################################################################
#Check if our screen_orientation text file exists and if not create it.
if [ -f "$file" ]
then
if [ "$anticlockwise" != "true" ]
then
orientation=`cat screen_orientation.txt`
if [ "$orientation" = "normal" ]
then
xrandr -o left
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1
echo "left" > "screen_orientation.txt"
fi
if [ "$orientation" = "left" ]
then
xrandr -o inverted
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
echo "inverted" > "screen_orientation.txt"
fi
if [ "$orientation" = "inverted" ]
then
xrandr -o right
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
echo "right" > "screen_orientation.txt"
fi
if [ "$orientation" = "right" ]
then
xrandr -o normal
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0
echo "normal" > "screen_orientation.txt"
fi
##################################################################
else
orientation=`cat screen_orientation.txt`
if [ "$orientation" = "normal" ]
then
xrandr -o right
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
echo "right" > "screen_orientation.txt"
fi
if [ "$orientation" = "left" ]
then
xrandr -o normal
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0
echo "normal" > "screen_orientation.txt"
fi
if [ "$orientation" = "inverted" ]
then
xrandr -o left
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1
echo "left" > "screen_orientation.txt"
fi
if [ "$orientation" = "right" ]
then
xrandr -o inverted
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
echo "inverted" > "screen_orientation.txt"
fi
fi
##################################################################
else
#If no existing screen_rotation.txt file exists default our positions and create the text file.
xrandr -o normal
xinput set-prop "Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0
echo "normal" > "screen_orientation.txt"
orientation=`cat screen_orientation.txt`
fi
##################################################################
##################################################################
And with that, my semi-guide is complete.
