|UPDATE_DRV(8)||Maintenance Commands and Procedures||UPDATE_DRV(8)|
update_drv [-f | -v] [-n] driver_module
update_drv [-b basedir] [-f | -v] [-n] -a [-m 'permission'] [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module
update_drv [-b basedir] [-f | -v] [-n] -d [-m 'permission'] [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module
Without options, update_drv reloads the driver.conf file.
Upon successfully updating the aliases, the driver binding takes effect upon reconfig boot or hotplug of the device.
Upon successfully updating the permissions, only the new driver minor nodes get created with the modified set of file permissions. Existing driver minor nodes do not get modified.
With the -a option specified, a permission entry (using the -m option), or a driver's aliases entry (using the -i option), a device privilege (using the -P option) or a a device policy (using the -p option), can be added or updated. If a matching minor node permissions entry is encountered (having the same driver name and the minor node), it is replaced. If a matching aliases entry is encountered (having a different driver name and the same alias), an error is reported.
The -a and -d options are mutually exclusive.
The -m permission, -i identify-name, -P privilege or the -p policy option needs to be specified with the -d option.
The -d and -a options are mutually exclusive.
If the entry doesn't exist update_drv returns an error.
Without this option, when removing an alias for a driver, update_drv updates the binding files for the next boot, but returns an error if one or more devices that reference the driver-alias binding remains. With the -f option, update_drv does not return an error if such devices remain.
The following command adds or modifies the existing minor permissions entry of the clone driver:
example# update_drv -a -m 'llc1 777 joe staff' clone
Example 2 Removing All Minor Permissions Entries
The following command removes all minor permission entries of the usbprn driver, the USB printer driver:
example# update_drv -d -m '* 0666 root sys' usbprn
Example 3 Adding a Driver Aliases Entry
The following command adds a driver aliases entry of the ugen driver with the identity string of usb459,20:
example# update_drv -a -i '"usb459,20"' ugen
Example 4 Re-reading the driver.conf File For the ohci Driver
The following command re-reads the driver.conf(5) file.
example# update_drv ohci
Example 5 Requiring a Self-defined Privilege to Open a tcp Socket
The following command requires a self-defined privilege to open a tcp socket:
example# update_drv -a -P net_tcp -p \ 'write_priv_set=net_tcp read_priv_set=net_tcp' tcp
Example 6 Establishing a Path-oriented Alias
The following command establishes a path-oriented alias to force a specific driver, qlt, to be used for a particular device path:
example# update_drv -a -i '"/pci@8,600000/SUNW,qlc@4"' qlt
A forced update of the driver.conf file reloads the driver.conf file without reloading the driver binary module. In this case, devices which cannot be detached reference driver global properties from the old driver.conf file, while the remaining driver instances reference global properties in the new driver.conf file.
It is possible to add an alias , which changes the driver binding of a device already being managed by a different driver. A force update with the -a option tries to bind to the new driver and report error if it cannot. If you specify more than one of the -m, -i, -P or -p options, a force flag tries to modify aliases or permissions. This is done even if the other operation fails and vice-versa.
|August 29, 2021||OmniOS|