remote-android / redroid-modules

redroid kernel modules (binderfs, ashmem etc.)
GNU General Public License v2.0
82 stars 56 forks source link

error when buil in DKMS almalinux #7

Closed diggleweb closed 2 years ago

diggleweb commented 2 years ago

sudo yum install -y dkms git clone https://github.com/remote-android/redroid-modules.git

cp redroid.conf /etc/modules-load.d/ # auto load kernel modules after system boot
cp 99-redroid.rules /lib/udev/rules.d/ # change device node permissions

# prepare kernel modules source
cp -rT ashmem /usr/src/redroid-ashmem-1
cp -rT binder /usr/src/redroid-binder-1

sudo dkms install redroid-ashmem/1 Module redroid-ashmem/1 already installed on kernel 4.18.0-372.9.1.el8.x86_64 (x86_64). <- this ok!

dkms install redroid-binder/1

Building module: cleaning build area...(bad exit status: 2) make -j4 KERNELRELEASE=4.18.0-372.9.1.el8.x86_64 all KERNEL_SRC=/lib/modules/4.18.0-372.9.1.el8.x86_64/build....(bad exit status: 2) Error! Bad return status for module build on kernel: 4.18.0-372.9.1.el8.x86_64 (x86_64) Consult /var/lib/dkms/redroid-binder/1/build/make.log for more information.

DKMS make.log for redroid-binder-1 for kernel 4.18.0-372.9.1.el8.x86_64 (x86_64)
seg mai 30 18:26:15 -03 2022
make -C /lib/modules/`uname -r`/build M=$PWD
make[1]: Entering directory '/usr/src/kernels/4.18.0-372.9.1.el8.x86_64'
  CC [M]  /var/lib/dkms/redroid-binder/1/build/binderfs.o
  CC [M]  /var/lib/dkms/redroid-binder/1/build/binder.o
  CC [M]  /var/lib/dkms/redroid-binder/1/build/binder_alloc.o
  CC [M]  /var/lib/dkms/redroid-binder/1/build/idr.o
In file included from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
/var/lib/dkms/redroid-binder/1/build/linux/idr.h:20:19: error: redefinition of ‘ida_alloc_max’
 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp)
                   ^~~~~~~~~~~~~
In file included from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1,
                 from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
./include/linux/idr.h:307:19: note: previous definition of ‘ida_alloc_max’ was here
 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp)
                   ^~~~~~~~~~~~~
In file included from ./include/linux/radix-tree.h:30,
                 from ./include/linux/idr.h:15,
                 from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1,
                 from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
/var/lib/dkms/redroid-binder/1/build/idr.c: In function ‘ida_alloc_range’:
/var/lib/dkms/redroid-binder/1/build/idr.c:33:22: error: ‘struct ida’ has no member named ‘ida_rt’
  xa_lock_irqsave(&ida->ida_rt, flags);
                      ^~
./include/linux/spinlock.h:243:34: note: in definition of macro ‘raw_spin_lock_irqsave’
   flags = _raw_spin_lock_irqsave(lock); \
                                  ^~~~
./include/linux/xarray.h:572:5: note: in expansion of macro ‘spin_lock_irqsave’
     spin_lock_irqsave(&(xa)->xa_lock, flags)
     ^~~~~~~~~~~~~~~~~
/var/lib/dkms/redroid-binder/1/build/idr.c:33:2: note: in expansion of macro ‘xa_lock_irqsave’
  xa_lock_irqsave(&ida->ida_rt, flags);
  ^~~~~~~~~~~~~~~
/var/lib/dkms/redroid-binder/1/build/idr.c:34:2: error: implicit declaration of function ‘ida_get_new_above’; did you mean ‘idr_get_next_ul’? [-Werror=implicit-function-declaration]
  ida_get_new_above(ida, min, &id);
  ^~~~~~~~~~~~~~~~~
  idr_get_next_ul
/var/lib/dkms/redroid-binder/1/build/idr.c:36:3: error: implicit declaration of function ‘ida_remove’; did you mean ‘idr_remove’? [-Werror=implicit-function-declaration]
   ida_remove(ida, id);
   ^~~~~~~~~~
   idr_remove
