diff options
Diffstat (limited to 'results/scraper/fex/documentation/1202')
| -rw-r--r-- | results/scraper/fex/documentation/1202 | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/results/scraper/fex/documentation/1202 b/results/scraper/fex/documentation/1202 new file mode 100644 index 00000000..61ab04db --- /dev/null +++ b/results/scraper/fex/documentation/1202 @@ -0,0 +1,45 @@ +pressure-vessel upstream requirements +FEX needs some features in pressure-vessel in order to work correctly. +This is because pressure-vessel messes with the real filesystem which means that FEX can't transparently hide all aspects of this. + +- pressure-vessel needs to check if running in a FEX environment. + - Check CPUID for the CPU modelname for FEX `model name : FEX-2108-21-ge90892a2` + - Format is `FEX-<YYMM[.<Minor rev>]>[-<Commits since last tag>-<CurrentCommit>]` + - eg: Released Tag `FEX-2108` + - eg: Released Tag with minor rev `FEX-2108.1` + - eg: Commit that isn't in a release, aka building from origin/main `FEX-2108-21-ge90892a2` + - eg: Future release `FEX-2109` + - Minor revisions haven't occured in FEX yet + - Always separated by dashes. + - `FEX-<YYMM>` will always exist, the rest are optional. +- Once determined to be in a FEX environment, use the `FEXGetConfig` tool to find the currently configured rootfs + - PR #1204 Adds this configuration program. + - Exists since `FEX-2109` tagged revision + - `FEXGetConfig --current-rootfs` Returning the mounted rootfs location in the case of squashfs + - Or folder that the rootfs lives at if not squashfs + - `FEXGetConfig --current-rootfs-lock` To return the `lock` file to keep rootfs active. + - Necessary for new FEX instances to find the squashfs mount + - Will be in `/tmp/` + - `FEXGetConfig --current-rootfs-socket` To return the current UNIX domain socket for pipes watching + - Necessary to keep the FEXMountDaemon active while it tracks FEX instances + - Will be in `/tmp/` + - Only exists beggining at `FEX-2109-<X>` + - `FEXGetConfig --install-prefix` Will let you find where the FEX libraries are installed. Not everyone wants to install to /usr + - Optional `--app <Filename>` to get app profile configuration as well + - Usually not necessary, but future proofing will let us use this + - `FEXGetConfig --version` - Returns the same string as CPUID + - Aren't guaranteed to be running in a FEX environment without still checking CPUID. Be careful of that. + - Pressure-vessel should pull in $ROOTFS/usr/lib64 and $ROOTFS/usr/lib32 instead of true host folders + - Necessary since FEX may mount the rootfs in /tmp as squashfs or exist in ~/.fex-emu/RootFS or anywhere else + - Real host will not have any x86-64 or x86 libraries in the host root + - Also pull in $prefix/share/fex-emu/ and $prefix/lib/fex-emu/ + - Necessary for thunk support + - Also need /lib/aarch64-linux-gnu/ for thunks + - $ROOTFS/etc? + - I'm not sure if this matters. + - Pull in $prefix/FEXInterpreter for executing without binfmt_misc installed + - This can happen when testing on both an x86-64 and aarch64 host + - Since this is a hardlink to FEXLoader, special care might need to be taken? Not sure if a symlink to a hardlink exposes the original path or not. +- Once in the chroot. Set `FEX_ROOTFS=''` since the new root is a true x86 environment. + - This will override the rootfs that FEX is using to nothing. Necessary otherwise some things break. + - pressure-vessel configures its rootfs in a functional way that this works. \ No newline at end of file |