diff --git a/Changelog b/Changelog index ebc69bd37..5678f60c2 100644 --- a/Changelog +++ b/Changelog @@ -1,9 +1,11 @@ 0.43 * Busybox can now work perfectly when /proc is disabled, thereby - saving a bunch of memory (kernel /proc support is not thin). - This is done by making use of some nice kernel patches I - wrote up to support the features that busybox requires and - that /proc usually provides. + saving a bunch of memory (kernel /proc support is not thin). This + is done by making use of some nice kernel patches I wrote up to + support the features that busybox requires and that /proc usually + provides. To enable this, turn on BB_FEATURE_USE_DEVPS_PATCH and + patch your kernel with the devps patch in the kernel-patches/ + directory. * Wrote basename, killall, and uptime. * Added freeramdisk, which will free up all memory associated with a ram disk. Contributed by Emanuele Caratti diff --git a/busybox.def.h b/busybox.def.h index 561c2ed4b..fdbb6fed6 100644 --- a/busybox.def.h +++ b/busybox.def.h @@ -114,7 +114,7 @@ // the /proc filesystem and thereby saving lots and lots // memory for more important things. // You can't use this and USE_PROCFS at the same time... -//#define BB_FEATURE_USE_DEVPS_N_DEVMTAB +//#define BB_FEATURE_USE_DEVPS_PATCH // // // enable features that use the /proc filesystem (apps that diff --git a/lsmod.c b/lsmod.c index b8834d304..27fabc1fe 100644 --- a/lsmod.c +++ b/lsmod.c @@ -27,7 +27,7 @@ extern int lsmod_main(int argc, char **argv) { -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH char *cmd[] = { "cat", "/dev/modules", "\0" }; #else #if ! defined BB_FEATURE_USE_PROCFS diff --git a/modutils/lsmod.c b/modutils/lsmod.c index b8834d304..27fabc1fe 100644 --- a/modutils/lsmod.c +++ b/modutils/lsmod.c @@ -27,7 +27,7 @@ extern int lsmod_main(int argc, char **argv) { -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH char *cmd[] = { "cat", "/dev/modules", "\0" }; #else #if ! defined BB_FEATURE_USE_PROCFS diff --git a/mount.c b/mount.c index f46664bf4..c29be5106 100644 --- a/mount.c +++ b/mount.c @@ -46,7 +46,7 @@ #include #include #include -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH #include #endif @@ -255,7 +255,7 @@ mount_one(char *blockDevice, char *directory, char *filesystemType, fclose(f); } else #endif -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH if (strcmp(filesystemType, "auto") == 0) { int fd, i, numfilesystems; char device[] = "/dev/mtab"; @@ -325,7 +325,7 @@ extern int mount_main(int argc, char **argv) /* Only compiled in if BB_MTAB is not defined */ whine_if_fstab_is_missing(); -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH if (argc == 1) { int fd, i, numfilesystems; char device[] = "/dev/mtab"; diff --git a/procps/ps.c b/procps/ps.c index b9ff5bd0b..f01cf99e4 100644 --- a/procps/ps.c +++ b/procps/ps.c @@ -38,7 +38,7 @@ #include -#if ! defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if ! defined BB_FEATURE_USE_DEVPS_PATCH /* The following is the first ps implementation -- * the one using the /proc virtual filesystem. @@ -184,7 +184,7 @@ extern int ps_main(int argc, char **argv) } -#else /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#else /* BB_FEATURE_USE_DEVPS_PATCH */ /* The following is the second ps implementation -- @@ -284,5 +284,5 @@ extern int ps_main(int argc, char **argv) exit (0); } -#endif /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#endif /* BB_FEATURE_USE_DEVPS_PATCH */ diff --git a/ps.c b/ps.c index b9ff5bd0b..f01cf99e4 100644 --- a/ps.c +++ b/ps.c @@ -38,7 +38,7 @@ #include -#if ! defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if ! defined BB_FEATURE_USE_DEVPS_PATCH /* The following is the first ps implementation -- * the one using the /proc virtual filesystem. @@ -184,7 +184,7 @@ extern int ps_main(int argc, char **argv) } -#else /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#else /* BB_FEATURE_USE_DEVPS_PATCH */ /* The following is the second ps implementation -- @@ -284,5 +284,5 @@ extern int ps_main(int argc, char **argv) exit (0); } -#endif /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#endif /* BB_FEATURE_USE_DEVPS_PATCH */ diff --git a/util-linux/mount.c b/util-linux/mount.c index f46664bf4..c29be5106 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -46,7 +46,7 @@ #include #include #include -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH #include #endif @@ -255,7 +255,7 @@ mount_one(char *blockDevice, char *directory, char *filesystemType, fclose(f); } else #endif -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH if (strcmp(filesystemType, "auto") == 0) { int fd, i, numfilesystems; char device[] = "/dev/mtab"; @@ -325,7 +325,7 @@ extern int mount_main(int argc, char **argv) /* Only compiled in if BB_MTAB is not defined */ whine_if_fstab_is_missing(); -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH if (argc == 1) { int fd, i, numfilesystems; char device[] = "/dev/mtab"; diff --git a/utility.c b/utility.c index c3f9947c5..cdf1c0379 100644 --- a/utility.c +++ b/utility.c @@ -58,7 +58,7 @@ /* Busybox mount uses either /proc/filesystems or /dev/mtab to get the * list of available filesystems used for the -t auto option */ -#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_PATCH //#error Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again. #error "Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again." #endif @@ -71,10 +71,10 @@ const char mtab_file[] = "/proc/mounts"; # if defined BB_MTAB const char mtab_file[] = "/etc/mtab"; # else -# if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +# if defined BB_FEATURE_USE_DEVPS_PATCH const char mtab_file[] = "/dev/mtab"; # else -# error With (BB_MOUNT||BB_UMOUNT||BB_DF) defined, you must define either BB_MTAB or ( BB_FEATURE_USE_PROCFS | BB_FEATURE_USE_DEVPS_N_DEVMTAB) +# error With (BB_MOUNT||BB_UMOUNT||BB_DF) defined, you must define either BB_MTAB or ( BB_FEATURE_USE_PROCFS | BB_FEATURE_USE_DEVPS_PATCH) # endif # endif # endif @@ -1249,11 +1249,11 @@ extern int device_open(char *device, int mode) #if defined BB_KILLALL || defined BB_FEATURE_LINUXRC && ( defined BB_HALT || defined BB_REBOOT || defined BB_POWEROFF ) -#ifdef BB_FEATURE_USE_DEVPS_N_DEVMTAB +#ifdef BB_FEATURE_USE_DEVPS_PATCH #include #endif -#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB +#if defined BB_FEATURE_USE_DEVPS_PATCH /* findPidByName() * * This finds the pid of the specified process, @@ -1314,7 +1314,7 @@ extern pid_t findPidByName( char* pidName) return thePid; } -#else /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#else /* BB_FEATURE_USE_DEVPS_PATCH */ #if ! defined BB_FEATURE_USE_PROCFS #error Sorry, I depend on the /proc filesystem right now. #endif @@ -1362,7 +1362,7 @@ extern pid_t findPidByName( char* pidName) } return 0; } -#endif /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */ +#endif /* BB_FEATURE_USE_DEVPS_PATCH */ #endif /* BB_INIT || BB_HALT || BB_REBOOT || BB_KILLALL || BB_POWEROFF */ #if defined BB_GUNZIP \