forked from pool/util-linux
55 lines
2.4 KiB
Plaintext
55 lines
2.4 KiB
Plaintext
|
Raw device driver support on SLS 9
|
||
|
|
||
|
On SLS 9, you will notice that by default, raw devices (nodes) (/dev/rawctl
|
||
|
and /dev/raw/rawN (1-15)) no longer exist whereas in SLES 8, the raw nodes were
|
||
|
created when the system was initially installed. SLS 9, by default, uses
|
||
|
the new dynamic userspace implementation "sysfs" together with "udev" which
|
||
|
replaces the previous static "dev" system.
|
||
|
|
||
|
Raw devices are moving towards eventual obsolescence with block+O_DIRECT
|
||
|
support intended as a replacement. The primary application users of raw
|
||
|
character devices have been databases so the database you are using will have
|
||
|
to support the O_DIRECT functionality before moving away from raw character
|
||
|
devices.
|
||
|
|
||
|
Using RAW with kernel 2.6 (SLS 9)
|
||
|
---------------------------------
|
||
|
Raw device usage in kernel 2.6 together with udev and sysfs was intended to be
|
||
|
quite seamless. Basically, all that is required is to load the raw module after
|
||
|
each reboot using the commands "modprobe raw" or "rcraw start". Then use the
|
||
|
"raw" command to create the bindings to the block character devices. The raw
|
||
|
device nodes are no longer required to exist before the bindings are assigned
|
||
|
and used.
|
||
|
|
||
|
Using a single script, you can you load the raw module and bind the raw nodes
|
||
|
to block devices.
|
||
|
|
||
|
#!/usr/bin
|
||
|
# load the raw module
|
||
|
modprobe raw # can also use "rcraw start"
|
||
|
# create the raw bindings
|
||
|
raw /dev/raw/raw1 /dev/sdb1
|
||
|
raw /dev/raw/raw2 /dev/sbc1
|
||
|
|
||
|
You can see if the raw driver is available by issuing "rcraw status". If the
|
||
|
raw driver is loaded, the command should return a status of "running". A status
|
||
|
of "dead" will usually indicate that the driver was not loaded or
|
||
|
the /dev/rawctl file does not exist. The /dev/rawctl file is automatically
|
||
|
created when the module is loaded. This file and the /dev/raw/rawN nodes can
|
||
|
also be viewed under the /sys/class/raw directory.
|
||
|
|
||
|
Raw node permissions
|
||
|
----------------------------------
|
||
|
When the raw devices are assigned, permission settings are determined from the
|
||
|
/etc/udev/udev.permission file. This file can be modified to assign different
|
||
|
owner, group and/or access permissions to the raw nodes. For example, by
|
||
|
default, the permission settings for raw nodes are as follows:
|
||
|
|
||
|
raw/raw*:root:disk:660
|
||
|
|
||
|
Here, root:disk is the default owner:group with read write access for owner and
|
||
|
group. As an example, to create the raw nodes with an owner:group of
|
||
|
user1:group1 and read write access for all, change the assignment as follows:
|
||
|
|
||
|
raw/raw*:user1:group1:666
|