home *** CD-ROM | disk | FTP | other *** search
/ Caldera Network Desktop 1.0 / caldera-network-desktop-1.0.bin / images / ramdisk2.img / usr / lib / perl / pcmcia < prev    next >
Text File  |  1995-10-11  |  3KB  |  164 lines

  1. # -*-perl-*-
  2.  
  3. # stuff to handle pcmcia devices
  4.  
  5. $pcic = "";
  6. $pcmcia_opts = "";
  7. $pcmcia_3c589 = "";
  8.  
  9. sub pcmcia_init {
  10.  
  11.     &rhs_infobox("PCMCIA",
  12. <<EOM
  13. >
  14. Probing for PCMCIA devices.
  15. >
  16. EOM
  17.          , 70);
  18.  
  19.     # This is just to look good...
  20.     sleep(1);
  21.  
  22.     $pcic = "";
  23.     open(SAVEERR, ">&STDERR");
  24.     open(STDERR, ">/dev/null");
  25.     open(PROC, "probe|") || &newdie("PCMCIA probe failed!");
  26.     while (<PROC>) {
  27.     /Intel PCIC probe/ && (/not found/ || ($pcic = "i82365"));
  28.     /Databook TCIC-2 probe/ && (/not found/ || ($pcic = "tcic"));
  29.     }
  30.     close PROC;
  31.     open(STDERR, ">&SAVEERR");
  32.  
  33.     if ($pcic eq "") {
  34.     return 0;
  35.     }
  36.  
  37.     if (!rhs_yesno("PCMCIA",
  38. <<EOM
  39. >
  40. You appear to have $pcic PCMCIA support.
  41. >
  42. Is this true?
  43. >
  44. EOM
  45.            ,  70)) {
  46.     $pcic = "";
  47.     return 0;
  48.     }
  49.  
  50.     &mount_bootdisk();
  51.  
  52.     if (&rhs_yesno("3COM 3c589",
  53. <<EOM
  54. >
  55. If you have a 3COM 3c589 PCMCIA Ethernet card,
  56. are you using 10base2 (also known as BNC, or thin
  57. net, or coax)?
  58. >
  59.  (If you are not using a 3c589, just press enter)
  60. >
  61. EOM
  62.            , 70)) {
  63.     $pcmcia_3c589 = "  module \"3c589_cs\" opts \"if_port=3\"";
  64.     } else {
  65.     $pcmcia_3c589 = "  module \"3c589_cs\" # opts \"if_port=3\"";
  66.     }
  67.  
  68.     open(FD, "/etc/pcmcia/config.in");
  69.     open(OF, ">/etc/pcmcia/config");
  70.     while (<FD>) {
  71. #    if (/^PCIC=/) {
  72. #        $_ = "PCIC=$pcic\n";
  73. #    }
  74.     if (/module \"3c589_cs/) {
  75.         $_ = "$pcmcia_3c589\n";
  76.     }
  77.     print OF;
  78.     }
  79.     close FD;
  80.     close OF;
  81.  
  82.     $pcmcia_opts = "";
  83.  
  84.     &rhs_infobox("PCMCIA",
  85. <<EOM
  86. >
  87. Loading PCMCIA core module.
  88. >
  89. EOM
  90.          , 70);
  91.     &invoke("insmod /lib/modules/current/pcmcia/pcmcia_core.o");
  92.     &rhs_infobox("PCMCIA",
  93. <<EOM
  94. >
  95. Loading PCMCIA $pcic module.
  96. >
  97. EOM
  98.          , 70);
  99.     &invoke("insmod /lib/modules/current/pcmcia/$pcic.o $pcmcia_opts");
  100.     &rhs_infobox("PCMCIA",
  101. <<EOM
  102. >
  103. Loading PCMCIA ds module.
  104. >
  105. EOM
  106.          , 70);
  107.     &invoke("insmod /lib/modules/current/pcmcia/ds.o");
  108.     &rhs_infobox("PCMCIA",
  109. <<EOM
  110. >
  111. Running PCMCIA card manager.
  112. >
  113. EOM
  114.          , 70);
  115.     &invoke("cardmgr");
  116.  
  117.     return 0;
  118. }
  119.  
  120. sub finish_pcmcia {
  121.  
  122.     local ( $ans );
  123.     
  124.     if (! -f "$fsmount/etc/sysconfig/pcmcia") {
  125.     return 1;
  126.     }
  127.  
  128.     if ($pcic) {
  129.     $ans = "yes";
  130.     } else {
  131.     $ans = "no";
  132.     }
  133.  
  134.     open(FD, ">$fsmount/etc/sysconfig/pcmcia");
  135.     print FD <<EOM
  136. PCMCIA=$ans
  137. PCIC=$pcic
  138. OPTS=$pcmcia_opts
  139. EOM
  140.     ;
  141.     close FD;
  142.  
  143.     open(IFD, "$fsmount/etc/sysconfig/pcmcia-scripts/config");
  144.     open(FD, ">$fsmount/etc/sysconfig/pcmcia-scripts/config.new");
  145.     while (<IFD>) {
  146.     if (/module \"3c589_cs/) {
  147.         $_ = $pcmcia_3c589;
  148.     }
  149.     print FD;
  150.     }
  151.     close IFD;
  152.     close FD;
  153.  
  154.     unlink("$fsmount/etc/sysconfig/pcmcia-scripts/config");
  155.     link("$fsmount/etc/sysconfig/pcmcia-scripts/config.new",
  156.      "$fsmount/etc/sysconfig/pcmcia-scripts/config");
  157.     unlink("$fsmount/etc/sysconfig/pcmcia-scripts/config.new");
  158.  
  159.     return 1;
  160. }
  161.  
  162. #######
  163. 1;
  164.