abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 20:11 | Nová verze

    Byla vydána (𝕏) nová verze 26.1 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.1 je Witty Woodpecker. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Zajímavý projekt

    Deník TO spustil vlastní zpravodajský webový portál ToHledej.CZ s internetovým vyhledávačem a bezplatnou e-mailovou schránkou. Dle svého tvrzení nabízí 'Zprávy, komentáře, analýzy bez cenzury' a 'Mail bez šmírování a Velkého bratra'. Rozložením a vizuálním stylem se stránky nápadně podobají portálu Seznam.cz a nejspíše je cílem být jeho alternativou. Z podmínek platformy vyplývá, že portál využívá nespecifikovaný internetový vyhledávač třetí strany.

    NUKE GAZA! 🎆 | Komentářů: 12
    včera 14:11 | Zajímavý projekt

    Computer History Museum (Muzeum historie počítačů) zpřístupnilo své sbírky veřejnosti formou online katalogu. Virtuálně si tak můžeme prohlédnout 'rozsáhlou sbírku archivních materiálů, předmětů a historek a seznámit se s vizionáři, inovacemi a neznámými příběhy, které revolučním způsobem změnily náš digitální svět'.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 14:00 | Zajímavý projekt

    Ruský hacker VIK-on si sestavil vlastní 32GB DDR5 RAM modul z čipů získaných z notebookových 16GB SO-DIMM RAM pamětí. Modul běží na 6400 MT/s a celkové náklady byly přibližně 218 dolarů, což je zhruba třetina současné tržní ceny modulů srovnatelných parametrů.

    NUKE GAZA! 🎆 | Komentářů: 8
    včera 11:00 | Upozornění

    Národní identitní autorita (NIA), která ovlivňuje přihlašování prostřednictvím NIA ID, MEP, eOP a externích identit (např. BankID), je částečně nedostupná.

    Ladislav Hagara | Komentářů: 9
    včera 02:44 | Nová verze

    Byla vydána nová verze 1.16.0 klienta a serveru VNC (Virtual Network Computing) s názvem TigerVNC (Wikipedie). Z novinek lze vypíchnout nový server w0vncserver pro sdílení Wayland desktopu. Zdrojové kódy jsou k dispozici na GitHubu. Binárky na SourceForge. TigerVNC je fork TightVNC.

    Ladislav Hagara | Komentářů: 0
    27.1. 14:44 | Nová verze

    Byla vydána nová verze 4.6 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    27.1. 13:33 | Humor

    Rozsáhlá modernizace hardwarové infrastruktury Základních registrů měla zabránit výpadkům digitálních služeb státu. Dnešnímu výpadku nezabránila.

    Ladislav Hagara | Komentářů: 11
    27.1. 13:11 | Nová verze

    Čínský startup Kimi představil open-source model umělé inteligence Kimi K2.5. Nová verze pracuje s textem i obrázky a poskytuje 'paradigma samosměřovaného roje agentů' pro rychlejší vykonávání úkolů. Kimi zdůrazňuje vylepšenou schopnost modelu vytvářet zdrojové kódy přímo z přirozeného jazyka. Natrénovaný model je dostupný na Hugging Face, trénovací skripty však ne. Model má 1 T (bilion) parametrů, 32 B (miliard) aktivních.

    NUKE GAZA! 🎆 | Komentářů: 14
    27.1. 09:00 | IT novinky

    V Raspberry Pi OS lze nově snadno povolit USB Gadget Mode a díky balíčku rpi-usb-gadget (CDC-ECM/RNDIS) mít možnost se k Raspberry Pi připojovat přes USB kabel bez nutnosti konfigurování Wi-Fi nebo Ethernetu. K podporovaným Raspberry Pi připojeným do USB portu podporujícího OTG.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (10%)
     (23%)
     (3%)
     (5%)
     (2%)
     (12%)
     (33%)
    Celkem 653 hlasů
     Komentářů: 19, poslední včera 13:03
    Rozcestník

    Dotaz: Jak zjistit cestu k device z device number?

    18.2.2010 21:07 kralyk z abclinuxu | skóre: 29 | blog:
    Jak zjistit cestu k device z device number?
    Přečteno: 375×
    Mám device number (buď holé v jednom čísle, nebo převedené do formátu major:minor, to je jedno), např 8:1 je u mně /dev/sda1 atd.

    Jaký je "správný" způsob, jak se z tohohle čísla dostat ke konkrétní block device v /dev?
    Koukal jsem např, že v /dev/block/ jsou odpovídají symlinky, ale dá se na tohle spolehnout, že to tak bude i na jiných linuxových strojích? Odpovídá to POSIXu?
    Nebo budu muset hledat v /dev a statem zjišťovat, který device odpovídá?

    "správným" způsobem mám na mysli způsob, který bude fungovat pokud možno všude pokud možno bez dependencí... ideálně POSIX conforming.

    Díky moc za každou pomoc

    Řešení dotazu:


    Odpovědi

    Fuky avatar 19.2.2010 00:36 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?

    major/minor number to device path translate

    O /dev/block/ se stará udev, tak by to snad na Linuxových strojích s jádrem 2.6 neměl být problém.

    $ vim /etc/udev/rules.d/50-udev.rules
    SUBSYSTEM=="block",    SYMLINK+="block/%M:%m"
    

    Jestli se nepletu, tak v POSIX žádná zmíňka o /dev/block není IEEE Std 1003.1, 2004 Edition, ISO/IEC 9945.

    19.2.2010 01:16 Delaunay | skóre: 17 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Pochybuji že existuje nějaký "správný" způsob. Pokud se o tvorbu souborů zařízení na cílovém systému stará udev, tak bych zřejmě doporučil knihovnu libudev.
    19.2.2010 12:39 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Ok díky,
    vidím to tak, že použiju udev/libudev a jako fallback prolistování /devu statem.
    22.2.2010 11:58 Ivan
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Zadny overeny zpusob bohuzel existovat nemuze, kernel jmena zarizeni nezna. pokud spustis "mknod /tmp/abc b 8 1" tak budes mit "sda1" klidne i v temp-u. Nejjstejsi reseni je opravdu ten find a stat.
    22.2.2010 18:16 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Moje současné řešení vypadá takhle:
    
    string device_from_number(unsigned int major, unsigned int minor)
    {
      const string devdir = "/dev/";
      const string devblockdir = "/dev/block/";
      stringstream ss;
      string result = "";
    
      ss << major << ':' << minor << flush;
      if (file_exists(devblockdir))
      {
        if (!dir_empty(devblockdir))
        {
          if (file_exists(devblockdir+ss.str())) result = devblockdir+ss.str();
        } else goto fallback;
      } else
      {
        fallback:
        DIR* dir;
        dirent* ent;
        dir = opendir(devdir.c_str());
        if (dir)
        {
          while (ent = readdir(dir))
          {
            struct stat finfo;
            string fn = devdir + ent->d_name;
            if (!stat(fn.c_str(), &finfo))
            {
              if (S_ISBLK(finfo.st_mode) && (makedev(major, minor) == finfo.st_rdev))
              {
                result = fn;
                break;
              }
            }
          }
        } else
        {
          ohshiT(errno, ERR_OPENING_DIR, "Could not open directory: '"+devdir+"'");
        }
        closedir(dir);
      }
      return result;
    }
    
    (Toho makra dole si nevšímejte, tím vyhazuju exceptions)
    Pokud není device nalezen, je vrácen prázdný string.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.