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 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 0
    včera 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 1
    včera 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 12
    23.10. 17:44 | IT novinky

    Francouzský výrobce kabelů Nexans upozornil na napjaté dodávky elektrických kabelů. Výstavba nové výrobní linky pro některé typy kabelů může trvat přibližně tři roky. Datacentra potřebují rozsáhlé nízkonapěťové a středněnapěťové rozvody. Poptávka roste současně s modernizací elektrických sítí. Někteří odběratelé proto uzavírají výrazně delší dodavatelské smlouvy [Reuters].

    vencour | Komentářů: 14
    23.10. 14:44 | Zajímavý projekt

    Představena byla (𝕏) virtuální platforma FLYBENCH FPV, která nováčky provede zapojením a konstrukcí dronů.

    Ladislav Hagara | Komentářů: 5
    23.10. 04:11 | Nová verze

    Google Chrome 156 byl prohlášen za stabilní. Přehled novinek v poznámkách k vydání. Opraveno bylo 353 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    22.10. 20:22 | IT novinky

    Indická společnost eMudhra po bezpečnostním incidentu, tj. kompromitaci soukromých klíčů osmi mezilehlých certifikátů své certifikační autority, opouští globální byznys s SSL/TLS certifikáty.

    Ladislav Hagara | Komentářů: 4
    22.10. 15:44 | Bezpečnostní upozornění

    Dle Phoronixu zveřejnila společnost Trend Micro prostřednictvím programu Zero Day Initiative (ZDI) několik hlášení bezpečnostních zranitelností přímo na veřejném mailing listu LKML, přestože některé chyby dosud nemají opravu začleněnou do hlavní větve jádra. Mezi hlášenými problémy jsou dvě zranitelnosti s hodnocením CVSS 9.0, týkající se SMB Direct a KSMBD, které mohou umožnit vzdálené spuštění kódu. Další hlášení se týkají … více »

    vencour | Komentářů: 0
    22.10. 15:33 | Nová verze

    Správce hesel KeePassXC byl vydán ve verzi 2.8.0. Přechází na Qt 6, podporuje vkládání hesel s Waylandem, rychlé odemykání pomocí Polkitu nebo možnost nastavení klávesových zkratek (seznam změn).

    ʚĭɞ 🍉 | Komentářů: 0
    22.10. 15:22 | Nová verze

    Databáze DuckDB (Wikipedie) byla vydána ve verzi 2.0.0 LTS. S kódovým názvem Cinnamon Teal (čírka skořicová). S vyladěným protokolem Quack.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2906 hlasů
     Komentářů: 33, poslední 20.10. 23:44
    Rozcestník

    lspci.sh

    30.6.2017 18:02 | Přečteno: 2631× | Linux | Výběrový blog

    Někdy se stane, že člověk potřebuje narychlo vypsat PCI zařízení v systému, ale ouha - zvláště pokud se jedná o jednodušší zařízení třeba s takovým OpenWrt - ne vždy je k disposici klasický příkaz lspci. Ne vždy nalezne člověk tento příkaz v příslušném repozitáři a kompilovat jej ručně bývá na dlouhé lokte,zvláště pro nějakou tu exotičtější architekturu. Ano, většinou má jádro připojené /sys, ale hrabat se v něm ručně taky není příliš user-friendly. Jako rychlou náhražku tu proto mám následující narychlo napsaný skript (závislosti: jádro se sysfs připojené na /sys, /bin/sh, /bin/sed a chcete-li lidsky čitelná jména, pak /usr/bin/host a DNS konektivita):

    #!/bin/sh
    
    PCIID_DNS=pci.id.ucw.cz
    HOST_BIN=/usr/bin/host
    SED_BIN=/bin/sed
    
    (
      cd /sys/bus/pci/devices/
      for ID in * ;
      do
        ID_OK=$(echo $ID | $SED_BIN 's/^0000://')
     
        VENDOR=$($SED_BIN 's/^0x//'    < $ID/vendor )
        DEVICE=$($SED_BIN 's/^0x//'    < $ID/device )
        CLASS=$($SED_BIN 's/^0x//'     < $ID/class  )
     
        CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)....$/\1/')
        CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)..$/\1/')
     
        if [ -x "$HOST_BIN" ] && [ "$1" != "-n" ]
        then
     
          VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS)
          if test "$?" -eq "0" ; then
            VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
          else
            VENDOR_STR="???"
          fi
        
          DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS)
          if test "$?" -eq "0" ; then
            DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
          else
            DEVICE_STR="???"
          fi
        
          CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS)
          if test "$?" -eq "0" ; then
            CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
          else
            CLASS_STR="???"
          fi
     
          echo "$ID_OK   $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]"
    
        else
          echo "$ID_OK $CLASS_H$CLASS_L $VENDOR:$DEVICE"
        fi 
      done
    )
    

    Výstup pak vypadá třeba nějak takto (skoro jako "lspci -nn"):

    00:00.0	Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0]
    00:02.0	VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2]
    00:02.1	Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6]
    00:1b.0	Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8]
    00:1c.0	PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0]
    00:1c.1	PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2]
    00:1c.2	PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4]
    00:1c.3	PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6]
    00:1d.0	USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8]
    00:1d.1	USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9]
    00:1d.2	USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca]
    00:1d.3	USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb]
    00:1d.7	USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc]
    00:1e.0	PCI bridge: Intel Corporation 82801 Mobile PCI Bridge [8086:2448]
    00:1f.0	ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9]
    00:1f.2	IDE interface: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] [8086:27c4]
    00:1f.3	SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da]
    06:01.0	Ethernet controller: Broadcom Limited BCM4401-B0 100Base-TX [14e4:170c]
    06:02.0	Network controller: Qualcomm Atheros AR922X Wireless Network Adapter [168c:0029]
    06:04.0	CardBus bridge: ENE Technology Inc CB-712/4 Cardbus Controller [1524:1412]
    06:04.1	FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller [1524:0530]
    06:04.2	SD Host controller: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller [1524:0550]
    06:04.3	FLASH memory: ENE Technology Inc FLASH memory: ENE Technology Inc: [1524:0520]
    06:04.4	FLASH memory: ENE Technology Inc SD/MMC Card Reader Controller [1524:0551]
    

    Pokud ovšem v systému nemáme /usr/bin/host (nebo pokud skript spustíme s volbou „-n“ jako prvním parametrem), vypíše pouze numerická ID, asi takhle (prostřední číslo je „class“):

    00:01.0 0604 11ab:6820
    00:02.0 0604 11ab:6820
    00:03.0 0604 11ab:6820
    01:00.0 0280 168c:002e
    02:00.0 0280 168c:003c
    03:00.0 0200 10ec:8168
    

    Pokud tento výpis uložíme do souboru, můžeme z něj dostat „lidsky čitelný“ výstup pomocí následujícího skriptu (třeba na jiném počítači, které /usr/bin/host nainstalované má...):

    #!/bin/sh
    
    if test $# -eq 0; then
     echo "$0 <file>" 1>&2 
     exit 666
    fi
    
    PCIID_DNS=pci.id.ucw.cz
    HOST_BIN=/usr/bin/host
    SED_BIN=/bin/sed
    
    while read line ; do
      ID=$(echo $line| awk '{print $1}')
      CLASS=$(echo $line | awk '{print $2}')
      VENDEV=$(echo $line | awk '{print $3}')
    
      VENDOR=$(echo $VENDEV | sed 's/^\(....\):....$/\1/')
      DEVICE=$(echo $VENDEV | sed 's/^....:\(....\)$/\1/')
      CLASS_H=$(echo $CLASS | $SED_BIN 's/^\(..\)..$/\1/')
      CLASS_L=$(echo $CLASS | $SED_BIN 's/^..\(..\)$/\1/')
    
      VENDOR_HH=$($HOST_BIN -t TXT $VENDOR.$PCIID_DNS)
      if test "$?" -eq "0" ; then
        VENDOR_STR=$(echo $VENDOR_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
      else
        VENDOR_STR="???"
      fi
    
      DEVICE_HH=$($HOST_BIN -t TXT $DEVICE.$VENDOR.$PCIID_DNS)
      if test "$?" -eq "0" ; then
        DEVICE_STR=$(echo $DEVICE_HH| $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
      else
        DEVICE_STR="???"
      fi
    
      CLASS_HH=$($HOST_BIN -t TXT $CLASS_L.$CLASS_H.c.$PCIID_DNS)
      if test "$?" -eq "0" ; then
        CLASS_STR=$(echo $CLASS_HH | $SED_BIN 's/.*descriptive\ text\ \"i=//' | $SED_BIN 's/\"$//')
      else
        CLASS_STR="???"
      fi
    
      echo "$ID   $CLASS_STR: $VENDOR_STR $DEVICE_STR [$VENDOR:$DEVICE]"
    done < $1
    

    A výstup z něj bude vypadat třeba takto:

    00:01.0   PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820]
    00:02.0   PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820]
    00:03.0   PCI bridge: Marvell Technology Group Ltd. ??? [11ab:6820]
    01:00.0   Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) [168c:002e]
    02:00.0   Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter [168c:003c]
    03:00.0   Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168]
    
           

    Hodnocení: 100 %

            špatné • dobré        

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

    Komentáře

    Vložit další komentář

    xkucf03 avatar 30.6.2017 18:41 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: lspci.sh
    Zajímavé. Nevěděl jsem, že se PCI ID překládají pomocí DNS.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Petr Tomášek avatar 30.6.2017 19:53 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: lspci.sh
    Normálně ne, normálně je máš v /usr/share/misc/pci.ids, ale existuje i ta možnost pomocí DNS. A jelikož jsem byl línej parsovat ten soubor, použil jsem druhou možnost. Mimochodem, není vůbec náhoda, že ten DNS je v doméně .cz, protože za tím stojí (snad se neurazí, když řeknu) linuxová legenda Martin Mareš :-).
    multicult.fm | monokultura je zlo | welcome refugees!
    30.6.2017 22:35 Juraj
    Rozbalit Rozbalit vše Re: lspci.sh
    ten ? Mares, co si vzal Bernathovou Anicku?
    1.7.2017 16:43 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: lspci.sh
    Anička je irelevantní :-P. Důležíté je že to je ten Mareš co napsal Magic SysRq implementaci :-D.
    30.6.2017 19:16 Vasek
    Rozbalit Rozbalit vše Re: lspci.sh
    Hezke vyuziti DNS zaznamu :) bravo!
    30.6.2017 20:27 RM
    Rozbalit Rozbalit vše Re: lspci.sh
    pěkné, pěkné to je
    1.7.2017 16:45 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: lspci.sh
    Hezkej skriptík to zase jo, já ale teda většinou stejně skončím na kompilaci originálního lspci, protože potřebuju právě ty rozšířené informace jako stavy paměťových PCI regionů a konfiguračních registrů :-/.

    Založit nové vlákno • Nahoru

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