Hackspace Articles and Issues List

Friday 27 April 2018

Linux on Linx1010b




So ages ago I needed a windows 10 box for some open university software for a module I was doing. I picked up this Linx1010b baytrail powered tablet with keyboard dock for not very much coin and it certainly did the job.  I like it as hardware and tbf it worked ok with windows 10 for the tasks I did on it... since the end of the module though I have not really used it and a big part of that is that I'm a linux dude at heart.

So I decided to have a crack at getting a linux distro on it. A quick search revealed that it was possible but a little complex as it requires a 64 bit distribution but uses a 32 bit uefi. However I also discovered a brilliant tool isorespin by Linuxium which respins any 64bit iso and makes it bootable on not just the linx1010 device but many bay trail or apollo based devices. Not going to give many instructions on the isorespin tool as the linuxium site has plenty!

I respan 3 different linux distributions Ubuntu, Lubuntu and Xubuntu, all booted on the linx 1010 and ran but with a few niggles on each. Ubuntu seemed a bit bloated and lubuntu and xubuntu seemed a bit quicker. Lubuntu and Xubuntu each had the issue that the screen on the linx1010b was rotated to portrait view, with lubuntu this was cured by downloading and installing ArandR which allowed screen rotation... but didn't persist on reboot. Another problem with Lubuntu was once the display was rotated the the axis on the touch screen were inverted and reversed, this was true in xubuntu also but again for xubuntu I found a persistant solution for this.

I also had problems with wifi on each of the distributions, I found that the adapted wifi driver included in the linixium respin tool worked.. but only partially.. wifi would connect during the installation and on first boot.. but if I made any change to my wifi connection or indeed tried to swap to a different network it would fail until I rebooted again. I haven't quite solved this but have a workaround in that I am using a usb ralink wifi dongle which works flawlessly and I had disabled the internal wifi on the linx1010b (details below)

So my process for Xubuntu to install and solve the few niggles is ...

  • Use the linuxium isorespin tool to respin xubuntu 16.04.4-desktop-amd64.iso using only the option in isorespin to include common options for baytrail devices 
  • Flash the resulting iso to a pen drive (I used etcher on my ubuntu box but you could use the dd commmand in a terminal)
  • Boot and install the xubuntu image onto the linx 1010b ... keyboard and trackpad work during install but the display is in portrait for the install so bend your neck!
  • After install find the monitor settings application and rotate the display to the right... aaaahhh and relax your neck! (note... when you boot the machine you will have to log in in portrait but it will rotate to landscape after login)
  • Now to fix the axis problems on the touch screen, hit cnt-alt-t to launch a terminal and then move to the following directory
cd /usr/share/X11/xorg.conf.d
Then edit the following file in nano..
sudo nano 10-evdev.conf

  • Then you need to add the following highlighted lines in the screenshot below to the file and save the changes.


sudo reboot 

And your touchscreen should now be working.


  • To disable the internal WiFi i used used ifconfig to work out which of the 2 WiFi devices was which and what they were named... I discovered that wlan0  was my internal misbehaving linx1010b WiFi card so I then disabled this via running the following in a terminal
cd /etc/network

sudo nano interfaces

and then add the following line to the file (replacing "wlan0"with your WiFi device name) and save

iface wlan0 inet manual 

save and exit nano and then restart the network manager services by the command

sudo service network-manager restart

You should then when you click on the WiFi applet only have the external WiFi card enabled by default.

Finally I found that the installed firefox browser wasn't to good and wouldn't run youtube clips very well, for a long time I have been a chromium fan and indeed it didn't dissapoint after install with everything streaming and audio working etc... I always forget that to install chromium it isn't just apt-get install chromium but is in fact

sudo apt-get install chromium browser

So there we go... I love it.. its a really nice super portable and has a great 9hr battery life and now lives up to its super hacky collection of stickers! I know that the mighty @biglesp is working on a similar project getting linux running on an apollo based teclast t7 so keep an eye on his blog for that!




7 comments:

  1. Great article, respan xubuntu but i cannot for the life of me get it to show as a boot option on my linx 1010b how did you boot your installation?

    ReplyDelete
  2. It's been a while but I think I just it the power button and held volume+ to enter the bios and then set it to boot from usb.. Can't remember having any major problem with that aspect of it... sorry I can't be more help!

    ReplyDelete
  3. Thanks for replying!
    I've now managed to get xubuntu on my Linx1010B and its looking good, If anybody else has issues for me imaging the respan iso using dd seemingly worked but didn't show up as a valid EFI bootable media device, i ended up copying the ISO to a windows machine and using rufus to write the image which got automatically recognised by the tablet and installed correctly, from then on following the great guide here to fix the rotation and wifi worked fantastically!

    ReplyDelete
  4. OOh... did on board wifi work for you well? I never sorted mine! Which version of xubuntu did you respin out of interest?

    ReplyDelete
  5. The throughput with the onboard wireless adapter is shocking, I havnt looked much into this yet, I went with xubuntu 18.04.2 and so far it feels faster and smoother then the Windows 10 Home i had on previous.

    There was very little information regarding getting a distro installed on these tablets due to the 32bit EFI restrictions, everynow and then i would take a look into doing this and stumbled across this blog post.

    I will post my findings and any other tidbits regarding this tablet over the weekend on this post.

    Thanks again!

    ReplyDelete
  6. For those who try this with xubuntu 18 my sound wasn't working, couldn't connect to pulse audio, here is my fix

    sudo apt-get purge pulseaudio
    sudo apt-get clean && sudo apt-get autoremove

    rm -r ~/.pulse ~/.asound* ~/.pulse-cookie ~/.config/pulse
    sudo apt-get install pulseaudio
    sudo alsa force-reload
    pavucontrol

    Volume mixer should now display correctly and audio should play correctly.

    ReplyDelete
  7. After lots of messing and combining multiple scripts together i have now come up with a auto rotate script based on the tablet screen orientation, this also rotates xinput

    Hopefully it should format correctly below

    #################start of autorotatescript.sh#####################
    #!/bin/sh
    # Auto rotate screen based on device orientation

    # Receives input from monitor-sensor (part of iio-sensor-proxy package)
    # Screen orientation and launcher location is set based upon accelerometer position
    # Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
    # This script should be added to startup applications for the user

    # Clear sensor.log so it doesn't get too long over time
    > sensor.log

    # Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
    monitor-sensor >> sensor.log 2>&1 &

    # Parse output or monitor sensor to get the new orientation whenever the log file is updated
    # Possibles are: normal, bottom-up, right-up, left-up
    # Light data will be ignored
    while inotifywait -e modify sensor.log; do
    # Read the last line that was added to the file and get the orientation
    ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')
    TouchscreenDevice='pointer:Goodix Capacitive TouchScreen'
    TouchpadDevice='keyboard:Goodix Capacitive TouchScreen'
    normal='1 0 0 0 1 0 0 0 1'
    inverted='-1 0 1 0 -1 1 0 0 1'
    left='0 -1 1 1 0 0 0 0 1'
    right='0 1 0 -1 0 1 0 0 1'
    # Set the actions to be taken for each possible orientation
    case "$ORIENTATION" in
    normal)
    xrandr --output DSI-1 --rotate normal && gsettings launcher-position Bottom
    xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $normal
    xinput enable "$TouchpadDevice"
    ;;
    bottom-up)
    xrandr --output DSI-1 --rotate inverted && gsettings launcher-position Top
    xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $inverted
    xinput disable "$TouchpadDevice"
    ;;
    right-up)
    xrandr --output DSI-1 --rotate left && gsettings launcher-position Bottom
    xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $left
    xinput disable "$TouchpadDevice"
    ;;
    left-up)
    xrandr --output DSI-1 --rotate right && gsettings launcher-position Top
    xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $right
    xinput disable "$TouchpadDevice"
    ;;
    esac
    done
    ##############################end of autorotatescript.sh##########################

    This has only been tested on the Lynx 1010B
    Hope this helps!
    Now to mess with the onboard wifi!

    ReplyDelete