Installing Gentoo on Dell Inspiron 1420
Note: This post is depreciated as the things had changed quite a lot since then. You can find the updated info from gentoo-wiki.com here.
Its been a while since my last post. Again busy with real life stuff. Things have started to settle down a bit, so I might have more time to spend on the blog. (hopefully)
This blog is about installing Gentoo on my new Dell Inspiron 1420, and meant to cover something else not mentioned in the Gentoo handbook. It seems the Gentoo documentation is not so complete and slightly outdated, so it leaves to us the user to close up the gap. 🙂
Before you start
Did anyone mentioned that the latest LiveCD on Gentoo website is 1 year old now? 🙂 This is why it doesnt support some of the hardware found in my shiny new laptop. Neither Intel Corporation PRO/Wireless 3945ABG (ipw3945) nor Broadcom NetLink Fast Ethernet Controller (BCM5906M) is supported, this means we do not have any access to the Internet ! We will need an alternative Gentoo-based LiveCD to install Gentoo. In this guide, I used iloog (http://www.ilug.gr/iloog/) as an example. Download the iso and burn it.
Time to install
I will point you to various sites for you to reference with. Its always helpful to know more about your hardware before you start. Another note, do not stress yourself with the long (and very possibly annoying) installation. Gentoo is not designed to work out of the box, and the documentation is not centralized. (so to say) Bits of useful information is only found using google here and there. You have been warned. 🙂
The official Gentoo installation guide is found here. Id suggest you to read through before you start so you can get a rough idea of the whole installation process. Also, info about Dell MediaDirect, Restore and other utility is found here and here. You might want to read through before you start partitioning your drive and messing up stuff. 😛
Proceed with the installation until the mirrorselect part. iloog doesnt have mirrorselect installed, so we have to emerge it manually. Skip that part and proceed with chroot-ing. After you chroot-ed to your new Gentoo, synchronize your portage tree, emerge mirrorselect and go back to the mirrorselect part.
~ $ emerge --sync ~ $ emerge mirrorselect ... # proceed with the mirror select configuration
Configure your kernel (and hope it works)
Time to get to know your laptop well. This will *definitely* help when it comes to kernel configuration.
Now we will list out our processor attributes. Important entries are highlighted.
~ $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Duo CPU T5450 @ 1.66GHz stepping : 13 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm bogomips : 3327.07 clflush size : 64 processor : 1 vendor_id : GenuineIntel ... # duplicated entry ~ $
The same entry is duplicated twice because we have 2 cores. Its a Intel Core 2 Duo T5450 with clock speed 1.66GHz and supports MTRR (Memory Type Range Register), ACPI (Advanced Configuration and Power Interface), MMX, SSE, SSE2 and SSSE3. No hardware virtualization support though. 😦
Emerge pciutils and run lspci to list all your hardware connected to PCI bus.
~ $ emerge pciutils ~ $ lspci 00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 0c) 00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c) 00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 02) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02) 00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 02) 00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) 00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 02) 00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02) 03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05) 03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22) 03:01.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12) 03:01.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 12) 09:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02) 0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02) ~ $
We can see that our laptop (in specified order) is powered by Intel 82801H (ICH8) chipset and equipped with Intel GMA965M Graphics Card (aka Intel Graphics Media Accelerator X3100), USB 2.0, Intel HD audio controller, PCI Express, SATA AHCI controller, FireWire (IEEE1394), Ricoh memory card reader, Broadcom ethernet controller and Intel 3945abg wireless card. You can google up about your hardware (and I suggest you to do so) to know more about it.
Wait, what about Bluetooth and webcam? Okay both our device is connected to an internal USB hub (you will see when you rip open your laptop ;)) and therefore not listed in lspci. Now we need another tool to list USB devices.
~ $ emerge usbutils ~ $ lsusb -v | less Bus 002 Device 003: ID 05a9:2640 OmniVision Technologies, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x05a9 OmniVision Technologies, Inc. idProduct 0x2640 bcdDevice 1.00 iManufacturer 1 OmniVision Technologies, Inc. -2640-07.07.20.3 iProduct 2 Laptop Integrated Webcam iSerial 0 bNumConfigurations 1 ... # very long list ... Bus 003 Device 003: ID 413c:8126 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 224 Wireless bDeviceSubClass 1 Radio Frequency bDeviceProtocol 1 Bluetooth bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x8126 bcdDevice 1.00 iManufacturer 1 Broadcom Corp iProduct 2 BCM2045 iSerial 0 bNumConfigurations 1 ... # press q to quit ~ $
Found our missing Bluetooth and camera. 🙂 So we now listed most parts of our laptop, now we can configure our kernel accordingly. Proceed with Gentoo handbook.
This is the guidelines for your kernel configuration. Kernel used is version 2.6.24-gentoo-r3, options maybe different for older and newer kernels. If you find some options is missing, skip that and proceed to other options. Some options are dependent of another options and are hidden until its ticked. Go back to check if its available now.
Processor : Intel Core 2 Duo with MTRR and ACPI support
Processor type and features ---> [*] Symmetric multi-processing support Processor family (Core 2/newer Xeon) ---> (2) Maximum number of CPUs (2-255) [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support [*] Machine Check Exception [*] check for P4 thermal throttling interrupt. <*> Dell laptop support
Also check out Gentoo’s Intel Core 2 Duo guide
ACPI and Power Management
Power management options ---> [*] Power Management support [*] ACPI (Advanced Configuration and Power Interface) Support ---> CPU Frequency scaling ---> [*] CPU Frequency scaling *** CPUFreq processor drivers *** <*> ACPI Processor P-States driver
Refer to Gentoo wiki for more power saving kernel options.
ISA, PCI Express and ICH8H chipset
Bus options (PCI etc.) ---> [*] PCI support PCI access mode (MMConfig) ---> [*] PCI Express support [*] Message Signaled Interrupts (MSI and MSI-X) [*] Interrupts on hypertransport devices [*] ISA support Device Drivers ---> -*- I2C support ---> <*> I2C device interface I2C Algorithms ---> -*- I2C bit-banging interfaces I2C Hardware Bus support ---> <*> Intel 82801 (ICH)
Device Drivers ---> SCSI device support ---> -*- SCSI device support *** SCSI support type (disk, tape, CD-ROM) *** <*> SCSI disk support <*> SCSI CDROM support <*> Serial ATA (prod) and Parallel ATA (experimental) drivers ---> <*> AHCI SATA support <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
Device Drivers ---> [*] Network device support ---> [*] Ethernet (1000 Mbit) ---> <*> Broadcom Tigon3 support
Device Drivers ---> Character devices ---> -*- Virtual terminal <*> Enhanced Real Time Clock Support Graphics support ---> -*- /dev/agpgart (AGP Support) ---> -*- Intel 440LX/BX/GX, I8xx and E7x05 chipset support <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) ---> <*> Support for frame buffer devices ---> -*- Enable Video Mode Handling Helpers *** Frame buffer hardware drivers *** <*> Userspace VESA VGA graphics support # for uvesafb <*> Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL) [*] DDC/I2C for Intel framebuffer support
You can follow this guide for its sound and USB kernel config.
Device Drivers ---> Sound ---> <*> Sound card support Advanced Linux Sound Architecture ---> <M> Advanced Linux Sound Architecture <M> Sequencer support PCI devices ---> <M> Intel HD Audio [*] Enable generic HD-audio codec parser [*] Aggressive power-saving on HD-audio (1) Default time-out for HD-audio power-save mode <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller [*] AC97 Power-Saving Mode (1) Default time-out for AC97 power-save mode
In /etc/make.conf, tell ALSA we are using Intel HD Audio driver.
Follow the Gentoo ALSA guide to setup your sound card.
You can follow this guide for its bluetooth kernel config.
MMC/SD/MSPro Card Reader
I havent tested. You can refer to guide here
Laptop Intergrated Camera
I would suggest you stick to ipw3945 unless you have a good reason to switch to iwl3945, its very buggy currently.
Proceed with Gentoo handbook. If everything goes well, you should end up in your new Gentoo with login prompt. If not, check out the troubleshooting section.
kernel panic – not syncing :VFS: unable to mount root fs on unknown block (0,0)
If you are getting this message, it could be 2 causes. It could be due to /dev not populated with devices. This is a bug I think, because after I gave the root maintance password and run the following command it gives this wierd output.
~ $ ls /dev ~ $
Scroll up the console and you should find something about udev error. If thats the case, reboot with LiveCD and proceed with chroot.
~ $ mkdir /mnt/gentoo ~ $ mount /dev/sda3 /mnt/gentoo ~ $ mount /dev/sda1 /mnt/gentoo/boot ~ $ mount -t proc none /mnt/gentoo/proc ~ $ mount -o bind /dev /mnt/gentoo/dev ~ $ chroot /mnt/gentoo /bin/bash ~ $ env-update && source /etc/profile >> Regenerating /etc/ld.so.cache... ~ $ export PS1="(chroot) $PS1"
Now follow this guide to emerge udev.
Reboot. Everything should be working now.
If its still not working, reboot into LiveCD, do the chroot-ing and check your kernel config. You might be missing some important hard disk controller (note: SATA is SCSI) or filesystem support. All filesystem support must be compiled-in and cannot be compiled as modules. Reboot and recheck. If its not, proceed with the vicious cycle. 😉 Good luck.
More configuration !
Finish everything in Gentoo handbook before you continue with system configuration. Most of these configuration is covered in other guides.
CFLAGS and USE flags
Although you included supports for your shiny new harware features, the packages wont be using them unless you tell them to. In /etc/make.conf, include these flags.
VIDEO_CARDS="i810" ALSA_CARDS="hda-intel" USE=" xcomposite dell wifi mmap dvdr bluetooth ipw3945 ieee1394 usb mmx sse sse2 ssse3 pae "
DO NOT use the CFLAGS, FFLAGS and LDFLAGS flags found in the Intel G33, Q35 and Q35 Chipsets guide, this will cause problems when compiling certain packages. Just stick to the “vanilla” CFLAGS.
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer -msse3"
Power Saving/Power Management / CPU Frequency Scaling
In /etc/X11/xorg.conf, remove Option “PageFlip” “true”. Its not working on my laptop for some reasons.
Use uvesafb instead of vesafb/i810fb. They dont work on my laptop either.
That is all. I guess you would be very tired of reading, tweaking and compiling now. Welcome to Gentoo. 🙂 I have spent a week trying to get Gentoo working, and still tweaking here and there to get the most out of it. I will update when I found some interesting tweaks and fixes. For now, let me get some rest lol.