__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/bin/sh
# amd64-microcode initramfs-tools hook script
# Copyright (C) 2012-2016 Henrique de Moraes Holschuh <hmh@debian.org>
# Released under the GPL v2 or later license
#
# Generates a copy of the minimal microcode for all AMD processors
# and installs it to the early initramfs
PREREQ=""
AMD64UCODE_CONFIG=/etc/default/amd64-microcode
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
verbose()
{
if [ "${verbose}" = "y" ] ; then
echo "I: amd64-microcode: $*"
fi
:
}
AUCODE_FW_DIR=/lib/firmware/amd-ucode
if [ "$MODULES" = "most" ]; then
AMD64UCODE_INITRAMFS=${AMD64UCODE_INITRAMFS:-early}
else
AMD64UCODE_INITRAMFS=${AMD64UCODE_INITRAMFS:-auto}
fi
[ -r ${AMD64UCODE_CONFIG} ] && . ${AMD64UCODE_CONFIG}
[ -z "${AMD64UCODE_INITRAMFS}" ] && AMD64UCODE_INITRAMFS=no
if [ ! -d "${AUCODE_FW_DIR}" ] ; then
verbose "no AMD64 processor microcode datafiles to install"
exit 0
fi
case "${AMD64UCODE_INITRAMFS}" in
no|0)
verbose "disabled by ${AMD64UCODE_CONFIG}"
exit 0
;;
auto|early)
;;
yes|1)
echo "W: amd64-microcode: initramfs mode not supported, using early-initramfs mode" >&2
AMD64UCODE_INITRAMFS=early
;;
*)
echo "E: amd64-microcode: invalid AMD64UCODE_INITRAMFS, using automatic mode" >&2
AMD64UCODE_INITRAMFS=auto
esac
if [ "${AMD64UCODE_INITRAMFS}" = "auto" ] ; then
grep -q "^vendor_id[[:blank:]]*:[[:blank:]]*.*AuthenticAMD" /proc/cpuinfo || {
verbose "no AMD processors detected, nothing to do"
exit 0
}
fi
# whitelist AMD early updates for kernels 3.14 and later
if dpkg --compare-versions "${version}" lt 3.14 ; then
echo "E: amd64-microcode: unsupported kernel version!" >&2
exit 0
fi
verbose "installing AMD64 microcode into the early initramfs..."
# set during package build to the date from the package *version*
CHANGELOG_TS=1741651200
EFWD=$(mktemp -d "${TMPDIR:-/var/tmp}/mkinitramfs-EFW_XXXXXXXXXX") || {
echo "E: amd64-microcode: cannot create temporary directory" >&2
exit 1
}
# paranoia
[ ! -d "${EFWD}" ] && {
echo "E: amd64-microcode: mktemp -d malfunction" >&2
exit 1
}
EFWE="${EFWD}/early-initramfs.cpio"
EFWCD="${EFWD}/d/kernel/x86/microcode"
EFWF="${EFWCD}/AuthenticAMD.bin"
# note: to build a reproducible early initramfs, we force
# the microcode component ordering inside the microcode
# firmware file, as well as the timestamp and ordering of
# all cpio members.
mkdir -p "${EFWCD}" && \
find "${AUCODE_FW_DIR}/." -maxdepth 1 -type f -print0 | LC_ALL=C sort -z | xargs -0 -r cat 2>/dev/null >"${EFWF}" && \
find "${EFWD}" -print0 | xargs -0r touch --no-dereference --date="@${CHANGELOG_TS}" && { \
# --reproducible requires cpio >= 2.12
cpio --usage | grep -qs -- "--reproducible" && cpio_reproducible="--reproducible" || true
} && test -s "${EFWF}" && \
( cd "${EFWD}/d" ; find . -print0 | LC_ALL=C sort -z | cpio --null $cpio_reproducible -R 0:0 -H newc -o --quiet > "${EFWE}" ) \
&& prepend_earlyinitramfs "${EFWE}" || {
# something failed somewhere in that pipeline
[ -d "${EFWD}" ] && rm -fr "${EFWD}"
echo "E: amd64-microcode: failed to create or prepend the early initramfs to the initramfs" >&2
exit 0
}
[ -d "${EFWD}" ] && rm -fr "${EFWD}"
# attempt to load microcode module to get proper logging.
# microcode support cannot be made modular since Linux 4.4
if dpkg --compare-versions "${version}" lt 4.4 ; then
manual_add_modules microcode && {
# force_load has broken semanthics when the .ko file is missing
find "${DESTDIR}/${MODULESDIR}" -type f -print | grep -qc '/microcode\.ko$' && {
verbose "modular microcode driver detected"
force_load microcode
}
}
fi
:
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| amd64_microcode | File | 3.77 KB | 0755 |
|
| bcache | File | 543 B | 0755 |
|
| btrfs | File | 701 B | 0755 |
|
| cloud-initramfs-dyn-netconf | File | 118 B | 0755 |
|
| console_setup | File | 3.07 KB | 0755 |
|
| copymods | File | 280 B | 0755 |
|
| cryptgnupg | File | 958 B | 0755 |
|
| cryptgnupg-sc | File | 2.4 KB | 0755 |
|
| cryptkeyctl | File | 457 B | 0755 |
|
| cryptopensc | File | 1.48 KB | 0755 |
|
| cryptpassdev | File | 888 B | 0755 |
|
| cryptroot | File | 15.63 KB | 0755 |
|
| cryptroot-unlock | File | 1010 B | 0755 |
|
| dhcpcd | File | 1.3 KB | 0755 |
|
| dmsetup | File | 506 B | 0755 |
|
| fixrtc | File | 436 B | 0755 |
|
| framebuffer | File | 386 B | 0755 |
|
| fsck | File | 2.06 KB | 0755 |
|
| fuse | File | 231 B | 0755 |
|
| intel_microcode | File | 4.73 KB | 0755 |
|
| iscsi | File | 672 B | 0755 |
|
| kbd | File | 301 B | 0755 |
|
| klibc-utils | File | 694 B | 0755 |
|
| kmod | File | 468 B | 0755 |
|
| lvm2 | File | 661 B | 0755 |
|
| mdadm | File | 3.14 KB | 0755 |
|
| ntfs_3g | File | 304 B | 0755 |
|
| overlayroot | File | 688 B | 0755 |
|
| plymouth | File | 6.04 KB | 0755 |
|
| resume | File | 3.19 KB | 0755 |
|
| sg3-utils | File | 485 B | 0755 |
|
| thermal | File | 1.14 KB | 0755 |
|
| thin-provisioning-tools | File | 331 B | 0755 |
|
| udev | File | 2.59 KB | 0755 |
|
| xfs | File | 850 B | 0755 |
|
| zz-busybox-initramfs | File | 2.18 KB | 0755 |
|