You are not logged in.

#26 2021-01-09 20:54:53

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

seth any ideas?

Offline

#27 2021-01-09 22:21:47

seth
Member
Registered: 2012-09-03
Posts: 18,168

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

cat .git/config
git status

Offline

#28 2021-01-09 22:41:12

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

[root@tomsk-PC linux-stable]# cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[root@tomsk-PC linux-stable]# git status
On branch master
Your branch is up to date with 'origin/master'.

You are currently bisecting, started from branch 'master'.
  (use "git bisect reset" to get back to the original branch)

nothing to commit, working tree clean

I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#29 2021-01-09 23:56:14

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

What ff you perform the following:

git bisect reset #abandon current bisect
git bisect start
git bisect bad 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162 #use commit id directly
git bisect good 7111951b8d4973bda27ff663f2cf18b663d15b48  #use commit id directly

Offline

#30 2021-01-10 00:17:15

seth
Member
Registered: 2012-09-03
Posts: 18,168

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Finally cloned the linux-stable repo (took forever…) and tried and the collision isn't reproducible

$ git bisect start
$ git bisect bad v5.7
$ git bisect good v5.6
binäre Suche: danach noch 7542 Commits zum Testen übrig (ungefähr 13 Schritte)
[50a5de895dbe5df947b3a695777db5b2c313e065] Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

But I don't end up w/ the diverging commit hashes

$ git bisect log
git bisect start
# bad: [3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162] Linux 5.7
git bisect bad 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
# good: [7111951b8d4973bda27ff663f2cf18b663d15b48] Linux 5.6
git bisect good 7111951b8d4973bda27ff663f2cf18b663d15b48

despite

$ git rev-parse v5.7
6499c53216d11948deb2e39ccc9ca9824b8f38ab

Then I did "git bisect start" w/o an explicit reset and repeated the above w/ the same results.

Did you do anything (like pressing ctrl+c or closing the window) that might have compromised the git database update?

Offline

#31 2021-01-10 00:44:33

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

git verify-tag v5.7
git verify-tag v5.6
git fsck

Offline

#32 2021-01-10 11:59:11

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Again...

[root@tomsk-PC linux-stable]# git bisect reset
Already on 'master'
Your branch is up to date with 'origin/master'.
[root@tomsk-PC linux-stable]# git bisect start
[root@tomsk-PC linux-stable]# git bisect bad v5.7
[root@tomsk-PC linux-stable]# git bisect good v5.6
6499c53216d11948deb2e39ccc9ca9824b8f38ab was both good and bad

I tried even:

[root@tomsk-PC linux-stable]# git verify-tag v5.7
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: Signature made Mon 01 Jun 2020 01:49:24 AM CEST
gpg:                using RSA key ABAF11C65A2970B130ABE3C479BE3E4300411886
gpg:                issuer "torvalds@linux-foundation.org"
gpg: Can't check signature: No public key
[root@tomsk-PC linux-stable]# git verify-tag v5.6
gpg: Signature made Mon 30 Mar 2020 12:25:50 AM CEST
gpg:                using RSA key ABAF11C65A2970B130ABE3C479BE3E4300411886
gpg:                issuer "torvalds@linux-foundation.org"
gpg: Can't check signature: No public key
[root@tomsk-PC linux-stable]# git fsck
Checking object directories: 100% (256/256), done.
warning in tag 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 26791a8bcf0e6d33f43aef7682bdb555236d56de: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 9e734775f7c22d2f89943ad6c745571f1930105f: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 0397236d43e48e821cce5bbe6a80a1a56bb7cc3a: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag ebb5573ea8beaf000d4833735f3e53acb9af844c: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 06f6d9e2f140466eeb41e494e14167f90210f89d: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 701d7ecec3e0c6b4ab9bb824fd2b34be4da63b7e: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 733ad933f62e82ebc92fed988c7f0795e64dea62: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag c521cb0f10ef2bf28a18e1cc8adf378ccbbe5a19: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag a339981ec18d304f9efeb9ccf01b1f04302edf32: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 254cc2c3d0745835f73f5c9a76482b691668a738: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag 279c674f31885b18fd312149e7938850f7bd13bb: missingTaggerEntry: invalid format - expected 'tagger' line
warning in tag ea5a02080269424e629de1e7f1f385ba9be337ba: missingTaggerEntry: invalid format - expected 'tagger' line
Checking objects: 100% (9162601/9162601), done.
Checking connectivity: 9162601, done.

