Diff for /wikisrc/ports/xen/howto.mdwn between versions 1.2 and 1.3

version 1.2, 2013/10/31 12:34:39 version 1.3, 2013/10/31 12:43:04
Line 108  Note that your CPU needs to support this Line 108  Note that your CPU needs to support this
 instruction, AMD CPUs the 'SVM' instruction. You can easily find out if  instruction, AMD CPUs the 'SVM' instruction. You can easily find out if
 your CPU support HVM by using NetBSD's cpuctl command:  your CPU support HVM by using NetBSD's cpuctl command:
   
 ```      # cpuctl identify 0
 # cpuctl identify 0      cpu0: Intel Core 2 (Merom) (686-class), id 0x6f6
 cpu0: Intel Core 2 (Merom) (686-class), id 0x6f6      cpu0: features 0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
 cpu0: features 0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>      cpu0: features 0xbfebfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX>
 cpu0: features 0xbfebfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX>      cpu0: features 0xbfebfbff<FXSR,SSE,SSE2,SS,HTT,TM,SBF>
 cpu0: features 0xbfebfbff<FXSR,SSE,SSE2,SS,HTT,TM,SBF>      cpu0: features2 0x4e33d<SSE3,DTES64,MONITOR,DS-CPL,VMX,TM2,SSSE3,CX16,xTPR,PDCM,DCA>
 cpu0: features2 0x4e33d<SSE3,DTES64,MONITOR,DS-CPL,VMX,TM2,SSSE3,CX16,xTPR,PDCM,DCA>      cpu0: features3 0x20100800<SYSCALL/SYSRET,XD,EM64T>
 cpu0: features3 0x20100800<SYSCALL/SYSRET,XD,EM64T>      cpu0: "Intel(R) Xeon(R) CPU            5130  @ 2.00GHz"
 cpu0: "Intel(R) Xeon(R) CPU            5130  @ 2.00GHz"      cpu0: I-cache 32KB 64B/line 8-way, D-cache 32KB 64B/line 8-way
 cpu0: I-cache 32KB 64B/line 8-way, D-cache 32KB 64B/line 8-way      cpu0: L2 cache 4MB 64B/line 16-way
 cpu0: L2 cache 4MB 64B/line 16-way      cpu0: ITLB 128 4KB entries 4-way
 cpu0: ITLB 128 4KB entries 4-way      cpu0: DTLB 256 4KB entries 4-way, 32 4MB entries 4-way
 cpu0: DTLB 256 4KB entries 4-way, 32 4MB entries 4-way      cpu0: Initial APIC ID 0
 cpu0: Initial APIC ID 0      cpu0: Cluster/Package ID 0
 cpu0: Cluster/Package ID 0      cpu0: Core ID 0
 cpu0: Core ID 0      cpu0: family 06 model 0f extfamily 00 extmodel 00
 cpu0: family 06 model 0f extfamily 00 extmodel 00  
 ```  
   
 Depending on your CPU, the feature you are looking for is called HVM,  Depending on your CPU, the feature you are looking for is called HVM,
 SVM or VMX.  SVM or VMX.
