DSL Ideas and Suggestions :: Update pci-utils and pci.ids



OK, I'll do that.

In the meantime, the "update-pciids" script looks like this:
Code Sample
#!/bin/sh

set -e
SRC="http://pciids.sourceforge.net/v2.2/pci.ids"
DEST=/opt/pci-utils/share/pci.ids
PCI_COMPRESSED_IDS=
GREP=grep

if [ -n "$PCI_COMPRESSED_IDS" ]; then
DECOMP="cat"
SRC="$SRC.gz"
GREP=zgrep
elif which bzip2 >/dev/null; then
DECOMP="bzip2 -d"
SRC="$SRC.bz2"
elif which gzip >/dev/null; then
DECOMP="gzip -d"
SRC="$SRC.gz"
else
DECOMP="cat"
fi

if which curl >/dev/null; then
DL="curl -o $DEST.new $SRC"
elif which wget >/dev/null; then
DL="wget -O $DEST.new $SRC"
elif which lynx >/dev/null; then
DL="eval lynx -source $SRC >$DEST.new"
else
echo >&2 "update-pciids: cannot find curl, wget or lynx"
exit 1
fi

if ! $DL; then
echo >&2 "update-pciids: download failed"
rm -f $DEST.new
exit 1
fi

if ! $DECOMP <$DEST.new >$DEST.neww; then
echo >&2 "update-pciids: decompression failed, probably truncated file"
exit 1
fi

if ! $GREP >/dev/null "^C " $DEST.neww; then
echo >&2 "update-pciids: missing class info, probably truncated file"
exit 1
fi

if [ -f $DEST ]; then
mv $DEST $DEST.old
# --reference is supported only by chmod from GNU file, so let's ignore any errors
chmod -f --reference=$DEST.old $DEST.neww 2>/dev/null || true
fi
mv $DEST.neww $DEST
rm $DEST.new

echo "Done."

pci.ids=487K, pci.ids.gz=137k, pci.ids.bz2=126k (current dsl=154k) but dsl lspci=23.7k and this lspci=63.6k (stripped)

Setting PCI_COMPRESSED_IDS=1 downloads pci.ids.gz but gives the following error:
Quote
/opt/pci-utils/sbin/update-pciids: line 45: zgrep: command not found
update-pciids: missing class info, probably truncated file

I guess dsl is missing zgrep?

So what you gain in size you lose by requiring extra binary.

Also, for the slowest machines, uncompressing that which was not before is just an extra burden. Especially for bzip2. Bzip2 has been rejected in the past over the slower machine issue.

Perhaps best to update but without compressing.

Ok. I took a look at this and have modified the update-pciids script to work with DSL, i.e., not use zgrep. Seems to be working fine and still being compressed just using gzip -d.

Thanks for the suggestion.



If you could let me know how you modified the script I'll test lspci (from pciutils-2.29) out to be sure it works with dsl
Modded the first if statement to:

Code Sample

if [ -n "$PCI_COMPRESSED_IDS" ] && [ -x zgrep ]; then
       DECOMP="cat"
       SRC="$SRC.gz"
       GREP=zgrep
#elif which bzip2 >/dev/null; then
#       DECOMP="bzip2 -d"
#       SRC="$SRC.bz2"
elif which gzip >/dev/null; then
       DECOMP="gzip -d"
       SRC="$SRC.gz"
else
       DECOMP="cat"
fi

Next Page...
original here.