cprima / tckc

Time-constrained kernel configuration

Home Page:http://tckc.prdv.de

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Configuring the Linux kernel beyond university years

It was a huge revelation to me reading https://github.com/gg7/gentoo-kernel-guide which describes kernel configuration not via make menuconfig but the included ./scripts/config helper.

In my household is a variety of rather ageing PC hardware from two or three vendors, a network printer, several modems and switches as well as a whole bunch of single-board computers. The notebooks were migrated over the years from Gentoo to Ubuntu because time is much more limited, usually two PCs with Windows are also around as well as one or two Apple things.

When I resurfaced an HP ProLiant Microserver (a small NAS-type of formfactor) the quest to use this energy-efficient device for as much as possible soon led me down the rabbit hole of custom kernel compilation. Armed with years of Gentoo-experience the task did not scare me, but when this took almost two weeks of hand-wrought spare time in late evenings I started to look for a better approach than following Gentoo or ArchLinux documentation.

All my Linux installations have a pretty standardized set of features, typically ext4 on LVM, get connected to the same peripherals and even on Gentoo I prefer systemd.

Typically after a few years when upgrading/replacing harddrives I tend to install the OS from scratch, on otherwise identical hardware.

It certainly itched me that the kernel configuration did not align with current devops- and infrastructure-as-code-paradigms.

With this background a few requirements manifested a hopefully decade-long approach for my future needs:

Requirements for the time-constrained kernel builder

Must-have:

  • no GUI usage to edit .config
  • standard set of features to enable/disable
  • per-model set of features on top
  • solid upgrade path

Nice to have:

  • snappy boot times

As the time-contrained Linux admin-at-home I want scripts to configure my kernel during an upgrade producing stable and snappy user experiences.

How to update (WIP)

cd /usr/src/ && git -C linux-stable-git-bare fetch --all --tags git -C linux-stable-git-bare tag --sort=-creatordate v=5.4.35 && sudo mkdir "linux-stable-git-$v" && sudo chown "$(id -un):$(id -gn)" "linux-stable-git-$v" && git clone --single-branch --branch "v$v" linux-stable-git-bare/ "linux-stable-git-$v" cd /usr/src/linux-stable-git-${v} && ~/Code/github.com/cprior/tckc/app/phy/tckc/tckc.sh -l "CPM" -i

Organization of this repository

This repository contains the full project and is therefore in an usual structure. When combining IT and business aspects (and a website is marketing is business) there exists a vey helpful method with TOGAF.

biz applications deployed

These applications are deployed within the solution, are specificially written for it and far from off-the-shelf.

biz tckc

./app/phy/tckc

biz business

I am a business administration guy by trade and can't help but spot "biz" where I see it. The latest when hardware comes into play there is purchasing, maybe even a boll of materials 'BOM' and it doesn't help to put the customer user is in focus the terminology just fits.

biz data

This folder is typically used by scripts in ./application/physical to hold data in a predictable place. I tend to do a lot of curl'ing with checks for If-Modified-Since to be nice to the (mirror) servers.

biz technology

About off-the-shelf technology used by the project.

About

Time-constrained kernel configuration

http://tckc.prdv.de


Languages

Language:JavaScript 53.4%Language:CSS 19.1%Language:HTML 14.9%Language:SCSS 9.7%Language:Shell 2.8%Language:Ruby 0.0%