network boot doesn't work (need newer slof.bin)

Bug #1374568 reported by Scott Moser on 2014-09-26
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
slof (Ubuntu)
High
Unassigned
Trusty
Medium
Unassigned

Bug Description

[ SRU Justification ]
Network booting ppc64/pseries machines in qemu is broken in trusty. See the full bug report.

[ Test Case ]
Attempt a pxe-alike boot in a PPC VM and see if it explodes per the bug. smoser can provide more details, or maybe even the test environment.

[ Regression Potential ]
The use of slof/qemu-slof is limited to pseries-style machine emulation, which means this has very limited impact to a subset of a subarchitecture. The major consumer of qemu/kvm in Ubuntu PPC up until now has been Servergy machines, which don't use pseries emulation and, hence, not SLOF. For IBM machines, this is the default way to go, but emulation there has really only begun working right in utopic. The hope is to fix this with selected backports and cherrypicks, of which this is one.

[ Original Report ]
Trying to network boot on a bridge, i get failure

$ qemu-system-ppc64 -enable-kvm -machine pseries,usb=off \
   -device spapr-vscsi \
   -device spapr-vlan,netdev=net00,mac=52:54:00:12:34:05 \
   -netdev type=tap,id=net00,script=no,downscript=no,ifname=dryruntap0 \
   -boot n -display none -nographic -m 4G

qemu-system-ppc64: pci_add_option_rom: failed to find romfile "vgabios-stdvga.bin"

SLOF **********************************************************************
QEMU Starting
 Build Date = Dec 11 2013 05:07:42
 FW Version = buildd@(private build)
 Press "s" to enter Open Firmware.

Populating /vdevice methods
Populating /vdevice/vty@71000000
Populating /vdevice/nvram@71000001
Populating /vdevice/v-scsi@71000002
       SCSI: Looking for devices
          8200000000000000 CD-ROM : "QEMU QEMU CD-ROM 2.1."
Populating /vdevice/v-scsi@71000003
       SCSI: Looking for devices
Populating /vdevice/l-lan@71000004
Populating /pci@800000020000000
 Adapters on 0800000020000000
                     00 0000 (D) : 1234 1111 qemu vga
No NVRAM common partition, re-initializing...
Installing QEMU fb
Scanning USB
No console specified using hvterm

  Welcome to Open Firmware

  Copyright (c) 2004, 2011 IBM Corporation All rights reserved.
  This program and the accompanying materials are made available
  under the terms of the BSD License available at
  http://www.opensource.org/licenses/bsd-license.php

Trying to load: from: net ... veth: Dropping too big packet [90 bytes]
veth: Dropping too big packet [299 bytes]
veth: Dropping too big packet [342 bytes]
veth: Dropping too big packet [90 bytes]
veth: Dropping too big packet [60 bytes]
veth: Dropping too big packet [78 bytes]
veth: Dropping too big packet [106 bytes]
veth: Dropping too big packet [90 bytes]
veth: Dropping too big packet [70 bytes]
veth: Dropping too big packet [90 bytes]
veth: Dropping too big packet [60 bytes]

 Bootloader 1.6
  Reading MAC address from device: 52:54:00:12:34:05
  Requesting IP address via DHCP: 10.245.71.105
  Requesting file "pxelinux.0" via TFTP from 10.245.71.3
  Receiving data: 26 KBytes
  TFTP: Received pxelinux.0 (26 KBytes)

E3403: Bad executable:

E3406: Client application returned an error.

        ..`. .. ....... .. ...... .......
    ..`...`''.`'. .''``````..''. .`''```''`. `''``````
       .`` .:' ': `''..... .''. ''` .''..''.......
         ``.':.';. ``````''`.''. .''. ''``''`````'`
         ``.':':` .....`''.`'`...... `'`.....`''.`'`
        .`.`'`` .'`'`````. ``'''''' ``''`'''`. `'`
  Type 'boot' and press return to continue booting the system.
  Type 'reset-all' and press return to reboot the system.

        ..`. .. ....... .. ...... .......
    ..`...`''.`'. .''``````..''. .`''```''`. `''``````
       .`` .:' ': `''..... .''. ''` .''..''.......
         ``.':.';. ``````''`.''. .''. ''``''`````'`
         ``.':':` .....`''.`'`...... `'`.....`''.`'`
        .`.`'`` .'`'`````. ``'''''' ``''`'''`. `'`
  Type 'boot' and press return to continue booting the system.
  Type 'reset-all' and press return to reboot the system.

