pmaports/device/linux-planet-geminipda/APKBUILD
NeKit c54463924f
planet-geminipda: new device (Planet Gemini PDA) (!155)
Integrate Gemini PDA support into master from old branch:
https://github.com/postmarketOS/pmbootstrap/commits/device-planet-geminipda

Most of hybris-related changes (besides KWin) was merged, so it is just
device and kernel aports now.

The state of hardware support is unchanged from:
https://wiki.postmarketos.org/wiki/Planet_Computers_Gemini_PDA_(planet-geminipda)

Without hybris, it can boot to graphics with X11 fbdev driver, the
included config enables correct rotation (as it has portrait display,
but usable only in landscape).

For running it with hybris, which can allow for 3D acceleration, we need
a way to package and provide large LXC image for running Halium Android
container. Lately Adam Boardman from Gemini PDA community also got voice
calls working in Debian install with a mix of SailfishOS middleware and
Ubuntu Touch applications, which could be probably adapted for
postmarketOS if needed.
2019-01-21 07:39:41 +01:00

84 lines
2.6 KiB
Text

# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/aeon6797_6m_n_halium_defconfig
pkgname="linux-planet-geminipda"
pkgver=3.18.41
pkgrel=0
pkgdesc="Gemini PDA kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="planet-geminipda"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps"
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev devicepkg-dev gcc6 python"
# Compiler: GCC 6 (doesn't boot when compiled with newer versions)
if [ "${CC:0:5}" != "gcc6-" ]; then
CC="gcc6-$CC"
HOSTCC="gcc6-gcc"
CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi
# Source
_repository="gemini-linux-kernel-3.18"
_commit="bf7daa4483d5dce94c9d478fc28854f5978d60da"
_config="config-${_flavor}.${arch}"
source="
$pkgname-$_commit.tar.gz::https://github.com/gemian/${_repository}/archive/${_commit}.tar.gz
$_config
"
builddir="$srcdir/${_repository}-${_commit}"
prepare() {
default_prepare
# support newer GCC versions
cp -v "/usr/share/devicepkg-dev/compiler-gcc.h" "$builddir/include/linux/"
# Remove -Werror from all makefiles
makefiles="$(find "$builddir" -type f -name Makefile)
$(find "$builddir" -type f -name Kbuild)"
for i in $makefiles; do
sed -i 's/-Werror-/-W/g' "$i"
sed -i 's/-Werror//g' "$i"
done
# Device kernel must(!) be build out-of-tree to avoid include errors
mkdir -p "$builddir"/KERNEL_OBJ
# Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
cp "$srcdir"/$_config "$builddir"/KERNEL_OBJ/.config
yes "" | make -C "$builddir" ARCH="$_carch" HOSTCC="$HOSTCC" \
O="$builddir"/KERNEL_OBJ oldconfig
}
build() {
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" \
O="$builddir"/KERNEL_OBJ
}
package() {
# kernel.release
install -D "$builddir/KERNEL_OBJ/include/config/kernel.release" \
"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
# zImage (find the right one)
cd "$builddir/KERNEL_OBJ/arch/$_carch/boot"
_target="$pkgdir/boot/vmlinuz-$_flavor"
for _zimg in zImage-dtb Image.gz-dtb *zImage Image; do
[ -e "$_zimg" ] || continue
msg "zImage found: $_zimg"
install -Dm644 "$_zimg" "$_target"
break
done
if ! [ -e "$_target" ]; then
error "Could not find zImage in $PWD!"
return 1
fi
}
sha512sums="84579ba59ada9166794ec02843616049128c199f9c68b519d3e33056822a22d12921b6589ff058d08e580e877a227a124f999f041e29b6d81a8fde7ce7480b11 linux-planet-geminipda-bf7daa4483d5dce94c9d478fc28854f5978d60da.tar.gz
019e2cb30c6d61b37c5c6c5f583da5be42e37bb7eb695bba4dc30dfe91196d3f20ba57ae3ac6931f9ea4cbf4a7c2cdd95f603191e387c3e292b667049a4e9876 config-planet-geminipda.aarch64"