Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-19 Thread frares

Em 18/08/2011 23:27, Mark Knecht markkne...@gmail.com escreveu:

On Thu, Aug 18, 2011 at 11:59 AM, fra...@gmail.com wrote:
 Hi, guys

 It is a shame, I know, but after several years using Gentoo, it is the  
first

 time I try to build a kernel without genkernel.

 And now I can't boot to that new kernel, it does not find (and really  
do not
 have a) /dev/sda* root partition (real-root); during the boot it  
stops,
 complaining about that, gives me the option to get a shell, from which  
I am

 able to see that there is no /dev/sda* .

 I have included everything SATA, so it looks like that is not a kernel
 problem, but a initramfs issue, I guess.

 What am I missing?

 Thanks a lot
 Francisco

 PS: my boot partition is sda2, sda3 is a swap partition, and everything
 else is in sda4. sda1 is not used (up to now) and this is my grub.conf :

 title Gentoo Linux 2.6.39-gentoo-r3
 root (hd0,1)
 kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro root=/dev/ram0
 init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32
 nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1
 initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3



Maybe I'm missing the obvious here but have you taken a copy of
whatever config file was used/generated by genkernel and used that as
a jumping off point for building your own kernel. kernel's a kernel's
a kernel. What it is capable of doing is in the .config file. If
genkernel doesn't give you a .config file - I've never used genkernel
so I don't know what it does - then assuming you have the feature
turned on you can get the running config using zcat /proc/config.gz.
Save that to a new .config file, put it in the kernel source directory
and you should be good to go.



You can also use zcat /proc/config.gz on the install CD kernel if yuo
boot from that. Save it to a disk and use it as the basis for creating
your own config.



HTH,
Mark




That's what I am doing right now. I am using genkernel to have something to  
boot on. Then I will try to find a way to optimize another one.


Thanks
Francisco


Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-19 Thread frares

Em 19/08/2011 07:09, Mick michaelkintz...@gmail.com escreveu:

On Friday 19 Aug 2011 03:27:23 Mark Knecht wrote:
 On Thu, Aug 18, 2011 at 11:59 AM, fra...@gmail.com wrote:
  Hi, guys
 
  It is a shame, I know, but after several years using Gentoo, it is the
  first time I try to build a kernel without genkernel.
 
  And now I can't boot to that new kernel, it does not find (and really  
do

  not have a) /dev/sda* root partition (real-root); during the boot it
  stops, complaining about that, gives me the option to get a shell,  
from

  which I am able to see that there is no /dev/sda* .
 
  I have included everything SATA, so it looks like that is not a kernel
  problem, but a initramfs issue, I guess.
 
  What am I missing?
 
  Thanks a lot
  Francisco
 
  PS: my boot partition is sda2, sda3 is a swap partition, and  
everything
  else is in sda4. sda1 is not used (up to now) and this is my  
grub.conf :

 
  title Gentoo Linux 2.6.39-gentoo-r3
  root (hd0,1)
  kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro  
root=/dev/ram0

  init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32
  nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1
  initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3

 Maybe I'm missing the obvious here but have you taken a copy of
 whatever config file was used/generated by genkernel and used that as
 a jumping off point for building your own kernel. kernel's a kernel's
 a kernel. What it is capable of doing is in the .config file. If
 genkernel doesn't give you a .config file - I've never used genkernel
 so I don't know what it does - then assuming you have the feature
 turned on you can get the running config using zcat /proc/config.gz.
 Save that to a new .config file, put it in the kernel source directory
 and you should be good to go.

 You can also use zcat /proc/config.gz on the install CD kernel if yuo
 boot from that. Save it to a disk and use it as the basis for creating
 your own config.


If you no longer use genkernel it is likely that you do not need an  
initram.
Build chipset and fs modules into the kernel. Other drivers you can  
choose if

you want to build as modules.



--
Regards,
Mick



I the case I don't need a initram, I guess that the grub line for parameter  
passing to the kernel would be empty. Am I wrong?


I was just looking on how to build my own initram. What is it supposed to  
do anyway?


Thanks
Francisco


Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-19 Thread Gregory Woodbury
On Fri, Aug 19, 2011 at 9:12 AM, fra...@gmail.com wrote:

 Em 19/08/2011 07:09, Mick michaelkintz...@gmail.com escreveu:
  On Friday 19 Aug 2011 03:27:23 Mark Knecht wrote:

   On Thu, Aug 18, 2011 at 11:59 AM,  fra...@gmail.com wrote:
Hi, guys
   
It is a shame, I know, but after several years using Gentoo, it is
 the
first time I try to build a kernel without genkernel.
   
And now I can't boot to that new kernel, it does not find (and really
 do
not have a) /dev/sda* root partition (real-root); during the boot
 it
stops, complaining about that, gives me the option to get a shell,
 from
which I am able to see that there is no /dev/sda* .
   
I have included everything SATA, so it looks like that is not a
 kernel
problem, but a initramfs issue, I guess.
   
What am I missing?
   
Thanks a lot
Francisco
   
P.S.: my boot partition is sda2, sda3 is a swap partition, and
 everything
else is in sda4. sda1 is not used (up to now) and this is my
 grub.conf :
   
title Gentoo Linux 2.6.39-gentoo-r3
root (hd0,1)
kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro
 root=/dev/ram0
init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32
nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1
initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3
  
   Maybe I'm missing the obvious here but have you taken a copy of
   whatever config file was used/generated by genkernel and used that as
   a jumping off point for building your own kernel. kernel's a kernel's
   a kernel. What it is capable of doing is in the .config file. If
   genkernel doesn't give you a .config file - I've never used genkernel
   so I don't know what it does - then assuming you have the feature
   turned on you can get the running config using zcat /proc/config.gz.
   Save that to a new .config file, put it in the kernel source directory
   and you should be good to go.
  
   You can also use zcat /proc/config.gz on the install CD kernel if yuo
   boot from that. Save it to a disk and use it as the basis for creating
   your own config.
 
  If you no longer use genkernel it is likely that you do not need an
 initram.
  Build chipset and fs modules into the kernel.  Other drivers you can
 choose if
  you want to build as modules.

 I the case I don't need a initram, I guess that the grub line for parameter
 passing to the kernel would be empty. Am I wrong?

 I was just looking on how to build my own initram. What is it supposed to
 do anyway?


The initramfs is a container for modules and stuff need to bring up the
system before the mounts of
/ and /boot.If all the drivers are built-in to the kernel (or at least
the minimum required drivers are built-in)
then the initramfs isn't necessary.

Passing parameters to the kernel is a different issue entirely.

My grub.conf line is:

kernel /vmlinuz-3.0.3-gentoo root=/dev/sda2
pata_it821x.noraid=1

with the pata_it821x driver built-in for the kenel to find a set of older
IDE drives on the IT8212 card I have installed.

IIRC the initramfs is built with the mkinitrd command.  I haven't had to use
it so I could be wrong.


Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-19 Thread frares

Em 19/08/2011 10:48, Alan McKinnon alan.mckin...@gmail.com escreveu:

On Fri 19 August 2011 13:12:25 fra...@gmail.com did opine thusly:



 I the case I don't need a initram, I guess that the grub line for
 parameter passing to the kernel would be empty. Am I wrong?



Yes.



Using or not using kernel parameters has nothing to do with whether
you use an initramfs or not.



It's the initrd line in grub you do not need.




 I was just looking on how to build my own initram. What is it
 supposed to do anyway?



First, it's initramfs (the previous incarnation was initrd). You
should use the correct name.



An initramfs is a filesystems image stored on disk in a place that
grub can find. It contains a kernel, essential drivers and other bits
and pieces. When booting, grub finds the image, bangs it into memory
and instructs the cpu to start executing at a known point.



Why is this useful?



For Gentoo it usually isn't (there are times when it is - see below).
Binary distros like Ubuntu and Fedora absolutely require this. These
distros do not know what hardware you have and what drivers you
require, so they supply drivers for everything. But Ubuntu cannot
possibly compile into the kernel every possible driver you might need
to boot as the list would be huge (every known floppy, CD, USB, every
known MFM, IDE, SATA, SCSI, netboot, Fibre and more driver for a
start), so what they do instead is probe the hardware at boot time,
find out what you have, and load the driver modules you DO need.



This is the problem. The kernel wants to load disk drivers so that it
can access the disk and continue booting. Where are the drivers? Well,
they are on the disk. Oops, circular problem.



The difficulty is not finding and loading drivers, it's how do you get
the disk driver off the disk before you have the disk driver in
memory? (think chicken and egg here).



An initramfs solves this nicely. Grub shoved a disk image into memory
when it booted. The kernel knows how to access it's memory it doesn't
need a driver for that. And now the files containing the needed
drivers are on a virtual disk *in memory*. The kernel loads them, and
can now access the real physical disks.



Lots more complicated stuff then happens, like getting rid of the
virtual filesystem from the initramfs and mounting the real filesystem
from disk at /, but that's beyond the scope of this mail.



Gentoo mostly doesn't need any of this because you do know your
hardware and can just compile your disk drivers into the kernel - this
is the very thing that Ubuntu cannot do.



Some Gentoo users still need an initramfs, such as booting off drives
in a RAID configuration. They need the RAID drivers first to read the
disks so use an initramfs to fix this little problem exactly as Ubunut
fixes their problem.



Make sense?



Completely! Thanks a lot.

So I guess that my problem is to find an appropriate pair of driver and  
hard disk operating mode.



--
alan dot mckinnon at gmail dot com



Thanks again
Francisco


Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-18 Thread frares

Em 18/08/2011 16:08, András Csányi sayusi.a...@gmail.com escreveu:

On 18 August 2011 18:59, fra...@gmail.com wrote:



 Hi, guys

 It is a shame, I know, but after several years using Gentoo, it is the  
first

 time I try to build a kernel without genkernel.

 And now I can't boot to that new kernel, it does not find (and really  
do not
 have a) /dev/sda* root partition (real-root); during the boot it  
stops,
 complaining about that, gives me the option to get a shell, from which  
I am

 able to see that there is no /dev/sda* .

 I have included everything SATA, so it looks like that is not a kernel
 problem, but a initramfs issue, I guess.

 What am I missing?




Why have you choose this way? I mean, non-genkernel way.




--
- -
-- Csanyi Andras (Sayusi Ando) -- http://sayusi.hu --
http://facebook.com/andras.csanyi
-- Trust in God and keep your gunpowder dry! - Cromwell




That's recommended in the new install manual:

http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?style=printablefull=1#book_part1_chap7

Look for item 7c. The alternative way is to use genkernel.

Francisco


Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-18 Thread frares

Em 18/08/2011 16:13, Michael Mol mike...@gmail.com escreveu:

On Thu, Aug 18, 2011 at 2:59 PM, fra...@gmail.com wrote:

 Hi, guys

 It is a shame, I know, but after several years using Gentoo, it is the  
first time I try to build a kernel without genkernel.


 And now I can't boot to that new kernel, it does not find (and really  
do not have a) /dev/sda* root partition (real-root); during the boot it  
stops, complaining about that, gives me the option to get a shell, from  
which I am able to see that there is no /dev/sda* .


 I have included everything SATA, so it looks like that is not a kernel  
problem, but a initramfs issue, I guess.



If you've got a SATA controller, no frills, then all you *really* need
is AHCI. Build that into your kernel if you're worried about having
the right modules in initramfs. You can break it out into a module
later if you like. Opinions differ as to how much stuff should be
broken into modules vs being built-in to the kernel. I tend to build
in everything absolutely needed for boot, myself. Some people build in
just about everything, and some people build in almost nothing.
There's no right way for every use case.



Also, check your BIOS to see if it's running your SATA controller in
some kind of IDE emulation mode. If it is, disable that. (Some
motherboards let you choose between IDE and RAID, where RAID is
AHCI mode. Others call IDE mode 'legacy', and still others might
actually call the AHCI mode 'AHCI')



Motherboards running SATA controllers in IDE emulation mode is an
incredibly common thing:



17:18 beh
17:18 hda1 turned into sda1
17:19 IRule: Turn SCSI-generic support, or did you
switch from legacy to AHCI in your BIOS?
17:20 shortcircuit: quiet, you



--



:wq



Thanks, gonna try it.

Francisco


Re: Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-18 Thread frares

Em 18/08/2011 16:17, fra...@gmail.com escreveu:

Em 18/08/2011 16:13, Michael Mol mike...@gmail.com escreveu:
 On Thu, Aug 18, 2011 at 2:59 PM, fra...@gmail.com wrote:
 
  Hi, guys
 
  It is a shame, I know, but after several years using Gentoo, it is  
the first time I try to build a kernel without genkernel.

 
  And now I can't boot to that new kernel, it does not find (and really  
do not have a) /dev/sda* root partition (real-root); during the boot it  
stops, complaining about that, gives me the option to get a shell, from  
which I am able to see that there is no /dev/sda* .

 
  I have included everything SATA, so it looks like that is not a  
kernel problem, but a initramfs issue, I guess.


 If you've got a SATA controller, no frills, then all you *really* need
 is AHCI. Build that into your kernel if you're worried about having
 the right modules in initramfs. You can break it out into a module
 later if you like. Opinions differ as to how much stuff should be
 broken into modules vs being built-in to the kernel. I tend to build
 in everything absolutely needed for boot, myself. Some people build in
 just about everything, and some people build in almost nothing.
 There's no right way for every use case.

 Also, check your BIOS to see if it's running your SATA controller in
 some kind of IDE emulation mode. If it is, disable that. (Some
 motherboards let you choose between IDE and RAID, where RAID is
 AHCI mode. Others call IDE mode 'legacy', and still others might
 actually call the AHCI mode 'AHCI')

 Motherboards running SATA controllers in IDE emulation mode is an
 incredibly common thing:

 17:18 beh
 17:18 hda1 turned into sda1
 17:19 IRule: Turn SCSI-generic support, or did you
 switch from legacy to AHCI in your BIOS?
 17:20 shortcircuit: quiet, you

 --

 :wq




Thanks, gonna try it.



Francisco


Forgot to say: I am able to boot the LiveCD and chroot to that partition.

Now checking the kernel configuration, there's only SATA_ACARD_AHCI set up  
as a module, everything else AHCI is included in the kernel.


Thanks anyway

Francisco


Re: Re: Re: [gentoo-user] /dev/sda* missing at boot

2011-08-18 Thread Michael Mol
On Thu, Aug 18, 2011 at 3:26 PM,  fra...@gmail.com wrote:
 Em 18/08/2011 16:17, fra...@gmail.com escreveu:

 Forgot to say: I am able to boot the LiveCD and chroot to that partition.

 Now checking the kernel configuration, there's only SATA_ACARD_AHCI set up
 as a module, everything else AHCI is included in the kernel.

Don't forget to check your BIOS. You might also consider enabling
SCSI-generic (disk), which would catch ide-emulated disks and put a
scsi interface around them in the kernel. (That'd be an emulation
layer on top of an emulation layer, though, so far less than ideal)

Finally, check that it's coming up as /dev/sda and not something
like /dev/sdb. The initial scrolling of kernel messages might tell
you what devices were detected and what names they were given.


-- 
:wq