1

I'm trying to use live-build to construct a minimal Debian image containing the wireless firmware for my laptop. I get this error:

[2019-02-04 18:56:40] lb chroot_install-packages install
P: Begin installing packages (install pass)...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package linux-image-686-pae

My build process goes something like this:

Create a brand new VM using Vagrant box generic/debian9. Once created, SSH in and run

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install live-build

Following the live-build manual, prep the build directory:

mkdir -p my_build/auto && cd my_build
cp /usr/share/doc/live-build/examples/auto/* auto/

Edit auto/config to read as follows. I am building an image specifically for a Dell XPS15 9560 and want an amd64 architecture/linux kernel1.

   #!/bin/sh

   set -e

   lb config noauto \
       --architectures amd64 \
       --linux-flavours 686-pae \
       --binary-images iso-hybrid \
       --archive-areas "main contrib non-free" \
       --bootappend-live "boot=live persistence components hostname=bakerst username=holmes sudo" \
       "${@}"

Generate a config tree using the auto/config just created:

lb config

Create config/package-lists/my.list.chroot:

firmware-atheros
sudo

Now, build:

sudo lb build

This generates the error.

The problem seems related to the linux-image-686-pae package. My understanding is that live-build works by chrooting into the build and running apt-get. Doing the same in the non-chroot environment returns an error:

vagrant@debian9:~/my_build$ sudo apt-get install linux-image-686-pae
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-686-pae

One possible error could be using the wrong sources. Yet, I'm pulling from the main Debian repo. Checking /etc/apt/sources.list, I have main contrib non-free appended to each entry. I'm not sure what else to check.


1I mention this because most tutorials use i386. I believe 686-pae is valid.

  • 686-pae is a 32 bits kernel, not an amd64 (aka x86_64) kernel. While one could imagine the opposite (amd64 kernel with i386 debian arch for userland), your combination doesn't make sense to me – A.B Feb 5 at 19:27
0

As pointed out by @A.B, 686-pae is for a 32 bit kernel. Removing that option resolves the issue:

   #!/bin/sh

   set -e

   lb config noauto \
       --architectures amd64 \
       --binary-images iso-hybrid \
       --archive-areas "main contrib non-free" \
       --bootappend-live "boot=live persistence components hostname=bakerst username=holmes sudo" \
       "${@}"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.