R. Jonasson via Juha
-
[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-genericjacvson 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
-
[Ratkaisu] Komentojen ja niiden ulostulon tallentaminen tiedostoon
- Lähtökohta
- Aion suorittaa monimutkaisen, paljon eri komentoja sisältävän tehtävän komentorivitulkissa.
- Ongelma
- Haluan tallentaa ajamani komennot ja kaiken niiden komentotulkkiin tuottaman ulostulon tiedostoon, jotta voin jälkeenpäin käyttää sitä muistiapuna kuvaillessani miten tehtävän suoritin.
- Ratkaisu
- Voin tallentaa komentorivitulkkiin kirjoittamani komennot ja niiden ulostulon
script-komennolla.
Seuraavassa esimerkissä suoritan kaksiecho-komentoa ja yhdencat-komennon niin, että komennot ja niiden ulostulo tallentuvattesti.txt-nimiseen tiedostoon. Tällainen, tavallaan script-komennon sisällä ajettava lohko on nimeltään istunto, ja olen lihavoinut sen sisällön seuraavassa:jani@shuttle-xpc:~/tmp$ script testi.txt Skripti käynnistetty, tiedosto on testi.txt jani@shuttle-xpc:~/tmp$ echo "tämä on testi." tämä on testi. jani@shuttle-xpc:~/tmp$ echo "voisin ajaa tässä mitä hyvänsä komentoja" > foo.txt jani@shuttle-xpc:~/tmp$ cat foo.txt voisin ajaa tässä mitä hyvänsä komentoja jani@shuttle-xpc:~/tmp$ exit Skripti suoritettu, tiedosto on testi.txt jani@shuttle-xpc:~/tmp$Aloitin istunnon tallentamisen
script testi.txt-komennolla ja lopetin senexit-komennolla. Testi.txt -tiedostoon tallentui kaikki mitä näiden kahden komennon suorituksen välissä tapahtui eli yllä olevassa lihavoimani istunto, sekä lisäksi istunnon aloitus- ja lopetusaika. Tulostan seuraavassa cat-komennolla testi.txt -tiedoston sisällön ja lihavoin sen:jani@shuttle-xpc:~/tmp$ cat testi.txt Skripti käynnistetty to 28. helmikuuta 2008 09:36:31 jani@shuttle-xpc:~/tmp$ echo "tämä on testi." tämä on testi. jani@shuttle-xpc:~/tmp$ echo "voisin ajaa tässä mitä hyvänsä komentoja" > foo.txt jani@shuttle-xpc:~/tmp$ cat foo.txt voisin ajaa tässä mitä hyvänsä komentoja jani@shuttle-xpc:~/tmp$ exit Skripti suoritettu to 28. helmikuuta 2008 09:37:19 jani@shuttle-xpc:~/tmp$ - Huomautuksia
-
- Istunnon lopettamiseen voi käyttää exit-komennon sijasta näppäinyhdistelmää
Control + D. - Script-komennon ohjesivu varoittaa, että jotkin interaktiiviset komennot (kuten
vi) saattavat kirjoittaa tallennustiedostoonroskaa
, eli satunnaiselta vaikuttavia merkkejä. Niiden käytöstä ei välttämättä jää tallennustiedostoon ymmärrettäviä kirjauksia. - Ratkaisussa oleva ensimmäinen esimerkki on sekin tallennettu scriptiä käyttäen; ajoin siis script-komennon istunnossa, jota suoritin toisessa script-komennolla aloitetussa istunnossa. Istuntoja voi siis sisäkkäistää.
- Kaikki komennot tallentuvat
Bash-komentotulkissa käyttäjäkohtaiseen historiaan, jota voi hallitaHISTSIZE,HISTFILEjaHISTFILESIZE-muuttujien avulla. Komentohistoriaan tallennetaan kuitenkin vain komennot, ei niiden ulostuloa. Lisäksi komentohistorian koko on rajoitettu.
- Istunnon lopettamiseen voi käyttää exit-komennon sijasta näppäinyhdistelmää