I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#33 2021-01-10 12:15:03

seth
Member
Registered: 2012-09-03
Posts: 18,168

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Same missingTaggerEntry warnings, but not the conflict.
Did you try to issue the commits hashes instead of teh tags ("git bisect reset" first) as in post #29?

Offline

#34 2021-01-10 12:36:53

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Oh it looks like it works now:

[root@tomsk-PC linux-stable]# git bisect start
[root@tomsk-PC linux-stable]# git bisect bad 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
[root@tomsk-PC linux-stable]# git bisect good 7111951b8d4973bda27ff663f2cf18b663d15b48
Bisecting: 7542 revisions left to test after this (roughly 13 steps)
[50a5de895dbe5df947b3a695777db5b2c313e065] Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

So what now? smile Please can you send me step by step instructions? Im new with this.


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#35 2021-01-10 13:40:20

seth
Member
Registered: 2012-09-03
Posts: 18,168

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

I know this sucks, but despite the little detour on wft your git repo has conflicting tags, I would actually have suggested to use the linux PKGBUILD archlinux-linux repo because it allows you to build the kernel w/ makepkg and the archlinux kernel config.
The process is laid out in the previously linked https://bbs.archlinux.org/viewtopic.php … 2#p1912642

Basically you build the kernel at the testing commit (a commit that splits the difference between 5.6 and 5.7 in half) and test the behavior w/ the kernel.
Then you return to the git repo and continue the bisect by telling "git bisect good" (if the test-build does not have the issue) or "git bisect bad" (if it does).
This will select a new test commit that you build and test and so on and so on until git tells you which commits breaks it.

Edit: https://wiki.archlinux.org/index.php/Ke … ild_System

Last edited by seth (2021-01-10 13:42:37)

Offline

#36 2021-01-10 14:04:07

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

So I updated PKGBUILD like:

# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>

pkgbase=linux-custom
pkgver=5.10.6.arch1
pkgrel=1
pkgdesc='Linux'
_srctag=v${pkgver%.*}-${pkgver##*.}
url="https://git.archlinux.org/linux.git/log/?h=$_srctag"
arch=(x86_64)
license=(GPL2)
makedepends=(
  bc kmod libelf pahole cpio perl tar xz
  xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick
  git
)
options=('!strip')
_srcname=archlinux-linux
source=(
  "$_srcname::git+https://git.archlinux.org/linux.git?signed#tag=$_srctag"
  config         # the main kernel config file
)
validpgpkeys=(
  'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
  '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
  'A2FF3A36AAA56654109064AB19802F8B0D70FC30'  # Jan Alexander Steffens (heftig)
)
sha256sums=('SKIP'
            'd3e7adf5fcfc632887058ca84ca7b849a824dda5a03de854c8d3480ef0124ad1')

export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"

prepare() {
  cd $_srcname

  echo "Setting version..."
  scripts/setlocalversion --save-scmversion
  echo "-$pkgrel" > localversion.10-pkgrel
  echo "${pkgbase#linux}" > localversion.20-pkgname

  local src
  for src in "${source[@]}"; do
    src="${src%%::*}"
    src="${src##*/}"
    [[ $src = *.patch ]] || continue
    echo "Applying patch $src..."
    patch -Np1 < "../$src"
  done

  echo "Setting config..."
  cp ../config .config
  make olddefconfig

  make -s kernelrelease > version
  echo "Prepared $pkgbase version $(<version)"
}

build() {
  cd $_srcname
  make all
  make htmldocs
}

_package() {
  pkgdesc="The $pkgdesc kernel and modules"
  depends=(coreutils kmod initramfs)
  optdepends=('crda: to set the correct wireless channels of your country'
              'linux-firmware: firmware images needed for some devices')
  provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
  replaces=(virtualbox-guest-modules-arch wireguard-arch)

  cd $_srcname
  local kernver="$(<version)"
  local modulesdir="$pkgdir/usr/lib/modules/$kernver"

  echo "Installing boot image..."
  # systemd expects to find the kernel here to allow hibernation
  # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
  install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz"

  # Used by mkinitcpio to name the kernel
  echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"

  echo "Installing modules..."
  make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install

  # remove build and source links
  rm "$modulesdir"/{source,build}
}

_package-headers() {
  pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"

  cd $_srcname
  local builddir="$pkgdir/usr/lib/modules/$(<version)/build"

  echo "Installing build files..."
  install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
    localversion.* version vmlinux
  install -Dt "$builddir/kernel" -m644 kernel/Makefile
  install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
  cp -t "$builddir" -a scripts

  # add objtool for external module building and enabled VALIDATION_STACK option
  install -Dt "$builddir/tools/objtool" tools/objtool/objtool

  # add xfs and shmem for aufs building
  mkdir -p "$builddir"/{fs/xfs,mm}

  echo "Installing headers..."
  cp -t "$builddir" -a include
  cp -t "$builddir/arch/x86" -a arch/x86/include
  install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s

  install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
  install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h

  # http://bugs.archlinux.org/task/13146
  install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h

  # http://bugs.archlinux.org/task/20402
  install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
  install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
  install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h

  echo "Installing KConfig files..."
  find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;

  echo "Removing unneeded architectures..."
  local arch
  for arch in "$builddir"/arch/*/; do
    [[ $arch = */x86/ ]] && continue
    echo "Removing $(basename "$arch")"
    rm -r "$arch"
  done

  echo "Removing documentation..."
  rm -r "$builddir/Documentation"

  echo "Removing broken symlinks..."
  find -L "$builddir" -type l -printf 'Removing %P\n' -delete

  echo "Removing loose objects..."
  find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete

  echo "Stripping build tools..."
  local file
  while read -rd '' file; do
    case "$(file -bi "$file")" in
      application/x-sharedlib\;*)      # Libraries (.so)
        strip -v $STRIP_SHARED "$file" ;;
      application/x-archive\;*)        # Libraries (.a)
        strip -v $STRIP_STATIC "$file" ;;
      application/x-executable\;*)     # Binaries
        strip -v $STRIP_BINARIES "$file" ;;
      application/x-pie-executable\;*) # Relocatable binaries
        strip -v $STRIP_SHARED "$file" ;;
    esac
  done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)

  echo "Stripping vmlinux..."
  strip -v $STRIP_STATIC "$builddir/vmlinux"

  echo "Adding symlink..."
  mkdir -p "$pkgdir/usr/src"
  ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
}

