Troubleshooting CentOS5 on i586

$Id: ts.m4,v 1.9 2016/08/22 14:45:28 kabe Exp $


instant panic in amd_mcheck_init

When running on AMD K6-2, the kernel may panic instantly as

general protection fault: 0000 [#1]
...
Call Trace:
 [<c040cff2>] identify_cpu+0x256/0x27e
 [<c070b90f>] start_kernel+0x285/0x359
 =======================
Code: 00 58 5a c3 57 56 53 c7 05 74 91 69 c0 d6 fa 40 c0 8b 40 0c 84 c0 0f 89 82
 00 00 00 68 1e 3a 64 c0 e8 d8 65 01 00 b9 79 01 00 00 <0f> 32 f6 c4 01 89 c3 5e
 74 09 83 c8 ff b1 7b 89 c2 0f 30 0f b6
EIP: [<c040fa5f>] amd_mcheck_init+0x27/0x9c SS:ESP 0068:c0706fb8
 <0>Kernel panic - not synching: Fatal exception
 _

Cause:
MCE (Machine Check Exception) detection logic, which assumes AMD K7, doesn't play well on K6-2.
Resolution:
add nomce to kernel boot options.

AMD K6-2 (and K6-III) does have mce cpu flags, but actually non-Intel compatible and thus useless. nomce kernel option shouldn't hurt.


Intel i82557 based ethernet doesn't link up properly

Reason: unknown. This doesn't occur on newer i82559-based cards.

Workaround: use ethtool -s eth0 advertise 0x7 to drop 100baseTX/Full support. Now it should link with 100baseTX/half.

To make this change permanent, add line in /etc/sysconfig/network-scripts/ifcfg-eth0 as:

# 82557 seems to not properly work on 100baseTX/full; drop it
ETHTOOL_OPTS="advertise 0x7"


fast/slow clock

If the system clock tends to go too fast or too slow (especially for below ~300MHz CPUs), try adding

divider=10
to kernel options. This reduces timer interrupt load from HZ=1000Hz to legacy 100Hz.


Complaints about base_reachable_time on boot

Glitches you may encounter on CentOS 5.9 based kernel:

ip_conntrack version 2.4 (2047 buckets, 16376 max) - 228 bytes per conntrack
process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.sit0.base_reachable_time; Use net.ipv6.neigh.sit0.base_reachable_time_ms instead.

This is caused by "sysctl -a" in /etc/sysconfig/network-scripts/init.ipv6-global . Effectively harmless, as there is no "sysctl -w".

Will be fixed by updating to package procps-3.2.7-16.el5 (shipped with Red Hat/CentOS 5.5) or later, as in "procps bug fix and enhancement update"
cf. https://bugzilla.redhat.com/show_bug.cgi?id=152435


Trace dump on starting named

Starting named:You need to implement a remote task_setrlimit in your security module and call it directly from this functionWARNING: at security/security.c:51 security_ops_task_setrlimit()
 [] security_ops_task_setrlimit+0x6e/0x85
 [] do_prlimit+0xb6/0x18a
 [] sys_setrlimit+0x35/0x3e
 [] syscall_call+0x7/0xb
 =======================

This is considered harmless, which is just a reminder for kernel developers. No fix available (yet).
cf. Re: [rhelv5-list] RHEL5.9 kernel Call Trace under ESXi 5.1 http://www.redhat.com/archives/rhelv5-list/2013-January/msg00009.html


kernel.i586 on the media won't appear on "yum list"

The added kernel is not signed by the CentOS GPG key. So, taking the respun media and getting the media repository contents

	# yum list --enablerepo='c5-media'
would not list the added kernel.

You must "gpgcheck=0" for the repository. For instance, copy the media-nogpg.repo to /etc/yum.repos.d/, and use

	# yum list --enablerepo='media-nogpg'


Kernel panic after filesystem format during package installation

Symptom: Native installing using AMD K6-2. Kernel panics, after pressing installation start button and installer formats the partition. Panic seems to be occuring inside BUG_ON assert in end_buffer_async_write().

Workaround: Cause unknown. Try downclocking the FSB; seems to be a hardware timing issue. Using M II CPU also seems to work.


Firefox Illegal instruction

Symptom: on CentOS 5.10 and later, firefox won't run.

	% firefox
	Illegal instruction

Cause: Mozilla started to sneak in CMOV CPU instructions not available for i586 in .i386 binary, from firefox-24.2.0-1.el5.centos.i386.rpm .

Workaround: Downgrade to firefox-17.0.10-1.el5.centos.i386.rpm . This is the last version for true i386. Note: Most of your favorite plugins may not work.

Resolution: Replace the kernel with CMOV emulation. It will make the latest Firefox work, but in vastly degraded performance.

This is totally misleading; vendors should have relabelled the rpm to ".i686.rpm" .

zd1211rw based WiFi dongle doesn't work

Symptom: Zydas zd1211 based Wi-Fi client dongle (such as Buffalo WLI-UC-AG) doesn't work. dmesg says:

Aug 15 14:18:01 cygnus kernel: usb 1-5: Could not load firmware file zd1211/zd1211b_ub. Error number -2
Aug 15 14:18:01 cygnus kernel: zd1211rw 1-5:1.0: couldn't load firmware. Error number -2

Cause: zd1211rw.ko module needs /lib/firmware/zd1211/* files, but CentOS5 doesn't have zd1211-firmware package supplying it. RHEL5 has the zd1211-firmware-1.4-4.el5 in RHEL 5 Supplementary: https://rhn.redhat.com/errata/RHEA-2011-0021.html

Resolution: Install zd1211-firmware package.


zd1211rw based WiFi dongle doesn't work

Symptom: Zydas zd1211 based Wi-Fi client dongle (such as Buffalo WLI-UC-AG) fails to associate with the access point. /var/log/wpa_supplicant says:

Device eth1 kernel driver name: zd1211rw.
Trying to associate with ma:ca:dd:ro:fa:p0 (SSID='ssid_of_ap' freq=2452 MHz)
Authentication with ma:ca:dd:ro:fa:p0 timed out.
Failed to initiate AP scan.
Failed to initiate AP scan.
Failed to initiate AP scan.
Setup from system-config-netwrok-gui seems to be not working.

Cause: zd1211rw driver is quirky; it only succeeds to associate iff when following sequence is followed:

  1. Stop wpa_supplicant
  2. Insert dongle
  3. Start wpa_supplicant

Workaround: Don't use WiFi setup via DBus; hardcode it down in wpa_supplicant.conf .

  1. Hardcode the network={ } in /etc/wpa_supplicant/wpa_supplicant.conf
    ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=wheel
    
    network={
    	ssid="SSID_of_AccessPoint"
    	psk="a secret passphrase"
    }
    
  2. Change /etc/sysconfig/wpa_supplicant:
    INTERFACES="-w -i eth1"
    DRIVERS="-D wext"
    OTHER_ARGS="-t -u -f /var/log/wpa_supplicant.log"
    
  3. Create /etc/sysconfig/network-scripts/ifcfg-eth1 as TYPE=Ethernet (not Wireless)
    	DEVICE=eth1
    	BOOTPROTO=dhcp
    	HWADDR=00:MA:CA:DD:RE:SS
    	ONBOOT=no
    	USERCTL=yes
    	TYPE=Ethernet
    
  4. Stop wpa_supplicant
    # /etc/rc.d/init.d/wpa_supplicant stop
    
  5. (re-)Insert dongle
  6. Start wpa_supplicant
    # /etc/rc.d/init.d/wpa_supplicant start
    
  7. Check association by iwconfig eth1, or wpa_cli -i eth1 status
  8. Start DHCP by ifup eth1
You still cannot hot-replug the dongle; re-associaton fails. You have to unplug, stop wpa_supplicant, plug, start wpa_supplicant .


kabe.sra-tohoku.co.jp