Non-PAE kernel in 12.10

Tom H tomh0665 at gmail.com
Wed Nov 21 21:33:43 UTC 2012


On Wed, Nov 21, 2012 at 11:32 AM, Liam Proven <lproven at gmail.com> wrote:
>
> Yes, the non-PAE kernel has been dropped altogether from 12.10.
>
> I and quite a few other Pentium-M and Centrino v1 owners are not very
> happy about this. OK, fair enough, almost all the other chips that
> can't do PAE are really old - mostly from the 1990s and realistically
> too old for Ubuntu (except possibly Lubuntu). However, the Pentium M
> and even some Core/Core2-era Celeron chips - well over 1GHz-class,
> more than able to run current Ubuntu versions just fine - are now
> excluded.
>
> This was a poor decision, made by people who did not realise how many
> recent CPUs, some well under 4-5yo, do not support PAE.
>
> I feel that for people with >3GB of RAM, the recommendation now should
> have been to go 64-bit, not PAE.
>
> But /alea jacta est/. It's too late. It is now PAE or nothing.
>
> I am wondering if I could actually create a PPA myself and build a
> non-PAE kernel and put it in there. I don't have the skills but I am
> sure I could learn.
>
> Building the kernel I can do. It's packaging it & creating a PPA I
> know nothing about.

Some people wanted to drop it for 12.04:

https://lists.ubuntu.com/archives/ubuntu-devel/2011-November/034399.html

I don't know anything about PPAs but Launchpad or the Ubuntu wiki must
have instructions.

I don't think that you can have PPA debs built on Ubuntu build
servers, so you'll have to build your package in a clean install
before uploading it.

I build kernel packages in a chroot populated with debootstrap and
apt-get. Using pbuilder or sbuild is probably more correct but AFAICT
they're meant to be used with debianized sources so I don't use them.

Building a kernel package isn't much more complicated than compiling a
kernel with "make". In both cases, the most complex step's "make
*config". Since you just want to rebuild an Ubuntu pae kernel as
non-pae, you have to change that particular kernel config parameter,
which is "Processor type and features" >> "High Memory Support" >>
"4GB".

I've moved from using "make-kpkg" to "make deb-pkg" to build kernel
packages. The former needs fakeroot (according to the various howtos
that I read when I first started using it and I've never tried using
it without it) so I'm using fakeroot with the latter. I've never used
fakeroot with a straight "make" so I don't know whether it makes sense
to use it for "make deb-pkg". I don't use fakeroot with "make rpm-pkg"
but maybe there's a step in the creation of debs that needs root
perms...

I build kernels with the command below from upstream/pristine sources
rather than Ubuntu ones but you should be able to use (or at least
inspire yourself from) it:

CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) DEBFULLNAME="Tom H"
DEBEMAIL="tomh0665 at gmail.com" KDEB_PKGVERSION="3.7.0.0-9h" fakeroot
make deb-pkg

This creates "linux-image-3.7.0-rc6_3.7.0.0-9h_amd64.deb" (as well as
linux-headers, linux-firmware-image, and linux-libc-dev debs).

Had I added "-t1" to "-rc6" on the "EXTRAVERSION" line at the top of
"./Makefile", the deb's name would've been
"linux-image-3.7.0-rc6-t1_3.7.0.0-9h_amd64.deb".

("-t1" and "-9h" are just for illustration purposes!)

I don't put "3.7.0.0-" in KDEB_PKGVERSION when I do a build, in which
case the debs' names are "linux-image-3.7.0-rc6_9h_amd64.deb" or
"linux-image-3.7.0-rc6-t1_9h_amd64.deb". I added it above because
Ubuntu names its kernel packages this way (more or less!), so I
thought that I'd follow that model in my example. The latest raring
kernel package is "linux-image-3.7.0-3-generic_3.7.0-3.9_amd64.deb".

If you'd rather not build the linux-headers, linux-firmware-image, and
linux-libc-dev debs, you can edit the "builddeb" script
("./scripts/package/builddeb"). The edits are pretty straightforward.

You also use "make-kpkg" in order to build a kernel package; it works
perfectly well but it's "effectively unmaintained" according to a
Debian kernel developer. Should you nonetheless want to use it, you
can run the following after setting your name and email address in
"/etc/kernel-pkg.conf":

CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) fakeroot make-kpkg
--append-to-version -t1 --revision 3.7.0.0-9h --initrd kernel_image

You can set the revision in "/etc/kernel-pkg.conf". If you don't set
it in this file or within the command, it defaults to
"<kernelversion>-10.00.Custom". AFAIR (I only tried it once, a while
ago), if you don't set "KDEB_PKGVERSION" when you run "make deb-pkg",
it defaults to "1". AFAIR!




More information about the ubuntu-users mailing list