_package-docs() {
  pkgdesc="Documentation for the $pkgdesc kernel"

  cd $_srcname
  local builddir="$pkgdir/usr/lib/modules/$(<version)/build"

  echo "Installing documentation..."
  local src dst
  while read -rd '' src; do
    dst="${src#Documentation/}"
    dst="$builddir/Documentation/${dst#output/}"
    install -Dm644 "$src" "$dst"
  done < <(find Documentation -name '.*' -prune -o ! -type d -print0)

  echo "Adding symlink..."
  mkdir -p "$pkgdir/usr/share/doc"
  ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase"
}

pkgname=("$pkgbase" "$pkgbase-headers")
for _p in "${pkgname[@]}"; do
  eval "package_$_p() {
    $(declare -f "_package${_p#$pkgbase}")
    _package${_p#$pkgbase}
  }"
done

pkgver() {
  cd $_srcname

  git describe --long | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g;s/\.rc/rc/'
}

# vim:set ts=8 sts=2 sw=2 et:

then I run

makepkg -s

but I get error like:

==> Retrieving sources...
  -> Cloning archlinux-linux git repo...
Cloning into bare repository '/home/tomsk/build/linux/archlinux-linux'...
remote: Enumerating objects: 291580, done.
remote: Counting objects: 100% (291580/291580), done.
remote: Compressing objects: 100% (80771/80771), done.
remote: Total 8013494 (delta 231607), reused 253015 (delta 210142), pack-reused 7721914
Receiving objects: 100% (8013494/8013494), 2.41 GiB | 29.78 MiB/s, done.
Resolving deltas: 100% (6687382/6687382), done.
  -> Found config
==> Validating source files with sha256sums...
    archlinux-linux ... Skipped
    config ... Passed
==> Verifying source file signatures with gpg...
    archlinux-linux git repo ... FAILED (unknown public key 3B94A80E50A477C7)
==> ERROR: One or more PGP signatures could not be verified!

EDIT:
I fixed it using

curl -s https://keybase.io/heftig/pgp_keys.asc/\?fingerprint\=a2ff3a36aaa56654109064ab19802f8b0d70fc30 | gpg --import

