D3D Live ISO

From Open Source Ecology
Jump to: navigation, search


HintLightbulb.png Hint: Page deprecated as of 1/19. The official OSE Linux, which includes complete software for the D3D 3D printer bundled with it, is found at OSE Linux. Software includes Cura, the printer profile for D3D in Cura, Arduino IDE, and OSE Marlin firmware. Howto for using the software toolchain as of 1/19 is found at D3D_1612_Product_Testing#Testing_Procedure

Contents

Instructions For Creating Live USB Thumbdrive

These instructions are compiled from the file File:USB INSTALLATION.txt, and other documentation at porteus home page.

Download

  • If this download does not work, go to Torbjorn's Dropbox - [1]

Install

Install from Within Ubuntu

  • Optional: Format USB stick to ext4. Most USB sticks are preformatted with FAT filesystems. This complicates writing to the USB from within Porteus.
  • Follow this guide, except format to ext4 instead of fat32.
  • Open iso with Archive Manager, extract contents to USB folder
  • Run the script Porteus-installer-for-Linux.com. It resides in the directory called boot on your USB stick. Root privileges (sudo) might be required, depending on your system.
  • Navigate to USB directory
cd /media/<user>/<USB-stick-name>/boot
  • Once in USB boot directory
sudo ./Porteus-installer-for-Linux.com

Install from Within Porteus

  • Open Porteus Installer program
  • Open the Start Menu (top left corner)
  • Choose "System"
  • Choose "Porteus Installer"

Install from Within Other Systems

See porteus.org's official installation instructions.

Install Notes

Introduction

The D3D Thesis project aims to provide participants a Live ISO. This is an operating system that resides on a CD, DVD or USB stick that can run on all common computers, independent of the state of their computer's hard drives, thereby bypassing installation procedures for 3D printing related programs.

The idea is that we do 2 things to make the D3D Distributive Enterprise spread far and wide, which is part of Viral Replication Criteria:

  1. Enable an average user with clear instructions for downloading our ISO, and installing on a USB drive in Linux, Windows, and Mac.
  2. Providing USB sticks at the workshop to users who have not already installed the 3D printer software. The assumption is that we will preload the firmware onto the controller board.


Links

Tobben's Notes While Developing ISO

Porteus uses modules, Slackware style. We have ISO for

  • Printrun (including Pronterface)
  • Slic3r
  • XFCE (graphical environment)
  • Mozilla Firefox
  • Arduino
  • OpenSCAD

Two ISO images are maintained:

  • 32-bit. Enabling usage of legacy computers. Limited by 3 GB barrier.
  • 64-bit. Will be used most frequently.

New ISO's are created within Portheus with script /mnt/sdXN/porteus/make_iso.sh.

Maybe useful:

save-changes - dump whole changes from the live session into a module

Wrote ISO to USB stick

sudo dd if=Porteus-KDE4-v3.1-x86_64.iso of=/dev/sdc

Didn't work. Re-formatted USB stick, extracted contents of ISO file and put it on USB stick. Mounted USB-stick, copied Portheus files over there and ran the script

/media/torbjorn/Porteus/Porteus/boot/Porteus-installer-for-Linux.com

This produced a final message:

Installation finished successfully.
You may reboot your PC now and start using Porteus.
Please check the /boot/docs folder for additional information about
the installation process, Porteus requirements and booting parameters.
In case of making tweaks to the bootloader config,
please edit: /media/torbjorn/Porteus/Porteus/boot/syslinux/porteus.cfg file.

Didn't work. Made new ISO with following changes

  • UEFI support
  • 32-bit
  • FAT32 filesystem on stick

That did work, but FAT32 prevented anything from being stored on USB stick while in Porteus. Changed to ext4. Worked fine.

Guide to package creation and manipulation at porteus.org

Created xzm package that allows Pronterface to be run from source. File:Pront-package-incomplete.xzm

Made changes to /boot/syslinux/porteus.cfg to tailor a boot-mode for D3D Workshops.

Computer Models Verified to Boot

Computer Model Name ISO version Comment Links
Acer M5-581TG 64-bit and 32-bit Press "F2" on boot to enter BIOS. Change boot order in "boot" or enable F12 boot menu and use that.
Lenovo g580 64-bit Start with "Novo button" instead of usual power button and select boot menu, or press F2 on startup to enter boot menu. Disable "Secure boot", enable "legacy mode", enable "legacy first". [2], Extensive answer on askubuntu.com
Macbook Air from 2011 64-bit Hold left "alt"-key while turning on the computer. Keep holding alt pressed for several seconds. A boot screen should eventually appear.
ASUS ET2210INTS 64-bit and 32-bit Press "Esc" on power up to enter boot menu.
HP Pavilion zt3000 32-bit Press "F10". Has only 512MB of RAM, so try smallest ISO first.
Lenovo Thinkpad SL510 64-bit and 32-bit Press Thinkvantage button or F1 upon boot.
Dell Precision M6500 64-bit Press "F12". Excellent speed, 4 GB RAM. Creation Notes
Lenovo SL300 64-bit Press "F12" during boot.
Asus Zenbook UX32A 64-bit Get into BIOS: Restart Windows while pressing and holding F2 [3]
Acer Aspire One 722 64-bit and 32-bit Not sure but USB boots before hdd if present. Keyboard, basic video, touchpad/mouse, USB ports, WiFi works. Had to tweak setting for sound. 3.1 doesn't support suspend when lid closed. Submitted by Ed_P on Porteus forums [4], [5]
Acer Aspire One 725 64-bit UEFI. Disabled secure boot and USB boots before hdd if present. Keyboard, basic video, touchpad/mouse, USB ports, WiFi works. Had to tweak setting for sound. 3.1 doesn't support suspend when lid closed. Submitted by Ed_P on Porteus forums [6], [7]
Compaq CQ50-217nr Submitted by Jack on Porteus forums
Toshiba satellite z930 will boot USB automatically without intervening in the bios. Submitted by francois on Porteus forums [8]
MSI-340-x Press "F11" to enter BIOS. Submitted by francois on Porteus forums [9]
HP 1540ca Press F10 for BIOS. This should be good for most HP boxes. Submitted by francois on Porteus forums [10]
Asus g74s 64-bit Press "del" on boot to enter BIOS. Mark USB stick among "boot override" options and press enter.
Dell Inspiron 14 5000 series Secure boot disabled by entering BIOS (F2 during boot). Everything works out of the box. (including touch screen). Submitted by brokenman on Porteus forums [11]
Acer Aspire One Ultra Thin 32-bit Not sure but USB boots before hdd if present. Keyboard, basic video, touchpad/mouse, USB ports, WiFi works. May have had to tweak setting for sound. Submitted by Ed_P on Porteus forums [12]
Dell Latitude 610 32-bit. Porteus 3.0 Not sure but USB boots before hdd if present. Keyboard, basic video, touchpad/mouse, USB ports, WiFi works. Video distorted but works. [13]
Toshiba Satellite P50-A i7 Dual Graphics Disable secure boot in bios (F2 to enter bios). Submitted by brokenman on Porteus forums [14]
HP Pavilion dv6 Working out of the box. Submitted by brokenman on Porteus forums [15]
Asus N61J ... core i7 4gb ram ATI Radeon Mobility 5730 graphics works with propriety driver up to porteus 2.1

after that(3.x ) open source x11 Radeon driver is needed. To get better temperature performance I put

echo battery > /sys/class/drm/card0/device/power_dpm_state

in /etc/rc.d/rc.local. BIOS entry = F2, Boot menu = ESC, is UEFI(first gen) capable but I've never used it. Submitted by ncmprhnsbl on Porteus forums

[16]
Lenovo Thinkpad T-520 (from 2012) Disable UEFI and use legacy mode. Submitted by KnallKopf on Porteus forums [17]
Lenovo Thinkpad T-61 (from 2008) Has BIOS. But attention it exist a Anti-theft entry if it is enabled then you can not disable (Anti-theft of course)

In combination with Windows Lenovo install a dll which makes a remote access to your Laptop. At me it was complett removed from BIOS. These final adjustment is possible in Anti-theft entry. Submitted by KnallKopf on Porteus forums

[18]
Sony Vaio VPCEB27FX 64-bit F9 boot. Submitted by Jenna
Fujitsu P702 Fujitsu ScrollWheel and additional keys next to power button don't work, after resuming from suspend system may crash, the rest works good. Bios keys: F2, F12. Submitted by tome on Porteus forums [19]
Dell Inspiron 1525 64-bit works. F2 = Bios Setting, F12 = Boot Menu. Submitted by Jack on Porteus forums [20]
HP Chromebook 14 ("Coreboot" secure boot w/ SeaBios payload) To enable a USB boot first follow the procedure to setup Chromebook developer mode...

@ https://www.youtube.com/watch?v=UWXO61_v_xo

then ... when logged into Chromebook... Ctrl+Alt+right arrow ("F2")

then... type "root" press enter

then... type enable_dev_usb_boot press enter

then... Ctrl_Alt+left arrow ("F1")

then... open Chrome browser (while online) type "crosh" in the url and press enter

then... type "shell"

then... type cd; rm -f flash_chromebook_rom.sh; curl -O https://johnlewis.ie/flash_chromebook_rom.sh; sudo -E bash flash_chromebook_rom.sh

then... press enter and follow the instructions... WARNING: select only "RW_LEGACY" or you risk bricking the device

then... reboot

then... @ the developer boot screen... Ctrl+L

then... press (@ the prompt) Esc

then... select your device

Submitted by fullmoonremix on Porteus forums

[21]

Computer Models Not Booting D3D Porteus

Computer Model Name ISO version Comment Links
Dell XPS 13 2016 64-bit Press F12 during boot. Currently (March 24 2016) Won't start graphical mode, possibly because of an issue in the xorg package. http://forum.porteus.org/viewtopic.php?f=122&t=5310#p40021
HP Spectre x360 64-bit Error message in early boot process. Works with Nemesis because of its newer kernel. Submitted by kalo86 on Porteus forums. https://forum.porteus.org/viewtopic.php?f=61&t=5288
WYSE x90 with graphic VIA Chrome9 HC IGP Known bug caused by confusion between DVI and VGA in software. Xorg hangs and its log contains 'CHROME(0): Unable to find connected outputs'. Submitted by zion on Porteus forums. https://forum.porteus.org/viewtopic.php?f=61&t=4524
HP Mini 1000 Works with Porteus 3.0 and Porteus Kiosk 3.2, but not Porteus 3.1. Submitted by advb69 on Porteus forums. https://forum.porteus.org/viewtopic.php?f=61&t=4227
Macbook Pro EFI bootloader doesn't allow USB booting. Fix: Install rEFInd bootloader http://www.rodsbooks.com/refind/

Other Sources of Boot Information

Lenovo's support page on entering BIOS

Lists

Old ISO images

64-bit

Porteus-D3D-Workshop-x86_64-v0.iso

Porteus-D3D-Workshop-x86_64-v1.iso

32-bit

Porteus_with_Pronterface_Slic3r_Arduino_and_D3D_Conf_v0.iso.

Communications

Torbjorn: Configured a 32-bit (64-bit machines can also use it) Porteus Live OS ISO today, taking up 412 MiB space, but looks quite good (KDE4), runs very very fast, includes Pronterface source code and starts Pronterface on boot.

I'm on a slow connection, so iso will take another hour to upload...

See if you can get it to work. We can step through it at the meeting tomorrow. http://opensourceecology.org/wiki/D3D_Live_ISO#ISO_images

Mac Work

Steps to boot Porteus on Macbook Air 2011

  • Shut Down computer
  • Insert USB thumb drive with Porteus 64-bit and EFI support installed (D3D ISO will be uploaded soon)
  • Hold left "alt"-key while turning on the computer.
  • Keep holding alt pressed for several seconds. A boot screen should eventually appear.
  • The Porteus USB thumbstick will be represented by a yellow icon (sometimes with the text "windows", see picture). Choose Porteus using arrow keys and enter.
  • The Macbook air should now boot Porteus

Above steps tested and shown to work by Tobben on Feb 22 2016.

Research

Ubuntu.com article

http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-mac-osx

States:

Most Macs with Intel processors will work with either 64-bit or Mac images. If the 64-bit image doesn't work, try the Mac image.

Their DVD instructions simply consist of burning the iso onto the DVD with Disk Utility.

Recommends CD instead of USB.

Converts iso to an .img or .dmg file before using Disk Destroyer to burn the image onto the USB.

Makeuseof.com article

http://www.makeuseof.com/tag/how-to-boot-a-linux-live-usb-stick-on-your-mac/

Tested on 2011 Macbook pro.

Uses FAT32 ant master boot record partition.

Uses EFI boot.

Uses iso images that are somehow customized for mac.

support.apple.com article

https://support.apple.com/en-us/HT201663

Says we need GUID partition

rEFInd article

http://www.rodsbooks.com/refind/

Explains difference between boot manager and boot loader.

Says this about (U)EFI

Prior to mid-2011, few computers outside of Intel-based Macs used EFI; but starting in 2011,
computer manufacturers began adopting UEFI in droves, so most computers bought since then use EFI.

Randomtutor article

http://randomtutor.blogspot.co.uk/2014/01/installing-ubuntu-on-retina-macbook-pro_19.html

Uses Ubuntu USB for Mac OS X article mentioned above with 64-bit Mac iso image.

Installs and uses the rEFInd boot manager:

cd ~/Downloads/refind-bin-0.7.7  
./install.sh --alldrivers

NOTE: If you have Mac OS X 10.10 (Yosemite) installed, then the rEFInd installation needs to be handled differently. See [22].

Porteus Forum Thread 1

http://forum.porteus.org/viewtopic.php?f=81&t=4177

Says that Porteus-installer-for-Linux.com script installs a boot loader.

rEFInd Forum Thread 1

https://sourceforge.net/p/refind/discussion/general/thread/b9c7cefa/

Suggests we should try rEFInd and Porteus with EFI boot first. Note that Roderick W. Smith is the rEFInd dev himself.

Earlier Work

http://rafaelalcocer.com/downloads/index.php?dirpath=./3D-printer&order=0

A Porteus user that created a lot of related i486 xzm packages. His blog: [23].

The aruino.xzm of D3D Porteus uses his packages jre-7u40-i586-1.xzm and 010-avr-package-v0.3-1-1b.xzm to back up Arduino.

Stripping it down

Time order Change Measured in MiB saved
0 Replaced KDE with Xfce iso size 41
1 Removed dictionaries from Firefox Deployed size 0.6
2 Removed developer tools (make, gcc, etc) iso size 72
3 Removed changes folder Deployed size 80
4 Removed optional packages Deployed size 1.7
5 Removed unused geany scripts in avr package Deployed size 0.1
6 Removed geany plugins docs in avr package Deployed size 6.4
7 Removed man pages in avr package Deployed size 5.6
8 Removed kicad from avr package Deployed size 17
9 Removed /usr/share/doc from avr package Deployed size 13
10 Removed /usr/share/geany and geany-plugins from avr package Deployed size 2.6
11 Removed /usr/share/locale from avr package Deployed size 4.4
12 Removed geany binary from avr package Deployed size 2.3
13 Removed pcbnew and eeschema rests from kicad in avr package Deployed size 4.4
14 Removed kontrollerlab binary from avr package Deployed size 1.3
15 Removed ponyprog2000 from avr package Deployed size 0.8
16 Removed remaining kicad files from avr package Deployed size 1
17 Removed usr/lib/geany and geany-plugins from avr package Deployed size 1.5
18 Removed folder x86_64-unknown-linux-gnu from /opt/arduino/hardware/tools/avr Deployed size 0.9
19 Removed /opt/arduino/reference Deployed size 25
20 Removed /usr/doc and man from python deps package Deployed size 53
21 Removed locales from /usr/share/locale in python deps package Deployed size 9
22 Removed gtk-doc in python deps package Deployed size 14

On Creating xzm Packages

Note that the packages that are created below are thrown together to work for the first workshop. They do not follow the Slax or Porteus package standards perfectly (found here (Slax) and here (Porteus)).

Choice of Compiler Version

Porteus v3.1 that we're building upon ships with gcc-4.3.2 by default (inside the devel-package). D3D Porteus versions with OpenSCAD pre-installed ship with an additional gcc-5.3.0 package, because of this bug: SegFault: Linux, gcc-4.8.2 #514

