LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 05-06-2004, 03:50 AM   #1
Andronik
Member
 
Registered: Sep 2003
Location: Estonia Tartu
Distribution: Debian, edition depends on what i run it, wheezy on main box.
Posts: 91

Rep: Reputation: 15
Is there something wrong with me or is 2.6.5 brocken?


Platform abit nf7s with barton 2500+ , 512 megs ram.
Slackware 9.1 (all ok with kernels 2.4.22-26 and 2.6.0-test11-2.6.3)

Now i have tried to get work 2.6.5 about 6 times.
I fail to get work pppoe.

all ppp and pppoe support i compile directly to kernel.
whilst make i see it is compiling also.

every other thing works after kernel build, also network is running locally.

only if i try start adsl -it complains about pppoe process id.
ok
after i give it manually it says i do not have ppp stuff in my kernel!!!
nor do i have modules.

it happens every time now so, tried download source twice, make full clean, mrproper and etc.
i choose all pppoe things in configure i do also modules and modules_install and tried to install bzImage via makefile and manual way.

same story.

So how do i lose those ppp and pppoe things when i see that they were actually compiling?

cant figure out what is wrong with 2.6.5

I do my configs and all other things as i did em staring from 2.6.0-test11.


Any ideas?
 
Old 05-07-2004, 10:25 AM   #2
iotc247
Member
 
Registered: Mar 2004
Location: Florida
Distribution: Gentoo
Posts: 248

Rep: Reputation: 30
Did you compile those as modules.. Try doing that.. I cant understand you all that well so im guessing you didnt compile as modules.
 
Old 05-07-2004, 12:18 PM   #3
Andronik
Member
 
Registered: Sep 2003
Location: Estonia Tartu
Distribution: Debian, edition depends on what i run it, wheezy on main box.
Posts: 91

Original Poster
Rep: Reputation: 15
Yes, i did compile them directly to kernel.

And when make is running-i see all ppp and pppoe things passing in make without errors.
But after kernel compile is complete and i try adsl-connect -it tells that i do not have pppd in my kernel.
That is i am wondering.

I can try to compile them as modules.
Maybe it makes it differ.
 
Old 05-07-2004, 02:45 PM   #4
snocked
Member
 
Registered: Dec 2002
Location: St. Louis, MO
Distribution: Slackware 9.1
Posts: 482

Rep: Reputation: 30
2.6.x is funky like that. Look at the 2.6.0 thread sticky and you will see some people can get it to work and some can't get it to work following the same directions.
 
Old 05-09-2004, 08:29 AM   #5
Andronik
Member
 
Registered: Sep 2003
Location: Estonia Tartu
Distribution: Debian, edition depends on what i run it, wheezy on main box.
Posts: 91

Original Poster
Rep: Reputation: 15
I checked syslog and found something i couldnt understand myself.
maybe some translation>

May 9 12:16:11 thunder kernel: ppp_generic: disagrees about version of symbol struct_module
May 9 12:16:11 thunder kernel: ppp_synctty: disagrees about version of symbol struct_module
May 9 12:16:11 thunder kernel: slhc: disagrees about version of symbol struct_module
May 9 12:16:11 thunder kernel: ppp_generic: disagrees about version of symbol struct_module
May 9 12:16:11 thunder pppd[1280]: This system lacks kernel support for PPP. This could be because the PPP kernel module could not be loaded, or because PPP was not included in the kernel configuration. If PPP was included as a module, try `/sbin/modprobe -v ppp'. If that fails, check that ppp.o exists in /lib/modules/`uname -r`/net. See README.linux file in the ppp distribution for more details.


As i allready said it was included.
what it actually complains about?
 
Old 05-09-2004, 12:15 PM   #6
LNXman
Member
 
Registered: Jul 2002
Location: California (USA)
Distribution: Slackware
Posts: 97

Rep: Reputation: 15
I may be going out on a limb, but . . .

When you downloaded the kernel, and unpacked it. Did you replaced the header files under /usr/include/linux, /usr/include/asm-generic and /usr/include/asm with the ones that came with kernel releases 2.6.5? If not, then you may be compiling the kernel with the header files of the previous kernel version you had running, and therefore may be causing versioning incompatability.

To replace the header files under /usr/include, you need to do the following:

- mv /usr/include/linux /usr/include/linux-<previous_kernel_version>
- mv /usr/include/asm /usr/include/asm-<previous_kernel_version>
- mv /usr/include/asm-generic /usr/include/asm-generic-<previous_kernel_version>
- cp -a /usr/src/<2.6.5_kernel_source>/include/linux /usr/include/linux
- cp -a /usr/src/<2.6.5_kernel_source>/include/asm-<your_architecture> /usr/include/asm
- cp -a /usr/src/<2.6.5_kernel_source> include/asm-generic /usr/include/asm-generic

Once you have updated the kernel header files, make mrproper again (or, if you like make clean to preserve your configuration settings), and then recompile.


Hope this helps,

GL

//edit: fixed typo in path

Last edited by LNXman; 05-09-2004 at 12:16 PM.
 
Old 05-10-2004, 10:10 AM   #7
Andronik
Member
 
Registered: Sep 2003
Location: Estonia Tartu
Distribution: Debian, edition depends on what i run it, wheezy on main box.
Posts: 91

Original Poster
Rep: Reputation: 15
I admit that this must be an issue.
I did,nt replace those header files, because i thought if they worked with 2.6.0 they will with 2.6.5 also.
I will try recompile later today.

Now second question will be.
If i want to run different kernels in one installation (i mean same root , src ant etc)
what is proper way for that?

I want to run some apps under 2.4.2x (for example production antivirus -servers i configure and learn), but normally boot to 2.6x series for fun.

Thank your for helping.
 
Old 05-10-2004, 10:28 AM   #8
LNXman
Member
 
Registered: Jul 2002
Location: California (USA)
Distribution: Slackware
Posts: 97

Rep: Reputation: 15
I you want to run different kernels, just compile the kernels you want, make the appropriate changes to your lilo.conf file (to give yourself a kernel selection), re-run lilo, and switch to you desired kernel whenever you boot.

It is fairly simple. If you want more information regarding lilo.conf, type man lilo.conf at you shell prompt, and the example it uses in the manual, should be sufficient to get you going.


GL

P.S.
Remember to replace the header files whenever you compile a kernel, else funny things may occur. ;^)
 
Old 05-14-2004, 05:41 AM   #9
Andronik
Member
 
Registered: Sep 2003
Location: Estonia Tartu
Distribution: Debian, edition depends on what i run it, wheezy on main box.
Posts: 91

Original Poster
Rep: Reputation: 15
LNXman
you did,nt get me right.

doing lilojob is really easy.

answer i actually waited is about: drivers, libraries ,compilers headers and etc and their configuration suggestion's.There are different needs for them.
i want to make them all work with clean way, so nothing complains me missing something

For example i have nvidia card.
if i run 2.4.xx i run it as generic nv
if in 2.6 i use glx version from nvidia.but to do that i have switch xf86 confs all time. (i cant use glx compiled and patched for 2.6.5 with 2.4.kernel)

Second thing is about alsa. (i love music you see, without crackles and jitters)
2.6.x have it built in, 2.4 must be installed separately. and etc.

so i do not understand all dependencies in linux architecture too well, to find optimal way in very beginning.just choosing between kernels do note always do the job, or does it?
 
Old 05-14-2004, 01:10 PM   #10
LNXman
Member
 
Registered: Jul 2002
Location: California (USA)
Distribution: Slackware
Posts: 97

Rep: Reputation: 15
I.C. now.

In order to know what dependencies a particular application needs, you would need to research for it. Most of the time when you download an application, it will come with a README, or INSTALL file within their documentation. Within those files, the application author lists what is required for the application to work (i.e. libraries, etc). If your LINUX distribution happens to come with the necessary requirements, then you are golden, and can go ahead and install them regardless of the kernel. What you need to worry about is having the correct file system libraries, and 3rd party libraries requirements. So lets say you want to install an old version of DOOM, which requires libc1, then what you would have to do is find the old libc1, release and compile it (as long as you fullfill all of its dependencies). And you succeed in running it on kernel-2.4.X, then you come across kernel-2.6.X and want to upgrade, and you do. Will it prevent you from running DOOM? No, because the library (or libraries) do not dependent on the kernel to run. All you have to make sure is that your environment (however you may have set it up in 2.4.x) is the same as it was before.

In the case on your NVidia driver, it is a bit complicated, because you not only have a kernel module which depends on the kernel, you have an application (XFree86/XOrg) which uses libraries which depend on the kernel module versioning. An unfortunately, because kernel module depends on specific libraries (i.e. library versions) if you want to use NVidia, for your 2.4.X kernel, and use NVidia for your 2.6.X kernel as well, then you will have to install two different versions for each kernel, and two different versions of XFree86/XOrg to house each one glx installation. You can figure out how you can change from one to the other, and keep both installations, but it is just too much trouble.

Examples:

- You could try creating scripts to make your required changes to switch from one version to another when switching kernels
- You could have 2 different installation of XFree86\XOrg in your system, and have scripts switch between installations
- You could have 2 different partitions which one can house a 2.4.X XFree86/XOrg, and the other a 2.6.X XFree86/XOrg installations, and have scripts mount the corrent partition, but that just boils down to doing the same thing as above.

So, you see, you have to determine who is dependent on what to make things work. And sometimes it can be a headache.

ALSA, on the other hand, can be installed per kernel, since it applications using ALSA do not depend on which kernel is running, but rather which ALSA libraries you have compiled your kernel modules against. Sort of a backwards dependency compared to NVidia. As long as you compile the modules with the correct ALSA libraries, you should be able to switch from one kernel to another.


I am not sure if I confused you, or, I may have confused myself ;^).

If anyone else has any comments, please post.

GL
 
Old 06-10-2004, 02:49 PM   #11
cdunn
LQ Newbie
 
Registered: Jun 2004
Location: Northeast United States
Distribution: Mandrake 10.0 (Kernel 2.6.3)
Posts: 8

Rep: Reputation: 0
Unhappy Still have the module mismatch problem though!

I am having the same root problem here... The full error text is included at the end, but the root of it is:

mosd_mod: disagrees about version of symbol struct_module
-1 Invalid module format


This is just one module, but all that try to load get this same error (see below).

Here's how I got here:

1. Install standard Mandrake 10.0 distribution including RPMs for a preconfigured SMP image.
2. Using the standard SMP .config from the distribution, compile and install the kernel and modules. This works fine.
3. Now run make menuconfig to add all KDB options except KDB Modules.
4. Build and install the kernel again.
5. Get the latest sources for module-init-tools-3.0, compile and install them as per the directions that came with them. This worked without error.
6. Reboot to the new kernel with SMP and KDB installed in it. This produces the errors below...

In the end, what has caused the failure is adding KDB to a working SMP config. I tried adding KDB modules as well, with no change in behavior.

I will next try turning off module versioning by turning off CONFIG_MODVERSIONS.. I'm not crazy about this choice since the whole point was to prevent a real problem which I will then be allowing to happen again.. But, since this is a debug kernel for my machine only I think I can get away with this.

The other suggestion I have seen is to compile into the kernel all modules that have this problem... Since the modules loaded fine on SMP, they obvioulsy can be used as modules, I.E. I'm not doing anything blatently unsafe... Not crazy about this option as it increases the size of the kernel rather alot... Still it's a debug image for just me, so that may be OK too...

Bottom line, I have seen posts all over the place in Google groups, etc, etc, but no one ever has an answer about how to fix the real root problem here... Basicly this is one of two things:

1. The modules really are different in their versions and they need to be built in same way that keeps them consistant with the rest of the kernel. This doesn't seem like the answer since the make clean / make / make module_install, should have rebuilt everything with CONFIG_KDB on, thus making them consistant...

2. The kernel is wrong about the version being different, in which case this is a bug. Also seems unlikely given how widely spread this code is and how well it has worked in all other cases....

I don't really have time to dig into this as what my job actually is, is to create an SMP safe kernel module for our product and I need to make that happen yesterday.. :-) Does anyone have a notion about what is really happening here and how the real root of the problem needs to be fixed??

Many thanks in advance!!

-Charlie


Side note: This is Mandrake release, why does the first line of the error claim this is Red Hat???



Code:
Red Hat nash verscsi_mod: disagrees about version of symbol struct_module
sion 3.5.18-mdk libata: disagrees about version of symbol struct_module
starting
Loadinata_piix: disagrees about version of symbol struct_module
g scsi_mod.ko mosd_mod: disagrees about version of symbol struct_module
dule
Error insejbd: disagrees about version of symbol struct_module
rting '/lib/scsiext3: disagrees about version of symbol struct_module
_mod.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Loading libata.ko module
Error inserting '/lib/libata.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Loading ata_piix.ko module
Error inserting '/lib/ata_piix.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Loading sd_mod.ko module
Error inserting '/lib/sd_mod.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Loading jbd.ko module
Error inserting '/lib/jbd.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Loading ext3.ko module
Error inserting '/lib/ext3.ko': -1 Invalid module format
ERROR: /bin/insmod exited abnormally!
Mounting /proc filesystem
Creating device files
Mounting sysfs
Creating root device
Mounting root filesystem
mount: error 19 mounting ext3 flags defaults
well, retrying without the option flags
mount: error 19 mounting ext3
well, retrying read-only without any flag
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
Remounting devfs at correct place if necessary
Mounted devfs on /dev
Freeing unused kernel memory: 296k freed
Kernel panic: No init found.  Try passing init= option to kernel.
 
Old 06-10-2004, 05:23 PM   #12
cdunn
LQ Newbie
 
Registered: Jun 2004
Location: Northeast United States
Distribution: Mandrake 10.0 (Kernel 2.6.3)
Posts: 8

Rep: Reputation: 0
Talking Answered my own question!!

Got it to work!! Bottom line answer, when I turned off CONFIG_MODVERSIONS I got debug output from the kernel telling me what version it found, and what version it wanted.. Having to turn off version checking to have it tell me more info about version checking seems a little backwards to me, but hey, they didn't ask me...

Anyway, the bottom line is that the verison numbers being talked about in the error messages are not version numbers for the specific symbols, they are in fact the version strings for the kernel itself! So, the root problem was that even though I had carefully done the following:

make clean
make
make modules_install
edit lilo.conf to add new entry for new image
lilo

I had neglected to create a new initrd.img for the new image! For those (like me) who didn't know what that was, it's the RAM disk image that get loaded at the very early stage of boot, which when it's done turns control over the vmlinuz to boot the real kernel.

So, if your problem is that you compiled the kernel and when you booted it you got:

Code:
disagrees about version of symbol struct_module
when you booted your new kernel, your problem may well be that you are using an initrd.img from the old kernel. You must do the following (caveat: this is for Mandrake 10.0, don't know if this works elsewhere):

mkinitrd <image file name> <kernel version>

Example:

Code:
mkinitrd ./initrd-2.6.3-7mdksmp  2.6.3-7mdksmp
Note that this version string MUST match what is in the Makefile at the very top. The variable EXTRAVERSION is what appears on your new kernel, and where the new modules are placed under /lib/modules... The version you give to mkinitrd must match whats in your Makefile as EXTRAVERSION or none of this will work...

Good luck!

-Charlie
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
my time is wrong and calender is also wrong Paxmaster Linux - General 6 12-16-2004 12:46 AM
What's wrong? whaase Linux - Software 7 10-20-2003 12:39 AM
What am I doing wrong? funkenbooty Linux - Newbie 14 07-26-2003 02:16 AM
What did I do wrong Benkong2 Linux - Newbie 3 12-29-2002 02:10 PM
What did I do wrong? yakko Linux - Newbie 7 05-02-2002 07:09 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:10 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration