Como tornar o BusyBox rodando onde meu sistema operacional backend pode ser xyz?

0

Estou tentando configurar o BusyBox no topo do ArchLinux, Fedora ou Ubuntu. Então, quando eu telnet eu posso conseguir algo assim seguinte:

Mas como eu começo? Basta instalar o Busybox no topo da minha distro existente? Isso envolverá todas as minhas bibliotecas externas de terceiros?

$ 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

Acompanhamento:

Para experimentar, experimentei uma unidade instalada completa:

0) sistema operacional backend é Arch, Ubuntu, Fedora, CentOS

1) instale a caixa ocupada em todos

2) execute o 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
    
por YumYumYum 24.04.2012 / 11:27

1 resposta

2

"O BusyBox é um binário de chamadas múltiplas que combina muitos utilitários comuns do Unix num único executável."

O BusyBox em si não pode ser "executado" como você pede no título. BusyBox não é uma interface de usuário como MythTV ou XBMC. Não tenho certeza do que você quer dizer com a instalação "no topo" de uma distribuição já instalada, pois o arquivo executável do BusyBox pode ser instalado no sistema de arquivos juntamente com todos os outros utilitários. Somente quando você começar a substituir os utilitários padrão por links simbólicos para a versão BusyBox, você estará destruindo a instalação.

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

Se você quiser usar a versão do telnet do BusyBox ao invés da versão da telnet da distro, você teria que editar os scripts de runlevel (ou inetd configuração) para usar o daemon telnet BusyBox, telnetd , em vez do telnetd da distribuição.

Para um experimento rápido, verifique se algum daemons telnet ou inet está sendo executado em seu sistema listando todos os processos:

$ ps -A | grep net

Se houver um daemon telnetd ou inetd, você terá que parar o serviço ou matar o daemon. Se não houver daemons telnetd ou inetd, você deve ser capaz de iniciar manualmente o daemon telnetd BusyBox com (pode ser necessário digitar o sudo):

$ busybox telnetd 

É claro que, depois de ter feito o telnet no PC, o shell ainda provavelmente invocaria os utilitários da distro de acordo com o PATH, em vez das versões do BusyBox. Você teria que instalar os links simbólicos ou usar explicitamente

$ busybox [function] [arguments]...
    
por 24.04.2012 / 21:29