Re: lug-bg: Slackware 9 на 386 - Kernel panic
- Subject: Re: lug-bg: Slackware 9 на 386 - Kernel panic
- From: Pavel <pavel@xxxxxxxxxxx>
- Date: Thu, 25 Sep 2003 16:11:06 +0300
- Organization: Unix-BG.org
On Mon, 22 Sep 2003 12:42:43 +0300
Georgi Chorbadzhiyski <gf@xxxxxxxxxxx> wrote:
> >> >> > Checking if this processor honours the WP bit even in supevisor
> >> >> > mode.... No. Kernel panic: This kernel doesn't support CPU's with
> >> >> > broken WP. Recompile it for a 386!
> >> >>
> >> >> Съобщението е много просто "Recompile it for a 386"
> >> >> Ще трябва да си прекомпилираш kernel-а, като кажеш че си твърдо с 386.
> >
> > --cut--
> > айде бре... иначе компетентно казано ;-)
> > не, че е лошо да се прекомпилират и модулите, ама не е казано че трябва... и
> > btw kernel image не протестира ако не са били прекомпилирани модулите в този
> > случай на промяна на конфига. При смяната на cpu type за kernel image не е
> > нужно да прекомпилираш и модулите и за това причината е много проста - това
> > касае само асемблерската част от кода (много low-level) която така или иначе
> > не се билдва на модули (а винаги остава монолитно към kernel image, това е
> > super критичен момент за ядрото и никога не се изкарва на модули), а
> > компилирани вече модули нямат и не могат и да имат *конфигурациона*
> > зависимост към тази част от кода.
> > Това може да се изпита съвсем елементарно. Например: CPU i686, kernel image за
> > i686 + модули... след това ребилдваме kernel image-a за i386 (без да пипаме
> > VERSION's редовете от top level Makefile-а), а модулите не (т.е. без make
> > modules modules_install) ... boot-вама kernel image за i386 и ще видим, че
> > зарежда спокойно модулите които са били получени от i686 конфига. Обратното
> > също може - kernel image за i686 да зарежда kernel modules получени за i386.
> >
> > Чорбаджийски, ако все още мислиш, че трябва и модулите да се прекомпилират в
> > този случай репортвай бъг на LKML срещу всички Linux kernels ;-)
> > Ще се радвам да бъда опроверган ... съвсем сериозно;-)
> >
>
> айде бре... иначе компетентно казано...
>
> Според теб с ядро компилирано за i386 мога да ползвам модули компилирани за
> i686? Дали в i386 кернела има емулация за всички инструкции който са нови и
> се "срещат" само примерно в 486, Pentium, Pentium Pro?
;))) всичко зависи на каква машина се изпълнява това
ако сценария на Данчев се изпълнява на i686 няма проблем , просто кернела
няма да е с код опримизиран за i686, а модулите да....
а човека който почна threada просто трябва да си прекомпилира кернела и
модулите(ако използва такива) за i386,
естествено че код за i686 не може да се изпълнява на 386
> Модулите са част от кернела нали? Компилират се със същите оптимизации.
>
> Ето ти малка извадка от arch/i386/Kconfig на 2.6.0-test5-mm1
> Ключовата фраза по-долу е "not necessarily run", което в случая за i686
> модули insmod-нати в i386 компилирано ядро е само "not run".
ако процесора е 386 , да
инструкциите на 686 са superset na 386. (mmx .. alabala)
става въпрос на low-level оптимизациите на gcc : -march=i386, -march=pentium-mmx например
(не за -mcpu)
по същата логика , код за pentuim върви на pentium-4 , но не и обратното.....
кернела и модулите въобще не ги бърка това...
> <quote>Only "386" kernels will run on a 386 class machine.</quote>
>
> Ако не вярваш пробвай, ще почнеш да получаваш чудесни SIGILL или още
> по-вероятно Ooopses.
>
--------------
http://darkblue.nm.ru/pgp/
--------------
Respect...
Attachment:
pgp2pizJnJzO6.pgp
Description: PGP signature
|