LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - Installation
User Name
Password
Slackware - Installation This forum is for the discussion of installation issues with Slackware.

Notices

Reply
 
Search this Thread
Old 08-07-2006, 09:01 PM   #1
gmartin
Member
 
Registered: Mar 2003
Location: PA
Distribution: Slackware 13.37 Linux Reg # 341245
Posts: 285

Rep: Reputation: 40
Compiling 2.6.17.7 kernel


In my previous thread we decided that I needed to compile a new kernel so I could build in SMP and to add himem support. I'm following the instructions at the alien slackbook
All went well during the compile but when I boot, I get the error mentioned in the "initrd" section of the compile guide. I tried creating the initrd using:
mkinitrd -c -k 2.6.16.18 -m reiserfs
which reports: WARNING: Could not find module for "reiserfs"

I looked for the module in /usr/src/linux-2.6.17.7/fs (this is the path for the /usr/src/linux link.) and found it. Not sure why it wasn't found. Can I copy it to the initrd directory?

Two questions:
- When I built the kernel, I included reiserfs as part of the kernel (not module).

- Could this be an issue with the SATA driver? I did mark the SATA support as a part of the kernel (under Device Drivers/SCSI device support/Serial ATA Support. But the individual drivers under that part of the tree are marked as modules. Any idea what driver i need to support the intel 945 chipset SATA?

Thanks, as always
 
Old 08-07-2006, 09:51 PM   #2
zetabill
Member
 
Registered: Oct 2005
Location: Rhode Island, USA
Distribution: Slackware, Xubuntu
Posts: 348

Rep: Reputation: 30
Reiserfs is not a module but compiled into the kernel? No need for reiserfs in an initrd...

I'm not a SATA user so I can't comment on what drivers you need. If you mark the drivers for the hard drive that contains the root partition in the kernel as modules, they will be compiled as modules. Those should probably be compiled into the kernel as well... at least for stability's sake. I always thought that support for the hard disk with the root partition should always be compiled into the kernel and any other drives can be modules; it's what I would recommend. Either way, that might be the only reason you'd want to give an initrd a shot.

I would say that you really don't need an initrd if you are going to go back and compile the hard disk drivers into the kernel.

I don't use an initrd on my machine because I don't compile necessary components for system booting as modules. After that, everything that can be modules... are modules. I've never had any problems with this method.

EDIT: cleaned up some grammar and tried to be more specific.

Last edited by zetabill; 08-07-2006 at 10:01 PM.
 
Old 08-08-2006, 11:50 AM   #3
gmartin
Member
 
Registered: Mar 2003
Location: PA
Distribution: Slackware 13.37 Linux Reg # 341245
Posts: 285

Original Poster
Rep: Reputation: 40
Thanks, Bill.

I believe you are correct about reiserfs, but I do get this error when I boot:
Quote:
VFS: Cannot open root device "802" or unknown-block (8,2)
Please append a correct "root=" boot option
Kernel Panic-not syncing: VFS: unable to mount root fs on unknown block(8,2)
The error is identical to that reported on this page. that discusses the need for an initrd.

I agree that I'd love to compile in everything I need for the kernel to boot, but how do I identify what else I need?
 
Old 08-08-2006, 01:56 PM   #4
zetabill
Member
 
Registered: Oct 2005
Location: Rhode Island, USA
Distribution: Slackware, Xubuntu
Posts: 348

Rep: Reputation: 30
The drivers for the hard disk either aren't in the kernel or aren't in the initrd.

I'm sure that there are plenty of other thoughts about this, but if you have a decent system and you're compiling your own kernel, then the initrd isn't entirely necessary. If anything it can be used to avoid exactly the message you got.

Your error is basically saying "I have no clue how to use that piece of hardware that you pointed me to. I can't find it anywhere." Basically, since the sata drivers aren't in the kernel and it's not supplemented by an initrd with the drivers, it can't use the hard disk because the modules aren't loaded until well after the kernel is booted.

So you can get rid of that message by recompiling the kernel with the SATA drivers compiled into the kernel. Or, if you want the initrd (to me it's just an extra step), make one with the SATA modules. I don't know which ones they are... like I said... I don't know too much about sata...

The initrd is popular because people like to make "streamlined" kernels. Basically these kernels are as small as they can possibly be... but that means leaving out things like support for hard disks and filesystems. So the initrd is there to throw those drivers into ram quickly while the tiny kernel boots, and then once the modules are loaded the initrd is dropped. It really isn't necessary, and with how fast computers are nowadays the use of initrd for custom kernels is basically more for fun and challenge.

There are certain things I compile into the kernel instead of modules even though they can be modules. Things like ACPI, hard disk, video/framebuffer, basically things that "work better" in the kernel especially things that are needed between lilo and module loading.
 
Old 08-22-2006, 02:19 PM   #5
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 5,194

Rep: Reputation: Disabled
Quote:
All went well during the compile but when I boot, I get the error mentioned in the "initrd" section of the compile guide. I tried creating the initrd using:
mkinitrd -c -k 2.6.16.18 -m reiserfs
which reports: WARNING: Could not find module for "reiserfs"

I looked for the module in /usr/src/linux-2.6.17.7/fs (this is the path for the /usr/src/linux link.) and found it. Not sure why it wasn't found.
The kernel that you intend to use must match it's version with the value after the -k parameter to mkinitrd. The "-k 2.6.16.18" basically tells mkinitrd to go look for the requested modules in /lib/modules/2.6.16.18/.

Eric
 
Old 08-23-2006, 09:04 PM   #6
gmartin
Member
 
Registered: Mar 2003
Location: PA
Distribution: Slackware 13.37 Linux Reg # 341245
Posts: 285

Original Poster
Rep: Reputation: 40
Thanks for the info. I suspect the .18 was a typo. I was able to identify the correct sata driver and it loads just fine now as part of the kernel.

Thanks to all
 
Old 09-09-2006, 09:34 PM   #7
hottdogg
Member
 
Registered: Aug 2004
Location: aisenodni
Distribution: slackware 64bit ,debian 64bit
Posts: 202

Rep: Reputation: 30
qmartin, may I know what intel SATA drivers that you include in the kernel 2.6 config?
or maybe post your .config that related to harddisk maybe...
I think I have similiar problem with yours. (my case: slack 10.2 from 2.4.31 to 2.6.17.8)

Sort of like this:
Please append a correct "root=" boot option
Kernel Panic-not syncing: VFS: unable to mount root fs on unknown block

[btw,how on earth you can extract dmesg content if you can't login?]

Just FYI:
1) I've followed advice from Recompile Kernel 2.4 -> 2.6 [kernel panic] --> solved!
my root partition is /dev/hda4, So, I point to it for suspend thing.

2)I configured reiserfs support to include IN kernel. NOT module. So i dont need mkinitrd I suppose.
And I use ext3 fs.

But, both of 'em still don't solve my kernel panic problem.

-EDIT-
This problem is in an NEC pc in my office.Damn branded thing. Now, I have to find out what interface of the hdd this pc used. Whilst with my old generic kernel (bare.i), slackware detected my hdd as hda. So is my hdd SATA or ATA ?

Last edited by hottdogg; 09-09-2006 at 09:49 PM.
 
Old 09-10-2006, 01:15 AM   #8
hottdogg
Member
 
Registered: Aug 2004
Location: aisenodni
Distribution: slackware 64bit ,debian 64bit
Posts: 202

Rep: Reputation: 30
Wow! finally I can run kernel 2.6.17.8. Now I just have to config sound.

My problem is solved.It seems that my office pc is using intel sata controller for the sata maxtor hdd.
Here's what I've done:
1)I include (Yes) intel SATA controller in kernel config. Previously it was act as module.
2) the default for suspend thing changed to /dev/sda4.

I don't where's intel sata entry in .config .But, here's snippet of my kernel 2.6 .config:
Code:
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
CONFIG_SCSI_SATA=y
CONFIG_SCSI_SATA_AHCI=y
# CONFIG_SCSI_SATA_SVW is not set
CONFIG_SCSI_ATA_PIIX=y
# CONFIG_SCSI_SATA_MV is not set
# CONFIG_SCSI_SATA_NV is not set
# CONFIG_SCSI_PDC_ADMA is not set
# CONFIG_SCSI_SATA_QSTOR is not set
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SIL is not set
# CONFIG_SCSI_SATA_SIL24 is not set
# CONFIG_SCSI_SATA_SIS is not set
# CONFIG_SCSI_SATA_ULI is not set
CONFIG_SCSI_SATA_VIA=y
# CONFIG_SCSI_SATA_VITESSE is not set
CONFIG_SCSI_SATA_INTEL_COMBINED=y
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
CONFIG_SCSI_DEBUG=m
Steps After compiling and after copy stuff to /boot:

1)I restart, go to bios and choose [Enhanced] instead of [legacy]/[disabled] for drive configuration thing.(I forgot what's the entry...).

2)boot slack cd
3)boot sata.i
4)look for entry sda in dmesg
4) mount /mnt/point /dev/sda4
5)edit fstab. Changed any harddrive device(hdaX) to sdaX.
6)edit /etc/lilo.conf so root partition point to sda4
7)run /mnt/point/sbin/lilo.conf -r /mnt/point/
8)restart
9)login to kernel 2.6.17.8
 
  


Reply

Tags
initrd, kernel, slackware


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
compiling kernel problem --- Kernel panic: unable to mount root fs ........ anthonymts123 Linux - General 5 07-31-2006 02:29 AM
Errors Compiling Kernel 2.6 on Slackware 10.2 - Old kernel headers required? Dave S. Slackware 8 03-04-2006 12:15 AM
Compiling kernel module for linux kernel 2.4 in 2.6 guam Linux - Software 0 01-13-2005 02:02 AM
Where Is Kernel Directory In Rh9(kernel 2.4.20-8), For Compiling HSP56 MR(pctel) Mode rudy3107 Linux - Software 1 07-25-2004 04:17 AM
Kernel compiling and module compiling tarballed Linux - General 1 12-22-2002 05:31 PM


All times are GMT -5. The time now is 08:43 PM.

Main Menu
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
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration