mirror of
https://github.com/dslm4515/BMLFS.git
synced 2025-08-20 14:31:47 +00:00
Upgraded dmidecode from 3.3 to 3.5
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
|
|
||||||
# dmidecode
|
# dmidecode
|
||||||
# Source: https://download.savannah.gnu.org/releases/dmidecode/dmidecode-3.3.tar.xz
|
# Source: https://download.savannah.gnu.org/releases/dmidecode/dmidecode-3.5.tar.xz
|
||||||
#
|
#
|
||||||
# $BUILD = Directory to temporarily install
|
# $BUILD = Directory to temporarily install
|
||||||
# $PKGS = Directory to store built packages
|
# $PKGS = Directory to store built packages
|
||||||
@ -11,11 +11,12 @@
|
|||||||
# Recommended: NONE
|
# Recommended: NONE
|
||||||
# Optional: NONE
|
# Optional: NONE
|
||||||
|
|
||||||
sed -e '/^PROGRAMS !=/d' -e 's/-O2/-Os/' -i Makefile
|
patch -Np1 -i ../patches/dimdecode-chimera/recommended-1.patch
|
||||||
|
patch -Np1 -i ../patches/dimdecode-chimera/recommended-2.patch
|
||||||
|
|
||||||
read -p "Compile?" && make prefix=/usr -j2 &&
|
read -p "Compile?" && make prefix=/usr sbindir=/usr/bin -j2 &&
|
||||||
|
|
||||||
sudo -S make prefix=/usr DESTDIR=$BUILD install &&
|
sudo -S make prefix=/usr sbindir=/usr/bin DESTDIR=$BUILD install &&
|
||||||
|
|
||||||
cd $BUILD && sudo -S mkdir -v ${BUILD}/install &&
|
cd $BUILD && sudo -S mkdir -v ${BUILD}/install &&
|
||||||
cat > /tmp/slack-desc << "EOF"
|
cat > /tmp/slack-desc << "EOF"
|
||||||
@ -35,5 +36,5 @@ dmidecode: https://nongnu.org/dmidecode
|
|||||||
dmidecode:
|
dmidecode:
|
||||||
EOF
|
EOF
|
||||||
sudo -S mv -v /tmp/slack-desc install/ &&
|
sudo -S mv -v /tmp/slack-desc install/ &&
|
||||||
sudo -S makepkg -l y -c n $PKGS/dmidecode-3.3-$(uname -m)-mlfs.txz &&
|
sudo -S makepkg -l y -c n $PKGS/dmidecode-3.5-$PSUFFIX &&
|
||||||
sudo -S rm -rf ${BUILD}/*
|
sudo -S rm -rf ${BUILD}/*
|
||||||
|
46
patches/dimdecode-chimera/recommended-1.patch
Normal file
46
patches/dimdecode-chimera/recommended-1.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
Patch-Source: https://git.savannah.gnu.org/cgit/dmidecode.git/commit/?id=80de376231e903d2cbea95e51ffea31860502159
|
||||||
|
--
|
||||||
|
From 80de376231e903d2cbea95e51ffea31860502159 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jerry Hoemann <jerry.hoemann@hpe.com>
|
||||||
|
Date: Mon, 3 Apr 2023 10:15:12 +0200
|
||||||
|
Subject: dmioem: HPE OEM Record 237 Firmware change
|
||||||
|
|
||||||
|
HPE OEM record type 237 offset 0x09 field was changed from a single
|
||||||
|
byte STRING to a two byte WORD representing date.
|
||||||
|
|
||||||
|
Fixes: cdab638dabb7 ("dmioem: Decode HPE OEM Record 237")
|
||||||
|
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
||||||
|
---
|
||||||
|
dmioem.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dmioem.c b/dmioem.c
|
||||||
|
index dc4b857..2746e15 100644
|
||||||
|
--- a/dmioem.c
|
||||||
|
+++ b/dmioem.c
|
||||||
|
@@ -1094,7 +1094,8 @@ static int dmi_decode_hp(const struct dmi_header *h)
|
||||||
|
* 0x06 | Manufacture|STRING | DIMM Manufacturer
|
||||||
|
* 0x07 | Part Number|STRING | DIMM Manufacturer's Part Number
|
||||||
|
* 0x08 | Serial Num |STRING | DIMM Vendor Serial Number
|
||||||
|
- * 0x09 | Spare Part |STRING | DIMM Spare Part Number
|
||||||
|
+ * 0x09 | Man Date | BYTE | DIMM Manufacture Date (YEAR) in BCD
|
||||||
|
+ * 0x0A | Man Date | BYTE | DIMM Manufacture Date (WEEK) in BCD
|
||||||
|
*/
|
||||||
|
if (gen < G9) return 0;
|
||||||
|
pr_handle_name("%s DIMM Vendor Information", company);
|
||||||
|
@@ -1105,8 +1106,9 @@ static int dmi_decode_hp(const struct dmi_header *h)
|
||||||
|
pr_attr("DIMM Manufacturer Part Number", "%s", dmi_string(h, data[0x07]));
|
||||||
|
if (h->length < 0x09) break;
|
||||||
|
pr_attr("DIMM Vendor Serial Number", "%s", dmi_string(h, data[0x08]));
|
||||||
|
- if (h->length < 0x0A) break;
|
||||||
|
- pr_attr("DIMM Spare Part Number", "%s", dmi_string(h, data[0x09]));
|
||||||
|
+ if (h->length < 0x0B) break;
|
||||||
|
+ if (WORD(data + 0x09))
|
||||||
|
+ pr_attr("DIMM Manufacture Date", "20%02x-W%02x", data[0x09], data[0x0A]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 238:
|
||||||
|
--
|
||||||
|
cgit v1.1
|
||||||
|
|
66
patches/dimdecode-chimera/recommended-2.patch
Normal file
66
patches/dimdecode-chimera/recommended-2.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
Patch-Source: https://git.savannah.gnu.org/cgit/dmidecode.git/commit/?id=c76ddda0ba0aa99a55945e3290095c2ec493c892
|
||||||
|
--
|
||||||
|
From c76ddda0ba0aa99a55945e3290095c2ec493c892 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Date: Wed, 26 Apr 2023 15:44:27 +0200
|
||||||
|
Subject: Consistently use read_file() when reading from a dump file
|
||||||
|
|
||||||
|
Use read_file() instead of mem_chunk() to read the entry point from a
|
||||||
|
dump file. This is faster, and consistent with how we then read the
|
||||||
|
actual DMI table from that dump file.
|
||||||
|
|
||||||
|
This made no functional difference so far, which is why it went
|
||||||
|
unnoticed for years. But now that a file type check was added to the
|
||||||
|
mem_chunk() function, we must stop using it to read from regular
|
||||||
|
files.
|
||||||
|
|
||||||
|
This will again allow root to use the --from-dump option.
|
||||||
|
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
||||||
|
Tested-by: Jerry Hoemann <jerry.hoemann@hpe.com>
|
||||||
|
---
|
||||||
|
dmidecode.c | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dmidecode.c b/dmidecode.c
|
||||||
|
index 54f59c1..52ddbf1 100644
|
||||||
|
--- a/dmidecode.c
|
||||||
|
+++ b/dmidecode.c
|
||||||
|
@@ -6025,17 +6025,25 @@ int main(int argc, char * const argv[])
|
||||||
|
pr_comment("dmidecode %s", VERSION);
|
||||||
|
|
||||||
|
/* Read from dump if so instructed */
|
||||||
|
+ size = 0x20;
|
||||||
|
if (opt.flags & FLAG_FROM_DUMP)
|
||||||
|
{
|
||||||
|
if (!(opt.flags & FLAG_QUIET))
|
||||||
|
pr_info("Reading SMBIOS/DMI data from file %s.",
|
||||||
|
opt.dumpfile);
|
||||||
|
- if ((buf = mem_chunk(0, 0x20, opt.dumpfile)) == NULL)
|
||||||
|
+ if ((buf = read_file(0, &size, opt.dumpfile)) == NULL)
|
||||||
|
{
|
||||||
|
ret = 1;
|
||||||
|
goto exit_free;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Truncated entry point can't be processed */
|
||||||
|
+ if (size < 0x20)
|
||||||
|
+ {
|
||||||
|
+ ret = 1;
|
||||||
|
+ goto done;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (memcmp(buf, "_SM3_", 5) == 0)
|
||||||
|
{
|
||||||
|
if (smbios3_decode(buf, opt.dumpfile, 0))
|
||||||
|
@@ -6059,7 +6067,6 @@ int main(int argc, char * const argv[])
|
||||||
|
* contain one of several types of entry points, so read enough for
|
||||||
|
* the largest one, then determine what type it contains.
|
||||||
|
*/
|
||||||
|
- size = 0x20;
|
||||||
|
if (!(opt.flags & FLAG_NO_SYSFS)
|
||||||
|
&& (buf = read_file(0, &size, SYS_ENTRY_FILE)) != NULL)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
cgit v1.1
|
||||||
|
|
Reference in New Issue
Block a user