2.2.1x Kernel Building Problems
rips asks: "I've been a moderately skilled Linux user for several years now but my problem solving skills on this one have got me stumped. I have compiled many kernels before but when compiling a recent kernel (2.2.11 or 2.2.12) the compilation will run without a hitch, lilo (v20) will accept the changes but after a reboot the system will crash at: 'Uncompressing Linux... Ok'. I have tried compiling the 2.2.12 kernel on 3 different machines with 2 different distributions (RedHat 6.0 and Slackware 3.2.0) and for different target processors and kernel options but nothing seems to work. I've even tried running off a boot disk incase it was LILO but to no avail. This has really got me stumped. Has anyone else figured out the cause/solution to this?"
Did you remember to "make modules" and "make modules_install"? I have 2.2.12 running on 3 machines, and they all boot fine. I forgot to make the modules once, and had a similar problem on boot. The only other time I have seen this error was booting a cyrix 486DX2/80 CPU - evidently the Cyrix CPUs lack an instruction required in many of the defaults Linux kernels.
Your boot image may be too large. This is why we now have the option to build a (smaller) bzip-compressed image, instead of a gzip-compressed image. At the end of the final make stage (make boot, make Zimage, etc.) the last few lines of output should tell you the size of the image, e.g.:
Root device is (3, 1)
Boot sector 512 bytes.
Setup is 3436 bytes.
System is 515 kB
I believe the max is 1024kB, give or take a few, since the image has to fit in one MB (correct me if I'm wrong). At any rate, if your image is close to 1024kB, try either making a bzip-compressed image, with "make bZimage," or make more of your drivers modular.
If that doesn't fix the problem, post your "make the kernel" command and the last few lines of output.
slashdot broke my sig
Reading the kernel archives it looks like there may be problems with some versions of GCC. Check out the kernel mailing list synopsis (url anyone?) for further details. Also patch to Alan Cox's latest pre kernel.
,hacker Perl another Just)'
perl -e 'print scalar reverse q(\)-:
Matt. Want XML + Apache + Stylesheets? Get AxKit.
I had a similar problem because I had deselected a few things in the kernel config like "PCI quirks" and "CMD640 fix", "RZ1000 bugfix" etc. If you took those out thinking that your bios is fine, put them back in a retest.
Joseph Elwell.
In upgrading my 2.2.1x kernel I noticed that the order in which the task is done is important. Make sure that the order in which you configure and compile is *exactly* the same. Perhaps a stupid thing to mention, but I'd been caught out on this more than once (OK, so maybe I'm an idiot!).
========================================
Death will come, and will have your eyes
-- Pavese
However, I would advise checking the following:
Hope this helps.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
"I've been a moderately skilled Linux user for several years now but my problem solving skills on this one have got me stumped. I have compiled many kernels before
In searching for help I've seen suggestions like "clean out your old modules" and in RedHat's instructions it says stuff like "rm System.map ; ln -s System.map-2.2.12 System.map" but I haven't tried that because I think I should be able to have old and new on there at once... what if new doesn't work (it doesn't!). I'm glad I can reboot old and don't want to lose that.
Rebuilding the kernel used to be easy but I have not got the hang of the modular kernels. Sometimes I rebuild the sucker and then just put the once eensy little .o that I want down into lib/modules and that has worked well. Can anybody point me to what newish facts about kernel modules that I'm missing?
Well, if you should be able to then make it so.
Well, if you don't want to make kernel changes which allow such things then try some things in lilo.conf.
If the "map" option can be specified for several image entries then you could have separate maps for various kernels (test it with links to the "old" map entry first and last, with the "new" kernel and the "new" map entry in the middle, so the new will only happen if multiple ones are recognized).
Or you could have several root partitions, with different /boot directories. Or put the new kernel root on a floppy...
In 2.2, there's an option to put console on the serial port. If that's the case, it wont print out the kernel messages to your monitor, but to your serial port. Check to see if that's what's happening. I'll bet it is.
:)
If not, well, good luck
- hal9k
It seems that when using older .config files with newer kernels, certain options you would expect to default to 'Yes' dont.
.config files from older kernels (2.0.36 systems in my case), even after running make config and adding extra options, it didn't turn on the Virtual Console option.
.config files and let it build the defaults up from scratch.
I'm talking inparticular to the 'Virtual Console' option. It seems that when using
So my computer booted away silently in the background (fscking in this case was misinterpretted by me as a crash). I didn't discover it until I deleted my
'Virtual Console' to me didn't suggest a console on the local terminal. I assumed it meant a console on a serial port and therefore I skipped it. Maybe a warning is needed in the kernel config?
I had to adapt some of what you wrote.
running depmod -a still prints a bezillion unresolveds, and rebooting freezes at the spot where it would ordinarily start to load modules
I am right now testing a new kernel (2.2.12, upgrade from 2.2.5), and I just used make bzImage on the recommendation of a coworker. He was having similar problems using make zimage, and make bzImage worked for him. I would give that a try.
Also, rather than compiling everything you are unsure of as modules, take the time to really check all your hardware and compile only exactly what you need into your kernel. This new kernel is 400K or so, with no modules (I don't have a network card but I do have a sound card and SCSI drives).
darren
(darren)
I had exactly this problem - "Uncompressing kernel....ok, done" and then nothing. In my case, it was a combonation of having a serial console configured and not getting the boot messages, and then also booting from a SCSI disk but not having both scsi adapter supported and 'scsi diskk support' compiled in.
thanks for tyring to help.
here's the first 250 lines of 4000+ lines
of unresolveds. my sense is that it is something
"systemic", i.e. after the build is completed
cleanly, depmod is not finding the perfectly
good symbols... but what do I know:
/lib/modules/2.2.12/fs/nls_koi8-r.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-15.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-14.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-9.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-8.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-7.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-6.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-5.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-4.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-3.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-2.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_iso8859-1.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp874.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp869.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp866.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp865.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp864.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp863.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp862.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp861.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp860.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp857.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp855.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp852.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp850.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp775.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp737.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/nls_cp437.o: unresolved symbol(s)
register_nls
unregister_nls
/lib/modules/2.2.12/fs/binfmt_misc.o: unresolved symbol(s)
dput
prepare_binprm
kmalloc
_ctype
create_proc_entry
open_namei
copy_strings
register_binfmt
kfree
remove_proc_entry
search_binary_handler
sprintf
unregister_binfmt
remove_arg_zero
printk
/lib/modules/2.2.12/fs/binfmt_aout.o: unresolved symbol(s)
send_sig
filp_open
lookup_exec_domain
dump_thread
read_exec
setup_arg_pages
open_dentry
sys_close
compute_creds
filp_close
register_binfmt
do_mmap
fput
jiffies
flush_old_exec
unregister_binfmt
printk
/lib/modules/2.2.12/fs/autofs.o: unresolved symbol(s)
lookup_dentry
dput
__wake_up
kmalloc
unregister_filesystem
iput
is_root_busy
d_rehash
iget
register_filesystem
d_alloc_root
cap_bset
interruptible_sleep_on
kfree
__wait_on_super
fput
xtime
simple_strtoul
jiffies
d_instantiate
strtok
printk
__generic_copy_to_user
/lib/modules/2.2.12/fs/romfs.o: unresolved symbol(s)
lookup_dentry
dput
__wake_up
kmalloc
kdevname
init_fifo
unregister_filesystem
bread
generic_file_mmap
d_rehash
iget
generic_file_read
register_filesystem
free_pages
d_alloc_root
kfree
__wait_on_super
chrdev_inode_operations
set_blocksize
mem_map
blkdev_inode_operations
__brelse
d_instantiate
printk
__generic_copy_to_user
/lib/modules/2.2.12/fs/ufs.o: unresolved symbol(s)
lookup_dentry
securebits
send_sig
dput
d_delete
__wake_up
in_group_p
__generic_copy_from_user
schedule
update_atime
vsprintf
clear_inode
kmalloc
kdevname
__wait_on_buffer
mark_buffer_uptodate
init_fifo
__mark_inode_dirty
file_fsync
unregister_filesystem
iput
bread
getblk
update_vm_cache
generic_file_mmap
d_rehash
panic
ll_rw_block
iget
generic_file_read
register_filesystem
d_alloc_root
cap_bset
get_hash_table
event
refile_buffer
kfree
__wait_on_super
__bforget
chrdev_inode_operations
get_empty_inode
set_blocksize
xtime
blkdev_inode_operations
__brelse
d_instantiate
insert_inode_hash
strtok
printk
set_writetime
__generic_copy_to_user
generic_readpage
/lib/modules/2.2.12/fs/ntfs.o: unresolved symbol(s)
__wake_up
load_nls
vsprintf
kmalloc
__wait_on_buffer
load_nls_default
unregister_filesystem
iput
bread
generic_file_mmap
d_rehash
iget
register_filesystem
unload_nls
d_alloc_root
refile_buffer
kfree
__wait_on_super
set_blocksize
xtime
simple_strtoul
__brelse
d_instantiate
strtok
printk
set_writetime
__generic_copy_to_user
generic_readpage