Hi, > Gesendet: Mittwoch, 05. Januar 2022 um 17:07 Uhr > Von: "Ahmad Fatoum" <a.fatoum@xxxxxxxxxxxxxx> > An: "Frank Wunderlich" <frank-w@xxxxxxxxxxxxxxx>, barebox@xxxxxxxxxxxxxxxxxxx > Betreff: Re: barebox extending boot-scripts > > Hi, > > On 05.01.22 16:20, Frank Wunderlich wrote: > > Hi, > > > > i'm making my first steps and try to add more boot-scripts (to land in /env/boot) > > > > i added a scipt in > > > > arch/arm/boards/rockchip-rk3568-evb/defaultenv/mmc-linux > > This should be defaultenv/boot/mmc-linux instead. > > > and set > > > > DEFAULT_ENVIRONMENT_PATH [=arch/arm/boards/rockchip-rk3568-evb/defaultenv] > > > > but if i boot the board /env/boot only contains the 2 default scripts > > > > barebox@Rockchip RK3568 EVB:/ ls /env/boot/ > > bnet net > > Try ls -R /env, you should see mmc-linux at top-level with your > current setup. > > > so maybe the dir/config-option i used is for defining variables only right? > > Top level is only meant for directories. There are directories for the different > stuff, e.g. variables go into /env/nv/ > > > should this point to an directory or a file? > > The config option is meant for use with external build systems, e.g. buildroot > or PTXdist. For boards in-tree, you can add bbenv-y in the Makefile and call > > // assuming directory is called defaultenv-myboard > defaultenv_append_directory(defaultenv_myboard); > > in the board code, see e.g. arch/arm/boards/embest-marsboard for an example. > > The reason for avoiding the config option for in-tree boards is that a single barebox > configuration can build multiple boards in one go: > extreme case: imx_v7_defconfig, which builds marsboard also builds more than 100 other images. > > The config option is global, but by explicitly calling defaultenv_append_directory, > you can have board-specific environments. will try this approach, thanks > > i see this file which looks like the source of it > > > > ./defaultenv/defaultenv-2-base/boot/net > > > > I've put them there and they appear, but this is not board specific > > Ye, you can use this for debugging, but stuff upstreamed there must be generally > applicable. > > > so if i later want to upstream one this is maybe not the right place. > > Boot scripts for publicly available evaluation kits are often not good candidates > for upstreaming, because everybody using the EVKs has different thoughts on how to > boot. The best way would be to use bootloader spec. It's one or more files you > place at a known location that describe where your kernel and device tree are and > what command line arguments to use and barebox can then automatically generate > boot entries from all available bootloader spec files. > > See https://elinux.org/images/9/9d/Barebox-bells-n-whistles.pdf for an example > of how to set this up. This is what I'd recommend instead of writing your own > scripts. > > > ./defaultenv/defaultenv-2-menu/menu/10-boot-all/net > > > > seems to be a menu entry, but have not yet figured out how i can define one to add my scripts too > > > > have not found anything for it in the documentation yet > > The default boot menu is populated with the boot entries extracted from > the contents of $global.boot.default. currently only net is listed there barebox@Rockchip RK3568 EVB:/ echo $global.boot.default net but in /env/boot i have my 2 new scripts barebox@Rockchip RK3568 EVB:/ ls /env/boot bnet mmc-linux net tftp-linux > boot -m will display that menu. It will also include all bootloader spec files. > If that suffices, you won't need to create your own menu. If you want though, > check the help text of the menutree command. needed to add this option, and now it prints only "net" and "back",not my own scripts ;( do i need my scripts to ./defaultenv/defaultenv-2-menu/menu/10-boot-all/ too? > To boot into the boot menu, set nv autoboot=menu. "Detect bootsources" will > list boot sources known to the barebox boot command. is this stored anywhere so that is persistent on next reboot? btw. how does saveenv exactly work (which part/filename/offset is used)? sasha told me that device will be enumerated to the current boot device, but where on this device is the env stored? > See magicvar for a listing of all magic variables, or refer to the documentation. > > > btw. is there a way to use ls with wildcard without printing the path? > > > > ls /mnt/sd.1/extlinux/ > > Image_5.16 Image_5.16-next.gz Image_5.16.gz > > > > ls /mnt/sd.1/extlinux/Image* > > /mnt/sd.1/extlinux/Image_5.16 > > /mnt/sd.1/extlinux/Image_5.16-next.gz > > /mnt/sd.1/extlinux/Image_5.16.gz > > > > i want to list only files matching Image*, but without path....number of columns does not matter > > Yes, cd /mnt/sd.1/extlinux > > Cheers, > Ahmad mhm, simple ;) can i store the active directory to restore it after script was run (if needed, e.g. on error booting)? pwd shows current directory, but i cannot put it into an var...the bash approach does not work barebox@Rockchip RK3568 EVB:/mnt/sd.1/extlinux pwd /mnt/sd.1/extlinux barebox@Rockchip RK3568 EVB:/mnt/sd.1/extlinux thisdir=$(pwd) barebox@Rockchip RK3568 EVB:/mnt/sd.1/extlinux echo $thisdir $(pwd) barebox@Rockchip RK3568 EVB:/mnt/sd.1/extlinux regards Frank _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox