Autor Wątek: Linux-gc  (Przeczytany 10779 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Linux-gc
« dnia: Lipiec 22, 2015, 10:04:51 »
Linux-gc to prowadzona przez Alfreda Chena linia linuksowego kernela. Zawiera w sobie szereg patchy, jak np. BFQ, BFS czy patch graysky'ego rozszerzający możliwości dostosowania kompilatora do architektury procesora. Co ważne, niektóre z nich - jak np. BFS - Alfred rozwija sam, niezależnie od Cona. Niektóre z jego pomysłów później lądują w wersji BFS rozpowszechnianej przez Cona.
Obecnie - z uwagi na nawał pracy Cona i tymczasowe zaprzestanie rozwijania przez niego BFS - linux-gc jest niemal jedynym rozwiązaniem umożliwiającym skompilowanie kernela linii 4.1 z patchem BFS.

Poniżej przedstawiam opis instalacji tego kernela (obecna wersja jest jeszcze odpowiednikiem 4.1.2, chociaż mamy już 4.1.3; znając Alfreda niebawem pojawi się w jego repozytorium wersja uwzględniająca patch 4.1.3, wówczas powiadomię).
Rozpoczynamy od ściągnięcia jakiegoś kernela, który dostarczy nam fajne configi np. linux-bfq. Uwaga: config musi być dla kernela 4.1. Paczkę pobieramy stąd: https://aur4.archlinux.org/cgit/aur.git/snapshot/linux-bfq.tar.gz i rozpakowujemy:
tar -zxfv linux-bfq.tar.gzbądź korzystamy z programu packer (w moim przykładzie packer-color):
packer-color -G linux-bfqPrzechodzimy do katalogu ze źródłami:
cd linux-bfqUsuwamy niemal wszystko z wyjątkiem plików config i config.x86_64.
Do katalogu kopiujemy poniższy kod PKGBUILDa i tak go też nazywamy:
# Maintainer: pavbaranov
# Contributor: Piotr Gorski <lucjan.lucjanov@gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>

### BUILD OPTIONS
# Set these variables to ANYTHING that is not null to enable them

# Tweak kernel options prior to a build via nconfig
_makenconfig=

# Tweak kernel options prior to a build via menuconfig
_makemenuconfig=

# Tweak kernel options prior to a build via xconfig
_makexconfig=

# Tweak kernel options prior to a build via gconfig
_makegconfig=

# NUMA is optimized for multi-socket motherboards.
# A single multi-core CPU actually runs slower with NUMA enabled.
# See, https://bugs.archlinux.org/task/31187
_NUMAdisable=y

# Compile ONLY probed modules
# As of mainline 2.6.32, running with this option will only build the modules
# that you currently have probed in your system VASTLY reducing the number of
# modules built and the build time to do it.
#
# WARNING - ALL modules must be probed BEFORE you begin making the pkg!
#
# To keep track of which modules are needed for your specific system/hardware,
# give module_db script a try: https://aur.archlinux.org/packages/modprobed-db
# This PKGBUILD will call it directly to probe all the modules you have logged!
#
# More at this wiki page ---> https://wiki.archlinux.org/index.php/Modprobed_db
_localmodcfg=

# 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_current=

### Do not edit below this line unless you know what you're doing

pkgbase=linux-gc
pkgname=('linux-gc' 'linux-gc-headers' 'linux-gc-docs')
_kernelname=-gc
_srcname=linux-gc-linux-4.1.y-gc
pkgver=4.1.y
pkgrel=1
pkgdesc="Alfred Chen's linux kernel line (incl. BFQ, BFS and more)"
arch=('i686' 'x86_64')
url="http://cchalpha.blogspot.com/"

license=('GPL2')
options=('!strip')
makedepends=('kmod' 'inetutils' 'bc')

source=("https://codeload.github.com/cchalpha/linux-gc/zip/linux-4.1.y-gc"
        'linux-gc.preset'
        'change-default-console-loglevel.patch'
        'config' 'config.x86_64'
        )
       
prepare() {
    cd ${_srcname}
 
    ### set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
        msg "Patching set DEFAULT_CONSOLE_LOGLEVEL to 4"
        patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"

    ### Clean tree and copy ARCH config over
msg "Running make mrproper to clean source tree"
make mrproper

if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config
else
cat "${srcdir}/config" > ./.config
fi

### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then
if [[ -s /proc/config.gz ]]; then
msg "Extracting config from /proc/config.gz..."
# modprobe configs
zcat /proc/config.gz > ./.config
else
warning "You kernel was not compiled with IKCONFIG_PROC!"
warning "You cannot read the current config!"
warning "Aborting!"
exit
fi
fi

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

### Optionally disable NUMA since >99% of users have mono-socket systems.
# For more, see: https://bugs.archlinux.org/task/31187
if [ -n "$_NUMAdisable" ]; then
if [ "${CARCH}" = "x86_64" ]; then
msg "Disabling NUMA from kernel config..."
sed -i -e 's/CONFIG_NUMA=y/# CONFIG_NUMA is not set/' \
-i -e '/CONFIG_AMD_NUMA=y/d' \
-i -e '/CONFIG_X86_64_ACPI_NUMA=y/d' \
-i -e '/CONFIG_NODES_SPAN_OTHER_NODES=y/d' \
-i -e '/# CONFIG_NUMA_EMU is not set/d' \
-i -e '/CONFIG_NODES_SHIFT=6/d' \
-i -e '/CONFIG_NEED_MULTIPLE_NODES=y/d' \
-i -e '/# CONFIG_MOVABLE_NODE is not set/d' \
-i -e '/CONFIG_USE_PERCPU_NUMA_NODE_ID=y/d' \
-i -e '/CONFIG_ACPI_NUMA=y/d' ./.config
fi
fi

# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile

# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh

# get kernel version
msg "Running make prepare for you to enable patched options of your choosing"
make prepare

### Optionally load needed modules for the make localmodconfig
# See https://aur.archlinux.org/packages/modprobed-db
if [ -n "$_localmodcfg" ]; then
msg "If you have modprobe-db installed, running it in recall mode now"
if [ -e /usr/bin/modprobed-db ]; then
[[ ! -x /usr/bin/sudo ]] && echo "Cannot call modprobe with sudo.  Install via pacman -S sudo and configure to work with this user." && exit 1
sudo /usr/bin/modprobed-db recall
fi
msg "Running Steven Rostedt's make localmodconfig now"
make localmodconfig
fi

if [ -n "$_makenconfig" ]; then
msg "Running make nconfig"
make nconfig
fi

if [ -n "$_makemenuconfig" ]; then
msg "Running make menuconfig"
make menuconfig
fi

if [ -n "$_makexconfig" ]; then
msg "Running make xconfig"
make xconfig
fi

if [ -n "$_makegconfig" ]; then
msg "Running make gconfig"
make gconfig
fi

# rewrite configuration
yes "" | make config >/dev/null

# save configuration for later reuse
if [ "${CARCH}" = "x86_64" ]; then
cat .config > "${startdir}/config.x86_64.last"
else
cat .config > "${startdir}/config.last"
fi
}

build() {
    cd ${_srcname}
    msg "Running make bzImage and modules"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}

package_linux-gc() {
    pkgdesc='Linux Kernel and modules with the  BFQ scheduler.'
    depends=('coreutils' 'linux-firmware' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country' 'nvidia-gc: nVidia drivers for linux-gc' 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig')
    backup=("etc/mkinitcpio.d/linux-gc.preset")
    install=linux-gc.install

    cd ${_srcname}

    KARCH=x86

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

    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-linux-gc"

    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=-gc/g" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
    -i "${startdir}/${install}"

    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/linux-gc.preset" "${pkgdir}/etc/mkinitcpio.d/linux-gc.preset"
    sed \
    -e "1s|'linux.*'|'linux-gc'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-linux-gc\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-linux-gc.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-linux-gc-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/linux-gc.preset"

    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:gc}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:gc}"
    echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:gc}/version"

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

    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"

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

