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

103

    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. Ja taas ammuttu kokkolassa

      Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.
      Kokkola
      35
      4209
    2. Kuinka kauan

      Olet ollut kaivattuusi ihastunut/rakastunut? Tajusitko tunteesi heti, vai syventyivätkö ne hitaasti?
      Ikävä
      114
      1566
    3. Milli-helenalla ongelmia

      Suomen virkavallan kanssa. Eipä ole ihme kun on etsintäkuullutettu jenkkilässäkin. Vähiin käy oleskelupaikat virottarell
      Kotimaiset julkkisjuorut
      248
      1526
    4. Helena Koivu on äiti

      Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.
      Kotimaiset julkkisjuorut
      204
      1343
    5. Löydänköhän koskaan

      Sunlaista herkkää tunteellista joka jumaloi mua. Tuskin. Siksi harmittaa että asiat meni näin 🥲
      Ikävä
      132
      1052
    6. Ja taas kerran hallinto-oikeus että pieleen meni

      Hallinto-oikeus kumosi kunnanhallituksen päätöksen vuokratalojen pääomituksesta. https://sysmad10.oncloudos.com/cgi/DREQ
      Sysmä
      85
      1046
    7. Mitä siellä ABC on tapahtunut

      Tavallista isompi operaatio näkyy olevan kyseessä.
      Alajärvi
      26
      1028
    8. Kun näen sinut

      tulen iloiseksi. Tuskin uskallan katsoa sinua, herätät minussa niin paljon tunteita. En tunne sinua hyvin, mutta jotain
      Ikävä
      46
      1020
    9. Purra saksii taas. Hän on mielipuuhassaan.

      Nyt hän leikkaa hyvinvointialueiltamme kymmeniä miljoonia. Sotea romutetaan tylysti. Terveydenhoitoamme kurjistetaan. ht
      Maailman menoa
      254
      998
    10. Yhdelle miehelle

      Mä kaipaan sua niin paljon. Miksi sä oot tommonen pösilö?
      Ikävä
      62
      974
    Aihe