From 67d5f04fbbeb15e2654a5ad5f3b0c0ab95e44bbc Mon Sep 17 00:00:00 2001 From: tiopex <67048640+tiopex@users.noreply.github.com> Date: Sat, 7 Sep 2024 04:13:58 +0200 Subject: [PATCH] Add dhcp server and client package (#124) --- board/miyoo/main/apps/dhclient/dhclient.sh | 6 + board/miyoo/main/apps/showip/showip.sh | 3 + .../main/apps/usb-network/usb-network.sh | 12 +- .../gmenu2x/sections/applications/dhclient | 3 + .../main/gmenu2x/sections/applications/showip | 3 + .../gmenu2x/sections/applications/usb-network | 2 +- board/miyoo/rootfs/etc/dhcp/dhcpd.conf | 109 ++++++++++++++++++ board/miyoo/rootfs/etc/resolv.conf | 2 + configs/miyoo_musl_defconfig | 3 + configs/miyoo_uclibc_defconfig | 3 + 10 files changed, 141 insertions(+), 5 deletions(-) create mode 100755 board/miyoo/main/apps/dhclient/dhclient.sh create mode 100755 board/miyoo/main/apps/showip/showip.sh create mode 100644 board/miyoo/main/gmenu2x/sections/applications/dhclient create mode 100644 board/miyoo/main/gmenu2x/sections/applications/showip create mode 100644 board/miyoo/rootfs/etc/dhcp/dhcpd.conf create mode 100644 board/miyoo/rootfs/etc/resolv.conf diff --git a/board/miyoo/main/apps/dhclient/dhclient.sh b/board/miyoo/main/apps/dhclient/dhclient.sh new file mode 100755 index 00000000..a2150c56 --- /dev/null +++ b/board/miyoo/main/apps/dhclient/dhclient.sh @@ -0,0 +1,6 @@ +#!/bin/busybox sh + +st -k -e "/bin/sh" "-c" "echo -e \"Acquiring ip address from DHCP, please wait...\"; sleep 2" +ln -s /run /var/lib/dhcp +dhclient + diff --git a/board/miyoo/main/apps/showip/showip.sh b/board/miyoo/main/apps/showip/showip.sh new file mode 100755 index 00000000..f8b4fa0d --- /dev/null +++ b/board/miyoo/main/apps/showip/showip.sh @@ -0,0 +1,3 @@ +#!/bin/busybox sh + +st -k -e "/bin/sh" "-c" "ifconfig usb0; sleep 5" \ No newline at end of file diff --git a/board/miyoo/main/apps/usb-network/usb-network.sh b/board/miyoo/main/apps/usb-network/usb-network.sh index 494ca76e..7a7d286e 100755 --- a/board/miyoo/main/apps/usb-network/usb-network.sh +++ b/board/miyoo/main/apps/usb-network/usb-network.sh @@ -1,4 +1,5 @@ #!/bin/busybox sh +st -k -e "/bin/sh" "-c" "echo -e \"Starting USB network, please wait...\"; sleep 2" MAC_HOST="12:34:56:78:9a:bd" MAC_DEV="12:34:56:78:9a:bc" @@ -42,10 +43,13 @@ ln -s functions/rndis.usb0 configs/c.1 ln -s configs/c.1 os_desc sleep 1 -ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC -sleep 5 -echo "" > UDC +#ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC +#sleep 5 +#echo "" > UDC + echo "0x00" > bDeviceClass ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC -ifconfig usb0 up 169.254.147.2 +ifconfig usb0 up 192.168.137.1 +sleep 10 +/etc/init.d/S80dhcp-server restart diff --git a/board/miyoo/main/gmenu2x/sections/applications/dhclient b/board/miyoo/main/gmenu2x/sections/applications/dhclient new file mode 100644 index 00000000..e0e326c6 --- /dev/null +++ b/board/miyoo/main/gmenu2x/sections/applications/dhclient @@ -0,0 +1,3 @@ +title=DHCP client +description=Start DHCP client +exec=/mnt/apps/dhclient/dhclient.sh diff --git a/board/miyoo/main/gmenu2x/sections/applications/showip b/board/miyoo/main/gmenu2x/sections/applications/showip new file mode 100644 index 00000000..2168bc4f --- /dev/null +++ b/board/miyoo/main/gmenu2x/sections/applications/showip @@ -0,0 +1,3 @@ +title=Show IP addr +description=Show IP address of handheld +exec=/mnt/apps/showip/showip.sh diff --git a/board/miyoo/main/gmenu2x/sections/applications/usb-network b/board/miyoo/main/gmenu2x/sections/applications/usb-network index 2573b8a9..ef9343f8 100644 --- a/board/miyoo/main/gmenu2x/sections/applications/usb-network +++ b/board/miyoo/main/gmenu2x/sections/applications/usb-network @@ -1,3 +1,3 @@ title=USB Network -description=IP:169.254.147.2 +description=IP:192.168.137.1 exec=/mnt/apps/usb-network/usb-network.sh diff --git a/board/miyoo/rootfs/etc/dhcp/dhcpd.conf b/board/miyoo/rootfs/etc/dhcp/dhcpd.conf new file mode 100644 index 00000000..cf9061f7 --- /dev/null +++ b/board/miyoo/rootfs/etc/dhcp/dhcpd.conf @@ -0,0 +1,109 @@ +# +# Sample configuration file for ISC dhcpd for Debian +# +# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +# The ddns-updates-style parameter controls whether or not the server will +# attempt to do a DNS update when a lease is confirmed. We default to the +# behavior of the version 2 packages ('none', since DHCP v2 didn't +# have support for DDNS.) +ddns-update-style none; + +# option definitions common to all supported networks... +option domain-name "example.org"; +option domain-name-servers 8.8.8.8, 4.4.4.4; + +default-lease-time 600; +max-lease-time 7200; + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; + +# Use this to send dhcp log messages to a different log file (you also +# have to hack syslog.conf to complete the redirection). +log-facility local7; + +# No service will be given on this subnet, but declaring it helps the +# DHCP server to understand the network topology. + +#subnet 10.152.187.0 netmask 255.255.255.0 { +#} + +# This is a very basic subnet declaration. + +subnet 192.168.137.0 netmask 255.255.255.0 { + interface usb0; + range 192.168.137.2 192.168.137.100; + option routers 192.168.137.2; +} + +# This declaration allows BOOTP clients to get dynamic addresses, +# which we don't really recommend. + +#subnet 10.254.239.32 netmask 255.255.255.224 { +# range dynamic-bootp 10.254.239.40 10.254.239.60; +# option broadcast-address 10.254.239.31; +# option routers rtr-239-32-1.example.org; +#} + +# A slightly different configuration for an internal subnet. +#subnet 10.5.5.0 netmask 255.255.255.224 { +# range 10.5.5.26 10.5.5.30; +# option domain-name-servers ns1.internal.example.org; +# option domain-name "internal.example.org"; +# option routers 10.5.5.1; +# option broadcast-address 10.5.5.31; +# default-lease-time 600; +# max-lease-time 7200; +#} + +# Hosts which require special configuration options can be listed in +# host statements. If no address is specified, the address will be +# allocated dynamically (if possible), but the host-specific information +# will still come from the host declaration. + +#host passacaglia { +# hardware ethernet 0:0:c0:5d:bd:95; +# filename "vmunix.passacaglia"; +# server-name "toccata.fugue.com"; +#} + +# Fixed IP addresses can also be specified for hosts. These addresses +# should not also be listed as being available for dynamic assignment. +# Hosts for which fixed IP addresses have been specified can boot using +# BOOTP or DHCP. Hosts for which no fixed address is specified can only +# be booted with DHCP, unless there is an address range on the subnet +# to which a BOOTP client is connected which has the dynamic-bootp flag +# set. +#host fantasia { +# hardware ethernet 08:00:07:26:c0:a5; +# fixed-address fantasia.fugue.com; +#} + +# You can declare a class of clients and then do address allocation +# based on that. The example below shows a case where all clients +# in a certain class get addresses on the 10.17.224/24 subnet, and all +# other clients get addresses on the 10.0.29/24 subnet. + +#class "foo" { +# match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; +#} + +#shared-network 224-29 { +# subnet 10.17.224.0 netmask 255.255.255.0 { +# option routers rtr-224.example.org; +# } +# subnet 10.0.29.0 netmask 255.255.255.0 { +# option routers rtr-29.example.org; +# } +# pool { +# allow members of "foo"; +# range 10.17.224.10 10.17.224.250; +# } +# pool { +# deny members of "foo"; +# range 10.0.29.10 10.0.29.230; +# } +#} diff --git a/board/miyoo/rootfs/etc/resolv.conf b/board/miyoo/rootfs/etc/resolv.conf new file mode 100644 index 00000000..0507da38 --- /dev/null +++ b/board/miyoo/rootfs/etc/resolv.conf @@ -0,0 +1,2 @@ +nameserver 8.8.8.8 +nameserver 4.4.4.4 diff --git a/configs/miyoo_musl_defconfig b/configs/miyoo_musl_defconfig index c3b0affc..1963949e 100644 --- a/configs/miyoo_musl_defconfig +++ b/configs/miyoo_musl_defconfig @@ -246,6 +246,9 @@ BR2_PACKAGE_FBCAT=y BR2_PACKAGE_ST_SDL=y BR2_PACKAGE_COMMANDER=y BR2_PACKAGE_SDLBOOK=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_SERVER=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y BR2_PACKAGE_PURE_FTPD=y diff --git a/configs/miyoo_uclibc_defconfig b/configs/miyoo_uclibc_defconfig index 133d7ccf..7d195ed5 100644 --- a/configs/miyoo_uclibc_defconfig +++ b/configs/miyoo_uclibc_defconfig @@ -223,6 +223,9 @@ BR2_PACKAGE_FBCAT=y BR2_PACKAGE_ST_SDL=y BR2_PACKAGE_COMMANDER=y BR2_PACKAGE_SDLBOOK=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_SERVER=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y BR2_PACKAGE_PURE_FTPD=y