Hello,
First of all, please do consider to mark this issue as closed, as this is not a request for the developer to implement anything. It's just a way to point out a feature that this Docker container is not suitable to accomplish. And maybe it will avoid more than one headache for the plain users.
Though I'm dealing with Raspberry Pi 5 (ARM v8 architecture) I suppose this thread could be applied to any other platform.
This Docker container for ARM64 architectures doesn't not work on operating systems based on modern kernels that have 16k page-size.
I have tried it under Raspberry Pi 5 / LibreELEC 12 without success (when starting the container it raises a segmentation fault error and it immediately closes). The problem is due to the fact that LibreELEC 12 OS uses the new 16k page-size in its kernel, and there is no way to force LibreELEC 12 to use an older 4k kernel (because the LibreELEC developers have chosen to keep the system as simple as possible).
However, it works under LibreELEC 11, which uses 4k page-size kernel.
The solution for Raspberry Pi 5 users is to abandon the use of LibreELEC 12 and deploy a Rapsberry Pi OS Lite. This OS, on its modern versions, comes with 16k page-size kernel, but once installed you can easily change to the 4k page-size kernel following this steps:
- Power on your Raspberry Pi 5 with the SD card inserted (where you have previously installed Rasspberry Pi OS Lite).
- Connect via SSH to your Raspberry pi.
- Check the page-size your system uses:
sudo grep -i "KernelPageSize" /proc/1/smaps | head -n 1
-- it returns 'KernelPageSize: 16 kB'
- Check that there is a 4k page-size kernel available on your system:
ls /boot/firmware/kernel*
-- there you'l find among others a file named 'kernel8.img'.
- Modify the firmware config file:
sudo nano /boot/firmware/config.txt
-- add under the last section called [all] the following line:
kernel=kernel8.img
- Save the modified file (Ctrl-O, Ctrl-X).
- Reboot your system.
- Connect via SSH to the Raspberry Pi.
- Check the new kernel page-size:
sudo grep -i "KernelPageSize" /proc/1/smaps | head -n 1
-- it returns 'KernelPageSize: 4 kB'.
- After that, you can run the Docker AceServe container with a command like the one proposed by the developer or adding the 'restart unless-stopped' parameter:
docker run -d --name aceserve -p 6878:6878 -p 8621:8621 -p 62062:62062 --restart unless-stopped jopsis/aceserve:arm64-latest
That's all. Maybe it would be useful to add a simple comment about 4k/16k kernels page-size on the README.md of this nice and useful project...
Best regards.
Hello,
First of all, please do consider to mark this issue as closed, as this is not a request for the developer to implement anything. It's just a way to point out a feature that this Docker container is not suitable to accomplish. And maybe it will avoid more than one headache for the plain users.
Though I'm dealing with Raspberry Pi 5 (ARM v8 architecture) I suppose this thread could be applied to any other platform.
This Docker container for ARM64 architectures doesn't not work on operating systems based on modern kernels that have 16k page-size.
I have tried it under Raspberry Pi 5 / LibreELEC 12 without success (when starting the container it raises a segmentation fault error and it immediately closes). The problem is due to the fact that LibreELEC 12 OS uses the new 16k page-size in its kernel, and there is no way to force LibreELEC 12 to use an older 4k kernel (because the LibreELEC developers have chosen to keep the system as simple as possible).
However, it works under LibreELEC 11, which uses 4k page-size kernel.
The solution for Raspberry Pi 5 users is to abandon the use of LibreELEC 12 and deploy a Rapsberry Pi OS Lite. This OS, on its modern versions, comes with 16k page-size kernel, but once installed you can easily change to the 4k page-size kernel following this steps:
sudo grep -i "KernelPageSize" /proc/1/smaps | head -n 1-- it returns 'KernelPageSize: 16 kB'ls /boot/firmware/kernel*-- there you'l find among others a file named 'kernel8.img'.sudo nano /boot/firmware/config.txt-- add under the last section called [all] the following line:kernel=kernel8.imgsudo grep -i "KernelPageSize" /proc/1/smaps | head -n 1-- it returns 'KernelPageSize: 4 kB'.docker run -d --name aceserve -p 6878:6878 -p 8621:8621 -p 62062:62062 --restart unless-stopped jopsis/aceserve:arm64-latestThat's all. Maybe it would be useful to add a simple comment about 4k/16k kernels page-size on the README.md of this nice and useful project...
Best regards.