Problem:
While Volume Management Daemon (
vold
) is running, Solaris rejects all CD/DVD media and ejects 'em as soon as they were inserted in the CD/DVD drive. However
manual mounting of the same media works, with no issues.
Solution:
vold
needs the removable media device server
smserver
, to be running in order to manage the removable media devices. So, make sure
smserver
is enabled, and on-line.
# svcs -l smserver
fmri svc:/network/rpc/smserver:default
name removable media management
enabled false
state disabled
next_state none
state_time Thu Sep 29 20:25:19 2005
restarter svc:/network/inetd:default
contract_id
dependency require_all/restart svc:/network/rpc/bind (online)
smserver
is not running, and the following lines from
truss
output confirms that client (
vold
) is not able to communicate with the
smserver
.
/9: open("/var/run/smedia_svc", O_RDONLY) = 35
/9: door_call(35, 0xD244DCA0) Err#9 EBADF
/9: close(35) = 0
The above series of calls can be easily mapped to the Solaris source code hosted at
OpenSolaris web site, starting from call to
smedia_get_handle
in
medium.c, and then tracing the calls further {in source code}.
Comments in
smediad.c source file helps understanding the implementation a bit.
So to resolve this issue, simply bring
smserver
online. Let's continue with the above example.
# svcadm -v enable smserver
svc:/network/rpc/smserver:default enabled.
# svcs -p smserver
STATE STIME FMRI
online 21:17:43 svc:/network/rpc/smserver:default
Now
vold
is able to communicate with
smserver
and did its job of mounting the removable media (CD).
Excerpt from
truss
output:
/10: open("/var/run/smedia_svc", O_RDONLY) = 36
/10: door_call(36, 0xD244DDB8) = 0
/10: close(36) = 0
Here's the
df
output:
# df -h | grep cdrom
/vol/dev/dsk/c1t0d0/wgr614v5 239M 239M 0K 100% /cdrom/wgr614v5
________________
Technorati tag:
Solaris |
OpenSolaris