Skip to content
Win32 native port for Busybox (latest build can bw found in the below link)
C Shell Makefile C++ Yacc HTML Other
Find file
Failed to load latest commit information.
applets Aboriginal linux/musl build fixes Oct 5, 2015
applets_sh applets_sh/*: Add a few more examples of "shell applets" Feb 9, 2012
arch/i386 add comment why preferred stack boundary is 4 on i386 Jul 23, 2007
archival Merge branch 'busybox' into merge Oct 31, 2015
configs mingw: update default configuration Feb 22, 2016
console-tools Removes stray empty line from code Jul 13, 2015
coreutils Merge branch 'busybox' into merge Feb 22, 2016
debianutils Merge branch 'busybox' into merge Oct 19, 2015
docs dd: support iflag=skip_bytes Feb 1, 2016
e2fsprogs fsck: do not use statics Oct 19, 2015
editors Merge branch 'busybox' into merge Feb 22, 2016
examples tweak zcip service example Oct 24, 2015
findutils Merge branch 'busybox' into merge Oct 31, 2015
include Silence a couple of compiler warnings Mar 6, 2016
init init: make the command-line rewrite optional Feb 11, 2016
libbb Merge branch 'busybox' into merge Feb 22, 2016
libpwdgrp libbb: make parse_chown_usergroup_or_die() set unspecified uid/gid to -1 Oct 19, 2015
loginutils login: add commented-out PAM double password avoidance from BZ 4003 Jan 3, 2016
mailutils build system: -fno-builtin-printf Oct 7, 2015
miscutils Merge branch 'busybox' into merge Feb 22, 2016
modutils modprobe: only parse files that end in .conf Feb 12, 2016
networking Merge branch 'busybox' into merge Feb 22, 2016
printutils printutils/*: convert to new-style "one file" applets Oct 19, 2015
procps Merge branch 'busybox' into merge Oct 31, 2015
qemu_multiarch_testing qemu_multiarch_testing/README: add a list of qemu's needed Oct 20, 2015
runit runit/*: convert to new-style "one file" applets Oct 19, 2015
scripts Merge branch 'busybox' into merge Feb 22, 2016
selinux Removes stray empty line from code Jul 13, 2015
shell Merge branch 'busybox' into merge Feb 22, 2016
sysklogd Fix compiling with musl's utmp stubs Feb 1, 2016
testsuite sed: make 's///w FILE' actually write to FILE. Closes 8251 Jan 24, 2016
util-linux Merge branch 'busybox' into merge Feb 22, 2016
win32 Silence a couple of compiler warnings Mar 6, 2016
.gitignore Merge branch 'busybox' into merge Mar 14, 2015
.indent.pro First revision of the Busybox Style Guide and an accompanying .indent… Jul 24, 2000
AUTHORS AUTHORS: mention Jie Zhang Jan 5, 2010
Config.in Merge branch 'busybox' into merge Feb 22, 2016
INSTALL Tweak INSTALL text Apr 17, 2012
LICENSE LICENSE: update address of the FSF May 6, 2009
Makefile Merge branch 'busybox' into merge Oct 13, 2015
Makefile.custom applets: Add installation of individual binaries Jul 1, 2015
Makefile.flags mingw: add -fno-ident to CFLAGS Feb 22, 2016
Makefile.help build system: "make hosttools" doesn't exist, remove it from "make help" Jan 9, 2014
README Merge branch 'busybox' into merge May 18, 2015
README.md Update README.md Oct 15, 2015
TODO TODO file: remove mpstat, iostat, powertop - we have them now Nov 4, 2015
TODO_unicode ls: unicode fixes Jan 31, 2010

README.md

Status

Things may work for you, or may not. Things may never work because of huge differences between Linux and Windows. Or things may work in future, if you report the problem to https://github.com/rmyorston/busybox-w32.

Building

You need a MinGW compiler and a POSIX environment (so that make menuconfig works). I cross-compile on Linux. On Fedora or RHEL/CentOS+EPEL installing mingw32-gcc (32-bit build) or mingw64-gcc (64-bit build) will pull in everything needed.

To start, run make mingw32_defconfig or make mingw64_defconfig. You can then customize your build with make menuconfig.

In particular you may need to adjust the compiler by going to Busybox Settings -> Build Options -> Cross Compiler Prefix

Then just make.

Limitations

  • Use forward slashes in paths: Windows doesn't mind and the shell will be happier.
  • Don't do wild things with Windows drive or UNC notation.
  • Wildcard expansion is disabled by default, though it can be turned on at compile time. This only affects command line arguments to the binary: the BusyBox shell has full support for wildcards.
  • Handling of users, groups and permissions is totally bogus. The system only admits to knowing about the current user and always returns the same hardcoded uid, gid and permission values.
  • Some crufty old Windows code (Windows XP, cmd.exe) doesn't like forward slashes in environment variables. The -X shell option (which must be the first argument) prevents busybox-w32 from changing backslashes to forward slashes. If Windows programs don't run from the shell it's worth trying it.
  • If you want to install 32-bit BusyBox in a system directory on a 64-bit version of Windows you should put it in C:\Windows\SysWOW64, not C:\Windows\System32 as you might expect. On 64-bit systems the latter is for 64-bit binaries.
Something went wrong with that request. Please try again.