LinuxCNC on a Liva X

More
10 years 9 months ago #69019 by 10K
LinuxCNC on a Liva X was created by 10K
I have a ECS Liva X.
Code:
http://www.ecs.com.tw/ECSWebSite/Product/Product_LIVA.aspx?DetailID=1593&LanID=0#Xtreme
It's a tiny all-in-one PC that mounts on the back of a monitor (touch-screen in my case). It talks over ethernet to a Mesa 7i92 card. That all works now, mostly due to a lot of assistance from tjmarch, pcw, and andypugh.

It took several days to get LinuxCNC installed on the Liva X. I've tried various distributions (11 so far), including 32 and 64 bit installs with varying luck. Currently, it's running a copy of Linux Mint LMDE 2, with RT PREEMPT 4.4. But I'm getting massive latencies - over 1,000,000ns. I did some tweaking of the kernel based on some internet advice, but I'm certainly no expert there.

The Liva X uses UEFI and an internal eMMC drive. This really complicates things. I've found that I can only install 64 bit versions of Linux (because of UEFI), and they have to be recent, or they don't see the eMMC drive during installation. Also, only the newer versions support the internal wireless chip. So for the OS, I've only been able to install 64 bit versions of:
  • Ubuntu 14.04.3 LTS
  • Linux Mint 17.3
  • Linux Mint LMDE 2
I'm pretty sure I was not able to load Debian Jessie 64 bit, but I tried it early in the process, and I need to try it again since I know more now that I have more experience getting things to work..

I've read on the board a bit about how RT PREEMPT 3.x distributions may have better latency than the newer 4.x version that I used. So I'm thinking that I may need to compile another kernel.

Does anyone have a recommendation on what path I should pursue, here? I saw that Peter (PCW) posted links to some instructions and a .config file, but the config is only for a 32 bit system:
Code:
freeby.mesanet.com/makert should build the latest preemt-rt kernel freeby.mesanet.com/rtconfig is a known working .config file

I thought that I'd give the build instructions a go, but before I unknowingly go down another dead end, I thought I'd check here.

Please Log in to join the conversation.

More
10 years 9 months ago #69024 by ArcEye
Replied by ArcEye on topic LinuxCNC on a Liva X

Does anyone have a recommendation on what path I should pursue, here? I saw that Peter (PCW) posted links to some instructions and a .config file, but the config is only for a 32 bit system:

freeby.mesanet.com/makert should build the latest preemt-rt kernel

freeby.mesanet.com/rtconfig is a known working .config file


I thought that I'd give the build instructions a go, but before I unknowingly go down another dead end, I thought I'd check here.


The instructions can be used generically, just substitute the later kernel and rt patch.

The rt config is 32 bit only because the option for 64 bit is not set.
Patch the kernel then run make menu-config, changing the setting on the first page to 64 bit, then save and compile.

The Liva X uses UEFI and an internal eMMC drive.


Having read how you cannot even access the BIOS properly unless you install windoze and how UEFI cannot be disabled, not a computer I would ever consider.

regards

Please Log in to join the conversation.

More
10 years 9 months ago #69061 by PCW
Replied by PCW on topic LinuxCNC on a Liva X
I have run LinuxCNC successfully on a HP-Stream-Mini which has a similar hardware to the Liva.

When I tested this it was with a Preempt-RT 3.18 kernel, a 3.18 or 4.1 kernel may give
better performance as the 4.4 kernel is _VERY_ new.

I did have to disable the on card Broadcom WIFI card as it caused massive latency spikes (I used a USB WIFI dongle for network access)

The other option is to just slow down the servo thread, this does compromise performance slightly because of
chording errors due to the velocity being constant between thread invocations.
500 Hz or even 250 Hz might be OK depending on accuracy requirements.

Note that at 250 Hz and a moderate 300 IPM, 50 IPS/S accel system (.1 second to full 300 IPM speed)
the chord error is less than .0001"

Please Log in to join the conversation.

More
10 years 8 months ago #69702 by 10K
Replied by 10K on topic LinuxCNC on a Liva X
Update on progress.

I'm a persistent person, and I've tried more than 20 different distributions in more than 30 trials of Linux on the Liva X. I've gotten a lot of experience at compiling kernels! Here are my conclusions so far:

  • I can't run older distributions. They don't support the UEFA and/or the eMMC drives.
  • I can install a few 32 bit versions, but I can't get them to boot automatically after installation. I can use something like a rEFIned USB drive to boot into them, but I could never get it to boot automatically.
  • I can install some 64 bit distributions with the only problem being that I have to manually tweak the partitioning.
