Нали ме знаете, че съм си гаден geek, та винаги гледам да съм с последните версии на каквото е излязло … дори с последни версии на ядрото на Slackware-а с който работя в къщи.
Kernel-а който излезе на 9-ти беше 2.6.32.3 и разбира се първата ми работа беше да го инсталирам, да го прекомплирам за да открива и 4-те GB RAM и да си направя initrd.gz за да мога да си пускам машината (аз съм гаден параноик и съм я криптирал) …
Всичко мина добре. Влязох като root и махнах стария fglrx.9.12 компилиран за 2.6.29.6.
Стартирах инсталатора … и каква беше изненадата ми, когато вместо „Instalation complete“, получих съобщението „There were errors compiling driver. Please refer to fglrx-install.log“
WTF??? Какви грешки бе!
nano /usr/share/ati/fglrx-install.log
[Message] Kernel Module : Trying to install a precompiled kernel module. [Message] Kernel Module : Precompiled kernel module version mismatched. [Message] Kernel Module : Found kernel module build environment, generating kernel module now. AMD kernel module generator version 2.1 doing Makefile based build for kernel 2.6.x and higher rm -rf *.c *.h *.o *.ko *.GCC* .??* *.symvers make -C /lib/modules/2.6.32.3-smp/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules make[1]: Entering directory `/usr/src/linux-2.6.32.3' CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o In file included from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:443: /lib/modules/fglrx/build_mod/2.6.x/drm_proc.h: In function ‘FGLDRM__vma_info’: /lib/modules/fglrx/build_mod/2.6.x/drm_proc.h:497: warning: format ‘%08lx’ expects type ‘long unsigned int’, but argument 5 has type ‘phys_addr_t’ /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MapPageToPfn’: /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1586: warning: unused variable ‘bus_addr’ CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_agp.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_io.o /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c: In function ‘KCL_IO_FASYNC_Terminate’: /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: ‘SIGIO’ undeclared (first use in this function) /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: (Each undeclared identifier is reported only once /lib/modules/fglrx/build_mod/2.6.x/kcl_io.c:122: error: for each function it appears in.) make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/kcl_io.o] Error 1 make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.32.3' make: *** [kmod_build] Error 2 build failed with return value 2 [Error] Kernel Module : Failed to compile kernel module - please consult readme.
Какво по …
И отново старото ровене в чичо google … 2 дни без хубаво видео … няма да ви описвам мъките си … докато на някакъв забит пост в някакъв забит форум не намерих как да го оправя … а то се оказа и много просто – явно в новата ядро са отделили част от нещата в нов header file …
Ето и решението step-by-step:
01. Сваляте си драйверите от сайта на ATI.
02. Стартирате run-а с опция –extract
03. Отваряте fglrx-install.nqkakuv_string/common/lib/modules/fglrx/build_mod/kcl_io.c където добавяте:
#include <linux/signal.h>
04. В fglrx-install.nqkakuv-string стартирате sh ./ati-installer.sh 8.5912 –install
05. reboot … and that is all …
Лесно нали? Някъде из нет-а се мотат готови .patch, но нямах време и желание да търся … за това използвах nano … и го направих на ръка … лесно и бързо … веднъж като знаеш какво ти трябва …
Надвявам, се да помогна на някого.
Ваш,
Lucifer
Нещо ново от мен: Kernel 2.6.32.x и ATI Catalyst (GeekTime) – http://www.anavaro.com/blog/kernel-2-6-32-x-ati-catalyst/ (GeekTime, HowTo)
Jeez, I feel dumb. 😀