Changes

Development/Running on Linux

5,081 bytes added, 21:03, 7 December 2015
Created page with "You can either download the official .deb package from [http://www.mattercontrol.com/#jumpMatterControlDownloads MatterControl.com] or Building MatterControl|build from sour..."
You can either download the official .deb package from [http://www.mattercontrol.com/#jumpMatterControlDownloads MatterControl.com] or [[Building MatterControl|build from source]]. There are also user contributed packages for [https://aur.archlinux.org/packages/mattercontrol/ Arch] and [https://bugs.gentoo.org/show_bug.cgi?id=545340 Gentoo].

== Installing Mono ==

MatterControl requires Mono version 3.10 or above. If you are on an older version of Ubuntu or Fedora that does not have the latest Mono then you can add the official Xamarin repository to get up to date. The official MatterControl download currently comes with a shell script to do this automatically on Debian based distros.

$ sudo apt-get install curl
$ curl -s <nowiki>http://download.mono-project.com/repo/xamarin.gpg</nowiki> | sudo apt-key add -
$ echo "deb <nowiki>http://download.mono-project.com/repo/debian wheezy main</nowiki>" | sudo tee /etc/apt/sources.list.d/xamarin.list
$ sudo apt-get update
$ sudo apt-get -y install mono-complete

There are also instructions for other distributions on the [http://www.mono-project.com/download/#download-lin Mono website].

== Serial Port Permissions ==

In order for MatterControl to access the serial ports, you will need to give your user the appropriate permissions. On Debian or Fedora based distros, add yourself to the dialout group. On Arch, add yourself the the uucp and lock groups instead.

$ gpasswd -a $USER dialout

You will then need to logout and log back in for the changes to take effect.

== Assigning Serial Ports ==

On Linux, serial port assignments can change whenever a printer is connected or disconnected. MatterControl cannot tell which printer is connected to which serial port. You can setup a udev rule to permanently assign a unique port to your printer.

Do <code>ls /dev/tty*</code> before and after connecting your printer to find out which port it is assigned to. Printers will show up as either <code>/dev/ttyACM#</code> or <code>/dev/ttyUSB#</code>.

Use <code>udevadm</code> to get the serial number (UUID) of the USB device. This is a unique 20 digit hexadecimal value.

<code>$ udevadm info --attribute-walk -n /dev/ttyACM0 | grep "serial"</code>

Some printers will not report a serial number. In this case, you will have to use other attributes to identify it such as the vendor ID (idVendor) and the product ID (idProduct).

Create a file <code>/etc/udev/rules.d/97-3dprinters.rules</code>. Here is an example with rules for two printers.

SUBSYSTEM=="tty", ATTRS{serial}=="6403237383335190E0F1", GROUP="uucp", MODE="0660", SYMLINK+="tty-taz"
SUBSYSTEM=="tty", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="076b", GROUP="uucp", MODE="0660", SYMLINK+="tty-kosselpro"

Fill in either the serial number or vender and product IDs based on the information you obtained earlier. Make sure `GROUP` is set to the same group ownership as the rest of your serial ports. This is usually `dialout` on Debian or `uucp` on Arch. You can check by doing <code>ls -l /dev/ttyACM*</code>. Lastly, give your printer a unique name for the `SYMLINK`. This name must start with `tty` or it will not show up in the list in MatterControl.

The next time you connect the printer, a symlink will automatically be created that points to the correct serial device. You can now edit the printer in MatterControl and choose the new device.

== Adding Proprietary Plugins ==

If you are building from source, MatterControl will not come with certain proprietary components such as the Cloud Services or Print Notifications plugins. To get these, you will need to download the official release from [http://www.mattercontrol.com/#jumpMatterControlDownloads mattercontrol.com] and copy the following `.dll`, `.dll.config` and `.dll.mdb` files to your MatterControl directory.

CloudServices.dll
CloudServices.dll.config
CloudServices.dll.mdb
MatterControlAuth.dll
MatterControlAuth.dll.config
MatterControlAuth.dll.mdb
Mono.Nat.dll
Mono.Nat.dll.mdb
PictureCreator.dll
PictureCreator.dll.config
PictureCreator.dll.mdb
PrintNotifications.dll
PrintNotifications.dll.config
PrintNotifications.dll.mdb

== Using Other Slice Engines ==

MatterControl's built in slice engine is MatterSlice, which is a port of CuraEngine to C#. You can also choose other slicing engines. The official release comes with Slic3r, but when building from source or using unofficial packages you will have to install the other engines seperately and make symlinks in the MatterControl directory. For example on Arch, make a symlink in <code>/usr/lib/mattercontrol/Slic3r/bin</code> to the Slic3r executable.

# mkdir /usr/lib/mattercontrol/Slic3r
# mkdir /usr/lib/mattercontrol/Slic3r/bin
# ln -s /usr/bin/slic3r /usr/lib/mattercontrol/Slic3r/bin/slic3r

To use CuraEngine, do

# ln -s /usr/share/cura/CuraEngine /usr/lib/mattercontrol/CuraEngine.exe

Yes, it expects the `.exe` extension even on Linux.

[[Category:Linux]]
[[Category:Development]]
[[Category:Installation]]