Here's what I've gotten to work. They're all 64 bit versions.

  • Mint LMDE 2
  • SparkyLinux 4.2
  • Debian Jessie 8.3
  • Ubuntu 14.04LTS

The next problem I had was getting a RT kernel to work. I've tried other kernels - rtai, liquorix and xenomai - without success. I don't think that they're good with linuxcnc-uspace anyway. I have not had much luck with the RT 3.x.x versions. I think that the problem is that they don't see the eMMC drive, so they crash when rebooting. The 4.4.x versions seem to work OK.

The kernel configuration has a lot of effect on the latency. I tried the rtconfig.txt that was posted in this forum, but my computer won't reboot with it.

So I've been "rolling my own". Here are the changes I've made with Xconfig:
Code:
Processor type and features Processor Family Intel Atom (this one item halved the latency) Preemption Model Fully Preemptible Kernel (RT) - on Timer frequency (n) 1000 Hz Power manmakemakeagement and ACPI options All options off under this heading All subheadings off, except don't change ACPI (....)Support Power management and ACPI options turn off all but ACPI Device Drivers (I don't think that these have a large effect, but I have not isolated and tested) Dallas's 1-wire support - off (n) Parallel port support - off Multimedia support - off Sound card support - off Sony MemoryStick card support - off Accessibility support - off Virtualization drivers - off Platform support for Chrome hardware - off Industrial I/O support - off Sound card disabled Kernel hacking all off, including that under main listing, except Magic SysRq key on

In UEFI, I disabled the sound card.

I have a few questions:

  1. Is there anything else that I should try, either in UEFI or in Xconfig?
  2. I've seen a lot of discussion about what latency is needed. I'm running the Mesa 7i92 card, and use only the servo thread. Under []EMCMOT the parameter SERVO_PERIOD = 1,000,000. There is no BASE_PERIOD needed or set. What numbers should I be targeting when I check the latency? (I'm getting Servo 1ms spikes to 650,000)

Please Log in to join the conversation.

More
10 years 8 months ago #69703 by PCW
Replied by PCW on topic LinuxCNC on a Liva X
You might want to check that the CPU clock scaling mode is set to "performance"
( and all possible power management options are disabled in the BIOs )

650 usec latency spikes probably mean that you will need to run the servo thread at 500 or 750 Hz or so
to avoid occasional real time errors

Please Log in to join the conversation.

More
10 years 8 months ago #70456 by 10K
Replied by 10K on topic LinuxCNC on a Liva X
I finally got it working! Here's what I did:
  • The eMMC drive was causing me a lot of grief. I bought a mSATA drive and installed it so I would not have to use the eMMC drive
  • I put the Liva X in "Other OS" mode instead of "Windows 8". That makes it where it'll load a non-UEFI OS
  • Installed the latest version of Debian Wheezy 32 bit
  • Installed linuxcnc and the RT-PREEMPT kernel using
Code:
sudo apt-get install linuxcnc-uspace
from the linuxcnc repository
Code:
deb http://linuxcnc.org/ wheezy base 2.7-uspace
LinuxCNC Latency Test Results using above:
3x glxgears, MP3 file playing, at end of 15 minutes
Max Jitter 32 bit (and 64 bit)
Servo Thread = 44013 (49296)
Base Thread = 38625 (49730)

Although it would not work with the Mesa 7i92 card, and has no parallel port, I loaded the live version of linuxcnc that already includes the RTAI kernel. I got great latency times. I didn't record the exact results, but this is close:

LinuxCNC Latency Test Results:
3x glxgears, MP3 file playing, at end of 15 minutes
Servo Thread = 2500
Base Thread = 6500

The only other change I made to the Liva X is that I'm using a USB network dongle so that I can have two networks, one at 192.168.1.x and the other at 10.10.10.x for the Mesa card.

Also, Wheezy does not support the Liva X's internal WiFi and Bluetooth. I found some drivers (rtlwifi-new-dkms linux-firmware rtl8723au-bt-dkms) that got them working, but the Latency numbers went through the roof. No big deal. I can get by fine without them.

I've already successfully cut a taper, an external thread, an internal thread, and a ball on the lathe.

Please Log in to join the conversation.

Time to create page: 0.168 seconds
Powered by Kunena Forum