Line 156  console to use, etc ... Line 154  console to use, etc ...
   
 Here is a commented `/grub/menu.lst`{.filename} file:  Here is a commented `/grub/menu.lst`{.filename} file:
   
 ~~~ {.programlisting}  
 #Grub config file for NetBSD/xen. Copy as /grub/menu.lst and run  #Grub config file for NetBSD/xen. Copy as /grub/menu.lst and run
 # grub-install /dev/rwd0d (assuming your boot device is wd0).      # grub-install /dev/rwd0d (assuming your boot device is wd0).
 #      #
 # The default entry to load will be the first one      # The default entry to load will be the first one
 default=0      default=0
       
 # boot the default entry after 10s if the user didn't hit keyboard      # boot the default entry after 10s if the user didn't hit keyboard
 timeout=10      timeout=10
       
 # Configure serial port to use as console. Ignore if you'll use VGA only      # Configure serial port to use as console. Ignore if you'll use VGA only
 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1      serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
       
 # Let the user select which console to use (serial or VGA), default      # Let the user select which console to use (serial or VGA), default
 # to serial after 10s      # to serial after 10s
 terminal --timeout=10 serial console      terminal --timeout=10 serial console
       
 # An entry for NetBSD/xen, using /netbsd as the domain0 kernel, and serial      # An entry for NetBSD/xen, using /netbsd as the domain0 kernel, and serial
 # console. Domain0 will have 64MB RAM allocated.      # console. Domain0 will have 64MB RAM allocated.
 # Assume NetBSD is installed in the first MBR partition.      # Assume NetBSD is installed in the first MBR partition.
 title Xen 3 / NetBSD (hda0, serial)      title Xen 3 / NetBSD (hda0, serial)
   root(hd0,0)        root(hd0,0)
   kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1        kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
   module (hd0,a)/netbsd bootdev=wd0a ro console=ttyS0        module (hd0,a)/netbsd bootdev=wd0a ro console=ttyS0
       
 # Same as above, but using VGA console      # Same as above, but using VGA console
 # We can use console=tty0 (Linux syntax) or console=pc (NetBSD syntax)      # We can use console=tty0 (Linux syntax) or console=pc (NetBSD syntax)
 title Xen 3 / NetBSD (hda0, vga)      title Xen 3 / NetBSD (hda0, vga)
   root(hd0,0)        root(hd0,0)
   kernel (hd0,a)/xen.gz dom0_mem=65536        kernel (hd0,a)/xen.gz dom0_mem=65536
   module (hd0,a)/netbsd bootdev=wd0a ro console=tty0        module (hd0,a)/netbsd bootdev=wd0a ro console=tty0
       
 # NetBSD/xen using a backup domain0 kernel (in case you installed a      # NetBSD/xen using a backup domain0 kernel (in case you installed a
 # nonworking kernel as /netbsd      # nonworking kernel as /netbsd
 title Xen 3 / NetBSD (hda0, backup, serial)      title Xen 3 / NetBSD (hda0, backup, serial)
   root(hd0,0)        root(hd0,0)
   kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1        kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
   module (hd0,a)/netbsd.backup bootdev=wd0a ro console=ttyS0        module (hd0,a)/netbsd.backup bootdev=wd0a ro console=ttyS0
 title Xen 3 / NetBSD (hda0, backup, VGA)      title Xen 3 / NetBSD (hda0, backup, VGA)
   root(hd0,0)        root(hd0,0)
   kernel (hd0,a)/xen.gz dom0_mem=65536        kernel (hd0,a)/xen.gz dom0_mem=65536
   module (hd0,a)/netbsd.backup bootdev=wd0a ro console=tty0        module (hd0,a)/netbsd.backup bootdev=wd0a ro console=tty0
       
 #Load a regular NetBSD/i386 kernel. Can be useful if you end up with a      #Load a regular NetBSD/i386 kernel. Can be useful if you end up with a
 #nonworking /xen.gz      #nonworking /xen.gz
 title NetBSD 5.1      title NetBSD 5.1
   root (hd0,a)        root (hd0,a)
   kernel --type=netbsd /netbsd-GENERIC        kernel --type=netbsd /netbsd-GENERIC
       
 #Load the NetBSD bootloader, letting it load the NetBSD/i386 kernel.      #Load the NetBSD bootloader, letting it load the NetBSD/i386 kernel.
 #May be better than the above, as grub can't pass all required infos      #May be better than the above, as grub can't pass all required infos
 #to the NetBSD/i386 kernel (e.g. console, root device, ...)      #to the NetBSD/i386 kernel (e.g. console, root device, ...)
 title NetBSD chain      title NetBSD chain
   root        (hd0,0)        root        (hd0,0)
   chainloader +1        chainloader +1
       
 ## end of grub config file.      ## end of grub config file.
               
 ~~~  
   
 Install grub with the following command:  Install grub with the following command:
   
 ~~~ {.programlisting}      # grub --no-floppy
 # grub --no-floppy      
       grub> root (hd0,a)
 grub> root (hd0,a)       Filesystem type is ffs, partition type 0xa9
  Filesystem type is ffs, partition type 0xa9      
       grub> setup (hd0)
 grub> setup (hd0)       Checking if "/boot/grub/stage1" exists... no
  Checking if "/boot/grub/stage1" exists... no       Checking if "/grub/stage1" exists... yes
  Checking if "/grub/stage1" exists... yes       Checking if "/grub/stage2" exists... yes
  Checking if "/grub/stage2" exists... yes       Checking if "/grub/ffs_stage1_5" exists... yes
  Checking if "/grub/ffs_stage1_5" exists... yes       Running "embed /grub/ffs_stage1_5 (hd0)"...  14 sectors are embedded.
  Running "embed /grub/ffs_stage1_5 (hd0)"...  14 sectors are embedded.      succeeded
 succeeded       Running "install /grub/stage1 (hd0) (hd0)1+14 p (hd0,0,a)/grub/stage2 /grub/menu.lst"...
  Running "install /grub/stage1 (hd0) (hd0)1+14 p (hd0,0,a)/grub/stage2 /grub/menu.lst"...       succeeded
  succeeded      Done.
 Done.  
         
 ~~~  
   
 * * * * *  * * * * *
   
