Difference between revisions of "Vnx-rootfs-uml-kernel"

From VNX
Jump to: navigation, search
Line 25: Line 25:
 
Note: change 'rootfs' by the root filesystem filename you will use to test the kernel.
 
Note: change 'rootfs' by the root filesystem filename you will use to test the kernel.
 
<li>Optionally, if you want to create a tar file with the kernel, modules and config file for distribution:</li>
 
<li>Optionally, if you want to create a tar file with the kernel, modules and config file for distribution:</li>
  mkdir linux-3.3.8-um-src
+
  mkdir linux-um-3.3.8-src
  cp linux linux-3.3.8-um-src/linux-3.3.8-um
+
  cp linux linux-um-3.3.8-src/linux-um-3.3.8
  mkdir linux-3.3.8-um-src/modules
+
  mkdir linux-um-3.3.8-src/modules
  make modules_install INSTALL_MOD_PATH=linux-3.3.8-um-src/modules/ ARCH=um SUBARCH=i386
+
  make modules_install INSTALL_MOD_PATH=linux-um-3.3.8-src/modules/ ARCH=um SUBARCH=i386
  cd linux-3.3.8-um-src/modules/lib/modules/
+
  cd linux-um-3.3.8-src/modules/lib/modules/
 
  tar cfv modules-3.3.8.tar 3.3.8
 
  tar cfv modules-3.3.8.tar 3.3.8
 
  mv modules-3.3.8.tar ../../../
 
  mv modules-3.3.8.tar ../../../
 
  cd ../../../
 
  cd ../../../
 
  rm -rf modules
 
  rm -rf modules
  vi README-linux-3.3.8-um
+
  vi README-linux-um-3.3.8
  cp ../.config config-linux-3.3.8-um
+
  cp ../.config config-linux-um-3.3.8
 
  cd ..
 
  cd ..
  tar cfvz linux-3.3.8-um.tgz linux-3.3.8-um-src
+
  tar cfvz linux-um-3.3.8.tgz linux-um-3.3.8-src
 
</ul>
 
</ul>

Revision as of 23:43, 10 June 2012

How to create a User-Mode-Linux Kernel for VNX

This document describes how to create a UML kernel to be used with VNX. The procedure has been mainly tested for version 3.3.8, although it should work sith minor changes with previous 3.X versions (it does not with 3.4 version).

  • Download and uncompress kernel sources:
  • wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.3.8.tar.gz
    tar xfvz linux-3.3.8.tar.gz
    cd linux-3.3.8
    
  • Download mconsole exec kernel patch:
  • wget vnx.dit.upm.es/vnx/kernels/mconsole-exec-3.3.8.patch
    
  • Apply mconsole-exec patch:
  • patch -p1 < mconsole-exec-3.3.8.patch
    
  • Configure kernel options (do not forget to enable support in kernel for ISO9660 and EXT4 file system format support):
  • make defconfig ARCH=um SUBARCH=i386
    make menuconfig ARCH=um SUBARCH=i386
    
  • Compile the kernel
  • make ARCH=um SUBARCH=i386
    strip linux
    
  • Check the kernel having a look at the version and options:
  • ./linux --version
    ./linux --showconfig
    
  • Or, better, starting a virtual machine with that kernel:
  • ./linux ubda=rootfs mem=128M
    

    Note: change 'rootfs' by the root filesystem filename you will use to test the kernel.

  • Optionally, if you want to create a tar file with the kernel, modules and config file for distribution:
  • mkdir linux-um-3.3.8-src
    cp linux linux-um-3.3.8-src/linux-um-3.3.8
    mkdir linux-um-3.3.8-src/modules
    make modules_install INSTALL_MOD_PATH=linux-um-3.3.8-src/modules/ ARCH=um SUBARCH=i386
    cd linux-um-3.3.8-src/modules/lib/modules/
    tar cfv modules-3.3.8.tar 3.3.8
    mv modules-3.3.8.tar ../../../
    cd ../../../
    rm -rf modules
    vi README-linux-um-3.3.8
    cp ../.config config-linux-um-3.3.8
    cd ..
    tar cfvz linux-um-3.3.8.tgz linux-um-3.3.8-src