filteredbygentoo,
I'll quote your entire lspci -nnk because we may want to refer to it after its gone from the pastebin.
Code: Select all
00:00.0 Host bridge [0600]: Intel Corporation 3rd Gen Core processor DRAM Controller [8086:0154] (rev 09)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: ivb_uncore
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0151] (rev 09)
Kernel driver in use: pcieport
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
DeviceName: Onboard IGD
Subsystem: Dell Device [1028:0535]
Kernel modules: i915
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:16.0 Communication controller [0780]: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 [8086:1e3a] (rev 04)
Subsystem: Dell Device [1028:0535]
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) [8086:1502] (rev 04)
DeviceName: Onboard LAN
Subsystem: Dell Device [1028:0535]
Kernel driver in use: e1000e
Kernel modules: e1000e
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: ehci-pci
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 [8086:1e10] (rev c4)
Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 [8086:1e12] (rev c4)
Kernel driver in use: pcieport
00:1c.2 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 [8086:1e14] (rev c4)
Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4 [8086:1e16] (rev c4)
Kernel driver in use: pcieport
00:1c.5 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 6 [8086:1e1a] (rev c4)
Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: ehci-pci
00:1f.0 ISA bridge [0601]: Intel Corporation QM77 Express Chipset LPC Controller [8086:1e55] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich
00:1f.2 RAID bus controller [0104]: Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: ahci
Kernel modules: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller [8086:1e22] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108GLM [NVS 5200M] [10de:0dfc] (rev a1)
Subsystem: Dell Device [1028:1535]
01:00.1 Audio device [0403]: NVIDIA Corporation GF108 High Definition Audio Controller [10de:0bea] (rev a1)
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
03:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] [8086:0082] (rev 34)
Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN [8086:1321]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
0c:00.0 SD Host controller [0805]: O2 Micro, Inc. OZ600FJ0/OZ900FJ0/OZ600FJS SD/MMC Card Reader Controller [1217:8221] (rev 05)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci
All those lowest lever hardware drivers listed there may as well be built into the kernel, with the exception of those that need firmware. The firmware must be available when the code is initalised. That means if the code is built in, the firmware must be too. When the code is a loadable module, the firmware is read from /lib/fimware. That makes life easier.
It looks like only iwlwifi is affected by firmware.
snd_hda_intel has a wart. It loads its CODECs when it is initalised, so snd_hda_intel and its codecs, which are all kernel options, all need to be set the same way, either <M> or <*>.
That's the easy bit. The lowest level things are identified there.
The kernel is designed as a number of software 'stacks'. A stack is like the layers of a cake. Its done this way fore ease of maintenance. The layers all have a consistent interface between them. The makes it easy to write a replacement for a layer or at the bottom, add a new hardware interface, as it has a well defined interface to the layer above.
Lets look at one device at the bottom (lowest level) on one such stack.
Code: Select all
00:1f.2 RAID bus controller [0104]: Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a] (rev 04)
Subsystem: Dell Device [1028:0535]
Kernel driver in use: ahci
Kernel modules: ahci
This is your HDD hardware controller. Its at the bottom of the SCSI stack in your system and its set as
That means it has to be in the initrd so it can be loaded before root is mouted as its needed to be able to see the HDD at all to be able to mount root.
Set it as <*> in menuconfig.
Now the rest of the SCSI stack above it.
Its on the
menu, that's already <*>
Code: Select all
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
Good. on SD is needed to boot. SR the the optical driver and SG is everything else that uses the SCSI protocol.
Good. That takes care of the SCSI stack but we are not done yet.
SCSI is a type of block device. Thare are others, so
is correct.
That lets the kernel read the HDD. Now it needs to understand what it finds there.
Code: Select all
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y
is enough for a PC.
The kernel needs to read the partition table on the drive that holds the root filesystem so it can locate the filesystem on the disk.
If you have followed the handbook you will have an ext4 root filesystem, so
Code: Select all
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
is correct.
should be off. Debug kernel options always lead to a lot of logspam. They are also permitted to interfere with normal operation of the kernel to help with debugging.
So all debug options should be off unless you understand what they do.
Oh, one or two debug options log keystrokes - including passwords, so they are a major security risk too.
Use the search in menuconfig to find and change those two options, then rebuild the kernel and initrd.
If you don't want to use an initrd, the kernel command line must not contain root=UUID=...