PINE64
Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=111)
+--- Forum: Linux on Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=114)
+--- Thread: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported (/showthread.php?tid=10365)



Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - Tsvi Bar-David - 06-20-2020

Trying to compile and install Anbox on Pinebook Pro (ARM) running Manjaro Arch Linux,

Kernel Version:  5.7.0-1-MANJARO-ARM

Upon attempting to compile the kernel modules ashmem and binder, get the error message:


kallsyms_lookup_name undefined

This is a function in a file:  kallsyms.c , which ships with manjaro linux on the Pinebook pro, according to

https://gitlab.manjaro.org/tsys/linux-pinebook-pro/-/blob/master/kernel/kallsyms.c

Possible reason for the error is that the function kallsyms_lookup_name() is now unexported, according to:

https://gitlab.manjaro.org/tsys/linux-pinebook-pro/-/commit/0bd476e6c67190b5eb7b6e105c8db8ff61103281

Any ideas how to fix this or work around this?  Were it not for this problem, I feel that I am pretty close to getting Anbox compiled with dependencies and up and running on the Pinebook Pro.  I would love to be able to do that.  It would enable me to run Zoom on my laptop, which I do a lot of these days.

Thanks,
Tsvi


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - Syonyk - 06-20-2020

Re-export them, rebuild the kernel from your modified sources? The diffs are easy enough to reverse.

Or install an older kernel.

The kernel developers are right about it, for what it's worth.


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - Tsvi Bar-David - 06-21-2020

Syonik, how do get an older kernel to install?
How do I install this older kernel?
Thanks!


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - PakoSt - 06-25-2020

@Tsvi Bar-David , have you tried to clone the Pinebook Pro kernel package from Manjaro's Gitlab? From there on you just need to checkout an older commit and fire up makepkg to generate the older kernel as a package to install.


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - tophneal - 06-25-2020

This has been brought up in the Anbox github issues, and there is a solution that isn't reverting your kernel version. ashmem and binder are now part of mainline kernel, and can be enabled to allow for installation: https://github.com/anbox/anbox-modules/issues/49#issuecomment-643728906 Just recompile your kernel and enable the flags. Someone was kind enough to update the Arch wiki page with the now necessary steps: https://wiki.archlinux.org/index.php/Anbox

Apparently, you'll want to remove any previous installation attempts first.


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - Tsvi Bar-David - 06-29-2020

Tophneal, thanks for you help!
I took your advice, enabled the anbox flags, and recompiled the arch linux kernel, and it looked like it got pretty far along, until it aborted with the following error message about the (mis)location of objtool. Here is the last couple of lines emitted from makepkg:

INSTALL sound/usb/snd-usb-audio.ko
INSTALL sound/usb/snd-usbmidi-lib.ko
INSTALL sound/xen/snd_xen_front.ko
INSTALL virt/lib/irqbypass.ko
DEPMOD 5.7.6-arch1-1-anbox
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Removing static library files...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "linux-anbox"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_linux-anbox-headers()... # i named my modified kernel: linux-anbox
Installing build files...
install: cannot stat 'tools/objtool/objtool': No such file or directory
==> ERROR: A failure occurred in package_linux-anbox-headers().
Aborting...

---
The line that fails in PKGBUILD seems to be 108:

# add objtool for external module building and enabled VALIDATION_STACK option
108 install -Dt "$builddir/tools/objtool" tools/objtool/objtool

It feels like I am so close ...
Thoughts?
Thanks,
Tsvi


RE: Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported - tophneal - 06-30-2020

(06-29-2020, 06:20 PM)Tsvi Bar-David Wrote: Tophneal, thanks for you help!
I took your advice, enabled the anbox flags, and recompiled the arch linux kernel, and it looked like it got pretty far along, until it aborted with the following error message about the (mis)location of objtool.  Here is the last couple of lines emitted from makepkg:

INSTALL sound/usb/snd-usb-audio.ko
  INSTALL sound/usb/snd-usbmidi-lib.ko
  INSTALL sound/xen/snd_xen_front.ko
  INSTALL virt/lib/irqbypass.ko
  DEPMOD  5.7.6-arch1-1-anbox
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "linux-anbox"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Starting package_linux-anbox-headers()...  # i named my modified kernel:  linux-anbox
Installing build files...
install: cannot stat 'tools/objtool/objtool': No such file or directory
==> ERROR: A failure occurred in package_linux-anbox-headers().
    Aborting...

---
The line that fails in PKGBUILD seems to be 108:

# add objtool for external module building and enabled VALIDATION_STACK option
108  install -Dt "$builddir/tools/objtool" tools/objtool/objtool

It feels like I am so close ...
Thoughts?
Thanks,
Tsvi


Have you tried looking yet to see if you can find objtool on your system and correcting the PKGBUILD? Likely you just need to make a pull of the kernel repo and try your changes again.