Определено ти трябва нова версия на ядрото.
mm- пачовете е добре също , макар че те са по екстериментални , неща който се тестват преди да влязат
официално.
Това съобщение ,според мен е в неправилна конфигурация
на ядрото: Нещо двата процесора не могат да се разберат
за прекъсванията ...
Би било добре ,поне да разгледаш какво е конфигурирано , или да компилираш друго. Аз никога не ползвам готовото ядро , /поне не за пентиум процесорите /, защото ти сигурно си с ядро ,конфигурирано за 386 , /то има ли такива някъде/
То твоя процесор май подържа хардуерна виртуализация "kvm" ?
Не бих се колебал и секунда на твое място!
Изтегляш на linux-2.6.20 / в „/usr/src“ / от:
<a href="" target="_blank">
ftp://ftp.kernel.org/pub/linux/kernel/v2.6</a>
Изтегляне на patch-2.6.21-rc6.bz2 / в „/usr/src“ / от:
http://kernel.org/patch-2.6.21-rc6 е препач към linux-2.6.20 , ако има и мм пач ,той би бил
2.6.21-rc6-mmХ.bz2 ,сега точно няма.
tar xvf linux-2.6.20.tar.bz2
ln -s linux-2.6.20 linux // ако я има вече махаме старата
cd linux
bzip2 -dc ../patch-2.6.21-rc6.bz2 | patch -p1 // Пачваме
Ако имаш други пачове:
patch -p1 < път до файла / име на пача
Конфигурираш с:
make xconfig
Ако даде грешка ,това значи не инсталирани „dev“ пакети.
libc6-dev , gcc , qt3-dev-tools , X-dev ...
Опциите ,които не са ти ясни , не ги променяй. Конфигуратора е взел конфигурацията на ядрото с което си / от /boot/config-xxx или другаде /
Конфигурацията се записва в „ .config “ файла , в директорията на сорса.
/ Конфигуратора ще промени някои неща ,заради зависимости ,липси и т.н./.
PP.
Съобщението IO-APIC ...
е в:linux/arch/i386/kernel/io_apic.c
* Sanity check, is the ID really free? Every APIC in a
* system must have a unique ID or we get lots of nice
* 'stuck on smp_invalidate_needed IPI wait' messages.
*/
if (check_apicid_used(phys_id_present_map,
mp_ioapics[apic].mpc_apicid)) {
printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
apic, mp_ioapics[apic].mpc_apicid);
for (i = 0; i < get_physical_broadcast(); i++)
if (!physid_isset(i, phys_id_present_map))
break;
if (i >= get_physical_broadcast())
panic("Max APIC ID exceeded!\n");
printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
i);
physid_set(i, phys_id_present_map);
mp_ioapics[apic].mpc_apicid = i;
} else {
physid_mask_t tmp;
tmp = apicid_to_cpu_present(mp_ioapics[apic].mpc_apicid);
apic_printk(APIC_VERBOSE, "Setting %d in the "
"phys_id_present_map\n",
mp_ioapics[apic].mpc_apicid);
physids_or(phys_id_present_map, phys_id_present_map, tmp);
}
Ама къде е дефинирана
check_apicid_used , един господ знае.