mainline!
This commit is contained in:
parent
cef25071a2
commit
02aa5c8405
|
@ -1,7 +1,7 @@
|
|||
# pmOS for laurel_sprout (WIP)
|
||||
# pmOS for laurel_sprout
|
||||
|
||||
![Mi A3 on Fastboot](device.png)
|
||||
![Mi A3 booting postmarketOS](device.jpg)
|
||||
|
||||
Packages for Xiaomi Mi A3 (laurel_sprout). **NOT BOOTING** as of now, so if anyone wants to contribute you're free to commit potential fixes.
|
||||
Device packages for Xiaomi Mi A3 (laurel_sprout). Booting on kernel 5.17.0-rc6!
|
||||
|
||||
[pmOS wiki page](https://wiki.postmarketos.org/wiki/Xiaomi_Mi_A3_\(xiaomi-laurel_sprout\))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
pkgname=device-xiaomi-laurel_sprout
|
||||
pkgdesc="Xiaomi Mi A3"
|
||||
pkgver=0.1
|
||||
pkgrel=0
|
||||
pkgrel=2
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
|
@ -25,5 +25,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
b665ab8d583a4d261b9aed7c9442db519827fe32a66346b770bd12e958ac5e72531e0117dc4f3af99296c097c5e80d5a5e6b71b5c6e91b4576f95feebf48b78b deviceinfo
|
||||
1f0183d38e8f169319b6bdd49948a8368227d7e6d7c68df6c288ca241b70c73cd4efd16f4b518a8288ef3e3a6874b8ffd4ce1a4527ed7a531f26d7a59fe4e4c1 deviceinfo
|
||||
"
|
||||
|
|
|
@ -7,7 +7,7 @@ deviceinfo_name="Xiaomi Mi A3"
|
|||
deviceinfo_manufacturer="Xiaomi"
|
||||
deviceinfo_codename="xiaomi-laurel_sprout"
|
||||
deviceinfo_year="2019"
|
||||
deviceinfo_dtb=""
|
||||
deviceinfo_dtb="qcom/sm6125-xiaomi-laurel_sprout"
|
||||
deviceinfo_modules_initfs=""
|
||||
deviceinfo_arch="aarch64"
|
||||
|
||||
|
@ -15,25 +15,21 @@ deviceinfo_arch="aarch64"
|
|||
deviceinfo_chassis="handset"
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_storage="true"
|
||||
deviceinfo_screen_width="1560"
|
||||
deviceinfo_screen_height="720"
|
||||
deviceinfo_no_framebuffer="true"
|
||||
deviceinfo_getty="ttyMSM0;115200"
|
||||
deviceinfo_screen_width="720"
|
||||
deviceinfo_screen_height="1560"
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="fastboot"
|
||||
deviceinfo_flash_fastboot_partition_vbmeta="vbmeta"
|
||||
deviceinfo_flash_fastboot_partition_dtbo="dtbo"
|
||||
deviceinfo_flash_sparse="true"
|
||||
deviceinfo_kernel_cmdline="console=ttyMSM0,115200,n8 androidboot.hardware=qcom androidboot.console=ttyMSM0 user_debug=31 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 swiotlb=1 earlycon=msm_geni_serial,0x4a90000 loop.max_part=7 cgroup.memory=nokmem,nosocket androidboot.selinux=permissive buildvariant=eng"
|
||||
deviceinfo_kernel_cmdline="clk_ignore_unused"
|
||||
deviceinfo_generate_bootimg="true"
|
||||
deviceinfo_flash_fastboot_partition_vbmeta="vbmeta"
|
||||
deviceinfo_bootimg_qcdt="false"
|
||||
deviceinfo_bootimg_mtk_mkimage="false"
|
||||
deviceinfo_bootimg_dtb_second="false"
|
||||
deviceinfo_append_dtb="true"
|
||||
deviceinfo_flash_pagesize="4096"
|
||||
deviceinfo_flash_offset_base="0x00000000"
|
||||
deviceinfo_flash_offset_kernel="0x00008000"
|
||||
deviceinfo_flash_offset_ramdisk="0x01000000"
|
||||
deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x00000100"
|
||||
deviceinfo_rootfs_image_sector_size="4096"
|
||||
|
|
BIN
device.jpg
Normal file
BIN
device.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
BIN
device.png
BIN
device.png
Binary file not shown.
Before Width: | Height: | Size: 121 KiB |
|
@ -1,24 +0,0 @@
|
|||
From 4995be221047acf5b40610e5c4eacf4b75434500 Mon Sep 17 00:00:00 2001
|
||||
From: NeKit <nekit1000@gmail.com>
|
||||
Date: Mon, 18 Mar 2019 22:02:40 +0100
|
||||
Subject: [PATCH] (hybris) always boot to initramfs
|
||||
|
||||
---
|
||||
init/initramfs.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/init/initramfs.c b/init/initramfs.c
|
||||
index 52059169..54768fd3 100644
|
||||
--- a/init/initramfs.c
|
||||
+++ b/init/initramfs.c
|
||||
@@ -612,7 +612,9 @@ static int __init skip_initramfs_param(char *str)
|
||||
{
|
||||
if (*str)
|
||||
return 0;
|
||||
- do_skip_initramfs = 1;
|
||||
+ // Halium: always boot to initramfs
|
||||
+ //do_skip_initramfs = 1;
|
||||
+ do_skip_initramfs = 0;
|
||||
return 1;
|
||||
}
|
||||
__setup("skip_initramfs", skip_initramfs_param);
|
|
@ -1,18 +0,0 @@
|
|||
diff --git a/init/initramfs.c b/init/initramfs.c
|
||||
index bf3af10c500a..1c74b6d70e5e 100644
|
||||
--- a/init/initramfs.c
|
||||
+++ b/init/initramfs.c
|
||||
@@ -622,11 +622,11 @@ static int __init populate_rootfs(void)
|
||||
{
|
||||
char *err;
|
||||
|
||||
- if (do_skip_initramfs) {
|
||||
+ /*if (do_skip_initramfs) {
|
||||
if (initrd_start)
|
||||
free_initrd();
|
||||
return default_rootfs();
|
||||
- }
|
||||
+ }*/
|
||||
|
||||
err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
|
||||
if (err)
|
|
@ -1,80 +0,0 @@
|
|||
From 92e3310d2db157deacb86ef5db8c8c8d38251312 Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Min <alexey.min@gmail.com>
|
||||
Date: Wed, 11 Sep 2019 21:51:40 +0300
|
||||
Subject: [PATCH 3/6] Add config option to fix bootloader cmdline args
|
||||
|
||||
Android bootloader passes some arguments in kernel command
|
||||
line, that make booting custom OSes harder:
|
||||
|
||||
* skip_initramfs
|
||||
* root=PARTUUID=...
|
||||
* init=/init
|
||||
|
||||
Those parameters override default boot partition to hardcoded,
|
||||
set init binary to /init, disable booting from initramfs.
|
||||
|
||||
If enabled, those parameters will be erased from bootloader's
|
||||
command line, and custom OS can boot the way it likes.
|
||||
|
||||
Signed-off-by: Alexey Min <alexey.min@gmail.com>
|
||||
---
|
||||
arch/arm64/Kconfig | 17 +++++++++++++++++
|
||||
drivers/of/fdt.c | 14 ++++++++++++++
|
||||
2 files changed, 31 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
|
||||
index 2829edba6aa5..bd9f05f83c7e 100644
|
||||
--- a/arch/arm64/Kconfig
|
||||
+++ b/arch/arm64/Kconfig
|
||||
@@ -1125,6 +1125,23 @@ config CMDLINE_FORCE
|
||||
command-line options your boot loader passes to the kernel.
|
||||
endchoice
|
||||
|
||||
+config CMDLINE_DROP_DANGEROUS_ANDROID_OPTIONS
|
||||
+ bool "Drop certain dangerous options from cmdline"
|
||||
+ default n
|
||||
+ help
|
||||
+ Android bootloader passes some arguments in kernel command
|
||||
+ line, that make booting custom OSes harder:
|
||||
+
|
||||
+ * skip_initramfs
|
||||
+ * root=PARTUUID=...
|
||||
+ * init=/init
|
||||
+
|
||||
+ Those parameters override default boot partition to hardcoded,
|
||||
+ set init binary to /init, disable booting from initramfs.
|
||||
+
|
||||
+ If enabled, those parameters will be erased from bootloader's
|
||||
+ command line, and custom OS can boot the way it likes.
|
||||
+
|
||||
config EFI_STUB
|
||||
bool
|
||||
|
||||
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
|
||||
index ca175710c4c8..fd8257589648 100644
|
||||
--- a/drivers/of/fdt.c
|
||||
+++ b/drivers/of/fdt.c
|
||||
@@ -1012,6 +1012,20 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
|
||||
|
||||
pr_debug("Command line is: %s\n", (char*)data);
|
||||
|
||||
+#ifdef CONFIG_CMDLINE_DROP_DANGEROUS_ANDROID_OPTIONS
|
||||
+ pr_err("Replacing dangerous cmdline options...");
|
||||
+ cmdline = strstr((const char *)data, "skip_initramfs");
|
||||
+ if (cmdline)
|
||||
+ *cmdline = '_';
|
||||
+ cmdline = strstr((const char *)data, "root=");
|
||||
+ if (cmdline)
|
||||
+ *cmdline = '_';
|
||||
+ cmdline = strstr((const char *)data, "init=");
|
||||
+ if (cmdline)
|
||||
+ *cmdline = '_';
|
||||
+ pr_err("Command line now is: %s\n", (char*)data);
|
||||
+#endif
|
||||
+
|
||||
/* break now */
|
||||
return 1;
|
||||
}
|
||||
--
|
||||
2.24.1
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
Arm64 has generated headers that other arches don't, didn't investigate why this
|
||||
is able to compile in downstream (our upstream). Possibly due to out-of-tree build.
|
||||
Note the hacky relative include. May not work in more complicated setups.
|
||||
|
||||
diff --git a/scripts/selinux/genheaders/Makefile b/scripts/selinux/genheaders/Makefile
|
||||
index e8c533140..62475f060 100644
|
||||
--- a/scripts/selinux/genheaders/Makefile
|
||||
+++ b/scripts/selinux/genheaders/Makefile
|
||||
@@ -2,6 +2,8 @@
|
||||
hostprogs-y := genheaders
|
||||
HOST_EXTRACFLAGS += \
|
||||
-I$(srctree)/include/uapi -I$(srctree)/include \
|
||||
- -I$(srctree)/security/selinux/include
|
||||
+ -I$(srctree)/security/selinux/include \
|
||||
+ -I./arch/$(ARCH)/include/generated/uapi \
|
||||
+ -I$(srctree)/arch/$(ARCH)/include/uapi
|
||||
|
||||
always := $(hostprogs-y)
|
||||
diff --git a/scripts/selinux/mdp/Makefile b/scripts/selinux/mdp/Makefile
|
||||
index e9c92db7e..09e626fa4 100644
|
||||
--- a/scripts/selinux/mdp/Makefile
|
||||
+++ b/scripts/selinux/mdp/Makefile
|
||||
@@ -2,7 +2,9 @@
|
||||
hostprogs-y := mdp
|
||||
HOST_EXTRACFLAGS += \
|
||||
-I$(srctree)/include/uapi -I$(srctree)/include \
|
||||
- -I$(srctree)/security/selinux/include
|
||||
+ -I$(srctree)/security/selinux/include \
|
||||
+ -I./arch/$(ARCH)/include/generated/uapi \
|
||||
+ -I$(srctree)/arch/$(ARCH)/include/uapi
|
||||
|
||||
always := $(hostprogs-y)
|
||||
clean-files := policy.* file_contexts
|
|
@ -2,7 +2,7 @@
|
|||
# Kernel config based on: arch/arm64/configs/(CHANGEME!)
|
||||
|
||||
pkgname=linux-xiaomi-laurel_sprout
|
||||
pkgver=4.14.184
|
||||
pkgver=5.17.0
|
||||
pkgrel=0
|
||||
pkgdesc="Xiaomi Mi A3 kernel fork"
|
||||
arch="aarch64"
|
||||
|
@ -12,65 +12,57 @@ url="https://kernel.org"
|
|||
license="GPL-2.0-only"
|
||||
options="!strip !check !tracedeps pmb:cross-native"
|
||||
makedepends="
|
||||
android-mkdtimg
|
||||
bash
|
||||
bc
|
||||
bison
|
||||
clang
|
||||
devicepkg-dev
|
||||
dtc
|
||||
flex
|
||||
openssl-dev
|
||||
linux-headers
|
||||
perl
|
||||
"
|
||||
|
||||
# Source
|
||||
_repository="android_kernel_xiaomi_laurel_sprout"
|
||||
_commit="18cce7c37b08cf3b8cb013ac648f03a7361ac215"
|
||||
_repository="linux"
|
||||
_commit="3398a1d7daeca76a3adef6e64e8f0f516f95195e"
|
||||
_config="config-$_flavor.$arch"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://github.com/AOSPA/$_repository/archive/$_commit.tar.gz
|
||||
$pkgname-$_commit.tar.gz::https://gitlab.com/sm6125-mainline/$_repository/-/archive/$_commit.tar.gz
|
||||
$_config
|
||||
0001-always_boot_to_initramfs.patch
|
||||
0002-disable_skip_initramfs.patch
|
||||
0003-remove_bootloader_cmdline_opts.patch
|
||||
0004-selinux_include_generated_headers.patch
|
||||
"
|
||||
builddir="$srcdir/$_repository-$_commit"
|
||||
_outdir="out"
|
||||
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
REPLACE_GCCH=0
|
||||
. downstreamkernel_prepare
|
||||
cp "$srcdir/config-$_flavor.$arch" .config
|
||||
}
|
||||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
make O="$_outdir" ARCH="$_carch" CC="clang" HOSTCC="clang" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
|
||||
make ARCH="$_carch" CC="${CC:-gcc}" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor"
|
||||
}
|
||||
|
||||
package() {
|
||||
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
|
||||
mkdir -p "$pkgdir"/boot
|
||||
|
||||
dtbodir="$builddir/$_outdir/arch/arm64/boot/dts/qcom"
|
||||
mkdtimg create "$pkgdir/boot/dtbo.img" --page_size=4096 \
|
||||
"$dtbodir/laurel_sprout-qrd-overlay.dtbo"
|
||||
install -Dm644 "$builddir/arch/$_carch/boot/Image.gz" \
|
||||
"$pkgdir/boot/vmlinuz"
|
||||
|
||||
# Modules
|
||||
unset LDFLAGS
|
||||
make O="$_outdir" ARCH="$_carch" CC="clang" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" \
|
||||
INSTALL_MOD_PATH="$pkgdir" modules_install
|
||||
make modules_install dtbs_install \
|
||||
ARCH="$_carch" \
|
||||
INSTALL_PATH="$pkgdir"/boot/ \
|
||||
INSTALL_MOD_PATH="$pkgdir" \
|
||||
INSTALL_MOD_STRIP=1 \
|
||||
INSTALL_DTBS_PATH="$pkgdir"/usr/share/dtb
|
||||
rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source
|
||||
|
||||
install -D "$builddir"/include/config/kernel.release \
|
||||
"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
|
||||
}
|
||||
|
||||
|
||||
sha512sums="
|
||||
2cebedae30ffc2ff16b5f8d6b93f7edeb7d28e88cbecdf7835dcdd3ceaabc61a3b5aee3085fea385e4644aaadd371e0109356eb0a21135d97fcfe6bf6a4c8b04 linux-xiaomi-laurel_sprout-18cce7c37b08cf3b8cb013ac648f03a7361ac215.tar.gz
|
||||
99e17b15f9682a0a5ac2c52bfddf236a8c5db041c58308d95542e96e631840776bb2fd2b91f51cc2cf7e638461a68553fea3e6bc4a538bda86ccb2de030ede1f config-xiaomi-laurel_sprout.aarch64
|
||||
e2a7a404a7bd404dbda08663ca5f96c38e04e58bd781024c6904115a4775e089775a552583347ab8e2f745d5ab5653a63c08070b3b43b8b4a2f23696e747311e 0001-always_boot_to_initramfs.patch
|
||||
65048fb6474fd543b14bc99d9d95cfe5297da239af211d327a8509f7777d489bd01dd911364e0c62ec0e68f4c22ebb3b145eabfe01cad2abf57cf46896a1e58f 0002-disable_skip_initramfs.patch
|
||||
9ce867c4254b537ef5d2485780c26b72da8a3a8767ba71557f3b48d6c550e0e14c8c3e575b31bf65d2878f08a8a4926e48a1c2f1be534bf80a7a57f58313b0fd 0003-remove_bootloader_cmdline_opts.patch
|
||||
6ab9db01d35f7f5cc2c19ebe5f65a7dc479a1c68de587300cdde9a6c759d34610666c72f0f321cd450cf56c13df3b54a774e0f7ebdbf0f8608fbfd66b49d04e7 0004-selinux_include_generated_headers.patch
|
||||
a7f3278990e837143337e37f9d2fac1bb0fd6b859681de0e8226fae2addae2cfaa2d44d6bddf43004a887e189d22223a4debd2891cbf580d61b6b8fa184c5c2a linux-xiaomi-laurel_sprout-3398a1d7daeca76a3adef6e64e8f0f516f95195e.tar.gz
|
||||
695be42583078511a180cc2bc36f70a038ff1a3c5e81e084c70ee9341936159ee695884d3e43e5afd6be717ab35e3445ac577c04f4847670040d0c6ab28651fa config-xiaomi-laurel_sprout.aarch64
|
||||
"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc10-extern_YYLOC_global_declaration.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc7-give-up-on-ilog2-const-optimizations.patch
|
1
linux-xiaomi-laurel_sprout/gcc8-fix-put-user.patch
Symbolic link
1
linux-xiaomi-laurel_sprout/gcc8-fix-put-user.patch
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc8-fix-put-user.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/kernel-use-the-gnu89-standard-explicitly.patch
|
Loading…
Reference in a new issue