Troubleshootings on Installing CentOS 6.x on non-PAE or i586 machine

Keywords: CentOS 6.x, Red Hat Enterprise Linux 6.x, RHEL6, Linux kernel, non-PAE, without PAE, i586, installation media respin, anaconda, AMD K6-2, VIA C3, CMOV emulation

$Id: ts.m4,v 1.21 2018/09/24 09:55:27 kabe Exp $


Troubleshooting


Needs pae

After initrd.img is loaded,
	This kernel requires the following features not present on the CPU:
	pae
	Unable to boot - please use a kernel appropriate for your CPU.

Cause: Booting from a stock install media shows that. You didn't replace the kernel package.


freeze with no screen

Specified vga=0x317 nomodeset as kernel option to get VESA 1024x768 fbcon screen. After loading initrd, the screen goes blank and seems to freeze.

Resolution: Try waiting for a couple of minutes. Try without vga= option, and see how long it takes to "Trying to extract rootfs".
Cause: You may not have any output until initial rootfs is extracted. Some console output resumes after that. This could take a long time on old hardware. Of course there is possibility that your VGA card can't handle VESA fbcon.


init dies

After pci probing, init is killed and kernel panics with do_invalid_op().

Kernel panic - not syncing: Attemted to kill init! Pid: 1, comm: init Tainted: G ---------------- H 2.6.32-431.el6.v4.i586 #1 Call Trace: [<c003f0bc>] ? panic+0x6e/0x122 [<c0457211>] ? do_exit+0x741/0x750 [<c045725c>] ? do_group_exit+0x3c/0xa0 [<c046948e>] ? get_signal_to_deliver+0x1ce/0x460 [<c04026d3>] ? do_signal+0x93/0xa40 [<c04689ab>] ? force_sig_info+0x7b/0xd0 [<c0401984>] ? sys_execve+0x34/0x60 [<c0841f38>] ? work_notifysig+0x13/0x1b [<c0404100>] ? do_invalid_op+0x0/0x90 [<c04030f7>] ? do_notify_resume+0x77/0xa0 [<c0841f38>] ? work_notifysig+0x13/0x1b

Cause: You are using a stock kernel lacking NOPL et al emulation, or didn't replace stock glibc.i686 with glibc.i586 .


soft lockup during unpack rootfs

Symptom: Native installing on Pentium 150MHz. During initial Trying to unpack rootfs image as initramfs..., it seems to panic by

pci 0000:00:14.2: PCI INT C disabled
Trying to unpack rootfs image as initramfs...
BUG: soft lockup - CPU#0 stuck for 64s! [swapper:1]
Modules linked in:
Modules linked in:

Pid: 1, comm: swapper Not tainted 2.6.32-642.1.1.el6.emu686.v27.i586 #1 System Manufacturer System Name/ALADDIN5
EIP: 0060:[] EFLAGS: 00000216 CPU: 0
...
 [] ? populate_rootfs+0x0/0x23d
 [] ? kernel_init+0x1e8/0x23e
 [] ? kernel_init+0x0/0x23e
 [] ? kernel_thread_helper+0x7/0x10
Disabling lock debugging due to kernel taint

Resolution: It's not a panic. The keyboard LEDs aren't blinking. Just wait for several more minutes.


Not enough memory

Anaconda complains:

--------------| Error |---------------
You do not have enough RAM to install
CentOS on this machine.
--------------------------------------

Cause: You need at least 384MB of RAM. This is hardcoded in anaconda loader/loader.c, so add RAM.

Ramdisk allocates 256MB, anaconda uses about 190MB, and semodule (during selinux package) and depmod (during kernel package) eats up about 200MB, so you want a little more than 512MB.

(It may be possible with less RAM if you recompiled anaconda to not check this, respin, and add swap on the background shell prompt)

Adding swap in background tty has no effect, as "scanning storage devices" (a heavy task) will swapoff any local swaps during scanning.


Not enough memory

Anaconda says

You do not have enough RAM to use the graphical installer.  Starting text mode.

Cause: You need at least 640MB of RAM for graphical install. This is hardcoded in anaconda as isys/isys.h:#define MIN_GUI_RAM 655360 // 640MB .

Resolution: Add RAM, or use VNC install mode by adding "vnc" to the kernel command line.


kernel panic when formatting filesystem

Symptom: After specifying partition and confirming write to disk, kernel panics during formatting ext4 filesystem as below.

