User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Desktop Development

Sun Aug 25, 2019 8:51 am

I use Pi's in gadgets, but now the Pi4 is good enough to be used to help make those gadgets

In no particular order this is an incomplete list of things I use on PC's and Pi3's that now work on Pi4's.
Most of these have had minimal testing, some are nearly working.

Geany- my default editor and simple compile/build/run IDE.

Microcontrollers -
Arduino IDE, some boards report a missing arm compiler and OpenOCD.
OpenOCD did compile and run, so probably a path issue.
FlashROM also complies and runs.

I use Cypress PSoC micros as well, they could be a problem.

Languages - pre-installed
GCC - 9.1.0
Go - 1.12.7
Rust - 1.36.0

Free Pascal will run from a binary but the aarch64 version is newer than the required Lazarus/fpc build version. Lots of learning to fix this.

Ponyc - compiled on previous Pi3B+/Gentoo64. just requires an old LLVM version.

CAD/CAM -
OpenSCAD
FreeCAD, most of the prerequisites seem to compile. a bit more googling and trying stuff should get this to go.
LinuxCNC, seen videos of it running on Pi4's.

Inkscape is the free 2D software used by the laser cutter guys.
Got the source, will it build, make, install?

Which version of Blender? Blender for Artists (lite 0.95) compiled and ran previously.

Software toolsets - for making OS's, apps, UI's for said gadgets etc.
Ultibo, needs Lazarus/fpc working on aarch64.
OpenGL, OpenGLES, both working via the Mesa drivers.
NanoVG as OpenVG replacement on Pi4?
Baremetal tools in C, C++,Rust, Pascal are around and getting bigger and better.

PCB generating software -
Kicad, works on Buster but is a big build on Gentoo64.
I expect it will build if I leave it overnight, it was doing ok till my Pi4B2 ran out of memory.

FPGA - TBA
Using Pi's for development means designing the next gen of software and hardware.
New open source FPGA software were working on Pi3B+/Stretch.

So what else does a Fourth Industrial Age Maker need?
Robotic Igor's?
3D printers, Laser, plasma, waterjet cutters, EDM, CNC mills/lathes etc.
These are the new slaves of the industrial revolution.
Productivity multipliers.

Do those Igor's need brains?
AI/ML/NN, all these should run much better on Pi4's.
One reason is OpenCL is supposed to work on the VC6.
It is the reason I think I need a 64bit OS.

Tensorflow Lite - now on micros even smaller than Pi's :D
Leaf- Rust based AI, worked before on Stretch and Pi3B.

AI on new chips like the K210 and small FPGA's, need RISC-V compilers
These can be compiled on Pi's, 13hrs with Pi3B+, 6hours on Pi4.

Some people see the Pi's as Desktop office replacement PC's.
Some see them as YouTube, Gaming and Browser entertainment units.
I see them as part of the Spike, tools for making the future.

Design and Make the Future on Pi's.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Sat Oct 26, 2019 1:14 am

Blender for Artists 1.0.0 is based on Blender 2.7.9b which is the last Blender version Pi's can use, as from Blender 2.8.0 OpenGL3.3 is used.
https://www.bforartists.de/.
Grab the source code for 1.0.0

Apart from the need to skip building some dependencies, this is a relatively easy build.
Use "make lite" to get going first, not sure about a "make" full, that might fail on Linux.
There is a nice BIG manual that is available in chapters too.

This sort of application highlights the need for big screens, but even two old monitors can help.
It has been over a year since I first got this to compile on a Pi3B+.
On a Pi4B4 it is now very usable and as it is the last Blender version we can use it is the one to learn.

Interestingly Blender for Artists 2.0 (Blender 2.8.2) will build but pops up a OpenGL3.3 message
Maybe one day there will be a Pi Vulkan driver and Vulkan version of Blender?
Attachments
b4a1.png
b4a1.png (207.4 KiB) Viewed 2362 times
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Tue Oct 29, 2019 11:38 am

Inkscape emerges and works and version 0.92 has some Gcode tools.
Mills, lathes, laser and plasma cutters, engravers and plotters. :D
Some of my favourite tools rusting away in the basement ;)

Blender for Artists and Inkscape, both pretty serious tools, lucky there are tutorials.

Ok, Gentoo64 is broken? :oops:
What does masked mean?
Also tried to emerge Warzone2100 again and got the same "masked "message.

Code: Select all

pi64 /home/demouser # emerge -a -v media-gfx/krita

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy "media-gfx/krita" have been masked.
!!! One of the following masked packages is required to complete your request:
- media-gfx/krita-4.2.7.1::gentoo (masked by: missing keyword)
- media-gfx/krita-4.1.8-r1::gentoo (masked by: missing keyword)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

pi64 /home/demouser # 

Attachments
inkscapecar.png
inkscapecar.png (255.91 KiB) Viewed 2249 times
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
sakaki
Posts: 464
Joined: Sun Jul 16, 2017 1:11 pm

Re: Desktop Development

Tue Oct 29, 2019 9:37 pm

So, "masked by: missing keyword" just means that a Gentoo dev hasn't yet verified that the build works correctly on your target architecture.

If you look at the package in question, you'll see it is currently only keyworded for PCs:

Code: Select all

if [[ ${KDE_BUILD_TYPE} = release ]]; then
	SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz"
	KEYWORDS="~amd64 ~x86"
fi
To try building it on arm64 anyway, just create a file /etc/portage/package.accept_keywords/krita, and put in there:

Code: Select all

media-gfx/krita * ~*
This means (as documented in the readme) to treat as an acceptable build candidate, any ebuild marked as stable (the "*") or testing (the "~*") on any architecture.

With this set up, you can try emerging your target package again.

NB there is no guarantee that a package you call out this way will build successfully on arm64, but most of the time (unless it contains e.g. platform-specific assembler or similar), it will work out fine. The only way to see is to try it!

hth, sakaki

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Tue Oct 29, 2019 11:57 pm

I don't remember having to make package accepts files for trying things before.
Perhaps more things are masked now?
NB there is no guarantee that a package you call out this way will build successfully on arm64, but most of the time (unless it contains e.g. platform-specific assembler or similar), it will work out fine. The only way to see is to try it!
Surprisingly more than half I have tried are clean C code and just build on arm64 :D
The big stuff can have a dependency issues and x86 assembler grinds everything to a halt.
Sometimes it is just 4 functions with some x86 asm code.
I don't know asm64 asm so ~20 lines of simple code can stop it working.
But there is usually more alternative apps :D

Already I have enough to keep me learning for a few years.
It is getting to the the time to stop learning what works and what does not and start using.

FreeCAD and Lazarus/FPC are the last two on my list I need for making stuff, no real alternatives and I know those already.
Mainstream is well on it's way to fixing those two.
Having two screens makes so much difference to learning and it is hard to bump into the 4GB limit on the Pi4B4.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Fri Nov 01, 2019 8:26 am

Using Pi's for FPGA development tick :D

Free development tools for some small FPGAs.
http://www.clifford.at/icestorm/
NextPNR does not build, but perhaps Arachne-PNR is enough to get started?

Considering FPGAs are now down to a few dollars and 16 pin parts they might be an interesting thing to have in a makers toolbox.
It has always been expensive to use FPGA tools.
Not any more.

IoT, Edge, AI, NN, ML and low power FPGA's can be explored by home hackers with a Pi4.
All sorts of interesting things can happen with tools like this.

Some of my wishes for a home system that FPGA's could help with
A robot that picks up Legos.
A bird scarer to protect the fruit trees.
Slug and Snail hunter to save the lettuce.
Robot lawn mower.

A steep learning curve or will it be easy?
Just having the tools is the biggest step.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Fri Nov 01, 2019 9:00 am

