Month: February 2008
-
[Ratkaisu] Km-moduulin kääntäminen ei onnistu
- Lähtökohta
- Näytönohjaimeni on Connect 3D:n valmistama, AGP-väylässä kiinni oleva Radeon 9600 -piirisarjalla varustettu All In Wonder. Kaappausta varten All In Wonder -näytönohjaimille on olemassa GATOS-projektin tuottama
km
-moduuli, jota ei ole saatavilla pakettivarastoista.
Linux-ytimestä käytössäni on versio 2.6.22-14-generic.
Pakettienhallinnassalinux-headers-generic
jacvs
on asennettuna. - Ongelma
- Jos lataan km:n sen www-sivuilta ja yritän kääntää lähdekoodia, kääntäminen epäonnistuu. Lisäksi lähdekoodissa ei ole Radeon 9600 -piirisarjan tunnistamiseen tarvittavia tietoja.
- Ongelman syy
- Km:n lähdekoodi on niin vanhaa ettei se ole yhteensopiva Linux-ytimeni kanssa eikä siinä ole huomioitu Radeon 9600 -piirisarjaa.
- Ratkaisu
- Lataan km:n lähdekoodin uusimman version
CVS
-versionhallintajärjestelmän avulla ja korjaan lähdekoodin toimivaksi.- Lataan km:n lähdekoodin uusimman version seuraavalla komennolla:
cvs -z3 \ -d:pserver:anonymous@gatos.cvs.sourceforge.net:/cvsroot/gatos \ co -P km
- Lataan korjaavan paikkaustiedoston seuraavalla komennolla:
wget http://mummila.net/vuorovaikutus/files/2008/r9600-2_6_22.patch
- Sovellan paikkaustiedoston tiedot km:n lähdekoodiin seuraavalla komennolla:
cd km && patch -p1 -i ../r9600-2_6_22.patch
- Nimeän 2.6-sarjan Linux-ytimelle sopivan
Makefile
-tiedoston niin ettämake
-komento käyttää sitä:
mv Makefile-2.6 Makefile</code
Kun tämän jälkeen käytän make-komentoa lähdekoodin kääntämiseen, sen suorittaminen onnistuu.
- Lataan km:n lähdekoodin uusimman version seuraavalla komennolla:
- Huomautuksia
-
- Vaikka kääntäminen onnistuu ja
sudo make test
-komennolla tehty moduulien käyttöönotto onnistuu, kaappaaminenAVview
-kaappausohjelmalla ei toimi. Ongelma saattaa liittyä X.orgiin. -
Olen sisällyttänyt paikkaustiedostoon tietoa monista eri lähteistä:
- Vihje Radeon-piirisarjan PCI-tunnisteen lisäämisestä tuli km-moduulin kehittäjältä, Vladimir Dergachevilta, ja sen käytännön toteutuksen jäljittelin persall88:lta. En lisännyt tunnistetta toiselle, näennäiselle näytönohjainlaitteelle, sillä se ei toiminut.
Pci_module_init
-funktioon liittyneen virheilmoituksen korjasin shinyravenin vinkin avulla.- Muistinhallinnan tarkistuksen ohituksen tekevä paikkaus on Francisco L. Fernandezin käsialaa.
KBUILD_MODNAME
-makroon liittyvän ongelman kiertäminen onnistui LinGregin avulla.
- Vaikka kääntäminen onnistuu ja