SAWADA Keiji
card_capto****@users*****
2006年 2月 26日 (日) 23:44:28 JST
Index: dlkit2/sv.non-std-driver-setup diff -u dlkit2/sv.non-std-driver-setup:1.4 dlkit2/sv.non-std-driver-setup:1.5 --- dlkit2/sv.non-std-driver-setup:1.4 Sun Feb 26 04:16:54 2006 +++ dlkit2/sv.non-std-driver-setup Sun Feb 26 23:44:28 2006 @@ -1,4 +1,7 @@ #!/bin/sh +# -*- shell-script -*- +# sv.non-std-driver-setup - create script to install third party driver. +# # Usage: sv.non-std-driver-setup <name> NAME=${1:?} @@ -52,6 +55,16 @@ ) > $root/etc/name_to_major } +add_etc_system() { + echo "$NAME: Configuring etc/system" + backup_distfile $root/etc/system + (cat $root/etc/system.dist + echo "" + echo "* Added by dl-x86solaris kit" + echo "forceload: drv/$NAME" + ) > $root/etc/system +} + add_devicedb_master() { echo "$NAME: Configuring boot/solaris/devicedb/master" backup_distfile $root/boot/solaris/devicedb/master @@ -64,28 +77,32 @@ add_driver_aliases add_minor_perm add_name_to_major + add_etc_system add_devicedb_master } case "$1" in server) - # assuming $CWD/config.in exists + # assuming $CWD/config.in exists. ran at server-side. + # modifies install-time root filesystem. . ./config.in if [ "x$BOOT_TYPE" = xnewboot ]; then targetdir=$SV_INSTROOT/kernel/drv root=$SV_INSTROOT else - targetdir=$SV_INSTROOT/fake - root=$SV_INSTROOT + echo "ERROR: BOOT_TYPE should be 'newboot'" fi ;; offline) - # assuming $CWD/config.in exists + # assuming $CWD/config.in exists. ran at server-side. + # modifies postinstall-time root filesystem. . ./config.in targetdir=$SV_FIN_ROOT/kernel/drv root=$SV_FIN_ROOT ;; client) + # ran at client-side. + # modifies postinstall-time root filesystem. targetdir=/a/kernel/drv root=/a ;; @@ -94,12 +111,32 @@ ;; esac -for ext in '' '.amd64' '.conf'; do - if [ -f ${NAME}${ext} ]; then - cp_drv ${NAME}${ext} $targetdir/${NAME}${ext} +# installs driver executables +copied=n +for srcdir in . site_drv; do + if [ -f ${srcdir}/${NAME} ]; then + cp_drv ${srcdir}/${NAME} ${targetdir}/${NAME} + copied=y${copied} + fi + if [ -f ${srcdir}/${NAME}.i386 ]; then + cp_drv ${srcdir}/${NAME}.i386 ${targetdir}/${NAME} + copied=y${copied} + fi + if [ -f ${srcdir}/${NAME}.amd64 -a -d ${targetdir}/amd64 ]; then + cp_drv ${srcdir}/${NAME}.amd64 ${targetdir}/amd64/${NAME} + copied=y${copied} + fi + if [ -f ${srcdir}/${NAME}.conf ]; then + cp_drv ${srcdir}/${NAME}.conf ${targetdir}/${NAME}.conf fi done +if [ $copied = n ]; then + echo "ERROR: ${NAME} driver not copied" +fi + +# update driver registration configuration fake_add_drv + EOF } Index: dlkit2/sv.get-non-std-drivers diff -u /dev/null dlkit2/sv.get-non-std-drivers:1.1 --- /dev/null Sun Feb 26 23:44:28 2006 +++ dlkit2/sv.get-non-std-drivers Sun Feb 26 23:44:28 2006 @@ -0,0 +1,51 @@ +#!/bin/sh +# -*- shell-script -*- +# sv.get-non-std-drivers - get third party drivers + +WGET=wget +mkdir -p site_drv +cd site_drv + +#---------------------------------------------------------------------- + +xlink() { + # find a file specified by given glob, and make link to it + LINK=${1:?}; FILE=${2:?} + if [ -f "$FILE" ]; then + echo " Found $NAME driver at $FILE ($LINK)" + rm -f "$LINK" + ln "$FILE" "$LINK" + else + echo "ERROR: link=$LINK file=$FILE" + fi +} + +#---------------------------------------------------------------------- +MURAYAMA_URL=homepage2.nifty.com/mrym3/taiyodo + +murayama_extract() { + # usage: murayama_extract NAME MAJOR_VERSION + NAME=${1:?}; MAJ=${2:?} + TGZ="$MURAYAMA_URL/$NAME-$MAJ*.tar.gz" + echo "Extracting $NAME driver archive" + gzip -dc $TGZ | tar xf - + xlink $NAME.i386 $NAME-$MAJ*/i386/$NAME + xlink $NAME.amd64 $NAME-$MAJ*/amd64/$NAME +} + +echo "Fetching archives from http://$MURAYAMA_URL/eng/ ..." +$WGET -q -m -l 1 http://$MURAYAMA_URL/eng/ +murayama_extract alta 1 +murayama_extract bcf 0 +murayama_extract gani 0 +murayama_extract ife 0 +murayama_extract nfo 0 +murayama_extract ni 0 +murayama_extract rf 1 +murayama_extract rh 1 +#murayama_extract rh 2 +murayama_extract sfe 1 +murayama_extract tne 0 +murayama_extract tu 0 +murayama_extract vel 0 +