Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AOSC-Dev/la_ow_syscall
Linux kernel module for compatibility with LoongArch's old-world ABI
https://github.com/AOSC-Dev/la_ow_syscall
Last synced: 11 days ago
JSON representation
Linux kernel module for compatibility with LoongArch's old-world ABI
- Host: GitHub
- URL: https://github.com/AOSC-Dev/la_ow_syscall
- Owner: AOSC-Dev
- License: gpl-2.0
- Created: 2023-12-11T13:45:32.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2024-08-20T12:37:36.000Z (3 months ago)
- Last Synced: 2024-08-21T07:59:52.507Z (3 months ago)
- Language: C
- Homepage:
- Size: 50.8 KB
- Stars: 11
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
la\_ow\_syscall
====This kernel modules provides compatibility with LoongArch's old-world ABI,
making it possible to run old-world applications (such as Kingsoft's WPS Office
and Tencent QQ) transparently on new-world (ABI 2.0) kernels and userspaces.Requirements
----Linux Kernel >= 6.1.0 for `loongarch64` with the following option(s) set:
- `CONFIG_KALLSYMS=y` (for reading kernel symbol addresses).
- `CONFIG_KPROBES=y` (for probing kernel symbol addresses using kernels where
base address randomisation - `CONFIG_RANDOMIZE_BASE` - is enabled).Installation
----You may install this kernel both as an in-tree module, an out-of-tree DKMS
dynamic module, or a version-specific module. You may pick any option that best
suits your needs.### In-tree module
Copy this source tree as `arch/loongarch/ow_syscall` in your kernel tree and
append the following to `arch/loongarch/Kbuild`:```
obj-y += ow_syscall/
```After building the kernel with `make`, run the following command to build the
kernel module:```
# $PWD is containing built objects
# /path/to/source_dir is containing Linux source code
make \
-C /path/to/source_dir \
ARCH=loongarch \
O="$PWD" \
arch/loongarch/ow_syscall/la_ow_syscall.ko \
CONFIG_LOONGARCH_OW_SYSCALL=m
```Upon completion, copy the kernel module in place
(`/lib/modules/.../arch/loongarch/ow_syscall/la_ow_syscall.ko`) and
re-generate modules.dep and map files:```
depmod
```### DKMS dynamic module
Generate a `dkms.conf`:
```
make dkms.conf
```For installation and version management, refer to dkms(8) for details.
### Version-specific module
Build the kernel module:
```
make
```Load the module with super user or root privilege:
```
insmod la_ow_syscall.ko
```