package_linux-gc-headers() {
    pkgdesc='Header files and scripts to build modules for linux-gc.'
    depends=('linux-gc')

    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"

    cd ${_srcname}
   
    KARCH=x86
   
     # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}

   
        install -D -m644 Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
install -D -m644 kernel/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
install -D -m644 .config \
"${pkgdir}/usr/lib/modules/${_kernver}/build/.config"

mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"

for i in acpi asm-generic config crypto drm generated keys linux math-emu \
media net pcmcia scsi sound trace uapi video xen; do
cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
done

# copy arch includes for external modules
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"

# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"

# fix permissions on scripts dir
chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"

mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"

cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"

if [ "${CARCH}" = "i686" ]; then
cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
fi

cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"

# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"

# add dm headers
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"

# add inotify.h
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"

# add wireless headers
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"

# add dvb headers for external modules
# in reference to:
# http://bugs.archlinux.org/task/9912
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
# and...
# http://bugs.archlinux.org/task/11194
###
### DO NOT MERGE OUT THIS IF STATEMENT
### IT AFFECTS USERS WHO STRIP OUT THE DVB STUFF SO THE OFFICIAL ARCH CODE HAS A CP
### LINE THAT CAUSES MAKEPKG TO END IN AN ERROR
###
if [ -d include/config/dvb/ ]; then
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
fi

# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
# in reference to:
# http://bugs.archlinux.org/task/13146
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"

# add dvb headers
# in reference to:
# http://bugs.archlinux.org/task/20402
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"

# add xfs and shmem for aufs building
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
# removed in 3.17 series
#cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"

# copy in Kconfig files
for i in $(find . -name "Kconfig*"); do
mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
done

chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;

# strip scripts directory
find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
case "$(file -bi "${binary}")" in
*application/x-sharedlib*) # Libraries (.so)
/usr/bin/strip ${STRIP_SHARED} "${binary}";;
*application/x-archive*) # Libraries (.a)
/usr/bin/strip ${STRIP_STATIC} "${binary}";;
*application/x-executable*) # Binaries
/usr/bin/strip ${STRIP_BINARIES} "${binary}";;
esac
done

    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
}

package_linux-gc-docs() {
    pkgdesc="Kernel hackers manual - HTML documentation that comes with the linux-gc kernel"
    depends=('linux-gc')
 
    cd ${_srcname}

    KARCH=x86

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

    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;

    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
}

sha512sums=('1b20f82cd191f52a84bc68ac16fee7741c95d115519731a5a2ca31ce0b75ef7478a76ee13cab7b1f7e6efa386fe33cfb0254b19d145d0edfda2394270d7a0327'
            'fadc871208943c485c96e19cf2d8565d7e71adc155dbc0eafbe06472f6a21f034ad4b39e0c5dc18caad897e9aa57b142b7169482ab9973686b2234344e0c9933'
            'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8'
            'f4f57eabc29a8fe93a3afe89a2efdfd480674cf3bd7f09dd9dbbce022bb883862abe17b0eb378b8d16a5b2882c2323147539a06ae1025956b73b2794c894b983'
            'e7b40538ed5b86cd59209a056cf9c96dd8f23828dc96cdc282b0388e4132907446f24d606d11cace62c9a53c81df1439150ef0c9a960bf85b5495e656aa59f2c')
           
validpgpkeys=(
              'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
              '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
             )
Kopiujemy plik linux-gc.install do tego samego katalogu i nazywamy go w ten sposób.
KERNEL_NAME=-gc
KERNEL_VERSION=

post_install () {
        # updating module dependencies
        echo ">>> Updating module dependencies. Please wait ..."
        depmod ${KERNEL_VERSION}
        echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
        mkinitcpio -p linux${KERNEL_NAME}
}

