I'm adapting the tinypilot code for the newly released tinycorelinux 13.1.0. So far it looks quite fine, the same SD-card can be used on all PIs (zero1, zero2, pi3, pi4 etc).
It's almost done, but I haven't do much testing yet.
If there is interest, I can post my image somewhere, and even send a PR to Sean's tinypilot.git repo.
What did you change? Did you need to rebuild any packages?
I plan to eventually get to this, but not sure when.
I started from a clean 13.1.0 and then re-done all the changes you did in the old one, including rebuilding all the extra packages (and in some cases upgrade to newer versions). Quite a bit of work...
Everything seems to work fine, except:
- gps detection on boot (not sure exactly if it is supposed to work anyway, and how - handled by /op/gpsprobe.py or handled by pypilot directly...)
- lirc kernel interface has changed (lirc_rpi is deprecated), I have done the changes to support the new interface but haven't tested - since I don't use IR, only RF
I'll put my image on a server in the next days, and you'll choose if you take it as it or if you prefer to update by yourself.
gps detection is difficult.
It uses udev rules to add /dev/gps* links to devices detected for this. The gpsprobe script probes gps into gpsd which works separately from pypilot. pypilot then learns from gpsd which ports not to use.
the lirc maybe works maybe not. The new lirc (not kernel module) I have not had good success with.
I would like to see your changes. Did you rebuild scipy?? Did you get away with not rebuilding everything? Did you do it on a pi 2 or pi 4? Does it still work on the pi zero?
GPS detection is still a mystery to me: gpsprobe is not called at all in the tinypilot image. If I add a service to run it, it will disrupt communication with the motor controller when it probes serial ports. And there is code for probing for GPS in pypilot, but it does not seem to be enabled. And sometimes on startup - but not always - pypilot thinks that the GPS is the weather sensors NMEA stream.
LIRC I gave up since I do not have the hardware nor the interest (RF is so much better)
I did rebuild all the packages (gfortran and scipy included). Build was done on a PI4 because it is faster. But the result (all the tinypilot distribution) works just fine on ALL the pis (original pi zero included). I haven't rebuilt wxwidgets nor opencpn.
I'm cleaning my tree and will be submitting PRs to pypilot and tinypilot very soon. And I will put the tinypilot image somewhere once I find how to properly shrink it (I'm using a 16GB card, but only 600M are used).
(BTW I have submitted a few trivial pypilot PRs a while ago and didn't see any feedback. Did you see them ?)
Well, it does work doesn't it? It is somewhat difficult to understand the order the scripts operate in.
For example, the serial ports can be opened in a way that a second program cannot open them. Furthermore it should only be probing ports that are suggested as possible gps based on udev rules.
Well it was difficult to build scipy but perhaps tinycore 13 is easier? Did you have to build gfortran manually as well?
Once you shrink the filesystem then partition, be sure to write the rest of the disk with zero. like dd if=/dev/zero of=/zero
until it fills the disk, then delete this file. It helps with compressing the image. I prefer to use xz compression.
Anyway, I may move to your image if it really is all working, but I would not suggest it as "stable" for some time due to the major changes in packages. The current image is built on a system already proven over many miles. I have produced (perhaps final) of tinycore 9:
https://pypilot.org/images/tinypilot_2021_11_16.img.xz
The image was mostly for pi zero before which did not run opencpn well. Now it might be nice to provide opencpn via tinycore rather than a serial console (full of strange messages)
Will be excited to test the tinycore 13 with the pi zero 2 as well.
For the GPS: it does work if the GPS is plugged in after the boot (which triggers the udev rules), but for some reason it does not work if the GPS is already plugged when the system comes up. I tried fixing it but didn't succeed, may come back to this later.
Yes, I rebuilt gcc, and blas and lapack. Scipy was built automatically by pip install
![Smile Smile](https://forum.openmarine.net/images/smilies/smile.png)
But it took a while, even on the PI4 !
I only have done minimal testing on my image, so by all means this is not to be considered production !
Allright, I see you done some changes to the scripts in /opt, namely networking.sh in your latest tinypilot_2021_11_16.img so I'll integrate and test these changes as well before releasing my image.
Oh, and I see this image is not listed on the download page at pypilot.org !
You may need to compare package sizes because this affects startup time. I optimized some packages to reduce size. It is amazing pip succeeded!
Does the same gps have the same issue with the image I posted? You would have to use a pi zero of course.
Well, for scipy I needed to add an extra swap file and of course compile to persistent storage not /tmp. Once again, you need a PI4 especially for the bigger RAM size, I saw that the memory usage of compile processes for scipy went up to 700M each...
yes, I did all this on a pi zero. I made 2 extra partitions, one for a few gb of swap, another to compile gfortran and scipy.
I would be concerned that what is compiled on a pi4 may not run on the armv6 of the pi zero unless it gets the right c flags overriding in every case which is not really proven.