Skip to content

4.19.152 and 5.4.72

Latest
Compare
Choose a tag to compare
@kitakar5525 kitakar5525 released this 18 Oct 15:16
· 2 commits to master since this release

4.19.152 and 5.4.72

Note

I may test only v5.4-general-surface build on Surface 3. If something is not working on your Surface devices, feel free to open issues.
I stopped releasing -minimal-surface kernel from this release.

  • general-surface: using config-general-surface. Use this one If you want a more general kernel (closer to normal Linux distros, with support of Surface devices). Probably work also on non-surface devices.
  • minimal-surface: using config-minimal-surface. Use this one if you want a minimal kernel (closer to chromiumos' original kernels, with support of Surface devices). Chances are low to work on non-surface devices.
  • k5: abbreviation of kitakar5525. Means additional patches are applied.

Difference between v4.19 and v5.4

  • All the features that work/not-work with linux+linux-surface kernel should work/not-work also with this release.
  • It's reported that v4.19 kernels don't boot on SP7/SL3. Use v5.4 kernels.

IPTS Touchscreen on v5.4

Info: chromeos-v4.19.151-10433-g001cdf76f178+surface+k5

major issues

Currently, no major issues.

Info: chromeos-v5.4.71-9749-g1031530d5b19+surface+k5-3

major issues

  • chromeos-5.4: tpm_tis causes kernel oops #20: I recommend adding module_blacklist=tpm_tis to bootloader.
  • wifi/bt unstable when using with iwl7000 #17: For now, using CONFIG_IWLWIFI instead of chromiumos' default CONFIG_IWL7000.
  • iptsd is not fully working (not responding to touches on browser, but seems to be fully working on ARC).

build command used

# git clone https://github.com/kitakar5525/linux-surface-kernel kitakar5525_linux-surface-kernel # for the first time
cd kitakar5525_linux-surface-kernel

# git clone https://github.com/kitakar5525/chromeos-kernel-linux-surface kitakar5525_chromeos-kernel-linux-surface # for the first time
cd kitakar5525_chromeos-kernel-linux-surface
git pull
cd ..

git pull --tags

########## v4.19 ##########
TAG_KERNEL="chromeos-v4.19.151-10433-g001cdf76f178+surface+k5"
git checkout $TAG_KERNEL

# mkdir ../$TAG_KERNEL-config-minimal-log # logs will be placed into this dir
# # minimal-surface
# bash kitakar5525_chromeos-kernel-linux-surface/scripts/0001-generate-kernel-config/generate-config-minimal-surface-v419.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0001-merge_config-log.txt
# bash kitakar5525_chromeos-kernel-linux-surface/scripts/0002-build-kernel-using-make.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0002-build-log.txt
# fakeroot -- bash kitakar5525_chromeos-kernel-linux-surface/scripts/0003-package-kernel.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0003-packaging-log.txt

mkdir ../$TAG_KERNEL-config-general-log # logs will be placed into this dir
# general-surface
bash kitakar5525_chromeos-kernel-linux-surface/scripts/0001-generate-kernel-config/generate-config-general-surface-v419.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0001-config-general-merge_config-log.txt
bash kitakar5525_chromeos-kernel-linux-surface/scripts/0002-build-kernel-using-make.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0002-config-general-build-log.txt
fakeroot -- bash kitakar5525_chromeos-kernel-linux-surface/scripts/0003-package-kernel.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0003-config-general-packaging-log.txt

########## v5.4 ##########
TAG_KERNEL="chromeos-v5.4.71-9749-g1031530d5b19+surface+k5-3"
git checkout $TAG_KERNEL

# mkdir ../$TAG_KERNEL-config-minimal-log # logs will be placed into this dir
# # minimal-surface
# bash kitakar5525_chromeos-kernel-linux-surface/scripts/0001-generate-kernel-config/generate-config-minimal-surface-v54.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0001-merge_config-log.txt
# bash kitakar5525_chromeos-kernel-linux-surface/scripts/0002-build-kernel-using-make.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0002-build-log.txt
# fakeroot -- bash kitakar5525_chromeos-kernel-linux-surface/scripts/0003-package-kernel.sh \
#     2>&1 | tee ../$TAG_KERNEL-config-minimal-log/0003-packaging-log.txt

mkdir ../$TAG_KERNEL-config-general-log # logs will be placed into this dir
# general-surface
bash kitakar5525_chromeos-kernel-linux-surface/scripts/0001-generate-kernel-config/generate-config-general-surface-v54.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0001-merge_config-log.txt
bash kitakar5525_chromeos-kernel-linux-surface/scripts/0002-build-kernel-using-make.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0002-build-log.txt
fakeroot -- bash kitakar5525_chromeos-kernel-linux-surface/scripts/0003-package-kernel.sh \
    2>&1 | tee ../$TAG_KERNEL-config-general-log/0003-packaging-log.txt

Installation

Please read the whole instructions before you try to install until you
understand what the following commands do. I won't provide install scripts
(i.e. I won't provide a way to automate installation) because it's good
that everyone understands how things are done. If something is unclear
in the instructions, feel free to ask me(@kitakar5525) via opening a issue.

for brunch

Run the following commands under brunch chromeos.
(Can be run under dual-booted linux but then, make sure that there is
only one partition labeled ROOT-C (lsblk).)

Extract ROOT-C archive onto ROOT-C:

ROOT_C_MOUNT_DIR="/tmp/mnt/ROOT-C"

# 1. mount ROOT-C
sudo mkdir $ROOT_C_MOUNT_DIR
sudo mount /dev/disk/by-label/ROOT-C $ROOT_C_MOUNT_DIR

# 2. remove existing kitakar5525 kernel first
rm -rf $ROOT_C_MOUNT_DIR/packages/kitakar5525-kernel/*

# 3. (extra step)
# Requires ROOT-C free space about 100MB. Current brunch release has
# that extra space but in future releases, you might need to create
# free space by removing existing brunch kernel files...
# rm -rf $ROOT_C_MOUNT_DIR/lib/kernel-devel
# rm -rf $ROOT_C_MOUNT_DIR/lib/iwlwifi_backport
# rm -rf $ROOT_C_MOUNT_DIR/lib/modules

# 4. extract archive onto ROOT-C
sudo tar -xf "${_archive_name_you_want_to_use_}-ROOT-C.tar.gz" -C $ROOT_C_MOUNT_DIR

# 5. cleanup
## unmount ROOT-C
sudo umount $ROOT_C_MOUNT_DIR

for chromiumos

Extract archive into somewhere. In that archive, there is an archive
for ROOT-A (packages/kitakar5525-kernel/${_archive_name_you_want_to_use_}.tar.gz).

Usually, you can't mount ROOT-A manually. So, do the following under
chromiumos (not from dual-booted linux).
Be careful that running the following commands outside of chromiumos
breaks the system.

Extract the ROOT-A archive onto ROOT-A and copy vmlinuz into
EFI-SYSTEM/syslinux/vmlinuz.A:

ROOT_C_ARCHIVE_EXTRACT_DIR="/tmp/ROOT-C_archive"
EFI_SYSTEM_MOUNT_DIR="/tmp/mnt/EFI-SYSTEM"

# 1. extract ROOT-C archive into somewhere
mkdir $ROOT_C_ARCHIVE_EXTRACT_DIR
sudo tar -xf "${_archive_name_you_want_to_use_}.tar.gz" -C $ROOT_C_ARCHIVE_EXTRACT_DIR

# 2. mount EFI-SYSTEM
mkdir $EFI_SYSTEM_MOUNT_DIR
sudo mount /dev/disk/by-label/EFI-SYSTEM $EFI_SYSTEM_MOUNT_DIR
# 3. remount root directory as rw
sudo mount / -o rw,remount

# 4. remove existing kernel files
sudo rm -rf /boot/*
sudo rm -rf /lib/modules/*

# 5. extract ROOT-A archive onto ROOT-A
sudo tar -xf "$ROOT_C_ARCHIVE_EXTRACT_DIR/packages/kitakar5525-kernel/${_archive_name_you_want_to_use_}-ROOT-A.tar.gz" -C /
# 6. copy vmlinuz into EFI-SYSTEM
cp $ROOT_C_ARCHIVE_EXTRACT_DIR/kernel $EFI_SYSTEM_MOUNT_DIR/syslinux/vmlinuz.A

# 7. cleanup
## remount root directory as ro
sudo mount / -o ro,remount
## unmount EFI-SYSTEM
sudo umount $EFI_SYSTEM_MOUNT_DIR

enrolling secureboot public key (for the first time)

You need to enroll my secureboot public key for the first time you use
this kernel.
Take a look here:

iptsd for v5.4

If your device uses IPTS, don't forget to install iptsd. (see https://github.com/kitakar5525/chromeos-kernel-linux-surface/tree/master/patch-to-os-image).