I've been assuming, perhaps incorrectly, that the only relevant source
differences are the changes necessary to get proper Vermagic string in
order to avoid having to force the modprobe load of kqemu. Anyway
after discovering that kqemu 1.3.0pre11 seems to be incompatible with
kernels newer than 2.6.10 (it makes calls to the no longer existent
lock_kernel and unlock_kernel) , I upgraded to kqemu-1.4.0pre1. It
loads with no errors other than Vermagic, but crashes Linux with a
segfault when qemu starts. I then upgraded qemu to qemu-0.10.6 and
recompiled. The new qemu runs OK, but still segfaults if kqemu has
been loaded.
Any thoughts or information. Is it realistic to expect kqemu to work?
> I have seen assertions that there is a README.txt file that
> explains how to modify the source for non-SMP but I can't find the
> file. Is it a myth?
>
slackware/slackware-12.1/source/k/README.TXT
--
Ed
Thanks Ed, but that seems to be the README for upgrading Slackware
12.1 to 12.2 which I'd prefer not to do because stuff always breaks on
upgrades, and I have more than enough problems in my todo list at the
moment.
What I'm looking for is a different README that I think probably
exists somewhere. Let me frame my question differently.
1. It is definitely true that Slackware 12.1 has several different
precompiled kernel options, e.g. huge, SMP, non-SMP. Is it also true
that there is only one set of kernel source code in the repositories
-- /shr/pkg/kqemu/kernel-source-2.6.24.5_smp-noarch-2.tgz ?
I think that the answer to that is "yes"
2. Is it true that the kernel-source in that package is configured
for the SMP kernel? (e.g. if one compiles modules using that, they
will have an SMP kernel vermagic string and will not load without a -f
parameter in modprobe).
I think that the answer to that is also "yes"
3. Is it true that there is a file somewhere that explains how to
tweak the SMP source and/or configure and/or Makefile for use with the
other kernels?
Answer: Seems like there should be
(I've seen reference to something of the sort purportedly in
something_or_other/extras/lots_of_other_stuff/README.txt but it wasn't
there and I neglected to make a note of the path.)
4. Where is the information on how to compile 12.1 modules for a non-
SMP kernel? I need it because I am far too old and stupid to work it
out for myself.
My apologies if I end up double posting this -- google groups and I
seem to be experiencing a minor breakdown in communications
[dakini]~$ ls -l /ftp/slackware-13.0/extra/linux-2.6.29.6-nosmp-sdk/
total 564
-rw-r--r-- 1 root root 1109 2008-03-19 09:02 README.TXT
-rw-r--r-- 1 root root 332 2009-08-17 08:10 kernel-headers-2.6.29.6-x86-2.txt
-rw-r--r-- 1 root root 536516 2009-08-17 08:10 kernel-headers-2.6.29.6-x86-2.txz
-rw-r--r-- 1 root root 197 2009-08-17 08:10 kernel-headers-2.6.29.6-x86-2.txz.asc
-rw-r--r-- 1 root root 15408 2009-08-19 00:01 linux-2.6.29.6-smp-to-nosmp.diff.gz
-rwxr-xr-x 1 root root 1816 2009-08-18 23:58 patch-to-non-smp.sh*
Sould be very similar on 12.1.
Marti
You didn't read the file then.
On the web I looked up it (I haven't got 12.1 anymore, so didn't
have it available) and after the first part about BUILDING the
kernel there is this
NOTE TO USERS OF THE NON SMP KERNELS:
and it will tell you exactly what to do to adapt the sources
to non-SMP.
--
*******************************************************************
** Eef Hartman, Delft University of Technology, dept. SSC/ICT **
** e-mail: E.J.M....@tudelft.nl - phone: +31-15-278 82525 **
*******************************************************************
> On Oct 13, 10:09�am, Ed Wilson <ewil...@jackmaxton.com> wrote:
>> vtcodger wrote:
>> > I have seen assertions that there is a README.txt file that
>> > explains how to modify the source for non-SMP but I can't find the
>> > file. Is it a myth?
>>
>> slackware/slackware-12.1/source/k/README.TXT
>>
>> --
>> Ed
>
> Thanks Ed, but that seems to be the README for upgrading Slackware
> 12.1 to 12.2 which I'd prefer not to do because stuff always breaks on
> upgrades, and I have more than enough problems in my todo list at the
> moment.
>
> What I'm looking for is a different README that I think probably
> exists somewhere. Let me frame my question differently.
>
> 1. It is definitely true that Slackware 12.1 has several different
> precompiled kernel options, e.g. huge, SMP, non-SMP. Is it also true
> that there is only one set of kernel source code in the repositories
> -- /shr/pkg/kqemu/kernel-source-2.6.24.5_smp-noarch-2.tgz ?
>
> I think that the answer to that is "yes"
>
<snip>
>
To reiterate, this file:
<mirror>://slackware/slackware-12.1/source/k/README.TXT
has the instructions. Paraphrasing the instructions there:
If you are compiling kernel modules outside of the linux source (vmware,
qemu, virtualbox, etc.) for a non-smp kernel, then you will need to
recompile the kernel (bzImage) at least once. The kernel source has the
appropriate config:
<mirror>://slackware/slackware-12.1/source/k/config-generic-2.6.24.5
Refer to the file for the complete instructions. I posted this mainly to
add this information:
1. AFAIK, the VIA C7 will work with an SMP kernel. The above instructions
are not really needed for that CPU.
2. The VIA C7 is specifically supported by the Linux kernel. If you are
going to all of the trouble of recompiling your kernel, then this a chance
to optimize it for VIA C7.
3. IMO, the Linux kernel versions 2.6.2x has some performance issues
(AIUI, this relates to its block IO elevator code, SLAB/SLUB, etc.).
Under certain conditions, I noticed very poor performance when running
virtualization apps. YMMV. This appears to be much improved under kernel
2.6.3x. YMMV.
Finally, I am not sure that a single VIA C7 has the horsepower for running
virtualization. YMMV.
--
Douglas Mayne
Assuming that you have installed a non-SMP or any other custom kernel
which affects module compability you should do something like the
following:
cp /boot/config /usr/src/linux/.config
cd /usr/src/linux
make modules
make modules_install
The above also assumes that /boot/config contains the configurations for
your custom kernel.
Please note however that this only rebuilds the modules that are part of
the linux kernel source tree. If you have other modules installed like
drivers for audio or video or kqemu which didn't come from the kernel
sources you will also have to recompile those modules. Depending on your
version of Slackware some of those sources might be part of X.org or alsa.
Some of those modules like kqemu or a binary nVidia driver might not be
part of Slackware at all.
Instead of working in /usr/src/linux you can make a copy of that directory
tree to somewhere else and build your modules there. By doing that you
don't need to be root when doing "make modules", only when doing "make
modules_install". However, having the right /usr/src/linux/.config might
be a good idea when compiling other modules like kqemu.
regards Henrik
--
The address in the header is only to prevent spam. My real address is:
hc3(at)poolhem.se Examples of addresses which go to spammers:
root@localhost postmaster@localhost
You should do "make oldconfig" after that, to create all the right
dependencies for the changed config.
> make modules
> make modules_install
And according to Pat's README, you should also build a complete
kernel, with
make bzImage
make clean
rm .version
before you can build modules for that kernel.
That one isn't there yet in 12.1, so you'll have to do it by hand.
Thanks to everyone for the help and my apologies for taking so long to
finish this thread up. Yes, indeed there is a README file that
describes about the same process for configuring Slackware to compile
a non-SMP kernel that Eef Hartman posted -- however it is missing from
more places than it is present. I finally tracked down a copy at
http://slackware.osuosl.org/slackware_source/k/README.TXT through a
process of recursive blundering. Because files on the internet have a
habit of disappearing and someone else may want to read the memo, I
posted another copy at www.donaldkenney.110mb.com/Slackware-non-SMP-kernel-README.txt
After a number of adventures making a copy of my system (my religion
strictly forbids self-immolation. I am not about to compile a kernel
on my day-to-day system without testing the process someplace else
first) because inode sizes have changed from 128 to 256 bytes, I
eventually got a copy of the system to boot. Other than a missing
'make clean' in the compilation instructions for kqemu, the kernel
source configuration got changed, kqemu booted, and everything
works ... with -- as I suspected when I started all this -- very
little change in qemu execution speed.
Anyway. Thanks again to all.