Having a shot at building a distro (using Ubuntu Mate i386)

I’m starting off in a VM (in my case KVM+Virtual Machine Manager)

I downloaded the latest 32bit Ubuntu Mate, in my case this was

I first installed and updated the whole system.

A few things i did to make my life a little more comfortable:

I installed Synaptic
sudo apt-get install synaptic

added the quick search
sudo apt-get install apt-xapian-index && sudo update-apt-xapian-index -vf

Synaptic + quick search allows me to find packages that I sometimes forget about, and it’s faster then google + dwelling trough distractive forums

Add myself to the dialout group. This to enable the serial communication to the Arduino that controls the Maslow
sudo usermod -a -G dialout <enter_your_username_here>

Now i installed Kivi. Turns out that on Ubunt-Mate i have to do a few extra steps.
sudo add-apt-repository ppa:kivy-team/kivy
sudo apt-get update
sudo apt-get install python-kivy

the next section is replaced

Install pip

sudo apt-get install python-pip <---- (this step is not mentioned in the Maslow wiki)
pip install --upgrade pip <---- (same for this, to upgrade pip to the latest version)

Install pyserial
pip install pyserial


the above pip stuff can be skipped by installing pyserial from the Ubuntu repo instead

sudo apt-get install python-pyserial

To clone GroundControl i’ll do this a little different then described in the Maslow Wiki
First i install git
sudo apt-get install git

Now clone GroundControl
sudo git clone https://github.com/MaslowCNC/GroundControl.git
this creates a new folder /GroundControl/ in your /home

now enter the /GroundControl folder and try if CG actually works
cd ~/GroundControl/
sudo python main.py

in my case all is good.

and i have an actual VM with a working GC

I plugged in an Arduino Mega that has Maslow firmware installed
it got recognised as /dev/ttyACM0
In the VM i now enabled this USB device to use with the VM

And YESSSS GC spotted right away that my firmware (0.97) is out of date

I also installed skimage
sudo apt-get install python-skimage

This so that dlang’s v-plotter.py script can be used

Next step will be downloading and installing


Next addition will be?


Inkscape.org ?
FreeCADweb.org ?

Or should i first try to make this into an ISO

What comes to mind for my GC wishlist looks a little like this:
An update button in CG to get CG (and also the firmware) pulled in and updated in just one go.
Not sure if this is an option but it would be nice
And also a roll back option perhaps?

Looking at it from a more minimal perspective.
If GC could push new firmware, (with AVRdude?) That could it make more user friendly for woodworkers who are not sysadmins.
Then GC might be able to work without any desktop, and cover all the basic stuff to get the machine working, and to keep it up to date.

Great work. I’m glad to see the direction your taking with this.

Thank you


I’m not sure if i can pul this off, specially maitainance will not be my best angle on this.
But i hope i can lay the groundwork. Or discover how much headache it can create.

I really want to create that most minimal setup.
Just GC that boots from a stick. And then can do all it needs to do.
Simple straightforward and effective.

But it’s also interesting to have a real CAD Studio… Simply because it doesn’t exist yet.
But i’m a bit scared of the idea. :slight_smile: Also this would be better on a 64bit distro So from that point of view i think it’s best to not add CAD software to this simply because that would work much nicer on 64bit machines.

As this is about Maslow, not about spinning a new distro.

My mind always wants to explore all the outer limits. So it’s very difficult to make the right choices.

1 Like

Generally when a package has a dependency, it’s downloaded and installed automatically by the package manager. (A kivy install should have downloaded and installed pip)

Be sure to start any distro build with an update/upgrade to avoid omissions and conflicts like this.

1 Like

@TheRiflesSpiral I have installled kivy on 3 different boxes and pip didn’t get installed on any of them.

i used the methods as described on the kivy website.

3 different *buntu’s in my case. on what os does pip install by default in your case?

all my os’es where up to date before i started. So i’m reasonably sure that i’ve not done anything wrong there.
i will have a closer look though

In general, if you install kivy via your distro packages, it won’t install pip

pip is a way to install python modules from source, bypassing your distro
packages. It’s usually questionable to mix them.

If you can install packages via the distro, that’s by far the best way to do

Ubuntu has the main repository for each release, it also has a backports
repository that includes newer versions of some packages. It is also possible to
pull in packages from newer versions of the distro (altough that can get you in
big trouble as well)

I would suggest starting from Ubuntu 17.10 and see if it includes new enough
packages for everything. If it doesn’t, then let’s see what we can do to resolve

(this stuff happens to be part of my day job)

David Lang


would it make sense to not install pip at all?
and install pyserial another way?

I’ll also do a 17.10 VM
Following the same steps

You could try - sudo apt-get install pyserial

1 Like

if it is questionable to have a bypass then i’ll take it out of the mix.

I just discovered that Ubuntu has decided to leave i386 behind in cyberspace…
So there will not be a 32bit 17.10. This will make the ARM platform look better again


Looks like Mint is still supporting 32bit until at least April 2021
This seems like a good option for now.
By 2021 there will be many second-hand 64bit machines available…

sudo apt-get install python-serial turns out to be the answer

I’m trying the above on Ubuntu 17.10 but i’m running into issues… looks like 17.10 has python3.6 installed and that seems to be messing with kivy/GC

First i will share the VM once i have it working…
If that works for a few people then we could make an iso with remastersys or distroshare and see what works best. …if any.

O, i also noticed LXC LXD (linuxcontainers.org) this looks a bit more understandable then what i read at the docker website.
LXD is a kind of container hypervisor that can dock docker snapshots as well and even VM’s if i remember it correct…I had a bit of an info overload in that section

It must have already been on my system for some reason, then. I did a Debian Wheezy and Jessie installs and didn’t need to install pip separately. I assumed it was added when Kivy was installed but I’m probably wrong about that.

1 Like

On the Manjaro the is the same, I need to run GC witth: ‘python2 main.py’ and then it will run.


Is there a link for /user/bin/python that you could change to fix that? I use a link to python2.7, changed from python3.6


@blurfl i’ll have a look at it tomorrow,

FYI - There is a note I believe from Bar saying this is Python 2 for that reason.

Thank you

1 Like

I’m nt sure how heavy Ubuntu 17.10 depends on Python3, removing it all together may eventually be an option.

have arun through here =

Here it is:

Thank you

1 Like

thanks Bee,

I also will have a look at this:

to make a launch button on the desktop

  • If your application is a GUI (ie, it has a window), then add StartupNotify=true. It will help the launcher identify its window when it is running.
    that one i should remember
1 Like

Python 2 and python 3 are pretty much different languages as far as
compatibility goes. They both exist in parallel, but the python folks are trying
to push people to only install python 3 by default to ‘encourage’ everyone to