Forum Linux.pl
System => Konfiguracja => Wątek zaczęty przez: Azirek w 2007-01-28, 16:42:43
-
Ściągnąłem sobie waniliowe jajko 2.4.34 i nałożyłem patcha 2.4.34-lck1.bz2. Użyłem podobnej konfiguracji z poprzedniej wersji (2.4.31-lck1), z którą nie miałem żadnych problemów. Wykonałem wszystko jak należy make dep i przy próbie kompilacji make bzImage zgłasza błąd:
make[1]: Entering directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.34-lck1/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-builtin-sprintf -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=k6 -fno-unit-at-a-time -nostdinc -iwithprefix include -DKBUILD_BASENAME=i387 -c -o i387.o i387.c
i387.c: In function `__save_init_fpu':
i387.c:80: error: structure has no member named `context_swtch'
make[1]: *** [i387.o] Błąd 1
make[1]: Leaving directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] Błąd 2
patch-2.4.34-lck1 zawiera wszystkie patche, z których można wyodrębnić np. 010-lckbase.diff.bz2 <-- właśnie ten patch ingeruje właśnie w plik /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c
Patch ten jest najistotniejszy, jego opis:
Base lck contains the batch O(1) scheduler, kernel preemption, low latency and CK interactivity:
Nie wiem jak sobie z tym poradzić, myślałem na początku, że "context_swtch" to literówka i powinno być "context_switch" ale niestety to nie to. Co można z tym fantem zrobić?
Moge gcc to wersja 3.4.5. System Slackware 10.2.
-
2007-01-28 16:42:43 Azirek napisał:
> Ściągnąłem sobie waniliowe jajko 2.4.34 i nałożyłem patcha 2.4.34-lck1.bz2. Użyłem podobnej
> konfiguracji z poprzedniej wersji (2.4.31-lck1), z którą nie miałem żadnych problemów. Wykonałem
> wszystko jak należy make dep i przy próbie kompilacji make bzImage zgłasza błąd:
>
> make[1]: Entering directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
> gcc -D__KERNEL__ -I/usr/src/linux-2.4.34-lck1/include -Wall -Wstrict-prototypes -Wno-trigraphs
> -O2 -fno-strict-aliasing -fno-common -fno-builtin-sprintf -fomit-frame-pointer -pipe
> -mpreferred-stack-boundary=2 -march=k6 -fno-unit-at-a-time -nostdinc -iwithprefix include
> -DKBUILD_BASENAME=i387 -c -o i387.o i387.c
> i387.c: In function `__save_init_fpu':
> i387.c:80: error: structure has no member named `context_swtch'
> make[1]: *** [i387.o] Błąd 1
> make[1]: Leaving directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
> make: *** [_dir_arch/i386/kernel] Błąd 2
>
> patch-2.4.34-lck1 zawiera wszystkie patche, z których można wyodrębnić np. 010-lckbase.diff.bz2
> <-- właśnie ten patch ingeruje właśnie w plik
> /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c
>
> Patch ten jest najistotniejszy, jego opis:
> Base lck contains the batch O(1) scheduler, kernel preemption, low latency and CK
> interactivity:
>
> Nie wiem jak sobie z tym poradzić, myślałem na początku, że "context_swtch" to
> literówka i powinno być "context_switch" ale niestety to nie to. Co można z tym fantem
> zrobić?
> Moge gcc to wersja 3.4.5. System Slackware 10.2.
A bez patcha się kompiluje?
Jeszcze jedno pytanko - nie grzebałes w Makefile'u lub w zmiennych środowiskowych przy flagach kompilatora?
-
2007-01-28 16:59:33 Lorenzo napisał:
> A bez patcha się kompiluje?
> Jeszcze jedno pytanko - nie grzebałes w Makefile'u lub w zmiennych środowiskowych przy flagach
> kompilatora?
Nie grzebałem w Makefile i nie zmieniałem flag. Nie próbowałem kompilować wyniliowego jaja. Nawet jeśli się da to zależy mi tylko żeby było z tym patchem.
Znalazłem coś ciekawego. W pliku i386.c w wierszu 78 jest napisane:
/* AMD CPUs leak F?P. Clear it here */
Posiadam procesor AMD K6-2 więc usunąłem cały następny 79 wiersz, który zawierał:
asm volatile("ffree %%st(7) ; fildl %0" ::asm volatile("ffree %%st(7) ; fildl %0" :: "m" (kstat.context_swtch)); "m" (kstat.context_swtch));
I dalsza kompilacja powiodła się. Zastanawiam się tylko czy to było prawidłowe z mojej strony.
-
Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)
P.S. K6-2 rulez :D
-
2007-01-28 19:29:55 Lorenzo napisał:
> Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)
>
> P.S. K6-2 rulez :D
:)
azirek@hermes$uname -a
Linux hermes 2.4.34-lck1 #3 nie sty 28 17:01:08 CET 2007 i586 k6-2 i386 GNU/Linux
azirek@hermes$cat /proc/sys/kernel/lowlatency
1
-
2007-01-28 19:35:34 Azirek napisał:
> 2007-01-28 19:29:55 Lorenzo napisał:
>
> > Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)
> >
> > P.S. K6-2 rulez :D
>
> :)
>
> azirek@hermes$uname -a
> Linux hermes 2.4.34-lck1 #3 nie sty 28 17:01:08 CET 2007 i586 k6-2 i386 GNU/Linux
> azirek@hermes$cat /proc/sys/kernel/lowlatency
> 1
>
Hi,
Sorry i realise this isn't an english forum, but your question is the only result from google. I'm having the same error with i387.c when trying to compile 2.4.34 with the low-latency patch could you repeat the solution in english for me?
My apologies again.
Andrew
-
2007-02-02 13:39:57 andrewgatt napisał:
> Hi,
>
> Sorry i realise this isn't an english forum, but your question is the only result from google.
> I'm having the same error with i387.c when trying to compile 2.4.34 with the low-latency patch
> could you repeat the solution in english for me?
>
> My apologies again.
>
> Andrew
Look at the 78 line in the file /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c
There is wrote: "/* AMD CPUs leak F?P. Clear it here */". So I cleared line 79 and next I compiled successful the kernel.