media-gfx/krita * ~*
Thanks Sakaki.
This looked like it worked and a hours long emerge happened.
The message seemed to indicate it worked but no icon appeared anywhere.
Used the same method for Warzone2100 and that worked.

But looking at that krita ebuild I see opencolorio, openexr.
I know I had to skip them for BforArtists.
So perhaps I misread the emerge output, where do the logs go?

Ok, found the wiki and Gentoo Handbook.
https://github.com/sakaki-/gentoo-on-rp ... der-gentoo
That seemed to work to emerge "shed".
Bookmarked.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Sat Jan 18, 2020 8:55 am

Hi Sakaki,
Been working a lot with the Lite version and Openbox Window Manager.
While looking at Desktop Managers I came across Enlightenment.
It is one of the few that will run on Wayland as well.
It also has just the basics I need for a Development Desktop OS with an IDE.

Doing an "emerge x11-wm/enlightenment" brings up USE="...
What does that mean?
I looked at your Gentoo Wiki's and Enlightenment needs SystemD?
Will it run on OpenRC?

I am trying to make an Enlightenment x11 Desktop and compare that to a Enlightenment Wayland version.
I cannot seem to find a USE="..." combo that works.

While Enlightenment Desktop would be nice I'm also trying to get Wayland working first.
I'm using this as my reference and getting lost.
https://wiki.gentoo.org/wiki/Sakaki%27s ... der_OpenRC
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
sakaki
Posts: 464
Joined: Sun Jul 16, 2017 1:11 pm

Re: Desktop Development

Tue Jan 21, 2020 1:23 pm

Gavinmc42 wrote:
Sat Jan 18, 2020 8:55 am
Doing an "emerge x11-wm/enlightenment" brings up USE="...
What does that mean?
I looked at your Gentoo Wiki's and Enlightenment needs SystemD?
Will it run on OpenRC?
What is the error message exactly? You have truncated it at USE="... in the above?
AIUI it should be possible to use Enlightenment without systemd - you just need elogind. Also, you don't need Wayland (at least not initially), so I'd try building it on X first.

I'll have a look at this when I get a moment - the start of this year has been pretty hectic in day-job land ^-^

Best, sakaki

User avatar
sakaki
Posts: 464
Joined: Sun Jul 16, 2017 1:11 pm

Re: Desktop Development

Tue Jan 21, 2020 3:11 pm

OK, so I've just built this and pushed it to the binhost. Added the necessary USE flags and accept_keywords entries to the custom profile too. So, to get it, simply:

Code: Select all

[email protected] ~ $ sudo emaint sync --repo genpi64
[email protected] ~ $ sudo emerge -v x11-wm/enlightenment
NB you may have to undo any custom /etc/portage/package.{use,unmask,accept_keywords} stuff you put in when trying to get this to build, first.

This is an X, no systemd, no Wayland build.

hth, sakaki

User avatar
Gavinmc42
Posts: 4287
Joined: Wed Aug 28, 2013 3:31 am

Re: Desktop Development

Wed Jan 22, 2020 1:04 am

Thank Sakaki,
I got stuck in USE options, just randomly trying combos.
I did try elogind but still a beginner, if emerge works then I' m ok, if not then I'm off piste or on a Black diamond run.
Lots of the pieces seemed to be there already, I just don't have enough experience yet to join the dots.

X11 is fine for me to test and learn Enlightenment.
If it is suitable for my Development Desktop use then Wayland is an option in the future.
RPF had spoken about Wayland in the early days, it is getting closer for the average user.

Playing with your Lite Gentoo64 and Openbox WM got me hooked on learning more about WM/DMs.
That wiki was very useful, you need to put it in the index, it can be hard to find.
When you have time update it with the Enlightenment option.
the start of this year has been pretty hectic in day-job land ^-^
I noticed, I also saw Enlightenment get closer after my last genup the other day ;)
I suspected you might be working on it, thanks again.

For the last week I was trying to get Enlightenment on Debian64, no luck there either.
No trouble getting Openbox running, your wiki helped.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

Return to “Gentoo”