home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / modules / BootArch.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  139 lines

  1. /**
  2.  * File:
  3.  *      modules/BootArch.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Module containing specific data for differnt architecturese
  10.  *      (as some architectures support multiple bootloaders, some bootloaders
  11.  *      support multiple architectures)
  12.  *
  13.  * Authors:
  14.  *      Jiri Srain <jsrain@suse.cz>
  15.  *
  16.  * $Id: BootArch.ycp 34489 2006-11-20 14:32:44Z jplack $
  17.  *
  18.  */
  19.  
  20. {
  21.  
  22. module "BootArch";
  23.  
  24. textdomain "bootloader";
  25.  
  26. import "Arch";
  27. import "Kernel";
  28. import "Linuxrc";
  29. import "ProductFeatures";
  30. import "Stage";
  31.  
  32. /**
  33.  * Get the file holding the initd imahe
  34.  * @return string the initrd image
  35.  */
  36. global string InitrdImage () {
  37.     return "/boot/initrd";
  38. }
  39.  
  40. /**
  41.  * Get parameters for the failsafe kernel
  42.  * @return string parameters for failsafe kernel
  43.  */
  44. global string FailsafeKernelParams () {
  45.     string ret = "";
  46.     if (Arch::i386 ())
  47.     {
  48.     ret = "showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off";
  49.     }
  50.     else if (Arch::x86_64 ())
  51.     {
  52.     ret = "showopts ide=nodma apm=off acpi=off noresume edd=off";
  53.     }
  54.     else if (Arch::ia64 ())
  55.     {
  56.     ret = "ide=nodma nohalt noresume";
  57.     }
  58.     else
  59.     {
  60.     y2warning ("Parameters for Failsafe boot option not defined");
  61.     }
  62.     if (Stage::initial ())
  63.     {
  64.     if (Linuxrc::InstallInf ("NOPCMCIA") == "1")
  65.         ret = ret + " NOPCMCIA";
  66.     }
  67.     else
  68.     {
  69.     map<string,any> saved_params = (map<string,any>)SCR::Read (
  70.         .target.ycp, "/var/lib/YaST2/bootloader.ycp");
  71.     ret = ret + " " + saved_params["additional_failsafe_params"]:"";
  72.     }
  73.     ret = ret + " 3";
  74.     return ret;
  75. }
  76.  
  77. /**
  78.  * Get parameters for the default kernel
  79.  * @param resume string device to resume from (or empty not to set it)
  80.  * @return string parameters for default kernel
  81.  */
  82. global string DefaultKernelParams (string resume) {
  83.     string features = 
  84.         ProductFeatures::GetStringFeature (
  85.         "globals",
  86.         "additional_kernel_parameters");
  87.     string kernel_cmdline = Kernel::GetCmdLine ();
  88.  
  89.     if (Arch::i386 () || Arch::x86_64 ())
  90.     {
  91.     string ret = (kernel_cmdline != "") ? kernel_cmdline + " " : "";
  92.     if (resume != "")
  93.         ret = ret + sformat ("resume=%1 ", resume);
  94.     if (features != "")
  95.         ret = ret + features + " "; 
  96.     if (regexpmatch (ret, "^(.* )?splash=[[:lower:]]+( .*)?$"))
  97.         ret = regexpsub (ret, "^((.* ))?splash=[[:lower:]]+(( .*)?)$", "\\1 \\3");
  98.     ret = ret + "splash=silent showopts";
  99.     return ret;
  100.     }
  101.     else if (Arch::ia64 ())
  102.     {
  103.     string ret = (kernel_cmdline != "") ? kernel_cmdline + " " : "";
  104.     if (features != "")
  105.         ret = ret + features + " "; 
  106.     ret = ret + "splash=silent";
  107.  
  108.     // on SGI Altix change kernel default hash tables sizes
  109.     if (SCR::Read (.target.stat, "/proc/sgi_sn") != $[])
  110.     {
  111.         ret = ret + " thash_entries=2097152";
  112.     }
  113.     return ret;
  114.     }
  115.     else
  116.     {
  117.     y2warning ("Default kernel parameters not defined");
  118.     return kernel_cmdline;
  119.     }
  120. }
  121.  
  122. /**
  123.  * Is VGA parameter setting available
  124.  * @return true if vga= can be set
  125.  */
  126. global boolean VgaAvailable () {
  127.     return (Arch::i386 () || Arch::x86_64 () || Arch::ia64 ());
  128. }
  129.  
  130. /**
  131.  * Is Suspend to Disk available?
  132.  * @return true if STD is available
  133.  */
  134. global boolean ResumeAvailable () {
  135.     return (Arch::i386 () || Arch::x86_64 () || Arch::ia64 ());
  136. }
  137.  
  138. } // EOF
  139.