Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am trying to upgrade the kernel from 2.4.26 to 2.6.8 and getting the below errors when running the make modules :
Hello,
drivers/usb/image/mdc800.c:327:29: warning: no newline at end of file
drivers/usb/image/mdc800.c: In function `mdc800_usb_waitForIRQ':
drivers/usb/image/mdc800.c:327: `m' undeclared (first use in this function)
drivers/usb/image/mdc800.c:327: (Each undeclared identifier is reported only once
drivers/usb/image/mdc800.c:327: for each function it appears in.)
drivers/usb/image/mdc800.c:327: parse error at end of input
drivers/usb/image/mdc800.c:183: warning: `mdc800_ed' defined but not used
drivers/usb/image/mdc800.c:201: warning: `mdc800_endpoint_equals' defined but not used
drivers/usb/image/mdc800.c:247: warning: `mdc800_usb_irq' defined but not used
drivers/usb/image/mdc800.c:313: warning: `mdc800_usb_waitForIRQ' defined but not used
make[3]: *** [drivers/usb/image/mdc800.o] Error 1
make[2]: *** [drivers/usb/image] Error 2
make[1]: *** [drivers/usb] Error 2
make: *** [drivers] Error 2
root@road [/home/linux-2.6.8]# make modules_install
INSTALL arch/i386/kernel/cpuid.ko
cp: cannot stat `arch/i386/kernel/cpuid.ko': No such file or directory
make[1]: *** [arch/i386/kernel/cpuid.ko] Error 1
make: *** [_modinst_] Error 2
I am sure we will need the steps you took. Did you start with make mrproper? Did you start with an old .config file or a generic one when you ran make menuconfig or xconfig? Were you using brand new source code or were you trying to apply patches? Did you download the mandatory newer versions of your compilers and linking tools?
and I have downloaded the kernel version linux-2.6.8 from kernel.org source tar ball.
So far everything works fine as on the installation thread above until steps 5. I extracted the tar kernel and copy the .config from my old kernel to the new kernel directory . I am a little bit confuse on steps 6 as I dont seems to be able get the directory /configs on my old kernel . Also both the config files kernel-2.4.20-i686.config, kernel-2.4.20-i686-smp.config does not exist on the old directory. I only have the .config file.
I am getting the errors after I run the make modules as on steps 11 . I am not patching the kernel with any patches.
I am running Linux RedHat 8.0 with kernel kernel 2.4.26 installed currently.
hi there
what i did when i went from 2.4 to 2.6 was
i first installed a 2.6 kernel rpm
then i got its working .config file
ran"make xconfig" and then opened up that config file and changed it according to my demands
and this works for me even now...
hi
the above kernel .config fils are required so that u cannot miss out on things ,which u do not think are required by ur system,but in fact thay are required
so each time i compile my kernel i load the older config file which was working for me and do some changes accordingly
in ur case
when u run make xconfig,it will pop up a default configuration of the kernel
u should modifuy that according to ur needs if ur well comfortable there
Thanks for the reply :-) . I have copied out the .config from my old kernel 2.4.26 to the new kernel source directory and run the make oldconfig to go through the new modules added . I turn out to get the following SCSI error :
In file included from drivers/message/fusion/mptscsih.c:68:
drivers/message/fusion/linux_compat.h:11: redefinition of `scsi_device_online'
include/scsi/scsi_device.h:192: `scsi_device_online' previously defined here
drivers/message/fusion/linux_compat.h: In function `scsi_device_online':
drivers/message/fusion/linux_compat.h:12: structure has no member named `online'
make[3]: *** [drivers/message/fusion/mptscsih.o] Error 1
make[2]: *** [drivers/message/fusion] Error 2
make[1]: *** [drivers/message] Error 2
make: *** [drivers] Error 2
The terminal is not running any SCSI drive .Any way I can resolve this ?
hi
why don't u first install a kernel rpm of 2.6 kernel from
people.redhat.com/arjanv
and once u install this kernel then u can use its make config file,
because using make oldconfig from a conig file of 2.4 kernel willnot serve ur prupose since there have been a lot of changes from 2.4 to 2.6 kernel.
i have myself done the same way
also get he modutils,initscrits packages from the same site
Thanks for that , I will have a try on that and let u know what I got .
By the way, I notice in one of your thread you posted that how to create the kernel in binary for distribution.
Quote:
RPM kenrels
You can also build binary distributable versions of you custom made kenrel in the form of RPM packages. If you pay attention to the top level directory of your kenrel sources you will most likely find a file called kernel.spec. These files are used to build RPM packages. A good reason to build bianary versions of the kenrel would be if you have several computers similar to one-another in terms of hardware and sofware confiugrarions, making it easier to build just once the kernel instead of building it on every one of them.
To build an RPM package of your kernel, you need to pass to the make command the argument rpm. Like this:
make rpm
I look into my previous old kernel source directory ( 2.4.26 ) and was not able to get one with the file name kernel.spec. I have tried locate on my whole system and also not able to find it. Do I miss out something ?
No, you didn't miss it. For some reason the .spec file was no longer included in the sources (??) and if my memory serves me right, since version 2.6.5 (2.4.23) or 2.6.6 (2.4.25) the make rpm target is no longer valid... I could be wrong, but in any case those were the versions where I first noticed it.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.