Line 248  Once you have *domain0* running, you nee Line 240  Once you have *domain0* running, you nee
 sure that `/dev/xencons`{.filename} and `/dev/xenevt`{.filename} exist  sure that `/dev/xencons`{.filename} and `/dev/xenevt`{.filename} exist
 before starting **xend**. You can create them with this command:  before starting **xend**. You can create them with this command:
   
 ~~~ {.programlisting}      # cd /dev && sh MAKEDEV xen
 # cd /dev && sh MAKEDEV xen  
 ~~~  
   
 xend will write logs to `/var/log/xend.log`{.filename} and  xend will write logs to `/var/log/xend.log`{.filename} and
 `/var/log/xend-debug.log`{.filename}. You can then control xen with the  `/var/log/xend-debug.log`{.filename}. You can then control xen with the
 xm tool. 'xm list' will show something like:  xm tool. 'xm list' will show something like:
   
 ~~~ {.programlisting}      # xm list
 # xm list      Name              Id  Mem(MB)  CPU  State  Time(s)  Console
 Name              Id  Mem(MB)  CPU  State  Time(s)  Console      Domain-0           0       64    0  r----     58.1
 Domain-0           0       64    0  r----     58.1  
 ~~~  
   
 'xm create' allows you to create a new domain. It uses a config file in  'xm create' allows you to create a new domain. It uses a config file in
 PKG\_SYSCONFDIR for its parameters. By default, this file will be in  PKG\_SYSCONFDIR for its parameters. By default, this file will be in
