Hello!
For anyone else following along at home like me who was wondering where the `v1.9.1` version of INDI could be found: it is not currently a tagged release.
As far as I can tell, it just seems to be whatever is available in the master branch beyond the `v1.9.0` tag.
When I compiled against the following INDI and INDI 3rd Party commits, I got Ekos to show up in KStars:
* INDI @ [`a59f2f570465ce28c535770d451e334b4fb661db`](github.com/indilib/indi/commit/a59f2f570...770d451e334b4fb661db)
* INDI (3rd Party Content) @ [`067635f765232a0339476ea3d048d81497478088`](github.com/indilib/indi-3rdparty/commit/...6ea3d048d81497478088)
Read More...
Hello again!
The 64-bit install of Raspberry Pi OS was successful. After building everything from source, I don’t seem to get out of memory crashes anymore. Yay! One less problem to deal with.
If the FITS Viewer is only used because the code hasn’t been updated to allow the use of the new non-ui method, it might be worth revisiting/updating at some point. I’m guessing it probably won’t be high on the list, but I think it would make the UX and App behaviour more consistent. I might have a crack at some point but at the moment I’m really unfamiliar with the source and mechanisms involved.
Thanks for your help @knro!
Read More...
Raspberry Pi 4 Memory
Apparently
64-bit Raspberry Pi OS is a thing
. The
forum post
seems quite old and has no mention of it going out of beta, but the latest build is as recent as August of last year.
I might give it a go to see if I can build everything against it to squeeze that extra memory into userland processes. Hopefully it doesn't wind up being a waste of time...!
Use FITS Viewer Setting
At the risk of misunderstanding the way things work, I had a dive into the KStars source last night.
On
Line 6298 of kstars/ekos/capture/capture.cpp
, I found the following chunk (some bits removed for brevity):
// Check if we need to do flat field slope calculation if the user specified a desired ADU value
if( ..... ) {
if (Options::useFITSViewer() == false)
{
Options::setUseFITSViewer(true);
qCInfo(KSTARS_EKOS_CAPTURE) << "Enabling FITS Viewer...";
}
....
Hey @knro,
Memory
That's a very good point. I can't believe that didn't even occur to me.
You're absolutely right. I ran kstars up with gdb and set it to take 20 flats, and got this...
Greetings!
KStars/Ekos has been crashy on my Pi 4 and I have been trying to track down the cause. I do not have hard evidence (yet), but I suspect that the FITS Viewer may be at least partially to blame. When I disable the FITS Viewer, things seem to run much more reliably (though not all crashes are solved).
The two conditions that seem to trigger crashes with the FITS Viewer are when I zoom in significantly, and lots of images coming in quickly. Taking flats fits into the second category. In order to combat this, I run with the "Use FITS Viewer" option unchecked.
---
The point of this thread is that when I take images with "Flat" selected for the Type in Ekos:
Thanks @nou!
Some combination of installing the following packages seems to have gotten it working:
Thanks @knro! I'm having a poke around now learning about QML and QT Quick.
I don't know if I've got the appropriate QT/Quick libraries installed on the pi so I'm grabbing and recompiling those now. Unfortunately things are slow-going because recompiling on the pi is a lengthy process.
Would I be correct in assuming that the QML gets built / is not a file accessed at runtime? I ask this as I can only find one copy of the mountbox.qml file on my raspberry pi, and that is in the repository path at 'kstars/data/qml/mount/mountbox.qml'.
Thank you for your response!
Read More...
Greetings! This is my first post, so if I've put this in the wrong spot for a debugging/crash analysis question, please feel free to shuffle it around as necessary.
I am currently experiencing a segmentation fault when connecting to my HEQ5 Pro using the EQMod Mount driver, when running a debug build on my raspberry pi. I don't want to log it as a bug just yet because chances are that it's something that I've done (or not done) causing the segfault, hence why I'm posting here first.
I'm hoping for some help to try and figure out why I'm getting this segfault, so I can fix it up and get back to dealing with the original crashes...!
If I have not provided something that might be important please let me know and I'll gather it for you.
Thanks in advance!
Key Details
pi@raspberrypi:~ $ gdb kstars
GNU gdb (Raspbian 8.2.1-2) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from kstars...done.
(gdb) r
Starting program: /usr/bin/kstars
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0xaf6740a0 (LWP 2023)]
qt5ct: using qt5ct plugin
[New Thread 0xa95460a0 (LWP 2024)]
[New Thread 0xa88d60a0 (LWP 2025)]
[New Thread 0xa66ff0a0 (LWP 2026)]
[New Thread 0xa44ff0a0 (LWP 2027)]
[New Thread 0xa18f40a0 (LWP 2028)]
[New Thread 0xa0a410a0 (LWP 2029)]
[New Thread 0xa00ff0a0 (LWP 2030)]
[New Thread 0x9f8fe0a0 (LWP 2031)]
[New Thread 0x9f0fd0a0 (LWP 2032)]
[New Thread 0x9e8fc0a0 (LWP 2033)]
[New Thread 0x9ddfb0a0 (LWP 2034)]
[New Thread 0x9bdfa0a0 (LWP 2035)]
[Thread 0x9bdfa0a0 (LWP 2035) exited]
[Thread 0xa0a410a0 (LWP 2029) exited]
[Thread 0x9f0fd0a0 (LWP 2032) exited]
[Thread 0xa00ff0a0 (LWP 2030) exited]
[Thread 0x9ddfb0a0 (LWP 2034) exited]
[Thread 0xa44ff0a0 (LWP 2027) exited]
[Thread 0xa66ff0a0 (LWP 2026) exited]
[Thread 0xa88d60a0 (LWP 2025) exited]
[New Thread 0x9ddfb0a0 (LWP 2036)]
[New Thread 0xa66ff0a0 (LWP 2037)]
[New Thread 0xa44ff0a0 (LWP 2038)]
[New Thread 0x9b1ff0a0 (LWP 2039)]
[Detaching after fork from child process 2040]
[Detaching after fork from child process 2041]
[Detaching after fork from child process 2042]
[New Thread 0xa88a30a0 (LWP 2046)]
[New Thread 0xa7e860a0 (LWP 2050)]
Dispatch command error(-1): Device ZWO CCD ASI294MM Pro not found
<setTextVector device="ZWO CCD ASI294MM Pro" name="DRIVER_INFO" state="Idle" timeout="60" timestamp="2021-03-03T10:26:28">
<oneText name="DRIVER_NAME">
ZWO CCD
</oneText>
<oneText name="DRIVER_EXEC">
indi_asi_ccd
</oneText>
<oneText name="DRIVER_VERSION">
1.9
</oneText>
<oneText name="DRIVER_INTERFACE">
2
</oneText>
</setTextVector>
Dispatch command error(-1):
<setTextVector device="GPSD" name="TIME_UTC" state="Busy" timeout="60" timestamp="2021-03-03T10:26:32">
<oneText name="UTC"/>
<oneText name="OFFSET"/>
</setTextVector>
Dispatch command error(-1): INDI: Could not find property GEOGRAPHIC_COORD in GPSD
<setNumberVector device="GPSD" name="GEOGRAPHIC_COORD" state="Busy" timeout="60" timestamp="2021-03-03T10:26:32">
<oneNumber name="LAT">
0
</oneNumber>
<oneNumber name="LONG">
0
</oneNumber>
<oneNumber name="ELEV">
0
</oneNumber>
</setNumberVector>
Dispatch command error(-1): INDI: Could not find property GEOGRAPHIC_COORD in GPSD
<setTextVector device="GPSD" name="GPS_STATUS" state="Busy" timeout="60" timestamp="2021-03-03T10:26:32">
<oneText name="GPS_FIX"/>
</setTextVector>
Dispatch command error(-1): INDI: Could not find property POLARIS in GPSD
<setNumberVector device="GPSD" name="POLARIS" state="Busy" timeout="60" timestamp="2021-03-03T10:26:32">
<oneNumber name="HA">
0
</oneNumber>
</setNumberVector>
Dispatch command error(-1): INDI: Could not find property POLARIS in GPSD
<setSwitchVector device="GPSD" name="GPS_REFRESH" state="Busy" timeout="0" timestamp="2021-03-03T10:26:32">
<oneSwitch name="REFRESH">
Off
</oneSwitch>
</setSwitchVector>
Dispatch command error(-1): INDI: Could not find property POLARIS in GPSD
<setTextVector device="GPSD" name="GPS_STATUS" state="Busy" timeout="60" timestamp="2021-03-03T10:26:32">
<oneText name="GPS_FIX">
NO FIX
</oneText>
</setTextVector>
[New Thread 0xa0a410a0 (LWP 2055)]
[New Thread 0xa00ff0a0 (LWP 2056)]
Thread 1 "kstars" received signal SIGSEGV, Segmentation fault.
0xb4567068 in QObject::setProperty(char const*, QVariant const&) () from /lib/arm-linux-gnueabihf/libQt5Core.so.5
(gdb) bt
#0 0xb4567068 in QObject::setProperty(char const*, QVariant const&) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#1 0x00c019a0 in Ekos::Mount::Mount() (this=0x4d036b0) at /home/pi/repos/kstars/kstars/ekos/mount/mount.cpp:231
#2 0x0095dff4 in Ekos::Manager::initMount() (this=0x4273b80) at /home/pi/repos/kstars/kstars/ekos/manager.cpp:2432
#3 0x00956750 in Ekos::Manager::setTelescope(ISD::GDInterface*) (this=0x4273b80, scopeDevice=0x4e73f40)
at /home/pi/repos/kstars/kstars/ekos/manager.cpp:1439
#4 0x00998678 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<ISD::GDInterface*>, void, void (Ekos::Manager::*)(ISD::GDInterface*)>::call(void (Ekos::Manager::*)(ISD::GDInterface*), Ekos::Manager*, void**) (f=
(void (Ekos::Manager::*)(Ekos::Manager * const, ISD::GDInterface *)) 0x9566a4 <Ekos::Manager::setTelescope(ISD::GDInterface*)>, o=0x4273b80, arg=0xbeffeb5c) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:134
#5 0x00992d28 in QtPrivate::FunctionPointer<void (Ekos::Manager::*)(ISD::GDInterface*)>::call<QtPrivate::List<ISD::GDInterface*>, void>(void (Ekos::Manager::*)(ISD::GDInterface*), Ekos::Manager*, void**) (f=
(void (Ekos::Manager::*)(Ekos::Manager * const, ISD::GDInterface *)) 0x9566a4 <Ekos::Manager::setTelescope(ISD::GDInterface*)>, o=0x4273b80, arg=0xbeffeb5c) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:167
#6 0x009871fc in QtPrivate::QSlotObject<void (Ekos::Manager::*)(ISD::GDInterface*), QtPrivate::List<ISD::GDInterface*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
(which=1, this_=0x46b0230, r=0x4273b80, a=0xbeffeb5c, ret=0x0)
at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:396
#7 0xb455f380 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#8 0x007c342c in INDIListener::newTelescope(ISD::GDInterface*) (this=0x452ec88, _t1=0x4e73f40)
at /home/pi/Projects/build/kstars/kstars/KStarsLib_autogen/FRI4DANIHA/moc_indilistener.cpp:401
#9 0x00895154 in INDIListener::registerProperty(INDI::Property*) (this=0x452ec88, prop=0x4e0dd70)
at /home/pi/repos/kstars/kstars/indi/indilistener.cpp:256
#10 0x0089ab7c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<INDI::Property*>, void, void (INDIListener::*)(INDI::Property*)>::call(void (INDIListener::*)(INDI::Property*), INDIListener*, void**) (f=
(void (INDIListener::*)(INDIListener * const, INDI::Property *)) 0x894e00 <INDIListener::registerProperty(INDI::Property*)>, o=0x452ec88, arg=0x4e71a70) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:134
#11 0x0089a5ac in QtPrivate::FunctionPointer<void (INDIListener::*)(INDI::Property*)>::call<QtPrivate::List<INDI::Property*>, void>(void (INDIListener::*)(INDI::Property*), INDIListener*, void**) (f=
(void (INDIListener::*)(INDIListener * const, INDI::Property *)) 0x894e00 <INDIListener::registerProperty(INDI::Property*)>, o=0x452ec88, arg=0x4e71a70) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:167
#12 0x008993d4 in QtPrivate::QSlotObject<void (INDIListener::*)(INDI::Property*), QtPrivate::List<INDI::Property*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x46b9400, r=0x452ec88, a=0x4e71a70, ret=0x0)
at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:396
#13 0xb455bc68 in QMetaCallEvent::placeMetaCall(QObject*) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#14 0xb455fbec in QObject::event(QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#15 0xb4ce2db4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#16 0xb4ceb2a8 in QApplication::notify(QObject*, QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#17 0x0452ec88 in ()
(gdb) where
#0 0xb4567068 in QObject::setProperty(char const*, QVariant const&) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#1 0x00c019a0 in Ekos::Mount::Mount() (this=0x4d036b0) at /home/pi/repos/kstars/kstars/ekos/mount/mount.cpp:231
#2 0x0095dff4 in Ekos::Manager::initMount() (this=0x4273b80) at /home/pi/repos/kstars/kstars/ekos/manager.cpp:2432
#3 0x00956750 in Ekos::Manager::setTelescope(ISD::GDInterface*) (this=0x4273b80, scopeDevice=0x4e73f40)
at /home/pi/repos/kstars/kstars/ekos/manager.cpp:1439
#4 0x00998678 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<ISD::GDInterface*>, void, void (Ekos::Manager::*)(ISD::GDInterface*)>::call(void (Ekos::Manager::*)(ISD::GDInterface*), Ekos::Manager*, void**) (f=
(void (Ekos::Manager::*)(Ekos::Manager * const, ISD::GDInterface *)) 0x9566a4 <Ekos::Manager::setTelescope(ISD::GDInterface*)>, o=0x4273b80, arg=0xbeffeb5c) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:134
#5 0x00992d28 in QtPrivate::FunctionPointer<void (Ekos::Manager::*)(ISD::GDInterface*)>::call<QtPrivate::List<ISD::GDInterface*>, void>(void (Ekos::Manager::*)(ISD::GDInterface*), Ekos::Manager*, void**) (f=
(void (Ekos::Manager::*)(Ekos::Manager * const, ISD::GDInterface *)) 0x9566a4 <Ekos::Manager::setTelescope(ISD::GDInterface*)>, o=0x4273b80, arg=0xbeffeb5c) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:167
#6 0x009871fc in QtPrivate::QSlotObject<void (Ekos::Manager::*)(ISD::GDInterface*), QtPrivate::List<ISD::GDInterface*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
(which=1, this_=0x46b0230, r=0x4273b80, a=0xbeffeb5c, ret=0x0)
at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:396
#7 0xb455f380 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#8 0x007c342c in INDIListener::newTelescope(ISD::GDInterface*) (this=0x452ec88, _t1=0x4e73f40)
at /home/pi/Projects/build/kstars/kstars/KStarsLib_autogen/FRI4DANIHA/moc_indilistener.cpp:401
#9 0x00895154 in INDIListener::registerProperty(INDI::Property*) (this=0x452ec88, prop=0x4e0dd70)
at /home/pi/repos/kstars/kstars/indi/indilistener.cpp:256
#10 0x0089ab7c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<INDI::Property*>, void, void (INDIListener::*)(INDI::Property*)>::call(void (INDIListener::*)(INDI::Property*), INDIListener*, void**) (f=
(void (INDIListener::*)(INDIListener * const, INDI::Property *)) 0x894e00 <INDIListener::registerProperty(INDI::Property*)>, o=0x452ec88, arg=0x4e71a70) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:134
#11 0x0089a5ac in QtPrivate::FunctionPointer<void (INDIListener::*)(INDI::Property*)>::call<QtPrivate::List<INDI::Property*>, void>(void (INDIListener::*)(INDI::Property*), INDIListener*, void**) (f=
(void (INDIListener::*)(INDIListener * const, INDI::Property *)) 0x894e00 <INDIListener::registerProperty(INDI::Property*)>, o=0x452ec88, arg=0x4e71a70) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:167
#12 0x008993d4 in QtPrivate::QSlotObject<void (INDIListener::*)(INDI::Property*), QtPrivate::List<INDI::Property*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x46b9400, r=0x452ec88, a=0x4e71a70, ret=0x0)
at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h:396
#13 0xb455bc68 in QMetaCallEvent::placeMetaCall(QObject*) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#14 0xb455fbec in QObject::event(QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Core.so.5
#15 0xb4ce2db4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#16 0xb4ceb2a8 in QApplication::notify(QObject*, QEvent*) () at /lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#17 0x0452ec88 in ()
(gdb) frame 1
#1 0x00c019a0 in Ekos::Mount::Mount (this=0x4d036b0) at /home/pi/repos/kstars/kstars/ekos/mount/mount.cpp:231
231 m_leftRightCheck->setProperty("checked", Options::leftRightReversed());
(gdb) print m_leftRightCheck
$1 = (QQuickItem *) 0x0
(gdb) frame 2
#2 0x0095dff4 in Ekos::Manager::initMount (this=0x4273b80) at /home/pi/repos/kstars/kstars/ekos/manager.cpp:2432
2432 mountProcess.reset(new Ekos::Mount());
(gdb) frame 3
#3 0x00956750 in Ekos::Manager::setTelescope (this=0x4273b80, scopeDevice=0x4e73f40)
at /home/pi/repos/kstars/kstars/ekos/manager.cpp:1439
1439 initMount();