Note: Information on this page is for CentOS 7.5.1804 i686. See the Latest Version.
CentOS 7 for i686 doesn't boot on CPU without PAE nor without CMOV instructions. Also, SSE and SSE2 is extensively used in userland. Using a custom non-PAE, SSE2-emulating kernel will make it work.
Warning: This doesn't work on MMX-only processors. Processors with MMX but no SSE will execute some SSE instructions as MMX instruction, which lacks #UD exception for emulating it.
Note: This is just a technical challenge. It is highly impractical to deploy CentOS 7 on sub-GHz CPUs in any way.
$Keywords: CentOS 7.x, Linux kernel, non-PAE, without PAE, 32bit, i386, i586, installation media respin, anaconda, Pentium, CMOV emulation, SSE emulation, SSE2 emulation $
$Id: pentium.html,v 1.115 2018/10/25 12:38:30 kabe Exp $ (2016/02)
Obsolete information for CentOS 7.4 i586 is also available.
Your CPU has capability of | ||||||
pae
| cmov
| mmx
| sse
| sse2
| works? | Example CPUs |
---|---|---|---|---|---|---|
yes | plain Pentium | |||||
mmx | no | Pentium MMX, K6-2, WinChip | ||||
cmov | mmx | no | Pentium II, Cyrix MII | |||
cmov | mmx | sse | no | Pentium III | ||
cmov | mmx | sse | sse2 | yes | Pentium M | |
pae | cmov | mmx | sse | sse2 | yes (but you don't need it) | Pentium 4 |
Note: from CentOS 7.4 i686, the kernel is compiled without PAE requirement, so you may just use the latest CentOS i686 for Pentium M CPUs.
If you're going to run the installer on i686 work machine, manually replace kernel and grub2 packages, and swap the disk onto i586 machine, theoretically it should work given that HDD controller is compatible.
If the target machine can do SSE2 but only lacks PAE (ex.some Pentium M), you don't even need to replace the kernel; from CentOS 7.4 i686, the kernel doesn't need PAE.
For native i586 install, you need more quirks:
rpm
refuses so)
For speed gain and stability, you also want these:
No need to replace anaconda packages for this;
CentOS 7.5 anaconda has inst.xtimeout=600
kernel boot option for setting timeout of Xorg Xserver to come up.
Set this on slow machines.
pccardctl
command.
You want this when ejecting the card by sudo pccardctl eject 0
.
pccardctl is not provided in stock CentOS 7 since it
does not support PCMCIA and ISA devices by default.
The kernel above has CMOV, NOPL, FCOMI, FCMOVcc opcode emulation, and
some SSE2 emulation enough to run compiler-generated
(-mfpmath=sse
)
SSE2 instructions.
This will let .i686 binaries run on i586 CPUs, which lacks
cmov
and sse2
capability.
Note: opcode emulation is very slow in nature. Recompile for .i586 whenever possible.
Counts of emulated opcodes will be available under /proc/emulated_ops
:
# cat /proc/emulated_ops cmov: 606311269 nopl: 0 fcomi: 0 fucomi: 0 fcmov: 0 sse: 131199723 sse2: 236361111
MMX-capable, but no-SSE2 processosrs such as Pentium MMX, Pentium II, AMD K6-2, K7, Cyrix MII, IDT WinChip does not raise #UD exception (SIGILL) on some SSE2 instructions and interprets as MMX instructions. On these processors we cannot hook the exeption and emulate. (seems to ignore 0x66 prefix and passes over as MMX instruction)
This means that the emulation kernel practically only works on plain Pentium withOUT MMX, which is clocked at 75,90,100,133,166 or 200 MHz.
for desktop environment, you can select the default GNOME3 (gnome-desktop) or KDE4 (kde-desktop), but on slow machines I strongly recommend KDE. GNOME3 had become too heavyweight for sub-GHz, single-thread processor.
lorax
On the work machine, install following packages:
lorax
createrepo
% sudo yum --disablerepo='*' --enablerepo=c7-media install loraxIf work machine is older than CentOS 7.2.1511, c7-media.repo file must be manually added to
/etc/yum.repos.d/
.
Mount the original CentOS 7 media.
Copy over all of the contents as ./DVD1/
.
(so that you'll have ./DVD1/.discinfo
)
Clean up the TRANS.TBL
files as necessary.
rm -fr ./DVD1 cp -pr /media/dvd ./DVD1 chmod -R +w ./DVD1 find ./DVD1 -name TRANS.TBL -exec rm {} ';'
Copy the custom kernel and other packages to replace
into ./DVD1/Packages/
directory which holds *.rpm .
cp -p kernel-3.10.0-693.5.2.el7.v31.i586.rpm ./DVD1/Packages/ ...
And, erase the original .i686 rpm. This is neeeded to prevent installation of it.
rm ./DVD1/Packages/kernel-3.10.0-693.2.2.el7.centos.plus.i686.rpm ...You will want to use replace shell script to do this easily.
You replaced the *.rpm, so ./DVD1/repodata/ must be
regenerated using createrepo
as below.
chmod -R +rwX ./DVD1/repodata chmod +rwX ./DVD1 ;# createrepo demand compsxml=`cd ./DVD1; find repodata -name '*-comps*.xml'`; \ rm -f ./comps.xml; \ cp ./DVD1/$$compsxml ./comps.xml; \ test -f ./comps.xml || exit 1; \ rm ./DVD1/repodata/*.bz2 ./DVD1/repodata/*.gz; \ cp ./comps.xml ./DVD1/repodata/comps-dvd.xml; \ createrepo -v -g repodata/comps-dvd.xml \ ./DVD1
createrepo
is needed to lorax
find the
new kernel and other packages to build the installer.
Regeneration takes significant amount of time (~5 minutes on 3GHz machine) .
lorax
lorax
is a program
to prepare the installer (anaconda) things you see when booting from the install media.
(Mandatory) Begin with a pristine directory to store the boot.iso file;
rm -fr ./img7
Then, invoke the lorax
with some options.
sudo lorax -p CentOS -v 7 -r 7.4 -s `pwd`/DVD1 \ --tmp=`pwd`/tmpb \ --buildarch=i586 \ `pwd`/img7 2>&1 | tee -a /tmp/lorax.logThis takes a long time! (about 50 minutes on 3GHz machine) You would like to redirect the output to a logfile as above.
lorax
use a loopback filesystem.
-s `pwd`/DVD1
should be absolute path.
As a result, ./img7/ will be populated with installer boot files, notably ./img7/images/boot.iso .
Scratch directories, owned by root, may be lying around in
./tmpb/
directory. You can safely delete them.
The recreated files are owned by root, so you would like to
sudo chown -R $LOGNAME ./img7 chmod -R +w ./img7
The generated
./img7/images/boot.iso
of about 446MB should boot as a network installer.
You would like to try it out on target machine
to see if the anaconda installer would work.
It takes around 40 minutes on Pentium 120MHz to reach GUI language selection screen.
lorax
does not use the native files
of the host machine to build the installer;
it unpacks files from the *.rpm in the directory.
Thus the work host doesn't have to be i686; working on x86_64 should be okay.
lorax
is a rewrite of buildinstall
used in
previous versions of RHEL, and said to be a lot faster,
but seems not on my environment.
First, replace the DVD1/{images,isolinux,LiveOS} with the one generated by lorax.
chmod -R +rwX ./DVD1/images ./DVD1/isolinux ./DVD1/LiveOS rm -fr ./DVD1/images ./DVD1/isolinux ./DVD1/LiveOS rm ./DVD1/.discinfo ./DVD1/.treeinfo cp -pr -l ./img7/* ./img7/.??* ./DVD1/
(From CentOS 7.5-)
If your target machine is slow enough that Xserver won't
come up in default 60 seconds timeout,
add inst.xtimeout=600
boot option.
Modify ./DVD1/isolinux/isolinux.cfg line as
-append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20i386 quiet +append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20i386 inst.xtimeout=600 quiet
isolinux.bin
should be writeable to make it bootable, so
chmod -R +w ./DVD1/isolinux
Respin the media image by mkisofs
:
mkisofs -o ./DVD1.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -R -v -T \ -J -joliet-long \ -f \ -V "CentOS 7 i386" \ -m upgrade.img -m boot.iso \ ./DVD1 implantisomd5 ./DVD1.iso
The volume label (-V "CentOS 7 i386"
) should match with kernel option in ./DVD1/isolinux/isolinux.cfg,inst.stage2=hd:LABEL=CentOS\x207\x20i386
.
Excluding upgrade.img (~40MB) and boot.iso (~360MB) is just for lowering size of the final .iso .
Burn the DVD1.iso and try it out on your favorite Pentium machine.
yum update
to update the kernelYou don't want yum update
update the kernel
to official CentOS package if you are using the kernel on this page.
To prevent yum(1) from automatically upgrading the package,
add in [main] section of /etc/yum.conf:
[main] ... exclude=kernel-* grub2-*You should at least exclude kernel and grub2, which is essential for i586 deployment.
To manually update the kernel from c7-i586.repo, use the following command:
yum --disablerepo=\* --enablerepo=c7-i586 --disableexcludes=main update kernel
Symptom: Install seemed to succeed, but on boot, it instantly resets before GRUB menu appears.
Cause: You didn't replace the grub2-i386-modules.i586 package. Note that the packaging of GRUB2 binaries (/usr/lib/grub/i386-pc/) had changed from grub2.i686 package to grub2-i386-modules.noarch package from CentOS 7.4.
Resolution:
Symptom: After initrd.img is loaded,
This kernel requires the following features not present on the CPU: pae cmov This processor is unsupported in CentOS 7.
You may need to delete "quiet
" kernel option when booting
to make this error visible.
Cause: Booting from a stock install media shows that. You didn't replace the kernel package.
Symptom: After kernel start, Kernel panics killing init.
[ 58.412707] Freeing unused kernel memory: 696k freed [ 58.423244] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 [ 58.423244] [ 58.424082] CPU: 0 PID: 1 Comm: init Not tainted 3.10.0-229.el7.centos.i586 #1 [ 58.424082] Hardware name: System Manufacturer System Name/ALADDIN5, BIOS 0626 07/15/95 [ 58.424082] c0b710c7 e2eee12e c0b84620 ed089e00 c0920c67 ed089e20 c091c4b3 c0aacab4 [ 58.424082] c0cb2920 e2eee12e c0b84620 00000001 ed084000 ed089e74 c0451105 c0aacf90 [ 58.424082] 00000004 00000004 00000080 00000001 ed089fb4 00000000 00000000 000000cd [ 58.424082] Call Trace: [ 58.424082] [<c0920c67>] dump_stack+0x16/0x18 [ 58.424082] [<c091c4b3>] panic+0x87/0x181 [ 58.424082] [<c0451105>] do_exit+0x8f5/0x900 [ 58.424082] [<c045c5e7>] ? recalc_sigpending+0x17/0x50 [ 58.424082] [<c0451184>] do_group_exit+0x34/0xa0 [ 58.424082] [<c045efbb>] get_signal_to_deliver+0x18b/0x680 [ 58.424082] [<c0402525>] do_signal+0x45/0x9e0 [ 58.424082] [<c0927c3a>] ? do_trap+0x5a/0xc0 [ 58.424082] [<c0567b50>] ? free_bprm+0x50/0x60 [ 58.424082] [<c0567fc3>] ? do_execve_common+0x463/0x4e0 [ 58.424082] [<c0403480>] ? do_bounds+0x80/0x80 [ 58.424082] [<c0402f17>] do_notify_resume+0x57/0x80 [ 58.424082] [<c0927215>] work_notifysig+0x30/0x3b
Cause: it tried to execute illegal instruction in
init
(systemd
).
Resolution: Replace the kernel for emulation, or replace with systemd.i586 package.
Symptom: Booting kernel-3.10.0-862.3.3.el7 on i586. The kernel panics on early boot stage:
[ 0.450437] ftrace: allocating 25137 entries in 50 pages [ 0.640459] do_invalid_op() : invalid opcode detected pid 0(swapper/0) @c04207ee : 00 00 >0f ae 00 31 c0... [ 0.650000] BUG: unable to handle kernel NULL pointer dereference at 00000044 [ 0.650000] IP: [<c09ca472>] down_read+0x12/0x30 ... [ 0.650000] [<c0cdfba1>] start_kernel+0x3d3/0x3ea [ 0.650000] [<c0cdf601>] ? repair_env_string+0x51/0x51 [ 0.650000] [<c0cdf384>] i386_start_kernel+0x12e/0x131 [ 0.650000] Code: 8d 74 26 00 89 d1 31 d2 c7 04 24 01 00 00 00 e8 85 fe ff ff c9 c3 66 90 90 55 89 e5 53 3e 8d 74 26 00 89 c3 e8 a0 0e 00 00 89 d8 <3e> ff 00 79 05 e8 b4 b0 cd ff 83 7b 10 01 74 07 c7 43 10 01 00 [ 0.650000] EIP: [<c09ca472>] down_read+0x12/0x30 SS:ESP 0068:c0c4fd58 [ 0.650000] CR2: 0000000000000044 [ 0.650000] ---[ end trace 0d044f5ded777dce ]--- [ 0.650000] Kernel panic - not syncing: Fatal exception
Cause: kernel-3.10.0-862.3.3.el7 eagerfpu code doesn't
check for fxsr
capability (cpu flags) and uses
fxsave
opcode unconditionally, which doesn't exist
on i586.
Workaround:
Use eagerfpu=off
kernel option.
Using the lazy FPU mode could be a performance win on older CPUs too.
Resolution: Patch.
Symptom: On work machine, when lorax was invoked, after creating squashfs, it dies with error:
dracut module 'anaconda' cannot be found or installed. Traceback (most recent call last): File "/sbin/lorax", line 323, in <module> main(sys.argv) File "/sbin/lorax", line 225, in main remove_temp=True) File "/usr/lib/python2.7/site-packages/pylorax/__init__.py", line 321, in run treebuilder.rebuild_initrds(add_args=anaconda_args) File "/usr/lib/python2.7/site-packages/pylorax/treebuilder.py", line 218, in rebuild_initrds runcmd(cmd, root=self.vars.inroot) File "/usr/lib/python2.7/site-packages/pylorax/executils.py", line 414, in runcmd return execWithRedirect(cmd[0], cmd[1:], **kwargs) File "/usr/lib/python2.7/site-packages/pylorax/executils.py", line 179, in execWithRedirect raise subprocess.CalledProcessError(ret, [command]+argv) subprocess.CalledProcessError: Command '['dracut', '--nomdadmconf', '--nolvmconf', '--xz', '--install', '/.buildstamp', '--no-early-microcode', '--add', 'anaconda pollcdrom', '--force', 'boot/initramfs-3.10.0-229.el7.i686.img', '3.10.0-229.el7.i686']' returned non-zero exit status 1
Cause:
anaconda-dracut-*.rpm
package is missing in ./DVD1/Packages/.
It doesn't have to be installed on the work host machine.
Do not to forget re-createrepo
after adding it.
Symptom: Freeze in early stage of boot. With debug
kernel option,
systemd stops by
systemd[1]: Caught, dumped core as pid 312. systemd[1]: Freezing execution.
Cause: systemd
completely stops when
illegal instruction is detected by things invoked by it on early stage.
Resolution: Replace the kernel with SSE2 emulation kernel.
Specified vga=ask
as kernel option to
get VESA 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 "Unpacking initramfs".
Cause: You will not have any output until
initial rootfs is extracted.
Some console output resumes after that.
This could take a long time on old hardware.
Extraction of initramfs of install disc takes 180 seconds on Pentium 120MHz.
Symptom: On CentOS 7.1.1503, used rd.break
kernel option to
get emergency shell.
it seems to freeze after
systemd[771]: Executing /bin/dracut-pre-pivot
Resolution: Wait for 10 minutes until rpc-statd exits.
dracut-pre-pivot
depends on remote-fs.target
,
so it tries to invoke NFS client daemons and sits there.
If you want emergency rd shell, rd.break=mount
(CentOS 7.1.1503),
rd.break=pre-pivot
(CentOS 7.2.1511) should be better.
Symptom: After root pivot, systemd seems to freeze in
[ 764.042427] anaconda-pre-log-gen[1143]: Gathering console messages... [ 765.587195] anaconda-pre-log-gen[1143]: Gathering /etc/lvm info... [ 769.831575] anaconda-pre-log-gen[1143]: Gathering /dev listing... [ 773.073033] anaconda-pre-log-gen[1143]: Gathering /sys/block listing... [ 778.852837] anaconda-pre-log-gen[1143]: Gathering system info... [ 899.115791] anaconda-pre-log-gen[1143]: Gathering udev info...
When installer is invoked with
systemd.journald.forward_to_console=1
kernel option, log shows that
systemd-logind.service is repeatedly failing to start.
[ 1022.724579] systemd[1]: Starting Login Service... [ 1046.966507] systemd-logind[1240]: Failed to enable subscription: Connection timed out [ 1047.019321] dbus[1145]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out [ 1047.123532] systemd-logind[1240]: Failed to fully start up daemon: Connection timed out [ 1047.648113] systemd[1]: systemd-logind.service: main process exited, code=exited, status=1/FAILURE [ 1047.857192] systemd[1]: Failed to start Login Service. [ 1047.908602] systemd[1]: Unit systemd-logind.service entered failed state. [ 1048.014812] systemd[1]: systemd-logind.service failed. [ 1048.299360] systemd[1]: systemd-logind.service has no holdoff time, scheduling restart. [ 1048.444478] systemd[1]: Cannot add dependency job for unit rhel-loadmodules.service, ignoring: Unit is masked. [ 1048.505439] systemd[1]: Cannot add dependency job for unit rhel-autorelabel.service, ignoring: Unit is masked. [ 1048.591871] systemd[1]: Cannot add dependency job for unit systemd-tmpfiles-clean.timer, ignoring: Unit is masked. [ 1049.169773] systemd[1]: Starting Login Service...
Cause: Default timeout of 25 seconds of dbus is too short for slow machines.
Resolution:
to allow longer timeouts.Symptom: in Software Selection screen during install, error is shown:
1:dbus-1.6.12-11.el7.i586 requires /usr/sbin/useradd 1:dbus-1.6.12-11.el7.i586 requires chkconfig 1:dbus-1.6.12-11.el7.i586 requires libaudit.so.1 1:dbus-1.6.12-11.el7.i586 requires libcap-ng.so.0 1:dbus-1.6.12-11.el7.i586 requires libexpat.so.1 1:dbus-1.6.12-11.el7.i586 requires libselinux(x86-32) >= 1.15.2 ... coreutils-8.22-11.el7.i586 requires grep ...
Cause: You didn't replace rpm
and yum
package
modified to allow .i686.rpm install on i586 machine.
Symptom: The machine has a wifi network adaptor.
It was usable in installer and rescue disc, but after HDD install,
it doesn't work.
It is listed under ip link
as
1: lo:but NetworkManager seems to ignore the interface; scanning for Access Points (mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp2s1: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000 link/ether 00:11:25:44:08:c3 brd ff:ff:ff:ff:ff:ff 3: wlp2s2: mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000 link/ether 00:0e:9b:99:bb:19 brd ff:ff:ff:ff:ff:ff
nmcli dev wifi list
) nor
authenticated connection (nmcli --ask dev wifi connect
) doesn't work.
When NetworkManager -d
is invoked manually, it shows
NetworkManager[9588]:(wlp2s2): 'wifi' plugin not available; creating generic device NetworkManager[9588]: (wlp2s2): new Generic device (carrier: OFF, driver: 'ath5k', ifindex: 3)
Cause: NetworkManager-wifi
plugin is not installed.
It may not be installed on upgrading minimum install to something else.
Resolution Install NetworkManager-wifi
package.
After install, NetworkManager -d
output should be
... NetworkManager[2772]:Loaded device plugin: NMWifiFactory (/usr/lib/NetworkManager/libnm-device-plugin-wifi.so) ... NetworkManager[2772]: (wlp2s2): using nl80211 for WiFi device control NetworkManager[2772]: (wlp2s2): driver supports Access Point (AP) mode NetworkManager[2772]: (wlp2s2): new 802.11 WiFi device (carrier: UNKNOWN, driver: 'ath5k', ifindex: 3) NetworkManager[2772]: (wlp2s2): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Note: Atheros 5xxx (ath5k
) driver is not compiled by default
on stock RHEL/CentOS kernel.
Symptom: Tried to start GNOME desktop via startx
, but it won't start.
From debugging output from xinit /bin/gnome-session --session=gnome-classic --debug,
gnome-session is timed out after 90 seconds.
Feb 11 14:14:38 localhost gnome-session[21070]: DEBUG(+): GsmManager: starting app '/org/gnome/SessionManager/App1' Feb 11 14:14:39 localhost gnome-session[21070]: DEBUG(+): Starting app: /org/gnome/SessionManager/App1 Feb 11 14:14:39 localhost gnome-session[21070]: DEBUG(+): GsmAutostartApp: starting gnome-shell-classic.desktop: command=/usr/bin/gnome-shell startup-id=103e7075ddf5707b7a145516764254291500000210700000 Feb 11 14:14:39 localhost gnome-session[21070]: DEBUG(+): GsmAutostartApp: started pid:21158 Feb 11 14:14:39 localhost gnome-session[21070]: DEBUG(+): GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged ... Feb 11 14:16:07 localhost gnome-session[21070]: DEBUG(+): GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged Feb 11 14:16:09 localhost gnome-session[21070]: WARNING: Application 'gnome-shell-classic.desktop' failed to register before timeout Feb 11 14:16:09 localhost gnome-session: Unrecoverable failure in required component gnome-shell-classic.desktop
Cause: Machine was slow enough to exceed hardcoded timeout of 90 seconds.
Resolution: Replace gnome-session, gnome-session-xsession
packages, which are patched with longer timeout.
Symptom: gnome-terminal won't start. When started from command line, it says timeouted.
# DISPLAY=:0 gnome-terminal Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached
Cause: 25-second default timeout of D-Bus has reached.
gnome-terminal isn't a independent application; when gnome-terminal is
invoked, /usr/libexec/gnome-terminal-server
is invoked
via D-Bus, but slow enough machine exceeds timeout between
D-Bus and gnome-terminal-server.
This timeout is not configurable and seems to be hardcoded as default 25 secs.
Workaround: Invoke DISPLAY=:0 /usr/libexec/gnome-terminal-server
manually.
Wait for several seconds, then invoke gnome-terminal.
Resolution: the dbus, dbus-libs, dbux-x11
packages
provided on this page has the timeout changed from 25 to 50 secs.
gnome-terminal on GNOME3 seems to not work even with longer timeouts. 50 sec timeout works on KDE.
Symptom:Trying to switch ibus input method. Click-selecting the keyboard icon, or using [Super]-Space, does show the alternate input method (after terrible delay), but keyboard icon doesn't change and input method doesn't change.
Cause: Default timeout of 5 seconds may be too short for slow machines
Resolution: set a longer timeout on ibus-daemon
.
% pkill ibus-daemon % IBUS_TIMEOUT=30000 /usr/bin/ibus-daemon -d -r --xim --timeout=30000
There are two configurable timeouts for ibus-daemon; ibus timeout (IBUS_TIMEOUT), which defaults to 6 seconds, and gdbus timeout (--timeout) which defaults to 5 seconds. These may be too short for slow machines. Above example sets them to 30 seconds. (--timeout seems to be enough)
Edit /etc/X11/xinit/xinput.d/ibus.conf as:
XIM=ibus XIM_PROGRAM="/usr/bin/ibus-daemon" ICON="ibus" XIM_ARGS="-r --xim --timeout=30000" PREFERENCE_PROGRAM=/usr/bin/ibus-setup ...
Symptom: ZyDAS zd1211 based USB wifi adapter (such as Buffalo WLI-UC-AG) is not recognized. On insertion, /var/log/messages says:
Jul 28 07:01:53 capricorn kernel: usb 1-5: Could not load firmware file zd1211/zd1211b_ub. Error number -2 Jul 28 07:01:53 capricorn kernel: zd1211rw 1-5:1.0: couldn't load firmware. Error number -2
Resolution: Install zd1211-firmware package. The one supplied with CentOS 6 will work nicely.
Note: zd1211rw.ko driver is not supplied in stock RHEL/CentOS 7 kernel.
Note: you cannot use 802.11a band; the driver lacks implementation.
To make the driver work in installation/rescue disc, you must add
zd1211-firmware-1.4-4.el6.noarch.rpm in ./DVD1/Packages/, createrepo, and
pass --installpkgs=zd1211-firmware
to lorax
.
Symptom: On insertion of Broadcom BCM43xx based (Cardbus) WiFi adapter, dmesg or /var/log/messages says
kernel: pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0 kernel: pci 0000:03:00.0: BAR 0: assigned [mem 0xd4000000-0xd4001fff] kernel: b43-pci-bridge 0000:03:00.0: enabling device (0000 -> 0002) kernel: ssb: Found chip with id 0x4306, rev 0x03 and package 0x00 kernel: ssb: Sonics Silicon Backplane found on PCI device 0000:03:00.0 kernel: b43-phy1: Broadcom 4306 WLAN found (core revision 5) kernel: b43-phy1: Found PHY: Analog 2, Type 2 (G), Revision 2 kernel: b43-phy1: Found Radio: Manuf 0x17F, ID 0x2050, Revision 2, Version 0 kernel: Broadcom 43xx driver loaded [ Features: PNLS ] kernel: b43-phy1 ERROR: Firmware file "b43/ucode5.fw" not found kernel: b43-phy1 ERROR: Firmware file "b43-open/ucode5.fw" not found kernel: b43-phy1 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
Resolution: Install a firmware package. b43-openfwwf-5.2-10.el6.noarch.rpm supplied with CentOS 6 works. If it doesn't, you need to use b43-fwcutter by yourself to extract a firmware.
Note: b43.ko driver is not supplied in stock RHEL/CentOS 7 kernel.
To make the driver work in installation/rescue disc, you must add
b43-openfwwf-5.2-10.el6.noarch.rpm
in ./DVD1/Packages/, createrepo, and
pass --installpkgs=b43-openfwwf
to lorax
.
Symptom: Using Broadcom BCM4306 (rev 03) based CardBus wireless card.
When ssh-ed to remote host, generate some traffic with ls -lR /
,
and repeatedly switch VTs by Alt-F1<>Alt-F2, eventually the
network stops working.
The card can receive traffic but no transmission occurs.
With b43.ko
built with CONFIG_B43_DEBUG=y, it shows
following error:
kernel: b43-phy1 debug: Out of order TX status report on DMA ring 1. Expected 148, but got 180
Workaround:
modprobe b43 pio=1
option when loading the driver.
PIO mode seems to not have this problem.
To make this permanent, add a new file /etc/modptobe.d/b43.conf with
content options b43 pio=1
.
Symptom: Using 3com EtherlinkIII 3c509 network adaptor.
When manually modprobe 3c509
is done, the card is detected,
but does not link up, even if I said ethtool -s eth0 port tp
.
Kernel messages says:
eth0: 3c5x9 found at 0x310, BNC port, address 00:a0:24:28:c2:80, IRQ 3. 3c509.c:1.20 04Feb2008 becker@scyld.com ------------[ cut here ]------------ WARNING: CPU: 0 PID: 737 at net/sched/sch_generic.c:356 dev_watchdog+0x1f3/0x200 NETDEV WATCHDOG: eth0 (3c509): transmit queue 0 timed out Modules linked in: ip_set nfnetlink ebtable_nat ... CPU: 0 PID: 737 Comm: nmcli Not tainted 3.10.0-862.el7.v37.i586 #1 Hardware name: System Manufacturer System Name/ALADDIN5, BIOS 0626 07/15/95 Call Trace: <SOFTIRQ> [<c09c5ba0>] dump_stack+0x16/0x18 [<c0452daa>] __warn+0xea/0x110 [<c08e8f53>] ? dev_watchdog+0x1f3/0x200 [<c0452e16>] warn_slowpath_fmt+0x46/0x60 [<c08e8f53>] dev_watchdog+0x1f3/0x200 [<c04612f2>] call_timer_fn+0x32/0x100 [<c07bc312>] ? scsi_decide_disposition+0x1d2/0x210 [<c047cc69>] ? put_cred_rcu+0x89/0xb0 [<c08e8d60>] ? dev_deactivate_queue.constprop.30+0x50/0x50 [<c0463429>] run_timer_softirq+0x199/0x270 [<c08e8d60>] ? dev_deactivate_queue.constprop.30+0x50/0x50 [<c045b933>] __do_softirq+0xc3/0x1f0 [<c045b870>] ? tasklet_action+0x110/0x110 [<c041a565>] call_on_stack+0x45/0x50 <EOI> [<c045bbb5>] ? irq_exit+0x95/0xa0 [<c0419e95>] ? do_IRQ+0x45/0xd0 [<c09d0810>] ? __do_page_fault+0x490/0x490 [<c09d4ef3>] ? common_interrupt+0x33/0x40 ---[ end trace b49bc66903ceb9e0 ]--- eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1332. eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1484. eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1528. eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1408. eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1328. eth0: transmit timed out, Tx_status 00 status 2000 Tx FIFO room 1260.
Cause: Media autodetection is disabled on the card.
When the card is set to use particular link port,
ethtool -s eth0 port tp
doesn't have any effect.
Resolution: Use 3C5X9CFG.EXE, included in 3Com EtherDisk, to set the card to use TP (RJ-45) medium.
Symptom: Using K6-2 CPU. ping(8) does not seem to work; packet goes out but no reply.
Cause:
ping(8) uses pxor %xmm
opcode, which
cannot be emulated on MMX capable but non-SSE CPUs.
Totally unsupported and expected-not-to-work configuration.
Resolution:
Recompile iputils
package for i586.
Symptom: Under heavy load, login on vt console is rejected by
Login timed out after 60 seconds
Resolution: Add login(1) LOGIN_TIMEOUT in /etc/login.defs:
## default 60secs is short under heavy load LOGIN_TIMEOUT 300
Symptom: Running KDE4 on Pentium.
On KDE desktop start, akonadi does not work.
akonadiserver repeatedly crashes and fail to connect to mysqld,
leaving error in ~/.local/share/akonadi/akonadiserver.error:
(also reproducible by akonadictl start
)
Error during executing query "SELECT * FROM SchemaVersionTable LIMIT 1" : "Lost connection to MySQL server during query QMYSQL3: Unable to execute statement" "Unable to retrieve data from table. Sql error: Lost connection to MySQL server during query QMYSQL3: Unable to execute statement Query: SELECT * FROM SchemaVersionTable LIMIT 1" Unable to initialize database. "[ 0: akonadiserver(_Z11akBacktracev+0x47) [0x808fbf7] 1: akonadiserver() [0x808feed] 2: [0xb7747400] 3: /lib/libc.so.6(gsignal+0x3c) [0xb6df60ac] ... (backtrace isn't helpful here) ] "
Cause: akonadi
and underlying mysqld
installs their own SIGILL trap,
which nullifies opcode emulation, and aborts inexpectedly.
Resolution: Replace akonadi and mariadb packages.
Since working akonadi is very heavy on CPU, you may want just let them fail if you don't use PIM related apps, such as Korganizer.
$ pydoc -k zqwykjv Segmentation fault $ _
This is caused by installed several python C extension modules (*.so) . Beside Python, if following packages are installed (KDE desktop installation likely haves them all)
gdb of "pydoc -k zqwykjv" session reveals that infinite recursion loop in _gobject.so, eats up resources and try to emit last error, but too late. Also tons of unrelated *.so libraries are loaded just for extracting help messages, making weird interference.
$ gdb /bin/python GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 ... Reading symbols from /usr/bin/python2.7...Reading symbols from /usr/bin/python2.7...(no debugging symbols found)...done. (no debugging symbols found)...done. Missing separate debuginfos, use: debuginfo-install python-2.7.5-48.el7.i686 (gdb) run /bin/pydoc -k zqwykjv Starting program: /bin/python /bin/pydoc -k zqwykjv [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0xb7c3c2db in vfprintf () from /lib/libc.so.6 (gdb) where #0 0xffffffff in vfprintf () at /lib/libc.so.6 #1 0xffffffff in __vasprintf_chk () at /lib/libc.so.6 #2 0xffffffff in g_vasprintf () at /lib/libglib-2.0.so.0 #3 0xffffffff in g_strdup_vprintf () at /lib/libglib-2.0.so.0 #4 0xffffffff in g_logv () at /lib/libglib-2.0.so.0 #5 0xffffffff in g_log () at /lib/libglib-2.0.so.0 #6 0xffffffff in g_return_if_fail_warning () at /lib/libglib-2.0.so.0 #7 0xffffffff in g_type_get_qdata () at /lib/libgobject-2.0.so.0 #8 0xffffffff in pygobject_lookup_class () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #9 0xffffffff in pyg_type_get_bases () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #10 0xffffffff in pygobject_new_with_interfaces () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #11 0xffffffff in pygobject_lookup_class () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #12 0xffffffff in pyg_type_get_bases () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #13 0xffffffff in pygobject_new_with_interfaces () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #14 0xffffffff in pygobject_lookup_class () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #15 0xffffffff in pyg_type_get_bases () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #16 0xffffffff in pygobject_new_with_interfaces () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #17 0xffffffff in pygobject_lookup_class () at /usr/lib/python2.7/site-packages/gobject/_gobject.so #18 0xffffffff in pyg_type_get_bases () at /usr/lib/python2.7/site-packages/gobj (gdb) ^CQuit
Workaround:
for AssertionError: '' != 'dm.c: 1693: not running as root returning empty list'
,
simple workaround is just "chmod 700 /usr/lib/python2.7/site-packages/block/".
python-pyblock is an anaconda module, and
you are unlikely to use this besides root.
Segfault workaround: uninstall one of the 5 packages. gnome-abrt is most unintruding, so force uninstall by "rpm -ev --nodeps gnome-abrt" .
Symptom:
Tried installing CentOS 7.3.1611 i686 AltArch version as
Hyper-V guest.
After [Begin Installation],
the installer just sits for hours in "Creating disklabel on /dev/sda".
In background, dd if=/dev/zero of=/dev/sda bs=512 seek=2048 count=2048
is running, not to finish.
CentOS 7.2.1511 i686 did not have a problem.
Cause: a 32-bit kernel specific bug in Hyper-V storage driver, drivers/scsi/storvsc_drv.c .
Resolution: patch the kernel, or use the kernel provided on this page. CentOS 7.4 i686 has this fixed.
(as reported as CentOS#15374)
Symptom: Booting kernel-3.10.0-862.11.6.el7.centos.plus.1.i686 as Hyper-V guest. The boot stops at
[ OK ] Mounted RPC Pipe File System. [ OK ] Reached target rpc_pipefs.target.then freezes.
Using single init=/bin/sh
kernel option, it does drops to shell,
but invoking an external command will kill the init (/bin/sh) by
SIGSEGV (exitcode=0x0000000b).
[ OK ] Started Plymouth switch root service. [ 3.029778] systemd-journald[74]: Received SIGTERM from PID 1 (systemd). sh-4.2# [ 5.137207] psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x01, buttons: 0/0 [ 5.147197] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input3 [ 5.155562] input: AT Translated Set 2 keyboard as /devices/LNXSYSTM:00/device:00/PNP0A03:00/device:08/VMBUS:01/d34b2567-b9b6-42b9-8778-0a4ec0 b955bf/serio2/input/input4 sh-4.2# sh-4.2# sh-4.2# echo * bin boot dev etc export home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var sh-4.2# sh-4.2# sh-4.2# ls bin dev export lib media opt root sbin sys usr boot [ 12.437659] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b [ 12.437659] [ 12.438580] CPU: 0 PID: 1 Comm: sh Tainted: G W ------------ 3.10.0-862.11.6.el7.centos.plus.1.i686 #1 [ 12.438580] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 05/23/2012 [ 12.438580] Call Trace: [ 12.438580] [<d59d81e3>] dump_stack+0x16/0x18 [ 12.438580] [<d59d418b>] panic+0x98/0x1b7 [ 12.438580] [<d545cc0b>] do_exit+0x8eb/0x8f0 [ 12.438580] [<d5468a17>] ? recalc_sigpending+0x17/0x50 [ 12.438580] [<d545cc84>] do_group_exit+0x34/0xa0 [ 12.438580] [<d546b319>] get_signal_to_deliver+0x189/0x590 [ 12.438580] [<d5416e95>] do_signal+0x45/0x960 [ 12.438580] [<d5468a17>] ? recalc_sigpending+0x17/0x50 [ 12.438580] [<d546945c>] ? __set_task_blocked+0x3c/0x90 [ 12.438580] [<d546b8c7>] ? __set_current_blocked+0x37/0x70 [ 12.438580] [<d546ba9f>] ? sigprocmask+0x7f/0xc0 [ 12.438580] [<d5417817>] do_notify_resume+0x67/0x80 [ 12.438580] [<d59df6b9>] work_notifysig+0x30/0x37 [ 12.438580] Kernel Offset: 0x14400000 from 0xc1000000 (relocation range: 0xc0000000-0xf7ffdfff) [ 12.480357] ------------[ cut here ]------------
Cause: arch/x86/include/asm/uaccess_32.h wasn't updated in sync with uaccess_64.h . Upstream RHEL only has x86_64 release, so x86_32 fixes are often left behind.
Resolution: Patch.
Symptom: When plain Xorg Xserver is started as
xinitthe mouse and keyboard loses input. You can't terminate the Xserver via Ctrl-Alt-BackSpace nor switch to other Virtual Terminal (VT) by Ctrl+Alt+Fn. The Xorg could be killed from other (possibly ssh) shell to restore state.
/var/log/Xorg.0.log says:
(II) LoadModule: "evdev" (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so (II) Module evdev: vendor="X.Org Foundation" compiled for 1.17.2, module version = 2.9.2 Module class: X.Org XInput Driver ABI class: X.Org XInput driver, version 21.0 (II) systemd-logind: got fd for /dev/input/event1 13:65 fd 17 paused 1 (II) systemd-logind: releasing fd for 13:65 (II) config/udev: Adding input device Power Button (/dev/input/event0) (**) Power Button: Applying InputClass "evdev keyboard catchall" (**) Power Button: Applying InputClass "system-keyboard"
Cause:
The Xorg was compiled with --enable-systemd-logind
,
which will be the default when compiled on Dbus and systemd aware host.
(Mass build systems using mock sometimes does NOT fall in this category)
When compiled with systemd-logind integration,
Xorg needs vt1
option when invoked from VT1 (/dev/tty1).
Some officially built Xorg binary, as in CentOS 7, does NOT have the integration, and thus does not suffer.
To determine whether Xorg is compiled with systemd-logind support, search for string in the binary:
$ strings -a /usr/bin/Xorg | grep 'systemd-logind: releasing fd' systemd-logind: releasing fd for %u:%uIf Xorg contains this string, systemd-logind support is integrated.
Workaround:
Always add vt1
option for Xserver, as
xinit -- vt1
/usr/bin/startx
does this automatically, so use startx if appropriate.
When systemd-logind integration is properly working, the /var/log/Xorg.0.log will be as follows:
(II) LoadModule: "evdev" (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so (II) Module evdev: vendor="X.Org Foundation" compiled for 1.17.2, module version = 2.9.2 Module class: X.Org XInput Driver ABI class: X.Org XInput driver, version 21.0 (II) systemd-logind: got fd for /dev/input/event1 13:65 fd 17 paused 0 (II) Using input driver 'evdev' for 'Power Button' (**) Power Button: always reports core events (**) evdev: Power Button: Device: "/dev/input/event1" (--) evdev: Power Button: Vendor 0 Product 0x1 (--) evdev: Power Button: Found keys (II) evdev: Power Button: Configuring as keyboard (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1/event1" (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) (**) Option "xkb_rules" "evdev" (**) Option "xkb_layout" "jp" (II) config/udev: Adding input device Power Button (/dev/input/event0) (**) Power Button: Applying InputClass "evdev keyboard catchall" (**) Power Button: Applying InputClass "system-keyboard"
Resolution:
Use Xorg compiled with --disable-systemd-logind
.
Symptom:
Passed single
as kernel command line,
to drop into single-user mode.
Root password is denied as:
Give root password for maintenance (or type Control-D to continue): ******** sulogin: crypt failed: Invalid argument Login incorrect Give root password for maintenance (or type Control-D to continue): _
Cause:
SELinux is in enforcing mode, and
/etc/shadow
is not labelled correctly as
----------. root root system_u:object_r:shadow_t:s0 /etc/shadow
Resolution:
Boot with enforcing=0 single
kernel option.
You should be able to login as root.
At shell prompt, do restorecon -v /etc/shadow
to reset the SELinux context.
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:
[ 39.348668] libata version 3.00 loaded. [ 39.625253] pata_ali 0000:00:0f.0: can't derive routing for PCI INT A [ 39.696198] scsi host0: pata_ali [ 39.720877] scsi host1: pata_ali [ 39.722588] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14 [ 39.722813] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15 ... [ 39.920777] ata1.00: ATA-6: ST340810A, 3.39, max UDMA/100 [ 39.960749] ata1.00: configured for MWDMA2
Cause: You're likely using a Revision 0xC1 of the chipset. Linux kernel (even the latest 4.8) doesn't have special handling for this chipset and reverts to MWDMA2.
Resolution: Patch. Patched kernel should report as
[ 55.006883] libata version 3.00 loaded. [ 55.015390] pata_ali 0000:00:0f.0: can't derive routing for PCI INT A [ 55.166479] scsi host0: pata_ali [ 55.196424] scsi host1: pata_ali [ 55.198219] ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14 [ 55.198449] ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15 [ 55.397480] ata1.00: ATA-6: ST340810A, 3.39, max UDMA/100 [ 55.397714] ata1.00: 78165360 sectors, multi 16: LBA [ 55.437145] ata1.00: configured for UDMA/33
Symptom: Running CentOS 7.3.1611 kernel (3.10.0-514) on Intel integrated 865G video. Several lines at top of the text screen is blank/garbled.
Cause: New bug introduced in backported DRM code.
Resolution:
Patch.
This patch is now included in kernel.org linux-4.4.
Also this problem is fixed in CentOS 7.4.1708 (3.10.0-693) kernel.
Symptom: 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_baseIf 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 # 1360x768 widescreen #options matroxfb_base xres=1360 yres=768 fv=60 hslen=112 vslen=7 upper=18 lower=3 left=256 right=64See 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.
Symptom: Using Matrox G200 graphics card and widescreen monitor. Full 1360x768 resolution was available in CentOS 6 X desktop, but only 1024x768 is provided in CentOS 7, which seems to use VESA driver.
Cause: Xorg server of RHEL7 is patched to not find legacy xorg-x11-drv-* drivers which isn't shipped with RHEL7. MGA (xorg-x11-drv-mga) is among such driver.
Resolution: Replace the xorg-x11-server-Xorg with the one provided on this page, and additionally install the driver below. This will enable full resolution available for Matrox graphics cards.
Symptom:
Tried yum --disablerepo=\* --enablerepo=c7-media group install
on respun DVD.
After grinding for 15 minutes, yum complains:
Package anaconda-gui-21.48.22.93-1.el7.v12.0.1.i586.rpm is not signed
Workaround:
Use yum --nogpgcheck
option.
Symptom: Using SoundBlaster AWE32 soundcard. Since this card isn't detected automatically, I tried to load the driver by insmod, but fails as following:
# modprobe snd_sbawe sbawe 01:01.00: activated sbawe 01:01.02: activated sbawe: fatal error - EMU-8000 synthesizer not detected at 0x620 sbawe 01:01.00: disabled sbawe 01:01.02: disabled
Workaround:
Add snd_sbawe seq_ports=0
option.
This skips detection of EMU-8000 wavetable sequencer, so
PCM part of driver loads.
# modprobe snd_sbawe seq_ports=0 sbawe 01:01.00: activated sbawe 01:01.02: activated
Note: snd_sbawe.ko module is not compiled in for stock CentOS kernel.
Symptom:
When modprobe snd-sbawe
, it works, but
kernel warning is issued:
sbawe 01:01.00: [irq 5] sbawe 01:01.00: [dma 1] sbawe 01:01.00: [dma 5] sbawe 01:01.00: [io 0x0220-0x022f] sbawe 01:01.00: [io 0x0330-0x0331] sbawe 01:01.00: [io 0x0388-0x038b] sbawe 01:01.00: activated sbawe 01:01.02: [io 0x0620-0x0623] sbawe 01:01.02: [io 0x0a20-0x0a23] sbawe 01:01.02: [io 0x0e20-0x0e23] sbawe 01:01.02: activated ------------[ cut here ]------------ WARNING: at fs/sysfs/dir.c:526 sysfs_add_one+0x98/0xc0() sysfs: cannot create duplicate filename '/devices/virtual/sound/card0/seq-oss-0-0' Modules linked in: snd_emu8000_synth(+) snd_emux_synth snd_util_mem snd_seq_virmidi ... Call Trace: [<c098372a>] dump_stack+0x16/0x18 [<c0455b5c>] warn_slowpath_common+0x6c/0xa0 [<c05f08c8>] ? sysfs_add_one+0x98/0xc0 [<c05f08c8>] ? sysfs_add_one+0x98/0xc0 [<c0455bce>] warn_slowpath_fmt+0x3e/0x60 [<c05f08c8>] sysfs_add_one+0x98/0xc0 [<c05f0a6a>] create_dir+0x6a/0xc0 [<c05f0dae>] sysfs_create_dir+0x8e/0xf0 ... ---[ end trace f86334c6ce0dff24 ]--- ------------[ cut here ]------------ WARNING: at lib/kobject.c:196 kobject_add_internal+0x1fa/0x320() kobject_add_internal failed for seq-oss-0-0 with -EEXIST, don't try to register things with the same name in the same directory. Modules linked in: snd_emu8000_synth(+) snd_emux_synth snd_util_mem snd_seq_virmidi ... Call Trace: [<c098372a>] dump_stack+0x16/0x18 [<c0455b5c>] warn_slowpath_common+0x6c/0xa0 [<c067c0ca>] ? kobject_add_internal+0x1fa/0x320 [<c067c0ca>] ? kobject_add_internal+0x1fa/0x320 [<c0455bce>] warn_slowpath_fmt+0x3e/0x60 [<c067c0ca>] kobject_add_internal+0x1fa/0x320 [<c076ad8f>] ? device_private_init+0x1f/0x60 [<c067c635>] kobject_add+0x35/0x80 [<c076aee6>] device_add+0x116/0x730 [<e0c08cb3>] ? snd_device_new+0x43/0xa0 [snd] [<e0c08cb3>] ? snd_device_new+0x43/0xa0 [snd] [<e0c08d00>] ? snd_device_new+0x90/0xa0 [snd] [<e0bb5295>] snd_seq_device_dev_register+0x15/0x50 [snd_seq_device] [<e0c089e9>] __snd_device_register.part.0+0x19/0x30 [snd] [<e0c08a47>] snd_device_register+0x47/0x60 [snd] [<e0cac32e>] snd_emux_init_seq_oss+0xce/0xf0 [snd_emux_synth] ... ---[ end trace f86334c6ce0dff25 ]---
Resolution: Patch.
Symptom: RTL8019AS and SoundBlaster AWE32 both in PnP mode.
Manually modprobe ne; modprobe snd-sbawe
will recognize the driver, but ne
driver does not work.
It seems to stop working after modprobe snd-sbawe
.
Resolution: Try modprobe in opposite order, i.e
modprobe snd-sbawe; modprobe ne
.
snd-sbawe
driver seems to be less forgiving in
PnP resource allocation, so let it allocate resources first,
then load ne
which is more flexible in resource allocation.
Symptom: On boot, kernel panics at early stage:
... md: ... autorun DONE. List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-514.10.2.el7.v24.i586 #1 Hardware name: System Manufacturer System Name/ALLADIN5, BIOD 0626 07/15/95 c0bf90c7 88c46b0c df44bf10 df44bce4 c098320a df44bee4 c097ec83 c0b298a4 c0d959e0 c0b5ad7b df44bf10 00008001 df6d4000 df44fb40 c0c7f05e c0b1b1c8 df44bf10 df44bf28 c0594db2 00000000 df6d410e 00000000 dffdda80 c0b1acd7 Call Trace: [<co98320a>] dump_stack+0x16/0x18 [<c097ec83>] panic+0x92/0x18c [<c0c7f05e>] mount_block_root+0x249/0x251 [<c0594db2>] ? SyS_mknodat+0x162/0x1f0 [<c0594e6d>] ? SyS_mknod+0x2d/0x30 [<c0c7f0c1>] mount_root+0x5b/0x61 ...
Cause:
The grub menu is lacking
initrd16 /boot/initramfs-3.10.0-514.10.2.el7.v23.i586.img
line.
You are very likely have interrupted the kernel installation by Ctrl+C,
which leaves grub.cfg
in transient state, missing initrd16 line.
Resolution: The easiest way is to reinstall the kernel, after booting in previous kernel:
# yum reinstall ./kernel-3.10.0-514.10.2.el7.v24.i586.rpm
Symptom:
Used startx
to start a desktop environment.
Watching the top
(1) output.
pulseaudio
is hogging the cpu and desktop initialization crawls
to nearly halt.
Workaround:
Disable autospawn of pulseaudio.
Edit /etc/pulse/client.conf
, and add
autospawn = noThis will prevent pulseaudio from automatically starting. After the desktop had initialized, manually invoke pulseaudio by
pulseaudio --start
.
Since pulseaudio is designed for platform where CPU power >> soundcard processing power, you are not likely to have satisfactory performance when using ISA soundcards. PCI soundcard is recommended.
$ sudo more /sys/devices/system/cpu/vulnerabilities/* :::::::::::::: /sys/devices/system/cpu/vulnerabilities/meltdown :::::::::::::: Vulnerable :::::::::::::: /sys/devices/system/cpu/vulnerabilities/spectre_v1 :::::::::::::: Mitigation: Load fences :::::::::::::: /sys/devices/system/cpu/vulnerabilities/spectre_v2 :::::::::::::: Vulnerable: Retpoline without IBPB
Cause: RHEL doesn't backport everything for i686 things since it's x86_64 only; CentOS Altarch i686 kernel may only have partial support for Meltdown/Spectre vulnerabilities.
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;