Package Base Details: linux-clear

Git Clone URL: https://aur.archlinux.org/linux-clear.git (read-only, click to copy)
Keywords: clear clearlinux intel kernel
Submitter: metak
Maintainer: metak
Last Packager: metak
Votes: 70
Popularity: 0.48
First Submitted: 2018-01-18 21:47 (UTC)
Last Updated: 2024-05-17 16:36 (UTC)

Pinned Comments

metak commented on 2022-03-27 13:44 (UTC) (edited on 2022-04-02 13:20 (UTC) by metak)

The PKGBUILD file supports a few different configurable build-time options:
  • _makenconfig Tweak kernel options prior to a build via nconfig. Pseudo-graphical menu based on ncurses. 1 2
  • _localmodcfg Only compile active modules to VASTLY reduce the number of modules built and the build time.
  • Please read arch wiki page for detailed explanation on how to use it.
  • _subarch Enable additional optimization/tuning for kernel builds by adding more micro-architectures options. Default is Generic-x86-64 number 36 if nothing else is selected.
  • PKGBUILD file with the list of architectures
  • graysky kernel_compiler_patch
  • _use_current Use the current kernel's .config file. Enabling this option will use the .config of the RUNNING kernel rather than the ARCH defaults. Useful when the package gets updated and you already went through the trouble of customizing your config options. NOT recommended when a new kernel is released, but again, convenient for package bumps.
  • _use_llvm_lto Compile the kernel with LLVM/Clang.
  • _debug Enable y some additional debug features present in arch kernel, but not in Clear upstream. n to force disable or leave empty to ignore.
Lastly, build the kernel by setting your environment variable env _subarch=40 _localmodcfg=y.

metak commented on 2018-01-22 01:49 (UTC) (edited on 2021-12-01 12:47 (UTC) by metak)

1. Binaries available in my repo: http://download.opensuse.org/repositories/home:/metakcahura:/kernel/Arch_Extra_standard/x86_64/
[home_metakcahura_kernel_Arch_Extra_standard]
SigLevel = Never
Server = http://download.opensuse.org/repositories/home:/metakcahura:/kernel/Arch_Extra_standard/$arch
THIS IS OPTIONAL:
2. After install adjust your boot cmd line. ClearLinux uses clr-boot-manager which takes care of that. This is upstream default:
quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw 

Latest Comments

« First ‹ Previous 1 .. 39 40 41 42 43 44 45 46 47 Next › Last »

metak commented on 2018-05-01 07:26 (UTC)

@enihcam I'll take a look and maybe I'll add it in as an option if it's not a problem.

enihcam commented on 2018-04-27 23:56 (UTC) (edited on 2018-04-28 00:05 (UTC) by enihcam)

This is a great kernel.

Suggestions: 1. Users should have a change to nconfig the kernel before build. 2. To allow -mnative build, please apply the patch enable_additional_cpu_optimizations_for_gcc.tar.gz

Please refer to https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=linux-ck

metak commented on 2018-04-24 16:17 (UTC)

@stephencox Sorry, somehow I missed the part where you said you can't boot with clear kernel. (facepalm)

@Osleg I've enabled CONFIG_ACPI_REV_OVERRIDE_POSSIBLE by default if it'll make life a bit easier?

Osleg commented on 2018-04-24 10:36 (UTC)

@stephencox I'm not sure that this is indeed the case but could you try to add nvidia to modprobe.blacklist and see if you can boot your microserver?

Osleg commented on 2018-04-22 21:42 (UTC)

I found what was causing problem in my setup. My laptop have nvidia discreet card and I'm using bbswitch to turn it off. For bbswitch to work I have to set acpi_rev_override=1 to kernel parameters but linux-clear compiled without CONFIG_ACPI_REV_OVERRIDE_POSSIBLE. I have updated PKGBUILD to have the key to optionally enable it

# Maintainer: Josip Ponjavic <josipponjavic at gmail dot com>
# Contributor:

