[Harry Zink]
> While I appreciate the patch/diff provided by James Manning, I am extremely
> weary of applying anything to a system that I don't fully understand -
> particularly if it is suffixed by "Who knows..." (shiver).

I hadn't had a chance to test it... this one (attached) works (I had
forgotten to update the index commands in the hd[i-j] and hd[k-l])

> Now, I just need to make sure all devices are attached as Master devices, on
> their own controller port, and then figure out what minor and major to set
> them at... *ANY* help in allowing me to better understand how that's done,
> or in actually doing this will be appreciated.

anything on an "even" device (hdb, hdd, hdf, hdh, hdj, hdl, etc) is a
slave. the "odd" ones (hda, hdc, etc) are masters

> Alright, maybe it's oversimplified, but I grok that part (that the kernel
> needs the proper device files, and that I don't have the device files, and
> thus need to create them.

Actually, the kernel doesn't need the /dev files... user-space programs
(fdisk, for instance, possibly mkraid too, not sure) need them as an
interface to the devices in the kernel... devfs may make this picture
clearer down the road... or muddier :)

> Thanks, and thanks to James Manning as well for finally tracking down what
> the core of this problem is.

MAKEDEV is historically bad about keeping up with devices.txt, so
it's fairly common... those mknod's I gave last time should work too

> Is there some utility that will quickly and easily create /dev/ files and
> provides qualified questions to assist in properly creating /dev/ files?

MAKEDEV is a decent shell script, although it's just glorified
mknod wrapping when it comes down to it :)

reading devices.txt and a mknod --help  is about all that can be done
for understanding the /dev entries... as to major/minor and why they're
still around, "historical cruft" is about it for now.

James
--- /dev/MAKEDEV        Thu Mar  2 16:35:20 2000
+++ /tmp/MAKEDEV        Wed May 17 13:33:35 2000
@@ -180,7 +180,7 @@
        do
                case "$1" in
                        mem|tty|ttyp|cua|cub)   ;;
-                       hd)     (for d in a b c d e f g h ; do
+                       hd)     (for d in a b c d e f g h i j k l; do
                                        echo -n hd$d " "
                                 done) ; echo
                                ;;
@@ -188,6 +188,8 @@
                        ide1)   echo hdc hdd ;;
                        ide2)   echo hde hdf ;;
                        ide3)   echo hdg hdh ;;
+                       ide4)   echo hdi hdj ;;
+                       ide5)   echo hdk hdl ;;
                        sd)     echo sda sdb sdc sdd ;;
                        sr)     echo scd0 ;;
                        st)     echo st0 ;;
@@ -621,6 +623,28 @@
                major=`Major ide3 34` || continue
                unit=`suffix $arg hd`
                base=`index gh $unit`
+               base=`math $base \* 64`
+               makedev hd$unit b $major $base $disk
+               for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
+               do
+                       makedev hd$unit$part b $major `expr $base + $part` $disk
+               done
+               ;;
+       hd[i-j])
+               major=`Major ide4 56` || continue
+               unit=`suffix $arg hd`
+               base=`index ij $unit`
+               base=`math $base \* 64`
+               makedev hd$unit b $major $base $disk
+               for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
+               do
+                       makedev hd$unit$part b $major `expr $base + $part` $disk
+               done
+               ;;
+       hd[k-l])
+               major=`Major ide5 57` || continue
+               unit=`suffix $arg hd`
+               base=`index kl $unit`
                base=`math $base \* 64`
                makedev hd$unit b $major $base $disk
                for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20

Reply via email to