I've probably missed something in the documentation, and guess some one knows an easy answer.

My questions is

"What are the miniminal commands to issue from a freshly installed i386 debian wheezy installation to get to the point of being able to type make in a downloaded 'application' and have it built successfully?"

The reason isI'm trying to install a turnkey dev environment on a wheezy i386 virtual machine so I can make i386 turnkey things.

After looking at http://www.turnkeylinux.org/tkldev I was pointed at


I tried to find a i386 iso, for tkldev, however there doesn't appear to be one.
N.B. I'm pretty sure the 'latest' version listed which is bitkey isn't what I want.

So I followed the link to documentation


and from there onto the setup section


I created a virtual box 32bit vm and installed wheezy by booting a debian wheezy live cd and hitting the install option, then added the standard debian package archive, then I install the virtualbox addons.

and then followed section B. Setup the build dependencies

and tried to start on section - C. Clone Core from GitHub and run "make"

Which didn't work, warning about /usr/share/fab and things, somewhere along the line I use pip to install pyproject as I see it mentioned somewhere...

Eventually, looking back at the main section there is a mention of tkldev including fab and deck, after some searching around I think that I need to point apt-get at http://archive.turnkeylinux.org/ which gets a mention in passing at the bottom of a page.

So I added
deb http://archive.turnkeylinux.org/debian wheezy
and do the various apt-get update / install commands to get fab and deck installed

I try a 'make' in Core and it gives me an error about pyproject and cliwrapper, removing the pyproject I added earlier via pip now causes me to get an error about root not being allowed by useraufs.conf, so I read the source and create the file /etc/useraufs.conf with a single line 'allow_user root'

Doing make in Core, now does something, ... and fails with executil.ExecError:non-zero exitcode (120).

At this point I'm done with looking at this for the day, initial experience somewhat underwelmed.
Am I the first to try following the instructions? What have I missed?


Jeremy Davis's picture

There is one and it's on that page you linked to in your thread... FWIW I did a browser search (<Ctrl><f>) for 'tkldev' and came up with 8 results (.iso & .iso.sig files for both x86 & x86_64; both v12.1 & v13.0 releases). Here is a direct link. The 'latest version' is just the most recent file uploaded (SourceForge is by default intended more for individual software releases, rather than big libraries of releases as TurnKey is...).

In theory you should be able to build your own TKLDev from vanilla Debian, but it's not really documented, so I would not really recommend it unless you want to spend a lot of time mucking around troubleshooting etc.

I tried the iso you linked with a debian 32bit VirtualBox VM - it doesn't work.
After the initial splash screen where you can choose install / live regardless of the option I choose.

The console output says.

early console in setup code

This kernel requires the following features not present on the CPU:


Unable to boot - please use a kernel appropriate for your cpu.

I found http://www.turnkeylinux.org/forum/support/20130123/tkl-13rc-32-bit-pae-r...

Will a TKLDev i386 image with a 'wrong' kernel make 32bit images which work?
I guess the answer is 'it depends on the hardware'. I'd like to be able to make images for non-pae.

So it looks like I would have to make a base TKLDev with an non-pae kernel.
Will running the 32bit version of TKLDev in a 64bit vm, building/replacing the kernel with a non pae one then using that to make 32bit images work?

Surely it would be useful it it was documented how to make a TKLDev from vanilla debian?

Jeremy Davis's picture

FWIW a google of "virtualbox kernel requires the following features not present on the CPU: pae Unable to boot - please use a kernel appropriate for your cpu" turned up plenty of results with the 3 near the top that I clicked all suggesting that you enable PAE in the VIrtualBox CPU settings...

Here's one with a nice pic of the VirtualBox setting that needs tweaking: http://www.linuxliveusb.com/help/faq/virtualization/154-unable-to-boot-p...

Also you may need to enable VM CPU extensions in the host PC's BIOS. On AMD CPUs it's called AMD-V and on Intel chips it's called VT-x. Have a read here if you're interested.

AFAIK all AMD desktop CPUs socket AM2 and since are capable (although not 100% sure about mobile CPUs) but you may need to enable it. Intel CPUs are a bit hit and miss, especially older ones and low power ones (I have a Core2Duo and it has it; and a bit newer, higher spec Core2Quad which doesn't, only some of the newer Atoms have it).

If you try both of those and it still doesn't work (or you don't have AMD-v/VT-x) then perhaps you could try the v12.x ISO and see if that uses the PAE kernel by default. Theoretically you should be able to install a non-PAE kernel but you'd need to do it on PAE supported hardware (or VM - otherwise how would you install it in the first place...!?).

Currently TKLDev does not support cross compiling appliances - i.e. you need to build 32 bit ISOs in 32 bit TKLDev & 64 bit ISOs on 64 bit TKLDev. I'm pretty sure that on a 64 bit OS using QEMU you could emulate 32 bit PAE hardware and use TKLPatch to replace the PAE kernel with a non PAE kernel... It'd be a steep learning curve I suspect though.

The build code for TKLDev itself is all there (on GitHub) too, so if you are patient enough you should theoretically be able to build it on top of vanilla Debian. How that would go in practice though I don't know... Probably lots of trial and error and googling...

Thanks for the quick answer.

I was trying to do it on my desktop development machine in a virtual machine that is like the target.

I am trying to create images for old hardware which I have lying around - An ASUS eepeecee (or however they spell it) and similar vintage hardware which don't have PAE, but more than good enough for single use applications.

If I use turnkey (because it doesn't do cross-compile) I'm going to have to do it with a kernel which isn't PAE.

I'm going to try

old TLKDev iso, or
put a non-PAE kernel in a TKLDev image, or perhaps
trial and error and google and patience approach...


Jeremy Davis's picture

If all you want to do (at least initially) is install non-PAE kernel then TKLPatch may even be a better option than TKLDev? It has been somewhat superseded by TKLDev (it was the precursor to TKLDev - it provided a way to customise existing ISOs) but for your purposes it may be a better fit?

TKLPatch essentially just unpacks the ISO and runs whatever you have in the conf script (e.g. swap the kernel) and then repacks the ISO. TKLDev uses a similar theory but instead of starting with an ISO, it builds the whole OS from scratch...

Add new comment