If you ever have configured a kernel for the target system, you should copy its kernel config to /usr/src/linux/.config. That way, you won't have to go through all the options again to configure it, and you only have to set up the bit about video4linux.
Alternatively, you can download my kernel configuration, and adapt the various kernel options to match your hardware and suit your needs.
To start configuring the kernel:
# cd /usr/src/linux # make menuconfig
This will start up the semi-graphical menu, which will allow you to set up the various kernel components and options.
Aside of enabling the options mentioned in the Gentoo Handbook (Configuring the Kernel), be sure to have the following:
Under Loadable module support:
[*] Enable loadable module support [*] Module unloading [*] Forced module unloading [*] Module versioning support [*] Source checksum for all modules [*] Automatic kernel module loading
Under Processor type and features:
Subarchitecture Type (PC-compatible) ---> Processor family (AMD-Opteron/Athlon64) ---> [*] MTRR (Memory Type Range Register) support [*] Symmetric multi-processing support [ ] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support Preemption Model (Voluntary Kernel Preemption (Desktop)) ---> [*] Preempt The Big Kernel Lock Memory model (Flat Memory) ---> (2) Maximum number of CPUs (2-255) [*] Provide RTC interrupt Timer frequency (1000 HZ) --->
Under Power management options, CPU Frequency scaling:
[*] CPU Frequency scaling [*] Enable CPUfreq debugging <*> CPU frequency translation statistics [ ] CPU frequency translation statistics details Default CPUFreq governor (performance) ---> --- 'performance' governor <*> 'powersave' governor <*> 'userspace' governor for userspace frequency scaling <*> 'ondemand' cpufreq policy governor <*> 'conservative' cpufreq governor --- CPUFreq processor drivers <*> AMD Opteron/Athlon64 PowerNow!
Also, we keep the options in ACPI to their defaults, because they're okay that way (correct me if I'm wrong, though...)
Under Bus options (PCI etc.), enable PCI Express support, or you won't have proper video support.
If you're running 64bit, under Executable file formats / Emulations, be sure to have IA32 Emulation enabled to be able to run 32bit apps.
Next up are the Device Drivers.
Under Generic Driver Options, have these enabled:
[*] Select only drivers that don't need compile-time external firmware [*] Prevent firmware from being built <*> Userspace firmware loading support
Under ATA/ATAPI/MFM/RLL support, it's very important to have these settings like so:
[ ] Support for SATA (deprecated; conflicts with libata SATA driver)
For my system, I also enabled ATI IXP chipset IDE support.
SCSI support is required for external HDs, CD/DVD writing, etc. Even if you don't have all of this in your system (huh?), it generally still is a good idea.
< > RAID Transport Class --- SCSI device support < > SCSI target support [ ] legacy /proc/scsi/ support --- SCSI support type (disk, tape, CD-ROM) <*> SCSI disk support < > SCSI tape support < > SCSI OnStream SC-x0 tape support <*> SCSI CDROM support [ ] Enable vendor-specific extensions (for SCSI CDROM) <*> SCSI generic support < > SCSI media changer support --- Some SCSI devices (e.g. CD jukebox) support multiple LUNs [ ] Probe all LUNs on each SCSI device [ ] Verbose SCSI error reporting (kernel size +=12K) [ ] SCSI logging facility [ ] Asynchronous SCSI scanning
If you do not have specific SCSI, IDE-RAID/SATA-RAID (like 3ware/AMCC) hardware, you don't have to enable any of the SCSI low-level drivers.
Next in line is Serial ATA (prod) and Parallel ATA (experimental) drivers. Like the title says, we won't be using these drivers for PATA, but we will use them for SATA. In my case, I've enabled AHCI SATA support, which covers a whole lot of SATA chipsets.
For LVM, we also need to enable some options in Multi-device support (RAID and LVM):
[*] Multiple devices driver support (RAID and LVM) <*> Device mapper support
If you need Firewire support (e.g. for video cams or external HDs), enable these options in IEEE 1394 (FireWire) support for proper support:
<M> IEEE 1394 (FireWire) support --- Controllers <M> OHCI-1394 support --- Protocols <M> OHCI-1394 Video support <M> SBP-2 support (Harddisks etc.) <M> IP over 1394 <M> Raw IEEE1394 I/O support
I've built Firewire support as modules, because I don't use Firewire that much, and only load it when needed.
Alternatively, you could enable the alternative stack, though that's entirely up to you.
For now, we'll be skipping I2C support, because it's a requirement of V4L. More about that later.
Optionally is the Graphics support, which handles the frame buffer. For more information about its purpose and configuring it, visit http://gentoo-wiki.com/HOWTO_fbsplash.
Since we truly need Sound, we have to configure some things there. First of, enable Sound card support, then enter Advanced Linux Sound Architecture to configure some more stuff.
<M> Advanced Linux Sound Architecture <M> OSS Mixer API <M> OSS PCM (digital audio) API [*] OSS PCM (digital audio) API - Include plugin system < > RTC Timer support [*] Support old ALSA API
Additionally, select your sound card (or cards), from the sub menus. In my case, I've enabled Emu10k1 (SB Live!, Audigy, E-mu APS) and Intel HD Audio under PCI devices.
For USB input devices, we need to enable HID support in HID Devices:
--- Generic HID support --- USB Input Devices <*> USB Human Interface Device (full HID) support [*] /dev/hiddev raw HID device support
Naturally, we'll be needing USB support:
<*> Support for Host-side USB --- Miscellaneous USB options [*] USB device filesystem --- USB Host Controller Drivers <*> EHCI HCD (USB 2.0) support <*> OHCI HCD support <*> UHCI HCD (most Intel and VIA) support
With the above enabled, you should have full USB support (regardless of chipset). If you want to access external HDs across USB, enable USB Mass Storage support, along with SCSI support.
Enable file systems support in the File systems sub section. Of course, you're free to choose whatever you want, but (and again: of course), you have to have support for the file systems you're going to use. In my case I need at least reiser4, ext2 and xfs, aside of the various file systems for networking (smbfs, cifs, ...) and removable media (vfat, iso9660, udf, ...). Note that most of the modules are compiled as modules, which is perfectly possible. Just make sure the root partition file system module is built-in, because otherwise the partition would fail to mount and the system will not boot.
I've enabled these from the base table:
<*> Second extended fs support [*] Ext2 extended attributes [*] Ext2 POSIX Access Control Lists <M> Ext3 journalling file system support [*] Ext3 extended attributes [*] Ext3 POSIX Access Control Lists <M> Ext4dev/ext4 extended fs support development (EXPERIMENTAL) [*] Ext4dev extended attributes <*> Reiser4 (EXPERIMENTAL) <*> Reiserfs support [*] ReiserFS extended attributes [*] ReiserFS POSIX Access Control Lists <M> JFS filesystem support <M> XFS filesystem support <M> Minix fs support <M> ROM file system support [*] Inotify file change notification support [*] Inotify support for userspace <*> Kernel automounter version 4 support (also supports v3)
Additionally, for removable media and networking systems, I added these:
In CD-ROM/DVD Filesystems:
<M> ISO 9660 CDROM file system support [*] Microsoft Joliet CDROM extensions [*] Transparent decompression extension <M> UDF file system support
In DOS/FAT/NT Filesystems:
<M> MSDOS fs support <M> VFAT (Windows-95) fs support (437) Default codepage for FAT (iso8859-15) Default iocharset for FAT <M> NTFS file system support
In Network File Systems:
<M> NFS file system support [*] Provide NFSv3 client support <M> NFS server support [*] Provide NFSv3 server support [*] Provide NFS server over TCP support <M> SMB file system support (to mount Windows shares etc.) <M> CIFS support (advanced network filesystem for Samba, Window and other CIFS compl [*] Support legacy servers which use weaker LANMAN security [*] CIFS extended attributes
If you're running a dualboot Windows, enable the following in Partition Types:
[*] Advanced partition selection [*] PC BIOS (MSDOS partition tables) support [*] Windows Logical Disk Manager (Dynamic Disk) support
Don't forget to correct the NLS as well (in Native Language Support):
<*> Base native language support (iso8859-15) Default NLS Option <*> Codepage 437 (United States, Canada) <*> ASCII (United States) <*> NLS ISO 8859-1 (Latin 1; Western European Languages) <*> NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
Most of the V4L stuff, along with its dependencies, can be found in the Device Drivers sub section.
As said before, V4L requires I2C support, which has to be enabled at Device Drivers:
<M> I2C support --->
Notice the M. V4L, and moreover IVTV, requires I2C to be compiled as modules.
Inside I2C support, set these to
<M> I2C device interface
And under Miscellaneous I2C Chip support:
<M> EEPROM reader
IVTV driver
This is set up at Device Drivers, Multimedia devices:
<M> Video For Linux [*] Enable Video For Linux API 1 (DEPRECATED) --- Enable Video For Linux API 1 compatible Layer [*] Video capture adapters --->
Under Video capture adapters:
--- Video capture adapters [ ] Enable advanced debug functionality [ ] Autoselect pertinent encoders/decoders and other helper chips Encoders/decoders and other helper chips ---> <M> Virtual Video Driver <M> Conexant 2388x (bt878 successor) support <M> Conexant 2388x DMA audio support <M> Blackbird MPEG encoder support (cx2388x + cx23416) <M> Conexant cx23416/cx23415 MPEG encoder/decoder support < > Marvell 88ALP01 (Cafe) CMOS Camera Controller support
When enabling Conexant cx23416/cx23415 MPEG encoder/decoder support, various dependencies will be set under Encoders/decoders and other helper chips. Check to see whether they are like so:
--- Audio decoders --- Simple audio decoder chips < > Philips TDA7432 audio processor < > Philips TDA9840 audio processor < > Philips TDA9875 audio processor < > Philips TEA6415C audio processor < > Philips TEA6420 audio processor --- Micronas MSP34xx audio decoders --- Cirrus Logic CS53L32A audio ADC < > Texas Instruments TLV320AIC23B audio codec --- Wolfson Microelectronics WM8775 audio ADC with input mixer --- Wolfson Microelectronics WM8739 stereo audio ADC --- Video decoders < > BT819A VideoStream decoder < > BT856 VideoStream decoder < > BT866 VideoStream decoder < > KS0127 video decoder < > OmniVision OV7670 sensor support < > Philips SAA7110 video decoder < > Philips SAA7111 video decoder < > Philips SAA7114 video decoder --- Philips SAA7113/4/5 video decoders < > Philips SAA7191 video decoder < > Texas Instruments TVP5150 video decoder < > vpx3220a, vpx3216b & vpx3214c video decoders --- Video and audio decoders --- Conexant CX2584x audio/video decoders --- MPEG video encoders --- Conexant CX2341x MPEG encoders --- Video encoders --- Philips SAA7127/9 digital video encoders < > Philips SAA7185 video encoder < > Analog Devices ADV7170 video encoder < > Analog Devices ADV7175 video encoder --- Video improvement chips --- NEC Electronics uPD64031A Ghost Reduction --- NEC Electronics uPD64083 3-Dimensional Y/C separation
Other cards
Once completed, exit the menu, choosing to save changes, then start the compilation:
# make && make modules_install
To configure ALSA for Gentoo: read Gentoo Linux ALSA Guide.
« ‹ | December 2024 | › » | ||||
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |