Navigation


Changeset 245

Show
Ignore:
Timestamp:
11/18/08 15:21:21 (7 weeks ago)
Author:
tinova
Message:

Improving kernel_cmd support. Now works for XEN as well.

Location:
one/trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • one/trunk/share/examples/vm.schema

    r230 r245  
    2626  kernel     = "path_to_os_kernel",           # XEN: Mandatory,default. KVM: Optional 
    2727  initrd     = "path_to_initrd_image",        # XEN: Mandatory,default. KVM: Optional 
    28   kernel_cmd = "kernel_command_line",         # Optional, default, KVM 
     28  kernel_cmd = "kernel_command_line",         # Optional, default, KVM, XEN 
    2929  root       = "device to be mounted as root" # XEN: Mandatory,default. KVM: Optional 
    3030  boot       = "device to boot from" ]        # KVM: Mandatory,default  XEN: Optional 
  • one/trunk/src/vmm/LibVirtDriver.cc

    r230 r245  
    3838     int     memory_in_kb = 0; 
    3939 
    40      string  kernel  = ""; 
    41      string  initrd  = ""; 
    42      string  boot    = ""; 
    43      string  root    = ""; 
    44  
    45      const VectorAttribute *    disk; 
    46  
    47      string  type    = ""; 
    48      string  target  = ""; 
    49      string  bus     = ""; 
    50      string  ro      = ""; 
     40     string  kernel     = ""; 
     41     string  initrd     = ""; 
     42     string  boot       = ""; 
     43     string  root       = ""; 
     44     string  kernel_cmd = ""; 
     45 
     46     const VectorAttribute * disk; 
     47 
     48     string  type       = ""; 
     49     string  target     = ""; 
     50     string  bus        = ""; 
     51     string  ro         = ""; 
    5152     bool    readonly; 
    5253 
    5354     const VectorAttribute * nic; 
    5455 
    55      string  mac     = ""; 
    56      string  bridge  = ""; 
    57      string  script  = ""; 
     56     string  mac        = ""; 
     57     string  bridge     = ""; 
     58     string  script     = ""; 
    5859 
    5960     const VectorAttribute * graphics; 
    6061      
    61      string  listen  = ""; 
    62      string  port    = ""; 
    63      string  passwd  = ""; 
     62     string  listen     = ""; 
     63     string  port       = ""; 
     64     string  passwd     = ""; 
    6465      
    6566     const VectorAttribute * input; 
     
    6768     const VectorAttribute * features; 
    6869      
    69      string     pae  = ""; 
    70      string     acpi = ""; 
     70     string     pae     = ""; 
     71     string     acpi    = ""; 
    7172 
    7273     const VectorAttribute * raw; 
     
    165166                boot       = os->vector_value("BOOT"); 
    166167                root       = os->vector_value("ROOT"); 
     168                kernel_cmd = os->vector_value("KERNEL_CMD"); 
    167169            } 
    168170     } 
     
    190192     if ( root.empty() ) 
    191193     { 
    192         get_default("OS","ROOT",root); 
     194         get_default("OS","ROOT",root); 
     195     } 
     196      
     197     if ( kernel_cmd.empty() ) 
     198     { 
     199         get_default("OS","KERNEL_CMD",kernel_cmd); 
    193200     } 
    194201      
     
    209216     if ( !root.empty() ) 
    210217     { 
    211         file << "\t\t<cmdline>root=/dev/" << root << " ro</cmdline>" << endl;    
     218         file << "\t\t<cmdline>root=/dev/" << root; 
     219          
     220         if (kernel_cmd.empty()) 
     221         { 
     222             file << " " << kernel_cmd; 
     223         } 
     224          
     225         file << "</cmdline>" << endl;   
    212226     }             
    213227     
  • one/trunk/src/vmm/XenDriver.cc

    r242 r245  
    3838    float   cpu_units   = 1.0; 
    3939 
    40     string kernel = ""; 
    41     string initrd = ""; 
    42     string root   = ""; 
    43  
    44     const VectorAttribute *     disk; 
    45      
    46     string target = ""; 
    47     string ro     = ""; 
     40    string kernel     = ""; 
     41    string initrd     = ""; 
     42    string root       = ""; 
     43    string kernel_cmd = ""; 
     44 
     45    const VectorAttribute * disk; 
     46     
     47    string target     = ""; 
     48    string ro         = ""; 
    4849    string mode; 
    4950 
    5051    const VectorAttribute * nic; 
    5152     
    52     string mac    = ""; 
    53     string bridge = ""; 
     53    string mac        = ""; 
     54    string bridge     = ""; 
    5455 
    5556    const VectorAttribute * graphics; 
    5657         
    57         string type   = ""; 
    58         string listen = ""; 
    59         string port   = ""; 
    60         string passwd = ""; 
     58        string type       = ""; 
     59        string listen     = ""; 
     60        string port       = ""; 
     61        string passwd     = ""; 
    6162 
    6263        const VectorAttribute * raw; 
     
    130131        if ( os != 0 ) 
    131132        { 
    132                 kernel     = os->vector_value("KERNEL"); 
    133                 initrd     = os->vector_value("INITRD"); 
    134                 root       = os->vector_value("ROOT"); 
     133            kernel     = os->vector_value("KERNEL"); 
     134            initrd     = os->vector_value("INITRD"); 
     135            root       = os->vector_value("ROOT"); 
     136            kernel_cmd = os->vector_value("KERNEL_CMD"); 
    135137        } 
    136138    } 
     
    150152        get_default("OS","ROOT",root); 
    151153    } 
     154     
     155    if ( kernel_cmd.empty() ) 
     156    { 
     157        get_default("OS","KERNEL_CMD",kernel_cmd); 
     158    } 
    152159 
    153160    if ( kernel.empty() ) 
     
    166173    else 
    167174    { 
    168         file << "root = '/dev/" << root << " ro'" << endl;       
     175        file << "root = '/dev/" << root << "'" << endl;  
    169176    } 
    170177     
    171178    if ( !initrd.empty() ) 
    172179    { 
    173         file << "ramdisk = '" << initrd << "'" << endl; 
    174     } 
     180        file << "ramdisk = '" << initrd << "'" << endl; 
     181    } 
     182     
     183    if ( !kernel_cmd.empty() ) 
     184    { 
     185        file << "extra = '" << kernel_cmd << "'" << endl; 
     186    }     
     187     
    175188         
    176189    attrs.clear(); 
  • one/trunk/src/vmm_mad/kvm/vmm_kvm.conf

    r61 r245  
    22# (all domains will use these values as defaults) 
    33# Valid atributes are: 
    4 #  - os [kernel,initrd,boot,root] 
     4#  - os [kernel,initrd,boot,root,kernel_cmd] 
    55#  - memory 
    66 
    77#MEMORY =  128 
    8 #OS = [ kernel="/vmlinuz", initrd="/initrd.img", root="sda1", boot=hd] 
     8#OS = [ kernel="/vmlinuz", initrd="/initrd.img", root="sda1", boot=hd,kernel_cmd="ro"] 
  • one/trunk/src/vmm_mad/xen/vmm_xen.conf

    r61 r245  
    33# Valid atributes: 
    44#  - credit 
    5 #  - os [kernel,initrd,root] 
     5#  - os [kernel,initrd,root,kernel_cmd] 
    66#  - memory 
    77 
    88#MEMORY =  128 
    9 #OS     = [ kernel="/vmlinuz", initrd="/initrd.img", root="sda1" ] 
     9#OS     = [ kernel="/vmlinuz", initrd="/initrd.img", root="sda1", kernel_cmd="ro" ] 
    1010CREDIT = 256 
     11