Line 275  binary sets: XEN3\_DOMU. Line 263  binary sets: XEN3\_DOMU.
   
 Here is an /usr/pkg/etc/xen/nbsd example config file:  Here is an /usr/pkg/etc/xen/nbsd example config file:
   
 ~~~ {.programlisting}      #  -*- mode: python; -*-
 #  -*- mode: python; -*-      #============================================================================
 #============================================================================      # Python defaults setup for 'xm create'.
 # Python defaults setup for 'xm create'.      # Edit this file to reflect the configuration of your system.
 # Edit this file to reflect the configuration of your system.      #============================================================================
 #============================================================================      
       #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------      # Kernel image file. This kernel will be loaded in the new domain.
 # Kernel image file. This kernel will be loaded in the new domain.      kernel = "/home/bouyer/netbsd-XEN3_DOMU"
 kernel = "/home/bouyer/netbsd-XEN3_DOMU"      #kernel = "/home/bouyer/netbsd-INSTALL_XEN3_DOMU"
 #kernel = "/home/bouyer/netbsd-INSTALL_XEN3_DOMU"      
       # Memory allocation (in megabytes) for the new domain.
 # Memory allocation (in megabytes) for the new domain.      memory = 128
 memory = 128      
       # A handy name for your new domain. This will appear in 'xm list',
 # A handy name for your new domain. This will appear in 'xm list',      # and you can use this as parameters for xm in place of the domain
 # and you can use this as parameters for xm in place of the domain      # number. All domains must have different names.
 # number. All domains must have different names.      #
 #      name = "nbsd"
 name = "nbsd"      
       # The number of virtual CPUs this domain has.
 # The number of virtual CPUs this domain has.      #
 #      vcpus = 1
 vcpus = 1      
       #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------      # Define network interfaces for the new domain.
 # Define network interfaces for the new domain.      
       # Number of network interfaces (must be at least 1). Default is 1.
 # Number of network interfaces (must be at least 1). Default is 1.      nics = 1
 nics = 1      
       # Define MAC and/or bridge for the network interfaces.
 # Define MAC and/or bridge for the network interfaces.      #
 #      # The MAC address specified in ``mac'' is the one used for the interface
 # The MAC address specified in ``mac'' is the one used for the interface      # in the new domain. The interface in domain0 will use this address XOR'd
 # in the new domain. The interface in domain0 will use this address XOR'd      # with 00:00:00:01:00:00 (i.e. aa:00:00:51:02:f0 in our example). Random
 # with 00:00:00:01:00:00 (i.e. aa:00:00:51:02:f0 in our example). Random      # MACs are assigned if not given.
 # MACs are assigned if not given.      #
 #      # ``bridge'' is a required parameter, which will be passed to the
 # ``bridge'' is a required parameter, which will be passed to the      # vif-script called by xend(8) when a new domain is created to configure
 # vif-script called by xend(8) when a new domain is created to configure      # the new xvif interface in domain0.
 # the new xvif interface in domain0.      #
 #      # In this example, the xvif is added to bridge0, which should have been
 # In this example, the xvif is added to bridge0, which should have been      # set up prior to the new domain being created -- either in the
 # set up prior to the new domain being created -- either in the      # ``network'' script or using a /etc/ifconfig.bridge0 file.
 # ``network'' script or using a /etc/ifconfig.bridge0 file.      #
 #      vif = [ 'mac=aa:00:00:50:02:f0, bridge=bridge0' ]
 vif = [ 'mac=aa:00:00:50:02:f0, bridge=bridge0' ]      
       #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------      # Define the disk devices you want the domain to have access to, and
 # Define the disk devices you want the domain to have access to, and      # what you want them accessible as.
 # what you want them accessible as.      #
 #      # Each disk entry is of the form:
 # Each disk entry is of the form:      #
 #      #       phy:DEV,VDEV,MODE
 #       phy:DEV,VDEV,MODE      #
 #      # where DEV is the device, VDEV is the device name the domain will see,
 # where DEV is the device, VDEV is the device name the domain will see,      # and MODE is r for read-only, w for read-write.  You can also create
 # and MODE is r for read-only, w for read-write.  You can also create      # file-backed domains using disk entries of the form:
 # file-backed domains using disk entries of the form:      #
 #      #       file:PATH,VDEV,MODE
 #       file:PATH,VDEV,MODE      #
 #      # where PATH is the path to the file used as the virtual disk, and VDEV
 # where PATH is the path to the file used as the virtual disk, and VDEV      # and MODE have the same meaning as for ``phy'' devices.
 # and MODE have the same meaning as for ``phy'' devices.      #
 #      # VDEV doesn't really matter for a NetBSD guest OS (it's just used as an index),
 # VDEV doesn't really matter for a NetBSD guest OS (it's just used as an index),      # but it does for Linux.
 # but it does for Linux.      # Worse, the device has to exist in /dev/ of domain0, because xm will
 # Worse, the device has to exist in /dev/ of domain0, because xm will      # try to stat() it. This means that in order to load a Linux guest OS
 # try to stat() it. This means that in order to load a Linux guest OS      # from a NetBSD domain0, you'll have to create /dev/hda1, /dev/hda2, ...
 # from a NetBSD domain0, you'll have to create /dev/hda1, /dev/hda2, ...      # on domain0, with the major/minor from Linux :(
 # on domain0, with the major/minor from Linux :(      # Alternatively it's possible to specify the device number in hex,
 # Alternatively it's possible to specify the device number in hex,      # e.g. 0x301 for /dev/hda1, 0x302 for /dev/hda2, etc ...
 # e.g. 0x301 for /dev/hda1, 0x302 for /dev/hda2, etc ...      
       disk = [ 'phy:/dev/wd0e,0x1,w' ]
 disk = [ 'phy:/dev/wd0e,0x1,w' ]      #disk = [ 'file:/var/xen/nbsd-disk,0x01,w' ]
 #disk = [ 'file:/var/xen/nbsd-disk,0x01,w' ]      #disk = [ 'file:/var/xen/nbsd-disk,0x301,w' ]
 #disk = [ 'file:/var/xen/nbsd-disk,0x301,w' ]      
       #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------      # Set the kernel command line for the new domain.
 # Set the kernel command line for the new domain.      
       # Set root device. This one does matter for NetBSD
 # Set root device. This one does matter for NetBSD      root = "xbd0"
 root = "xbd0"      # extra parameters passed to the kernel
 # extra parameters passed to the kernel      # this is where you can set boot flags like -s, -a, etc ...
 # this is where you can set boot flags like -s, -a, etc ...      #extra = ""
 #extra = ""      
       #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------      # Set according to whether you want the domain restarted when it exits.
 # Set according to whether you want the domain restarted when it exits.      # The default is False.
 # The default is False.      #autorestart = True
 #autorestart = True      
       # end of nbsd config file ====================================================
 # end of nbsd config file ====================================================  
 ~~~  
   
 When a new domain is created, xen calls the  When a new domain is created, xen calls the
 `/usr/pkg/etc/xen/vif-bridge`{.filename} script for each virtual network  `/usr/pkg/etc/xen/vif-bridge`{.filename} script for each virtual network
