SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
The simplest way to append the microcode to an initrd is to use the /etc/mkinitrd.conf. My previous post, (post #4 of this thread) simplifies the process by far. I think that this method should be the recommended way to apply the microcode to a initrd because its the simplest and most fool proof method for newbies and advanced users alike. However, I do realize everyone has their own way of doing things but something is getting lost in translation. Remember, K.I.S.S. principle.
Using the 'cat' command isn't necessary to do any of this. Pat and team simplified the process for us with the mkinitrd.conf. A wrapper script for mkinitrd_command_generator.sh isn't necessary either if you use the mkinitrd.conf.
Thanks, but neither method works for me. I've installed the 2 necessary packages. The file DoNOT end up in the /boot/ directory.
Code:
[root@darkstar:~] # ls -la /boot/intel-ucode.cpio
ls: cannot access '/boot/intel-ucode.cpio': No such file or directory
If you install intel-microcode before you install iucode_tool, then /boot/intel-ucode.cpio will not exist. Install first iucode_tool, and following that, install intel-microcode.
The relevant part in the intel-microcode SlackBuild is:
Code:
mkdir -p $PKG/lib/firmware
cp -a microcode.dat $PKG/lib/firmware
if [ -x /usr/sbin/iucode_tool ]; then
mkdir -p $PKG/lib/firmware/intel-ucode
/usr/sbin/iucode_tool -v --list-all -K$PKG/lib/firmware/intel-ucode microcode.dat
mkdir -p $PKG/boot
/usr/sbin/iucode_tool -v --write-earlyfw=$PKG/boot/intel-ucode.cpio microcode.dat
fi
If you do it in the wrong order, the file in /boot will not be present.
One advantage of making the cpio image file from processor microcode file is that you end up with ramfs file having size ~24k, so much less compared to the file with 1.5M size that iucode_tool produces using the microcode.dat file
One advantage of making the cpio image file from processor microcode file is that you end up with ramfs file having size ~24k, so much less compared to the file with 1.5M size that iucode_tool produces using the microcode.dat file
The initrd's allocated memory is usually discarded after switching the root. So, does not matter even the iucode_tool produce a 15MB sized thing.
Anyway, both sizes are laughable considering your capitalist sizes of memories, I heard that around 64GB is a minimum and the greedy ones go 256GB.
The initrd's allocated memory is usually discarded after switching the root. So, does not matter even the iucode_tool produce a 15MB sized thing.
Anyway, both sizes are laughable considering your capitalist sizes of memories, I heard that around 64GB is a minimum and the greedy ones go 256GB.
Yes true, but it 's nice thing to be able to tailor it with just what your processor needs and not with useless code for other processors.
I admit I like to tailor kernel too...
One advantage of making the cpio image file from processor microcode file is that you end up with ramfs file having size ~24k, so much less compared to the file with 1.5M size that iucode_tool produces using the microcode.dat file
iucode_tool -S option will do that for you. No need to manually figure out which file you need to use: /usr/sbin/iucode_tool -S --write-earlyfw=intel-ucode-local.cpio /lib/firmware/intel-ucode/
I remove the obsolete microcode.dat file from the package when I build it.
Yes true, but it 's nice thing to be able to tailor it with just what your processor needs and not with useless code for other processors.
I admit I like to tailor kernel too...
Well, if we talk about the noble art of tailoring, is entirely another story.
Distribution: VM Host: Slackware-current, VM Guests: Artix, Venom, antiX, Gentoo, FreeBSD, OpenBSD, OpenIndiana
Posts: 1,008
Rep:
Quote:
Originally Posted by PROBLEMCHYLD
Thanks, but neither method works for me. I've installed the 2 necessary packages. The file DoNOT end up in the /boot/ directory.
Code:
[root@darkstar:~] # ls -la /boot/intel-ucode.cpio
ls: cannot access '/boot/intel-ucode.cpio': No such file or directory
I assume that you have downloaded http://downloadmirror.intel.com/2743...e-20180108.tgz
once unpacked
cd to /boot
and run
sudo iucode_tool -S --write-earlyfw=intel-ucode.cpio path-to/microcode-20180108/intel-ucode/*
this will generate /boot/intel-ucode.cpio (or whatever you name it)
First I personally want to thank all the LQ Senior guru's who've contributed to this thread. THANK YOU!
Second I want to answer earlier questions asked about my install.
You can see that I've got two initrd's for the 4.4.110 kernel, one with the microcode. This is on a LVM/LUKS Slackware64 14.2 multilib install.
To run in forward sequence the steps taken
1. sboinstall iucode_tool from SBo
2. pulled the SBo of intel-microcode. Modified with emacs to point to 20180108 Intel file and then build and upgradepkg, since previously had sboinstall intel-microcode which used 20171117.
3. verified date/time of /boot/intel-ucode.cpio was same as build date/time of the intel-microcode run in previous step.
4. cat /boot/intel-ucode.cpio /boot/initrd-custom-4.4.110.gz > /boot/initrd-custom-4.4.110_ucode.gz
5. using emacs modified lilo.conf to add proper stanza pointing to /boot/initrd-custom-4.4.110_ucode.gz
6. execute lilo and confirmed output of Slak44110+ is added and no error codes generated.
7. rebooted
Here are the ls commands for showing the tools installed.
Code:
root@Hicrest1:~# ls -la /var/log/packages | grep ucode
-rw-r--r-- 1 root root 1224 Jan 5 17:10 iucode_tool-2.2-x86_64-1_SBo
root@Hicrest1:~# ls -la /var/log/packages | grep intel
-rw-r--r-- 1 root root 4953 Dec 19 14:55 intel-gpu-tools-1.9-x86_64-2
-rw-r--r-- 1 root root 4206 Jan 9 19:52 intel-microcode-20180108-noarch-1_SBo
-rw-r--r-- 1 root root 1038 Dec 19 14:55 libva-intel-driver-1.6.2-x86_64-1
-rw-r--r-- 1 root root 1125 Dec 23 21:09 libva-intel-driver-compat32-1.6.2-x86_64-1compat32
-rw-r--r-- 1 root root 1594 Dec 19 14:56 xf86-video-intel-git_20160601_b617f80-x86_64-1
This is reflecting the original ucode level that was present before the intel-microcode SBo install.
So I'm thinking that nothing was loaded. But maybe this simply indicates that no revisions are available to that CPU processor which would be consistent with Intel's statement that only CPU's from past five years will be available this week and all other processors hopefully by end of January.
The simplest way to append the microcode to an initrd is to use the /etc/mkinitrd.conf. My previous post, (post #4 of this thread) simplifies the process by far. I think that this method should be the recommended way to apply the microcode to a initrd because its the simplest and most fool proof method for newbies and advanced users alike. However, I do realize everyone has their own way of doing things but something is getting lost in translation. Remember, K.I.S.S. principle.
Using the 'cat' command isn't necessary to do any of this. Pat and team simplified the process for us with the mkinitrd.conf. A wrapper script for mkinitrd_command_generator.sh isn't necessary either if you use the mkinitrd.conf.
I agree with you, using the mkinitrd.conf file seems like the right way to do this. Just look at the steps I went through, but the mkinitrd still only works if you've used the intel-microcode slackbuild and have the /boot/intel-ucode.cpio. Also I've always used AlienBob's initrd generator script so I can add the LVM/LUKS, hibernation swap flag and have multiple initrd's in order to fall back if the new one fails. So I have to try the suggestion and see if it produces a different result.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.