Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 3.35 KB

Installation.md

File metadata and controls

42 lines (34 loc) · 3.35 KB

LXC on POCO X3 Pro installations instructions

Requirements

  • Kernel with this configs: CONFIG_FHANDLE=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y CONFIG_CGROUP_PERF=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_USER_NS=y CONFIG_DEVPTS_MULTIPLE_INSTANCES=y CONFIG_PROC_CHILDREN=y. If you using ArrowOS 13 you can download already compiled kernel by me.
  • Root rights
  • Termux
  • Termux-x11

Install LXC and termux-x11

Open Termux, update packages and install x11-repo and root-repo: pkg update && pkg install x11-repo root-repo, then install xwayland, tsu and lxc: pkg install tsu lxc xwayland. Go to unpacked termux-x11 folder and install termux-x11: dpkg -i <termux-x11>.deb

Mount cgroup

Download this script, run tsu (give root rights to Termux app), then run sh mountcgroups.sh

Create container

Create LXC container (I using Ubuntu 22.04): lxc-create ubuntu -t download -- --no-validate

Edit config

We need mount kgsl-3d0, termux-x11 tmp folder and share internet to host, /data/data/com.termux/files/usr/var/lib/lxc/ubuntu/config and add this lines:

lxc.mount.entry = /dev/kgsl-3d0 dev/kgsl-3d0 none bind,optional,create=file
lxc.mount.entry = /data/data/com.termux/files/usr/tmp tmp none bind,realtime,optional
lxc.cgroup.devices.allow =
lxc.cgroup.devices.deny =
lxc.net.0.type = none
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:b8:16:74

Run container

Now, we can run container: lxc-start ubuntu -F and you should show booting systemd. Then he asks login and password open second Termux session and attach your container: lxc-attach ubuntu --clear-env, then run /usr/bin/passwd and type new password. Back to first session and type login root and your password which your set.

Fix internet

Make sure what internet working: ping 8.8.8.8, you should show pings, but if you try apt update repo wont update. Run vi /etc/resolv.conf and write nameserver 8.8.8.8 instead of exist, then quit with write and save file. Go to /etc/systemd/resolved.conf and type DNS 8.8.8.8, then quit with write and save file, then run systemctl restart systemd-resolved. Now, internet should fully works.

DE and hardware acceleration.

Open second session and run termux-x11: Xvfb :0 -ac & && DISPLAY=:0 termux-x11 &. Then go to first session, install any graphical program, run export DISPLAY=:0 and start graphical program, in termux-x11 app you should see open program. You can compile Turnip+Zink and get hardware acceleration using this guide

Notes

  • Termux-x11 may have problems with X server socket, if you have problems open issue and let me know.
  • If you try mount /sdcard read-write working only in root user
  • $HOME and locales dumped in root
  • Sound work (instruction)