Update 1 Release Notes Copyright (c) 2004 Red Hat, Inc. ---------------------------------------------------------------------- Introduction The following topics are covered in this document: o Changes to the Fermi Linux LTS installation program (Anaconda) o General information o Changes to drivers and hardware support o Changes to packages General Information This section contains general information not specific to any other section of this document. o The SCSI standard requires that all SCSI devices respond to Logical Unit Number (LUN) zero. Some SCSI devices fail when they are scanned for Logical Unit Numbers (LUNs) greater than zero. Other devices require that LUNs must be numbered sequentially. The Fermi Linux LTS 3.0.1 Update 1 kernel contains a list of devices that have been tested and shown to work correctly when scanned for non-zero LUNs, and non-sequential LUNs. Only devices on this list are scanned by default. This default behavior can be overridden on a system-wide basis by adding the following entry to the /etc/modules.conf file: options scsi_mod max_scsi_luns=255 After modifying modules.conf, it is necessary to rebuild the initial ramdisk file using the mkinitrd script. Refer to mkinitrd man page (using the command man mkinitrd) for more information about creating the initial ramdisk image. When this option is used, the LUN numbers on the device must be assigned sequentially, starting with zero. o Fermi Linux LTS 3.0.1 Update 1 includes support for Serial ATA (SATA) devices via the Intel ICH5 Serial ATA controller. This controller is found in many systems, including most of the latest Dell, HP, and IBM workstations. In order to ensure proper detection and operation of all storage devices, the system BIOS should be configured for "Enhanced mode" or "SATA-only mode." The "Legacy mode" and/or "Combined mode" settings should not be used. o Notes on Application Compatibility in Fermi Linux LTS 3.0.1 Update 1 The POSIX standard defines interfaces to lock files or parts of files to ensure that they are not concurrently changed by other programs. The fcntl() interface with the F_GETLK, F_SETLK, and F_SETLKW interfaces can be used for this purpose. The standard defines that attempts to lock an already locked file from another process must fail. Also part of POSIX is the lockf() interface, which serves the same purpose. Not in POSIX, but falling into the same category, is the flock() interface. The original kernel in the initial Fermi Linux LTS 3.0.1 release not only prevents locking of the file from other processes, it also prevents locking from other threads in the same process. This is not correct and does not correspond to the behavior in the 2.6 Linux kernel and correct POSIX semantics. The kernel update in Fermi Linux LTS 3.0.1 Update 1 introduces the correct behavior for programs using NPTL. There is no impact to programs that use LinuxThreads nor to programs that are not multi-threaded. A side effect of the original Fermi Linux LTS 3.0.1 kernel is that the l_pid field, which is part of the flock structure which is returned by a call to fcntl() with the F_GETLK command, contains a kernel-internal number of the thread. With the Fermi Linux LTS 3.0.1 Update 1 kernel, this field contains the process ID for all threads of the process. If a non-POSIX-compliant multi-threaded application uses the NPTL library (which is the default), and that application performs file locking with the fcntl() system call, it is possible that the application might not work as originally intended when the Fermi Linux LTS 3.0.1 Update 1 kernel is used. Fermi recommends that any such application be re-qualified on the updated kernel, and if a problem is encountered, one of the following courses of action should be taken: 1) Set the LD_ASSUME_KERNEL environment variable to "2.4.19" for the application process to prevent it from using the NPTL library. Note that if the application doesn't reset the LD_ASSUME_KERNEL environment variable, this setting is inherited by all child processes. 2) Modify the application so that it no longer expects behavior that is inconsistent with POSIX compliance. This will improve the program's overall portability. Fermi believes that few (if any) multi-threaded applications will be negatively impacted by the file locking fixes contained in the updated kernel. Similar problems exist with the kernel functionality that provides credentials for transport for Unix sockets and the System V message queues, semaphores, and shared memory. In the first case, calls such as: getsockopt (fd, SOL_SOCKET, SO_PEERCRED, &caller, &optlen) return information in the structure caller, which is of type struct ucred. This structure contains a field pid. In the original Fermi Linux LTS 3.0.1 kernel, this field was filled with a kernel-internal value representing the thread that sent the data. With Fermi Linux LTS 3.0.1 Update 1, the field correctly contains the process ID -- in other words, the same value for all threads in a process. The struct msqid_s type, defined in , which is used to get information about a System V message queue, contains the fields msg_lspid and msg_lrpid. Both fields previously contained a kernel-internal value, whereas now they correctly contain the PID of the process calling msgsnd() and msgrcv() respectively. When the GETPID command, defined in , is used with the semctl() function, the original Fermi Linux LTS 3.0.1 kernel returned a kernel-internal value. As of Fermi Linux LTS 3.0.1 Update 1, the returned value is the process ID. The struct shmid_s type, defined in , which is used to get information about a System V shared memory segment, contains the fields shm_lpid and shm_cpid. Both fields previously contained kernel-internal values; now they correctly contain the PID of the process performing the last operation, and creating the segment, respectively. Changes to Drivers and Hardware Support This update includes bug fixes for a number of drivers. The more significant driver updates are listed below. In some cases, the original driver has been preserved under a different name, and is available as a non-default alternative for organizations that wish to migrate their driver configuration to the latest versions at a later time. Note The migration to the latest drivers should be completed before the next Fermi Linux LTS 3.0.1 update is applied, because in most cases only one older-revision driver will be preserved for each update. IBM ServeRAID (ips driver) o The scsi/ips driver has been updated from 6.00.26 to 6.10.52 o The older driver has been preserved as addon/ips_60026 LSI Logic RAID (megaraid driver) o The scsi/megaraid driver has been updated from v1.18j to v1.18k o The scsi/megaraid2 driver has been updated from v2.00.5 to v2.00.9 C-Media PCI audio driver (cmpci driver) o The sound/cmpci driver has been updated from Revision 5.64 to 6.36 o The older driver has been preserved as addon/cmpci_564 Intel PRO/1000 (e1000 driver) o The e1000 driver has been updated from 5.1.11-k1 to 5.2.20-k1 Intel PRO/100 (e100 driver) o The e100 driver has been updated from 2.3.13-k1-1 to 2.3.30-k1 Changes to Packages This section contains listings of packages that have been updated or added from Fermi Linux LTS 3.0.1 as part of Update 1. Note These package lists include packages from all variants of Fermi Linux LTS 3.0.1 . Your system may not include every one of the packages listed here. The following packages have been updated from the original release of Fermi Linux LTS 3.0.1: o XFree86 o XFree86-100dpi-fonts o XFree86-75dpi-fonts o XFree86-ISO8859-14-100dpi-fonts o XFree86-ISO8859-14-75dpi-fonts o XFree86-ISO8859-15-100dpi-fonts o XFree86-ISO8859-15-75dpi-fonts o XFree86-ISO8859-2-100dpi-fonts o XFree86-ISO8859-2-75dpi-fonts o XFree86-ISO8859-9-100dpi-fonts o XFree86-ISO8859-9-75dpi-fonts o XFree86-Mesa-libGL o XFree86-Mesa-libGLU o XFree86-Xnest o XFree86-Xvfb o XFree86-base-fonts o XFree86-cyrillic-fonts o XFree86-devel o XFree86-doc o XFree86-font-utils o XFree86-libs o XFree86-libs-data o XFree86-sdk o XFree86-syriac-fonts o XFree86-tools o XFree86-truetype-fonts o XFree86-twm o XFree86-xauth o XFree86-xdm o XFree86-xfs o anaconda o anaconda-runtime o ant o ant-devel o ant-libs o clumanager o compat-gcc o compat-gcc-c++ o compat-gcc-g77 o compat-gcc-java o compat-gcc-objc o compat-libgcj o compat-libgcj-devel o compat-libstdc++ o compat-libstdc++-devel o cpp o devlabel o eclipse o ethereal o ethereal-gnome o freeradius o freeradius-mysql o freeradius-postgresql o freeradius-unixODBC o gcc o gcc-c++ o gcc-g77 o gcc-gnat o gcc-java o gcc-objc o gdb o glibc o glibc-common o glibc-debug o glibc-devel o glibc-headers o glibc-profile o glibc-utils o gnupg o hotplug o httpd o httpd-devel o hwdata o initscripts o iproute o kdegames o kdegames-devel o kernel o kernel-BOOT o kernel-doc o kernel-hugemem o kernel-hugemem-unsupported o kernel-smp o kernel-smp-unsupported o kernel-source o kernel-unsupported o kernel-utils o kinput2-canna-wnn6 o kudzu o kudzu-devel o libf2c o libgcc o libgcj o libgcj-devel o libgnat o libobjc o libstdc++ o libstdc++-devel o mdadm o mod_jk2 o mod_ssl o mod_webapp o modutils o modutils-devel o net-snmp o net-snmp-devel o net-snmp-perl o net-snmp-utils o netdump o netdump-server o nptl-devel o nscd o nss_ldap o openssl o openssl-devel o openssl-perl o oprofile o oprofile-devel o pstack o quagga o quagga-contrib o quagga-devel o redhat-config-cluster o redhat-config-kickstart o redhat-config-network o redhat-config-network-tui o redhat-config-packages o redhat-config-xfree86 o rh-postgresql o rh-postgresql-contrib o rh-postgresql-devel o rh-postgresql-docs o rh-postgresql-jdbc o rh-postgresql-libs o rh-postgresql-pl o rh-postgresql-python o rh-postgresql-server o rh-postgresql-tcl o rh-postgresql-test o rsync o shadow-utils o strace o struts o tomcat o tomcat-devel o tomcat-libs o up2date o up2date-gnome o ypbind The following new packages have been added to Fermi Linux LTS 3.0.1 Update 1: o jaf o jaf-devel o javamail o javamail-devel o jonas o jonas-examples o junit o junit-devel o mysql-jdbc o mysql-jdbc-tomcat o rh-cs-es o struts-webapps o tomcat-test ( x86 )