post_upgrade() {
        if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
                echo "WARNING: /boot appears to be a separate partition but is not mounted."
        fi
        # updating module dependencies
        echo ">>> Updating module dependencies. Please wait ..."
        depmod ${KERNEL_VERSION}
        echo ">>> Generating initial ramdisk, using mkinitcpio.  Please wait..."
        mkinitcpio -p linux${KERNEL_NAME}
}

post_remove() {
        # also remove the compat symlinks
        rm -f boot/initramfs-linux${KERNEL_NAME}.img
        rm -f boot/initramfs-linux${KERNEL_NAME}-fallback.img
}
Kopiujemy kod linux-gc.preset do tego samego katalogu i nazywamy go w ten sposób.
# mkinitcpio preset file for the 'linux-gc' package

ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-gc"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux-gc.img"
#default_options=""

#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-linux-gc-fallback.img"
fallback_options="-S autodetect"

Przed kompilacją, PKGBUILD możemy dostosować, przy czym pamiętajmy, że jeśli chcemy wykonać kompilację w oparciu o config działającego kernela, to tym kernelem musi być kernel tej samej linii, co kompilowany (tu 4.1).

Miłej zabawy.

PS: Proszę sobie zachować PKGBUILD, bowiem przy nowych wersjach kerneli nie będę dawał całego PKGBUILDa, ale prawdopodobnie wyłącznie polecenia sed, które zmienią PKGBUILD dostosowując go do aktualnej wersji).

PS2: Oczywiście PKGBUILD oraz *.install i *.preset są bezczelnie zerżnięte od Lucka :)

PS3: Poniżej na potwierdzenie wkompilowania BFS w kernel linii 4.1.
CONFIG_MPILEDRIVER=y
CONFIG_SCHED_SMT=y
CONFIG_SMT_NICE=y
[    1.885324] io scheduler bfq registered (default)
[    1.885325] BFQ I/O-scheduler: v7r8
[    1.919531] BFS CPU scheduler v0.462 by Con Kolivas.
Linux evo 4.1.2-1-gc #1 SMP PREEMPT Wed Jul 22 10:03:59 CEST 2015 x86_64 GNU/Linux
« Ostatnia zmiana: Lipiec 26, 2015, 14:02:10 wysłana przez pavbaranov »

sir_lucjan

  • AUR-OR
  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 1327
  • Reputacja +11/-0
  • Nic nie działa, jak Polska cała!
    • Mój profil w AUR
  • Architektura: x86_64
  • DE/WM: Plasma 5
  • Distro: Arch Linux
  • GPU: Intel
  • Kernel: linux-bfq-haswell
Odp: Linux-gc
« Odpowiedź #1 dnia: Lipiec 22, 2015, 21:07:10 »
Z tego, co zauważyłem - wspierany jest patch graysky'ego dla GCC 4.8:

9. Intel Core 2 (MCORE2)
  10. Intel Core i7 (MCOREI7) (NEW)
  11. Intel Core 2nd Gen AVX (MCOREI7AVX) (NEW)
  12. Intel Core 3rd Gen AVX (MCOREAVXI) (NEW)
  13. Intel Core AVX-2 (MCOREAVX2) (NEW)
> 14. Generic-x86-64 (GENERIC_CPU)

Dla posiadaczy Inteli nie wróży to dobrze.
« Ostatnia zmiana: Lipiec 22, 2015, 21:11:35 wysłana przez sir_lucjan »
Dell Inspiron 15-3542 (3542-2538) || Linux Register User: #536661
[AUR]  [GitHub]

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Odp: Linux-gc
« Odpowiedź #2 dnia: Lipiec 22, 2015, 21:12:09 »
Fakt, patch graysky'ego nie jest tak rozbudowany jak dla gcc >=4.9. Dla procesorów AMD większego problemu nie ma. Dla Intela - cóż,... po prostu nie wiem. Chen jest chyba użytkownikiem Gentoo, a tam jeszcze jest stary GCC. Przynajmniej w "stabilnych" wersjach. Raczej nie chce mi się podmieniać, bowiem musiałbym zbudować po prostu nowe źródła. Nowego patcha graysky'ego nałożyć na linux-gc niestety się nie da.

sir_lucjan

  • AUR-OR
  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 1327
  • Reputacja +11/-0
  • Nic nie działa, jak Polska cała!
    • Mój profil w AUR
  • Architektura: x86_64
  • DE/WM: Plasma 5
  • Distro: Arch Linux
  • GPU: Intel
  • Kernel: linux-bfq-haswell
Odp: Linux-gc
« Odpowiedź #3 dnia: Lipiec 22, 2015, 21:39:44 »
Jedyne wyjście, to przygotować patch który by to naprawiał.
Dell Inspiron 15-3542 (3542-2538) || Linux Register User: #536661
[AUR]  [GitHub]

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Odp: Linux-gc
« Odpowiedź #4 dnia: Lipiec 22, 2015, 22:46:32 »
Jak na razie, proponowane rozwiązanie:
- dla AMD - wybór jest bez zmian,
- dla Intel - chyba najrozsądniejsze rozwiązanie to wybór "generic" (nie pamiętam, czy Chen dał opcję "native" /z kodu tak wynika/ - jeśli tak, to ten wybór byłby najlepszy).

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Odp: Linux-gc
« Odpowiedź #5 dnia: Wrzesień 05, 2015, 11:37:07 »
Wersja dla kernela 4.2. Poniższy PKGBUILD jest skonstruowany nieco inaczej, a mianowicie nakłada patch gc (który jest obecnie wyłącznie przystosowanym BFS dla kernela 4.2) na waniliowe źródła kernela. Dodatkowo nakładane są patche BFQ (jeszcze dla linii 4.1, ale pracuje bez problemu) oraz patch graysky'ego w oryginalnej wersji. Nie trzeba zatem stosować opcji "native" dla procesorów Intel.
PKGBUILD
# Maintainer: pavbaranov
# Contributor: Piotr Gorski <lucjan.lucjanov@gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>

### BUILD OPTIONS
# Set these variables to ANYTHING that is not null to enable them

# Tweak kernel options prior to a build via nconfig
_makenconfig=

# Tweak kernel options prior to a build via menuconfig
_makemenuconfig=

# Tweak kernel options prior to a build via xconfig
_makexconfig=y

# Tweak kernel options prior to a build via gconfig
_makegconfig=

# NUMA is optimized for multi-socket motherboards.
# A single multi-core CPU actually runs slower with NUMA enabled.
# See, https://bugs.archlinux.org/task/31187
_NUMAdisable=y

# Compile ONLY probed modules
# As of mainline 2.6.32, running with this option will only build the modules
# that you currently have probed in your system VASTLY reducing the number of
# modules built and the build time to do it.
#
# WARNING - ALL modules must be probed BEFORE you begin making the pkg!
#
# To keep track of which modules are needed for your specific system/hardware,
# give module_db script a try: https://aur.archlinux.org/packages/modprobed-db
# This PKGBUILD will call it directly to probe all the modules you have logged!
#
# More at this wiki page ---> https://wiki.archlinux.org/index.php/Modprobed_db
_localmodcfg=y

# 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_current=

### Do not edit below this line unless you know what you're doing

pkgbase=linux-gc
pkgname=('linux-gc' 'linux-gc-headers' 'linux-gc-docs')
_kernelname=-gc
#_srcname=linux-gc-linux-4.1.y-gc
_srcname=linux-4.2
pkgver=4.2
pkgrel=1
pkgdesc="Alfred Chen's linux kernel line (incl. BFQ, BFS and more)"
arch=('i686' 'x86_64')
url="http://cchalpha.blogspot.com/"

license=('GPL2')
options=('!strip')
makedepends=('kmod' 'inetutils' 'bc')
optdepends=('modprobed-db') # if you set _localmodcfg=y above, you had to install modprobed-db from AUR before compile this kernel
_bfqrel=v7r8
_bfqpath="http://algo.ing.unimo.it/people/paolo/disk_sched/patches/4.1.0-${_bfqrel}"
_gcc_patch="enable_additional_cpu_optimizations_for_gcc_v4.9+_kernel_v3.15+.patch"

#source=(#"https://codeload.github.com/cchalpha/linux-gc/zip/linux-4.1.y-gc")
source=('https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.2.tar.xz'
        'https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.2.tar.sign'
'https://bitbucket.org/alfredchen/linux-gc/downloads/gc_v4.2_0463_1.patch'
'https://bitbucket.org/alfredchen/linux-gc/downloads/fix_topology_thread_cpumask.patch'
"${_bfqpath}/0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r8-4.1.patch"
        "${_bfqpath}/0002-block-introduce-the-BFQ-v7r8-I-O-sched-for-4.1.patch"
        "${_bfqpath}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r8-for-4.1.0.patch"
        '0001-make_flush_workqueue_non_gpl.patch'
        '0001-e1000e-Fix-tight-loop-implementation-of-systime-read.patch'
        '0001-netfilter-conntrack-use-nf_ct_tmpl_free-in-CT-synpro.patch'
        "http://repo-ck.com/source/gcc_patch/${_gcc_patch}.gz"
        'linux-gc.preset'
        'change-default-console-loglevel.patch'
        'config' 'config.x86_64'
        )
       
prepare() {
    cd ${_srcname}

    ### set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
        msg "Patching set DEFAULT_CONSOLE_LOGLEVEL to 4"
        patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
       
    ### Apply Alfred Chen's gc patch (BFS)
        msg "Patching Alfred Chen's gc patch (BFQ, BFS and more)"
        patch -p1 -i "${srcdir}/gc_v4.2_0463_1.patch"
        patch -p1 -i "${srcdir}/fix_topology_thread_cpumask.patch"
       
    ### Apply BFQ patch
        msg "Patcching source with BFQ patches"
        for p in "${srcdir}"/000{1,2,3}-block*.patch; do
        patch -Np1 -i "$p"
        done
       
    ### Apply more GCC CPU optimizations (aka graysky's patch)
        msg "Patching source with gcc patchto enable more cpus types"
        patch -Np1 -i "${srcdir}/${_gcc_patch}"
       
    ### Apply patches from Arch's sources
        patch -Np1 -i "${srcdir}/0001-e1000e-Fix-tight-loop-implementation-of-systime-read.patch"
        patch -Np1 -i "${srcdir}/0001-make_flush_workqueue_non_gpl.patch"
        patch -Np1 -i "${srcdir}/0001-netfilter-conntrack-use-nf_ct_tmpl_free-in-CT-synpro.patch"

    ### Clean tree and copy ARCH config over
msg "Running make mrproper to clean source tree"
make mrproper

if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config
else
cat "${srcdir}/config" > ./.config
fi

### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then
if [[ -s /proc/config.gz ]]; then
msg "Extracting config from /proc/config.gz..."
# modprobe configs
zcat /proc/config.gz > ./.config
else
warning "You kernel was not compiled with IKCONFIG_PROC!"
warning "You cannot read the current config!"
warning "Aborting!"
exit
fi
fi

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

### Optionally disable NUMA since >99% of users have mono-socket systems.
# For more, see: https://bugs.archlinux.org/task/31187
if [ -n "$_NUMAdisable" ]; then
if [ "${CARCH}" = "x86_64" ]; then
msg "Disabling NUMA from kernel config..."
sed -i -e 's/CONFIG_NUMA=y/# CONFIG_NUMA is not set/' \
-i -e '/CONFIG_AMD_NUMA=y/d' \
-i -e '/CONFIG_X86_64_ACPI_NUMA=y/d' \
-i -e '/CONFIG_NODES_SPAN_OTHER_NODES=y/d' \
-i -e '/# CONFIG_NUMA_EMU is not set/d' \
-i -e '/CONFIG_NODES_SHIFT=6/d' \
-i -e '/CONFIG_NEED_MULTIPLE_NODES=y/d' \
-i -e '/# CONFIG_MOVABLE_NODE is not set/d' \
-i -e '/CONFIG_USE_PERCPU_NUMA_NODE_ID=y/d' \
-i -e '/CONFIG_ACPI_NUMA=y/d' ./.config
fi
fi

# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile

# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh

# get kernel version
msg "Running make prepare for you to enable patched options of your choosing"
make prepare

### Optionally load needed modules for the make localmodconfig
# See https://aur.archlinux.org/packages/modprobed-db
if [ -n "$_localmodcfg" ]; then
msg "If you have modprobe-db installed, running it in recall mode now"
if [ -e /usr/bin/modprobed-db ]; then
[[ ! -x /usr/bin/sudo ]] && echo "Cannot call modprobe with sudo.  Install via pacman -S sudo and configure to work with this user." && exit 1
sudo /usr/bin/modprobed-db recall
fi
msg "Running Steven Rostedt's make localmodconfig now"
make localmodconfig
fi

if [ -n "$_makenconfig" ]; then
msg "Running make nconfig"
make nconfig
fi

if [ -n "$_makemenuconfig" ]; then
msg "Running make menuconfig"
make menuconfig
fi

if [ -n "$_makexconfig" ]; then
msg "Running make xconfig"
make xconfig
fi

if [ -n "$_makegconfig" ]; then
msg "Running make gconfig"
make gconfig
fi

# rewrite configuration
yes "" | make config >/dev/null

# save configuration for later reuse
if [ "${CARCH}" = "x86_64" ]; then
cat .config > "${startdir}/config.x86_64.last"
else
cat .config > "${startdir}/config.last"
fi
}

