Autoyast issues: udev rules & menu.lst

I’m working on a SLES 11.2 autoinstall for one of our products. It is mostly working except for 2 items that I can’t figure out.

  1. The udev rules for ethernet interfaces is not matching what I specify. In my autoinst.xml I have:

    eth0 ID 0000:01:00.0 eth1 ID 0000:01:00.1 eth2 ID 0000:84:00.0 eth3 ID 0000:84:00.1

I can see in y2log-1 that it read in those values:

2013-07-30 09:17:27 <1> linux(3583) [YCP] LanUdevAuto.ycp:140 net-udev rules:[$[“name”:“eth2”, “rule”:“ID”, “value”:“0000:84:00.0”], $[“name”:“eth3”, “rule”:“ID”, “value”:“0000:84:00.1”], $[“name”:“eth0”, “rule”:“ID”, “value”:“0000:01:00.0”], $[“name”:“eth1”, “rule”:“ID”, “value”:“0000:01:00.1”]]

However, once the installation is complete, the interfaces are in the wrong order, and 70-persistent-net.rules looks like this:

PCI device 0x8086:0x105e (e1000e)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“68:05:ca:14:da:fa”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth0”

PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:25:90:c3:37:0d”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth3”

PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:25:90:c3:37:0c”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

PCI device 0x8086:0x105e (e1000e)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“68:05:ca:14:da:fb”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth2”

So what should have been eth0-eth2 winds up being eth1, eth3, eth0, eth2.

  1. I’m getting double entries in /boot/grub/menu.lst, plus extra items in the kernel lines.

autoinst.xml contains:

hd0 /dev/sda hd1 /dev/sdb true true SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27 false 10 --unit=0 --speed=115200 --word=8 --parity=no --stop=1 --timeout=10 console serial (bunch of modules...) grub splash=0 crashkernel=256M-:128M@16M elevator=deadline console=ttyS0,115200n8 console=tty0 showopts (hd0,0)/vmlinuz 1 (hd0,0)/initrd SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27 linux /dev/sda4 image 0x314 showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe splash=0 console=ttyS0,115200n8 console=tty0 (hd0,0)/vmlinuz (hd0,0)/initrd Failsafe -- SUSE LINUX failsafe /dev/sda4 image 0x314

After install menu.lst looks like this:

Modified by YaST2. Last modification on Tue Jul 30 09:31:21 EDT 2013

default 0
timeout 10
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
##YaST - activate
terminal --timeout=10 console serial

###Don’t change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27 (default)
root (hd0,0)
kernel /vmlinuz-3.0.13-0.27-default root=/dev/sda4 splash=0 crashkernel=256M-:128M@16M elevator=deadline console=ttyS0,115200n8 console=tty0 instmode=cd showopts vga=0x314
initrd /initrd-3.0.13-0.27-default

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27
root (hd0,0)
kernel /vmlinuz-3.0.13-0.27-default root=/dev/sda4 showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe splash=0 console=ttyS0,115200n8 console=tty0 vga=0x314
initrd /initrd-3.0.13-0.27-default

###Don’t change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27 /boot/vmlinuz
root (hd0,0)
kernel /vmlinuz-3.0.13-0.27-default root=/dev/sda4 splash=0 crashkernel=256M-:128M@16M elevator=deadline console=ttyS0,115200n8 console=tty0 instmode=cd showopts vga=0x314
initrd /initrd-3.0.13-0.27-default

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – SUSE LINUX
root (hd0,0)
kernel /vmlinuz-3.0.13-0.27-default root=/dev/sda4 showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe splash=0 console=ttyS0,115200n8 console=tty0 vga=0x314
initrd /initrd-3.0.13-0.27-default

Note the double entries for each section, plus the ‘instmode=cd’ tacked on the kernel line for the ‘linux’ section.

Lastly, I’m using a rules file and merging one of two config-specific xml files with an autoinst_common.xml file. When I do the merge by hand on the command line, the resulting xml file looks correct. Is there an option to make autoyast leave behind a copy of the xml file it used to install like you can when doing it manually ? I want to verify that it matches what I get by hand.

Appreciate any suggestions you guys can offer.