×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

Using the INDI library on a BeagleBone Black

  • Posts: 8
  • Thank you received: 1
Hi All,
I am a member of the 'Dimension Parabole' team who seek to repair a 10m dish parabola in Paris,France. We have been using succesfully the INDI library for a couple of years, and it is a central brick of our work. Until now, we are using a Raspberry Pi, but recently, we have discovered a number of status outputs of the initial hardware that could be usefull to show to the remote operator.

To avoid the use of caps on the Raspberry Pi, I am thinking to use a Beaglebone Black. This hardware has much more I/O lines, but it has much less room in the flash memory (about 3.5Gb).

Until now, we are used to compile the whole library, with all the drivers, but doing this on the BeagleBone Black leads to a lack of memory in the mmcblk0p1 device. So I am thinking to several workaround of this problem :

1) use of a lighter OS. We are using a debian buster version for the BeagleBone Black. As this is the latest OS for this hardware, Not sure this will be a good idea...
2) Compile only the requested drivers. We wrote our specific 'mount' driver, so we do not need to compile the drivers for the LX200 (for example), nor any CCD driver (again for example !). So I guess that 90% of the drivers compiled are useless for us.
3) Expand the BeagleBone Black memory. Some of the IOs of the BeagleBone Black can be used as an eMMC port. I have no idea how we could increase the memory size by this mean.

So anyone having an experience with the BeagleBone Black could give us ideas on how we could workaround this problem.

Thanks
2 years 2 days ago #82389

Please Log in or Create an account to join the conversation.

  • Posts: 96
  • Thank you received: 25
Hm. That seems to be a very low power machine. Things you might want to try:
- enable zram for swap. it'll be faster than swapping to sdard/emmc
- do all the compiling on the sdcard. It won't be fast, but at least it's got lots of storage
- compile only the necessary drivers
- cross-compile on a much faster amd64 machine

At the moment, I'm compiling indi and kstars on a Radxa Zero, with all the source on a microsd...
2 years 1 day ago #82400

Please Log in or Create an account to join the conversation.

  • Posts: 8
  • Thank you received: 1
Hi Chris,
Thanks for your answer, I am not sure of what I should do to some of your tips. So, let's start with this one :

- Compile only the necessary drivers.

INDI library has many drivers that we do not need as we are using only our cutom 'Mount' driver. So how could I do this ? By removing lines in some of the CMakeList.txt ?
I have no experience in the cmake system ...

Another one that could be easy : Do all the compiling on the SD card.

I think that I could mount a blank SD card in the file system (for example in Project directory) so the INDI library could be in the SD card. But in that case will the install process still be in the same directory.

Sory for these very basic questions, but I am no guru in INDI nor in Beaglebone ...
1 year 11 months ago #82489

Please Log in or Create an account to join the conversation.

  • Posts: 96
  • Thank you received: 25
Goodness no, do not edit cmakelists unless you're a developer or you can explain why you need to do it and can demonstrate that there is a no better way.

There is, in fact, a better way. You can read through cmakelists to figure out which flags to use to enable/disable certain features, or use ccmake (sometimes called cmake-curses-gui) to interactively select them... I'm lazy and prefer the latter.

You can easily mount an sdcard somewhere, check out the source and compile it, then install to a completely different path. That is one of many things you can configure with cmake (or ccmake). On my Radxa I mounted the sdcard on /mnt/sdcard, put the source in /mnt/sdcard/src/indi, deactivated some drivers I didn't need, compiled in /mnt/sdcard/build-indi, and installed to /usr/local.
1 year 11 months ago #82494

Please Log in or Create an account to join the conversation.

  • Posts: 150
  • Thank you received: 15
Hi Patrick,

I have a solution for build only the libindi libraries. The only problem with cmake, is you cannot specify others file that cmakelist.txt. So, you must modify the cmakefile.txt. while do that, you'll have a problem for do a git pull for the update. I suggest to do follow instruction :
1) copy your indi directory to an other (ex : indi2). With that, you save your indi directory and you'll could do the update has when you want.
2) in this indi2 directory, modifiy the CMakeLists.txt like that :
in the build section (~line 83), add an option :
OPTION (INDI_BUILD_OTHERS_DRIVERS "Doesn't build others drivers" OFF)
In the beginning of the AGENT GROUP (~line 567) add
IF (INDI_BUILD_OTHERS_DRIVERS)
and just before the INDI TOOLS (~line 1875)
ENDIF (INDI_BUILD_OTHERS_DRIVERS)
3) save the file
4) make a build directory and do a cmake [options] .. follow by a make -j4

You compile only the indiserver and some tools and libindi* necessaries.

I know, is a ugly solution because, if you want to update indi, you will must redo this procedure (and maybe that the cmakelists file will be modify and the lines number different).
1 year 11 months ago #82503

Please Log in or Create an account to join the conversation.

  • Posts: 8
  • Thank you received: 1
Hi PICARD,

I would like to thank you for your solution. It gave me the oportunity of understanding (a little) the CMAKE process.

Now let's see the figures :

- After downloading the sources the memory is at 91%
- After compiling only the 'mandatory' files, the memory comes at 95%

I think we have enough room for the system upgrades and for an increase of our driver size.

Thank you again, I hope that we shall not miss any of the uncompiled files when using this new hardware.

Of course, any update in the library will need to modify the CMakeLists.txt before compiling, but this is the price to get some room in the memory.
Last edit: 1 year 10 months ago by Patrick.
1 year 10 months ago #83155

Please Log in or Create an account to join the conversation.

Time to create page: 0.699 seconds