Hello Zou, The https://github.com/apache/incubator-nuttx/pull/5712 unifies board common logic usage under a single option ARCH_BOARD_COMMON that is introduced instead of per-arch options like BOARD_SAMV7_COMMON or BOARD_STM32_COMMON. So most probably if your board defconfig had BOARD_STM32_COMMON config enabled you need to replace it with ARCH_BOARD_COMMON option. Also while working on https://github.com/apache/incubator-nuttx/pull/5712 I found out that some boards that didn't have BOARD_STM32_COMMON enabled actually used board common code. So the way to fix your build is to remove CONFIG_BOARD_STM32_COMMON=y from defconfig if it was present and add CONFIG_ARCH_BOARD_COMMON=y to your board defconfig.
Please give me feedback if that works for you. I will add a description on how to migrate to a new NuttX release, so users will be informed about this breaking change. Best regards, Petro сб, 12 бер. 2022 р. о 16:10 fft <f...@feedforward.com.cn> пише: > > Hello Petro, > > > > After https://github.com/apache/incubator-nuttx/pull/5712, there's a error > when building my custom board: > > > make[1]: Entering directory '/home/zouboan/G/NuttX/nuttx/arch/arm/src' > make[2]: Entering directory '/home/zouboan/G/NuttX/fft/fft-f405/src' > make[2]: *** No rule to make target 'libboard.a'. Stop. > make[2]: Leaving directory '/home/zouboan/G/NuttX/fft/fft-f405/src' > Makefile:139: recipe for target 'board/libboard.a' failed > make[1]: *** [board/libboard.a] Error 2 > make[1]: Leaving directory '/home/zouboan/G/NuttX/nuttx/arch/arm/src' > tools/Unix.mk:509: recipe for target 'nuttx' failed > > > > My custom board's configs is like this: > > > CONFIG_ARCH="arm" > CONFIG_ARCH_BOARD_CUSTOM=y > CONFIG_ARCH_BOARD_CUSTOM_DIR="../fft/fft-f405" > CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y > CONFIG_ARCH_BOARD_CUSTOM_NAME="fft-f405" > CONFIG_ARCH_CHIP="stm32" > CONFIG_ARCH_CHIP_STM32=y > CONFIG_ARCH_CHIP_STM32F405RG=y > > > How should I modify the configuration to adapt to pull #5712 ? > > > > Best regards, > Zou > > > ------------------ Original ------------------ > From: "petro.karashchenko"<petro.karashche...@gmail.com>; > Date: Fri, Mar 11, 2022 10:41 PM > To: "dev"<dev@nuttx.apache.org>; > > Subject: Re: Error when building custom board > > > > 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 > > > >>>>>>>>>>>>