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 18:55 | Nová verze

Bylo vydáno OpenBSD 6.6. Opět bez oficiální písně. Z novinek lze zmínit například sysupgrade(8).

Ladislav Hagara | Komentářů: 2
včera 08:36 | Nová verze

Vyšla nová verze monitorovacího řešení Centreon 19.10.0. Novinek je spousta (realtime API, podpora JIRA, vylepšený systém notifikací...), ale těmi nejdůležitějšími je pro mnohé uživatele podpora nové verze rrdtool 1.7.x a php 7.2. Systém tak půjde bez problémů provozovat na jiných distribucích než CentOS 7. Kompletní přehled novinek v seznamu změn. Předpřipravená appliance i samotné části jsou k dispozici na oficiálních stránkách.

Max | Komentářů: 0
včera 01:00 | Komunita

Dnes vyjde Ubuntu 19.10 s kódovým názvem Eoan Ermine. Přehled novinek v poznámkách k vydání. Ubuntu 20.04 LTS bude Focal Fossa.

Ladislav Hagara | Komentářů: 6
16.10. 22:11 | Zajímavý projekt

Padesátiny Unixu lze oslavit také hrou The Unix Game aneb na unixové roury pomocí Scratche.

Ladislav Hagara | Komentářů: 1
16.10. 21:44 | Komunita

Vývojáři svobodného 3D softwaru Blender oznámili, že nejnovějším firemním sponzorem Blenderu je společnost Adidas. Jedná se o úroveň Corporate Silver, tj. 12 tisíc eur ročně.

Ladislav Hagara | Komentářů: 11
16.10. 18:22 | Komunita

V září proběhla každoroční konference Akademy komunity KDE. Nyní jsou záznamy přednášek dostupné online. Témata se dotýkají aplikací a knihoven KDE, jejich adaptaci pro různá speciální použití (vestavěná zařízení či rozšířená realita) i obecně vývoje a distribuce softwaru.

Fluttershy, yay! | Komentářů: 0
16.10. 09:11 | Zajímavý článek

Mozilla.cz informuje o vylepšování vlastních about: stránek Firefoxu, konkrétně o odstraňování volání funkce eval() z těchto stránek. Tyto stránky mají přístup k interním součástem Firefoxu, ale protože jsou napsané v HTML a JavaScriptu, mohou být cílem podobných útoků jako webové stránky zobrazované v prohlížeči (např. vložení cizího kódu nebo obsahu), jen s potenciálně závažnějším dopadem. Pokud by se někomu skutečně povedlo kód do

… více »
Ladislav Hagara | Komentářů: 3
16.10. 08:55 | Zajímavý projekt

Uživatel GitHubu joeycastillo představil The Open Book Project, jehož cílem je vytvořit open-source čtečku elektronických knih. Projekt se zatím nachází v rané fázi vývoje, už nyní ale obsahuje použitelný návrh hardware prototypu „Feather Wing“, jehož cílem má být ověření konceptu na 4,2palcovém displeji. Tento koncept je postaven na kitu Adafruit Feather M4 Express, který ovládá hlavní desku s displeji a tlačítky. Po úspěšném ověření

… více »
Bystroushaak | Komentářů: 41
16.10. 05:00 | Nová verze

Byla vydána verze 5.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
15.10. 20:33 | Zajímavý projekt

Byly zveřejněny schémata, firmware a instrukce pro sestavení trackballu Ploopy. Ten používá Arduino, senzor PMW3360 a 1,75palcovou kouli. Zdrojové soubory jsou šířeny pod open-hardware licencí CERN a GNU GPLv3. Tvar je inspirovaný klasickým trackballem Microsoft Trackball Explorer, jehož výroba byla ukončena kolem roku 2005 bez náhrady; projekt Ploopy se k tomu ale z právních důvodů nehlásí. Již vyrobené díly je možno objednat za 200 kanadských dolarů. Další podrobnosti v příspěvcích uživatele crop_octagon na Redditu.

Fluttershy, yay! | Komentářů: 30
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (20%)
 (4%)
 (11%)
 (39%)
 (24%)
 (2%)
Celkem 413 hlasů
 Komentářů: 22, poslední 23.9. 08:36
Rozcestník

lspci.sh

30.6.2017 18:02 | Přečteno: 1258× | 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: 48 | 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: 38 | 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áknoNahoru

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