From: Sascha Hauer <s.hauer@pengutronix.de>
To: Barebox List <barebox@lists.infradead.org>
Subject: [PATCH 21/27] net: update network docs
Date: Fri, 1 Dec 2017 12:22:50 +0100 [thread overview]
Message-ID: <20171201112256.20196-22-s.hauer@pengutronix.de> (raw)
In-Reply-To: <20171201112256.20196-1-s.hauer@pengutronix.de>
The network configuration has changed in the previous patches. Update
the documentation accordingly.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
Documentation/user/booting-linux.rst | 40 ++++----------
Documentation/user/networking.rst | 101 +++++++++++++++++++++++++++++++++--
2 files changed, 105 insertions(+), 36 deletions(-)
diff --git a/Documentation/user/booting-linux.rst b/Documentation/user/booting-linux.rst
index 66f64ece08..b5e4320ef6 100644
--- a/Documentation/user/booting-linux.rst
+++ b/Documentation/user/booting-linux.rst
@@ -232,43 +232,20 @@ Network boot
With the following steps, barebox can start the kernel and root filesystem
over the network, a standard development case.
-Configure network: edit ``/env/network/eth0``. For a standard DHCP setup
-the following is enough:
-
-.. code-block:: sh
-
- #!/bin/sh
-
- ip=dhcp
- serverip=192.168.23.45
-
-The optional setting ``serverip`` specifies the IP address of your TFTP and NFS
-server, and is only necessary if it differs from the server IP offered by the
-DHCP server (i.e., the field ``siaddr`` in the DHCP ACK Reply).
-
-A static IP setup can look like this:
-
-.. code-block:: sh
-
- #!/bin/sh
-
- ip=static
- ipaddr=192.168.2.10
- netmask=255.255.0.0
- gateway=192.168.2.1
- serverip=192.168.2.1
+See :ref:`networking` for informations how to configure your network interfaces.
Note that barebox will pass the same IP settings to the kernel, i.e. it passes
-``ip=$ipaddr:$serverip:$gateway:$netmask::eth0:`` for a static IP setup and
-``ip=dhcp`` for a dynamic DHCP setup.
+``ip=$ipaddr:$serverip:$gateway:$netmask::<linuxdevname>:`` for a static IP setup
+and ``ip=dhcp`` for a dynamic DHCP setup. ``<linuxdevname>`` is a configurable value.
+set ``nv.dev.<ethdev>.linuxdevname`` to the name the device has in Linux.
By default, barebox uses the variables ``global.user`` and ``global.hostname``
to retrieve its kernel image over TFTP, which makes it possible to use multiple
boards for multiple users with one single server.
-You can adjust those variables in ``/env/config``::
+You can adjust those variables using nvvars with these commands::
- global.user=sha
- global.hostname=efikasb
+ nv user=sha
+ nv hostname=efikasb
Copy the kernel (and devicetree if needed) to the root directory of your TFTP
server, and name them accordingly; for example::
@@ -311,7 +288,8 @@ If the preconfigured paths or names are not suitable, they can be adjusted in
fi
nfsroot="/home/${global.user}/nfsroot/${global.hostname}"
- bootargs-ip
+ ip_route_get -b ${global.net.server} global.linux.bootargs.dyn.ip
+
global.linux.bootargs.dyn.root="root=/dev/nfs nfsroot=$nfsroot,v3,tcp"
``boot net`` will then retrieve the kernel (and also the device tree and
diff --git a/Documentation/user/networking.rst b/Documentation/user/networking.rst
index 8afb433837..5822165281 100644
--- a/Documentation/user/networking.rst
+++ b/Documentation/user/networking.rst
@@ -1,3 +1,5 @@
+.. _networking:
+
Networking
==========
@@ -7,6 +9,49 @@ barebox has IPv4 networking support. Several protocols such as :ref:`DHCP
Network configuration
---------------------
+Lowlevel network device configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Network devices are configured with a set of device specific variables:
+
++-------------------+--------------+----------------------------------------------------+
+| name | type | |
++===================+==============+====================================================+
+| <devname>.mode | enum | "dhcp": DHCP is used to get IP address and netmask |
+| | | "static": Static IP setup described by variables |
+| | | below |
+| | | "disabled": Interface unused |
++-------------------+--------------+----------------------------------------------------+
+| <devname>.ipaddr | ipv4 address | The IP address when using static configuration |
++-------------------+--------------+----------------------------------------------------+
+| <devname>.netmask | ipv4 address | The netmask when using static configuration |
++-------------------+--------------+----------------------------------------------------+
+| <devname>.gateway | ipv4 address | Alias for global.net.gateway. For |
+| | | compatibility, do not use. |
++-------------------+--------------+----------------------------------------------------+
+| <devname>.serverip| ipv4 address | Alias for global.net.server. For |
+| | | compatibility, do not use. |
++-------------------+--------------+----------------------------------------------------+
+| <devname>.ethaddr | MAC address | The MAC address of this device |
++-------------------+--------------+----------------------------------------------------+
+
+Additionally there are some more variables that are not specific to a
+device:
+
++------------------------------+--------------+------------------------------------------------+
+| name | type | |
++==============================+==============+================================================+
+| global.net.gateway | ipv4 host | The network gateway used when a host is not in |
+| | | any directly visible subnet. May be set |
+| | | automatically by DHCP. |
++------------------------------+--------------+------------------------------------------------+
+| global.net.server | ipv4 host | The default server address. If unspecified, may|
+| | | be set by DHCP |
++------------------------------+--------------+------------------------------------------------+
+| global.net.nameserver | ipv4 address | The DNS server used for resolving host names. |
+| | | May be set by DHCP |
++------------------------------+--------------+------------------------------------------------+
+
The first step for networking is configuring the network device. The network
device is usually ``eth0``. The current configuration can be viewed with the
:ref:`devinfo <command_devinfo>` command:
@@ -16,10 +61,9 @@ device is usually ``eth0``. The current configuration can be viewed with the
barebox:/ devinfo eth0
Parameters:
ethaddr: 00:1c:49:01:03:4b
- gateway: 192.168.23.1
ipaddr: 192.168.23.197
netmask: 255.255.0.0
- serverip: 192.168.23.1
+ [...]
The configuration can be changed on the command line with:
@@ -30,9 +74,56 @@ The configuration can be changed on the command line with:
The :ref:`dhcp command <command_dhcp>` will change the settings based on the answer
from the DHCP server.
-This low-level configuration of the network interface is often not necessary. Normally
-the network settings should be edited in ``/env/network/eth0``, then the network interface
-can be brought up using the :ref:`ifup command <command_ifup>`.
+To make the network device settings persistent across reboots there is a nonvolatile
+variable (nvvar) for each of the varariables above. The network device specific variables
+are:
+
+.. code-block:: sh
+
+ nv.dev.<devname>.mode
+ nv.dev.<devname>.ipaddr
+ nv.dev.<devname>.netmask
+ nv.dev.<devname>.ethaddr
+
+The others are:
+
+.. code-block:: sh
+
+ nv.net.gateway
+ nv.net.server
+ nv.net.nameserver
+
+A typical simple network setting is to use DHCP. Provided the network interface is eth0
+then this would configure the network device for DHCP:
+
+.. code-block:: sh
+
+ nv dev.eth0.mode=dhcp
+
+(In fact DHCP is the default, so the above is not necessary)
+
+A static setup would look like:
+
+.. code-block:: sh
+
+ nv dev.eth0.mode=static
+ nv dev.eth0.ipaddr=192.168.0.17
+ nv dev.eth0.netmask=255.255.0.0
+ nv net.server=192.168.0.1
+
+The settings can be activated with the :ref:`ifup command <command_ifup>`:
+
+.. code-block:: sh
+
+ ifup eth0
+
+or:
+
+.. code-block:: sh
+
+ ifup -a
+
+'ifup -a' will activate all ethernet interfaces, also the ones on USB.
Network filesystems
-------------------
--
2.11.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2017-12-01 11:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 11:22 [PATCH v2] Networking updates Sascha Hauer
2017-12-01 11:22 ` [PATCH 01/27] detect command: Drop -e option Sascha Hauer
2017-12-01 11:22 ` [PATCH 02/27] driver: Add device_detect_all() function Sascha Hauer
2017-12-01 11:22 ` [PATCH 03/27] nvvar: when setting a nvvar to NULL just free the content Sascha Hauer
2017-12-01 11:22 ` [PATCH 04/27] net: use pr_* functions for messages Sascha Hauer
2017-12-01 11:22 ` [PATCH 05/27] net: Add and use IP_BROADCAST Sascha Hauer
2017-12-01 11:22 ` [PATCH 06/27] net: Make domainname and nameserver globalvars Sascha Hauer
2017-12-01 11:22 ` [PATCH 07/27] net: Add functions to get/set nameserver and domainname Sascha Hauer
2017-12-01 11:22 ` [PATCH 08/27] net: introduce global.net.server Sascha Hauer
2017-12-01 11:22 ` [PATCH 09/27] net: dhcp: Do not overwrite serverip if it is valid Sascha Hauer
2017-12-01 11:22 ` [PATCH 10/27] net: Use a single gateway Sascha Hauer
2017-12-01 11:22 ` [PATCH 11/27] net: allow udp connections on specified network device Sascha Hauer
2017-12-01 11:22 ` [PATCH 12/27] net: dhcp: Allow to specify " Sascha Hauer
2017-12-01 11:22 ` [PATCH 13/27] net: dhcp: avoid unnecessary casts Sascha Hauer
2017-12-01 11:22 ` [PATCH 14/27] net: dhcp: Coding style fixes Sascha Hauer
2017-12-01 11:22 ` [PATCH 15/27] net: dhcp: rework Sascha Hauer
2017-12-08 21:56 ` Oleksij Rempel
2017-12-01 11:22 ` [PATCH 16/27] net: Pick network device based on IP settings Sascha Hauer
2017-12-01 11:22 ` [PATCH 17/27] net: remove "current" network device Sascha Hauer
2017-12-01 11:22 ` [PATCH 18/27] net: ifup: Factor out a eth_discover function Sascha Hauer
2017-12-01 11:22 ` [PATCH 19/27] ifup: Use dhcp C API rather than running command Sascha Hauer
2017-12-01 11:22 ` [PATCH 20/27] net: Provide new way to configure network devices Sascha Hauer
2017-12-01 11:22 ` Sascha Hauer [this message]
2017-12-01 11:22 ` [PATCH 22/27] net: environment: remove ethx setup files Sascha Hauer
2017-12-01 11:22 ` [PATCH 23/27] net: environment: update automounts Sascha Hauer
2017-12-01 11:22 ` [PATCH 24/27] defaultenv: Add README for new network config Sascha Hauer
2017-12-01 11:22 ` [PATCH 25/27] net: Add linuxdevname property Sascha Hauer
2017-12-01 11:22 ` [PATCH 26/27] commands: Add ip_route_add command Sascha Hauer
2017-12-01 11:22 ` [PATCH 27/27] defaultenv-2: set bootargs correctly for network boot Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171201112256.20196-22-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox