Busybox 1.15.3 (neuste) kompiliert fürs Milestone (Bzw allgemein arm)

  • 63 Antworten
  • Letztes Antwortdatum
Milp

Milp

Fortgeschrittenes Mitglied
4
So, dank meinem perfektionismus der mich dazu treibt keine total veralteten und funktions-beschnittenen tools zu verwenden, hab ich es nun nach ca. 10-12 stunden rumprobieren (Hab überhaupt keine erfahrung auf diesem gebiet) in einer Debian VM geschafft, die neuste version von busybox für den stein zu kompilieren, mit (fast) allem drum und dran.

Ich dachte mir ich poste sie jetzt einfach mal hier, vielleicht hat der ein oder andere interesse daran.

Hier ist das standalone binary:

http://bf1942.moretoast.de/busyboxmk9

Einfach irgendwo hin und ensprechend chmod 755 setzen und das teil läuft. Ob man es auch installen kann weiß ich nicht, hab darauf kein wert gelegt.

Was mich jetzt noch extremst verwundert ist allerdings, dass ich immernoch bei dem versuch swapon zu benutzen (z.b. swapon /data/swapfile oder /sdcard/swapfile) die meldung bekomme "function not implemented." Muss wohl versuchen eine datei als laufwerk zu mounten und von dort aus als swap einzurichten.

Hoffe diese neue version ist nützlich für euch :)

Hier noch ein auszug von meiner android console (Benutze kein adb, hab auf der tastatur vom stein mittlerweile eh fast genauso viele anschläge pro minute wie auf ner normalen :D )

Code:
/system/etc # /data/busybox3/busyboxmk9
BusyBox v1.15.3 (2010-01-23 13:13:32 EST) multi-call binary
Copyright (C) 1998-2008 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:
        [, [[, acpid, adjtimex, arp, arping, ash, awk, basename, bbconfig, blkid,
        brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod,
        chown, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, crond,
        crontab, cttyhack, cut, date, dc, dd, deallocvt, depmod, devfsd, devmem, df,
        dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg,
        dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir,
        envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset, fbsplash,
        fdflush, fdformat, fdisk, fgrep, find, findfs, fold, free, freeramdisk,
        fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, grep, gunzip,
        gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd, hush,
        hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init,
        inotifyd, insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
        iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, lash,
        last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
        logger, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod,
        lzmacat, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg,
        microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat, mknod, mkswap,
        mktemp, modprobe, more, mount, mountpoint, msh, mt, mv, nc, netstat, nice,
        nmeter, nohup, nslookup, od, openvt, patch, pgrep, pidof, ping, ping6,
        pipe_progress, pivot_root, pkill, popmaildir, poweroff, printenv, printf,
        ps, pscan, pwd, raidautorun, rdate, rdev, readahead, readlink, readprofile,
        realpath, reboot, reformime, renice, reset, resize, rmdir, rmmod, route,
        rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
        scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont, setkeycodes,
        setlogcons, setsid, setuidgid, sha1sum, sha256sum, sha512sum, showkey,
        slattach, sleep, softlimit, sort, split, start-stop-daemon, stat, strings,
        stty, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd,
        tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
        time, timeout, top, touch, tr, traceroute, true, tty, ttysize, tunctl,
        udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos,
        unlzma, unlzop, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi,
        volname, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat,
        zcip
 
Zuletzt bearbeitet:
kannst du uns erklären wie man cross-compiled?
 
Kann deine Busybox-Version Hostnamen auflösen?
 
DocMAX schrieb:
kannst du uns erklären wie man cross-compiled?
Otype: Static (ARM) busybox on Android Dev Phone 1

Hab diese anleitung befolgt.

Also im prinzip:

- Hat man keinen linux rechner zur hand, einfach eine Debian vm verwenden, ich persönlich habe diese hier:

RapidShare: 1-CLICK Web hosting - Easy Filehosting
RapidShare: 1-CLICK Web hosting - Easy Filehosting

user: root password: thoughtpolice

Allerdings hab ich sie noch besser angepasst (xserver und vmtools für besseres arbeiten.) Kann die ja auch hochladen wenn bedarf besteht.

- Die toolchain installieren von
Sourcery G++ Lite 2008q1-126 for ARM GNU/Linux
Und anschließend hab ich die ganzen installierten sachen ausm installationsverzeichnis über das root verzeichnis von linux verteilt.

- Mit hilfe von make config die config von (in diesem falle) busy box erstellen. (Nicht vergessen im make config prozess als cross compiling dingens arm-none-linux-gnueabi- anzugeben.
Und als CFLAG
--static, sowie als LDFLAG auch, falls danach gefragt wird.
Wichtig ist, das ganze immer static zu kompilieren weil android wohl keinen dynamic linker hat (was auch immer das heissen soll lol)

Dann einfach 'make
LDFLAGS="--static" CFLAGS="--static" make CROSS_COMPILE=arm-none-linux-gnueabi-" im root verzeichnis der source.

Danach mit hilfe von file *compiled binary* überprüfen ob es die folgende ausgabe produziert:

#file busybox

busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped

Dann per ftp oder so auf android übertragen und testen :)

Hab grad übelst kopfschmerzen von dieser ganzen kompiliererei, also kann sein dass ich was vergessen hab. Sollte es nicht funktionieren oder ich was vergessen haben, sagt mir bitte bescheid :)


mojo schrieb:
Kann deine Busybox-Version Hostnamen auflösen?

Nein, leider nicht. Verstehe aber nicht warum. Denn beim erstellen der config gab es nichts was damit zu tun haben könnte. :/
 
Zuletzt bearbeitet:
mojo schrieb:
Naja daran wirds wohl liegen. Android hat kein glibc und kein ulibc, sondern eine eigene komische und total magere lib die sich bionic nennt. Weiß jetzt nicht genau was und wie, aber darauf wirds wohl zurückzuführen sein, dass busybox keine andressen resolven kann. :/
 
This is a last compiled version of busybox from repository
 

Anhänge

  • busybox.zip
    577,8 KB · Aufrufe: 317
  • Danke
Reaktionen: -FuFu-, prodigy7, IrealiTY und 4 andere
much smaller than the old one. you have compiled 1.17 but I have 1.18.3 allready so if you can compile please take for me the snapshot source. it must be never than my build. thanks!
 
Zuletzt bearbeitet von einem Moderator:
HM. I'm compiled it yesterday - and download latest repository snapshot (by the 06 April 2010 ).
 
XVilka schrieb:
HM. I'm compiled it yesterday - and download latest repository snapshot (by the 06 April 2010 ).

does hostname resolving work?
 
hm.

You only need /etc/resolv.conf

see this

> I am trying to get the ping working in Android running on ARM.
>
> Ping to IP addresses works fine but when I ping to name I get
>
> "ping: unknown hostwww.yahoo.com"
>
> I have already setup the default gateway:
> route add default gw 192.168.0.17
>
> Also /etc/resolv.conf is also there:
> echo nameserver 4.2.2.2 > /etc/resolv.conf
>
> And ping to nameserver works fine!
>
> Also I have /etc/nsswitch.conf as:
> echo "hosts: files dns" > /etc/nsswitch.conf
>
> If I add entries in /etc/hosts then the ping with name works fine.
>
> Has anyone seen this problem before?
--~--~---------~--~----~------------~-------~--~----~
 
Yes, but he says, this does not help? => And ping to nameserver works fine!

If I add entries in /etc/hosts then the ping with name works fine.

But he never said generally dnsname resolving works?


At this moment I'm using busybox from some modaco rom ipkg repository.

See the attachment on my post here
https://www.android-hilfe.de/forum/...usybox-tutorial.15042-page-4.html#post-198681

And may be it is here too old (2001...) but perhaps essential
http://lists.busybox.net/pipermail/busybox/2001-November/005103.html
XVilka schrieb:
hm.

You only need /etc/resolv.conf

see this

> I am trying to get the ping working in Android running on ARM.
>
> Ping to IP addresses works fine but when I ping to name I get
>
> "ping: unknown hostwww.yahoo.com"
>
> I have already setup the default gateway:
> route add default gw 192.168.0.17
>
> Also /etc/resolv.conf is also there:
> echo nameserver 4.2.2.2 > /etc/resolv.conf
>
> And ping to nameserver works fine!
>
> Also I have /etc/nsswitch.conf as:
> echo "hosts: files dns" > /etc/nsswitch.conf
>
> If I add entries in /etc/hosts then the ping with name works fine.
>
> Has anyone seen this problem before?
--~--~---------~--~----~------------~-------~--~----~
 
Zuletzt bearbeitet:
You use freeasabeer busybox )

Ok. At this evening i try add patch to resolv work.
To latest busybox tree
 
  • Danke
Reaktionen: b.pwned und herrlado
XVilka schrieb:
You use freeasabeer busybox )

Ok. At this evening i try add patch to resolv work.
To latest busybox tree


I dont use glibc - i use or uClibc, or dietlibc for static compiling for better perfomance.

So, i dnot have nss lib. I need to write some code to adding functionality.
 
Now that we have debian/ubuntu running on the milestone (ubuntu karmic here), we could directly compile busybox as standalone binary there, without the need for annoying and stupid cross compiling anymore.

I might try this sometime soon.
 
Zuletzt bearbeitet:
Milp schrieb:
Now that we have debian/ubuntu running on the milestone (ubuntu karmic here)

Really on the milestone?? Is there a documentation about this anywhere? Could you please give me a hint?

Ok, found it here..
 
Zuletzt bearbeitet:
strange cause the build number is much lower xvilka. i dont see any reason why the build number is lower if the source is newer.

and much smaller from the 1.18 build i found
 
Zuletzt bearbeitet von einem Moderator:

Anhänge

  • dnsmasq.zip
    106,2 KB · Aufrufe: 164
ok and what is about the size?
 

Ähnliche Themen

P
Antworten
8
Aufrufe
2.160
-FuFu-
-FuFu-
S
  • safetyservices
Antworten
1
Aufrufe
2.026
dragonball
dragonball
M
Antworten
5
Aufrufe
2.239
Mais
M
Zurück
Oben Unten