- RU.LINUX (2:5077/15.22) ------------------------------------------ RU.LINUX -
From : Mikel Ivanov aka ABS 2:5009/3.46 29 Mar 00 14:34:46
Subj : ATX - выключать в реалмоде
-------------------------------------------------------------------------------
Hello Kirill!
28 Mar 00 16:16, Kirill Petroff wrote to Mikel Ivanov Aka Abs:
MA>> Есть такой трабл, характерен для матерей на неинтеловских
MA>> чипсетах, лечится либо патченьем ядра на предмет выключения тачки
MA>> в реалмоде (там 15h прерывание юзается) либо переходом на
MA>> 2.3.x/2.4.x ядра. У них эта опция (выключать в реале) встроенна.
KP> и как это ядро пропатчить по этому поводу? где патч взять и прочие
KP> доки?
док нету, патча тоже (если интересно то можешь поискать в инете (патч от
Линуса)), остался токма кусочек process.c
/*
Remap the kernel at virtual address zero, as well as offset zero
from the kernel segment. This assumes the kernel segment starts at
virtual address 0xc0000000.
*/
/*
Make sure the first page is mapped to the start of physical memory.
It is normally not mapped, to trap kernel NULL pointer dereferences.
*/
pg0 [0] = 7;
/*
Use `swapper_pg_dir' as our page directory. We bother with
`SET_PAGE_DIR' because although might be rebooting, but if we change
the way we set root page dir in the future, then we wont break a
seldom used feature ;)
*/
SET_PAGE_DIR(current,swapper_pg_dir);
/*
For the switch to real mode, copy some code to low memory. It has
to be in the first 64k because it is running in 16-bit mode, and it
has to have the same physical and virtual address, because it turns
off paging. Copy it near the end of the first page, out of the way
of BIOS variables.
*/
/*
Set up a GDT from which we can load segment descriptors for real
mode. The GDT is not used in real mode; it is just needed here to
prepare the descriptors.
*/
/*
Load the data segment registers, and thus the descriptors ready for
real mode. The base address of each segment is 0x100, 16 times the
selector value being loaded here. This is so that the segment
registers don't have to be reloaded after switching to real mode:
the values are consistent for real mode operation already.
*/