Adding -N volume name to ubi utils
Adrian Hunter
ext-adrian.hunter at nokia.com
Tue Nov 25 03:53:39 EST 2008
Richard Titmuss wrote:
> I am trying to modify the ubi tools in mtd_utils to allow the ubi volume
> name to be specified on the command line, the relevant commands are
> ubinfo, ubirmvol and ubiupdatevol. The idea is that you could use any of
> the following command arguments to specify a ubi volume:
>
> ubirmvol /dev/ubi0 -N rootfs # ubi device node and volume name
> ubirmvol /dev/ubi0 -n 1 # ubi device node and volume id
> ubirmvol /dev/ubi0_1 # ubi volume node
>
> Other than consistency the main feature this adds is support for using
> -N to specify the volume by name to all the commands.
>
> The problem is these commands need different information to work:
> - ubinfo loads information from the /sys file system, it's easy to
> support for all the above command arguments.
> - ubirmvol needs a ubi device node and a volume id, how can this work if
> a volume node is specified?
> - ubiupdatevol needs a ubi volume node, how can this work if a device
> node is specified?
>
> So my questions is how can the appropriate device node be generated by
> these commands if it is not specified on the command line. It would be
> possible to use something like:
> sprintf(node, "/dev/ubi%d_%d", args.devn, args.vol_id);
>
> However I don't think that hard coding the /dev path is an acceptable
> solution, and assume that's why the -d (device number) argument was
> deprecated. Does anyone have any suggestions on a better solution?
In principle, you should use udev rules to create device nodes that
are easy to work with e.g.
/dev/ubi/rootfs/vol
/dev/ubi/rootfs/dev
so then you can make a script say ubirmvolbyname
#!/bin/sh
ubirmvol /dev/ubi/$1/dev -N $1
More information about the linux-mtd
mailing list