1.3. Networking

barebox has IPv4 networking support. Several protocols such as DHCP, NFS and TFTP are supported.

1.3.1. Network configuration Lowlevel network device configuration

Network devices are configured with a set of device specific variables:





“dhcp”: DHCP is used to get IP address and netmask “static”: Static IP setup described by variables below “disabled”: Interface unused


ipv4 address

The IP address when using static configuration


ipv4 address

The netmask when using static configuration


ipv4 address

Alias for global.net.gateway. For compatibility, do not use.


ipv4 address

Alias for global.net.server. For compatibility, do not use.


MAC address

The MAC address of this device

Additionally there are some more variables that are not specific to a device:




ipv4 host

The network gateway used when a host is not in any directly visible subnet. May be set automatically by DHCP.


hostname or ipv4 address

The default server used by the defaultenv boot scripts for NFS and TFTP; see Network boot. If unspecified, may be set by DHCP.


ipv4 address

The DNS server used for resolving host names. May be set by DHCP.



Set to true if your network device is not detected automatically during start (i.e. for USB network adapters).

The first step for networking is configuring the network device. The network device is usually eth0. The current configuration can be viewed with the devinfo command:

barebox:/ devinfo eth0
  ethaddr: 00:1c:49:01:03:4b

The configuration can be changed on the command line with:


The dhcp command will change the settings based on the answer from the DHCP server.

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:


The others are:


A typical simple network setting is to use DHCP. Provided the network interface is eth0 then this would configure the network device for DHCP:

nv dev.eth0.mode=dhcp

(In fact DHCP is the default, so the above is not necessary)

A static setup would look like:

nv dev.eth0.mode=static
nv dev.eth0.ipaddr=
nv dev.eth0.netmask=
nv net.server=

The settings can be activated with the ifup command:

ifup eth0


ifup -a

‘ifup -a’ will activate all ethernet interfaces, also the ones on USB.

1.3.2. Network filesystems

barebox supports NFS and TFTP both with commands (nfs and tftp) and as filesystem implementations; see NFS Support and TFTP filesystem for more information. After the network device has been brought up, a network filesystem can be mounted with:

mount -t tftp /mnt


mount -t nfs none /mnt

NOTE: The execution of the mount command can often be hidden behind the automount command, to make mounting transparent to the user.

1.3.3. Network console

barebox has a UDP-based network console. If enabled in the config, you will see something like this during startup:

registered netconsole as netconsole

By default the network console is disabled during runtime to prevent security risks. It can be enabled using:


This will send UDP packets to a PC with IP address and port 6666.

The netconsole.active parameter consists of the fields “input” (i), “output” (o) and “error” (e); if the fields are set, the respective channel is activated on the network console.

On the PC side, the scripts/netconsole script can be used to remote control barebox:

scripts/netconsole <board IP> 6666

The netconsole can be used just like any other console. Note, however, that the simple console protocol is UDP based, so there is no guarantee about packet loss.