Add init_env_poweroff.sh

This commit is contained in:
Ciro Santilli
2018-02-09 20:48:45 +00:00
parent c771b40913
commit fc168d6eb5
3 changed files with 20 additions and 2 deletions

View File

@@ -45,6 +45,7 @@ See the [getting started section](getting-started.md) for further details.
1. [KGDB](kgdb.md)
1. [gdbserver](gdbserver.md)
1. [Other architectures](other-architectures.md)
1. [init](init.md)
1. [modprobe](modprobe.md)
1. [X11](x11.md)
1. [Count boot instructions](count-boot-instructions.md)

17
init.md
View File

@@ -14,7 +14,7 @@ systemd is a "popular" `/init` implementation for desktop distros as of 2017.
BusyBox provides its own minimalistic init implementation which Buildroot uses by default.
### Custom init
## Custom init
Is the default BusyBox `/init` too bloated for you, minimalism freak?
@@ -31,7 +31,7 @@ Also remember that if your init returns, the kernel will panic, there are just t
- run forever in a loop or long sleep
- `poweroff` the machine
### Disable networking
## Disable networking
The default BusyBox init scripts enable networking, and there is a 15 second timeout in case your network is down or if your kernel / emulator setup does not support it.
@@ -42,3 +42,16 @@ To disable networking, use:
To restore it, run:
./build -t initscripts-reconfigure
## The init environment
The docs make it clear https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html
> The kernel parses parameters from the kernel command line up to “–”;
> if it doesnt recognize a parameter and it doesnt contain a ., the parameter gets passed to init:
> parameters with = go into inits environment, others are passed as command line arguments to init.
> Everything after “–” is passed as an argument to init.
And you can try it out with:
./run -e 'init=/init_env_poweroff.sh - asdf=qwer zxcv' -n

View File

@@ -0,0 +1,4 @@
#!/bin/sh
echo "$@"
env
/poweroff.out