From 39971739fa015ebb511be34b1e62736a18f7f4c9 Mon Sep 17 00:00:00 2001 From: Nick Reitemeyer Date: Sun, 24 Mar 2019 20:45:00 +0100 Subject: [PATCH] surftab-wintron7.0: new device (TrekStor Surftab wintron 7.0) (!290) This device is x86_64 and has a 32-bit UEFI, so I need to install 32-bit grub (AFAIK it's the only bootloader capable of loading a 64-bit kernel from 32-bit). The grub-efi-x86 package has been generated with pmbootstrap. --- cross/grub-efi-x86/APKBUILD | 24 +++++++++++++ cross/grub-x86/APKBUILD | 22 ++++++++++++ cross/grub-x86/grub_early.cfg | 2 ++ device/device-surftab-wintron7.0/APKBUILD | 36 +++++++++++++++++++ device/device-surftab-wintron7.0/deviceinfo | 25 +++++++++++++ device/device-surftab-wintron7.0/grub.cfg | 5 +++ .../device-surftab-wintron7.0/grub_early.cfg | 2 ++ firmware/firmware-surftab-wintron7.0/APKBUILD | 17 +++++++++ 8 files changed, 133 insertions(+) create mode 100644 cross/grub-efi-x86/APKBUILD create mode 100644 cross/grub-x86/APKBUILD create mode 100644 cross/grub-x86/grub_early.cfg create mode 100644 device/device-surftab-wintron7.0/APKBUILD create mode 100644 device/device-surftab-wintron7.0/deviceinfo create mode 100644 device/device-surftab-wintron7.0/grub.cfg create mode 100644 device/device-surftab-wintron7.0/grub_early.cfg create mode 100644 firmware/firmware-surftab-wintron7.0/APKBUILD diff --git a/cross/grub-efi-x86/APKBUILD b/cross/grub-efi-x86/APKBUILD new file mode 100644 index 000000000..0c252ac0e --- /dev/null +++ b/cross/grub-efi-x86/APKBUILD @@ -0,0 +1,24 @@ +# Automatically generated aport, do not edit! +# Generator: pmbootstrap aportgen grub-efi-x86 + +pkgname=grub-efi-x86 +pkgver=2.02 +pkgrel=14 + +_arch="x86" +_mirror="http://dl-cdn.alpinelinux.org/alpine/" + +pkgdesc="GRUB $_arch EFI files for every architecture" +url="https://www.gnu.org/software/grub/" +license="GPL-3.0-or-later" +arch="all" +source="grub-efi-$pkgver-r$pkgrel-$_arch.apk::$_mirror/edge/main/$_arch/grub-efi-$pkgver-r$pkgrel.apk" + +package() { + mkdir -p "$pkgdir" + cd "$pkgdir" + tar -xf "$srcdir/grub-efi-$pkgver-r$pkgrel-$_arch.apk" + rm .PKGINFO .SIGN.* +} + +sha512sums="ed9fa2d18e4af5916671a0ca316471b0def4ec1de7358b04e9a1c92693170bd8e24688d9926871c121201f1a3efc618ff1f90630d14f7f06527423e65d597405 grub-efi-2.02-r14-x86.apk" diff --git a/cross/grub-x86/APKBUILD b/cross/grub-x86/APKBUILD new file mode 100644 index 000000000..c1f03c3f7 --- /dev/null +++ b/cross/grub-x86/APKBUILD @@ -0,0 +1,22 @@ +pkgname=grub-x86 +pkgver=1 +pkgrel=0 +pkgdesc="GRUB i386-efi image" +url="https://www.gnu.org/software/grub/" +license="GPL-3.0-or-later" +arch="x86_64" +makedepends="grub grub-efi-x86" +options="pmbootstrap-strict" +source="grub_early.cfg" + +package() { + mkdir -p "$pkgdir/boot/EFI/Boot" + grub_mod="all_video disk part_gpt part_msdos linux normal configfile search search_label efi_gop fat iso9660 cat echo ls test true help gzio" + grub-mkimage --config="$srcdir/grub_early.cfg" \ + --prefix="" \ + --output="$pkgdir/boot/EFI/Boot/bootia32.efi" \ + --format="i386-efi" --compression="xz" \ + $grub_mod +} + +sha512sums="0f9357d4eea089628fbceb1e3e96d21a3f4329aeb6743158a6f877f967ef274506404eba949d5f01b7e1adea149f9a3aef992a5e8cd4181f93ab00909b1c5ecd grub_early.cfg" diff --git a/cross/grub-x86/grub_early.cfg b/cross/grub-x86/grub_early.cfg new file mode 100644 index 000000000..995cea771 --- /dev/null +++ b/cross/grub-x86/grub_early.cfg @@ -0,0 +1,2 @@ +search --no-floppy --set=root --label "pmOS_boot" +set prefix=($root)/grub diff --git a/device/device-surftab-wintron7.0/APKBUILD b/device/device-surftab-wintron7.0/APKBUILD new file mode 100644 index 000000000..5ad153ed1 --- /dev/null +++ b/device/device-surftab-wintron7.0/APKBUILD @@ -0,0 +1,36 @@ +# Reference: +pkgname="device-surftab-wintron7.0" +pkgdesc="TrekStor SurfTab wintron 7.0" +pkgver=0.3 +pkgrel=1 +url="https://postmarketos.org" +license="MIT" +arch="x86_64" +options="!check !archcheck" +depends="grub-x86 postmarketos-base linux-vanilla mesa-dri-intel" +makedepends="devicepkg-dev" +subpackages="$pkgname-nonfree-firmware:nonfree_firmware" +source=" + deviceinfo + grub.cfg +" + +build() { + devicepkg_build $startdir $pkgname +} + +package() { + devicepkg_package $startdir $pkgname + mkdir -p "$pkgdir/boot/grub/" + install -D -m644 "$srcdir/grub.cfg" \ + "$pkgdir/boot/grub/grub.cfg" +} + +nonfree_firmware() { + pkgdesc="Touchscreen firmware" + depends="firmware-surftab-wintron7.0" + mkdir "$subpkgdir" +} + +sha512sums="1dc0d206905aad9de0efc7284bdb8b27f739d0657d848a616c7df89a7bd982c579a492590e1413a88c772d81d5222847c683bbb8ecdcfb410e31bd9e568bc5fb deviceinfo +8b77755eb59c07f84cb00439f09e0f4bbc2fdf6da8e41160bb1967463c0e098d012a18465891a5d0fc64a37712ba3840a110aa7a371da90c23b4fcd7ac63c004 grub.cfg" diff --git a/device/device-surftab-wintron7.0/deviceinfo b/device/device-surftab-wintron7.0/deviceinfo new file mode 100644 index 000000000..c3e3435a2 --- /dev/null +++ b/device/device-surftab-wintron7.0/deviceinfo @@ -0,0 +1,25 @@ +# Reference: +# Please use double quotes only. You can source this file in shell scripts. + +deviceinfo_format_version="0" +deviceinfo_name="TrekStor SurfTab wintron 7.0" +deviceinfo_manufacturer="TrekStor" +deviceinfo_codename="surftab-wintron7.0" +deviceinfo_date="" +deviceinfo_dtb="" +deviceinfo_modules_initfs="usbhid jbd2 sdhci sdhci-pci sdhci_acpi mmc_core mmc_block mbcache ext4 scsi_mod sd_mod sg +libata ahci libahci usb_storage xhci_hcd ehci_hcd uas xhci_pci fat vfat nls_cp437 nls_utf8" +deviceinfo_arch="x86_64" + +# Device related +deviceinfo_keyboard="false" +deviceinfo_external_storage="true" +deviceinfo_screen_width="1024" +deviceinfo_screen_height="600" +deviceinfo_dev_touchscreen="/dev/input/event3" +deviceinfo_dev_touchscreen_calibration="4.7 0 0 0 6.5 0" +deviceinfo_dev_keyboard="" + +# Bootloader related +deviceinfo_flash_method="none" +deviceinfo_boot_filesystem="fat16" diff --git a/device/device-surftab-wintron7.0/grub.cfg b/device/device-surftab-wintron7.0/grub.cfg new file mode 100644 index 000000000..65be4e975 --- /dev/null +++ b/device/device-surftab-wintron7.0/grub.cfg @@ -0,0 +1,5 @@ +timeout=4 +menuentry "postmarketOS" { + linux ($root)/vmlinuz-vanilla + initrd ($root)/initramfs-vanilla +} diff --git a/device/device-surftab-wintron7.0/grub_early.cfg b/device/device-surftab-wintron7.0/grub_early.cfg new file mode 100644 index 000000000..995cea771 --- /dev/null +++ b/device/device-surftab-wintron7.0/grub_early.cfg @@ -0,0 +1,2 @@ +search --no-floppy --set=root --label "pmOS_boot" +set prefix=($root)/grub diff --git a/firmware/firmware-surftab-wintron7.0/APKBUILD b/firmware/firmware-surftab-wintron7.0/APKBUILD new file mode 100644 index 000000000..66b9cdb8d --- /dev/null +++ b/firmware/firmware-surftab-wintron7.0/APKBUILD @@ -0,0 +1,17 @@ +pkgname=firmware-surftab-wintron7.0 +pkgver=1 +pkgrel=1 +pkgdesc="Firmware for Trekstor Surftab Wintron 7.0" +url="https://github.com/onitake/gsl-firmware" +arch="x86_64" +license="proprietary" +depends="" +source="https://github.com/onitake/gsl-firmware/raw/231bb49e312966df4b2eebc46815d7dde90c9b52/firmware/linux/silead/gsl1686-surftab-wintron70-st70416-6.fw" + +package() { + mkdir -p "$pkgdir/lib/firmware/silead" + install -Dm644 "$srcdir/gsl1686-surftab-wintron70-st70416-6.fw" \ + "$pkgdir/lib/firmware/silead/mssl1680.fw" +} + +sha512sums="30f4dca3bf01066fc4a1eff5a60453ca7147ea3838a6e070f25979f30b8d6d97d054f133e29a6efbb8a0fd4d17127e7191070c4df03f55a6bc90b953492be48a gsl1686-surftab-wintron70-st70416-6.fw"