aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2020-06-11hwclock: just assume /dev/rtc0.Elliott Hughes
(Apologies for the length of this commit message, but it's not entirely clear how we arrived at our present state, and right now all three of toybox, busybox, and util-linux differ from each other. And it took a week of arguments behind the scenes to agree on what we thought was the right behavior, which seemed worth capturing for posterity.) This reverts my change ef0546d4f536f42a57af4c32bd37f7fd752d10c2 from 2015. The commit message back then claimed: For systems using /dev/rtcN, /dev/rtc0 isn't necessarily the RTC that's used to provide the system time at boot time. We need to search for the RTC whose /sys/class/rtc/rtcN/hctosys contains "1". A few things to note here: 1. I can't find any historical motivation for this change. There's no bug, there's no internal email thread, and I can't even find anything referring to devices using anything other than /dev/rtc0. 2. It turns out (though this wasn't true at the time) that the kernel since 4.19 interprets hctosys as the RTC that *did* set the clock, not the RTC that *should* set the clock. 3. That's not an academic difference. If you have a cheap RTC that isn't battery-backed, or you have an RTC whose battery died, and you're using Linux 4.19 or later, you will boot with no RTC having hctosys=1. 4. An actual SoC vendor has hit this in practice. My original toybox patch appears to be equivalent to code in the Android frameworks, which -- under the auspices of the SoC vendor's bug -- I'm about to replace with code that checks "/dev/rtc" first, then "/dev/rtc0", then fails hard. (Strictly, it's this copy of the search that's causing the SoC vendor issues. AFAIK no-one's using hwclock/rtcwake except interactively. And even if they are, Android devices ship with [at least] two copies of toybox, so code/scripts on the vendor partition will continue to run the vendor copy of toybox they were developed against, and a newer toybox elsewhere on the system won't affect them.) All Android devices (and emulators) available to me at the moment use /dev/rtc0, but supporting /dev/rtc gives a workaround for anyone who really insists on using an RTC other than /dev/rtc0. That said, the Generic Kernel Image (GKI) always assumes /dev/rtc0, so going forward /dev/rtc0 is always the right choice. I did consider making toybox hwclock try /dev/rtc, /dev/rtc0, and /dev/misc/rtc -- and even wrote the code for that first -- but strace shows that busybox and util-linux's hwclock implementations differ in the order in which they try these (busybox tries /dev/rtc first, util-linux tries /dev/rtc0 first). Given that util-linux seems like the more canonical precedent, trying /dev/rtc0 and then falling back to /dev/rtc would offer no advantage to Android users (and would seem to be just another stumbling block in getting everyone to a world where /dev/rtc0 is "the" system RTC). Note that rtcwake is unaffected by all this, because the toybox and util-linux implementations both default to only trying /dev/rtc0 already. Bug: https://issuetracker.google.com/158051176
2020-06-10Chunk of job control pumbing.Rob Landley
2020-06-09chmod: fix -R and dangling symlinks.Elliott Hughes
Found trying to run the libc++ tests. For coreutils, `info chmod` says: 'chmod' ignores symbolic links encountered during recursive directory traversals. Bug: http://b/155809792
2020-06-09tar: fix bugs with adding hardlinks to archiveWilliam Djupström via Toybox
2020-06-09Inline/remove block_end() and skip_andor(). Add ->end pointer to sh_pipelineRob Landley
pointing to end of current block so we don't have to search for it later.
2020-06-08tar: fix extracting long file pathsWilliam Djupström
2020-06-05Fix DNS 2 is the DHCP client.Erik Moqvist
2020-06-02Build works fine on glibc but breaks on musl, add a workaround.Rob Landley
2020-06-02Fix AF_INET6 hostlookupsEric Molitor
2020-06-02Autodetect if IPv6 address is used and display warningEric Molitor
2020-06-02Cleanup setRoute and resolve warnings about alignment and NULL argsEric Molitor
2020-06-02Implement hostname lookups in display_routesEric Molitor
2020-05-31sed: add -s to the synopsis too.Elliott Hughes
2020-05-30Ethan Sommer pointed out an unnecessary return.Rob Landley
2020-05-29Add sed -sRob Landley
2020-05-28remove unneeded ; after GLOBALSEthan Sommer
2020-05-27route: remove unused get_hostname()Ethan Sommer
2020-05-27Trivial cleanup.Rob Landley
2020-05-27Cleanup pass.Rob Landley
2020-05-27dhcpd: fix warningsEthan Sommer
Add presumably intended conversion specifier for gconfig.valid_lifetime as it is an argument to error_msg despite the format string having no conversion specifiers. Remove always true false inverse check for address of array gstate.rcvd.rcvd_pkt6.transaction_id.
2020-05-27Convert array_add() to arg_add().Rob Landley
2020-05-27devmem: replace getpagesize with POSIX sysconf(_SC_PAGESIZE)Ethan Sommer
2020-05-26Remove unused include and constantsEric Molitor
2020-05-26Merge ipv6 setroute into a single functionEric Molitor
2020-05-26Fix syntax checking for "if true; then echo hello | fi", fix some tests,Rob Landley
slightly more elaborate debug output.
2020-05-26First pass of adding RTNetlink setroute supportEric Molitor
2020-05-26Remove send_nlrtmsg embedding call into display_route as it is only used hereEric Molitor
2020-05-26Use perror_exit to replace exit calls.Eric Molitor
2020-05-24Cleanup openvt.Rob Landley
2020-05-24Cleanup blkdiscard.Rob Landley
Yeah, this limits 32 bit support, but that's a "fix it properly in lib/args.c or don't care" issue. Why work around it here when truncate -s doesn't?
2020-05-21vmstat: increase column sizesPetri Gynther
Increase memory:swpd,free,cache to 7 characters Increase swap:si,so to 5 characters Increase system:in,cs to 5 characters Sample output from Pixel 4 phone: procs ------------memory------------ ----swap--- -----io---- ---system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 4 0 1111676 87896 6328 2268596 8152 11896 10712 14280 0 25712 31 21 46 3 17 0 1082788 224292 5972 2213996 73220 68908 2432 3948 1 26611 41 38 22 0 6 0 1127316 203196 5972 2225164 8980 53996 11796 788 0 25200 33 22 45 1 0 0 1133072 200984 5972 2225280 416 6260 52 88 0 8543 10 6 84 0 2 0 1128976 196976 5972 2225692 3588 0 340 800 0 5243 5 4 91 0
2020-05-19Add RTA_CACHEINFO support and resolve remaining todo items in display_routesEric Molitor
2020-05-19Don't leak sockfd into children.Rob Landley
2020-05-17Merge IPv6 support into display_routesEric Molitor
2020-05-17Don't ask for line continuation when ending with &Rob Landley
2020-05-17Add support for mss, win and irtt to new netlink based display_routesEric Molitor
2020-05-17Refactor display_routes to use rtnetlinkEric Molitor
2020-05-17Add xsend, xrecv and send_nlrtmsgEric Molitor
2020-05-16Fix address family help textEric Molitor
2020-05-13devmem: avoid sign extension.Elliott Hughes
Bug: http://b/156292059 Signed-off-by: Wei Wang <wvw@google.com>
2020-05-11route should be in sbinEric Molitor
2020-05-09Remove old scripts/minicom.sh and cleanup microcom.c a bit more.Rob Landley
Use s# instead of atoi, meantion -s default in help text, use toybuf instead of stack buf, reuse i instead of declaring a separate ssize_t, FLAG() macro.
2020-05-09Shrink sed --help from 150 lines to 91.Rob Landley
2020-05-08Don't have -L forward stderr automatically, break out -E to do that.Rob Landley
2020-05-08Inline do_main(), remove second argument of get_arg() that's always 0Rob Landley
(one caller fed in N_TTY which is 0).
2020-05-08stty.c: fix interpreting output of stty -gEthan Sommer
move case checking for stty -g output as input above case checking for an int argument, so atoi doesn't cause "500:5:bf:8a3b:3"... to be considered an int argument of 500
2020-05-06Kill zombies.Rob Landley
2020-05-06Minor doc tweaks.Rob Landley
2020-05-05Link to bash man page.Rob Landley
2020-05-05Remove leftover increment and move variable clear after error report.Rob Landley