Creating the gcc-5.3.0.xzm Package in D3D Porteus

These instructions are compiled from Installing GCC found on gnu.org.

Compiling GCC From Source Within Porteus 64-bit

  • The devel-package in Porteus v3.1 contains the prerequisities we need, make sure it is activated.
  • Download the source code to a hard drive. I use my computer's installed SDD disk found on /mnt/sda. See list of mirrors for download.
  • See list of gcc5 changes to know what you're installing. Note for example the new ABI for libstdc++. This could play a role in Porteus V3.1 since the package manager's binaries are probably compiled with gcc4. Be careful when using multiple compilers. For compiling libstd++ as the only statically linked library, use the -static-libstdc++ flag (see gcc link options).
  • Create a build directory (called objdir in the gcc documentation) separate from the directory containing gcc source code (called srcdir in gcc documentation)
mkdir /path/to/objdir
cd /path/to/objdir
  • Configure while still standing in objdir. These flags are just the ones I use. See the documentation for what they mean.
/path/to/srcdir configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/man --infodir=/usr/info \
                          --enable-shared --enable-bootstrap --enable-languages=c,c++,lto,fortran --enable-threads=posix \
                          --enable-checking=release --with-system-zlib --with-python-dir=/lib/python2.7/site-packages \
                          --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --with-gnu-ld \
                          --verbose --disable-gtktest --disable-multilib
  • Make the executables You could just run 'make' here (without the quotes). This command will take a while to finish.
make -j 2 BOOT_CFLAGS='-O2' bootstrap-lean
  • Also, make sure that gcc gets the -fPIC flag passed when building shared libraries (such as libstc++.so), see [24].

Installing to Staging area (fake root) and Packaging

  • Create a directory that will act as the fake root
mkdir /path/to/fakeRoot
  • Make sure you're still standing in objdir and do the install
make DESTDIR=/path/to/fakeRoot install
  • Create the compressed package
dir2xzm /path/to/fakeRoot gcc-5.3.0-x86_64.xzm
  • Move the package to your USB thumbdrive
mv gcc-5.3.0-x86_64.xzm /mnt/sdX1/porteus/optional

CAD Software

Compilation of OpenSCAD

  • Create a basedir to compile dependencies in later
mkdir -p openscadBasedir/usr
  • Set the BASEDIR variable for the setenv-unibuild.sh to use later.
BASEDIR=/path/to/openscadBasedir/usr
  • Get source code. The files will be quite big, so cd to a hard drive before proceeding.
git clone https://github.com/openscad/openscad.git
cd openscad

Compile OpenSCAD Dependencies

The Ones That the Repos Give us

  • Note that superuser privileges might be needed to execute some of the following commands. Change to super user with 'su'. Change back with 'exit'.
  • Start with git
usm -u all
usm -g git
  • Save and activate git
mv /tmp/usm/git-something.xzm /mnt/sdX1/porteus/modules
activate /mnt/sdX1/porteus/modules/git-something.xzm
  • Any qt-4 package usm gives you is good enough.
usm -g qt-4
  • Save and activate qt-4
mv /tmp/usm/qt-4.x.x_something.xzm /mnt/sdX1/porteus/modules
activate /mnt/sdX1/porteus/modules/qt-4.x.x_something.xzm
  • To get around the SegFault: Linux, gcc-4.8.2 #514, use any other C/C++-compiler than gcc4.8.2, gcc4.8.1, clang3.3 or clang3.4 when compiling from source. If you've compiled gcc-5.3.0 like explained above do
activate /mnt/sdX1/porteus/optional/gcc-5.3.0-x86_64.xzm

The Ones That Openscad Helps Us Compile

  • Openscad has scripts helping to install other dependencies. Run scripts from the openscad folder. First set variables and such with
source ./scripts/setenv-unibuild.sh
  • We need an empty file in gtk-doc to work around a quirk in ragel's build script:
mkdir -p /usr/share/gtk-doc/data
touch /usr/share/gtk-doc/data/gtk-doc.notmpl.make
  • Then run the script that downloads and installs all necessary dependencies to the BASEDIR. This will download a lot of source code and do lots of compilation. It will take a while. Notice that this will create and place a lot of un-movable shared object files in BASEDIR. We won't consider this a problem since we're building a static binary later. If you want movable .so files, you will have to modify the build script.
./scripts/uni-build-dependencies.sh
  • Clean up the 1.5 GB of source code
rm -r $BASEDIR/src

The One We Need to Fix Ourselves

  • The script does not build QScintilla for us, so that needs to be built from source as well. The following procedure follows the pattern from uni-build-dependencies.sh
wget http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.9.1/QScintilla-gpl-2.9.1.tar.gz
tar -xzvf QScintilla-gpl-2.9.1.tar.gz
cd QScintilla-gpl-2.9.1/Qt4Qt5
qmake qscintilla.pro PREFIX=$BASEDIR
make
make install
cd ../..

  • Package up, move to USB thumbdrive and activate temporarily. Since .so files point at BASEDIR internally, this is only valid and used during this specific compilation.
dir2xzm $BASEDIR openscad-deps-x86_64.xzm
activate openscad-deps-x86_64.xzm
  • Check if dependencies are OK. This might fail to discover our qt-4 installation, in wich case you can run 'qmake -v' or 'pkg-config -modversion QtCore' to check manually.
./scripts/check-dependencies.sh

Compile OpenSCAD Itself

  • Create the Makefile. Here, we send the -static flag to gcc, since OpenSCAD's dependencies will be used for OpenSCAD only (including gcc-5.3.0).
qmake openscad.pro PREFIX=/usr CONFIG+=libstatic
  • Compile the binary. This takes a while.
make -j2
  • Deactivate the openscad-deps package created earlier.
deactivate openscad-deps-x86_64.xzm
rm openscad-deps-x86_64.xzm
  • Test the binary
./openscad
  • Test that the binary was really statically compiled. This should produce no output.
lld openscad
  • Move files over to an installation dir
INSTALL_DIR=/path/to/some/installdir
INSTALL_ROOT=$INSTALL_DIR make install

Create the OpenSCAD Package

  • Create a desktop icon
mkdir -p $INSTALL_DIR/home/guest/Desktop
echo -e '#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nName=OpenSCAD\nExec=openscad\nIcon=openscad\nType=Application' > $BASEDIR/home/guest/Desktop/OpenSCAD.desktop
  • Fix the permissions and ownership of files
chown -R guest $INSTALL_DIR/home/guest
chgrp -R guest $INSTALL_DIR/home/guest
chmod a+x $INSTALL_DIR/home/guest/Desktop/OpenSCAD.desktop
  • Create the package and move it
dir2xzm $INSTALL_DIR openscad-with-deps-x86_64.xzm
mv openscad-with-deps-x86_64.xzm /mnt/sdX1/porteus/modules
  • Reboot and see it it worked. Note that the qt-4 package must be activated before calling the openscad executable binary.

Compilation of FreeCAD

These instructions were compiled from FreeCAD's official instructions.

Note that using FreeCAD requires a lot of RAM. One of Porteus' most distinct features is the ability to copy the whole OS to RAM at boot time, giving a very responsive usage experience. However, before using the copy2ram feature, we must translate free disk space-requirements into RAM-requirements.

FreeCAD depends on the OpenCasCade library which in itself requires ~600MB, just for storage, and an additional ~512MB RAM while running. Such high system requirements makes FreeCAD unusable with the copy2ram boot flag unless the used computer has 8 GiB or more of RAM.


Compile FreeCAD Dependencies

When building from source within a Porteus that is loaded into RAM, be sure to build in a directory with several GiB of free storage space. Even though we compiled the dependencies Boost and Eigen3 ourselves with gcc-5.3.0 in the OpenSCAD instructions above, we'll try to use versions compiled with gcc-4.3.2 for FreeCAD. FreeCAD, like OpenSCAD, depends on Python, git and Qt. See the OpenSCAD instructions for how to get this from Slackware's repos.

OpenCasCade

Build from source

git clone git://github.com/tpaviot/oce.git
cd oce
mkdir build
cd build
cmake -DOCE_INSTALL_PREFIX:PATH=/usr -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TGZ:BOOL=ON -DCPACK_BINARY_TZ:BOOL=OFF -DCPACK_SOURCE_TBZ2:BOOL=OFF -DCPACK_SOURCE_TGZ:BOOL=OFF -DCPACK_SOURCE_TZ:BOOL=OFF ..

The next step will take a long time to finish.

make -j2
make package
mv OCE-xxx.tar.gz OCE-xxx.tgz
txz2xzm OCE-xxx.xzm

Move the package to the USB thumbdrive and activate.

Boost

  • Available as precompiled package
usm -s boost

Coin3D

Build from source

wget https://bitbucket.org/Coin3D/coin/downloads/Coin-3.1.3.tar.gz
tar -xzvf Coin-3.1.3.tar.gz
mkdir Coin_install
mkdir Coin_build
cd Coin_build
../Coin-3.1.3/configure --prefix=/usr CC=gcc CXX=gcc 
make -j2
make DESTDIR=/path/to/Coin_install install

Tested this, and even tested the CMake branch. Both failed. The CMake version completed build, but SoQt later required a coin coin-config executable. This executable required a configuration file somewhere in /usr/share... Didn't manage to locate the coin-default.cfg file and put it in place.

SoQt

  • This is available as a Slackbuild, but depends on Coin3D to build.
usm -g SoQt

Xerces-C++

  • Build from source

Eigen3

  • Available as precompiled package
usm -s Eigen3

Shiboken

  • This is available as a Slackbuild.
usm -s shiboken

libarea

  • Build from source

Compile FreeCAD Itself

Get the latest FreeCAD source code.

git clone https://github.com/FreeCAD/FreeCAD.git free-cad-code

Arduino

This should get an xzm package containing java

usm -g openjre-7u79

This doesn't create a link to the executable java from /usr/bin, so lets add that

mkdir jav
xzm2dir openjre-7u79_b14-x86_64-bundle.xzm jav
cd jav/usr/bin
ln -s /usr/lib64/java/jre/bin/java java
cd ../../..
deactivate openjre-7u79_b14-x86_64-bundle.xzm
rm openjre-7u79_b14-x86_64-bundle.xzm
dir2xzm jav openjre-7u79_b14-x86_64-bundle_with_symlink.xzm
activate openjre-7u79_b14-x86_64-bundle_with_symlink.xzm

That should give you jre with the symlink.

Arduino itself is found in slackbuilds

usm -s arduino

If there's a md5sum mismatch, try

cat /tmp/usmsbo/arduino/arduino.info

to get the download url anyways, or clone the repo with

git clone https://github.com/arduino/Arduino.git

Independent of how you got the source code, put it in /tmp/usmsbo/aruino/arduino-1.6.5 and run usm again

usm -s arduino

For some reason, Arduino and openjre need gsettings-desktop-schemas to work together

usm -g gsettings-desktop-schemas

Getting Icon On Desktop

Navigate to where you put the arduino-1.6.5-x86_64-1_SBo.xzm package.

mkdir ard
xzm2dir arduino-1.6.5-x86_64-1_SBo.xzm ard
cd ard
mkdir -p home/guest/Desktop
echo -e '#!/usr/bin/env xdg-open\n'\
'[Desktop Entry]\n'\
'Type=Application\n'\
'Name=Arduino IDE\n'\
'GenericName=Integrated Development Environment\n'\
'Comment=An IDE for Arduino-compatible electronics prototyping platforms\n'\
'Exec=/opt/arduino/arduino\n'\
'Icon=/opt/arduino/lib/arduino.png\n'\
'Terminal=false\n'\
'Categories=Development;IDE;Electronics;\n'\
'MimeType=text/x-arduino\n'\
'Keywords=embedded electronics;electronics;avr;microcontroller;' > home/guest/Desktop/arduino.desktop
chown -R guest home/guest
chgrp -R guest home/guest
chmod u+x home/guest/Desktop/arduino.desktop
cd ..
deactivate arduino-1.6.5-x86_64-1_SBo.xzm
rm arduino-1.6.5-x86_64-1_SBo.xzm
dir2xzm ard arduino-1.6.5-x86_64-1_with_desktop_icon.xzm
activate arduino-1.6.5-x86_64-1_with_desktop_icon.xzm

That's it, now you should get a nice icon on your desktop when you activate the package.