source: MondoRescue/branches/stable/mindi-busybox/shell/ @ 1770

Last change on this file since 1770 was 1770, checked in by Bruno Cornec, 12 years ago
  • Better output for mindi-busybox revision
  • Remove dummy file created on NFS - report from Arnaud Tiger <>
  • strace useful for debug
  • fix new versions for pb (2.0.0 for mindi and 1.7.2 for mindi-busybox)
  • fix build process for mindi-busybox + options used in that version (dd for label-partitions-as-necessary)
  • fix typo in label-partitions-as-necessary which doesn't seem to work
  • Update to busybox 1.7.2
  • perl is now required at restore time to support uuid swap partitions (and will be used for many other thigs

in the future for sure)

  • next mindi version will be 2.0.0 due to all the changes made in it (udev may break working distros)
  • small optimization in mindi on keyboard handling (one single find instead of multiple)
  • better interaction for USB device when launching mindi manually
  • attempt to automatically guess block disk size for ramdisk
  • fix typos in bkphw
  • Fix the remaining problem with UUID support for swap partitions
  • Updates mondoarchive man page for USB support
  • Adds preliminary Hardware support to mindi (Proliant SSSTK)
  • Tries to add udev support also for rhel4
  • Fix UUID support which was still broken.
  • Be conservative in test for the start-nfs script
  • Update config file for mindi-busybox for 1.7.2 migration
  • Try to run around a busybox bug (1.2.2 pb on inexistant links)
  • Add build content for mindi-busybox in pb
  • Remove distributions content for mindi-busybox
  • Fix a warning on inexistant raidtab
  • Solve problem on tmpfs in restore init (Problem of inexistant symlink and busybox)
  • Create MONDO_CACHE and use it everywhere + creation at start
  • Really never try to eject a USB device
  • Fix a issue with &> usage (replaced with 1> and 2>)
  • Adds magic file to depllist in order to have file working + ldd which helps for debugging issues
  • tty modes correct to avoid sh error messages
  • Use ext3 normally and not ext2 instead
  • USB device should be corrected after reading (take 1st part)
  • Adds a mount_USB_here function derived from mount_CDROM_here
  • usb detection place before /dev detection in device name at restore time
  • Fix when restoring from USB: media is asked in interactive mode
  • Adds USB support for mondorestore
  • mount_cdrom => mount_media
  • elilo.efi is now searched throughout /boot/efi and not in a fixed place as there is no standard
  • untar-and-softlink => untar (+ interface change)
  • suppress useless softlinks creation/removal in boot process
  • avoids udevd messages on groups
  • Increase # of disks to 99 as in mindi at restore time (should be a conf file parameter)
  • skip existing big file creation
  • seems to work correctly for USB mindi boot
  • Adds group and tty link to udev conf
  • Always load usb-torage (even 2.6) to initiate USB bus discovery
  • Better printing of messages
  • Attempt to fix a bug in supporting OpenSusE 10.3 kernel for initramfs (mindi may now use multiple regex for kernel initrd detection)
  • Links were not correctly done as non relative for modules in mindi
  • exclusion of modules denied now works
  • Also create modules in their ordinary place, so that classical modprobe works + copy modules.dep
  • Fix bugs for DENY_MODS handling
  • Add device /dev/console for udev
  • ide-generic should now really be excluded
  • Fix a bug in major number for tty
  • If udev then adds modprobe/insmod to rootfs
  • tty0 is also cretaed with udev
  • ide-generic put rather in DENY_MODS
  • udevd remove from deplist s handled in mindi directly
  • better default for mindi when using --usb
  • Handles dynamically linked busybox (in case we want to use it soon ;-)
  • Adds fixed devices to create for udev
  • ide-generic should not be part of the initrd when using libata v2
  • support a dynamically linked udev (case on Ubuntu 7.10 and Mandriva 2008.0 so should be quite generic) This will give incitation to move to dyn. linked binaries in the initrd which will help for other tasks (ia6 4)
  • Improvement in udev support (do not use cl options not available in busybox)
  • Udev in mindi
    • auto creation of the right links at boot time with udev-links.conf(from Mandriva 2008.0)
    • rework startup of udev as current makes kernel crash (from Mandriva 2008.0)
    • add support for 64 bits udev
  • Try to render MyInsmod? silent at boot time
  • Adds udev support (mandatory for newest distributions to avoid remapping of devices in a different way as on the original system)
  • We also need vaft format support for USB boot
  • Adds libusual support (Ubuntu 7.10 needs it for USB)
  • Improve Ubuntu/Debian? keyboard detection and support
  • pbinit adapted to new pb (0.8.10). Filtering of docs done in it
  • Suppress some mondo warnings and errors on USB again
  • Tries to fix lack of files in deb mindi package
  • Verify should now work for USB devices
  • More log/mesages improvement for USB support
  • - Supress g_erase_tmpdir_and_scratchdir
  • Improve some log messages for USB support
  • Try to improve install in mindi to avoid issues with isolinux.cfg not installed vene if in the pkg :-(
  • Improve mindi-busybox build
  • In conformity with pb 0.8.9
  • Add support for Ubuntu 7.10 in build process
  • Add USB Key button to Menu UI (CD streamer removed)
  • Attempt to fix error messages on tmp/scratch files at the end by removing those dir at the latest possible.
  • Fix a bug linked to the size of the -E param which could be used (Arnaud Tiger/René? Ribaud).
  • Integrate ~/.pbrc content into mondorescue.pb (required project-builder >= 0.8.7)
  • Put mondorescue in conformity with new pb filtering rules
  • Add USB support at restore time (no test done yet). New start-usb script PB varibale added where useful
  • Unmounting USB device before removal of temporary scratchdir
  • Stil refining USB copy back to mondo (one command was not executed)
  • No need to have the image subdor in the csratchdir when USB.
  • umount the USB partition before attempting to use it
  • Remove useless copy from mindi to mondo at end of USB handling

(risky merge, we are raising the limits of 2 diverging branches. The status of stable is not completely sure as such. Will need lots of tests, but it's not yet done :-()
(merge -r1692:1769 $SVN_M/branches/2.2.5)

File size: 9.0 KB
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
6menu "Shells"
9    prompt "Choose your default shell"
10    default FEATURE_SH_IS_NONE
11    help
12      Choose a shell. The ash shell is the most bash compatible
13      and full featured one.
16    select ASH
17    bool "ash"
20    select HUSH
21    bool "hush"
24    select LASH
25    bool "lash"
28    select MSH
29    bool "msh"
32    bool "none"
36config ASH
37    bool "ash"
38    default n
39    select TEST
40    help
41      Tha 'ash' shell adds about 60k in the default configuration and is
42      the most complete and most pedantically correct shell included with
43      busybox.  This shell is actually a derivative of the Debian 'dash'
44      shell (by Herbert Xu), which was created by porting the 'ash' shell
45      (written by Kenneth Almquist) from NetBSD.
47comment "Ash Shell Options"
48    depends on ASH
51    bool "Job control"
52    default y
53    depends on ASH
54    help
55      Enable job control in the ash shell.
58    bool "'read -n N' and 'read -s' support"
59    default n
60    depends on ASH
61    help
62      'read -n N' will return a value after N characters have been read.
63      'read -s' will read without echoing the user's input.
66    bool "'read -t S' support."
67    default n
68    depends on ASH
69    help
70      'read -t S' will return a value after S seconds have passed.
71      This implementation will allow fractional seconds, expressed
72      as a decimal fraction, e.g. 'read -t 2.5 foo'.
74config ASH_ALIAS
75    bool "alias support"
76    default y
77    depends on ASH
78    help
79      Enable alias support in the ash shell.
82    bool "Posix math support"
83    default y
84    depends on ASH
85    help
86      Enable math support in the ash shell.
88config ASH_MATH_SUPPORT_64
89    bool "Extend Posix math support to 64 bit"
90    default n
91    depends on ASH_MATH_SUPPORT
92    help
93      Enable 64-bit math support in the ash shell.  This will make
94      the shell slightly larger, but will allow computation with very
95      large numbers.
97config ASH_GETOPTS
98    bool "Builtin getopt to parse positional parameters"
99    default n
100    depends on ASH
101    help
102      Enable getopts builtin in the ash shell.
105    bool "Builtin version of 'echo'"
106    default y
107    select ECHO
108    depends on ASH
109    help
110      Enable support for echo, builtin to ash.
113    bool "Builtin version of 'test'"
114    default y
115    select TEST
116    depends on ASH
117    help
118      Enable support for test, builtin to ash.
120config ASH_CMDCMD
121    bool "'command' command to override shell builtins"
122    default n
123    depends on ASH
124    help
125      Enable support for the ash 'command' builtin, which allows
126      you to run the specified command with the specified arguments,
127      even when there is an ash builtin command with the same name.
129config ASH_MAIL
130    bool "Check for new mail on interactive shells"
131    default y
132    depends on ASH
133    help
134      Enable "check for new mail" in the ash shell.
137    bool "Optimize for size instead of speed"
138    default y
139    depends on ASH
140    help
141      Compile ash for reduced size at the price of speed.
144    bool "Pseudorandom generator and variable $RANDOM"
145    default n
146    depends on ASH
147    help
148      Enable pseudorandom generator and dynamic variable "$RANDOM".
149      Each read of "$RANDOM" will generate a new pseudorandom value.
150      You can reset the generator by using a specified start value.
151      After "unset RANDOM" then generator will switch off and this
152      variable will no longer have special treatment.
155    bool "Expand prompt string"
156    default n
157    depends on ASH
158    help
159      "PS#" may be contain volatile content, such as backquote commands.
160      This option recreates the prompt string from the environment
161      variable each time it is displayed.
163config HUSH
164    bool "hush"
165    default n
166    select TRUE
167    select FALSE
168    select TEST
169    help
170      hush is a very small shell (just 18k) and it has fairly complete
171      Bourne shell grammar.  It even handles all the normal flow control
172      options such as if/then/elif/else/fi, for/in/do/done, while loops,
173      etc.
175      It does not handle case/esac, select, function, here documents ( <<
176      word ), arithmetic expansion, aliases, brace expansion, tilde
177      expansion, &> and >& redirection of stdout+stderr, etc.
179config HUSH_HELP
180    bool "help builtin"
181    default n
182    depends on HUSH
183    help
184      Enable help builtin in hush. Code size + ~1 kbyte.
187    bool "Interactive mode"
188    default y
189    depends on HUSH
190    help
191      Enable interactive mode (prompt and command editing).
192      Without this, hush simply reads and executes commands
193      from stdin just like a shell script from the file.
194      No prompt, no PS1/PS2 magic shell variables.
196config HUSH_JOB
197    bool "Job control"
198    default n
199    depends on HUSH_INTERACTIVE
200    help
201      Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
202      command (not entire shell), fg/bg builtins work. Without this option,
203      "cmd &" still works by simply spawning a process and immediately
204      prompting for next command (or executing next command in a script),
205      but no separate process group is formed.
207config HUSH_TICK
208    bool "Process substitution"
209    default n
210    depends on HUSH
211    help
212      Enable process substitution `command` and $(command) in hush.
214config HUSH_IF
215    bool "Support if/then/elif/else/fi"
216    default n
217    depends on HUSH
218    help
219      Enable if/then/elif/else/fi in hush.
221config HUSH_LOOPS
222    bool "Support for, while and until loops"
223    default n
224    depends on HUSH
225    help
226      Enable for, while and until loops in hush.
228config LASH
229    bool "lash"
230    default n
231    select TRUE
232    select FALSE
233    select TEST
234    help
235      lash is the very smallest shell (adds just 10k) and it is quite
236      usable as a command prompt, but it is not suitable for any but the
237      most trivial scripting (such as an initrd that calls insmod a few
238      times) since it does not understand any Bourne shell grammar.  It
239      does handle pipes, redirects, and job control though.  Adding in
240      command editing makes it a very nice lightweight command prompt.
243config MSH
244    bool "msh"
245    default n
246    select TRUE
247    select FALSE
248    select TEST
249    help
250      The minix shell (adds just 30k) is quite complete and handles things
251      like for/do/done, case/esac and all the things you expect a Bourne
252      shell to do.  It is not always pedantically correct about Bourne
253      shell grammar (try running the shell testscript "tests/sh.testcases"
254      on it and compare vs bash) but for most things it works quite well.
255      It also uses only vfork, so it can be used on uClinux systems.
257comment "Bourne Shell Options"
258    depends on MSH || LASH || HUSH || ASH
261    bool "Hide message on interactive shell startup"
262    default n
263    depends on MSH || LASH || HUSH || ASH
264    help
265      Remove the busybox introduction when starting a shell.
268    bool "Standalone shell"
269    default n
270    depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
271    help
272      This option causes busybox shells to use busybox applets
273      in preference to executables in the PATH whenever possible.  For
274      example, entering the command 'ifconfig' into the shell would cause
275      busybox to use the ifconfig busybox applet.  Specifying the fully
276      qualified executable name, such as '/sbin/ifconfig' will still
277      execute the /sbin/ifconfig executable on the filesystem.  This option
278      is generally used when creating a statically linked version of busybox
279      for use as a rescue shell, in the event that you screw up your system.
281      This is implemented by re-execing /proc/self/exe (typically)
282      with right parameters. Some selected applets ("NOFORK" applets)
283      can even be executed without creating new process.
284      Instead, busybox will call <applet>_main() internally.
286      However, this causes problems in chroot jails without mounted /proc
287      and with ps/top (command name can be shown as 'exe' for applets
288      started this way).
289# untrue?
290#     Note that this will *also* cause applets to take precedence
291#     over shell builtins of the same name.  So turning this on will
292#     eliminate any performance gained by turning on the builtin "echo"
293#     and "test" commands in ash.
294# untrue?
295#     Note that when using this option, the shell will attempt to directly
296#     run '/bin/busybox'.  If you do not have the busybox binary sitting in
297#     that exact location with that exact name, this option will not work at
298#     all.
300config CTTYHACK
301    bool "cttyhack"
302    default n
303    help
304      One common problem reported on the mailing list is "can't access tty;
305      job control turned off" error message which typically appears when
306      one tries to use shell with stdin/stdout opened to /dev/console.
307      This device is special - it cannot be a controlling tty.
309      Proper solution is to use correct device instead of /dev/console.
311      cttyhack provides "quick and dirty" solution to this problem.
312      It analyzes stdin with various ioctls, trying to determine whether
313      it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
314      If it detects one, it closes stdin/out/err and reopens that device.
315      Then it executes given program. Usage example for /etc/inittab
316      (for busybox init):
318      ::respawn:/bin/cttyhack /bin/sh
Note: See TracBrowser for help on using the repository browser.