Difference between revisions of "FEXBash"
m (FEXInterpreter -> FEX)  | 
				|||
| (3 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
| + | [[Category:Utility_Type_Application]]  | ||
FEXBash is a utility program provided by FEX-emu for quickly spinning up a bash instance.  | FEXBash is a utility program provided by FEX-emu for quickly spinning up a bash instance.  | ||
== What isn't FEXBash ==  | == What isn't FEXBash ==  | ||
| Line 8: | Line 9: | ||
* A way to install packages inside the x86-64 rootfs  | * A way to install packages inside the x86-64 rootfs  | ||
** See [[Development:Setting_up_RootFS#If_you_want_to_install_packages_in_the_squashfs|this wiki page]] if you want to add packages to the rootfs.  | ** See [[Development:Setting_up_RootFS#If_you_want_to_install_packages_in_the_squashfs|this wiki page]] if you want to add packages to the rootfs.  | ||
| + | ** Trying to install packages while running under FEXBash will not work. The rootfs is effectively read-only.  | ||
== What is FEXBash ==  | == What is FEXBash ==  | ||
| − | FEXBash is a wrapper program that executes   | + | FEXBash is a wrapper program that executes ''FEX'' to run x86-64 '''/bin/sh''' or '''/bin/bash'''. Which application is executed depends on the number of arguments passed in  | 
== Usage ==  | == Usage ==  | ||
Latest revision as of 14:01, 22 September 2025
FEXBash is a utility program provided by FEX-emu for quickly spinning up a bash instance.
What isn't FEXBash
FEXBash is not:
- A virtual machine
- FEX is never a virtual machine.
 
 - A chroot
- See this wiki page if you want to chroot in to the rootfs.
 
 - A way to install packages inside the x86-64 rootfs
- See this wiki page if you want to add packages to the rootfs.
 - Trying to install packages while running under FEXBash will not work. The rootfs is effectively read-only.
 
 
What is FEXBash
FEXBash is a wrapper program that executes FEX to run x86-64 /bin/sh or /bin/bash. Which application is executed depends on the number of arguments passed in
Usage
Zero arguments
If the user passes in no arguments then FEXBash will execute x86-64 /bin/bash to give an emulated shell environment for tinkering around in.
ryanh@ubuntu:~$ uname -a Linux ubuntu 5.15.0-rc1+ #106 SMP Tue Aug 2 19:43:23 PDT 2022 aarch64 aarch64 aarch64 GNU/Linux ryanh@ubuntu:~$ FEXBash FEXBash-ryanh@ubuntu:~> uname -a Linux ubuntu 5.15.0 #FEX-2208-11-ga2f4f494a SMP Aug 13 2022 09:47:20 x86_64 x86_64 x86_64 GNU/Linux
This is not a virtual machine. It is just an emulated environment that overlays the AArch64 host environment. You can still execute AArch64 programs from the host and also x86-64 programs.
Any arguments
If any arguments are passed in then FEXBash executes /bin/sh -c with the provided arguments passed along. One must be careful with this as sh -c is usually expected to have its arguments wrapped in double quotes.
ryanh@ubuntu:~$ sh -c uname -a Linux ryanh@ubuntu:~$ sh -c "uname -a" Linux ubuntu 5.15.0-rc1+ #106 SMP Tue Aug 2 19:43:23 PDT 2022 aarch64 aarch64 aarch64 GNU/Linux ryanh@ubuntu:~$ FEXBash uname -a Linux ryanh@ubuntu:~$ FEXBash "uname -a" Linux ubuntu 5.15.0 #FEX-2208-11-ga2f4f494a SMP Aug 13 2022 09:47:20 x86_64 x86_64 x86_64 GNU/Linux
As one can see, without the double quotes you effectively lose the -a argument. This behaves the same as /bin/sh -c behaviour without FEXBash.
This is usually used for some sort of scripting wanting to enter the FEX emulated environment.