Sziasztok!
A minap forgattam magamnak egy kernel-t Ubuntu 8.04.2-re. (2.6.28.6 vanilla). Minden működik, ahogy szerettem volna, kivéve az ATI Radeon X1400-amat. Ez nem meglepő, zárt forrású driver, dkms-t használ.
Viszont a nagy szívfájdalmam, hogy az apt-vel telepíthető dkms 2.6.24-es kernelre van beállítva, illetve az alábbi csomagokat tartalmazza a függőségi listája:
Depends: awk, bash, gcc, linux-headers-generic | linux-headers, linux-image, module-init-tools
Viszont a saját kernelem miatt ez semmit se ér. Ezen az oldalon http://linux.dell.com/dkms/ megtaláltam a dkms forrását, de nekem a telepítése és beállítása túl nehéz. Nem sikerül. Így az fglrx telepítő hibát dob.
Tudna nekem valaki segíteni abban, hogy a saját kernelemhez hogyan állítom be a dkms-t?
Először is a Dell oldalán szereplő dkms-t szeretném telepíteni. Viszont nem igazán értem, mit jelent a README.dkms megfelelő része:
A dkms man oldalán a következő paramétereket találtam, amik fontosak lehetnek a későbbiekben:
-k kernel version
--config
--kernelsourcedir
Ez mind adott. Viszont az fglrx telepítőt ennek a használatára hogy veszem rá? Utólag hogyan állítható be mindez?
A dkms.conf-ot jól értem, hogy az fglrx tartalmazza?
Nagyon szépen köszönöm előre is a segítséget vagy ötleteket!
- 1715 megtekintés
Hozzászólások
Frissítés:
A dkms weboldaláról letöltöttem az ott található deb csomagot. dpkg -i --force depends-el felraktam. Majd az ATI telepítőt futtattam, ami végigment, de megint jelezte a hibát.
Ezután:
root@zolinux:/home/zed# dkms build -m fglrx -v 8.573 -k 2.6.28.6-zed-amilo-rt --config /home/zed/kernel/linux-2.6.28.6_new/.config --kernelsourcedir /home/zed/kernel/linux-2.6.28.6_new/
Preparing kernel 2.6.28.6-zed-amilo-rt for module build:
(This is not compiling a kernel, just preparing kernel symbols)
Storing current .config to be restored when complete
Running Generic preparation routine
make mrproper............
using /home/zed/kernel/linux-2.6.28.6_new/.config
cp: `/home/zed/kernel/linux-2.6.28.6_new/.config' and `.config' are the same file
make oldconfig........
make prepare-all....(bad exit status: 2)
Building module:
cleaning build area....
pushd /var/lib/dkms/fglrx/8.573/build; sh make.sh --nohints; popd....
Error! Build of fglrx.ko failed for: 2.6.28.6-zed-amilo-rt (i686)
Consult the make.log in the build directory
/var/lib/dkms/fglrx/8.573/build/ for more information.
A make.log tartalma pedig hihetetlenül informatív:
root@zolinux:/home/zed# cat /var/lib/dkms/fglrx/8.573/build/make.log
DKMS make.log for fglrx-8.573 for kernel 2.6.28.6-zed-amilo-rt (i686)
Fri Feb 20 16:45:15 GMT 2009
/var/lib/dkms/fglrx/8.573/build
root@zolinux:/home/zed#
Még egy kicsit kutakodtam:
zed@zolinux:/var/lib/dkms/fglrx/8.573/build$ sudo ./make.sh
AMD kernel module generator version 2.1
kernel includes at /lib/modules/2.6.28.6-zed-amilo-rt/build/include not found or incomplete
file: /lib/modules/2.6.28.6-zed-amilo-rt/build/include/linux/version.h
zed@zolinux:/var/lib/dkms/fglrx/8.573/build$ cd /lib/modules/2.6.28.6-zed-amilo-rt/build
zed@zolinux:/lib/modules/2.6.28.6-zed-amilo-rt/build$ ls
arch COPYING crypto drivers fs init Kbuild lib Makefile net README samples security usr
block CREDITS Documentation firmware include ipc kernel MAINTAINERS mm NEWCONFIG REPORTING-BUGS scripts sound virt
Ezt találtam a make.sh-ban: (Nem linkelhetem be az egész szkriptet gondolom, mert AMD copyright van rajta.)
src_file=$linuxincludes/linux/version.h
if [ ! -e $src_file ]; then
echo "kernel includes at $linuxincludes not found or incomplete" | tee -a $logfile
echo "file: $src_file" | tee -a $logfile
exit 1
fi
Arra rájöttem, hogy a /lib/modules/2.6.28.6-zed-amilo-rt/build egy symlink a /home/zed/kernel/linux-2.6.28.6_new-ra, ahová kitömörítettem a kernel-t, amit forgattam. Ha itt nincs version.h, akkor hol van?
Köszönöm.
- A hozzászóláshoz be kell jelentkezni
Én máshogy csinálnám (csinálom) a helyedben...
Ubuntu alatt saját kernelből jobb csomagot készíteni aztán azt feltelepíteni aztán a dkms dolog megy magától.
cd SAJÁT_KERNEL_FORRÁS
make-kpkg --initrd linux-image linux-headers
cd ..
dpkg -i *.deb
és DKMS megcsinálja amit meg kell tennie....
(lehet hogy nem voltam pontos, de neten biztos van bővebb infó...)
- A hozzászóláshoz be kell jelentkezni
Szia!
Köszönöm az ötletet. Mindent úgy csináltam, ahogy Te, (illetve az ötletedből kiindulva a Google) mondta. A kernelt a generált deb-ekből pakoltam föl.
A dkms-nél még mindig ugyanúgy és ugyanott az AMD/ATI-os make.sh meghalt. Az első hiba, amivel küzdöttem:
FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol '__rcu_read_lock'
Erre itt találtam megoldást (mellesleg elég ciki ez a hibaüzenet):
http://ubuntuforums.org/archive/index.php/t-756236.html
Viszont a licenszes header megpiszkálása után se sikerült nagyot alkotnom. (A make megint eldobta magát, a hibaüzenetet nem gyűjtöttem be, mert 2 napi szenvedés után már elegem volt.)
A Debian csomagos workaround se működött. Próbálkoztam ezzel is, hátha rosszul forgattam a kernelt:
Levontam a következtetést (lehet rosszul), hogy az ATI driver-t real-time kernelen sose fogom beindítani (mostanában). (Ha valakinek sikerült, mondjon ellent.)
Sajnos saját magam által forgatott (nem PREEMT) kernellel se jártam sikerrel (legutoljára vagy 50 hibát dobott a make, mintha teljesen rossz lenne a kernel forrása). Visszaálltam a gyári kernelre, ott minden működött, ahogy eddig mindig...
Egyelőre föladom. Sikerült egyáltalán vkinek az fglrx-et 2.6.28-on elindítania?
Ha lesz egy kis időm, összegyűjtöm a legújabb hibaüzeneteket és elküldöm az AMD-nek. Elfelejtettem menteni a hibát. (A firegl_public.c dobálta őket, de köze nem volt a GPL-es ügyhöz.)
- A hozzászóláshoz be kell jelentkezni