Hello Jukka, Finally I was able to reproduce the situation that you are talking about. The case is that in PX4 environment the path to the board files is hardcoded to $(BOARD_DIR)/src unconditionally, but actually it depends on BOARD_COMMON_DIR value: ifneq ($(BOARD_COMMON_DIR),) ARCH_SRC_BOARD_SYMLINK=$(BOARD_COMMON_DIR) ARCH_SRC_BOARD_BOARD_SYMLINK=$(BOARD_DIR)/src else ARCH_SRC_BOARD_SYMLINK=$(BOARD_DIR)/src endif
So the best solution that I can introduce without modification of PX4 build system is https://github.com/apache/incubator-nuttx/pull/5715 I do not like it a bit because this leads to a situation that leads to a need to make a distclean each time the ARCH_BOARD_COMMON is changed. Best regards, Petro Best regards, Petro пт, 11 бер. 2022 р. о 11:33 Petro Karashchenko <petro.karashche...@gmail.com> пише: > > Hello Jukka, > > I'm still in the middle of building a docker image for your project. > Currently with slow internet it takes a while. > > But what I see from the error that you report is that probably you > applied https://github.com/apache/incubator-nuttx/pull/5712 while > having https://github.com/apache/incubator-nuttx/pull/5274 still > reverted. > > I will give feedback as soon as I will replicate your issue at my end. > > Best regards, > Petro > > пт, 11 бер. 2022 р. о 08:12 Jukka Laitinen <jukka.laiti...@iki.fi> пише: > > > > Hi, > > > > With this patch, all my targets fail with: > > > > Makefile:23: board/Make.defs: No such file or directory > > make[3]: *** No rule to make target 'board/Make.defs'. Stop. > > > > Should I add some new CONFIGs? Sorry but I don't have much time today to > > debug this further > > > > -Jukka > > > > > > On 10.3.2022 21.00, Petro Karashchenko wrote: > > > Hello Jukka, > > > > > > I would like to ask you to try an alternative PR > > > https://github.com/apache/incubator-nuttx/pull/5712 and feedback if it > > > works for you. > > > > > > Best regards, > > > Petro > > > > > > чт, 10 бер. 2022 р. о 07:24 Jukka Laitinen <jukka.laiti...@iki.fi> пише: > > >> Hi, > > >> > > >> This fixes the build for me, I just leave the > > >> CONFIG_BOARD_CUSTOM_ARCH_BOARD_COMMON undefined. > > >> > > >> Thanks, > > >> > > >> Jukka > > >> > > >> On 9.3.2022 19.22, Petro Karashchenko wrote: > > >>> Hello Jukka, > > >>> > > >>> I was able to localize the root cause of the issue. I've created > > >>> https://github.com/apache/incubator-nuttx/pull/5705 to recover things > > >>> and added a separate option that should be explicitly enabled to > > >>> re-use a board-level common code by custom boards users. > > >>> > > >>> Please try this change and feedback if that solves the problem. > > >>> > > >>> Best regards, > > >>> Petro > > >>> > > >>> чт, 3 бер. 2022 р. о 15:33 Jukka Laitinen <jukka.laiti...@iki.fi> пише: > > >>>> Hi, sorry but I am away from computer atm. > > >>>> > > >>>> In the project there is "packaging" subdirectory, it contains some > > >>>> docker env, which is also used in TII's CI > > >>>> > > >>>> - Jukka > > >>>> > > >>>> Petro Karashchenko kirjoitti torstai 3. maaliskuuta 2022: > > >>>>> Hello Jukka, > > >>>>> > > >>>>> Do you have any steps on how to build or download a docker image that > > >>>>> can be used to build that project? > > >>>>> It takes me too much time to get build running. > > >>>>> > > >>>>> Best regards, > > >>>>> Petro > > >>>>> > > >>>>> чт, 3 бер. 2022 р. о 12:43 Jukka Laitinen <jukka.laiti...@iki.fi> > > >>>>> пише: > > >>>>>> And also note that the commit I mentioned is already reverted in > > >>>>>> nuttx submodule, so you need to put it back in order to re-produce > > >>>>>> the issue :) > > >>>>>> > > >>>>>> > > >>>>>> Jukka Laitinen kirjoitti torstai 3. maaliskuuta 2022: > > >>>>>>> Hi, sorry about that; you can just remove that submodule, it is not > > >>>>>>> needed to re-produce the issue. > > >>>>>>> > > >>>>>>> - Jukka > > >>>>>>> > > >>>>>>> Petro Karashchenko kirjoitti torstai 3. maaliskuuta 2022: > > >>>>>>>> Hi Jukka, > > >>>>>>>> > > >>>>>>>> I tried to replicate your case, but failed with: > > >>>>>>>> $ git submodule update --init --recursive > > >>>>>>>> Cloning into > > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1'... > > >>>>>>>> ERROR: Repository not found. > > >>>>>>>> fatal: Could not read from remote repository. > > >>>>>>>> > > >>>>>>>> Please make sure you have the correct access rights > > >>>>>>>> and the repository exists. > > >>>>>>>> fatal: clone of 'g...@github.com:tiiuae/saluki-v1.git' into > > >>>>>>>> submodule > > >>>>>>>> path > > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1' > > >>>>>>>> failed > > >>>>>>>> Failed to clone 'boards/ssrc/saluki-v1'. Retry scheduled > > >>>>>>>> Cloning into > > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1'... > > >>>>>>>> ERROR: Repository not found. > > >>>>>>>> fatal: Could not read from remote repository. > > >>>>>>>> > > >>>>>>>> Please make sure you have the correct access rights > > >>>>>>>> and the repository exists. > > >>>>>>>> fatal: clone of 'g...@github.com:tiiuae/saluki-v1.git' into > > >>>>>>>> submodule > > >>>>>>>> path > > >>>>>>>> '/home/pkarashchenko$/workspace/px4-firmware/boards/ssrc/saluki-v1' > > >>>>>>>> failed > > >>>>>>>> Failed to clone 'boards/ssrc/saluki-v1' a second time, aborting > > >>>>>>>> > > >>>>>>>> Best regards, > > >>>>>>>> Petro > > >>>>>>>> > > >>>>>>>> чт, 3 бер. 2022 р. о 09:34 Jukka Laitinen <jukka.laiti...@iki.fi> > > >>>>>>>> пише: > > >>>>>>>>> Hi, > > >>>>>>>>> > > >>>>>>>>> Maybe I was jumping in to conclusion and the issue is not the > > >>>>>>>>> same as > > >>>>>>>>> what I had. I was building PX4, which uses CMake build system, so > > >>>>>>>>> I am > > >>>>>>>>> not having any Makefile or Make.defs in my own board directory. > > >>>>>>>>> Also the > > >>>>>>>>> platform is not stm or arm, but risc-v. > > >>>>>>>>> > > >>>>>>>>> Anyhow, this is the error which I started getting in my build > > >>>>>>>>> scripts: > > >>>>>>>>> > > >>>>>>>>> " > > >>>>>>>>> > > >>>>>>>>> ninja: error: > > >>>>>>>>> '../../platforms/nuttx/NuttX/nuttx/arch/risc-v/include/board', > > >>>>>>>>> needed by > > >>>>>>>>> 'NuttX/nuttx_copy.stamp', missing and no known rule to make it > > >>>>>>>>> make: *** [Makefile:225: ssrc_icicle_default] Error 1 > > >>>>>>>>> " > > >>>>>>>>> > > >>>>>>>>> My configs are: > > >>>>>>>>> > > >>>>>>>>> CONFIG_ARCH="risc-v" > > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM=y > > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR="../nuttx-config" > > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y > > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_NAME="px4" > > >>>>>>>>> > > >>>>>>>>> One version, where it fails is available publicly in > > >>>>>>>>> > > >>>>>>>>> https://github.com/tiiuae/px4-firmware/ (nuttx is included as a > > >>>>>>>>> submodule) > > >>>>>>>>> > > >>>>>>>>> Building "make ssrc_icicle_default". The board files are in > > >>>>>>>>> boards/ssrc/icicle/nuttx-config and NuttX cloned in > > >>>>>>>>> platforms/nuttx/Nuttx/nuttx. > > >>>>>>>>> > > >>>>>>>>> I didn't yet start looking into it in detail, what goes wrong, > > >>>>>>>>> just > > >>>>>>>>> bisected the nuttx and reverted the commit which broke it for me. > > >>>>>>>>> I need > > >>>>>>>>> to look back later to see how to change the off-tree board config > > >>>>>>>>> to get > > >>>>>>>>> it back online. > > >>>>>>>>> > > >>>>>>>>> Just noticed that the error is somewhat similar, although coming > > >>>>>>>>> from > > >>>>>>>>> different build env. But in my case it is likely that I need to > > >>>>>>>>> adapt > > >>>>>>>>> the cmake build scripts according to the changes in nuttx. > > >>>>>>>>> > > >>>>>>>>> -Jukka > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> On 3.3.2022 9.37, Petro Karashchenko wrote: > > >>>>>>>>>> Hello Jukka, > > >>>>>>>>>> > > >>>>>>>>>> So you experience the same problem as Daniel and reverting the > > >>>>>>>>>> commit helps? > > >>>>>>>>>> > > >>>>>>>>>> Before f77956a227f1db6ecb44eda3814e7b02aa2187a6 there was no way > > >>>>>>>>>> to > > >>>>>>>>>> reuse common code from "nuttx/board/...". I'm using a custom > > >>>>>>>>>> board > > >>>>>>>>>> based on SAME70 and after > > >>>>>>>>>> https://github.com/apache/incubator-nuttx/pull/4981 I found my > > >>>>>>>>>> code > > >>>>>>>>>> tree broken. Now the folder structure for "boards/arm/samv7" is > > >>>>>>>>>> the > > >>>>>>>>>> same as in "boards/arm/stm32". Here is what I did to get it back > > >>>>>>>>>> running: > > >>>>>>>>>> 1. Synced "custom-board/scripts/Make.defs" with > > >>>>>>>>>> "boards/arm/samv7/same70-xplained/scripts/Make.defs" > > >>>>>>>>>> 2. Renamed "custom-board/src/Makefile" to > > >>>>>>>>>> "custom-board/src/Make.defs" > > >>>>>>>>>> and synced with "boards/arm/samv7/same70-xplained/src/Make.defs" > > >>>>>>>>>> 3. Removed files in my code tree that have exactly the same > > >>>>>>>>>> implementation as files from "boards/arm/samv7/common" > > >>>>>>>>>> > > >>>>>>>>>> It seems like Daniel is hitting the same issue, so I expect that > > >>>>>>>>>> renaming Makefile to Make.defs plus setting > > >>>>>>>>>> "BOARD_STM32_COMMON=n" > > >>>>>>>>>> should fix the issue without any additional file clean-up. > > >>>>>>>>>> Please give me feedback if that helps. > > >>>>>>>>>> > > >>>>>>>>>> Best regards, > > >>>>>>>>>> Petro > > >>>>>>>>>> > > >>>>>>>>>> чт, 3 бер. 2022 р. о 07:40 Jukka Laitinen > > >>>>>>>>>> <jukka.laiti...@iki.fi> пише: > > >>>>>>>>>>> HI, > > >>>>>>>>>>> > > >>>>>>>>>>> Not sure what is the correct way to fix this, but I reverted: > > >>>>>>>>>>> > > >>>>>>>>>>> " > > >>>>>>>>>>> > > >>>>>>>>>>> commit f77956a227f1db6ecb44eda3814e7b02aa2187a6 > > >>>>>>>>>>> Author: Petro Karashchenko <petro.karashche...@gmail.com> > > >>>>>>>>>>> Date: Wed Jan 19 11:16:11 2022 +0200 > > >>>>>>>>>>> > > >>>>>>>>>>> tools: add option to reuse boards common files for > > >>>>>>>>>>> custom boards > > >>>>>>>>>>> > > >>>>>>>>>>> Signed-off-by: Petro Karashchenko > > >>>>>>>>>>> <petro.karashche...@gmail.com> > > >>>>>>>>>>> " > > >>>>>>>>>>> > > >>>>>>>>>>> Petro, what is the proper way to configure this? > > >>>>>>>>>>> > > >>>>>>>>>>> Thanks, > > >>>>>>>>>>> > > >>>>>>>>>>> Jukka > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> On 3.3.2022 0.06, Daniel Pereira Carvalho wrote: > > >>>>>>>>>>> > > >>>>>>>>>>>> Hi guys, > > >>>>>>>>>>>> > > >>>>>>>>>>>> I am having problems building custom boards outside of the > > >>>>>>>>>>>> Nuttx folder > > >>>>>>>>>>>> tree. Usually I use the following folder structure. > > >>>>>>>>>>>> > > >>>>>>>>>>>> |-> apps > > >>>>>>>>>>>> |-> my-folder > > >>>>>>>>>>>> |-> my-apps > > >>>>>>>>>>>> |-> custom-app > > >>>>>>>>>>>> |-> my-boards > > >>>>>>>>>>>> |-> custom-board > > >>>>>>>>>>>> |-> nuttx > > >>>>>>>>>>>> > > >>>>>>>>>>>> To build my apps I just need to create a symbolic link called > > >>>>>>>>>>>> external > > >>>>>>>>>>>> inside apps folder. To create a new custom board I start > > >>>>>>>>>>>> copying a similar > > >>>>>>>>>>>> board (e.g nucleo-g431kb) to my-boards folder and make the > > >>>>>>>>>>>> following changes > > >>>>>>>>>>>> > > >>>>>>>>>>>> *remove from defconfig:* > > >>>>>>>>>>>> CONFIG_ARCH_BOARD="nucleo-g431kb" > > >>>>>>>>>>>> CONFIG_ARCH_BOARD_NUCLEO_G431KB=y > > >>>>>>>>>>>> > > >>>>>>>>>>>> *add on defconfig:* > > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM=y > > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR="../my-folder/my-boards/custom-board" > > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y > > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_NAME="custom-board" > > >>>>>>>>>>>> > > >>>>>>>>>>>> *Rename src/Make.defs to src/Makefile and append the line * > > >>>>>>>>>>>> include $(TOPDIR)/boards/Board.mk at the end of file. > > >>>>>>>>>>>> > > >>>>>>>>>>>> This works well for me up to Nuttx version 10.2.0 but now when > > >>>>>>>>>>>> I try to > > >>>>>>>>>>>> make I got the errors > > >>>>>>>>>>>> > > >>>>>>>>>>>> make[1]: Entering directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools' > > >>>>>>>>>>>> make[1]: Leaving directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools' > > >>>>>>>>>>>> make[1]: Entering directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools' > > >>>>>>>>>>>> make[1]: Leaving directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools' > > >>>>>>>>>>>> Create version.h > > >>>>>>>>>>>> make[1]: Entering directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards' > > >>>>>>>>>>>> make[2]: Entering directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards/arm/stm32/common' > > >>>>>>>>>>>> Makefile:23: board/Make.defs: No such file or directory > > >>>>>>>>>>>> make[2]: *** No rule to make target 'board/Make.defs'. Stop. > > >>>>>>>>>>>> make[2]: Leaving directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards/arm/stm32/common' > > >>>>>>>>>>>> make[1]: *** [Makefile:79: context] Error 2 > > >>>>>>>>>>>> make[1]: Leaving directory > > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards' > > >>>>>>>>>>>> make: *** [tools/Unix.mk:425: boards/.context] Error 2 > > >>>>>>>>>>>> > > >>>>>>>>>>>> Does anyone know how to fix this problem? > > >>>>>>>>>>>> > > >>>>>>>>>>>> Thanks > > >>>>>>>>>>>> > > >>>>>>>>>>>> Daniel Pereira de Carvalho > > >>>>>>>>>>>>