Thursday, September 18, 2025

Slackware Kernel Compilation for Dummies

Slackware 15 is getting a little long in the tooth, so I decided to upgrade to the latest kernel in the Slackware-current branch. This makes it easier because I can avoid many of the kernel compilation pain points. Here's what I did:

  1. Download the latest Slackware-current kernel source. I did it this way:
    lftp -c "open https://slackware.osuosl.org/slackware64-current/source ; mirror k"

  2. Go into the "k" directory it created and untar the kernel source

  3. Copy the config you need from ../kernel-configs to the kernel source directory and rename it .config

  4. Run "make olddefconfig"

  5. Run "make -j 12" Change the 12 to whatever cores you have available on your CPU. The command nproc will tell you.

  6. Go watch the baseball game while it compiles.

  7. Run "make modules_install"

  8. Copy the new kernel to the Slackware efi directory (replace the x.x.x with the kernel revision numbers):

    cp arch/x86_64/boot/bzImage /boot/efi/EFI/Slackware/vmlinuz-x.x.x

  9. Back up the existing initrd,gz in the /boot directory

  10. Make a new initrd this way (replace the /dev/nvme0n1p2 with whatever your root partition is):

    mkinitrd -c -k x.x.x -m ext4 -f ext4 -r /dev/nvme0n1p2

  11. I change the name of the new initrd,gz to initrd-x.x.x.gz to tell them apart.

  12. Copy the new initrd to the /boot/efi/EFI/Slackware directory

  13. Edit the elilo.conf file with the new kernel info

  14. Profit!

Sunday, October 29, 2023

BIOS Updates and UEFI

I finally figured out how to rebuild my EFI boot entry after a BIOS update. I boot to the Slackware USB boot drive. When it has me select a kernel I hit tab and enter the following command:

huge.s root=/dev/nvme0n1p2 rdinit=ro

Then once it finally boots to my existing Slackware installation, I issue this command:

efibootmgr -c -d /dev/nvme0n1p1 -l "\\EFI\\Slackware\\elilo.efi" -L "Slackware"

I wish that the EFI boot entry wouldn't be deleted, but since the BIOS updater automatically clears all BIOS settings, it is inevitable.

Update 3/18/2024: I finally got smart and make a shell script for the efibootmgr command and put it in /root so that it's handy whenever I have a new BIOS available.

Sunday, February 19, 2023

Even More UEFI Stuff

About five years ago I posted about getting UEFI to work with Slackware and elilo. I made it a bit more confusing than it needed to be. To make an initrd, you just need to go into the /boot directory as root and use the command geninitrd. Slackware will automagically make the proper initrd.gz so your system will boot.

Then copy the generic and huge kernels as well as initrd.gz to /boot/efi/EFI/Slackware. eliloconfig will create an elilo.conf file there but it will only create one entry. You can make your own. The syntax is very similar to lilo. Here's my current elilo.conf. I noticed there was some weirdness in the one from five years ago. This is for the latest kernel as of this writing on my fancy new WD Black NVMe drive. Zoom!

chooser=simple
delay=100
timeout=100
prompt
#
image=vmlinuz-generic-5.15.94
       label=generic
       description="Slackware 15.0"
       initrd=initrd.gz
       read-only
       append="root=/dev/nvme0n1p2 vga=normal ro"

image=vmlinuz-huge-5.15.94
       label=huge
       description="Slackware 15.0 Huge"
       read-only
       append="root=/dev/nvme0n1p2 vga=normal ro"

Friday, October 1, 2021

Wake for Cron

I recently installed an SSD in my computer and decided to upgrade to Slackware -current (the developmental branch, soon to be Slackware 15). One pleasant surprise is that for the first time my computer will sleep and wake properly. That's great, but that means the various cron jobs won't run because my computer will be asleep when they're supposed to run. I thought of using anacron since I had used that many moons ago when I was running Red Hat. My concern was that it hadn't been updated since June 2000.

So I did a little research and decided to use rtcwake. That will make the computer wake up at a time you set. I checked /usr/spool/cron/crontabs/root to see when the cron jobs run. Turns out that daily runs at 4:40 A.M., weekly at 4:30, and monthly at 4:20. I knew that when my computer woke up, KDE would automatically put it back to sleep after an hour. So I decided to wake it up at 4:10 A.M. Everything seemed to work fine. So I created another file in cron.daily called rtcwake with the following in it:

#!/bin/sh
/usr/sbin/rtcwake -m no -l -t $(date +\%s -d "tomorrow 04:10")

The -m no tells it not to immediately put the device to sleep. -l means that the clock is set to local time and not UTC. The crazy looking date command translates "tomorrow at 4:10 A.M." into the time since the Unix epoch (number of seconds since midnight on January 1, 1970) which the rtcwake command command needs. I executed the command on its own last night. It ran properly. That cron job makes sure it will run tomorrow too. Pretty handy!

Sunday, December 16, 2018

Fix for Asus Chromebook Flip C302CA Not Charging

I had a mild heart attack this evening when I tried to charge my Asus Chromebook Flip C302CA and nothing would happen. Unfortunately those who have a USB C charger here were already in bed, so I couldn't check if it was the charger or the Chromebook itself. Turns out it was the latter. A quick Google search turned up this Reddit post with a solution. I just had to hold the reload button and then tap the power button. Apparently that does an EC reset that resets the charging controller. Now it is safely recharging. Crisis averted.

Saturday, July 28, 2018

Brother HL-L2350DW and WiFi

I bought a new Brother HL-L2350DW because my old Brother printer was needing a new drum and had some other minor issues. It served me well for many years. However, I noticed with the HL-L2350DW that after it went to sleep, it wouldn't wake up to print. Hitting buttons, opening and closing the lid on it, etc. didn't help. After a little Googling I found a culprit. I had to change a setting on my router (Asus RT-86U). It's under Wireless->Professional. I had to switch "Airtime Fairness" to "Disable." Thankfully it just has to be on the 2.4Ghz channel so it shouldn't be a big deal to my network (hopefully).

Now if I could just figure out how to get my Chromebook to work with it without using Google Cloud Print . . .

Tuesday, February 13, 2018

UEFI and Slackware 14.2

I inherited my dad's computer that has Secure Boot/UEFI. Here's what I had to do to get elilo to work:
  1. Create an initrd (I'm using the generic kernel). I used this command in the /boot directory:
    mkinitrd -c -k 4.4.115 -m ext4 -f ext4 -r /dev/sda3
    This assumes that you are using ext4 and that /dev/sda3 is root
  2. Copy initrd.gz, vmlinuz-generic-4.4.115, and vmlinuz-huge to /boot/efi/EFI/Slackware
  3. Edit elilo.conf to reflect the boot parameters you want. Mine looks like this:
    default=generic
    prompt chooser=simple
    delay=100
    timeout=100
    #
    image=vmlinuz-generic-4.4.115
         initrd=initrd.gz
         root=/dev/sda3
         label=generic
         description="Slackware64 14.2"
         read-only

    image=vmlinuz
         root=/dev/sda3
         label=huge description="Slackware64 14.2 Huge"
         read-only
         append="root=/dev/sda3 vga=normal ro"

Wednesday, January 11, 2017

HDMI Sound in Slackware64 14.2

Phew! Gotta blow some dust off the ol' blog! Anyway, I recently installed Slackware64 14.2 and AlienBob's Plasma 5 packages. I was struggling to get HDMI sound to work. After lots of searching, trial, and error, I finally figured it out. I found that I had to go to the Configuration tab in pavucontrol. There were two options for built-in audio. The one profile said "Digital Stereo (HDMI) Output." I left that one alone. The other one said "Analog Stereo Output." I had to change that one to "Off." Then it worked fine.

Monday, December 2, 2013

Get Your Full Calendar History on Your Android Device

For a long time, Google only let you get one month of your Google calendar's history on a new device. More recently, they've upped it to a year. Much better, but not when you have FOUR years worth of history to preserve. I've done this several times, so I know it works. I'm just putting it here so I don't have to do a web search for the answer the next time.
  1.  Go to your calendar on your computer. Click on the down arrow to the right of "My calendars." Select "settings."
  2. Click "Export calendars" and unzip the file that you download.
  3. One of the .ics files that is unzipped (assuming that you have more than one calendar) will have your username as part of the file name.
  4. Click "Import calendar" and choose the .ics file from step #3.
  5. Once it's done uploading, your phone/tablet will sync and you will have your full history!
This will NOT create duplicate entries. Essentially it "touches" (if you are familiar with the Linux command of the same name) all of the entries, so that the device thinks they're new and need to be synced. I got an error saying something about that three of my entries failed to sync, but it worked fine.

Thursday, June 16, 2011

Not Dead Yet

Well, I ended up taking an unexpected two month break from guitar. A bunch of things were going on and I just lost a desire to play. Thus, my "Road to Freaking Awesome" ground to a halt. A little over a week ago, I got the desire back. I've put down sweeping for a moment and have been learning George Lynch's solo on "Breaking the Chains." It's relatively easy for a Lynch solo, but requires lots of precision bending. I'll be getting back to the sweepy goodness soon.

Thursday, April 7, 2011

Fatsort

We just got a sweet new Pioneer deck installed in our car. The problem is that if you have music on a USB stick, it plays them back in the order they were saved to the device. Touching the files won't help. Thankfully, an enterprising soul developed Fatsort that will reorganized the file allocation table on a FAT32 or FAT16 device so that things will play in the proper order aka alphabetically. Very cool and easy to use. I heart the OSS community.

Monday, March 14, 2011

Four String Sweeps

I started working on four string sweeps today. The good news is that I seem to be picking them up more quickly than I anticipated. I suppose now that my fingers are more used to sweeping semi-properly, it's only a matter of adding an extra string. Hopefully this isn't a one-night phenomenon.

Friday, March 11, 2011

Exercise 10 Clip, Take Three

I know I've been working on exercise 10 a long time, but I felt that there was no point in moving on until I could play it in a way that sounds not too terribly unlike sweep picking. So here it is; tell me what you think. Exercise 10, March 11th edition.

By way of comparison (and so you don't have to scroll back through the blog), here's what it sounded like on February 24 and February 21. At the very least I think you can hear a noticeable improvement. I think it's time to move on!

Thursday, February 24, 2011

Exercise 10 Clip, Part Deux

Here's another bash at Sweep Pick Mechanics Exercise 10. It's definitely getting smoother. I wish I could play the whole progression like I played the first sweep. My main issue now is getting my hands in sync for the beginning of the sweep so the notes aren't quite so cut off on some of them. Nevertheless, progress!

Monday, February 21, 2011

Exercise 10 Clip

OK, here's the first semi-decent clip I've been able to get of me playing Sweep Pick Mechanics Exercise 10. Some of the notes don't ring out as clearly as they should and there is a minor mistake at the end. I hate it when I have an otherwise decent take only to screw up at the end.

Sunday, February 6, 2011

Exercise 10

I finally got myself to sit down and take a crack at some new exercises in Sweep Pick Mechanics. I have been practicing exercise 7 all along and have it down pretty smoothly. Today I mapped out exercise 10 and began working on it. I can get all the patterns in the right order at the right fret, but it is by no means smooth. The good news is that it is now all a matter of patient repetition. I hope to post some new clips soon.

Wednesday, January 26, 2011

Android Screenshots in Linux

I've been helping a friend of mine beta test an Android application. A couple of problems I found were easier to show than explain, but Android doesn't have a built-in screenshot capability. I found this page that made things much easier. I already had the Android SDK installed and working. So I just needed to create /etc/udev/rules.d/android.rules with this line in it:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"

Once udev was restarted and I enabled USB Debugging Mode on my phone, I could run the ddms utility with the Android SDK and get all kinds of cool info on my phone, including taking screenshots.

Friday, January 21, 2011

Delay of Game

The holidays took their toll on my practicing regimen. Unfortunately, once I get out of it, I have a hard time getting back into it. I'm still practicing, but not with the consistency that I should be. I hope to rectify that starting, well, immediately. I practiced for a while just now. I forget how much I like my Jet City JCA20H when I haven't played in a while. You *can* practice an electric unplugged, but it does seem to miss the point.

Monday, December 27, 2010

Slackware64 13.1 on an HP Pavilion dv8000

My in-laws got a new laptop, so they wanted to know if we wanted their old one, an HP Pavilion dv8000 (ummmm, yes!). Yesterday I installed Slackware 13.1 on it. I expected to fight with the wireless and the graphics drivers. The drivers that are used automatically (kernel DRM?) work well for 2D stuff. 3D works somewhat. Not sure if that's a driver issue or the fact that the ATI Radeon Xpress 200m is nothing to write home about.

I was able to get the wireless working relatively easily. It uses a Broadcom chipset. I just had to follow these instructions to get the firmware for it installed. After that, it fired up just fine. Very impressive for something that used to be a major PITA.

There are still a few things I want to tweak, but the installation was surprisingly painless.

Exercise 7

OK, here's my attempt at playing Sweep Pick Mechanics Exercise 7. Obviously it lacks a bit in the smoothness department, but I was pretty pleased with how it turned out--on the first take, no less! I also have to roll my finger more consistently on the one barre pattern so that multiple notes don't sound. Progress!

I find it interesting, though, that there's only so many times I can play these exercises in a row before the law of diminishing returns kicks in. It seems that after a point, I actually start playing them worse. So, I just put the ol' guitar down for a bit and come back to it later.