Adding -N volume name to ubi utils

Richard Titmuss richard_titmuss at
Mon Nov 24 12:07:53 EST 2008


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?


More information about the linux-mtd mailing list