kernel másik géphez

Kezdőlap Fórumok Kernel kernel másik géphez

10 bejegyzés megtekintése - 1-10 / 14
  • Szerző
    Bejegyzés
  • #2070594
    pointux
    Felhasználó

      Ha jól értem, egy gyors gépen akarsz egy lassú gépnek kernelt forgatni…
      Ha igen: miután leforgattad át tudod másolni a teljes linux forrást és az install parancsok már hamar lefutnak. (Ha háló van, akkor ettől egyszerűbb a helyzet…)

      „Az világos, hogy kellenek a modulok, a System.map és persze a bzImage de hova kellene tenni a többi cuccot?”
      a) a modulokat, image-okat az install parancsok helyre teszik
      b) amit még használhatsz
      linux/include/linux -> /usr/include/linux
      linux/include/asm-arch -> /usr/include/asm
      (Ezek ált itt vannak. Persze lehetnek máshol is, de akkor azt kell megadni a fordítónak.)

      #2070595
      tovis
      Felhasználó

        „Ha jól értem, egy gyors gépen akarsz egy lassú gépnek kernelt forgatni…”
        Pontosan! De mit értesz a szokásos install parancsok alatt?
        normálisna kibontás után (/usr/src/ és egy symlink az aktuális kernel forrásokra) már fordítok
        make modules;make modules_install;make bzImage
        aztán másolni a vmlinuz -t és a System.map a /boot -ba (a megfelelő kiegészítésekkel) majd futó ellenőrzés az /etc/lilo.conf -ba és lilo.
        De mik is ezek a többi könyvtárban – az include még a legérthetőbb, de pl. mi az az init, ipc lib stb, és mi velük a teendő?

        #2070596
        pointux
        Felhasználó

          A gyors gépen konfigolsz, majd kiadod a make parancsot. A make install, make modules_install (aszem már ez ez utóbbi is redundáns, de a bzImage biztosan) parancsot meg a lassú gépen (ez már csak telepítés gyorsan megy.)
          A háló azért jó, mert ugyanazt a scr könyvtárat mindkét gépen be lehet csatolni.
          Végezetül dolgozhat egyszerre több gép is rajta… bár egy kernel erre kis falat – szerintem.

          „aztán másolni a vmlinuz -t és a System.map a /boot -ba”
          Többek között ez az amit a make install csinál. (Ha nem szereted a vmlinuz elnevezést kézzel… noha mindig legyen bizt. másolat a működő kernelről, konfigról és a legcélszerűbb, ha benne marad a rendszerbetöltő konfba is.)

          „De mik is ezek a többi könyvtárban – az include még a legérthetőbb, de pl. mi az az init, ipc lib stb, és mi velük a teendő?”
          Akkor a kernel, modul, header érthető. A többivel nem kell foglalkozni.
          Dióhéjban, amatőren:
          Documentation – kernel doksi; helyből olvasni érdemes, de a rendszer működése szempontjából lényegtelen
          arch – ebben van a kernel image (az adott ach-hoz); ha kézzel bíbelődsz, érdekes
          block – diskek
          crypto – kódolás (a kernel konfig. végén)
          drivers – illesztő programok (na ezt kell hekkelni :))))
          fs – filerendszer
          include – a programoknak kelhet
          init – main, initramfs, verzió
          ipc – megosztott memória
          kernel – cpu, szálak, időzítés, stb.
          lib – lib. rutinok (crc, mágikus bill. komb, kiíratás, string, számok, keresés, rendezés stb.)
          mm – memória
          net – hálózati támogatás
          scripts – kernel konf, építő scriptek
          security – alap bizt szintek (ez is valahol a konfig végén van)
          sound – hang támogatás
          usr – initramfs
          Mindezek a fejlesztőknek fontosak, hogy átlássák a kernelt… meg egy-egy ilyen részleten, egy-egy gárda dolgozik. E források feldolgozásával keletkezik a kernel image, meg a modulok.

          #2070597
          tovis
          Felhasználó

            Aha ..
            Mit kell a „drivers” – ken hekkelni?
            A modulokat (jobbára driverek) a /lib/modules/linux-2.6.xx.x könyvtárba teszi (sajnos) ahova a felhasznált gép moduljai is vannak telepítve – lehet hogy a module_install csak ezt a „másolási” műveletet végzi?

            #2070598
            admin
            Adminisztrátor

              ” /lib/modules/linux-2.6.xx.x könyvtárba teszi (sajnos) ahova a felhasznált gép moduljai is vannak telepítve”

              Ez csak akkor lehet, ha ua. a verzió!
              De ezt is lehet cifrázni, ha nevet adsz a configban!
              Akkor „vmlinuz-2.6.x-valami” lesz és a /lib/modulesben is.

              #2070599
              pointux
              Felhasználó

                „Mit kell a „drivers” – ken hekkelni?”
                Mindegy, csak hekkelni lehessen… 🙂

                „A modulokat (jobbára driverek) a /lib/modules/linux-2.6.xx.x könyvtárba teszi (sajnos) ahova a felhasznált gép moduljai is vannak telepítve”
                Nyílván oda másolja, mert nem hekkelted meg a kernel nevét:
                linux/Makefile

                Code:
                VERSION = 2
                PATCHLEVEL = 6
                SUBLEVEL = xx
                EXTRAVERSION = -my_hack

                Eztán újra konfig, …

                „lehet hogy a module_install csak ezt a „másolási” műveletet végzi?”
                Igen. A telepítést… de a modulokét (csak). Illetve elvégzi a forgatást, amennyiben szükséges.

                #2070600
                pointux
                Felhasználó

                  Ja, ekkor mindenhol „2.6.xx-my_hack” lesz a kernel könyvtár/file neve.

                  #2070601
                  pointux
                  Felhasználó

                    Akkor ez legyen bekattintva, bár ez automatikusan igen lesz.
                    General setup/Automatically append version information to the version string (LOCALVERSION_AUTO)

                    Illetve szórakázhatsz a
                    General setup/Local version – append to kernel release (LOCALVERSION) stringgel a konfig cuccban is, ha a makefile nem tetszik… ahogy tetszik.
                    (Végül is mindkét esetben el kell indítani a konfigot egy mentés erejéig. Bár az utóbbi esetben csak az „EXTRAVERSION”-t változtathatod, de mást nem is célszerű.)

                    #2070602
                    pointux
                    Felhasználó

                      Na kipróbáltam:
                      EXTRAVERSION = -my_hack
                      LOCALVERSION = „01”

                      Akkor kernel név: „2.6.xx-my_hack01”.

                      #2070603
                      tovis
                      Felhasználó

                        Na végre! – leesett;o)
                        Bizonyos okoknál fogav (hála a vas gyártónak SUNIX 4 soros port egy kártyán. közös irq -val) csak a 2.6.9 verziót tudom használni (ahhoz van egy kernel patch, persze megnézhetném mi kell a 2.6.17.9 -hez de ez a mostani céljaimnál messzebre vezet.
                        így a szóbanforgó gépen a következő látszik

                        /lib/modules/2.6.14.2-p4-smp  a most használatos
                        /lib/modules/2.6.8-2-386        a telepített
                        /lib/modules/2.6.9-Gn            a P 200 MHz számára készülő

                        és az „EXTRAVERSION=” az ami a „menuconfig” -ban is megjelenik, azt én is használom.
                        OK, kezd kitisztulni a kép a leírás amit találtam erről a témárol az is azt feltételezi hogy ugyan azt a kernelt forgatom ami az adott gépen van csak egy másik konfigurációval.
                        Még talán a debian csomag készítést kellene kipróbálni, a Makefile -nak ilyen opciója is van, csak azt nem tudom milyen formátumú lessz a kernel image, és ez a csomag önmagában elegendő lessz az új kernel telepítéséhez.

                      10 bejegyzés megtekintése - 1-10 / 14
                      • Be kell jelentkezni a hozzászóláshoz.