In file included from ./include/linux/radix-tree.h:33,
                 from ./include/linux/idr.h:15,
                 from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1,
                 from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
/var/lib/dkms/redroid-binder/1/build/idr.c:39:27: error: ‘struct ida’ has no member named ‘ida_rt’
  xa_unlock_irqrestore(&ida->ida_rt, flags);
                           ^~
./include/linux/xarray.h:574:30: note: in definition of macro ‘xa_unlock_irqrestore’
     spin_unlock_irqrestore(&(xa)->xa_lock, flags)
                              ^~
/var/lib/dkms/redroid-binder/1/build/idr.c:42:8: error: implicit declaration of function ‘ida_pre_get’; did you mean ‘ida_free’? [-Werror=implicit-function-declaration]
   if (!ida_pre_get(ida, gfp))
        ^~~~~~~~~~~
        ida_free
In file included from ./include/linux/radix-tree.h:30,
                 from ./include/linux/idr.h:15,
                 from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1,
                 from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
/var/lib/dkms/redroid-binder/1/build/idr.c: In function ‘ida_free’:
/var/lib/dkms/redroid-binder/1/build/idr.c:62:22: error: ‘struct ida’ has no member named ‘ida_rt’
  xa_lock_irqsave(&ida->ida_rt, flags);
                      ^~
./include/linux/spinlock.h:243:34: note: in definition of macro ‘raw_spin_lock_irqsave’
   flags = _raw_spin_lock_irqsave(lock); \
                                  ^~~~
./include/linux/xarray.h:572:5: note: in expansion of macro ‘spin_lock_irqsave’
     spin_lock_irqsave(&(xa)->xa_lock, flags)
     ^~~~~~~~~~~~~~~~~
/var/lib/dkms/redroid-binder/1/build/idr.c:62:2: note: in expansion of macro ‘xa_lock_irqsave’
  xa_lock_irqsave(&ida->ida_rt, flags);
  ^~~~~~~~~~~~~~~
In file included from ./include/linux/radix-tree.h:33,
                 from ./include/linux/idr.h:15,
                 from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1,
                 from /var/lib/dkms/redroid-binder/1/build/idr.c:3:
/var/lib/dkms/redroid-binder/1/build/idr.c:64:27: error: ‘struct ida’ has no member named ‘ida_rt’
  xa_unlock_irqrestore(&ida->ida_rt, flags);
                           ^~
./include/linux/xarray.h:574:30: note: in definition of macro ‘xa_unlock_irqrestore’
     spin_unlock_irqrestore(&(xa)->xa_lock, flags)
                              ^~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:315: /var/lib/dkms/redroid-binder/1/build/idr.o] Error 1
make[2]: ** Esperando que outros processos terminem.
In file included from /var/lib/dkms/redroid-binder/1/build/binderfs.c:8:
/var/lib/dkms/redroid-binder/1/build/linux/idr.h:20:19: error: redefinition of ‘ida_alloc_max’
 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp)
                   ^~~~~~~~~~~~~
In file included from ./include/linux/fsnotify_backend.h:13,
                 from ./include/linux/fsnotify.h:15,
                 from /var/lib/dkms/redroid-binder/1/build/binderfs.c:6:
./include/linux/idr.h:307:19: note: previous definition of ‘ida_alloc_max’ was here
 static inline int ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp)
                   ^~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:315: /var/lib/dkms/redroid-binder/1/build/binderfs.o] Error 1
make[1]: *** [Makefile:1577: _module_/var/lib/dkms/redroid-binder/1/build] Error 2
make[1]: Leaving directory '/usr/src/kernels/4.18.0-372.9.1.el8.x86_64'
make: *** [Makefile:8: all] Error 2

how to solve this?

zhouziyang commented 2 years ago

These modules are backport from more recent Linux kernel, and the API used maybe changed / missing in your kernel. Suggest build kernel directly for CentOS related Distribution.

Sent from my iPhone

On May 31, 2022, at 5:34 AM, Alex Yucra @.***> wrote:



sudo yum install -y dkms git clone https://github.com/remote-android/redroid-modules.git

cp redroid.conf /etc/modules-load.d/ # auto load kernel modules after system boot cp 99-redroid.rules /lib/udev/rules.d/ # change device node permissions

prepare kernel modules source

cp -rT ashmem /usr/src/redroid-ashmem-1 cp -rT binder /usr/src/redroid-binder-1

sudo dkms install redroid-ashmem/1 Module redroid-ashmem/1 already installed on kernel 4.18.0-372.9.1.el8.x86_64 (x86_64). <- this ok!

dkms install redroid-binder/1

Building module: cleaning build area...(bad exit status: 2) make -j4 KERNELRELEASE=4.18.0-372.9.1.el8.x86_64 all KERNEL_SRC=/lib/modules/4.18.0-372.9.1.el8.x86_64/build....(bad exit status: 2) Error! Bad return status for module build on kernel: 4.18.0-372.9.1.el8.x86_64 (x86_64) Consult /var/lib/dkms/redroid-binder/1/build/make.log for more information.

DKMS make.log for redroid-binder-1 for kernel 4.18.0-372.9.1.el8.x86_64 (x86_64) seg mai 30 18:26:15 -03 2022 make -C /lib/modules/uname -r/build M=$PWD make[1]: Entering directory '/usr/src/kernels/4.18.0-372.9.1.el8.x86_64' CC [M] /var/lib/dkms/redroid-binder/1/build/binderfs.o CC [M] /var/lib/dkms/redroid-binder/1/build/binder.o CC [M] /var/lib/dkms/redroid-binder/1/build/binder_alloc.o CC [M] /var/lib/dkms/redroid-binder/1/build/idr.o In file included from /var/lib/dkms/redroid-binder/1/build/idr.c:3: /var/lib/dkms/redroid-binder/1/build/linux/idr.h:20:19: error: redefinition of ‘ida_alloc_max’ static inline int ida_alloc_max(struct ida ida, unsigned int max, gfp_t gfp) ^~~~~ In file included from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1, from /var/lib/dkms/redroid-binder/1/build/idr.c:3: ./include/linux/idr.h:307:19: note: previous definition of ‘ida_alloc_max’ was here static inline int ida_alloc_max(struct ida ida, unsigned int max, gfp_t gfp) ^~~~~ In file included from ./include/linux/radix-tree.h:30, from ./include/linux/idr.h:15, from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1, from /var/lib/dkms/redroid-binder/1/build/idr.c:3: /var/lib/dkms/redroid-binder/1/build/idr.c: In function ‘ida_alloc_range’: /var/lib/dkms/redroid-binder/1/build/idr.c:33:22: error: ‘struct ida’ has no member named ‘ida_rt’ xa_lock_irqsave(&ida->ida_rt, flags); ^~ ./include/linux/spinlock.h:243:34: note: in definition of macro ‘raw_spin_lock_irqsave’ flags = _raw_spin_lock_irqsave(lock); \ ^~~~ ./include/linux/xarray.h:572:5: note: in expansion of macro ‘spin_lock_irqsave’ spin_lock_irqsave(&(xa)->xa_lock, flags) ^~~~~ /var/lib/dkms/redroid-binder/1/build/idr.c:33:2: note: in expansion of macro ‘xa_lock_irqsave’ xa_lock_irqsave(&ida->ida_rt, flags); ^~~~~~~ /var/lib/dkms/redroid-binder/1/build/idr.c:34:2: error: implicit declaration of function ‘ida_get_new_above’; did you mean ‘idr_get_next_ul’? [-Werror=implicit-function-declaration] ida_get_new_above(ida, min, &id); ^~~~~ idr_get_next_ul /var/lib/dkms/redroid-binder/1/build/idr.c:36:3: error: implicit declaration of function ‘ida_remove’; did you mean ‘idr_remove’? [-Werror=implicit-function-declaration] ida_remove(ida, id); ^~~~~~ idr_remove In file included from ./include/linux/radix-tree.h:33, from ./include/linux/idr.h:15, from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1, from /var/lib/dkms/redroid-binder/1/build/idr.c:3: /var/lib/dkms/redroid-binder/1/build/idr.c:39:27: error: ‘struct ida’ has no member named ‘ida_rt’ xa_unlock_irqrestore(&ida->ida_rt, flags); ^~ ./include/linux/xarray.h:574:30: note: in definition of macro ‘xa_unlock_irqrestore’ spin_unlock_irqrestore(&(xa)->xa_lock, flags) ^~ /var/lib/dkms/redroid-binder/1/build/idr.c:42:8: error: implicit declaration of function ‘ida_pre_get’; did you mean ‘ida_free’? [-Werror=implicit-function-declaration] if (!ida_pre_get(ida, gfp)) ^~~ ida_free In file included from ./include/linux/radix-tree.h:30, from ./include/linux/idr.h:15, from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1, from /var/lib/dkms/redroid-binder/1/build/idr.c:3: /var/lib/dkms/redroid-binder/1/build/idr.c: In function ‘ida_free’: /var/lib/dkms/redroid-binder/1/build/idr.c:62:22: error: ‘struct ida’ has no member named ‘ida_rt’ xa_lock_irqsave(&ida->ida_rt, flags); ^~ ./include/linux/spinlock.h:243:34: note: in definition of macro ‘raw_spin_lock_irqsave’ flags = _raw_spin_lock_irqsave(lock); \ ^~~~ ./include/linux/xarray.h:572:5: note: in expansion of macro ‘spin_lock_irqsave’ spin_lock_irqsave(&(xa)->xa_lock, flags) ^~~~~ /var/lib/dkms/redroid-binder/1/build/idr.c:62:2: note: in expansion of macro ‘xa_lock_irqsave’ xa_lock_irqsave(&ida->ida_rt, flags); ^~~~~~~ In file included from ./include/linux/radix-tree.h:33, from ./include/linux/idr.h:15, from /var/lib/dkms/redroid-binder/1/build/linux/idr.h:1, from /var/lib/dkms/redroid-binder/1/build/idr.c:3: /var/lib/dkms/redroid-binder/1/build/idr.c:64:27: error: ‘struct ida’ has no member named ‘ida_rt’ xa_unlock_irqrestore(&ida->ida_rt, flags); ^~ ./include/linux/xarray.h:574:30: note: in definition of macro ‘xa_unlock_irqrestore’ spin_unlock_irqrestore(&(xa)->xa_lock, flags) ^~ cc1: some warnings being treated as errors make[2]: * [scripts/Makefile.build:315: /var/lib/dkms/redroid-binder/1/build/idr.o] Error 1 make[2]: * Esperando que outros processos terminem. In file included from /var/lib/dkms/redroid-binder/1/build/binderfs.c:8: /var/lib/dkms/redroid-binder/1/build/linux/idr.h:20:19: error: redefinition of ‘ida_alloc_max’ static inline int ida_alloc_max(struct ida ida, unsigned int max, gfp_t gfp) ^~~~~ In file included from ./include/linux/fsnotify_backend.h:13, from ./include/linux/fsnotify.h:15, from /var/lib/dkms/redroid-binder/1/build/binderfs.c:6: ./include/linux/idr.h:307:19: note: previous definition of ‘ida_alloc_max’ was here static inline int ida_alloc_max(struct ida ida, unsigned int max, gfp_t gfp) ^~~~~ make[2]: [scripts/Makefile.build:315: /var/lib/dkms/redroid-binder/1/build/binderfs.o] Error 1 make[1]: [Makefile:1577: module/var/lib/dkms/redroid-binder/1/build] Error 2 make[1]: Leaving directory '/usr/src/kernels/4.18.0-372.9.1.el8.x86_64' make: [Makefile:8: all] Error 2

how to solve this?

— Reply to this email directly, view it on GitHubhttps://github.com/remote-android/redroid-modules/issues/7, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAP5VMWDGOJXKVIXNTSQECTVMUX5ZANCNFSM5XLT2SYA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

diggleweb commented 2 years ago

in this link I got the drivers for the kernel modules, there is a driver for each kernel version. driver for binder I needed to update several lines of code from binder.c Now the redroid is running, thank's Captura de Tela 2022-06-01 às 16 26 35

lwy980328 commented 6 months ago

hi, i met the same problem. Could you please share the updated binder.c ? I tried to rewrite it but it didnt work.