pkgbase=linux-clear
__basekernel=4.16
_minor=3
pkgver=${__basekernel}.${_minor}
_clearver=${__basekernel}.2-552
pkgrel=2
arch=('x86_64')
url="https://github.com/clearlinux-pkgs/linux"
license=('GPL2')
makedepends=('bc' 'git' 'inetutils' 'kmod' 'libelf' 'linux-firmware' 'xmlto')
options=('!strip')

# If you have laptop with optimus and it hangs on boot one solution might be 
# to set acpi_rev_override. Yet for this to happen kernel should be compiled
# with `CONFIG_ACPI_REV_OVERRIDE_POSSIBLE`. Set next variable to `y` to enable.
_rev_override="y"

source=(
  "https://www.kernel.org/pub/linux/kernel/v4.x/linux-${__basekernel}.tar.xz"
  "https://www.kernel.org/pub/linux/kernel/v4.x/linux-${__basekernel}.tar.sign"
  "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
  "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
  "clearlinux::git+https://github.com/clearlinux-pkgs/linux.git#tag=${_clearver}"
  'https://downloadmirror.intel.com/27591/eng/microcode-20180312.tgz'
  '60-linux.hook'  # pacman hook for depmod
  '90-linux.hook'  # pacman hook for initramfs regeneration
  '99-linux.hook'  # pacman hook for remove initramfs
  'linux.preset'   # standard config files for mkinitcpio ramdisk
)
validpgpkeys=(
  'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
  '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
)
sha256sums=('63f6dc8e3c9f3a0273d5d6f4dca38a2413ca3a5f689329d05b750e4c87bb21b9'
            'SKIP'
            '336252cb15f2f2574461c1d3daabf5dc207842526085802270e1e5223f645db3'
            'SKIP'
            'SKIP'
            '0b381face2df1b0a829dc4fa8fa93f47f39e11b1c9c22ebd44f8614657c1e779'
            'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
            '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
            '5f6ba52aaa528c4fa4b1dc097e8930fad0470d7ac489afcb13313f289ca32184'
            'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65')

_kernelname=${pkgbase#linux}

prepare() {
  cd linux-${__basekernel}

  # add upstream patch
  patch -p1 -i ../patch-${pkgver}

  cp -Tf $srcdir/clearlinux/config .config
  cp -a /usr/lib/firmware/i915 firmware/
  cp -a ${srcdir}/intel-ucode firmware/
  rm -f firmware/intel-ucode/0f*

  # Apply clearlinux patches
  for i in $(grep '^Patch' ${srcdir}/clearlinux/linux.spec | grep -Ev '^Patch0115|^Patch0410|^Patch0500|^Patch200' | sed -n 's/.*: //p'); do
    msg "Applying ${i}"
    patch -p1 -i "$srcdir/clearlinux/${i}"
  done

  if [ "${_kernelname}" != "" ]; then
    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
    sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
  fi

  # set extraversion to pkgrel and empty localversion
  sed -e "/^EXTRAVERSION =/s/=.*/= -${pkgrel}/" \
      -e "/^EXTRAVERSION =/aLOCALVERSION =" \
      -i Makefile

  # set ACPI_REV_OVERRIDE_POSSIBLE to prevent optimus lockup
  if [ "${_rev_override}" = "y" ]; then
    sed -i "s|# CONFIG_ACPI_REV_OVERRIDE_POSSIBLE is not set|CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y|g" ./.config
  fi
  # don't run depmod on 'make install'. We'll do this ourselves in packaging
  sed -i '2iexit 0' scripts/depmod.sh

  make olddefconfig
}

build() {
  cd linux-${__basekernel}

  make bzImage modules
}

_package() {
  pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
  depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
  optdepends=('crda: to set the correct wireless channels of your country')
  backup=("etc/mkinitcpio.d/${pkgbase}.preset")
  install=linux.install

  cd linux-${__basekernel}

  # get kernel version
  _kernver="$(make kernelrelease)"
  _basekernel=${_kernver%%-*}
  _basekernel=${_basekernel%.*}

  mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
  make INSTALL_MOD_PATH="${pkgdir}/usr" modules_install
  cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"

  # make room for external modules
  local _extramodules="extramodules-${_basekernel}${_kernelname:--ARCH}"
  ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"

  # add real version for building modules and running depmod from hook
  echo "${_kernver}" |
    install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"

  # remove build and source links
  rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}

  # now we call depmod...
  depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"

  # add vmlinux
  install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux

  # sed expression for following substitutions
  local _subst="
    s|%PKGBASE%|${pkgbase}|g
    s|%KERNVER%|${_kernver}|g
    s|%EXTRAMODULES%|${_extramodules}|g
  "

  # hack to allow specifying an initially nonexisting install file
  sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
  true && install=${install}.pkg

  # install mkinitcpio preset file
  sed "${_subst}" ../linux.preset |
    install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"

  # install pacman hooks
  sed "${_subst}" ../60-linux.hook |
    install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
  sed "${_subst}" ../90-linux.hook |
    install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
  sed "${_subst}" ../99-linux.hook |
    install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
}

_package-headers() {
  pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"

  cd linux-${__basekernel}
  local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"

  install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
  install -Dt "${_builddir}/kernel" -m644 kernel/Makefile

  mkdir "${_builddir}/.tmp_versions"

  cp -t "${_builddir}" -a include scripts

  install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
  install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s

  cp -t "${_builddir}/arch/x86" -a arch/x86/include

  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

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

  # copy in Kconfig files
  find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;

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

  # remove unneeded architectures
  local _arch
  for _arch in "${_builddir}"/arch/*/; do
    [[ ${_arch} == */x86/ ]] && continue
    rm -r "${_arch}"
  done

  # remove files already in linux-docs package
  rm -r "${_builddir}/Documentation"

  # remove now broken symlinks
  find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete

  # Fix permissions
  chmod -R u=rwX,go=rX "${_builddir}"

  # strip scripts directory
  local _binary _strip
  while read -rd '' _binary; do
    case "$(file -bi "${_binary}")" in
      *application/x-sharedlib*)  _strip="${STRIP_SHARED}"   ;; # Libraries (.so)
      *application/x-archive*)    _strip="${STRIP_STATIC}"   ;; # Libraries (.a)
      *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
      *) continue ;;
    esac
    /usr/bin/strip ${_strip} "${_binary}"
  done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
}

_package-docs() {
  pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"

  cd linux-${__basekernel}
  local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"

  mkdir -p "${_builddir}"
  cp -t "${_builddir}" -a Documentation

  # Fix permissions
  chmod -R u=rwX,go=rX "${_builddir}"
}

pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
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:

stephencox commented on 2018-04-22 18:39 (UTC)

@metak, I can't boot linux-clear at all on my hp microserver. The lsmod is from linux-mainline which boots. What is the likelyhood of a combination of the default kernel and linux-clear?

metak commented on 2018-04-22 15:32 (UTC) (edited on 2018-04-22 15:32 (UTC) by metak)

@stephencox I'm just packaging this as it is upstream and they are not making this to be a generic kernel, hence many things are not enabled. Like your wifi module.

Have you tried booting in default arch kernel and running lsmod and then compare that to clr kernel? Maybe you need something else that's not enabled in this kernel by default?

stephencox commented on 2018-04-22 14:24 (UTC)

On my HP laptop the WiFi (RTL8723BE) is not working as it's not included in the modules.

My HP microserver doesn't boot at all, stuck at Loading initial ramdisk. lsmod: https://pastebin.com/LwskQXj3

metak commented on 2018-04-20 21:44 (UTC)

Osleg, sorry couldn't be more helpful. If you want you can try this linux-clear-lts-4.14.35 pkgbuild?

Osleg commented on 2018-04-20 21:17 (UTC)

Well something really weird, now I can't boot even to rescue with linux-clear. Logs are clean but laptop seems to get stuck at last stage.