Can GroundControl live without X?

Just to find out if it can work at all

Can GroundControl run without X? (On a Linux box)
Kivy is OpenGL right?

Why I like to know:
I would like to try to launch the GUI in a Terminal. Then only install an OS with the bare essentials and launch GC as the ‘desktop’.

I just like to know if this could be done. In THAT minimal manner.
Iv’e seen Some (Java ?) applications run like that. Using very little resources. making it very responsive. In Maslows case it would also take away any background processes that could interfere.

you need a windowing system, either X or wayland, you can’t run GC without
either. OpenGL is just the output, it wouldn’t give you a mouse or any other


thanks, i completely forgot about the mouse…

1 Like

Certainly on a Raspberry PI running Kivypi you don’t need to start the desktop, you can run GC from the command line.
Indeed the no desktop is included in the standard package!

1 Like


if i’m logged in to the desktop then yes, but my attempt in this case was to:
Boot in / log into the commandline without having the desktop (and all it’s ‘bloat’) running.
and try to run GroundControl on the bare system.

… i just forgot to take the mouse stuff into account. :slight_smile:
if GC could be ran without mouse, say, use the num-pad to do all the arrow key stuff that could be interesting
but i don’t want to put pressure on the dev team with stuff like that, just dropping the idea as a hint…

My ultimate wish would be something like this, eliminating screensaver and system idle issues that could eventually lead to dangerous situations…

Linux is far more easy to configure then Windows but still it needs to be configured.
in case of windows imagine the bureaucratic powersaving mode kick in when in the middle of a cnc job
or a forced windows update for that matter… cutting the serial communication… that kinda sux…

having a system that only has that installed what is actually essential, or at least does not have anything running in the background that’s not involved in the cnc job.

I’m not sure what i’m getting myself in to. It’s a bit like lifting up the hood with the engine running and throwing in a bunch of wrenches and see what comes flying back. :star_struck:

I am running on a touchscreen on the PI so I did not have to worry about a mouse…

1 Like


this is interesting!!!

if anyone has a intel machine with touchscreen this would then be the same i hope

the touchscreen emulates a mouse. X is also what provides the keyboard input to
a graphical program.

you really are not going to be able to run any graphical program without X or

1 Like

going to have a look what wayland is about

it’s the hip replacement for X.

for the purposes of Maslow and GC, don’t worry about it. Just install one of the
GUI options and don’t worry about it.

While there are ways to make the GUi options more lightweight, they are probably
countered by the fact that the lightweight options don’t operate the way people
expect them to.

In fact, I’d suggest that you seriously consider KDE plasma for the GUI, as it’s
the most ‘windows like’ option and it’s good to not confuse people

but this is trivial stuff compared to getting everything up and running.

1 Like

point taken.

i’ll have a look at KDE my experience with kde in the past is that it seemed to be resource heavy but that’s a long time ago.

Mate recently won me over as the desktop with the most ‘classic’ feel to it. But thats a personal taste.

downloading a Kubntu… :slight_smile:

Moment like this i wish that every *buntu had a clean minimal option without all the office and media player crap on top. and the option to choose your favorite filemanager

for instance I like XFCE, but it’s file manager is just not fun to use. And it is far to entangled to replace in a simple manner. LXDE then wins the lightweight option with a usable filemanager. And now Mate topped that since it’s just a little more licked. I’m about to install KDE, download just finished :slight_smile:

unfortunately sudo python2 did not circumvent the issue:

maslow@maslowcncbox:~$ cd ~/GroundControl/
maslow@maslowcncbox:~/GroundControl$  sudo python2
[sudo] password for maslow:
[INFO   ] [Logger      ] Record log in /home/maslow/.kivy/logs/kivy_17-11-27_1.txt
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v2.7.14 (default, Sep 23 2017, 22:06:14)
[GCC 7.2.0]
 Traceback (most recent call last):
   File "", line 11, in <module>
     from                   import App
   File "/usr/lib/python2.7/dist-packages/kivy/", line 319, in <module>
     from kivy.base import runTouchApp, stopTouchApp
   File "/usr/lib/python2.7/dist-packages/kivy/", line 30, in <module>
     from kivy.event import EventDispatcher
   File "/usr/lib/python2.7/dist-packages/kivy/", line 8, in <module>
     import kivy._event
 ImportError: /usr/lib/python2.7/dist-packages/kivy/ undefined symbol: PyFPE_jbuf

could be pyserial at play?

i installed it from the repo
sudo apt-get install python-serial

this was on Ubuntu Mate 17.10 32bit

Not sure anymore, but I think I had to make sure I installed Kivy for python2 and not for 3. Perhaps I could look at the command history to find out.

1 Like

i also installed kivy for python2 like stated in the wiki. But for some reason there is also python3.6 living in 17.10 so i have both 2.7 and 3.6 sitting on this box
And the sidestep to install the pyserial from repo instead of pip
this should be the correct one for python3 there is a separate package ‘python3-serial’

so that part should be ok if there isn’t any other issue at play

i don’t know if the pyserial from repo is different then the one from pip

You want to run GC in python 2.7x and not in python 3. Pyserial (3.3) is the correct one for python 2.7x. Both snakes can live side by side, but the installs for GC (kivy, pip) need to be made for 2.7

… work with multiple versions of Python installed in parallel?

On Linux, Mac OS X, and other POSIX systems, use the versioned Python commands in combination with the -m switch to run the appropriate copy of pip:

python2 -m pip install SomePackage # default Python 2
python2.7 -m pip install SomePackage # specifically Python 2.7
python3 -m pip install SomePackage # default Python 3
python3.4 -m pip install SomePackage # specifically Python 3.4

Appropriately versioned pip commands may also be available.

On Windows, use the py Python launcher in combination with the -m switch:

py -2 -m pip install SomePackage # default Python 2
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3 -m pip install SomePackage # default Python 3
py -3.4 -m pip install SomePackage # specifically Python 3.4


@vertex would you do a"python2 -m pip list’ for me and check the pyserial version?

installed version is
pyserial (3.4)

Kivy (1.10.0)
Kivy-Garden (0.1.4)
PyOpenGL (3.1.0)
pyserial (3.3)
On my mate
Edit: pygame (1.9.3)
I have no idea what modules are relevant and just guessing to compare.

Kivy (1.10.0)
Kivy-Garden not installed
PyOpenGL not installed
pyserial (3.4)
pygame also not installed

i need to pack and go on hospital visit, will do some more reading later

1 Like

numpy (1.12.1) and I must post at least 20 characters…

1 Like