Line 378  will be bridged with the bridge0 device  Line 364  will be bridged with the bridge0 device 
 to exist first. To do this, create the file  to exist first. To do this, create the file
 `/etc/ifconfig.bridge0`{.filename} and make it look like this:  `/etc/ifconfig.bridge0`{.filename} and make it look like this:
   
 ~~~ {.programlisting}      create
 create      !brconfig $int add ex0 up
 !brconfig $int add ex0 up  
 ~~~  
   
 (replace `ex0`{.literal} with the name of your physical interface). Then  (replace `ex0`{.literal} with the name of your physical interface). Then
 bridge0 will be created on boot. See the  bridge0 will be created on boot. See the
Line 393  xvif?.? (a working vif-bridge is also pr Line 377  xvif?.? (a working vif-bridge is also pr
 configuring:  configuring:
   
   
 ~~~ {.programlisting}  
 #!/bin/sh  #!/bin/sh
 #============================================================================      #============================================================================
 # $NetBSD: howto.mdwn,v 1.1 2013/10/31 12:20:57 mspo Exp $      # $NetBSD: howto.mdwn,v 1.2 2013/10/31 12:34:39 mspo Exp $
 #      #
 # /usr/pkg/etc/xen/vif-bridge      # /usr/pkg/etc/xen/vif-bridge
 #      #
 # Script for configuring a vif in bridged mode with a dom0 interface.      # Script for configuring a vif in bridged mode with a dom0 interface.
 # The xend(8) daemon calls a vif script when bringing a vif up or down.      # The xend(8) daemon calls a vif script when bringing a vif up or down.
 # The script name to use is defined in /usr/pkg/etc/xen/xend-config.sxp      # The script name to use is defined in /usr/pkg/etc/xen/xend-config.sxp
 # in the ``vif-script'' field.      # in the ``vif-script'' field.
 #      #
 # Usage: vif-bridge up|down [var=value ...]      # Usage: vif-bridge up|down [var=value ...]
 #      #
 # Actions:      # Actions:
 #    up         Adds the vif interface to the bridge.      #    up         Adds the vif interface to the bridge.
 #    down       Removes the vif interface from the bridge.      #    down       Removes the vif interface from the bridge.
 #      #
 # Variables:      # Variables:
 #    domain     name of the domain the interface is on (required).      #    domain     name of the domain the interface is on (required).
 #    vifq       vif interface name (required).      #    vifq       vif interface name (required).
 #    mac        vif MAC address (required).      #    mac        vif MAC address (required).
 #    bridge     bridge to add the vif to (required).      #    bridge     bridge to add the vif to (required).
 #      #
 # Example invocation:      # Example invocation:
 #      #
 # vif-bridge up domain=VM1 vif=xvif1.0 mac="ee:14:01:d0:ec:af" bridge=bridge0      # vif-bridge up domain=VM1 vif=xvif1.0 mac="ee:14:01:d0:ec:af" bridge=bridge0
 #      #
 #============================================================================      #============================================================================
       
 # Exit if anything goes wrong      # Exit if anything goes wrong
 set -e      set -e
       
 echo "vif-bridge $*"      echo "vif-bridge $*"
       
 # Operation name.      # Operation name.
 OP=$1; shift      OP=$1; shift
       
 # Pull variables in args into environment      # Pull variables in args into environment
 for arg ; do export "${arg}" ; done      for arg ; do export "${arg}" ; done
       
 # Required parameters. Fail if not set.      # Required parameters. Fail if not set.
 domain=${domain:?}      domain=${domain:?}
 vif=${vif:?}      vif=${vif:?}
 mac=${mac:?}      mac=${mac:?}
 bridge=${bridge:?}      bridge=${bridge:?}
       
 # Optional parameters. Set defaults.      # Optional parameters. Set defaults.
 ip=${ip:-''}   # default to null (do nothing)      ip=${ip:-''}   # default to null (do nothing)
       
 # Are we going up or down?      # Are we going up or down?
 case $OP in      case $OP in
 up)     brcmd='add' ;;      up)     brcmd='add' ;;
 down)   brcmd='delete' ;;      down)   brcmd='delete' ;;
 *)      *)
         echo 'Invalid command: ' $OP              echo 'Invalid command: ' $OP
         echo 'Valid commands are: up, down'              echo 'Valid commands are: up, down'
         exit 1              exit 1
         ;;              ;;
 esac      esac
       
 # Don't do anything if the bridge is "null".      # Don't do anything if the bridge is "null".
 if [ "${bridge}" = "null" ] ; then      if [ "${bridge}" = "null" ] ; then
         exit              exit
 fi      fi
       
 # Don't do anything if the bridge doesn't exist.      # Don't do anything if the bridge doesn't exist.
 if ! ifconfig -l | grep "${bridge}" >/dev/null; then      if ! ifconfig -l | grep "${bridge}" >/dev/null; then
         exit              exit
 fi      fi
       
 # Add/remove vif to/from bridge.      # Add/remove vif to/from bridge.
 ifconfig x${vif} $OP      ifconfig x${vif} $OP
 brconfig ${bridge} ${brcmd} x${vif}      brconfig ${bridge} ${brcmd} x${vif}
 ~~~  
   
 Now, running  Now, running
   
 ~~~ {.programlisting}      xm create -c /usr/pkg/etc/xen/nbsd
 xm create -c /usr/pkg/etc/xen/nbsd  
 ~~~  
   
 should create a domain and load a NetBSD kernel in it. (Note:  should create a domain and load a NetBSD kernel in it. (Note:
 `-c`{.code} causes xm to connect to the domain's console once created.)  `-c`{.code} causes xm to connect to the domain's console once created.)
Line 489  sysinst, so you can install NetBSD using Line 469  sysinst, so you can install NetBSD using
 If you want to install NetBSD/Xen with a CDROM image, the following line  If you want to install NetBSD/Xen with a CDROM image, the following line
 should be used in the `/usr/pkg/etc/xen/nbsd`{.filename} file:  should be used in the `/usr/pkg/etc/xen/nbsd`{.filename} file:
   
 ~~~ {.programlisting}      disk = [ 'phy:/dev/wd0e,0x1,w', 'phy:/dev/cd0a,0x2,r' ]
 disk = [ 'phy:/dev/wd0e,0x1,w', 'phy:/dev/cd0a,0x2,r' ]  
 ~~~  
   
 After booting the domain, the option to install via CDROM may be  After booting the domain, the option to install via CDROM may be
 selected. The CDROM device should be changed to **xbd1d**.  selected. The CDROM device should be changed to **xbd1d**.
Line 509  and the pseudo-terminals. These can be f Line 487  and the pseudo-terminals. These can be f
 disable all terminals in `/etc/ttys`{.filename}, except *console*, like  disable all terminals in `/etc/ttys`{.filename}, except *console*, like
 this:  this:
   
 ~~~ {.programlisting}      console "/usr/libexec/getty Pc"         vt100   on secure
 console "/usr/libexec/getty Pc"         vt100   on secure      ttyE0   "/usr/libexec/getty Pc"         vt220   off secure
 ttyE0   "/usr/libexec/getty Pc"         vt220   off secure      ttyE1   "/usr/libexec/getty Pc"         vt220   off secure
 ttyE1   "/usr/libexec/getty Pc"         vt220   off secure      ttyE2   "/usr/libexec/getty Pc"         vt220   off secure
 ttyE2   "/usr/libexec/getty Pc"         vt220   off secure      ttyE3   "/usr/libexec/getty Pc"         vt220   off secure
 ttyE3   "/usr/libexec/getty Pc"         vt220   off secure  
 ~~~  
   
 Finally, all screens must be commented out from  Finally, all screens must be commented out from
 `/etc/wscons.conf`{.filename}.  `/etc/wscons.conf`{.filename}.
   
 It is also desirable to add  It is also desirable to add
   
 ~~~ {.programlisting}      powerd=YES
 powerd=YES  
 ~~~  
   
 in rc.conf. This way, the domain will be properly shut down if **xm  in rc.conf. This way, the domain will be properly shut down if **xm
 shutdown -R** or **xm shutdown -H** is used on the domain0.  shutdown -R** or **xm shutdown -H** is used on the domain0.
Line 541  unprivileged NetBSD domains, but there a Line 515  unprivileged NetBSD domains, but there a
 First, the second parameter passed to the disk declaration (the '0x1' in  First, the second parameter passed to the disk declaration (the '0x1' in
 the example below)  the example below)
   
 ~~~ {.programlisting}      disk = [ 'phy:/dev/wd0e,0x1,w' ]
 disk = [ 'phy:/dev/wd0e,0x1,w' ]  
 ~~~  
   
 does matter to Linux. It wants a Linux device number here (e.g. 0x300  does matter to Linux. It wants a Linux device number here (e.g. 0x300
 for hda). Linux builds device numbers as: (major \<\< 8 + minor). So,  for hda). Linux builds device numbers as: (major \<\< 8 + minor). So,
Line 552  number 0x301. Alternatively, devices nam Line 524  number 0x301. Alternatively, devices nam
 as xentools has a table to map these names to devices numbers. To export  as xentools has a table to map these names to devices numbers. To export
 a partition to a Linux guest we can use:  a partition to a Linux guest we can use:
   
 ~~~ {.programlisting}      disk = [ 'phy:/dev/wd0e,0x300,w' ]
 disk = [ 'phy:/dev/wd0e,0x300,w' ]      root = "/dev/hda1 ro"
 root = "/dev/hda1 ro"  
 ~~~  
   
 and it will appear as /dev/hda on the Linux system, and be used as root  and it will appear as /dev/hda on the Linux system, and be used as root
 partition.  partition.
Line 575  vmlinuz-\*-xenU kernels available in the Line 545  vmlinuz-\*-xenU kernels available in the
   
 To get the linux console right, you need to add:  To get the linux console right, you need to add:
   
 ~~~ {.programlisting}      extra = "xencons=tty1"
 extra = "xencons=tty1"  
 ~~~  
   
 to your configuration since not all linux distributions auto-attach a  to your configuration since not all linux distributions auto-attach a
 tty to the xen console.  tty to the xen console.
Line 593  image to a Line 561  image to a
 device. Copy the kernel and ramdisk filesystem image to your dom0  device. Copy the kernel and ramdisk filesystem image to your dom0
 filesystem.  filesystem.
   
 ~~~ {.programlisting}      dom0# mkdir /root/solaris
 dom0# mkdir /root/solaris      dom0# vnconfig vnd0 osol-1002-124-x86.iso
 dom0# vnconfig vnd0 osol-1002-124-x86.iso      dom0# mount /dev/vnd0a /mnt
 dom0# mount /dev/vnd0a /mnt      
       ## for a 64-bit guest
 ## for a 64-bit guest      dom0# cp /mnt/boot/amd64/x86.microroot /root/solaris
 dom0# cp /mnt/boot/amd64/x86.microroot /root/solaris      dom0# cp /mnt/platform/i86xpv/kernel/amd64/unix /root/solaris
 dom0# cp /mnt/platform/i86xpv/kernel/amd64/unix /root/solaris      
       ## for a 32-bit guest
 ## for a 32-bit guest      dom0# cp /mnt/boot/x86.microroot /root/solaris
 dom0# cp /mnt/boot/x86.microroot /root/solaris      dom0# cp /mnt/platform/i86xpv/kernel/unix /root/solaris
 dom0# cp /mnt/platform/i86xpv/kernel/unix /root/solaris      
       dom0# umount /mnt
 dom0# umount /mnt  
               
 ~~~  
   
 Keep the  Keep the
 [vnd(4)](http://netbsd.gw.com/cgi-bin/man-cgi?vnd+4+NetBSD-6.0+i386)  [vnd(4)](http://netbsd.gw.com/cgi-bin/man-cgi?vnd+4+NetBSD-6.0+i386)
 configured. For some reason the boot process stalls unless the DVD image  configured. For some reason the boot process stalls unless the DVD image

Removed from v.1.2  
changed lines
  Added in v.1.3


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb