Update the linux kernel for sysb/c to 4.9.10.

- We do not use latest 4.9.x because it relies on a new version of
  binutils, while older versions do not. (Note: we should be able to go
  a bit newer but I didn't bother testing >50 versions to figure this
  out).
- We do not use newer kernel versions because they require one or more
  of (new perl, new binutils, new make, new gcc, new bison, new tar).
- sysb and sysc are updated to use the SATA (libata) subsystem (aka sda)
  instead of IDE-emulating SATA subsystem (aka hda) which is now
  available to us.
- While theoretically according to docs 4.9 should work OOTB with our
  version of binutils this is not the case, so we have to do a bit of
  (interesting) patching. But this does not break anything.
- Thankfully serial support in 4.9 is not screwed over like it is in 2.6
  so we can revert to that.
- 4.9 has the linux-libre project at our disposal, instead of gNewSense.
  So we use this. Unfortunatley that takes forever because we have to
  use sed because our version of gawk is too old/buggy. :( I plan to
  introduce very shortly 1. parallelism 2. 'sysc snapshot' which will
  start from sysc to avoid this. I do not want to use linux-libre
  tarballs because they make modificiations directly from this script
  (aka not easily verifiable, use the source!) and this script allows
  for much greater flexibility.
- We compile the initramfs ahead-of-build using the in-tree cpio
  generator instead of also building cpio to use less packages. We do
  NOT build the initramfs into the kernel like 2.6 (unsupported).
- Oh and fix a kexec-tools checksum.
This commit is contained in:
fosslinux 2021-08-04 12:56:07 +10:00
parent e225435983
commit d429c48d76
23 changed files with 4166 additions and 2014 deletions

View file

@ -24,15 +24,15 @@ populate_device_nodes() {
}
create_hdx() {
# Create all of the hd{a,b,c..}
# Create all of the sd{a,b,c..}
minor=0
alpha="a b c d e f g h i j k l m n o p" # 16 disks -- more than enough
# For each disk...
for a in ${alpha}; do
mknod -m 600 "/dev/hd${a}" b 3 "$((minor++))"
mknod -m 600 "/dev/sd${a}" b 8 "$((minor++))"
# For each partition...
for p in $(seq 15); do
mknod -m 600 "/dev/hd${a}${p}" b 3 "$((minor++))"
mknod -m 600 "/dev/sd${a}${p}" b 8 "$((minor++))"
done
done
}
@ -50,7 +50,7 @@ mkdir /sysc
mkdir -p /etc /dev
populate_device_nodes
create_hdx
mount -t ext2 "/dev/${DISK}" /sysc
mount -t ext4 "/dev/${DISK}" /sysc
# Copy over appropriate data
echo "Copying data into sysc"