Last edited by tomsk (2021-01-10 15:32:46)


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#37 2021-01-10 15:33:15

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

This assumes your locally built 5.6 was good and locally built 5.7 was bad
The tags are signed,  the commits are not.  Please follow the process outlined:
Start bisection

cd src/archlinux-linux
$ git bisect reset
$ git bisect start
$ git bisect good 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
$ git bisect bad 7111951b8d4973bda27ff663f2cf18b663d15b48
$ cd ../..
$ makepkg -ersif

Bisection loop

cd src/archlinux-linux
$ git bisect $result #Substitue good or bad here
$ cd ../..
$ makepkg -ersif #Repeat these four lines and test the generated kernel until git has found the bad commit

Edit:
Why are you making 5.10.6?

Last edited by loqs (2021-01-10 15:35:13)

Offline

#38 2021-01-10 15:47:02

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Im making 5.10.6, because I followed https://wiki.archlinux.org/index.php/Ke … ild_System, and they created project using asp, but asp created only PKGBUILD file without source code and I didn't know how to clone that repo using PKGBUILD, so I run makepkg which cloned source code of kernel, so now I should run:

git checkout v5.7

right? And then your code:

cd src/archlinux-linux
$ git bisect reset
$ git bisect start
$ git bisect good 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
$ git bisect bad 7111951b8d4973bda27ff663f2cf18b663d15b48
$ cd ../..
$ makepkg -ersif

I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#39 2021-01-10 15:58:19

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Depending on which asp command you used the following will checkout the PKGBUILD for 5.7.arch1-1

cd archlinux-linux
git checkout d0b96b4
makepkg -Codd # checkout kernel src
cd src/archlinux-linux
git checkout 7111951b8d4973bda27ff663f2cf18b663d15b48
cd ../..
makepkg -es #make the pkg using the existing source directory which is now pointing to 5.7

Then

cd archlinux-linux/src/archlinux-linux
git checkout 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
cd ../..
makepkg -esif #make 5.6

Then you can redo the setting up the git bisection then perform the bisection loop step.

Last edited by loqs (2021-01-10 16:03:37)

Offline

#40 2021-01-10 15:58:47

seth
Member
Registered: 2012-09-03
Posts: 18,168

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

"makepkg -o" should™ only fetch the sources w/o starting the build.

You don't need to checkout v5.7 first, git bisect will checkout a different commit between 7111951b8d4973bda27ff663f2cf18b663d15b48 and 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162 anyway.

Offline

#41 2021-01-10 18:47:12

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Can you please help me with pkgver error?

[tomsk@tomsk-PC archlinux-linux]$ git bisect reset
Already on 'makepkg'
[tomsk@tomsk-PC archlinux-linux]$ git bisect start
[tomsk@tomsk-PC archlinux-linux]$ git bisect bad 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
[tomsk@tomsk-PC archlinux-linux]$ git bisect good 7111951b8d4973bda27ff663f2cf18b663d15b48
Bisecting: 7542 revisions left to test after this (roughly 13 steps)
[50a5de895dbe5df947b3a695777db5b2c313e065] Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[tomsk@tomsk-PC archlinux-linux]$ cd ../..
[tomsk@tomsk-PC linux]$ makepkg -ersif
==> Making package: linux-custom 5.10.6.arch1.r0.gadb750c1f1f5-1 (Sun 10 Jan 2021 07:44:56 PM CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
fatal: No tags can describe '50a5de895dbe5df947b3a695777db5b2c313e065'.
Try --always, or create some tags.
==> ERROR: pkgver is not allowed to be empty.
==> ERROR: pkgver() generated an invalid version: 
[tomsk@tomsk-PC linux]$ makepkg -ersif
==> Making package: linux-custom 5.10.6.arch1.r0.gadb750c1f1f5-1 (Sun 10 Jan 2021 07:45:55 PM CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
fatal: No tags can describe '50a5de895dbe5df947b3a695777db5b2c313e065'.
Try --always, or create some tags.
==> ERROR: pkgver is not allowed to be empty.
==> ERROR: pkgver() generated an invalid version:

I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#42 2021-01-10 19:37:11

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

cd archlinux-linux/src/archlinux-linux
git remote add stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
git fetch stable
git describe 50a5de895dbe5df947b3a695777db5b2c313e065

If that last command still fails edit .git/config change the fetch entry for stable to

fetch = +refs/tags/*:refs/heads/*:refs/remotes/origin/*

Then redo the git fetch and git describe.

To preserve these changes you must only use makepkg -e from then on.

Last edited by loqs (2021-01-10 19:38:18)

Offline

#43 2021-01-10 20:04:24

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Please what means this:

putime accounting
> 1. Simple tick based cputime accounting (TICK_CPU_ACCOUNTING)
  2. Full dynticks CPU time accounting (VIRT_CPU_ACCOUNTING_GEN)
choice[1-2?]: 1
Fine granularity task level IRQ time accounting (IRQ_TIME_ACCOUNTING) [Y/n/?] y
Enable periodic averaging of thermal pressure (SCHED_THERMAL_PRESSURE) [N/y/?] (NEW) y
BSD Process Accounting (BSD_PROCESS_ACCT) [Y/n/?] y
  BSD Process Accounting version 3 file format (BSD_PROCESS_ACCT_V3) [Y/n/?] y
Export task/process statistics through netlink (TASKSTATS) [Y/?] y
  Enable per-task delay accounting (TASK_DELAY_ACCT) [Y/?] y
  Enable extended accounting over taskstats (TASK_XACCT) [Y/n/?] y
    Enable per-task storage I/O accounting (TASK_IO_ACCOUNTING) [Y/n/?] y
Pressure stall information tracking (PSI) [Y/n/?] y
  Require boot parameter to enable pressure stall information tracking (PSI_DEFAULT_DISABLED) [N/y/?] n
*
* Control Group support
*
Control Group support (CGROUPS) [Y/?] y
  Memory controller (MEMCG) [Y/n/?] y
    Swap controller (MEMCG_SWAP) [Y/n/?] y
      Swap controller enabled by default (MEMCG_SWAP_ENABLED) [Y/n/?] (NEW) y
  IO controller (BLK_CGROUP) [Y/n/?] y
  PIDs controller (CGROUP_PIDS) [Y/n/?] y
  RDMA controller (CGROUP_RDMA) [Y/n/?] y
  Freezer controller (CGROUP_FREEZER) [Y/n/?] y
  HugeTLB controller (CGROUP_HUGETLB) [Y/n/?] y
  Cpuset controller (CPUSETS) [Y/n/?] y
    Include legacy /proc/<pid>/cpuset file (PROC_PID_CPUSET) [Y/n/?] y
  Device controller (CGROUP_DEVICE) [Y/n/?] y
  Simple CPU accounting controller (CGROUP_CPUACCT) [Y/n/?] y
  Perf controller (CGROUP_PERF) [Y/n/?] y
  Support for eBPF programs attached to cgroups (CGROUP_BPF) [Y/n/?] y
  Debug controller (CGROUP_DEBUG) [N/y/?] n

It is asking me tons of questions, I just run makepkg -e as you said on that new remote origin.

My git status looks like:

[tomsk@tomsk-PC archlinux-linux]$ git status
HEAD detached at 50a5de895dbe
You are currently bisecting, started from branch 'makepkg'.
  (use "git bisect reset" to get back to the original branch)

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        arch/x86/boot/compressed/vmlinux.bin.zst
        arch/x86/purgatory/purgatory.chk
        kernel/bpf/preload/
        localversion.10-pkgrel
        localversion.20-pkgname
        scripts/module.lds
        tools/bpf/resolve_btfids/
        version
        vmlinux.symvers

nothing added to commit but untracked files present (use "git add" to track)

I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#44 2021-01-10 20:19:09

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

You checked out the PKGBUILD for 5.10.6 and its config which will have lots of different option names to 5.6.
I take it you skipped building 5.7 and 5.6 first locally before starting the bisect?  Otherwise I would have expected you to encounter this when building both those kernels.

Offline

#45 2021-01-10 20:34:50

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

I built kernel 5.10.6, but I deleted compiled binary for it. Now I am in commit 50a5de895dbe. So how can I skip these questions? hmm

Last edited by tomsk (2021-01-10 20:35:53)


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#46 2021-01-10 20:41:30

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

git describe 50a5de895dbe5df947b3a695777db5b2c313e065
v5.6-7482-g50a5de895dbe

As you have not built 5.6 with the 5.10.6 config you are using on your machine and then  tested it,  how do you know it works?  Likewise for 5.7 how do you know it fails?
So how do you know after 13 bisection steps the result is correct?

seth perhaps you can explain it better.

Last edited by loqs (2021-01-10 20:42:18)

Offline

#47 2021-01-10 20:46:12

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

So how can I fix that issue? I have in PKGBUILD file already pkgver=5.6.r7482.g50a5de895dbe which is correct.


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#48 2021-01-10 21:01:19

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Given that 5.6 should fail to build with gcc 10 (at least with the 5.6 config) I disagree that you should be at 5.6.r7482.g50a5de895dbe.

Offline

#49 2021-01-10 21:04:52

tomsk
Member
Registered: 2016-12-17
Posts: 92

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

So do I have to downgrade gcc?


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#50 2021-01-10 21:07:59

loqs
Member
Registered: 2014-03-06
Posts: 12,569

Re: [SOLVED] Unreal Engine 4 stopped working under newer Linux kernels

Follow below step by step,  I checked this through to generating 5.6 correctly.
For the 5.6 step if checksums do not match or you are prompted for a config choice something has gone wrong.
The issue with building 5.6 with gcc 10 is dealt with in the PKGBUILD by disabling CONFIG_KVM_WERROR which treated warnings as errors in that module.

The following assumes the base-devel group and git are installed and I recomend enabling Makepkg#Parallel_compilation to reduce build times

$ git clone git://git.archlinux.org/svntogit/packages.git --single-branch --branch "packages/linux"
$ cd packages/trunk
$ git checkout c21c1bb8eb5f4e72387f437d8cb6186dfd71cc9f #5.6.15.arch1-1 
$ cd ../..
$ cp -r packages/trunk linux-git
$ rm -rf packages
$ cd linux-git
# Edit replace the PKGBUILD with the one below
$ makepkg -rsi #This is to confirm 5.6 as built on your system does not have the issue.
You should not be prompted for any config changes.

This build may take a very long time.
Update bootloader for new kernel if needed

$ cd linux-git/src/linux
$ git checkout v5.7
$ cd ../..
$ makepkg -ersi #This is to confirm 5.7 as built on your system does have the issue,  select the default option for all prompted options

Start bisection

$ cd linux-git/src/linux/
$ git bisect start
$ git bisect good v5.6
$ git bisect bad v5.7
$ cd ../..
$ makepkg -ersif

Bisection loop

$ cd linux-git/src/linux/
$ git bisect $result #Substitue good or bad here
$ cd ../..
$ makepkg -ersif #Repeat these four lines and test the generated kernel until git has found the bad commit

PKGBUILD

# Maintainer: Boohbah <boohbah at gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Contributor: Jonathan Chan <jyc@fastmail.fm>
# Contributor: misc <tastky@gmail.com>
# Contributor: NextHendrix <cjones12 at sheffield.ac.uk>

pkgbase=linux-git
_srcname=linux
pkgver=5.6.r0.g7111951b8d49
pkgrel=1
arch=('x86_64')
url="https://www.kernel.org/"
license=('GPL2')
makedepends=('kmod' 'bc' 'libelf' 'git')
options=('!strip')
source=('git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git#tag=v5.6'
        #'git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#tag=vX.X.Y'
        'config'   # the main kernel config file
)

sha256sums=('SKIP'
            '2a157fdbf3a6396e985db9ae5d11870a786717dca31de78cad09c06eb28761ff')

_kernelname=${pkgbase#linux}

pkgver() {
  cd $_srcname

  git describe --long | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g;s/\.rc/rc/'
}

prepare() {
  cd ${_srcname}

  cp ../config .config

  echo "Setting version..."
  sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
  sed -i "s|^.*CONFIG_LOCALVERSION_AUTO.*|CONFIG_LOCALVERSION_AUTO=y|" ./.config

  # prepare for build
  make prepare

  # load configuration
  # Configure the kernel. Replace the line below with one of your choice.
  #make menuconfig # CLI menu for configuration
  #make nconfig # new CLI menu for configuration
  #make xconfig # X-based configuration
  #make oldconfig # using old config from previous kernel version
  #make olddefconfig # old config from previous kernel, defaults for new options
  # ... or manually edit .config
  scripts/config --disable CONFIG_KVM_WERROR
}

build() {
  cd $_srcname

  make LOCALVERSION= bzImage modules
}

_package() {
  pkgdesc="The Linux kernel and modules (git version)"
  depends=('coreutils' 'kmod' 'initramfs')
  optdepends=('crda: to set the correct wireless channels of your country'
              'linux-firmware: firmware images needed for some devices')

  cd $_srcname

  # get kernel version
  _kernver="$(make LOCALVERSION= kernelrelease)"
  _basekernel=${_kernver%%-*}
  _basekernel=${_basekernel%.*}
  local _modulesdir="$pkgdir/usr/lib/modules/$_kernver"

  echo "Installing boot image..."
  # systemd expects to find the kernel here to allow hibernation
  # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
  install -Dm644 "$(make -s image_name)" "$_modulesdir/vmlinuz"

  # Used by mkinitcpio to name the kernel
  echo "$pkgbase" | install -Dm644 /dev/stdin "$_modulesdir/pkgbase"

  echo "Installing modules..."
  make LOCALVERSION= INSTALL_MOD_PATH="$pkgdir/usr" modules_install

  # remove build and source links
  rm "$_modulesdir"/{source,build}

  echo "Fixing permissions..."
  chmod -Rc u=rwX,go=rX "$pkgdir"
}

_package-headers() {
  pkgdesc="Header files and scripts for building modules for Linux kernel (git version)"

  cd $_srcname
  local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"

  echo "Installing build files..."
  install -Dt "$_builddir" -m644 .config Makefile Module.symvers System.map vmlinux
  install -Dt "$_builddir/kernel" -m644 kernel/Makefile
  install -Dt "$_builddir/arch/x86" -m644 arch/x86/Makefile
  cp -t "$_builddir" -a scripts

  # add objtool for external module building and enabled VALIDATION_STACK option
  install -Dt "$_builddir/tools/objtool" tools/objtool/objtool

  # add xfs and shmem for aufs building
  mkdir -p "$_builddir"/{fs/xfs,mm}

  echo "Installing headers..."
  cp -t "$_builddir" -a include
  cp -t "$_builddir/arch/x86" -a arch/x86/include
  install -Dt "$_builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s

  install -Dt "$_builddir/drivers/md" -m644 drivers/md/*.h
  install -Dt "$_builddir/net/mac80211" -m644 net/mac80211/*.h

  # http://bugs.archlinux.org/task/13146
  install -Dt "$_builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h

  # http://bugs.archlinux.org/task/20402
  install -Dt "$_builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
  install -Dt "$_builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
  install -Dt "$_builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h

  echo "Installing KConfig files..."
  find . -name 'Kconfig*' -exec install -Dm644 {} "$_builddir/{}" \;

  echo "Removing unneeded architectures..."
  local _arch
  for _arch in "$_builddir"/arch/*/; do
    [[ ${_arch} == */x86/ ]] && continue
    echo "Removing $(basename "$_arch")"
    rm -r "$_arch"
  done

  echo "Removing documentation..."
  rm -r "$_builddir/Documentation"

  echo "Removing broken symlinks..."
  find -L "$_builddir" -type l -printf 'Removing %P\n' -delete

  echo "Removing loose objects..."
  find "$_builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete

  echo "Stripping build tools..."
  local file
  while read -rd '' file; do
    case "$(file -bi "$file")" in
      application/x-sharedlib\;*)      # Libraries (.so)
        strip -v $STRIP_SHARED "$file" ;;
      application/x-archive\;*)        # Libraries (.a)
        strip -v $STRIP_STATIC "$file" ;;
      application/x-executable\;*)     # Binaries
        strip -v $STRIP_BINARIES "$file" ;;
      application/x-pie-executable\;*) # Relocatable binaries
        strip -v $STRIP_SHARED "$file" ;;
    esac
  done < <(find "$_builddir" -type f -perm -u+x ! -name vmlinux -print0)

  echo "Adding symlink..."
  mkdir -p "$pkgdir/usr/src"
  ln -sr "_$builddir" "$pkgdir/usr/src/$pkgbase"

  echo "Fixing permissions..."
  chmod -Rc u=rwX,go=rX "$pkgdir"
}

pkgname=("$pkgbase" "$pkgbase-headers")
for _p in ${pkgname[@]}; do
  eval "package_$_p() {
    $(declare -f "_package${_p#$pkgbase}")
    _package${_p#$pkgbase}
  }"
done

# vim:set ts=8 sts=2 sw=2 et:

Last edited by loqs (2021-01-10 21:12:18)

Offline

Board footer

Powered by FluxBB