I copied the module to /usr/kernel/strmod and then ran autopush with
following file:
# major minor last minor modules
73 0 128 dump
I get tthe following message:
autopush: WARNING: File dumppush: bad input line 2 ignored
The output from truss is as follows:
execve("/usr/sbin/autopush", 0x08047C70, 0x08047C80) argc = 3
xstat(2, "/usr/sbin/autopush", 0x08047A0C) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
sysconfig(_CONFIG_PAGESIZE) = 4096
open("/usr/lib/libc.so.1", O_RDONLY) = 3
fxstat(2, 3, 0x08047840) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xDFBC0000
mmap(0x00000000, 634880, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xDFB20000
mmap(0xDFBB3000, 22616, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 536576) = 0xDFBB3000
mmap(0xDFBB9000, 4764, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xDFBB9000
munmap(0xDFBA3000, 65536) = 0
close(3) = 0
open("/usr/lib/libdl.so.1", O_RDONLY) = 3
fxstat(2, 3, 0x08047840) = 0
mmap(0xDFBC0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0xDFBC0000
close(3) = 0
sysi86(SI86FPHW, 0xDFBBA234, 0x08047C2C, 0xDFBFB000) = 0x00000000
sysconfig(_CONFIG_PAGESIZE) = 4096
brk(0x08062C10) = 0
brk(0x08064C10) = 0
open("/usr/lib/locale/en_GB.ISO8859-1/en_GB.ISO8859-1.so.2", O_RDONLY) =
3
fxstat(2, 3, 0x08047230) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xDFB10000
mmap(0x00000000, 86016, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xDFAF0000
mmap(0xDFB03000, 5016, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 12288) = 0xDFB03000
munmap(0xDFAF4000, 61440) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xDFAE0000
close(3) = 0
munmap(0xDFB10000, 4096) = 0
open("/dev/sad/admin", O_RDWR) = 3
open("dumppush", O_RDONLY) = 4
fstat64(4, 0x080479AC) = 0
brk(0x08064C10) = 0
brk(0x08066C10) = 0
ioctl(4, TCGETA, 0x08047980) Err#25 ENOTTY
read(4, " # m a j o r\t m i n o".., 8192) = 49
modctl(MODGETMAJBIND, 0x08047AF8, 0x00000003, 0x08047A64, 0x08047A98)
Err#19 ENODEV
autopushwrite(2, " a u t o p u s h", 8) = 8
: WARNING: File write(2, " : W A R N I N G : F".., 16) = 16
dumppushwrite(2, " d u m p p u s h", 8) = 8
: bad input line write(2, " : b a d i n p u t ".., 17) = 17
2write(2, " 2", 1) = 1
ignored
write(2, " i g n o r e d\n", 9) = 9
read(4, 0x08063C8C, 8192) = 0
llseek(0, 0, SEEK_CUR) = 2922
llseek(4, 0, SEEK_CUR) = 49
_exit(1)
The module loads Ok with modload, so what is the problem ?
Dave Salt
> I copied the module to /usr/kernel/strmod and then ran autopush with
> following file:
> # major minor last minor modules
> 73 0 128 dump
Autopush files don't support comments.
Darren
Dave Salt <sa...@NOSPAM.blackpig.demon.co.uk> writes:
>I am trying to setup the autopushing of a STREAMS module i have written.
>I copied the module to /usr/kernel/strmod and then ran autopush with
>following file:
># major minor last minor modules
>73 0 128 dump
I think major should be a symbolic entry which is then translated
using name_to_major
(that way entries in autopush files are not dependent on teh
device major number)
Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
Sorry to say but you must be wrong. Here's the autopush file I use:
# automatically generated autopush-file for xyz
#
# major minor lastminor modules
hme -1 0 xyz
A related question:
The autopush file above pushes the module xyz for all the hme-interfaces
(hme0, hme1, ...). Is there a way push it only on a specific network
interface? Perhaps I should specify the exact minor number of e.g. hme0.
The question is, how do I find out the minor number of hme0?
AFAIK you don't have to find out the minor number, because
-1 will do it for you ;-)
as man autopush says:
e names of modules. If
minor is -1, then all minor devices of a major driver
specified by major are configured, and the value for
last-minor is ignored. If last-minor is 0, then only a
single minor device is configured. To configure a
I hope this is what you want to do...
bye
Thomas