Intel vPro Activator LiveCD Howto

Version 5

    This document describes the steps to create a an Intel vPro Activator LiveCD and how to modify an existing LiveCD image.

    If you just want to know what is a vPro Activator LiveCD or would just want to download it. Follow the link below:

    http://communities.intel.com/docs/DOC-2517


    The LiveCD is essentially a trimmed down Ubutnu 8.10 LiveCD image with a few modifications we performed to tailor it for the porpuse of vPro Bare-Metal configuration process. Follow the steps in the Ubuntu LiveCDCustomization Howto to modify the content of the Activator LiveCD.

     

    Crteating a vPro Activator LiveCD from scratch

    Creating a base Linux LiveCD image

    Follow the steps in the Ubuntu LiveCD Customization From Scratch Howto to create the base Linux image. Since we are using the intrepid version (Ubuntu 8.10)  use the following debootstrap command:

    sudo debootstrap --arch i386 intrepid chroot

    Here are some tips

    1. image size reduction:

    1. Install the debian packages with the option:
    apt-get --yes --no-install-recommends install <package name>

    1. Instead of the overall linux-generic package, you can install the linux-image-2.6.27-9-generic package
    2. Remove unncessary directories and files from the final image, avoid deletion from the working file system by using  the "-e" option of mksquashfs to exclude directories and files. The dirs we've left out are:
    /usr/share/doc
    /var/cache/apt/*.*
    /var/lib/apt/lists/*.*
    

    2. Avoid loading the wlan driver to reduce boot time::

    edit the file: /etc/modprobe.d/blacklist

    add the line:

    blacklist iwlagn iwlcore                
    

     

    Note: You can probably reduce boot time further by blacklisting additional unenecessary drivers such as pcmcia and bluetooth.

     

     

    3. Enable boot on Microsoft Virtual PC: known issues are described in this Howto, in short you need to edit the file /etc/modprobe.d/blacklist-framebuffer

    comment out (add "#") the following lines:

    #blacklist vesafb
    #blacklist vga16b
    

     

    Add the following line:

    blacklist s3fb

    Customizing the image for Activator LiveCD

    Modifying the root file system for vPro bare-metal LiveCD

    perform the following operations once you've chroot to the image file system

    1. Install additional packages:

    apt-get –yes –-no-install-recomends install network-manager
    apt-get –yes –-no-install-recomends install bc
    
    

     

    2. Install the HECI driver

    Download latest HECI driver source from  openamt.org (use  latest SVN release from sourceforge), and build with the same kernel that is on the bootable image.. Alternativly copy the binary file from the original activator LiveCD, if you are using kernel 2.6.27-9

    Override the ubuntu distro heci driver:

    cp heci.ko to /lib/modules/2.6.27-9-generic/kernel/ubuntu/heci
    depmod

     

    3. build the ZTCLocalAgent app from openamt.org and copy the binaries to image file system

    mkdir /usr/local/share/ZTCLocalAgent
    cp ZTCLocalAgent ZTCLocalAgent.dat StatusStrings.dat /usr/local/share/ZTCLocalAgent
    chmod a+x /usr/local/share/ZTCLocalAgent/ZTCLocalAgent
    chmod a+r /usr/local/share/ZTCLocalAgent/*.*
    

    4. copy the init script and hello binary (look for the file /etc/S99IntelAMT /usr/local/share/helloMessage/hello fro the activator LiveCD)

    cp S99IntelAMT /etc/
    mv /etc/rc.local /etc/rc.local.org
    ln –s /etc/S99intelAMT /etc/rc.local
    mkdir /usr/local/share/helloMessage
    cp hello  /usr/local/share/helloMessage
    chmod a+x /etc/S99IntelAMT /usr/local/share/helloMessage/hello
    

    Note: you can override the default provisioning server address information by modifying the S99IntelAMT script

    5. Copy thw customized dmidecode util:

    We use dmidecode to extract the system UUID which we then send in "hello" packets. However we've modified dmidecode so that UUID is parsed consistent with the way vPro and Windows parse UUID. For more info on the issue see the following mail-thread

    cd /usr/local/share
    mkdir dmidecode-2.10
    cp dmidecode dmidecode.2.10.tgz dmidecode-2.10/
    chmod a+x dmidecode-2.10/dmidecode
    

     

    6. Modifying the behavior of the Linux DHCP client:

    The goal is to make a DHCP server offer identical ip address to both the Linux system and AMT, to this end we'll configure the DHCP client to send a client-identifier DHCP option specifying the HW MAC address of the LAN nic.

    use the /etc/init/d/set-cl-id.sh script from the Activator LiveCD

    cp set-cl-id/sh /etc/init.d/
    cd /etc/rc2.d
    ln -s ../init.d/set-cl-id.sh ./S29ste-cl-id/.sh
    

    Modify the dhcp client config file /etc/dhcp3/dhclient.conf

    add the following line:

    send dhcp-client-identifier <hwaddr>;
    

    Note: it's possible to use  dhclient.conf to modify other dhcp options sent by the LiveCD, refer to the dhclient man pages for more info.

     

    7. Stop the LiveCD from fetching the time from ntp.ubuntu.org (and possibly modifying the system RTC)

    comment out the following line in: /etc/default/ntpdate

    #NTPSERVERS="ntp.ubuntu.com"

     

     

    8. Once done with the root file system modifications, create the squashed file system using mksquashfs command as described in the Ubuntu Howto

     

    Customizing The boot loader for Activator LiveCD

    1. Boot options:

    the boot options are specified in the image/isolinux/isolinux.cfg, here's how it looks like:

    DEFAULT live-diag
    LABEL live
      menu label ^Start Intel(r) Bare-Metal Activator
      kernel /casper/vmlinuz
      append  boot=casper initrd=/casper/initrd.gz quiet nosmp acpi=off noprompt splash --
    LABEL live-diag
      menu label ^Start Intel(r) Bare-Metal Activator with boot diagnostics
      kernel /casper/vmlinuz
      append  boot=casper initrd=/casper/initrd.gz nosmp acpi=off noprompt splash --
    DISPLAY isolinux.txt
    TIMEOUT 5
    PROMPT 1


    Kernel parameters:
    To reliably boot on wide variety of systems we use the “acpi=off” and the “nosmp” kernel variables.
    The  “noprompt” parameter is used by the /etc/init.d/casper shutdown script to determine whether to eject the CD-ROM and wait for user to hit “Enter” before shuting down the system. Since our primary media is USB this behavior doesn’t make sense. if you wish to boot from CD-ROM just remove this option

    “quiet” indicates whether or not kernel boot messages are spewed to the console.

     

    2. customizing boot text and graphics:

    The text presented to the user during boot is defined in image/isolinux/isolinux.txt

    THe bit-map is set in the image/isolinux/splash.rle

    Refer to the Ubuntu Howto for information how to customize this files.

     

    Known Issues:

    LiveCD doesn't send Hello Packets  if the DHCP server is not configured to return "Router" option (DHCP option 3).

    see more info in the bug report:

    bugzilla.gnome.org/show_bug.cgi?id=572912
    possible workarounds:
        A. Set the Router option on the DHCP server