prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.7k stars 1.93k forks source link

version of Slic3r Prusa edition or PrusaControl running on arm H3 (armhf or appimage) ? #564

Closed openelearning closed 5 years ago

openelearning commented 6 years ago

Hello,

I'm trying to make possible to deploy open source and open hardware nano computer and 3D printing for schools in France. Actually it seems that Original Prusa i3 MK3 and H3 SBC are a good choice for this. In order that the children could slice their 3D object, a slicer is needed, but it seems that actually there isn't Slic3r Prusa edition or PrusaControl running on arm H3 (armhf or appimage).

Operating system type + version

I'm using armbian for Orange PiPC+, the ubuntu xenial 16.04 legacy kernel that run armhf https://www.armbian.com/orange-pi-pc-plus/

Behavior

Other information that could help

Is it possible to have a version of Slic3r Prusa edition or PrusaControl running on arm H3 (armhf or appimage) ?

If yes, what I can do to help for this ? (I'm newbie in building package / compilation / using OBS, but I can spend time on learning, searching information, try to make crowdfunding for this...)

Thanks for your attention and help

openelearning commented 6 years ago

There is also already Slic3r projects in OBS : enter slic3r in https://build.opensuse.org/search

bubnikv commented 6 years ago

Will the old Slic3r 1.2.9 run for you? https://packages.debian.org/search?keywords=slic3r&searchon=names&suite=stable&section=all

I may get in touch with Chow Loong Jin, who maintains the Debian package, to get a hint why / how the Slic3r PE is failing to build on ARMs at the Debian's build servers.

Frankly porting Slic3r to ARM does not have much of a priority as the slicing is too slow on those little critters.

openelearning commented 6 years ago

Thanks a lot for your reply. The old Slic3r 1.2.9 seems not running for me on Orange Pic PC+ with armbian ubuntu desktop legacy : I have installed it with sudo apt-get install slic3r, and here what I have if try to launch it with terminal :

~$ slic3r --gui
Can't locate Wx.pm in @INC (you may need to install the Wx module) (@INC contains: /usr/bin/lib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/arm-linux-gnueabihf/perl5/5.22 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base .) at /usr/share/perl5/Slic3r/GUI/AboutDialog.pm line 6.
BEGIN failed--compilation aborted at /usr/share/perl5/Slic3r/GUI/AboutDialog.pm line 6.
Compilation failed in require at /usr/share/perl5/Slic3r/GUI.pm line 8.
BEGIN failed--compilation aborted at /usr/share/perl5/Slic3r/GUI.pm line 8.
Compilation failed in require at (eval 65) line 1.

I can't have the user interface, slic3r doesn't appear.

bubnikv commented 6 years ago

Sorry, we don't have resources as of now to prepare an ARM build. You may try to compile the Slic3r PE on your ARM and I will try to help you to solve your issues along the way. But it may take many iterations and I cannot promise a success.

We don't have an up to date build process description for LInux as of now, but the following should mostly work: https://github.com/alexrj/Slic3r/wiki/Running-Slic3r-from-git-on-GNU-Linux

you will also need to install the intel thread building block package.

openelearning commented 6 years ago

Thanks a lot for your reply, sorry for the delay I was searching partners and help for the project and trying to make a SBC x86 demo in order to start making demonstration.

Thanks a lot for your help ! Before trying to compile Slic3r PE on my ARM, do you thinks using OBS (http://openbuildservice.org/help/) could be more easier for a newbie as me ?

I have tried to to make this : https://build.opensuse.org/package/show/home:Ucino/Slic3rPrusaEdition but it doesn't work actually.

I have looked the spec files of other user that have build slic3r standard (https://build.opensuse.org/search and enter slic3r) (ie: https://build.opensuse.org/package/show/home:cgiboudeaux/slic3r ).

Do you think it will be easier than building on the arm ? (if yes I will try to solve the obs problem, if no I will try to learn to compile it on the ARM).

bubnikv commented 6 years ago

@openelearning Sorry, I cannot answer any of your questions without investing a lot of time.

openelearning commented 6 years ago

@bubnikv Ok, thanks for your reply, I will try to learn OBS, if I failed, I will try to to learn to compile the Slic3r PE on my ARM.

openelearning commented 6 years ago

thanks to @eyal0 that give these informations : "These are the instructions that I used for compiling Slic3r on a RaspberryPi with OctoPi: https://github.com/OctoPrint/OctoPrint-Slic3r/wiki/How-to-install-Slic3r-on-RPi"

openelearning commented 6 years ago

On https://packages.debian.org/sid/slic3r-prusa we can find that there is an armf version of slic3r PE It's maybe a very good news :) However on the armbian for orange PiPC+ ubuntu xenial 16.04 legacy, we can not run them with gdeby because of perl : it's 5.22, and this version of slic3r 1.38.0+dfsg-1 on sid need perl >= 5.26.1-2 So it seems that appimage is the easiest way to make slic3r PE running on orange pi H3 SBC on armbian. So OBS seems to be a nice to try, as OBS can make appimage for arm.

I will try to learn how I can make a nice spec file https://build.opensuse.org/package/show/home:Ucino/Slic3rPrusaEdition. It seems that one of the step for this is to complete the dependencies for the build on the spec file, i think that https://packages.debian.org/sid/slic3r-prusa and https://github.com/OctoPrint/OctoPrint-Slic3r/wiki/How-to-install-Slic3r-on-RPi can help me for that. Let's see...

eyal0 commented 6 years ago

@openelearning I tried to install the armhf package on my OctoPi Raspberry Pi but it didn't work. I think that it's due to missing dependencies.

The following packages have unmet dependencies:
 slic3r-prusa : Depends: perl (>= 5.26.1-2) but 5.20.2-3+deb8u9 is installed
                Depends: perlapi-5.26.1 but it is not installable
                Depends: libboost-atomic1.62.0 but it is not installable
                Depends: libboost-chrono1.62.0 but it is not installable
                Depends: libboost-date-time1.62.0 but it is not installable
                Depends: libboost-filesystem1.62.0 but it is not installable
                Depends: libboost-locale1.62.0 but it is not installable
                Depends: libboost-log1.62.0 but it is not installable
                Depends: libboost-regex1.62.0 but it is not installable
                Depends: libboost-system1.62.0 but it is not installable
                Depends: libboost-thread1.62.0 but it is not installable
                Depends: libglew2.0 (>= 1.12.0) but it is not installable
                Depends: libstdc++6 (>= 5.2) but 4.9.2-10 is installed
                Depends: libtbb2 but it is not installable
                Depends: libwxbase3.0-0v5 (>= 3.0.3.1+dfsg2) but it is not installable
                Depends: libwxgtk3.0-0v5 (>= 3.0.3.1+dfsg2) but it is not installable
                Recommends: libopengl-perl but it is not installed
                Recommends: libwx-glcanvas-perl but it is not installed
                Recommends: libxml-sax-expatxs-perl but it is not installed
                Recommends: libpdf-api2-perl but it is not installed
                Recommends: libio-all-perl but it is not installed
                Recommends: libsvg-perl but it is not installed

All the libboost 1.62 stuff is unavailable. I also had this problem when trying to compile >=1.38.0. I can't find that version from sudo apt-get install on my Raspberry Pi. What repository should I be using for Raspberry Pi3 jessie?

Thanks.

bubnikv commented 6 years ago

@eyal0 I wanted to accept your legacy boost compatibility patch, but I cannot find it. Would you please remind me where did you post it? Thanks.

eyal0 commented 6 years ago

@bubnikv I intentionally didn't make a PR because I think that supporting old boost is a bad idea. I was able to install new boost on RPi and compile the code without these changes. And the changes make the code look worse, not better. For most people, having a modern libboost won't be a problem. So I think that you should not do these changes. And you're not running old boost so you might at any point re-break old boost compatibility and we'd have to make another patch.

That said, here they are: https://github.com/eyal0/Slic3r/commit/af6eae7317a4c0db13fd80c9088bc2a60d7f9198

I also need to use this link to get it working: http://www.boost.org/doc/libs/1_65_1/boost/spirit/home/qi/copy.hpp

I didn't copy the first line of that function, not sure if it'll work. Actually, since I've already installed the new libboost on my system, I no longer have an easy way to test if it's broken with Boost1.55 unless I reformat my RPi!

bubnikv commented 6 years ago

Thanks, I will have to sleep on it.

On Tue, Dec 5, 2017 at 8:56 PM, Eyal notifications@github.com wrote:

@bubnikv https://github.com/bubnikv I intentionally didn't make a PR because I think that supporting old boost is a bad idea. I was able to install new boost on RPi and compile the code without these changes. And the changes make the code look worse, not better. For most people, having a modern libboost won't be a problem. So I think that you should not do these changes. And you're not running old boost so you might at any point re-break old boost compatibility and we'd have to make another patch.

That said, here they are: eyal0/Slic3r@af6eae7 https://github.com/eyal0/Slic3r/commit/af6eae7317a4c0db13fd80c9088bc2a60d7f9198

I also need to use this link to get it working: http://www.boost.org/doc/libs/1_65_1/boost/spirit/home/qi/copy.hpp

I didn't copy the first line of that function, not sure if it'll work. Actually, since I've already installed the new libboost on my system, I no longer have an easy way to test if it's broken with Boost1.55 unless I reformat my RPi!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/prusa3d/Slic3r/issues/564#issuecomment-349422345, or mute the thread https://github.com/notifications/unsubscribe-auth/AFj5I6JXwX4c1UrT5pnenJEIK5ztgUwPks5s9aAFgaJpZM4QO9lR .

openelearning commented 6 years ago

@hyperair maybe you have some ideas where I can try to investigate in order to have https://build.opensuse.org/package/show/home:Ucino/Slic3rPrusaEdition# working for appimage armv6l or armv7l (they are both excluded), for example if I had to find some package to add in BuildRequires: in https://build.opensuse.org/package/view_file/home:Ucino/Slic3rPrusaEdition/slic3rPrusaEdition.spec?expand=1 ? [edit : the solution was to use appimage.yml file instead of .spec file]

openelearning commented 6 years ago

This page will be very usefull : https://github.com/AppImage/AppImageKit/wiki/Using-Open-Build-Service & https://build.opensuse.org/package/show/OBS:AppImage/AppImageKit

openelearning commented 6 years ago

Here some new test using OBS to make armv7 appimage (without success actually, I have 2 errors : nothing provides perl(OpenGL), nothing provides perl(Wx::GLCanvas) ) : https://build.opensuse.org/package/show/home:Ucino:branches:OBS:AppImage:Templates/Slic3rPrusaEdition#

bubnikv commented 6 years ago

You may need to build and install the two packages using cpan. Those packages would likely be installed by running perl Build.PL from inside the Slic3r directory.

But take these advices with a grain of salt, I have no experience with the OBS, so I don't know what kind of functionality it offers.

On Thu, Dec 7, 2017 at 2:03 AM, openelearning notifications@github.com wrote:

Here some new test using OBS to make armv7 appimage (without success actually, I have 2 errors : nothing provides perl(OpenGL), nothing provides perl(Wx::GLCanvas) ) : https://build.opensuse.org/package/show/home:Ucino: branches:OBS:AppImage:Templates/Slic3rPrusaEdition#

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/prusa3d/Slic3r/issues/564#issuecomment-349827290, or mute the thread https://github.com/notifications/unsubscribe-auth/AFj5Iw-hsAxSxzsdNLN5j_hT2rWqwBVDks5s9zllgaJpZM4QO9lR .

openelearning commented 6 years ago

Thanks a lot for your help @bubnikv :) luc14n0 is helping to make an appimage on https://build.opensuse.org/package/show/home:luc14n0/slic3r and he solve the problem of perl(OpenGL), and perl(Wx::GLCanvas). He's trying to solve other problems now.

bubnikv commented 5 years ago

You may guys try to compile the current Slic3r master on ARM. https://github.com/prusa3d/Slic3r/blob/master/doc/How%20to%20build%20-%20Linux%20et%20al.md

A command-line slic3r is compiled with an additional cmake switch

-DSLIC3R_GUI=no

bubnikv commented 5 years ago

No response. I was able to compile PrusaSlicer on an Android e-ink reader, so you should be able to compile on whatever reasonable ARM distribution you pick. Successful headless compilation was reported on R-Pi. Closing.

openelearning commented 5 years ago

I'm really sorry for not having replied before. Thanks a lot for the link, this will help me, and this really usefull that we can now use PrusaSlicer on arm distribution. For the moment I have give up the use nanocomputer to make gcode, but I will try later, and give you feedback. The project is going well, French schools want to benefit it, and the project has been nominated for an innovation competition. A pedagogical project have been also made to show the interest of open source and open hardware solutions : https://www.open-elearning.com/magano/magano-education/monumentuss/

openelearning commented 5 years ago

(for the moment nanocomputer has been replaced by old computer as you can see on this project : https://www.open-elearning.com/magano/magano-education/equiper-ethiquement-les-ecoles-primaires/ the goal of this second project is to find solutions to make easy to any school to have open source and open hardware digital tools (computer, 3D printer, IA module...).

probonopd commented 5 years ago

@bubnikv shall we make an AppImage for Raspberry Pi?

bubnikv commented 5 years ago

@probonopd appimage for Raspberry PI would be nice. We need to find some time to set up a build server for another target.

so 25. 5. 2019 v 1:26 odesílatel probonopd notifications@github.com napsal:

@bubnikv https://github.com/bubnikv shall we make an AppImage for Raspberry Pi?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/prusa3d/PrusaSlicer/issues/564?email_source=notifications&email_token=ABMPSI4COMH5WZHZ4LGULQTPXB2SLA5CNFSM4EB33FI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWGYDUQ#issuecomment-495813074, or mute the thread https://github.com/notifications/unsubscribe-auth/ABMPSIZ2P5W6WQPOXNXG543PXB2SLANCNFSM4EB33FIQ .

probonopd commented 5 years ago

We produce some ARM binaries for https://github.com/AppImage/AppImageKit/releases using Travis CI and Docker images for crosscompiling. Maybe @theassassin can give you some hints.

bubnikv commented 5 years ago

Thanks for the hint.

po 3. 6. 2019 v 16:35 odesílatel probonopd notifications@github.com napsal:

We produce some ARM binaries for https://github.com/AppImage/AppImageKit/releases using Travis CI and Docker images for crosscompiling. Maybe @TheAssassin https://github.com/TheAssassin can give you some hints.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/prusa3d/PrusaSlicer/issues/564?email_source=notifications&email_token=ABMPSI6E44UTYHMGGEO2EB3PYUT4VA5CNFSM4EB33FI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWZTHHA#issuecomment-498283420, or mute the thread https://github.com/notifications/unsubscribe-auth/ABMPSI2AFRWDU477QT5I2I3PYUT4VANCNFSM4EB33FIQ .

mmiscool commented 4 years ago

No response. I was able to compile PrusaSlicer on an Android e-ink reader, so you should be able to compile on whatever reasonable ARM distribution you pick. Successful headless compilation was reported on R-Pi. Closing.

Any details on how to compile and run on android for the command line version. I have managed to use busy box on android and would love to use this thing.

bubnikv commented 4 years ago

Got it working, but it is quite convoluted and the software 3D rendering is very slow. https://twitter.com/bubnikv/status/1270966793419526145