gabaman

Hozzászólások

10 bejegyzés megtekintése - 911-920 / 2,173
  • Szerző
    Bejegyzés
  • Hozzászólás: Linux kernel forditás magyarra #1976272
    gabaman
    Felhasználó

      a másik: összenézem 2.6.8-as kernellel is, ahogy néztem nincs túl sok eltérés a kettõ közt, akár mehetne is jól.
      [align=right][snapback]90526[/snapback][/align]

      Igazából csak egyszer kell teljesen lefordítani a .pot fájlokat, utána már a gettext fogja kikeresni a változásokat. A belefordításos módszer esetén a hivatalos foltot kellene kézzel „átnyálazni” minden egyes verzióváltás esetén. Sztm nagy elõny, hogy a foltom nem tartalmaz verzióspecifikus részt, így tetszõleges kernellel mindíg mûködõképes marad.

      A kernel üzeneteknél úgy oldottam meg a kernel karbantartás problémáját, hogy minden egyes fordítandó üzenet kap egy N_ elõtagot:

      printk („Szövegn”);
      =>
      printk (N_(„Szövegn”));

      Ezeket az xgettext szépen kigyûjti egy .pot fájlba. Egy másik, általam készített progi (translate.cc) beolvassa a megfelelõ .po fájlt (pl. hu.po), és a .c fájlokban kicseréli a N_ kezdetû sztringeket a lefordítottra, majd elment a fájlokat .lang.c néven. Mindezt fordítási idõben.

      Hozzászólás: Kernel2_6_8 #1978630
      gabaman
      Felhasználó

        Nem lettek kiadva a következõ utasítások (vagy nem lett feltéve az elõzõ kernel forráskódja):

        # ln -s /usr/src/linux/include/asm/ /usr/include/asm
        # ln -s /usr/src/linux/include/linux/ /usr/include/linux
        # ln -s /usr/src/linux/include/scsi/ /usr/include/scsi

        Hozzászólás: Linux kernel forditás magyarra #1976270
        gabaman
        Felhasználó

          Elkészült az elsõ változat, természetesen csak tesztként. Sikerült úgy megoldanom, hogy ne zavarjon be a fordítás sehova se. Bár még kell rajta módosítani, azért használható.

          Kb. 0,001%-a van lefordítva, a lényeg, hogy megjelenik 1-2 magyar nyelvû szöveg. Ez egy olyan technikai elõzetes. Jelenleg 2.6.7-hez készült el, tartalmazza a grsecurity, LIDS, RSBAC foltokat.

          Aki csak tudja, legyen oly kedves tesztelni. Kisebb hibák vannak még benne, de több szem többet lát.

          http://gabaman.fantom.hu/
          (a szerver nem vmi jó, sorry)

          Hozzászólás: Speaker – beep – consol – programozás #1978123
          gabaman
          Felhasználó

            Nekem könnyû volt megtalálni az infót. Belenéztem a kernel forrásába, nevezetesen a pcspkr.c-be. Ott kiderült, hogy a speaker-t egy sound event (EV_SND) segítésgével lehet elérni kívülrõl. Vmi ilyesmit írtam be a google-ba: „kernel speaker ev_snd”.

            Hozzászólás: memóriafoglalás mátrix számára #1978089
            gabaman
            Felhasználó

              Két megoldás is van (NxM-es mátrix):

              1. Lineáris:

              foglalás:

              Code:
              Típus* ptr = (Típus*)malloc (sizeof(Típus)*N*M);

              elérés (n és m):

              Code:
              ptr[n*M+m];

              törlés:

              Code:
              free(ptr);

              2. 2D vektor:
              foglalás:

              Code:
              Típus** ptr = (Típus**) malloc (N*sizeof(Típus*));
              for (i=0;i<N;i++)
               ptr[i] = (Típus*)malloc(M*sizeof(Típus));

              elérés (n és m):

              Code:
              ptr[n][m]

              törlés:

              Code:
              for (i=0;i<N;i++)
               free (ptr[i]);
              free(ptr);
              Hozzászólás: Speaker – beep – consol – programozás #1978121
              gabaman
              Felhasználó

                A kernel tartalmazza a PC speaker modult (pcspkr), amit ioctl event segítségével lehet elérni (/dev/input/eventX).

                Egy hasonló példa (event átirányítás, neked kiváltani kell):
                http://lkml.org/lkml/2003/9/11/8

                Hozzászólás: Linux kernel forditás magyarra #1976266
                gabaman
                Felhasználó

                  A Pinglin jó példa, hogy mit és hogyan nem szabad megvalósítani. Hiába van lefordítva az egyik 2.4-es kernel, szinte semmit se lehet újra felhasználni belõle.

                  Van pár ötletem, hogy hogyan lehet normálisan megoldani a kernel fordítását, de még finomítani kell õket. Alapvetõen nem szabad „belefordítani” a kernelbe, mert egy idõ után nagyon átláthatatlan lesz az egész. Jelenleg .pot fájlok (gettext) létrehozásán dolgozom, és a CML2 nyelvû Kconfig fájlokból már van teszt változat. A kernel forrásában levõ üzeneteket is le lehet fordítani a .pot fájlok segítségével, de a fordítást vissza kell majd helyettesíteni.

                  Amint használható formába öntöm a módosításaimat, felteszem vhová a Netre. Szerintem még nem érdemes elkezdeni fordíthatni, elõbb inkább a módszereket kellene megvitatni.

                  Hogy hamvában holt dolog lenne az egész? Nekem meg lenne az elsõ – ha nem is magas színvonalú – kernel foltom, a fordítás biztosan összekötne pár emberkét, mások meg végre önmaguktól le tudnának fordítani egy kernelt. Nem is tudom, talán bele se kezdjünk.

                  Hozzászólás: Reakció az Adminisztrátori topicra #1977623
                  gabaman
                  Felhasználó

                    Tehát Gege moderátor lesz. Yesszus Pepi. :sarcasm:

                    Hozzászólás: fscanf es space #1977641
                    gabaman
                    Felhasználó

                      Nekem az kene, hogy a teljes sort a new line karakterig szedje ki… Van erre opcio az fcanf-hez?
                      [align=right][snapback]89559[/snapback][/align]

                      Nincs, de nincs is értelme. Az fgets() függvényt találták ki erre. Ha egyenként akarod beolvasni, akkor a „%s” helyett használhatsz „%s,”-t is, bár így az utolsó problémásan lesz beolvasva. Persze ha csak négy adat van egy sorban, akkor a „%s,%s,%s,%s” a megfelelõ minta.

                      Hozzászólás: fscanf es space #1977639
                      gabaman
                      Felhasználó

                        Mit értesz sztring alatt? Biztosan nem azt, mint a C nyelvet létrehozók. Az fscanf (fp, „%s”, str); valóban csak a szóközig olvas, de a %s nem az idézõjelek („) közötti részt jelöli, hanem a beolvasás adatformátumát. Egyébként a szöveges fájlban nincsenek szringek, mert az egész egy karakterhalmaz. Ha az idézõjelek közötti részt akarod beolvasni, akkor az fgets() függvényt (esetleg az fgetc()+while is szóba jöhet) használd, majd ki kell szedni belõle a két idézõjel közötti részt.

                        Ha esetleg komplex beolvasás kell, akkor arra ott a yacc (flex).

                      10 bejegyzés megtekintése - 911-920 / 2,173