#!/bin/sh # A script to do basic network configuration. # Mostly written by Patrick Volkerding . # Modified to use /etc/rc.d/rc.inet1.conf Tue Aug 26 16:51:48 PDT 2003 # Forked by Didier Spaier for usage during Slint installation: Network Manager # will be set up only then. # This can be changed by the user later after installation. # Ref. https://tools.ietf.org/html/rfc6761 and https://example.com/ [ ! "$HOSTNM" ] && HOSTNM=slint DOMAIN=example.$HOSTNM write_config_files() { # ############################################################################ # The rc.inet1.conf file. ############################################################################ # # If we're doing loopback, we don't want 127.0.0.1 and 255.255.255.0 in # rc.inet1.conf... it's better to leave the values null. However, since # we use the IP in other places, we need to make a copy for here. RCIPCOPY=$IPADDR RCMASKCOPY=$NETMASK if [ "$RCIPCOPY" = "127.0.0.1" ]; then RCIPCOPY="" RCMASKCOPY="" fi # echo "Creating /$RC..." /bin/cat << ENDFILE > $RC # /etc/rc.d/rc.inet1.conf # # This file contains the configuration settings for network interfaces. # If USE_DHCP[interface] is set to "yes", this overrides any other settings. # If you don't have an interface, leave the settings null (""). # You can configure network interfaces other than eth0,eth1... by setting # IFNAME[interface] to the interface's name. If IFNAME[interface] is unset # or empty, it is assumed you're configuring eth. # Several other parameters are available, the end of this file contains a # comprehensive set of examples. # ============================================================================= # Config information for eth0: IPADDR[0]="$RCIPCOPY" NETMASK[0]="$RCMASKCOPY" IPALIASES[0]="" USE_DHCP[0]="$USE_DHCP" DHCP_HOSTNAME[0]="$DHCP_HOSTNAME" # Config information for eth1: IPADDR[1]="" NETMASK[1]="" IPALIASES[1]="" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Config information for eth2: IPADDR[2]="" NETMASK[2]="" IPALIASES[2]="" USE_DHCP[2]="" DHCP_HOSTNAME[2]="" # Config information for eth3: IPADDR[3]="" NETMASK[3]="" IPALIASES[3]="" USE_DHCP[3]="" DHCP_HOSTNAME[3]="" # Default gateway IP address: GATEWAY="$GATEWAY" # Change this to "yes" for debugging output to stdout. Unfortunately, # /sbin/hotplug seems to disable stdout so you'll only see debugging output # when rc.inet1 is called directly. DEBUG_ETH_UP="no" # Example of how to configure a bridge: # Note the added "BRNICS" variable which contains a space-separated list # of the physical or virtual network interfaces you want to add to the bridge. #IFNAME[0]="br0" #BRNICS[0]="eth0" #IPADDR[0]="192.168.0.1" #NETMASK[0]="255.255.255.0" #IPALIASES[0]="" #USE_DHCP[0]="" #DHCP_HOSTNAME[0]="" # Virtual interfaces to create - these are created before any address # configuration or bridge setup is done, so you may use these interfaces # as IFNAME or BRNICS values. These can be tun or tap interfaces: # adjust VIRTIFNAME and VIRTIFTYPE accordingly. # Starting with VIRTIFNAME[0] is mandatory, and each next one must be # incremented by one, so VIRTIFNAME[1], VIRTIFNAME[2], and so on. # # Virtual tap interface example #VIRTIFNAME[0]="tap0" #VIRTIFTYPE[0]="tap" #VIRTIFUSER[0]="root" #VIRTIFGROUP[0]="root" # # Virtual tun interface example #VIRTIFNAME[1]="tun0" #VIRTIFTYPE[1]="tun" #VIRTIFUSER[1]="someuser" #VIRTIFGROUP[1]="somegroup" ## Example config information for wlan0. Uncomment the lines you need and fill ## in your data. (You may not need all of these for your wireless network) #IFNAME[4]="wlan0" #IPADDR[4]="" #NETMASK[4]="" #USE_DHCP[4]="yes" #DHCP_HOSTNAME[4]="icculus-wireless" #DHCP_KEEPRESOLV[4]="yes" #DHCP_KEEPNTP[4]="yes" #DHCP_KEEPGW[4]="yes" #DHCP_IPADDR[4]="" #WLAN_ESSID[4]=DARKSTAR #WLAN_MODE[4]=Managed #WLAN_RATE[4]="54M auto" #WLAN_CHANNEL[4]="auto" #WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2" #WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16" #WLAN_WPA[4]="wpa_supplicant" #WLAN_WPADRIVER[4]="wext" #WLAN_WPAWAIT[4]=30 ## Some examples of additional network parameters that you can use. ## Config information for wlan0: #IFNAME[4]="wlan0" # Use a different interface name instead of # the default 'eth4' #IPALIASES[4]="192.168.5.10/24" # Set up an IP alias. A netmask may be given # with a / after the IP address - if # not supplied, /32 will be used as default. #HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address #MTU[4]="" # The default MTU is 1500, but you might need # 1360 when you use NAT'ed IPSec traffic. #PROMISCUOUS[4]="yes" # Set promiscuous mode on the interface. #DHCP_TIMEOUT[4]=15 # The default timeout for the DHCP client to # wait for server resonse is 15 seconds, but # you might want a shorter or longer wait. #DHCP_KEEPRESOLV[4]="yes" # If you don't want /etc/resolv.conf overwritten #DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten #DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change # your default gateway #DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP # server #DHCP_DEBUG[4]="yes" # Make dhcpcd show verbose diagnostics #DHCP_NOIPV4LL[4]="yes" # Do not assign an ipv4ll address when a DHCP # server is not found (ipv4ll link-local # adresses in the IP range 169.254.0.0/16 are # also known as "zeroconf" addresses) #WLAN_ESSID[4]=DARKSTAR # An example of how you can override _any_ # parameter defined in rc.wireless.conf, by # prepending 'WLAN_' to the parameter's name. # Useful with multiple wireless interfaces. #WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey" # Some drivers require a private ioctl to be # set through the iwpriv command. If more than # one is required, you can place them in the # IWPRIV parameter (separated with the pipe (|) # character, see the example). #WLAN_WPA[4]="wpa_supplicant" # Run wpa_supplicant for WPA support #WLAN_WPADRIVER[4]="ndiswrapper"# Tell wpa_supplicant to specifically use the # ndiswrapper driver (if you leave this empty # the 'wext' driver is used by default) #WLAN_WPAWAIT[4]=30 # In case it takes long for the WPA association # to finish, you can increase the wait time # (defaults to 10 seconds) ENDFILE # ############################################################################ # The networks file. ############################################################################ # #echo "Creating /$ETCNETWORKS..." /bin/cat <$ETCNETWORKS # # networks This file describes a number of netname-to-address # mappings for the TCP/IP subsystem. It is mostly # used at boot time, when no name servers are running. # loopback 127.0.0.0 localnet $NETWORK # End of networks. EOF chmod 644 $ETCNETWORKS # ############################################################################ # The hosts file. ############################################################################ # #echo "Creating /$HOSTS..." /bin/cat << EOF > $HOSTS # # hosts This file describes a number of hostname-to-address # mappings for the TCP/IP subsystem. It is mostly # used at boot time, when no name servers are running. # On small systems, this file can be used instead of a # "named" name server. Just add the names, addresses # and any aliases to this file... # # By the way, Arnt Gulbrandsen says that 127.0.0.1 # should NEVER be named with the name of the machine. It causes problems # for some (stupid) programs, irc and reputedly talk. :^) # # For loopbacking. 127.0.0.1 localhost $IPADDR $HOSTNM.$DOMAIN $HOSTNM # End of hosts. EOF chmod 644 $HOSTS # ############################################################################ # The resolv.conf file. ############################################################################ # if [ ! "$NAMESERVER" = "" ]; then echo "search $DOMAIN" >$RESOLV echo "nameserver $NAMESERVER" >>$RESOLV else echo "search $DOMAIN" >$RESOLV fi if [ -f $RESOLV ]; then chmod 644 $RESOLV fi # ############################################################################ # The rc.netdevice file. ############################################################################ # if [ -r /cardfound ]; then if [ ! "`cat /cardfound`" = "" ]; then cat << EOF > etc/rc.d/rc.netdevice # Load module for network device. # This script is automatically generated during the installation. /sbin/modprobe `cat /cardfound` EOF chmod 755 etc/rc.d/rc.netdevice fi fi rm -f $TMP/tempmsg /cardfound } # end write_config_files TMP=/var/log/setup/tmp if [ ! -d $TMP ]; then mkdir -p $TMP chmod 700 $TMP fi cd / # IMPORTANT!!! NO LEADING '/' in the paths below, or this script will not # function from the bootdisk. RC=etc/rc.d/rc.inet1.conf # Where rc.inet1.conf file is. RESOLV=etc/resolv.conf # Where resolv.conf file is. HOSTS=etc/hosts # Where hosts file is. ETCNETWORKS=etc/networks # Where networks file is. USE_DHCP="" # Use DHCP? "" == no. DHCP_HOSTNAME="" # This is our DHCP hostname. # # defaults: NETWORK=127.0.0.0 IPADDR=127.0.0.1 NETMASK=255.255.255.0 # Write the hostname with domain to /etc/HOSTNAME: echo $HOSTNM.$DOMAIN > etc/HOSTNAME # Also make sure the hostname is written to /etc/NetworkManager/NetworkManager.conf: sed -i "s/^hostname=.*$/hostname=$HOSTNM/g" etc/NetworkManager/NetworkManager.conf write_config_files chmod 755 etc/rc.d/rc.networkmanager