From Fedora Project Wiki

This section contains the most elemental components of Fedora Core, including the kernel.

e2fsprogs

The ext2online utility has been added for online growing of existing ext3 file systems.

Note

It is important to keep in mind that ext2online does not grow the underlying block device itself -- there must be sufficient unused space already present on the device. The easiest way to ensure this is to use LVM volumes and to run lvresize or lvextend to extend the device.

In addition, file systems must be specially prepared in order to be resized past a certain point. The preparation involves reserving a small amount of space into which on-disk tables can grow. For newly-created file systems, mke2fs reserves such space automatically; the space reserved is sufficient to grow the file system by a factor of 1000. The creation of this reserved space can be disabled by the following command:

mke2fs -O ^resize_inode

Future releases of Fedora Core will allow the creation of this reserved space on existing file systems.

glibc

  • The version of glibc provided with Fedora Core 4test1 performs additional internal sanity checks to prevent and detect data corruption as early as possible. By default, should corruption be detected, a message similar to the following will be displayed on standard error (or logged via syslog if stderr is not open):

*** glibc detected *** double free or corruption: 0x0937d008 ***

By default, the program that generated this error will also be killed; however, this (and whether or not an error message is generated) can be controlled via the MALLOC_CHECK_ environment variable. The following settings are supported:

  • 0 - Do not generate an error message, and do not kill the program
  • 1 - Generate an error message, but do not kill the program
  • 2 - Do not generate an error message, but kill the program
  • 3 - Generate an error message and kill the program

Note

If MALLOC_CHECK_ is explicitly set a value other than 0, this causes glibc to perform more tests that are more extensive than the default, and may impact performance.

Should you have a program from a third party ISV that triggers these corruption checks and displays a message, you should file a defect report with the application's vendor, since this indicates a serious bug.

hotplug

The location where hotplug expects firmware to be loaded into (for example, firmware for Cardbus cards) has changed from /usr/lib/hotplug/firmware to /lib/firmware. Existing firmware files must be moved into the new directory.

kernel

  • In the past, the process of updating the kernel did not change the default kernel in the system's boot loader configuration.

Fedora Core 4test1 changes this behavior to set newly-installed kernels as the default. This behavior applies to all installation methods (including rpm -i).

This behavior is controlled by two lines in the /etc/sysconfig/kernel file:

  • UPGRADEDEFAULT - Controls whether new kernels will be booted by default (default value: yes)
  • DEFAULTKERNEL - kernel RPMs whose names match this value will be booted by default (default value: depends on hardware configuration)
  • In order to eliminate the redundancy inherent in providing a separate package for the kernel source code when that source code already exists in the kernel's .src.rpm file, Fedora Core 4test1 no longer includes the kernel-source package. Users that require access to the kernel sources can find them in the kernel .src.rpm file. To create an exploded source tree from this file, perform the following steps (note that <version> refers to the version specification for your currently-running kernel):

1. Obtain the kernel-<version>.src.rpm file from one of the following sources:

  • The SRPMS directory on the appropriate "SRPMS" CD iso image
  • The FTP site where you got the kernel package
  • By running the following command:

up2date --get-source kernel

2. Install kernel-<version>.src.rpm (given the default RPM configuration, the files this package contains will be written to /usr/src/redhat/)

3. Change directory to /usr/src/redhat/SPECS/, and issue the following command:

rpmbuild -bp --target=<arch> kernel.spec

(Where <arch> is the desired target architecture.)

On a default RPM configuration, the kernel tree will be located in /usr/src/redhat/BUILD/.

4. In resulting tree, the configurations for the specific kernels shipped in Fedora Core 4test1 are in the /configs/ directory. For example, the i686 SMP configuration file is named /configs/kernel-<version>-i686-smp.config. Issue the following command to place the desired configuration file in the proper place for building:

cp <desired-file> ./.config

5. Issue the following command:

make oldconfig

You can then proceed as usual.

Note

An exploded source tree is not required to build kernel modules against the currently in-use kernel.

For example, to build the foo.ko module, create the following file (named Makefile) in the directory containing the foo.c file:

obj-m    := foo.o

KDIR    := /lib/modules/$(shell uname -r)/build
PWD    := $(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

Issue the make command to build the foo.ko module.

  • I,,2,,O SCSI RAID adapters from manufacturers such as Adaptec now use the i2o_block driver, rather than the dpt_i2o driver used by Fedora Core 1 and earlier distributions.

Be aware that block devices used by the i2o_block driver are /dev/i2o/hd* rather than the /dev/sd* SCSI devices. This may be problematic for those upgrading from older distributions that used the dpt_i2o driver. Therefore, after an upgrade to Fedora Core 4test1, you may need to boot using a rescue disk and edit your /etc/fstab file to use the new devices.

For more information about the new I,,2,,O device layer and Fedora Core-specific notes, visit the I,,2,,O homepage:

http://i2o.shadowconnect.com/