Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | .. SPDX-License-Identifier: GPL-2.0+: .. index:: single: wget (command) wget command ============ Synopsis -------- :: wget [address] [host:]path wget [address] url # lwIP only Description ----------- The wget command is used to download a file from an HTTP(S) server. In order to use HTTPS you will need to compile wget with lwIP support. Legacy syntax ~~~~~~~~~~~~~ The legacy syntax is supported by the legacy network stack (CONFIG_NET=y) as well as by the lwIP base network stack (CONFIG_NET_LWIP=y). It supports HTTP only. By default the destination port is 80 and the source port is pseudo-random. On the legacy nework stack the environment variable *httpdstp* can be used to set the destination port address memory address for the data downloaded host IP address (or host name if `CONFIG_CMD_DNS` is enabled) of the HTTP server, defaults to the value of environment variable *serverip*. path path of the file to be downloaded. New syntax (lwIP only) ~~~~~~~~~~~~~~~~~~~~~~ In addition to the syntax described above, wget accepts URLs if the network stack is lwIP. address memory address for the data downloaded url HTTP or HTTPS URL, that is: http[s]://<host>[:<port>]/<path>. Examples -------- Example with the legacy network stack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In the example the following steps are executed: * setup client network address * download a file from the HTTP server :: => setenv autoload no => dhcp BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 23 *** Unhandled DHCP Option in OFFER/ACK: 23 DHCP client bound to address 192.168.1.105 (210 ms) => wget ${loadaddr} 192.168.1.254:/index.html HTTP/1.0 302 Found Packets received 4, Transfer Successful Example with lwIP ~~~~~~~~~~~~~~~~~ In the example the following steps are executed: * setup client network address * download a file from the HTTPS server :: => dhcp DHCP client bound to address 10.0.2.15 (3 ms) => wget https://download.rockylinux.org/pub/rocky/9/isos/aarch64/Rocky-9.4-aarch64-minimal.iso ########################################################################## ########################################################################## ########################################################################## [...] 1694892032 bytes transferred in 492181 ms (3.3 MiB/s) Bytes transferred = 1694892032 (65060000 hex) Configuration ------------- The command is only available if CONFIG_CMD_WGET=y. To enable lwIP support set CONFIG_NET_LWIP=y. TCP Selective Acknowledgments in the legacy network stack can be enabled via CONFIG_PROT_TCP_SACK=y. This will improve the download speed. Selective Acknowledgments are enabled by default with lwIP. .. note:: U-Boot currently has no way to verify certificates for HTTPS. A place to store the root CA certificates is needed, and then MBed TLS would need to walk the entire chain. Therefore, man-in-the middle attacks are possible and HTTPS should not be relied upon for payload authentication. Return value ------------ The return value $? is 0 (true) on success and 1 (false) otherwise. |