build() {
    cd ${_srcname}
    msg "Running make bzImage and modules"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}

package_linux-gc() {
    pkgdesc='Linux Kernel and modules with the  BFQ scheduler.'
    depends=('coreutils' 'linux-firmware' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country' 'nvidia-gc: nVidia drivers for linux-gc' 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig')
    backup=("etc/mkinitcpio.d/linux-gc.preset")
    install=linux-gc.install

    cd ${_srcname}

    KARCH=x86

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

    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-linux-gc"

    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=-gc/g" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
    -i "${startdir}/${install}"

    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/linux-gc.preset" "${pkgdir}/etc/mkinitcpio.d/linux-gc.preset"
    sed \
    -e "1s|'linux.*'|'linux-gc'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-linux-gc\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-linux-gc.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-linux-gc-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/linux-gc.preset"

    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:gc}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:gc}"
    echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:gc}/version"

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

    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"

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

package_linux-gc-headers() {
    pkgdesc='Header files and scripts to build modules for linux-gc.'
    depends=('linux-gc')

    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"

    cd ${_srcname}
   
    KARCH=x86
   
     # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}

   
        install -D -m644 Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
install -D -m644 kernel/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
install -D -m644 .config \
"${pkgdir}/usr/lib/modules/${_kernver}/build/.config"

mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"

for i in acpi asm-generic config crypto drm generated keys linux math-emu \
media net pcmcia scsi sound trace uapi video xen; do
cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
done

# copy arch includes for external modules
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"

# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"

# fix permissions on scripts dir
chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"

mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"

cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"

if [ "${CARCH}" = "i686" ]; then
cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
fi

cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"

# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"

# add dm headers
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"

# add inotify.h
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"

# add wireless headers
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"

# add dvb headers for external modules
# in reference to:
# http://bugs.archlinux.org/task/9912
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
# and...
# http://bugs.archlinux.org/task/11194
###
### DO NOT MERGE OUT THIS IF STATEMENT
### IT AFFECTS USERS WHO STRIP OUT THE DVB STUFF SO THE OFFICIAL ARCH CODE HAS A CP
### LINE THAT CAUSES MAKEPKG TO END IN AN ERROR
###
if [ -d include/config/dvb/ ]; then
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
fi

# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
# in reference to:
# http://bugs.archlinux.org/task/13146
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"

# add dvb headers
# in reference to:
# http://bugs.archlinux.org/task/20402
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"

# add xfs and shmem for aufs building
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
# removed in 3.17 series
#cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"

# copy in Kconfig files
for i in $(find . -name "Kconfig*"); do
mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
done

chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;

# strip scripts directory
find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
case "$(file -bi "${binary}")" in
*application/x-sharedlib*) # Libraries (.so)
/usr/bin/strip ${STRIP_SHARED} "${binary}";;
*application/x-archive*) # Libraries (.a)
/usr/bin/strip ${STRIP_STATIC} "${binary}";;
*application/x-executable*) # Binaries
/usr/bin/strip ${STRIP_BINARIES} "${binary}";;
esac
done

    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
}

package_linux-gc-docs() {
    pkgdesc="Kernel hackers manual - HTML documentation that comes with the linux-gc kernel"
    depends=('linux-gc')
 
    cd ${_srcname}

    KARCH=x86

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

    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;

    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
}

sha512sums=('a87bbce3c0c6d810a41bbba1c0dcaae80dc38dded9f8571e97fa4ee5a468d655daf52d260911412f7c7da3171a5114e89d63da14b1753b9a3eb2cc38fd89b9ee'
            'SKIP'
            '954a3dba503b4699205462b1652bd7102fa00f6c742a7122d55c693a81248bcd18999281c3e611fd94923e9adda60422889c028c2fb798093408c07e33577ee4'
            'd50d5c2e7955408ba98687265a33d62e15a3c6d4166c26cfd0e7b54623e247dd468134d7ae4fc5388b0e9bbbbec20832be11bc5db2565967d9e8b8118f1cabfc'
            '383cd020ab882389731ef78abca727eccc8247ed82b95c89df93d7065bfde093b82e32190ad1fb29b37de35eb20b40339f2c02ad694a3978884255b193f5bc1a'
            'f7bcb50e7de166e0d89194a3cad1feae99c4a5a9918e8af691d7635ed8ef64762ff2af4702dc6ba0eef0fc01ad75173abddbf01ae89bc6e03ace5e54f4098b12'
            '1db70764577d3e8d5e65351bdef7f2cf61d2546138a6342c4bf4e5e6738b8e06b5291a9a0c12f9fc2c8cb620048006d05474cf75902cb26e7504038150cf0a44'
            '0eaa8ffd523ec0cd101fb77f2686474fcae6a705ee457257d8eaf20a3da6af79180b225c157591f17bc55035cd94c9eae3c789f504bc9226efb5d3aaa569b229'
            '790f82eb281d698db6d3b599a0dcece93345c183a6ebe4478d3e17fa916a2a6d763e89058543b32a87beddab37924078c618e8de1bd3cbcc0747be681be3349b'
            '151f797ee9c7756bf711422e47482644072988803fa894e62d34ec8d85375e5097dbdc70eecfb7ac8b0d813c634e043a522dba6e3155424013537939cdc931da'
            '76bf6a9f22b023ab8f780884f595dac1801d150ecd94f88da229c5c9ea98d2c3ef8add01ff7e18e4cbbfa5e6e9c022c4042ee62c779a8485203c1b0e082b8ccc'
            'fadc871208943c485c96e19cf2d8565d7e71adc155dbc0eafbe06472f6a21f034ad4b39e0c5dc18caad897e9aa57b142b7169482ab9973686b2234344e0c9933'
            'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8'
            'b68b1fcd896f98dce22e9de167cf2d56085244ad365ff256121d489e0753f0cc46ad36729c21548bfa1e4a58558de5815bd2ae1e29831e4efa4597e9e4b87965'
            '9f86c58a565248dbc9690b826515f0e73a85f533993626d063d29881308adc5916f37d896c1d43f290ef0b64903485f0740a9a375c12b29d5922a79ef128c251')
           
validpgpkeys=(
              'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
              '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
             )
« Ostatnia zmiana: Wrzesień 05, 2015, 12:49:00 wysłana przez pavbaranov »

 

Polityka cookies
Darmowe Fora | Darmowe Forum
weganizm gangpod polskiedobrerpg mustangi thepunisher