mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Giorgio Dal Molin <giorgio.nicole@arcor.de>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: barebox@lists.infradead.org, u.kleine-koenig@pengutronix.de
Subject: Re: root= kernel cmdline parameter
Date: Fri, 31 Aug 2018 15:43:40 +0200 (CEST)	[thread overview]
Message-ID: <807890598.17790.1535723020376@mail.vodafone.de> (raw)
In-Reply-To: <1151130077.2195.1533800735792@mail.vodafone.de>

Hi,

> On August 9, 2018 at 9:45 AM Giorgio Dal Molin <giorgio.nicole@arcor.de> wrote:
> 
> 
> Hi,
> 
> > On August 8, 2018 at 9:52 AM Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > 
> > 
> > On Tue, Jul 31, 2018 at 01:20:12PM +0200, Giorgio Dal Molin wrote:
> > > Hi all,
> > > 
> > > I'm trying to find out the best method to define the root=
> > > parameter when booting the linux kernel from barebox.
> > > 
> > > My system boots from an sd card partitioned with a GPT.
> > > The sd card has two independent set of partitions with
> > > the following labels:
> > > 
> > > 1)   boot_1 + rootfs_1
> > > 2)   boot_2 + rootfs_2
> > > 
> > > for redondance in case one set gets damaged while updating.
> > > 
> > > 'boot_1' is formatted with ext4 and contains the kernel + dtb images
> > > for the userland in 'rootfs_1'; and the same for 'boot_2' and 'rootfs_2'.
> > > 
> > > Currently I hardcode the 'root' parameter to '/dev/mmcblk0p3' or
> > > '/dev/mmcblk0p4' corresponding to the kernel in 'boot_1' or
> > > 'boot_2' and it actually works but is there a better way to do
> > > this ?
> > 
> > You could use bootloader spec. That would at least allow you to store a
> > suitable root= parameter in the config files in the boot_1 and boot_2
> > partitions.
> > 
> > Not sure if that's what you are looking for though.
> > 
> > Sascha
> > 
> 
> as I already wrote to Uwe Kleine-Koenig I wanted to keep the kernel
> image and the dtb in a separate partition because these are the files
> the bootloader *must* be able to read to boot the system. Having the
> userland in a separate partition lets me choose an image format for it
> independently from what barebox supports; as an example I could pack
> my userland in a btrfs image. Moreover I can be more selective when
> updating the firmware: I can update only the kernel+dtb or only the
> userland image.
> 
> What I would like to have is an automatic way to set the root= kernel
> command line parameter similar to what barebox does with the 'bootm.appendroot'
> but a bit more flexible.
> Looking at the kernel function name_to_dev_t() in the source init/do_mounts.c,
> it accepts also the format 'PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF':
> my idea was to somehow tell barebox 'use the partition with label "rootfs_1"
> for the "root" parameter' and barebox should be able to match my label with
> the partition UUID and automatically generate the root= value.
> 
> giorgio

grepping a bit through the barebox sources I've found that what I need is
actually already implemented!

I know that at least one of 'rootfs_1' and 'rootfs_2' must contain a valid
userland image (a squashfs image); now, in my 'init' I try to 'mount -t squashfs'
rootfs_1: if it works I found that barebox defines a global variable '$squashfs0.linux.bootargs'
with exactly the content I need (root=PARTUUID=...). I just have to use this var.
to define my global linux.bootarg:

global linux.bootargs.root=$squashfs0.linux.bootargs

giorgio

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

      reply	other threads:[~2018-08-31 13:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31 11:20 Giorgio Dal Molin
2018-08-06 18:15 ` Uwe Kleine-König
2018-08-06 19:30   ` Giorgio Dal Molin
2018-08-06 19:44     ` Uwe Kleine-König
2018-08-08  7:52 ` Sascha Hauer
2018-08-09  7:45   ` Giorgio Dal Molin
2018-08-31 13:43     ` Giorgio Dal Molin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=807890598.17790.1535723020376@mail.vodafone.de \
    --to=giorgio.nicole@arcor.de \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox