maurossi / linux

android-x86 kernels
Other
57 stars 28 forks source link

Issue with newer Intel BIOS #18

Closed Matt1700 closed 3 years ago

Matt1700 commented 3 years ago

I'm having a weird issue: I've built an android 8.1 r5 iso with kernel version 5.8_si_next because the old kernel currently in use by the official release is not compatible with the network card Intel AX201.

Installing via UEFI on the Intel NUC NUC8i3BEK worked without any problems. On the other hand, I've tried installing the same iso on the newer Intel NUC NUC10i3FNK (with a new BIOS) via UEFI and after selecting install on the grub there's a black screen and nothing happens.

I've tried updating the BIOS of the newer NUC but it didn't work. I also tried enabling the legacy boot and the installation process finishes but when I reboot the BIOS doesn't find any bootable devices.

Secure boot was off the whole time.

Installing the official 8.1 r5 with the old kernel on the new Intel NUC works if I enable both UEFI and Legacy boot. I don't understand why updating the kernel to 5.8 should break everything.

Is kernel 5.8 compatible with the new Intel BIOS (version FNCML357.0046)? I also tried with version 5.3 but that doesn't work either.

I understand this is probably an issue related to compatibility with the device but is anyone else having issues with the new Intel NUCs 10th gen. or with newer devices in general?

Thanks!

mirh commented 3 years ago

on the newer Intel NUC NUC10i3FNK (with a new BIOS)

And also a newer cpu? Not sure why you think it must be the bios specifically You are probably hitting one of the many problems with the gpu driver revamp that happened in 5.3+

Matt1700 commented 3 years ago

Yeah, could also be a CPU issue... I just assumed that the new 10th gen CPUs would work since there haven't been lots of changes between the 8th and 10th gen CPUs. I didn't know about the GPU driver revamp, maybe I'll try building with 5.2 since it should be compatible with the network card.

Matt1700 commented 3 years ago

5.2 didn't work, same issues as 5.8

maurossi commented 3 years ago

Hi Matt1700, I have no issue with EFI boot with my experimental kernels on a laptop I would recommend you use kernel-5.4 branch in official android-x86 sources Mauro

Matt1700 commented 3 years ago

Ciao Mauro,

I'm having issues compiling with the official kernel-5.4 branch.

I fetched the sources from https://sourceforge.net/p/android-x86/kernel/ci/227c2c1aa5184f2cd1872d079ab9d96790bcaf69/

I'm on commit 227c2c1 which is the current HEAD of branch kernel-5.4.

I deleted out/target/product/x86_64/obj/kernel/.config to rebuild the kernel and ran the following commands:

. build/envsetup.sh
lunch android_x86_64-userdebug
m -j16 iso_img

And got the following error:

[ 14% 2/14] build /home/test/android-x86/out/target/product/x86_64/obj/kernel/.config
FAILED: /home/test/android-x86/out/target/product/x86_64/obj/kernel/.config
/bin/bash -c "(mkdir -p /home/test/android-x86/out/target/product/x86_64/obj/kernel && cat kernel/arch/x86/configs/android-x86_64_defconfig device/generic/common/selinux_diffconfig > /home/test/android-x86/out/target/product/x86_64/obj/kernel/.config ) && (ln -sf ../../../../../../external /home/test/android-x86/out/target/product/x86_64/obj/kernel ) && (make -j8 -j\$(nproc) -l\$((\$(nproc)+2)) -C kernel O=/home/test/android-x86/out/target/product/x86_64/obj/kernel ARCH=x86_64 CROSS_COMPILE=\" /home/test/android-x86/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/bin/x86_64-linux-\"  YACC=/home/test/android-x86/prebuilts/misc/linux-x86/bison/bison LEX=/home/test/android-x86/prebuilts/misc/linux-x86/flex/flex-2.5.39  olddefconfig )"
make: Entering directory '/home/test/android-x86/kernel'
make[1]: Entering directory '/home/test/android-x86/out/target/product/x86_64/obj/kernel'
  GEN     Makefile
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf.o: In function `conf_askvalue':
conf.c:(.text+0x287): undefined reference to `sym_is_changeable'
scripts/kconfig/conf.o: In function `conf':
conf.c:(.text+0x8dc): undefined reference to `sym_is_changeable'
scripts/kconfig/conf.o: In function `check_conf':
conf.c:(.text+0xd84): undefined reference to `sym_is_changeable'
collect2: error: ld returned 1 exit status
scripts/Makefile.host:116: recipe for target 'scripts/kconfig/conf' failed
make[2]: *** [scripts/kconfig/conf] Error 1
/home/test/android-x86/kernel/Makefile:571: recipe for target 'olddefconfig' failed
make[1]: *** [olddefconfig] Error 2
make[1]: Leaving directory '/home/test/android-x86/out/target/product/x86_64/obj/kernel'
Makefile:179: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
make: Leaving directory '/home/test/android-x86/kernel'
ninja: build stopped: subcommand failed.
07:38:19 ninja failed with: exit status 1

Am I doing something wrong and should I ask here about this problem?

hmtheboy154 commented 3 years ago

delete the whole kernel and kmodule folder in obj, not just the config

Matt1700 commented 3 years ago

Thanks, @hmtheboy154. I built with the official 5.4 kernel and it still has the same issues.

Matt1700 commented 3 years ago

Just to clarify here's the current situation: I've built Android 8.1 r5 with kernel 5.4 from the official repo.

I've tried it on the old Intel NUC NUC8i3BEK and everything works fine. I've tried it on the new Intel NUC NUC10i3FNK and the installation went fine but when I try to start Android the graphical interface doesn't start and I'm stuck on the Android terminal.

Starting with xforcevesa or nomodeset or enabling legacy boot from the BIOS doesn't change anything. I'm starting to think that it might be a problem related to the new Intel HD graphics in the 10th gen i3.

Updating or downgrading the BIOS doesn't change anything either.

Honestly, I have no idea what to try next.

hmtheboy154 commented 3 years ago

10th Gen might need to update Mesa3d library in order to use 3D accelerated graphic, you might wanna go to Mauro's mesa repo and then choose some version like 19.3+ and replace your current external/mesa folder on Android source

For the "official source" thingy, I still not understand your point, you mean the source here or the one from kernel.org ?

Matt1700 commented 3 years ago

For the "official source" thingy, I still not understand your point, you mean the source here or the one from kernel.org ?

I mean the one from https://sourceforge.net/projects/android-x86/ which is the repo they point to on the android-x86.org website.

I have been able to start Android x86 with the graphical interface on the new 10th gen intel nuc by enabling both nomodeset and legacy boot. Apparently, I forgot to try that combination before. That said the experience is laggier than on the 8th gen nuc and I have to manually force the resolution to 1080p via set gfxpayload=1920x1080.

Thank you for the Mesa3d tip, I'll try that.

hmtheboy154 commented 3 years ago

For the "official source" thingy, I still not understand your point, you mean the source here or the one from kernel.org ?

I mean the one from https://sourceforge.net/projects/android-x86/ which is the repo they point to on the android-x86.org website.

I never get this one on my build either. If you want to compile 5.4 I'd recommend you to use this branch https://github.com/maurossi/linux/tree/kernel-5.4.y and then upstream it by yourself to latest version.

Matt1700 commented 3 years ago

Solved the issue by updating mesa3d!

I'm using:

I'm no longer getting a black screen if I don't use nomodeset and the internal network card works perfectly.

I also had an issue with an external touchscreen monitor not working. Solved it by setting CONFIG_HID_MULTITOUCH=y in kernel/arch/x86/configs/android-x86_64_defconfig and building again.

If anyone else is having issues with the new 10th gen processors I highly recommend building with these versions.

Thanks a lot!