Nuclear compilation problem detailed

xiaoxiao2021-03-06  78

For users, compiling a kernel version is not only simple to upgrade kernel and software. In general, the compiled kernel works well, but some functions will fail when initialization (accurately said in the system initialization phase, init execute rc.sini and rcx.d) will fail. The failure of the failure varies from person to person, such as some people install Red Hat 9.0 USB devices in the notebook, IPTable and RPM fail, and some people fail when installing the PCMCIA device and FireWire devices. If some packages cannot work properly, try to download the latest version or recompile, install the old version, or to solve the problem by doing some corresponding modifications. Note Please back up the file before the operation. Some common errors will be summarized here. Typical problems and solutions RPM issues After entering the compiled kernel, there is some unused commands related to rpm, and the following errors appear:

RPMDB: Unable to join the environment

Error: DB4 Error (11) from Dbenv-> Open: Resource Temporarily Unavailable

Error: Cannot Open Packages Index Using DB3 - Resource Temporarily Unavailable (11)

Error: Cannot Open Packages Database In / VAR / LIB / RPM

No packages

The solution is to execute the "Export LD_Assume_kernel = 2.2.25" command or write it to / etc / bashrc. Glibc problem users can upgrade the GLIBC standard library package to solve this problem. Because of some distribution, such as Red Hat 9.0, the default installed GLIBC may be modified by the Red Hat core group. The download address of the package is: ftp://ftp.rpmfind.net/linux/redhat/Updates/9/EN/OS/i386/glibc-2.3.2-27.9.i386.rpm. You can upgrade together with the following packages: ftp://ftp.rpmfind.net/linux/redhat/Updates/9/EN/OS/i386/glibc-common-2.3.2-27.9.i386.rpm ftp: / /ftp.rpmfind.net/linux/redhat/updates/9/EN/OS/i386/glibc-devel-2.3.2-27.9.i386.rpm ftp://ftp.rpmfind.net/linux/redhat/Updates/ 9 / EN / OS / I386 / GLIBC-UTILS-2.3.2-27.9.i386.rpm If you use "rpm -UVH glibc *" failed, use the command "rpm -e" first delete the old glibc, then use the command " RPM -UVH --force glibc * "Forced installation. HotPlug (hot plug) problem kernel's support for hot swaps is related to the KMOD kernel thread. The solution is to replace all / proc.sysinit in / PROC / KSYMS in /tc/rc.system. Perform the following command:

#mv /etc/rc.d/rc.system /etc/rc.d/rc.system.bak

#sed -e 's /// proc // kallsyms /// proc // kallsyms / g' /etc/rc.d/rc.system.bak> /etc/rc.d/rc.system

The SYSFS problem solution is: ◆ Creating a directory / sys: #mkdir / sys ◆ Find "mount -f / proc" in the /etc/rc.d/rc.sinit file, join "Mount -f / Sys) ". ◆ Similarly in the /etc/rc.d/rc.sinit file, "Action $" Mounting Proc FileSystem: "Mount -n -t Proc / Proc / Proc" is added to "ACTION $" Mounting Sysfs FileSystem: "mount -n -t sysfs / sys / sys". ◆ Add "None / Sys System DEFAULTS 0 0" in the / etc / fstab file. ◆ Found "awk '$ 2 ~ / ^ // $ | ^ // proc | ^ // dev / {next}", changed to "awk' $ 2 ~ / ^" in the Halt_Get_remaining function // $ | ^ // proc | ^ // sys | ^ // dev / {next}. USB issues The USB module used in the new 2.6.0 kernel has been renamed, so you need to modify the code initialized to the USB subsystem in /etc/rc.siSinit. Change all "keybdev" in this file to "USBKBD", "MouseDev" is changed to "USBMouse", "/ proc / bus / usb" change to "/ sys / bus / usb", and in / etc / init. The same modifications are made in D / Halt. Also, you have to find "NeedusBStorage" in /etc/rc.system, do the following modifications: needusbstorage =

IF [$ usb = "1"]; then

NeedusbStorage = `lc_all = c grep -e" ^ i.1 * CLS = 08 "/ sys / bus / usb / defices 2> / dev / null`

Action $ "Initializing USB 1.1 Host Controller:" Modprobe OHCI-HCD 2> / dev / null

ACTION $ "Initializing USB HID Interface:" Modprobe Hid 2> / dev / null

Action $ "Initializing USB Keyboard:" Modprobe USBKBD 2> / dev / null

Action $ "Initializing USB Mouse:" Modprobe USBMOUSE 2> / dev / null

Fi

If the USB bus is 2.0, "OHCI-HCD" is also required to "EHCI-HCD". Sound Problem The module name of the sound portion has also changed. My notebook original sound card driver is I810_AUDIO, and now it has been changed to SND-Intel8x0. Therefore, you need to add the following to /etc/modprobe.conf:

Alias ​​Char-Major-14 Soundcore

Alias ​​Sound Snd-Intel8x0

Alias ​​Sound-Slot-0 Snd-Intel8x0

Alias ​​SND-CARD-0 SND-Intel8x0

Alias ​​Sound-Service-0-0 SND-MIXER-OSS

Alias ​​Sound-Service-0-1 SND-SEQ-OSS

Alias ​​Sound-Service-0-3 SND-PCM-OSS

Alias ​​Sound-Service-0-8 SND-SEQ-OSS

Alias ​​Sound-Service-0-12 SND-PCM-OSS

Install snd-intel8x0 / sbin / modprobe --ignore-install snound-slot-0 && {/ bin / amix-minimal -f /etc/.aumixrc -l> / dev / null 2> & 1; / bin / true;

REMOVE SND-Intel8x0

{/ BIN / AUMIX-minimal -f /etc/.aumixrc -s> / dev / null 2> & 1; / bin / true;

/ sbin / modprobe -r --ignore-remove snoud-slot-0

Then perform the "ModProbe Sound" load module and use the following command to check the sound card driver:

#cat / proc / asseOound / Cards

The results show are as follows:

0 [Si7012]: ICH - SIS Si7012

SIS Si7012 AT 0xDC00, IRQ 11

VMware problem solution is: ◆ Replace all "/ proc / ksyms" in /usr/bin/vmware-config.pl is "/ proc / kallsyms". Use the "SED" command to achieve this. ◆ Re-run the script, compile new kernel modules using the kernel header file. If an error occurs during the compilation process, you should enter / usr / lib / vmware / modules / source, use the following command to subcontain the vmnet.tar:

#TAR XVF VMNet.tar

◆ Enter the VMNet-Only directory to modify the bridge.c file. "Atomic_ADD (SKB-> TRUESIZE, & SK-> WMEM_ALLOC);" Modified to "Atomic_ADD (SKB-> TRUESIZE, & SK-> SK_WMEM_ALLOC);" and change "protinfo" to "SK_PROTINFO" with a similar manner. ◆ Repack the VMNet-Only directory with the following command to vmmon.tar:

#TAR CVF VMMON.TAR VMNET-ONLY.

If the above operation is still failed, another solution is to download VMware-Any-Updatexx.tar.gz to http://ftp.cvut.cz/vmware/, unzip it into any directory, execute it Runme.pl. Other problems may have any other issues, but no matter what problem, you can try to resolve: 1. The kernel assembly is compiled as a module as much as possible. Perform the following command to quickly rebuild the kernel:

#make all modules_install install

2. Most of the cases of software failure are caused by the module names have been changed, and the scripts under /etc/rc.d/rc.system and /etc/rcx.d/* are not modified. Therefore, modifying related entries can be improved, but this also requires considerable background knowledge. If you feel trouble, you can focus all load modules in /etc/rc.d/rc.local. E.g:

Modprobe Eth0

Modprobe isofs

MODPROBE LOOP

Modprobe vfat

转载请注明原文地址:https://www.9cbs.com/read-95015.html

New Post(0)