Miten tehdä ajuri?

Anonyymi

Minulla on eräs laite jonka mukana tuli kansio jossa .c ja .h ja Makefile tiedostot. Ohjeena :

2. make all // make a new driver.

Ilmeisesti ajurin saisi käännettyä noiden tiedostojen avulla mutta en tiedä käskyjä.

10

59

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Mielestäni parempi lähestymistapa olisi kertoa, mistä laitteesta on kyse. Eli löytyiskö sille jo valmiit jakeluun sopivat ajurit.
      Varsin hyvät ohjeet ohjelmien tai ajureiden kääntämiseksi:
      https://www.linux.fi/wiki/Kääntäminen

      • Anonyymi

        Ei Linuxiin koodata ajureita, ydin tukee tuen ja ohjelma käyttää.


      • Anonyymi
        Anonyymi kirjoitti:

        Ei Linuxiin koodata ajureita, ydin tukee tuen ja ohjelma käyttää.

        Vaan jos ytimessä ei ole tukea?


    • Anonyymi

      aika rajottatuneelta vaikuttaa toiminee vain yhdessä ja ainoassa kernel vesiossaa.... ja niitä kun tuhansia niin ei onnaa.
      Joutuu kirjoittaan itse ajurin haluamalleen kernel versiolle.
      Aika hankala hommma.

      • Anonyymi

        Itse asiassa näin huono tilanne ei ole: Ajuri käännetään kerneliä vasten ja riippuu mitä kernelin ominaisuuksia ajuri käyttää minkä verran joutuu tekemään lisätyötä että tämä onnistuu.
        Yleensä kernelin rajapinnoista pidetään kiinni kynsin ja hampain ja on täysin mahdollista, ettei muutoksia ajuriin juuri tule vaikka porttaisi kernelistä 2.6 kerneliin 5.x.
        Sen sijaan uudemmissa kerneleissä voi olla merkittynä rajapintoja deprekoiduiksi eli poistettaviksi. Tämä tarkoittaa sitä, että ajurin latauksen yhteydessä mm. kernel ilmoittaa ajurin olevan "deprecated" ja vaativan siis jatkossa toimia esim. rajapinnan vaihtamista uudempaan malliin. Tähän löytyy valmiita esimerkkejä kuinka homma tehdään pilvin pimein, koska ajureita on päivitetty uudelle rajapinnalle varmasti.
        Homman pihvi on kuitenkin tietoturva: Ajuri käännetään jokaiselle kernel-versiolle nimenomaan tästä syystä erikseen eli vaikka joku löytäisikin ajurista esim. puskurin ylivuoto-virheen, se vaikuttaa vain kyseiseen kerneliin, koska muissa kerneleissä on takuuvarmasti jotain muuta koodia ylivuodon kohdalla ja toiminta täten eri. Itse asiassa kerneli muodostaa nykyiselläänkin uuden lokaatio-taulun muistiin latauksen yhteydessä eli funktioiden paikat eivät säily muistissa - hyökkääjän pitäisi siis kirjoittaa koodinsa jokaisen bootin jälkeen uudestaan.


    • Anonyymi

      Kyllähän näitä tutoriaaleja löytyy, jos on kiinnostusta alkaa driveria kehittelemään:
      https://embetronicx.com/tutorials/linux/device-drivers/linux-device-driver-tutorial-programming/
      Tutustuisin useampaan esimerkkiin ja testailisin näitä esimerkkejä. Esim. DMA-siirto on kernelissä valmiiksi tuettuna ja sen käyttöönotto vaatii ymmärrystä ajurin toiminnasta ja tavasta, jolla kerneli ajuria suorittaa. Toinen paikka, joka voi aiheuttaa hankaluutta on timer-funktioiden käyttö eli asioiden ajastaminen tulevaisuuteen.

    • Anonyymi
    • Anonyymi

      no kirjoita se "make all" sillähähän tuo hoituu...

      • Anonyymi

        Tuo tosin vaatii, että koneelle on asennettu kehitystyökalut (kääntäjä, linkkeri yms). Ubuntussa tosin käsittääkseni on yleensä nuo asennettuna valmiiksi. Jos ei niiden asentamisen ei pitäisi olla vaikeaa.

        Hieman selitystä tuolle komennolle: lähdekoodimuodossa jaettavien pakettien mukana pitäisi olla tiedosto nimeltään Makefile, joka sisältää työkaluille (ne kääntäjä ja muut) ohjeet siitä, miten lähdekoodeista saadaan aikaan ajettava ohjelma, kirjasto tms. Tuo make-komento lukee Makefilen ja suorittaa sieltä annetun toiminnan (tässä tapauksessa siis all, joka kääntää ohjelman/ajurin).


    • Anonyymi

      Kaikenlaista kokeilin ja vaan virhettä pukkasi. Menin sitten windowsiin, tuplaklikkasin exeä ja ajuri oli asennettu. Laitekin toimii mainiosti. Ei tarvi enää vastailla.

    Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Monenko kanssa olet harrastanut seksiä

      tänä aikana kun olet kaivattuasi kaipaillut?
      Ikävä
      129
      3267
    2. Melkein lähetin viestin.

      Onneksi tulin järkiini. Mukavaa kesää
      Ikävä
      109
      1311
    3. Timo Soini tyrmää Tynkkysen selitykset Venäjän putinistileiristä

      "Soini toimi ulkoministerinä ja puolueen puheenjohtajana vuonna 2016, jolloin silloinen perussuomalaisten varapuheenjoht
      Maailman menoa
      267
      1285
    4. Sulla on nainen muuten näkyvät viiksikarvat naamassa jotka pitää poistaa

      Kannattaa katsoa peilistä lasien kanssa, ettet saa ihmisiltä ikäviä kommentteja.
      Ikävä
      65
      1096
    5. Nainen voi rakastaa

      Ujoakin miestä, mutta jos miestä pelottaa näkeminenkin, niin aika vaikeaa on. Semmoista ei varmaan voi rakastaa. Miehelt
      Ikävä
      79
      1061
    6. Kalateltta fiasko

      Onko Tamperelaisyrittäjälle iskenyt ahneus vai mistä johtuu että tänä vuonna ruuat on surkeita aikaisempiin vuosiin verr
      Kuhmo
      14
      1056
    7. IS Viikonloppu 20.-21.7.2024

      Tällä kertaa Toni Pitkälä esittelee piirrostaitojansa nuorten pimujen, musiikkibändien ja Raamatun Edenin kertomusten ku
      Sanaristikot
      57
      979
    8. Rakastan sinua

      Olen tiennyt sen pitkään mutta nyt ymmärsin että se ei menekään ohi
      Ikävä
      30
      976
    9. Ikävöimäsi henkilön ikä

      Minkä ikäinen kaipauksen kohteenne on? Onko tämä vain plus 50 palsta vai kaivataanko kolme-neljäkymppisiä? Oma kohde mie
      Ikävä
      42
      944
    10. Liikenne onnettomuus

      Annas kun arvaan -Nuoriso -Ajokortti poikkeusluvalla -Ylinopeus
      Orimattila
      46
      854
    Aihe