Ready!
0 >

ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: qemu-slof 20131015+dfsg-1ubuntu1
ProcVersionSignature: Ubuntu 3.16.0-17.23-generic 3.16.3
Uname: Linux 3.16.0-17-generic ppc64le
ApportVersion: 2.14.7-0ubuntu2
Architecture: ppc64el
Date: Fri Sep 26 18:00:04 2014
Dependencies:

PackageArchitecture: all
ProcEnviron:
 TERM=screen
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcLoadAvg: 0.24 0.14 0.08 1/1177 41103
ProcLocks:
 1: POSIX ADVISORY WRITE 84870 00:11:478688 0 0
 2: FLOCK ADVISORY WRITE 2515 00:11:45214 0 EOF
 3: POSIX ADVISORY WRITE 2369 00:11:50266 0 EOF
 4: POSIX ADVISORY WRITE 2567 00:11:47202 0 EOF
ProcSwaps:
 Filename Type Size Used Priority
 /swap.img file 8388544 0 -1
ProcVersion: Linux version 3.16.0-17-generic (buildd@fisher03) (gcc version 4.9.1 (Ubuntu 4.9.1-15ubuntu1) ) #23-Ubuntu SMP Fri Sep 19 16:54:14 UTC 2014
SourcePackage: slof
UpgradeStatus: No upgrade log present (probably fresh install)
cpu_cores: Number of cores present = 20
cpu_coreson: Number of cores online = 19
cpu_smt: SMT is off

Scott Moser (smoser) wrote :
Scott Moser (smoser) wrote :

Just for reference, if I copy the slof.bin from powerkvm to
/usr/share/slof/slof.bin

stuff pretty much works.

Scott Moser (smoser) on 2014-10-09
Changed in slof (Ubuntu):
status: New → Triaged
importance: Undecided → High
Scott Moser (smoser) wrote :

I'm not able to recreate this now
$ dpkg-query --show linux-generic qemu-slof qemu-system-ppc
linux-generic 3.16.0.22.23
qemu-slof 20131015+dfsg-1ubuntu1
qemu-system-ppc 2.1+dfsg-4ubuntu5

not sure why. but my basic same setup worked fine.

Scott Moser (smoser) wrote :

ok. ignore comment 3. i can recreate failure.
I had 'slof.bin' in the current working directory, and apparently *that* will get loaded over the slof.bin in /usr/share/slof/slof.bin
which kind of seems like a bug.

with that knowledge in place i was able to recreate problem, and verify that debian's qemu-slof functions:
  qemu-slof_20140630+dfsg-1_all.deb

Adam Conrad (adconrad) wrote :

A newer SLOF is now built in Ubuntu. Can you confirm that it works as well as the Debian binary does, and close this bug if it solves your issue?

Scott Moser (smoser) wrote :

Verfied this seems to work for me
$ dpkg-query --show qemu-slof
qemu-slof 20140630+dfsg-1ubuntu1

Changed in slof (Ubuntu):
status: Triaged → Fix Released
Scott Moser (smoser) on 2015-01-23
Changed in slof (Ubuntu Trusty):
status: New → Confirmed
importance: Undecided → Medium
Adam Conrad (adconrad) on 2015-01-23
description: updated

Hello Scott, or anyone else affected,

Accepted slof into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/slof/20140630+dfsg-1ubuntu1~14.04 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in slof (Ubuntu Trusty):
status: Confirmed → Fix Committed
tags: added: verification-needed
Scott Moser (smoser) wrote :

verified.

