[PATCH v2 1/2] Add support for extlinux.conf

Alexander Shiyan eagle.alexander923 at gmail.com
Tue May 5 05:44:26 PDT 2026


barebox at Diasom DS-RK3568-SOM-EVB:/ global
* allow_color: 1
  arch: arm64
  autoboot: countdown (values: "countdown", "abort", "halt", "menu", "boot")
  autoboot_abort_key: <NULL>
* autoboot_timeout: 2
* boot.default: default
  boot.watchdog_timeout: 0
* bootm.appendroot: 1
  bootm.dryrun: 0
  bootm.earlycon: 0
  bootm.image:
  bootm.image.loadaddr:
  bootm.initrd:
  bootm.initrd.loadaddr:
  bootm.oftree:
  bootm.provide_hostname: 0
* bootm.provide_machine_id: 1
  bootm.root_dev:
  bootm.root_param: root
  bootm.tee:
  bootm.verbose: 0
  bootm.verify: available (values: "none", "hash", "signature", "available")
  console.ctrlc_allowed: 1
  dhcp.bootfile:
  dhcp.client_id:
  dhcp.client_uuid:
  dhcp.hostname:
  dhcp.oftree_file:
  dhcp.option224:
  dhcp.retries: 20
  dhcp.rootpath:
  dhcp.tftp_server_name:
  dhcp.user_class:
  dhcp.vendor_id: barebox
  endianness: little
  env.autoprobe: 1
  fastboot.bbu: 0
  fastboot.max_download_size: 134217728
  fastboot.partitions:
  firmware.path: /env/firmware
  hostname: diasom
  linux.bootargs.base:
  linux.bootargs.console: console=ttyS2,1500000n8
  linux.bootargs_append: 0
  linux.rootnfsopts: v3,tcp
  log_max_messages: 32768
  loglevel: 7
  machine_id: 181af2816b4c6b0aef77068e0ccc69ad
  model: Diasom DS-RK3568-SOM-EVB
  net.domainname:
  net.fetchdir: /mnt/tftp
  net.gateway: 0.0.0.0
  net.ifup_force_detect: 0
  net.nameserver: 0.0.0.0
  net.server:
  nfs.port: 0
  of.kernel.add_machine_compatible:
  of.overlay.compatible:
  of.overlay.filter: pattern compatible
  of.overlay.path:
  of.overlay.pattern: *
  of_partition_binding: adaptive (values: "new", "legacy",
"donttouch", "adaptive")
  partitions.first_usable_lba: 16384
  system.partitions:
  system.reset: unknown (values: "unknown", "POR", "RST", "WDG",
"WKE", "JTAG", "THERM", "EXT", "BROWNOUT")
  system.reset_instance: 0
  tftp.windowsize: 1
  usbgadget.acm: 0
  usbgadget.dfu_function:
* user: none
  version: 2026.04.0-00765-gd3f78fc00c40-dirty
barebox at Diasom DS-RK3568-SOM-EVB:/ global.boot.default=mmc1.2
barebox at Diasom DS-RK3568-SOM-EVB:/ boot
ext4 ext40: EXT2 rev 1, inode_size 256, descriptor size 64
Booting entry 'extlinux: linux'
extlinux: Booting extlinux label 'linux'
Adding "root=/dev/mmcblk1p3" to Kernel commandline

Loading ARM aarch64 Linux/EFI image '/mnt/mmc1.2/boot/extlinux/../vmlinuz'
Camera IMX662 detected.
commandline: console=ttyS2,1500000n8 root=LABEL=ROOT ro
systemd.unit=setup.target quiet splash  root=/dev/mmcblk1p3
systemd.machine_id=181af2816b4c6b0aef77068e0ccc69ad
Loaded kernel to 0x0a400000, devicetree at 0x000000000fb49000
nv variables modified, saving them
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot

Now it works!

вт, 5 мая 2026 г. в 15:22, Ahmad Fatoum <a.fatoum at pengutronix.de>:
>
> Hello Alexander,
>
> On 5/5/26 2:19 PM, Alexander Shiyan wrote:
> > barebox at Diasom DS-RK3568-SOM-EVB:/ global
> > * bootm.~appendroot: true
>
> This should be bootm.appendroot: 1.
>
> > bootm.~appendroot: true, but now is ever not added to the cmdline.
>
> The tilde is just an implementation detail in common/bootm.c. You should
> just global.bootm.appendroot as before.
>
> Thanks,
> Ahmad
>
> >
> > вт, 5 мая 2026 г. в 13:49, Ahmad Fatoum <a.fatoum at pengutronix.de>:
> >>
> >> Hello Alexander,
> >>
> >> On 5/5/26 12:47 PM, Alexander Shiyan wrote:
> >>> Hello Ahmad.
> >>>
> >>> ...
> >>>>> +     if (e->append) {
> >>>>> +             char *append;
> >>>>> +
> >>>>> +             /*
> >>>>> +              * The same rootfs image may be launched from eMMC or SD card.
> >>>>> +              * Remove any hardcoded root= parameter from "append" to avoid
> >>>>> +              * conflicts, then let barebox automatically add the correct
> >>>>> +              * root= (via global.bootm.appendroot) based on the boot device.
> >>>>> +              */
> >>>>> +             if (data.appendroot)
> >>>>> +                     append = remove_param(e->append, "ROOT=");
> >>> ...
> >>>> I thus have a question to you: What happens if you drop remove_param()
> >>>> completely? Sure we will have two root=, but the later gets precedence,
> >>>> so your use case would continue to work without giving users a wrong
> >>>> expectation.
> >>>
> >>> Yes, the second one takes priority.
> >>> The second one is the one added via extlinux.conf APPEND option.
> >>> In our case we need the first parameter, i.e. which comes from barebox
> >>> when global.bootm.appendroot is toggled on.
> >>
> >> Ack. Please check the series I Cc'd you on, which ensures that
> >> global.bootm.appendroot applies _after_ extlinux.conf APPEND.
> >>
> >> Thanks,
> >> Ahmad
> >>
> >>>
> >>> Thanks!
> >>>
> >>
> >> --
> >> Pengutronix e.K.                  |                             |
> >> Steuerwalder Str. 21              | http://www.pengutronix.de/  |
> >> 31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
> >> Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |
> >>
> >
>
> --
> Pengutronix e.K.                  |                             |
> Steuerwalder Str. 21              | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |
>



More information about the barebox mailing list