------------[ cut here ]------------
kernel BUG at fs/buffer.c:396!
invalid operand: 0000 [#1] SMP 
last sysfs file: /sys/firmware/edd/int13_dev81/mbr_signature
Modules linked in: ext2 ext3 jbd ...

Pid: 1709, comm: mke2fs Not tainted 2.6.32-696.16.1.el6.emu686.v31.i586 #2 System Manufacturer System Name/ALADDIN5
EIP: 0060:[<c0565cf7>] EFLAGS: 00210246 CPU: 0
EIP is at end_buffer_async_write+0x127/0x140
EAX: 4000202c EBX: d8e9dc88 ECX: d8e9dc88 EDX: 00000001
ESI: 00007000 EDI: c344e3a0 EBP: 00000000 ESP: c259be30
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process mke2fs (pid: 1709, ti=c259a000 task=c2d22550 task.ti=c259a000)
Stack:
 d4320640 00200292 c3c06480 d4320648 00200086 c2d840b4 c2cf2b20 00000000
<0> f708dce0 cc118f20 991b58e1 cc118ea0 00007000 00001000 00000000 c05644bb
<0> 00000000 c0568512 c05f609d 00000000 c2c7ec00 c2d840b4 c2d84000 c2d85444
Call Trace:
 [<c05644bb>] ? end_bio_bh_io_sync+0x1b/0x40
 [<c0568512>] ? bio_endio+0x12/0x30
 [<c05f609d>] ? blk_update_request+0xed/0x480
 [<c05f6443>] ? blk_update_bidi_request+0x13/0x80
 [<c05f67b8>] ? blk_end_bidi_request+0x28/0x70
 [<c05f684f>] ? blk_end_request+0xf/0x20
 [<c06ec79c>] ? scsi_io_completion+0x9c/0x650
 [<c05fa95a>] ? blk_done_softirq+0x5a/0x70
 [<c0461686>] ? __do_softirq+0xa6/0x1f0
 [<c0408eda>] ? mask_and_ack_8259A+0x1a/0x100
 [<c04c108a>] ? handle_level_irq+0xaa/0xf0
 [<c046180d>] ? do_softirq+0x3d/0x50
 [<c0461965>] ? irq_exit+0x65/0x70
 [<c0406fb0>] ? do_IRQ+0x50/0xc0
 [<c0403850>] ? common_interrupt+0x30/0x40
Code: 89 44 24 04 c7 04 24 8c 04 9d c0 e8 85 a3 2f 00 eb b7 0f 0b eb fe f6 06 10 0f 84 30 ff ff ff f3 90 8d 76 00 eb f0 e8 29 43 ef ff <0f> 0b 8d b4 26 00 00 00 00 eb f7 0f 0b eb fe 8d 76 00 8d bc 27 
EIP: [<c0565cf7>] end_buffer_async_write+0x127/0x140 SS:ESP 0068:c259be30
---[ end trace ea8c0ee3b9ba07c6 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Pid: 1709, comm: mke2fs Tainted: G      D    -- ------------    2.6.32-696.16.1.el6.emu686.v31.i586 #2
...

Cause: Unknown.

Workaround: Try downclocking the FSB. Reducing 95*5=475MHz to 83*5.5=460MHz on K6-2 fixed this problem.


GRUB fails

At end of installation, GRUB fails to install.
grub shell fails with "Illegal instruction". Cannot boot.

Cause: You didn't replace grub.i686 package with grub.i586 . GRUB depends on libc.a, so you need a recompiled GRUB linked with glibc-static.i586.


Instant reset before GRUB menu

Running on i586. On boot, it instantly resets, before GRUB menu appears.

Cause: You didn't replace grub.i686 package with grub.i586 . GRUB runs outside the kernel, so instruction emulation kernel isn't effective.


sshd service doesn't start

After install, sshd service fails to start:

Generating SSH1 RSA host key: /etc/init.d/sshd: line 57:  1566 Illegal instruction
       (core dumped) $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' &>/dev/null
							   [FAILED]

Cause: You didn't replace openssl package with openssl.i586 one.


uptime/load average is weird

Running on i586. First line of top(1) says

top: 19:46:01 up -24855 days, -3:-14,  0 users, load average: -nan, -nan, -nan
although contents of /proc/uptime and /proc/loadavg seems sane.

Cause: kernel FCMOVcc opcode emulation code is wrong, which is used in /lib/libc.so (_IO_vfscanf).
Resolution: Replace the buggy kernel(which was never released anyway), and/or replace stock glibc.i686 with glibc.i586 .


Resets after initrd load

Running on i586 (AMD K6-2). It instantly resets after loading initrd and "Probing EDD" message.

Cause: Vanilla kernel-2.6.32 acts so. You'll need a patched kernel Makefile so that arch/x86/boot/compressed/misc.o is not compiled with CMOV opcodes.
Resolution: Use linux-2.6.37.6 kernel, or the alternate kernel.emu686 provided above.


anaconda killed with signal

Running GUI install with 640MB memory. anaconda randomly killed in unexpected places, but occasionally after some heavy workload.


formatting a filesystem seems to freeze/kernel panic

Running on i586. Specified to format a partition in partition editor. The formatting seems to take too long, or kernel panics.

Cause: Unknown. kernel-2.6.32-431, kernel-2.6.32.62 seems to have this problem.
Workaround: Do not specify in GUI partition editor to format the partition. Instead, boot into Rescue Mode first, then fdisk and mke2fs -t ext4 /dev/sdaXX manually.

Also check for proper CPU cooling, FSB downtuning.


Kernel panic in intel_cleanup_ring_buffer

Test running the kernel-2.6.32-573.el6 (CentOS 6.7/RHEL 6.7 kernel) on Intel integrated video. Having nomodeset kernel option. Booting will freeze at


[drm] Memory isable by graphics device = 128M [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [drm] No driver support for vblank timestamp query. [drm] Initialized i915 1.6.0 20140905 for 0000:00:02.0 on minor 0 dracut: Starting plymouth daemon
(and CapsLock/ScrollLock LED blinks, indicating panic)

or, panics as follows:


EIP: 0060:[<f8729d28>] EFLAGS: 00010246 CPU:1 EIP is at intel_cleanup_ring_buffer+0x18/0x120 [i915] EAX: 00000000 EBX: c1938c18 ECX: c1938000 EDX: 00000001 ESI: 00000000 EDI: c1900c34 EBP: c1900c00 ESP: c1947eec DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process plymouthd (pid: 140, ti=c1946000 task=f6ad9550 task.ti=c1946000) ... Kernel panic - not syncing: Fatal exception Pid: 140, comm: plymouthd Tainted: G D -- ------------ 2.6.32-573.el6.i686 #1 Call Trace: [<c086c3e7>] ? panic+0x6e/0x122 [<c0870fbc>] ? oops_end+0xbc/0xd0 [<c043d9c2>] ? no_context+0xc2/0x190 [<c043dc3b>] ? bad_area+0x3b/0x50 [<c043e105>] ? __do_page_fault+0x335/0x470 [<f854e501>] ? drm_ioctl+0x301/0x4c0 [drm] [<f854e150>] ? drm_version+0x0/0x80 [drm] [<c087288a>] ? do_page_fault+0x2a/0x90 [<c0870860>] ? do_page_fault+0x0/0x90 [<c0870317>] ? error_code+0x73/0x78 [<f870007b>] ? i915_display_info+0x5fb/0x610 [i915] [<f8729d28>] ? intel_cleanup_ring_buffer+0x18/0x121 [i915] [<f87750f1>] ? i915_dma_clanup+0x31/0x90 [i915] [<f854c412>] ? drm_lastclose+0x22/0x110 [drm] [<c054c777>] ? drm_release+0x277/0x430 [drm] [<c05403fc>] ? __fput+0xdc/0x1f0 [<c053be97>] ? filp_close*0x47/0x80 [<c05518c6>] ? sys_ioctl+0x76/0x90 [<c053bf37>] ? sys_close+0x67/0xb0 [<c086f9e4>] ? syscall_call+0x7/0xb

Cause: Bug in kernel-2.6.32-573.el6 . Needs a kernel patch.
Workaround: add i915.crash=0 kernel option to prevent i915.ko module to load. This is an invalid option; will make i915.ko module choke and unload.

You are not likely to encounter this, since i915 driver isn't for i586 CPU motherboards.


Screen garbled under Intel integrated video (i915.ko)

Symptom: Test running kernel-2.6.32-642 (CentOS 6.8) kernel on Intel integrated 865G video, using native resolution without nomodeset. Several lines at top of the text screen is blank/garbled.

[Sample screenshot of garbled 82865G]

sample of garbled text on 82865G

dmesg says:

[drm] stuck on render ring
[drm] GPU HANG: ecode 2:0:0x037fffc1, reason: Ring hung, action: reset
[drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
[drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
[drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
[drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
[drm] GPU crash dump saved to /sys/class/drm/card0/error
i915: render error detected, EIR: 0x00000010
[drm:i915_handle_error] *ERROR* EIR stuck: 0x00000010, masking
drm/i915: Resetting chip after gpu hang
[drm:i915_reset] *ERROR* Failed to reset chip: -19

Reason: Bug in i915.ko (drivers/gpu/drm/i915/) . RHEL 6.8 started to retrofit kernel 4.4 DRM code onto kernel 2.6.32; all bugs related to DRM on kernel 4.4 will also do on RHEL 6.8.

Resolution: Patch. Note that kernel 2.6.x is no longer maintained by kernel.org; upstream RHEL is responsible for DRM related bugs.

Workaround:

Or, you could try out Xen kernel, seperately maintained by CentOS, which follows LTS (Long Term Support) kernel more closely. Xen kernel does not have this problem, but beware of different SELinux policy.

You are not likely to encounter this, since i915 driver isn't for i586 CPU motherboards.


Warning only 895MB will be used.

Booting on machine with 1GB of memory, but boot dmesg shows
Warning only 895MB will be used.
Use a HIGHMEM enabled kernel.
...
895MB LOWMEM available.
Also, top(1) and /proc/meminfo only shows around 898MB of memory.

Cause: Kernel compiled with CONFIG_NOHIGHMEM option.
Resolution: Use a kernel compiled with CONFIG_HIGHMEM4G option.


WARNING kernel:Clocksource tsc unstable

Booting installer on i586 (K6-2). During media read, console is filled with

WARNING kernel:Clocksource tsc unstable (delta=267899879 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
WARNING kernel:Clocksource tsc unstable (delta=265898923 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
WARNING kernel:Clocksource tsc unstable (delta=264900203 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.

Cause: CPU cannot keep up with the jiffies timer interrupt.
Resolution:


Clocksource tsc unstable only on serial console

Symptom: Using a serial console. The console is constantly filled with message every second:

Clocksource tsc unstable (delta = 160025532 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
Clocksource tsc unstable (delta = 120023074 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
Clocksource tsc unstable (delta = 120022303 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
Clocksource tsc unstable (delta = 120022087 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
Clocksource tsc unstable (delta = 120021993 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.
Clocksource tsc unstable (delta = 120023102 ns).  Enable clocksource failover by adding clocksource_failover kernel parameter.

Workaround:


GUI installer warning, only installs .noarch packages

Native installing on i586. After package group selection, GUI installer issues weird warning like

V Details
lohit-kannnada-fonts-2.4.5-6.el6.noarch requires /bin/sh
crontabs-1.10-33.el6.noarch requires /etc/cron.d
rdma-6.7_3.15-5.el6.noarch requires chkconfig
cas-0.15-1.el6.1.noarch requires python-sqlite
xdg-utils-1.0.2-17.20091016cvs.el6.noarch requires /bin/sh
kernel-2.6.32-573.3.1.el6.emu686.v20.i586 requires grubbby >= 7.0.4-1
...

(left-hand-side is mostly .noarch, right-hand-side is binary packages)

Cause: You didn't replace the tweaked rpm and yum packages to allow .i686.rpm install on i586 host.


Screen resolution reset when using Matrox video card

Using a Matrox video card (such as G200). Text console resolution is reset to 80x30 regardess of vga=... nomodeset kernel option.

Cause: matroxfb_base module is read in by udev, which does not honor kernel options such as video=, vga=, nomodeset.

Resolution: Prepare /etc/modprobe.d/matrox.conf, or append to /etc/modprobe.d/blacklist.conf the following to prevent matroxfb from loading:

## /etc/modprobe.d/matrox.conf
# disable loading matroxfb by udev.
# udev scans /sys/**/modalias and loads driver by modprobe -b;
# "video=matroxfb:disabled" isn't honored by udev

blacklist matroxfb_base

If you want to explicitly set the resolution, you may say
#blacklist matroxfb_base
# 1024x768 
options matroxfb_base vesa=0x118 left=168
# 800x600
#options matroxfb_base vesa=0x115 upper=22 left=112 right=48 

See Documentation/fb/matroxfb.txt for options.

Note: matroxfb is not enabled on stock CentOS/RHEL kernel. Nor it is enabled in initrd in custom kernel, since it isn't drm (KMS) aware.
Note: VESA graphics console (vga=...) is very slow on older CPU, occasionaly causing "tsc unstable" log. Using matroxfb is recommended.

Legacy floppy drive not recognized

Having a legacy floppy drive (one that uses IRQ6). There's no /dev/fd0 and I cannot access the floppy.

Cause: floppy.ko module is never loaded by default. This is a feature.

Workaround: Try "modprobe floppy". This should create /dev/fd0 .

Resolution: If ACPI is recognizing the FDC:

# find /sys -name modalias | xargs grep PNP0700
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/device:02/PNP0A05:00/PNP0700:00/modalias:acpi:PNP0700:
If above command shows PNP0700 line, the ACPI is recognizing the FDC. So, add a modprobe alias in newly created file /etc/modprobe.d/floppy-pnp.conf:
# /etc/modprobe.d/floppy-pnp.conf
alias pnp:dPNP0700  floppy
alias acpi:PNP0700: floppy
On reboot, udev should load the floppy.ko module according to the sysfs modalias entry, after "dracut: Switching root".

Resolution: no ACPI, but ISA PNP is recognizing the FDC:

# find /sys -name id -type f | xargs grep PNP0700
/sys/devices/pnp0/00:07/id:PNP0700
If above command shows PNP0700 line, the PNP is recognizing the FDC. Add a new udev config file, as /etc/udev/rules.d/50-floppy-legacy.rules.
# /etc/udev/rules.d/50-floppy-legacy.rules
## floppy.ko does NOT have "pnp:dPNP0700" device alias signature,
## so have to load it manually
SUBSYSTEM=="pnp", ATTR{id}=="PNP0700", RUN+="/sbin/modprobe -b floppy"
On reboot, udev should load the floppy.ko module, after "dracut: Switching root".

Why floppy.ko lacks PNP0700 signature

Modern machines does report FDC existence as PNP0700, but often does NOT have actual FDD. This causes long delay when probing devices on installation, so RHEL (Fedora) decided not to support floppyies and purposedly dropped the device signature from floppy.ko driver. Their decision seems to be "those who need floppy, manually modprobe" .


ISA SoundBlaster AWE32 not recognized

Having ISA bus SoundBlaster AWE32 soundcard. No sound available; no /dev/snd/controlC0 device available.

Note: Stock CentOS/RHEL does NOT have ISA SoundBlaster drivers compiled.

Cause: snd_sbawe.ko module not loaded by default

Workaround: Invoke "modprobe snd_sbawe" manually. If this makes sound available (such that "aplay -D plughw /usr/share/sounds/alsa/Front_Center.wav" works), you would put "modprobe snd_sbawe" in /etc/rc.d/rc.local (invoked from /etc/rc.d/rc*.d/S99local) or /etc/sysconfig/modules/sbawe.modules (invoked from /etc/rc.d/rc.sysinit) .

Resolution: if ISA PNP is recognizing the card:

# find /sys -name id -type f | xargs grep CTL
/sys/devices/pnp1/01:01/01:01.00/id:CTL0041
/sys/devices/pnp1/01:01/01:01.01/id:CTL7002
/sys/devices/pnp1/01:01/01:01.02/id:CTL0021
If above command shows some lines, the PNP is recognizing the SoundBlaster card. Add a new udev config file, as /etc/udev/rules.d/80-drivers-pnp.rules.
# /etc/udev/rules.d/80-drivers-pnp.rules

## Load ISA PNP module drivers, which lacks "modalias" entries in /sys.
## The module must have "alias: pnp:dCTL0021" et al to be loaded
## by this rule.

SUBSYSTEM=="pnp", ATTR{id}=="?*", ENV{MODALIAS}!="?*", RUN+="/sbin/modprobe --use-blacklist pnp:d$attr{id}"
On reboot, or udev restart, udev should load the module according to the sysfs "id" entry. "modprobe pnp:dCTL0021" will load the snd_sbawe module, since /lib/modules/*/modules.aliases has "alias pnp:dCTL0021* snd_sbawe" line, coming from snd_sbawe.ko module's "alias: " line visible by "modinfo snd_sbawe".

pulseaudio is slow

On sub-GHz slow CPUs, pulseaudio tends to hog CPU cycles, making X server to stop. You would like to lower the priority of pulseaudio process as in /etc/pulse/daemon.conf:

; high-priority = yes
; nice-level = -11
nice-level = 3

Pulseaudio is slow and tends to studder, so you may want to disable "pulse" as a default ALSA output. Modify /etc/alsa/pulse-default.conf as:

#pcm.!default {
#    type pulse
#    hint {
#        description "Default"
#    }
#}
## make plughw the default
pcm.!default {
	@args [ SLAVE ]
	@args.SLAVE {
		type string
		default "hw" 
	}
	type plug
	slave.pcm $SLAVE
}
This still doesn't prevent GNOME from using pulseaudio "pulse" device as the default audio device.


System->Preferences->Sound freeze on ISA SoundBlaster16/AWE32

Symptom: With ISA SoundBlaster 16 (snd_sb16) or AWE32 (snd_sbawe) drivers loaded, System->Preferences->Sound (gnome-volume-control) freezes the entire system.
/var/log/messages is filled with:

Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Trying resume...
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-util.c: Device hw:0 doesn't support sample format u8, changed to s16le.
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Resume failed, couldn't restore original sample settings.
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Trying resume...
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-util.c: Device hw:0 doesn't support sample format u8, changed to s16le.
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Resume failed, couldn't restore original sample settings.
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Trying resume...
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-util.c: Device hw:0 doesn't support sample format u8, changed to s16le.
Jul 12 22:42:03 cygnus pulseaudio[1898]: alsa-source.c: Resume failed, couldn't restore original sample settings.

Cause: pulseaudio(1) fully assumes that soundcard can do full-duplex I/O, but ISA SoundBlaster 16 can only do half-duplex. pulseaudio gets confused and tries to restore the settings on "Resume", which will fail, resulting in infinite loop.

Workaround: Do not use the autoconfiguration of pulseaudio, instead configure things manually.

  1. Edit /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf:
     [General]
    -auto-profiles = yes
    +auto-profiles = no
    
    This will stop autoconfiguration of all input-output pair profiles.
  2. Recreate /etc/pulse/default.pa as:
    .nofail
    ## manually load the ALSA source/sink, not using udev
    load-module module-alsa-sink device=hw:0
    load-module module-alsa-source device=hw:0
    .fail
    
    ## make null sink always available
    load-module module-null-sink
    
    .ifexists module-esound-protocol-unix.so
    load-module module-esound-protocol-unix
    .endif
    load-module module-native-protocol-unix
    .ifexists module-gconf.so
    .nofail
    load-module module-gconf
    .fail
    .endif
    
    load-module module-default-device-restore
    load-module module-rescue-streams
    load-module module-always-sink
    load-module module-intended-roles
    load-module module-suspend-on-idle
    load-module module-console-kit
    load-module module-position-event-sounds
    load-module module-cork-music-on-phone
    
    ## set to half-duplex; source null, sink ALSA
    set-default-source null.monitor
    set-default-sink null
    .nofail
    set-default-sink alsa_output.hw_0
    .fail
    
    This will bind the pulseaudio source/sink into sink-only, thus half-duplex (output-only) on the SoundBlaster.
  3. Restart pulseaudio by pactl exit, to enable the new configuration and unload module-udev-detect. Under GNOME desktop, pulseaudio would restart automatically. If not, comment out "autospawn=no" in ~/.pulse/client.conf (pulse-client.conf(5)).
  4. modprobe snd_sbawe
  5. Restart pulseaudio again. Now it should pick up the ALSA device.

You can now safely use System - Preferences - Sound (gnome-volume-control). Note that you have nothing on "Hardware" tab, so you cannot use a sound test dialog. Use i.e paplay /usr/share/sounds/alsa/Front_Center.wav for test. Use paplay --channel-map=front-left /usr/share/sounds/alsa/Front_Left.wav for stereo test.

PCI sounds cards mostly does not have this problem (can do full-duplex), so consider a PCI sound card.


ISA NE2000 network card not recognized

Using a ISA bus NE2000-compatible network card (RTL8019AS). Card is not recognized; ip link does not show the interface.

Cause: ne driver is never loaded by default.

Workaround: Invoke "modprobe ne" manually. If that issues error

ne.c: You must supply "io=0xNNN" value(s) for ISA cards.
you must supply IRQ and I/O port base, as "modprobe ne io=0x260 irq=3"

Resolution: if RTL8019 is configured in "Plug and Play" mode: If plain "modprobe ne" works, it's in PnP mode. The kernel should be exposing PnP id as

% udevadm info -a -p /sys/devices/pnp1/01:01/01:01.00

  looking at device '/devices/pnp1/01:01/01:01.00':
    KERNEL=="01:01.00"
    SUBSYSTEM=="pnp"
    DRIVER==""
    ATTR{resources}=="state = disabled"

  looking at parent device '/devices/pnp1/01:01':
    KERNELS=="01:01"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{name}=="Plug & Play Ethernet Card"
    ATTRS{card_id}=="WSC8019"

  looking at parent device '/devices/pnp1':
    KERNELS=="pnp1"
    SUBSYSTEMS==""
    DRIVERS==""

so you could rig up an udev entry:
cat << EOF > /etc/udev/rules.d/80-net-ne-pnp.rules
#This doesn't work, as ATTR{id} is multivalued and becomes blank
#SUBSYSTEM=="pnp", ATTR{id}=="RTL8019", ENV{MODALIAS}!="?*", RUN+="/sbin/modprobe --use-blacklist ne"

SUBSYSTEM=="pnp", ATTRS{name}=="Plug & Play Ethernet Card", ENV{MODALIAS}!="?*", RUN+="/sbin/modprobe --use-blacklist ne"
EOF
RTL8019 could be set in "Plug and Play" mode via DOS utility RSET8019.EXE .

Resolution: if RTL8019 is configured in "jumperless" mode:
There is no reliable way for kernel to know the IRQ and base I/O address, so you must explicitly specify them as modprobe parameters. Current IRQ and base address setting is available from DOS utility RSET8019.EXE .

cat << EOF > /etc/sysconfig/modules/ne.modules; chmod +x /etc/sysconfig/modules/ne.modules
#!/bin/sh
/sbin/modprobe ne io=0x260 irq=3
EOF


pata_ali is restricted to MWDMA2 speed

Symptom: Using ALi M1543C (Alladin V companion) as southbridge chip. Even though the chip has UDMA/33 capability, on boot, it reports as "max MWDMA2" and transfer speed is restricted. dmesg says:

pata_ali 0000:00:0f.0: can't derive routing for PCI INT A
scsi0 : pata_ali
scsi1 : pata_ali
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15
ata1.00: ATA-6: ST340810A, 3.39, max UDMA/100
ata1.00: configured for MWDMA2
hdparm -t performance on AMD K6-2 450MHz:
 Timing buffered disk reads:  34 MB in  3.06 seconds =  11.10 MB/sec
 Timing buffered disk reads:  38 MB in  3.01 seconds =  12.62 MB/sec
 Timing buffered disk reads:  40 MB in  3.14 seconds =  12.76 MB/sec

Cause: You're likely using a Revision 0xC1 of the chipset. kernel.org kernel doesn't have special handling for this chipset and reverts to MWDMA2.

Resolution: Patch. Patched kernel should report as

scsi0 : pata_ali
scsi1 : pata_ali
ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15
ata1.00: ATA-6: ST340810A, 3.39, max UDMA/100
ata1.00: configured for UDMA/33
hdparm -t performance on AMD K6-2 450MHz:
 Timing buffered disk reads:  48 MB in  3.07 seconds =  15.63 MB/sec
 Timing buffered disk reads:  48 MB in  3.09 seconds =  15.55 MB/sec
 Timing buffered disk reads:  48 MB in  3.08 seconds =  15.57 MB/sec


BUG: soft lockup - CPU#1 stuck for 63s! [ld-linux.so.2:30710]

Symptom: Using kernel-2.6.32-754.2.1.el6.emu686.v37.i586. During make check of glibc build, kernel error occurs and locks up:

Aug 12 19:07:41 capricorn kernel: BUG: soft lockup - CPU#1 stuck for 63s! [ld-linux.so.2:30710]
Aug 12 19:07:41 capricorn kernel: Modules linked in: ext3 jbd usb_storage ...
Aug 12 19:07:41 capricorn kernel: Modules linked in: ext3 jbd usb_storage ...
Aug 12 19:07:41 capricorn kernel: 
Aug 12 19:07:41 capricorn kernel: Pid: 30710, comm: ld-linux.so.2 Tainted: G        W  -- ------------    2.6.32-754.2.1.el6.emu686.v37.i586 #1 FUJITSU FMVC10C131/FM111AA
Aug 12 19:07:41 capricorn kernel: EIP: 0060:[<c0404316>] EFLAGS: 00000202 CPU: 1
Aug 12 19:07:41 capricorn kernel: EIP is at do_coprocessor_error+0x16/0x40
Aug 12 19:07:41 capricorn kernel: EAX: ee15fde8 EBX: ee15fde8 ECX: 000000e0 EDX: 00000000
Aug 12 19:07:41 capricorn kernel: ESI: 00000000 EDI: c0404300 EBP: 00000000 ESP: ee15fddc
Aug 12 19:07:41 capricorn kernel: DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Aug 12 19:07:41 capricorn kernel: Process ld-linux.so.2 (pid: 30710, ti=ee15e000 task=f438b550 task.ti=ee15e000)
Aug 12 19:07:41 capricorn kernel: Stack:
Aug 12 19:07:41 capricorn kernel: f438b550 00000000 c086f37d f438b550 00000032 f523e4c0 00000000 f438b550
Aug 12 19:07:41 capricorn kernel: <0> 00000000 00000282 f702007b ffff007b c08600d8 000000e0 ffffffff c040cc51
Aug 12 19:07:41 capricorn kernel: <0> 00000060 00010202 f438b550 00000014 c046196f ee15fe30 ee15fe30 00000005
Aug 12 19:07:41 capricorn kernel: Call Trace:
Aug 12 19:07:41 capricorn kernel: [<c086f37d>] ? error_code+0x12d/0x140
Aug 12 19:07:41 capricorn kernel: [<c08600d8>] ? eager_fpu_init+0x2c/0xab
Aug 12 19:07:41 capricorn kernel: [<c040cc51>] ? exit_thread+0x71/0xa0
Aug 12 19:07:41 capricorn kernel: [<c046196f>] ? do_exit+0x15f/0x740
Aug 12 19:07:41 capricorn kernel: [<c0461f8c>] ? do_group_exit+0x3c/0xa0
Aug 12 19:07:41 capricorn kernel: [<c047489e>] ? get_signal_to_deliver+0x1ce/0x470
Aug 12 19:07:41 capricorn kernel: [<c0472c59>] ? __send_signal+0x199/0x300
Aug 12 19:07:41 capricorn kernel: [<c04028b3>] ? do_signal+0x93/0xb40
Aug 12 19:07:41 capricorn kernel: [<c0472df6>] ? send_signal+0x36/0x70
Aug 12 19:07:41 capricorn kernel: [<c05c4e9a>] ? current_has_perm+0x3a/0x40
Aug 12 19:07:41 capricorn kernel: [<c05c4ec0>] ? selinux_task_setrlimit+0x0/0x30
Aug 12 19:07:41 capricorn kernel: [<c05bd952>] ? security_task_setrlimit+0x12/0x20
Aug 12 19:07:41 capricorn kernel: [<c0477d62>] ? setrlimit+0xb2/0x150
Aug 12 19:07:41 capricorn kernel: [<c0404300>] ? do_coprocessor_error+0x0/0x40
Aug 12 19:07:41 capricorn kernel: [<c04033d7>] ? do_notify_resume+0x77/0xa0
Aug 12 19:07:41 capricorn kernel: [<c086d598>] ? work_notifysig+0x13/0x1b
Aug 12 19:07:41 capricorn kernel: Code: 00 00 00 8b 1c 24 83 c4 08 e9 77 fe ff ff 8d b4 26 00 00 00 00 83 ec 08 89 1c 24 89 c3 89 74 24 04 89 d6 f6 40 39 02 74 06 fb 90 <8d> 74 26 00 c6 05 00 f0 bb c0 01 89 f2 89 d8 8b 74 24 04 b9 10 

Workaround: Use eagerfpu=off kernel option.


Pause and kernel BUG at "Fast TSC calibration using PIT"

Symptom: Booting kernel-2.6.32-754.3.5.el6.emu686.v40 on Cyrix MII. During early boot, the message pauses at

...
Checking if this processor honours the WP bit even in supervisor mode...Ok.
Hierarchical RCU implementation.
NR_IRQS:2304 nr_irqs:256
Console: colour VGA+ 80x25
console [ttyS0] enabled
Fast TSC calibration using PIT
followed by kernel BUGs:
BUG: unable to handle kernel paging request at dfff0000
IP: [<c086f56a>] restore_all_kernel+0x2f/0x55
*pde = 00082067 *pte = 00000000
Oops: 0002 [#1] SMP
last sysfs file:
Modules linked in:

Pid: 0, comm: swapper Not tainted 2.6.32-754.3.5.el6.emu686.v40.i586 #1 System Manufacturer System Name/ALADDIN5
EIP: 0060:[<c086f56a>] EFLAGS: 00010093 CPU: 0
EIP is at restore_all_kernel+0x2f/0x55
EAX: 00000000 EBX: c1d9c7c8 ECX: e1417470 EDX: c0b72da0
ESI: df65ab90 EDI: dfff0000 EBP: c1406000 ESP: c1407358
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process swapper (pid: 0, ti=c1406000 task=c0a7bc60 task.ti=c0a70000)
Stack:
 00000000 c0a89c94 00000000 00bb8000 00000000 001234de 00000246 0000007b
<0> 00bb007b 000000d8 001200e0 ffffffcf c043a782 41400060 00000246 c040b6fe
<0> c09c4bd4 00000000 00000000 00000000 5cb5cd76 00000203 f476fd74 00000003
Call Trace:
 [<c043a782>] ? native_restore_fl+0x2/0x10
 [<c040b6fe>] ? native_calibrate_tsc+0x16e/0x6d0
 [<c08600e0>] ? mmio_resource_enabled.clone.0+0x2f/0x39
 [<c0af03f3>] ? tsc_init+0x6f/0x157
 [<c086f0cd>] ? _spin_unlock_irqrestore+0xd/0x10
 [<c0ae8ae9>] ? start_kernel+0x244/0x2e9
 [<c0ae8753>] ? unknown_bootoption+0x0/0x120
 <IRQ>
...

Cause: It seems that PARANOID_EXIT_TO_KERNEL_MODE assembly macro isn't working properly, which regenerates stack contents onto entry stack on system_call exit. It should do nothing on platforms without PTI (Page Table Isolation) capability, but it lacks the logic to skip processing.

Workaround: kernel-2.6.32-696.23.1.el6.emu686.v36 is the latest unpatched kernel to work on Cyrix.

Resolution: Patch. Already applied to kernel-2.6.32-754.3.5.el6.emu686.v40 . I wonder why plain Pentiums and AMD K6-2s were working without this patch.


/sys says it's vulnerable to Meltdown

Symptom:/

$ sudo more /sys/devices/system/cpu/vulnerabilities/*
::::::::::::::
/sys/devices/system/cpu/vulnerabilities/meltdown
::::::::::::::
Vulnerable
::::::::::::::
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
::::::::::::::
Vulnerable
::::::::::::::
/sys/devices/system/cpu/vulnerabilities/spectre_v1
::::::::::::::
Mitigation: Load fences
::::::::::::::
/sys/devices/system/cpu/vulnerabilities/spectre_v2
::::::::::::::
Mitigation: Full retpoline

Cause: On non-pae i586 code, Page Table Isolation doesn't work, which is needed for Meltdown mitigation. You cannot enable it by make menuconfig on x86_32 on RHEL kernel code. RPM build uses nonstandard way to forcibly set the .config configuration on i686-PAE.

Discussion:

If you're CPU is i586 class, it isn't an issue since i586 CPUs doesn't do speculative execution.

If you're on i686 class CPUs, you are likely out of luck;


Input method does not automatically start on startx

Symptom: Enabled the ibus input method by im-chooser (System-Preferences-Input Method). The Input method (ibus-daemon) does not start automatically on startx. It does starts by manually invoking im-chooser or imsettings-start (System-Preferences-Startup Applications).

When rewriting the imsettings-start command line to

sh -c 'LANG=C imsettings-start --cond-start -n > /tmp/im.log 2>&1'
the /tmp/im.log shows:
(process:1909): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0

(process:1909): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0

(process:1909): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0

(imsettings-start:1909): IMSettings-WARNING **: Failed to invoke a method `GetVersion' on com.redhat.imsettings:
  Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Currently a different version of imsettings is running.
Running "imsettings-reload -f" may help but it will restart the Input Method

Workaround: Manually invoke imsettings-start from terminal.

Resolution: Use a modified DBus library with default timeout of 25 seconds made longer.


kabe.sra-tohoku.co.jp