Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.
Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.
Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.
Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].
Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).
Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Novým vedoucím je Andreas Tille.
Po osmi měsících vývoje byla vydána nová verze 0.12.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 268 vývojářů. Přehled novinek v poznámkách k vydání.
Poslední měsíc byl plný zajímavých akcí, o kterých Vám bastlíři z projektu MacGyver mohou povědět, protože se na ně sami vydali. Kde všude byli, ptáte se? Objevili se na Installfestu, Arduino Day, Hackaday Europe a tajném srazu bastlířů z Twitteru. A z každé akce pro vás mají zajímavé poznatky.
… více »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]
Tiskni Sdílej:
/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š .