0

I am trying to setup BusyBox on top of ArchLinux, Fedora or Ubuntu. So that when i telnet i can get something like this following:

But how do i get started? Simply install Busybox on top of my existing distro? Will that wrap all my external third party libraries?

$ telnet 192.168.0.198 23
Trying 192.168.0.198...
Connected to 192.168.0.198.
Escape character is '^]'.

(none) login: root
Password: 


BusyBox v1.1.2 (2008.07.18-08:25+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Welcome to HiLinux.
-sh: nfsroot: not found
~ $ help

Built-in commands:
-------------------
        . : alias bg break cd chdir command continue echo eval exec exit
        export false fg getopts hash help jobs kill let local pwd read
        readonly return set shift times trap true type ulimit umask unalias
        unset wait
~ $ man alias
-sh: man: not found

Follow up:

For experiment i have tried on full-blown installed unit:

0) backend operating system is Arch, Ubuntu, Fedora, CentOS

1) install busy box on all

2) run busybox

$ busybox
BusyBox v1.17.1 (Ubuntu 1:1.17.1-10ubuntu1) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, adjtimex, arping, ash, awk, basename, blockdev, brctl, bunzip2, bzcat,
    bzip2, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut,
    date, dc, dd, deallocvt, df, dirname, dmesg, dnsdomainname, dos2unix, du,
    dumpkmap, dumpleases, echo, egrep, env, expr, false, fgrep, find, fold, free,
    ftpget, ftpput, getopt, grep, gunzip, gzip, head, hexdump, hostid, hostname,
    httpd, id, ifconfig, ionice, ip, ipcalc, kill, killall, klogd, last, length,
    ln, loadfont, loadkmap, logger, logname, logread, losetup, ls, lzcat, lzma,
    md5sum, mdev, mkdir, mkfifo, mknod, mktemp, more, mount, mt, mv, nameif, nc,
    netstat, nslookup, od, openvt, patch, pidof, ping, ping6, printf, ps, pwd,
    rdate, readlink, realpath, renice, reset, rev, rm, rmdir, route, rpm, rpm2cpio,
    run-parts, sed, setkeycodes, sh, sha1sum, sha256sum, sha512sum, sleep, sort,
    start-stop-daemon, static-sh, strings, stty, swapoff, swapon, sync, sysctl,
    syslogd, tac, tail, tar, tee, telnet, test, tftp, time, top, touch, tr,
    traceroute, traceroute6, true, tty, udhcpc, udhcpd, umount, uname, uncompress,
    uniq, unix2dos, unlzma, unxz, unzip, uptime, usleep, uudecode, uuencode, vi,
    watch, watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat
8
  • You don't want BusyBox, you want to learn how to use ssh. And don't telnet as root.
    – geekosaur
    Apr 24, 2012 at 9:29
  • @geekosaur: BusyBox is cool fun thing, i am very curious to know how..
    – YumYumYum
    Apr 24, 2012 at 9:30
  • Telnet i have to use because my friend can code in PHP, CGI so that he can simply use the telnet commands to drive it i mean.
    – YumYumYum
    Apr 24, 2012 at 9:32
  • BusyBox is a mini-system for embedded platforms that don't have full installs. On a system with a full install already, you would have to log in and then run it (you do not want to change root's shell to it; that would probably break your system completely).
    – geekosaur
    Apr 24, 2012 at 9:32
  • @geekosaur: I know i know, but its all for fun crash and learn and fun.
    – YumYumYum
    Apr 24, 2012 at 9:33

1 Answer 1

2

"BusyBox is a multi-call binary that combines many common Unix utilities into a single executable."

BusyBox itself cannot be made to "run" as you ask in the title. BusyBox is not a user interface like MythTV or XBMC. Not sure what you mean by install "on top" of an already installed distribution, as the BusyBox executable file can be installed in the filesystem along with all the other utilities. Only when you start replacing the standard utilities with symbolic links to the BusyBox version would you be clobbering the installation.

So that when i telnet i can get something like this following:

If you want to use BusyBox's version of telnet instead of the distro's version of telnet, then you would have to edit the runlevel scripts (or inetd configuration) to use the BusyBox telnet daemon, telnetd, instead of the distro's telnetd.

For a quick experiment, check if any telnet or inet daemons are running in your system by listing all processes:

$ ps -A | grep net

If there is either a telnetd or inetd daemon, then you would have to stop the service or kill the daemon. If there are no telnetd or inetd daemons, then you should be able to manually start the BusyBox telnetd daemon with (might have to preface with sudo):

$ busybox telnetd 

Of course, after you have telnet'd into the PC, the shell would still probably invoke the distro's utilities according to PATH rather than the BusyBox versions. You would have to either install the symbolic links or explicitly use

$ busybox [function] [arguments]...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .