November 26, 2025

Orange Pi R1 Plus LTS (RK3328) -- configure a DHCP server

This gets done on my x86 linux desktop system.

I discover I don't even have a dhcp server running at all! It is one of the things I never set up after doing a full reinstall on new disks on my x86 machine. So the first thing is to find and install packages. Then I should have a backup copy of my old config file.

Install the server and get it running

I am running Fedora 42. I do:
dnf install dhcpd
This installs the "dhcp-server" package. After this the file /etc/dhcp/dhcpd.conf appears.

I find my old config file at: /u8/root_f41/etc/dhcp/dhcpd.conf. I copy it to /etc/dhcp and then:

su
systemctl start dhcpd.service
On fedora my main (and only) working ethernet interface is "eno1". I check messages in /var/log/messages. It warns me that subnet enp10s0 is not configured. This is fine -- it is an ethernet interface I don't use.
I add these lines to dhcpd.conf --
            host petunia {
                    #hardware ethernet c0:74:2b:ff:af:ff;
                    hardware ethernet 32:87:c7:a6:0b:fa;
                    fixed-address 192.168.0.39;
                    option host-name "petunia";
                    server-name "trona";
                    filename "opir1.bin";
            }
I also add a line to /etc/hosts, then:
systemctl restart dhcpd.service
A quick note. Running "ifconfig -a" once Debian has booted shows a MAC address of 32:87:c7:a6:0b:fa which is different from what is marked on the board. Also looking at the environment in U-boot, I see:
ethaddr=32:87:c7:a6:0b:fa

At the U-boot prompt I type:

=> dhcp
Speed: 1000, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.0.39 (1 ms)
Using ethernet@ff540000 device
TFTP from server 192.168.0.5; our IP address is 192.168.0.39
Filename 'opir1.bin'.
Load address: 0x800800
Loading: *
TFTP error: 'File not found' (1)
Not retrying...
Perfect! Now I just need to put a file in /var/lib/tftpboot I do this:
cd /var/lib/tftpboot
cp rock.bin opir1.bin
Here "rock.bin" is a file laying around from my RK3399 experimenting a year ago.

Now I see:

=> dhcp
Speed: 1000, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.0.39 (0 ms)
Using ethernet@ff540000 device
TFTP from server 192.168.0.5; our IP address is 192.168.0.39
Filename 'opir1.bin'.
Load address: 0x800800
Loading: #
	 496.1 KiB/s
done
Bytes transferred = 1016 (3f8 hex)
I use the reset button to see if debian will now boot and ignore the filename. It does! And it sets the IP address to 39 just as I would like.
root@trona:/var/lib/tftpboot# ping petunia
PING petunia (192.168.0.39) 56(84) bytes of data.
64 bytes from petunia (192.168.0.39): icmp_seq=1 ttl=64 time=1.10 ms

Making network boot the default

This is a topic for its own page.
Have any comments? Questions? Drop me a line!

Tom's electronics pages / tom@mmto.org