Subject: Re: [bug#51772] Binder kernel module missing

From: phodina <[email-masked]>
Date: Fri, 12 Nov 2021 05:44:20 +0000

Hi,

> > Unfortunately, as stated above the binder interface is missing. I
> >
> > looked for the kernel module but couldn't find it.
>
> How did you search? find(1)? Are you running the customised kernel?
>
> > As the
> >
> > /proc/config.gz is not present I can't verify it's enabled.
>
> You can. The Linux kernel configuration is at
>
> /run/booted-system/kernel/.config, not /proc/config.gz. What does it
>
> report for 'grep ANDROID'?

So I use the following command to reconfigure the system:

$ sudo -E ./pre-inst-env guix system build/laptop-rocinante.scm
...
/gnu/store/dqp07qd42wicv9q80wplr3hd20ha5a3r-system
$ grep ANDROID /gnu/store/dqp07qd42wicv9q80wplr3hd20ha5a3r-system/kernel/.config
CONFIG_ANDROID=y
# CONFIG_ANDROID_BINDER_IPC is not set

Also in the GRUB menu I can see the kernel with the Waydroid suffix.

In the config I specify the kernel with the following s-exp:

(kernel linux-libre-with-waydroid)

Yes I was looking for the binder module "*binder*.ko" with find.
>
> > It could be do the the extended match-lambda expression
>
> I can't parse this, sorry.
>

Sorry for making it not clear.

The there is one option in the kernel that needs to be enabled which is of type string:

CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"

However, current implementation of config->string does not handle strings and numbers as you can see below.

gnu/packages/linux.scm (v1.3.0-8241-g5592058e9d)
   725	(define (config->string options)
   726	  (string-join (map (match-lambda
   727	                      ((option . 'm)
   728	                       (string-append option "=m"))
   729	                      ((option . #t)
   730	                       (string-append option "=y"))
   731	                      ((option . #f)
   732	                       (string-append option "=n")))
   733	                    options)
   734	               "\n"))

Therefore I made the first patch to add the support.

Nevertheless, even if I complile the linux kernel without this patch and without the CONFIG_ANDROID_BINDER_DEVICES (due to string value) the binder is not present.