Our system is connected through eth0 to a network that has a functional
maas running. As such, we can boot guests that dhcp onto the network and
should network boot.

Configuring maas is beyond the scope of this verification report.

# enable proposed
$ mirror=http://ports.ubuntu.com/ubuntu-ports
$ echo "deb $mirror trusty-proposed main universe" |
   sudo tee -a /etc/apt/sources.list
$ sudo apt-get -q update

## to get a functional qemu-system-ppc64, we use kilo cloud archive
$ sudo apt-add-repository -y cloud-archive:kilo-proposed
$ sudo apt-get update
$ sudo apt-get install -qy qemu-system-ppc qemu-slof

$ dpkg-query --show qemu-slof
qemu-slof 20140630+dfsg-1ubuntu1~14.04

# configure eth0 to be a bridge
$ sudo apt-get install -qy bridge-utils
$ ifdown eth0
$ eni="/etc/network/interfaces"
$ cp "$eni" "$eni.dist"
$ cat > "$eni" <<EOF
auto lo
auto br0
iface br0 inet dhcp
   bridge_ports eth0
EOF

ifup br0

## setup kvm, we're running linux-generic-lts-utopic kernel
$ uname -r
3.16.0-30-generic

$ sudo sh -cx 'grep "kvm_" /proc/modules || modprobe kvm_hv || modprobe kvm_pr'
$ sudo chmod 666 /dev/kvm
$ sudo ppc64_cpu --smt=off

## try booting a qemu-system-ppc via netboot
$ myname=$(id -un)
$ sudo ip tuntap add mode tap user $myname mytap0
$ sudo ip link set mytap0 up
$ qemu-system-ppc64 -machine pseries,usb=off \
    -device spapr-vscsi \
    -device spapr-vlan,netdev=net00 \
    -netdev type=tap,id=net00,script=no,downscript=no,ifname=mytap0 \
    -boot n -display none -nographic -m 4G -echr 0x05

## eventually this will show 'booting under maas direction'
## and the system is even enlisted into maas

$ apt-cache policy qemu-system-ppc qemu-slof linux-generic-lts-utopic

qemu-system-ppc:
  Installed: 1:2.1+dfsg-11ubuntu2~cloud0
  Candidate: 1:2.1+dfsg-11ubuntu2~cloud0
  Version table:
 *** 1:2.1+dfsg-11ubuntu2~cloud0 0
        500 http://ubuntu-cloud.archive.canonical.com/ubuntu/ trusty-proposed/kilo/main ppc64el Packages
        100 /var/lib/dpkg/status
     2.0.0+dfsg-2ubuntu1.10 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main ppc64el Packages
     2.0.0+dfsg-2ubuntu1.9 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-security/main ppc64el Packages
     2.0.0~rc1+dfsg-0ubuntu3 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ppc64el Packages
qemu-slof:
  Installed: 20140630+dfsg-1ubuntu1~14.04
  Candidate: 20140630+dfsg-1ubuntu1~14.04
  Version table:
 *** 20140630+dfsg-1ubuntu1~14.04 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed/universe ppc64el Packages
        100 /var/lib/dpkg/status
     20131015+dfsg-1ubuntu1 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe ppc64el Packages
linux-generic-lts-utopic:
  Installed: 3.16.0.30.23
  Candidate: 3.16.0.30.23
  Version table:
 *** 3.16.0.30.23 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main ppc64el Packages
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed/main ppc64el Packages
        100 /var/lib/dpkg/status
     3.16.0.29.22 0
        500 http://ports.ubuntu.com/ubuntu-ports/ trusty-security/main ppc64el Packages

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package slof - 20140630+dfsg-1ubuntu1~14.04

---------------
slof (20140630+dfsg-1ubuntu1~14.04) trusty; urgency=medium

  * Backport wholesale to trusty to fix network boot issues (LP: #1374568)
 -- Adam Conrad <email address hidden> Fri, 23 Jan 2015 12:18:53 -0700

Changed in slof (Ubuntu Trusty):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for slof has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers