anbox / anbox-modules

Anbox kernel modules
326 stars 224 forks source link

Solution for building binder and ashmem modules on kernel version above 5.7 #75

Open SoulInfernoDE opened 3 years ago

SoulInfernoDE commented 3 years ago

Hello, here are the log:

ASHMEM

DKMS make.log for anbox-ashmem-1 for kernel 5.11.0-051100-generic (x86_64) Sa 27. Feb 08:00:47 CET 2021 make -C /lib/modules/5.11.0-051100-generic/build V=0 M=$PWD make[1]: Verzeichnis „/usr/src/linux-headers-5.11.0-051100-generic“ wird betreten CC [M] /var/lib/dkms/anbox-ashmem/1/build/deps.o CC [M] /var/lib/dkms/anbox-ashmem/1/build/ashmem.o LD [M] /var/lib/dkms/anbox-ashmem/1/build/ashmem_linux.o MODPOST /var/lib/dkms/anbox-ashmem/1/build/Module.symvers ERROR: modpost: "kallsyms_lookup_name" [/var/lib/dkms/anbox-ashmem/1/build/ashmem_linux.ko] undefined! make[2]: *** [scripts/Makefile.modpost:111: /var/lib/dkms/anbox-ashmem/1/build/Module.symvers] Fehler 1 make[2]: *** Datei „/var/lib/dkms/anbox-ashmem/1/build/Module.symvers“ wird gelöscht make[1]: *** [Makefile:1710: modules] Fehler 2 make[1]: Verzeichnis „/usr/src/linux-headers-5.11.0-051100-generic“ wird verlassen make: *** [Makefile:12: all] Fehler 2

BINDER

DKMS make.log for anbox-binder-1 for kernel 5.11.0-051100-generic (x86_64) Sa 27. Feb 08:00:50 CET 2021 make -C /lib/modules/5.11.0-051100-generic/build V=0 M=$PWD make[1]: Verzeichnis „/usr/src/linux-headers-5.11.0-051100-generic“ wird betreten CC [M] /var/lib/dkms/anbox-binder/1/build/deps.o CC [M] /var/lib/dkms/anbox-binder/1/build/binder.o /var/lib/dkms/anbox-binder/1/build/binder.c: In function ‘task_get_unused_fd_flags’: /var/lib/dkms/anbox-binder/1/build/binder.c:444:9: error: implicit declaration of function ‘__alloc_fd’ [-Werror=implicit-function-declaration] 444 | return __alloc_fd(files, 0, rlim_cur, flags); | ^~~~~~~~~~ /var/lib/dkms/anbox-binder/1/build/binder.c: In function ‘task_fd_install’: /var/lib/dkms/anbox-binder/1/build/binder.c:454:3: error: implicit declaration of function ‘__fd_install’; did you mean ‘fd_install’? [-Werror=implicit-function-declaration] 454 | __fd_install(proc->files, fd, file); | ^~~~~~~~~~~~ | fd_install /var/lib/dkms/anbox-binder/1/build/binder.c: In function ‘task_close_fd’: /var/lib/dkms/anbox-binder/1/build/binder.c:467:11: error: implicit declaration of function ‘__close_fd’; did you mean ‘close_fd’? [-Werror=implicit-function-declaration] 467 | retval = __close_fd(proc->files, fd); | ^~~~~~~~~~ | close_fd /var/lib/dkms/anbox-binder/1/build/binder.c: In function ‘binder_mmap’: /var/lib/dkms/anbox-binder/1/build/binder.c:3498:16: error: implicit declaration of function ‘get_files_struct’; did you mean ‘put_files_struct’? [-Werror=implicit-function-declaration] 3498 | proc->files = get_files_struct(current); | ^~~~~~~~~~~~~~~~ | put_files_struct cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:279: /var/lib/dkms/anbox-binder/1/build/binder.o] Fehler 1 make[1]: *** [Makefile:1806: /var/lib/dkms/anbox-binder/1/build] Fehler 2 make[1]: Verzeichnis „/usr/src/linux-headers-5.11.0-051100-generic“ wird verlassen make: *** [Makefile:8: all] Fehler 2

Froggio5543 commented 1 year ago

ok so it is there the question now becomes where. image

Froggio5543 commented 1 year ago

If it helps earlier I managed to run these two commands successfully and downloaded the latest version from the pre-built ones you had in the google drive folder.

[28.03.23] ### For the lazy ones a modern one liner for copy and paste to your terminal for the first use:

rm cfs_noguimerge.sh*; wget https://raw.githubusercontent.com/SoulInfernoDE/compile-kernel-from-source/v6.x/nogui/cfs_noguimerge.sh && chmod +x cfs_noguimerge.sh && ./cfs_noguimerge.sh

.

### For the second use you need to delete all files generated by the script / tool to work correctly again:

rm cfs_noguimerge.sh*; sudo rm -f ~/Downloads/linux-*.deb ~/Downloads/linux-*.buildinfo ~/Downloads/linux-*.changes ~/Downloads/ashmemk6.tar.xz*; sudo rm -R -f ~/Downloads/kernel/ ~/Downloads/anboxashmem/; wget https://raw.githubusercontent.com/SoulInfernoDE/compile-kernel-from-source/v6.x/nogui/cfs_noguimerge.sh && chmod +x cfs_noguimerge.sh && ./cfs_noguimerge.sh

SoulInfernoDE commented 1 year ago

alright . It seems binder is now loaded, can you try to run waydroid again?

Froggio5543 commented 1 year ago

still gives me the same thing. I think waydroid is looking for the wrong binder version although waydroid is upgraded to the newest version. image

SoulInfernoDE commented 1 year ago

it seems it only searches binder at that specific directory. But your config file for your kernel seems also be missing somehow. I need to sleep now but could you also try this: sudo modprobe configs && zcat /proc/config.gz > /boot/config-$(uname -r) && cat /boot/config-$(uname -r) | grep BINDER

Froggio5543 commented 1 year ago

unfortunately it gave me this but if you need to sleep then go ahead. image

SoulInfernoDE commented 1 year ago

v5.15 kernel is a bit old. Maybe a newer kernel like 5.19 or higher works?

I recommended to try a newer kernel version from kernel.org to see if that fixes the path problem.

The script from my repo can help you with this if you are new to compile a kernel from source. But if you are on an unofficial kernel can you boot to your official kernel and then start the build process so that you get a config file from your running kernel (its not necesarly needed though but it includes configurations to your kernel on the system that you are running)