diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9381c58..0ffa54bf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,12 +8,11 @@ on: jobs: build: - name: Build ${{ matrix.platform }} ${{ matrix.variant }} + name: Build Infix ${{ matrix.platform }} runs-on: ubuntu-latest strategy: matrix: platform: [aarch64, x86_64] - variant: [netconf, classic] fail-fast: false steps: - name: Maintenance @@ -25,11 +24,7 @@ jobs: - name: Set Build Variables id: vars run: | - if [ "${{ matrix.variant }}" = "netconf" ]; then - target=${{ matrix.platform }} - else - target=${{ matrix.platform }}-${{ matrix.variant }} - fi + target=${{ matrix.platform }} echo "dir=infix-$target" >> $GITHUB_OUTPUT echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT if [ "$target" = x86_64 ]; then @@ -41,9 +36,8 @@ jobs: uses: actions/cache@v4 with: path: dl/ - key: dl-${{ matrix.variant }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }} + key: dl-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }} restore-keys: | - dl-${{ matrix.variant }}- dl- - name: Restore Cache of .ccache/ uses: actions/cache@v4 @@ -55,11 +49,7 @@ jobs: ccache- - name: Configure & Build run: | - if [ "${{ matrix.variant }}" = "netconf" ]; then - target=${{ matrix.platform }}_defconfig - else - target=${{ matrix.platform }}_${{ matrix.variant }}_defconfig - fi + target=${{ matrix.platform }}_defconfig echo "Building $target ..." sudo mkdir ${{ steps.vars.outputs.out }} sudo chown $(id -un):$(id -gn) ${{ steps.vars.outputs.out }} @@ -73,14 +63,14 @@ jobs: ln -s ${{ steps.vars.outputs.dir }} images tar chfz ${{ steps.vars.outputs.tgz }} ${{ steps.vars.outputs.dir }} - name: Test - if: matrix.platform == 'x86_64' && matrix.variant == 'netconf' + if: matrix.platform == 'x86_64' run: | export O=${{ steps.vars.outputs.out }} make test-qeneth - uses: actions/upload-artifact@v4 with: path: ${{ steps.vars.outputs.out }}/${{ steps.vars.outputs.tgz }} - name: artifact-${{ matrix.variant }}-${{ matrix.platform }} + name: artifact-${{ matrix.platform }} release: if: ${{github.repository_owner == 'kernelkit' && github.ref_name == 'main'}} name: Upload Latest Build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6b3c0546..1f1d2ca8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,12 +20,11 @@ on: jobs: build: if: github.repository == 'kernelkit/infix' && startsWith(github.ref, 'refs/tags/') - name: Build Infix ${{ github.ref_name }} [${{ matrix.platform }}-${{ matrix.variant }}] + name: Build Infix ${{ github.ref_name }} [${{ matrix.platform }}] runs-on: ubuntu-latest strategy: matrix: platform: [aarch64, x86_64] - variant: [netconf, classic] fail-fast: false steps: - name: Maintenance @@ -44,11 +43,7 @@ jobs: fi echo "ver=${ver}" >> $GITHUB_OUTPUT fver=${ver#v} - if [ "${{ matrix.variant }}" = "netconf" ]; then - target=${{ matrix.platform }}-${fver} - else - target=${{ matrix.platform }}-${{ matrix.variant }}-${fver} - fi + target=${{ matrix.platform }}-${fver} echo "dir=infix-$target" >> $GITHUB_OUTPUT echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT echo "out=/mnt/x-$target" >> $GITHUB_OUTPUT @@ -56,9 +51,8 @@ jobs: uses: actions/cache@v4 with: path: dl/ - key: dl-${{ matrix.variant }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }} + key: dl-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }} restore-keys: | - dl-${{ matrix.variant }}- dl- - name: Restore Cache of .ccache/ uses: actions/cache@v4 @@ -72,11 +66,7 @@ jobs: env: INFIX_RELEASE: ${{ steps.vars.outputs.ver }} run: | - if [ "${{ matrix.variant }}" = "netconf" ]; then - target=${{ matrix.platform }}_defconfig - else - target=${{ matrix.platform }}_${{ matrix.variant }}_defconfig - fi + target=${{ matrix.platform }}_defconfig echo "Building $target ..." sudo mkdir ${{ steps.vars.outputs.out }} sudo chown $(id -un):$(id -gn) ${{ steps.vars.outputs.out }} @@ -92,7 +82,7 @@ jobs: - uses: actions/upload-artifact@v4 with: path: ${{ steps.vars.outputs.out }}/${{ steps.vars.outputs.tgz }} - name: artifact-${{ matrix.variant }}-${{ matrix.platform }} + name: artifact-${{ matrix.platform }} release: name: Release Infix ${{ github.ref_name }} needs: build diff --git a/Config.in b/Config.in index a0c06797..5511be7c 100644 --- a/Config.in +++ b/Config.in @@ -112,25 +112,6 @@ config INFIX_ARCH default "riscv64" if BR2_riscv default "x86_64" if BR2_x86_64 -# For /etc/os-release, VARIANT & VARIANT_ID used, e.g., in mnt script -choice - prompt "Select variant/flavor" - default INFIX_VARIANT_NETCONF - -config INFIX_VARIANT_NETCONF - bool "NETCONF" - help - Managed NETCONF mode, /etc is a ramdisk, all configuration is - generated by sysrepo plugins using NETCONF (xml) or RESTCONF. - -config INFIX_VARIANT_CLASSIC - bool "Classic /etc mode" - help - User managed mode, read-write configuration files in /etc that - is saved across reboots. - -endchoice - menu "Packages" source "$BR2_EXTERNAL_INFIX_PATH/package/Config.in" diff --git a/README.md b/README.md index 07615e22..5d9cd362 100644 --- a/README.md +++ b/README.md @@ -105,8 +105,7 @@ more information, see: [Infix in Virtual Environments](doc/virtual.md). > > For *customer specific builds* of Infix, see your product repository. -[^1]: NETCONF or RESTCONF, , - for more information, see [Infix Variants](doc/variant.md). +[^1]: NETCONF or RESTCONF, [^2]: An immutable operating system is one with read-only file systems, atomic updates, rollbacks, declarative configuration, and workload diff --git a/board/classic/post-build.sh b/board/classic/post-build.sh deleted file mode 100755 index cf0abc52..00000000 --- a/board/classic/post-build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -. "$BR2_CONFIG" - -# Prevent regen of host key at every boot, /etc is saved across reboots -if [ -L "$TARGET_DIR/etc/dropbear" ]; then - rm "$TARGET_DIR/etc/dropbear" - mkdir "$TARGET_DIR/etc/dropbear" -fi - -# Classic builds don't have D-Bus -if [ -f "$TARGET_DIR/etc/dnsmasq.conf" ]; then - sed -i '/enable-dbus/d' "$TARGET_DIR/etc/dnsmasq.conf" -fi diff --git a/board/classic/rootfs/bin/help b/board/classic/rootfs/bin/help deleted file mode 100755 index 1e51c6db..00000000 --- a/board/classic/rootfs/bin/help +++ /dev/null @@ -1,684 +0,0 @@ -#!/bin/sh -# COLUMS and ROWS should be set on the console, if not, use fallback -if [ -z "$COLUMNS" ]; then - if command -v tput; then - COLUMNS=$(tput cols) - else - COLUMNS=80 - fi -fi - -h1() -{ - STR="$*" - if [ -n "$plain" ]; then - echo "$STR" | tr '[:lower:]' '[:upper:]' - echo "$STR" | sed 's/./=/g' - else - printf "\033[7m%-${COLUMNS}s\033[0m" "$STR" - fi -} - -h2() -{ - STR="$*" - if [ -n "$plain" ]; then - echo "$STR" - echo "$STR" | sed 's/./-/g' - else - printf "\033[1m%-${COLUMNS}s\033[0m" "$STR" - fi -} - -ul() -{ - if [ -n "$plain" ]; then - echo "__${*}__" - else - printf "\033[54%s\033[0m" "$*" - fi -} - -em() -{ - if [ -n "$plain" ]; then - echo "**${*}**" - else - printf "\033[5m%s\033[0m" "$*" - fi -} - -overview() -{ - cat < - more [file] > e.g., 'cat very-long-file | less' - most [file] > e.g., 'cat very-long-file | most' - passwd Change user password - pwgen Password generator - reboot Restart the device - reset Reset the shell prompt if it gets garbled - -$(h2 "Network Tools") - ethtool [-h] Ethernet stats, and low-level MAC/PHY settings - traceroute [-h] Trace the route ip packets follow going to a host - tcpdump [-h] Display network packet headers in real-time - arping [-h] Ping hosts by ARP requests/replies - fping [-h] Send ICMP ECHO_REQUEST packets to multiple hosts - ping [-h] Send ICMP ECHO_REQUEST packets to a network host - lynx URL [-h] The text mode web browser - netcalc [-h] Calculate IP network settings from a IP address - netcat [-h] NetCat - TCP/IP swiss army knife (alias: nc) - socat [-h] Multipurpose socket relay program - ttyd [-h] Sharing a terminal over the web - - ifconfig [--help] See/Reconfigure available network interfaces - route [--help] Edit the kernel's routing tables - - ifup | ifdown IFACE Bring up/down interfaces in /etc/network/interfaces - - ip [link|addr] Manage available network interfaces - ip [rule|route] Manage routing tables - bridge [link|vlan] Manage bridge ports and VLANs - - scp Securely copy a file to a remote host file system - tftp Copy a file to/from a remote host - ftpput Store a local file on a remote machine via FTP - ftpget Retrieve a remote file via FTP - wget Get a file using HTTP or FTP from a remote host - -$(h2 "Overview Commands") - df -h List disk usage (in human readable format) - free List memory usage - ps List running processes - show [arg] Show system status, see 'show help' for more info - top Displays CPU usage and top list of running tasks - -$(h2 "Interesting Files") - /etc/default/svc Command line args for service 'svc' (see above) - /etc/rc.local Local setup, runs after all services have started - /etc/network/ Directory of networking setup, see 'help net' - -$(h2 "Example Commands") - cd /tmp; wget ftp://192.168.55.43/file && cat file - cd /var/log; tftp -p -l messages 192.168.55.43 - cat /proc/net/arp - edit /etc/network/interfaces - -$(h2 "See Also") - help edit Tutorial on VI and Mg editors - help net Network set up introduction - setup User friendly setup and diagnostic tool -EOF -} - -vi() -{ - cat < Return to command mode with Esc - -EOF -} - -emacs() -{ - cat < means hold down the Control key while typing the character - M- means hold down the Alt key while typing the character - -If you don't have a Meta/Alt key, you can use Esc instead. Press and release -the Esc key and then type . This is equivalent to M-. - -$(h2 "Navigation") - -Though arrow keys, Home/End, and PgUp/PgDn usually work, using Mg over serial -console can sometimes cause these keys to be mismapped by terminal program. - - C-f Move forward one character (can also use right arrow key) - C-b Move backward one character (can also use left arrow key) - C-p Move up one line (can also use up arrow key) - C-n Move down one line (can also use down arrow key) - M-f Move forward one word - M-b Move backward one word - C-a Move to beginning of line (can also use Home key) - C-e Move to end of line (can also use End key) - C-v Move forward one page (can also use PgDn/Page Down key) - M-v Move backward one page (can also use PgUp/Page Up key) - M-< Move to beginning of file - M-> Move to end of file - C-x g Move to line number - -$(h2 "Editing") - -All edit commands that kill (cut) text is placed in a kill ring (clipboard). -Note: when marking text, there is no visual mark. - - C-_ Undo, also C-x u - M-% Replace word/string in file, from cursor position - M-q Reformat paragraph (set fill column with C-x f) - C-s Search forward (type C-s again to find next) - C-r Reversed search - C-Space Set beginning of mark (beginning of selected text) - C-x C-x Jump back and forth between mark and cursor position - C-x h Mark whole buffer - C-w Wipe (cut) region from mark to cursor position - M-w Copy region from mark to cursor position - C-y Yank (paste) text from kill ring - C-k Kill (cut) to end of line - M-Backspace Kill (delete) previous word - M-d Kill (delete) next word - C-d Delete character to the right - C-o Open new line at cursor - -$(h2 "General Commands") - - C-g Abort current command - C-l Recenter buffer on current line - C-h b List all keybindings - M-! Run shell command, output in new buffer - C-z Suspend Mg, return to shell, use 'fg' to get back - C-x C-f Open file - C-x C-i Insert file at cursor position - C-x C-s Save file - C-x s Save file (interactive) - C-x k Kill (close) file - C-x C-b List open buffers (files) - C-x b Switch to another buffer - C-x C-c Exit - -$(h2 "Window Commands") - - C-x 0 Unsplit, keep other window - C-x 1 Unsplit, keep this window - C-x 2 Split window in two - C-x o Go to other window - C-x p Go to previous window - C-x n Go to next window - C-x ^ Enlarge this split - -EOF -} - -editor() -{ - case $1 in - vi) - vi - ;; - ed* | em* | mg) - emacs - ;; - *) - vi - emacs - cat <. This is the hostname -and three last octets of the device's base MAC address. You can also use -mDNS browsers or command line tools like mdns-scan - - -$(h2 "VLAN Interfaces") - -A VLAN interface in Linux is an "upper" interface, e.g., 'eth0.1'. It is -where you set an IP address and interact with th rest of the world. The -base/raw/lower interface, here 'eth0', is the physical interface on which -Ethernet packets ingress and egress with a VLAN tag. To create 'eth0.1': - - ip link add eth0.1 link eth0 vlan id 1 - -In Linux a VLAN interface is a "stackable" entity. Many VLAN interfaces -can be built on top of each other. When injecting a packet on the top -most interface, the kernel adds the corresponding VLAN "tag" when the -packet goes down the order of stacked interfaces, and then finally hits -the physical interface and proceeds to egress onto the media. - - ip link add eth0.1.2 link eth0.1 vlan id 2 - -Injecting a packet on 'eth0.1.2' creates a double-tagged VLAN frame when -the packet egresses 'eth0'. The outermost tag has VID 1 and the inner -VID is 2. - -VLAN interfaces can be used for many things, here we will focus on their -use as upper interface on a bridge. - - -$(h2 "Bridging Interfaces") - -A bridge is the correct name for a switch. In the context of this text, -however, we will use the term to refer to the Linux bridge module in the -kernel, which implements an advanced software switch. The Linux bridge -supports "offloading" many switching functions to an underlying switching -chipset, when available. This greatly simplifies managing that switch since -the same tools one use to manage the bridge will, by extension, also be used -to manage the switch. - -To create a bridge in Linux: - - ip link add br0 type bridge - -To add three ports (interfaces) to the bridge we use: - - ip link set eth0 master br0 - ip link set eth1 master br0 - ip link set eth2 master br0 - -Bring all ports and the bridge 'up' and you have a working switch! Any frame -injected on eth0 (from the outside) can be switched to either of eth1, eth2, -*or* br0. As soon as the bridge has learned where end devices are connected, -none of the other ports will see the traffic -- like a regular switch. - -Note: these ports should not (cannot) have any IP address. Instead, any IP - address is set on 'br0'. To disable IPv6 link-local address, set the - /proc/sys/net/ipv6/conf/eth0/disable_ipv6 sysctl file to '1'. - - -$(h2 "Bridging and VLANs") - -A VLAN-aware bridge works the same way, only with VLAN separation taken into -account. All communication, as well as MAC address learning, is limited to -ports in the same VLAN. The syntax is slightly different and requires a few -more steps: - - ip link add br0 type bridge vlan_filtering 1 - ip link set eth0 master br0 - ip link set eth1 master br0 - ip link set eth2 master br0 - ip link set eth3 master br0 - -To assign ports to different VLANs, and make sure they are regular "access" -ports (untagged). We assign eth0 and eth1 to VLAN 1 and the others to VLAN 2: - - bridge vlan add vid 1 dev eth0 pvid untagged - bridge vlan add vid 1 dev eth1 pvid untagged - bridge vlan add vid 2 dev eth2 pvid untagged - bridge vlan add vid 2 dev eth3 pvid untagged - -Here's the twist, to be able to reach the bridge (switch) itself from each -VLAN, we need to ensure the bridge itself is a tagged member of each VLAN: - - bridge vlan add vid 1 dev br0 self - bridge vlan add vid 2 dev br0 self - -This way we can add VLAN interfaces on top of br0, which we in turn can set -a static or dynamic IP address on: - - ip link add vlan1 link br0 type vlan id 1 - ip link add vlan2 link br0 type vlan id 2 - -The resulting stack of interfaces look like this: - - : - vlan1 : vlan2 Layer-3 :: IP Networking - \\ : / _________________________ - .-------------. - | br0 | Layer-2 :: Switching - '-------------' _________________________ - / | : | \\ - eth0 eth1 : eth2 eth3 Layer-1 :: Link layer - : - - -$(h2 "Persistent Configuration") - -A simple end device can get by with the following in /etc/network/interfaces: - - auto lo - iface lo inet loopback - - auto eth0 - iface eth0 inet dhcp - -This brings up both the loopback (required for UNIX networking to function), -and the (presumed only) Ethernet interface. The loopback gets its standard -address, 127.0.0.1, and eth0 will request its IP address using DHCP. - -To set up the bridge example (above), is actually quite a lot easier than -using the command line ip and bridge tools. Create the file 'bridge': - - edit /etc/network/interfaces.d/bridge - -Paste in the following content: - - iface e0 - bridge-access 1 - iface e1 - bridge-access 1 - iface e2 - bridge-access 2 - iface e3 - bridge-access 2 - - auto br0 - iface br0 - bridge-ports e0 e1 e2 e3 - bridge-vlan-aware yes - bridge-stp on - bridge-vids 1 2 - - auto vlan1 - iface vlan1 inet dhcp - vlan-id 1 - vlan-raw-device br0 - - auto vlan2 - iface vlan2 inet static - vlan-id 2 - vlan-raw-device br0 - address 192.168.2.1/24 - -Notice how 'vlan1' only has a DHCP and 'vlan2' uses a static address. It is -possible to combine the two if needed. Use 'inet dhcp' and add an 'address' -statement to the iface stanza. - - -$(h2 "Port Classification") - -The bundled 'show' script is a very handy tool. It use several tricks to make -information about the system more accessible. On switching capable hardware -products, switch ports are identified early at system bootstrap and placed in -the 'port' group. See 'ip link' output: - - ... - 4: e0: master br0 state UP $(em "group port") - link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff - ... - -When running in Qemu or other hardware it may be useful to manually classify -certain interfaces as ports. This can be achieved in many ways, here we show -two. First /etc/mactab, which is read at boot to rename interfaces according -their matching MAC address, one interface per line: - - e0 52:54:00:12:34:56 - e1 52:54:00:12:34:57 - e2 52:54:00:12:34:58 - e3 52:54:00:12:34:59 - -Another way is to add something like this to /etc/rc.local: - - for port in eth0 eth1 eth3 eth4; do - ip link set \$port group port - done - - -$(h2 "Interesting Files") - - - /etc/dhcpcd.conf General DHCP and ZeroConf (LL) settings - - /etc/network/interfaces The original, useful for small setups - - /etc/network/interfaces.d/* Snippets, useful for non-trivial setups - - /etc/mactab Rename interfaces: 'NAME16CHARS WHITESPACE MAC' - - /etc/sysctl.conf Interface and TCP/IP settings, e.g., routing - - /etc/sysctl.d/* Snippets, useful for per-subsystem settings - - -$(h1 "Summary") -All persistent networking is set up in /etc/network/interfaces using the -program ifupdown-ng. The tools to reconfigure networking at runtime are: - - ifup [-a] [IFACES] - ifdown [-a] [IFACES] - -When changing the configuration at runtime you usually have to bring the -affected interfaces down (ifdown e0 e1 e2 e3), if they were set up with -/etc/network/interfaces before. Then do the change, and bring it all up -again. - -Both tools understand dependencies between interfaces, so when a 'ifup -a' -command is received it brings up all interfaces: adding links to br0 before -adding VLANs, the vlan1 and vlan2 interfaces on top so it of it all. Then -finally it can start the DHCP client on vlan1 and set the static IP address -on vlan2. - - $(em ">>> Be careful with these tools when logged in remotely! <<<") - -EOF -} - -topic() -{ - topic=$1 - [ -n "$1" ] && shift - - case $topic in - ed*) - # shellcheck disable=SC2068 - editor $* - ;; - net*) - networking - ;; - *) - overview - ;; - esac -} - -if [ "$1" = "-p" ]; then - shift - pager="cat" - plain="yes" -else - if command -v most; then - pager=most - elif command -v less; then - pager="less -R" - elif command -v more; then - pager="more" - else - pager="cat" - fi -fi - -if [ -t 1 ] ; then - fn=$(mktemp /tmp/system-help.XXXXXX) - # shellcheck disable=SC2086,SC2068 - topic $@ >"$fn" - $pager "$fn" - rm "$fn" -else - topic "$*" -fi diff --git a/board/classic/rootfs/bin/hostnm b/board/classic/rootfs/bin/hostnm deleted file mode 100755 index 0875be2a..00000000 --- a/board/classic/rootfs/bin/hostnm +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# Changes hostname in /etc/hostname and /etc/hosts - -current=$(cat /etc/hostname) -newname=$1 - -[ -n "$newname" ] || exit 1 - -sed -i "s/$current/$newname/" /etc/hosts -sed -i "s/$current/$newname/" /etc/hostname - -hostname $newname - -initctl touch sysklogd -initctl touch dnsmasq -initctl reload diff --git a/board/classic/rootfs/bin/setup b/board/classic/rootfs/bin/setup deleted file mode 100755 index 107a6e85..00000000 --- a/board/classic/rootfs/bin/setup +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -pdmenu -clear diff --git a/board/classic/rootfs/bin/show b/board/classic/rootfs/bin/show deleted file mode 100755 index 6c69adfc..00000000 --- a/board/classic/rootfs/bin/show +++ /dev/null @@ -1,327 +0,0 @@ -#!/bin/sh -# Displays basic information about the system -# shellcheck disable=SC2048,SC2086 -. /etc/os-release - -bopt="-c" -opt="-br" -all="" -plain="" - -TTY=$(resize) -eval "$TTY" - -# COLUMS and ROWS should be set on the console, if not, use fallback -if [ -z "$COLUMNS" ]; then - if command -v tput; then - COLUMNS=$(tput cols) - else - COLUMNS=80 - fi -fi - -h1() -{ - STR="$*" - if [ -n "$plain" ]; then - echo "$STR" | tr '[:lower:]' '[:upper:]' - else - printf "\033[7m%-${COLUMNS}s\033[0m\n" "$STR" - fi -} - -h2() -{ - STR="$*" - if [ -n "$plain" ]; then - echo "$STR" - echo "$STR" | sed 's/./-/g' - else - printf "\033[1m%-${COLUMNS}s\033[0m\n" "$STR" - fi -} - -dm() -{ - if [ -n "$plain" ]; then - echo "${*}" - else - printf "\033[2m%s\033[0m\n" "$*" - fi -} - -ul() -{ - if [ -n "$plain" ]; then - printf "__%s__" "$*" - else - printf "\033[4%s\033[0m" "$*" - fi -} - -em() -{ - if [ -n "$plain" ]; then - printf "**%s**" "$*" - else - printf "\033[5m%s\033[0m" "$*" - fi -} - -usage() -{ - cat <::: -vendorclassid - -# A list of options to request from the DHCP server. -option domain_name_servers, domain_name, domain_search -option classless_static_routes -# Respect the network MTU. This is applied to DHCP routes. -option interface_mtu - -# Request a hostname from the network -option host_name - -# Most distributions have NTP support. -#option ntp_servers - -# Rapid commit support. -# Safe to enable by default because it requires the equivalent option set -# on the server to actually work. -option rapid_commit - -# A ServerID is required by RFC2131. -require dhcp_server_identifier - -# Generate SLAAC address using the Hardware Address of the interface -#slaac hwaddr -# OR generate Stable Private IPv6 Addresses based from the DUID -slaac private - -# Background immediately, do not wait for DHCP lease (speed up boot process) -background diff --git a/board/classic/rootfs/etc/dialogrc b/board/classic/rootfs/etc/dialogrc deleted file mode 100644 index 830ae000..00000000 --- a/board/classic/rootfs/etc/dialogrc +++ /dev/null @@ -1,144 +0,0 @@ -# -# Run-time configuration file for dialog -# -# Automatically generated by "dialog --create-rc " -# -# -# Types of values: -# -# Number - -# String - "string" -# Boolean - -# Attribute - (foreground,background,highlight?,underline?,reverse?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = OFF - -# Shadow dialog boxes? This also turns on color. -use_shadow = ON - -# Turn color support ON or OFF -use_colors = ON - -# Screen color -screen_color = (WHITE,BLUE,OFF) - -# Shadow color -shadow_color = (BLACK,BLACK,OFF) - -# Dialog box color -dialog_color = (BLACK,CYAN,OFF) - -# Dialog box title color -title_color = (BLACK,CYAN,ON) - -# Dialog box border color -border_color = dialog_color - -# Active button color -button_active_color = (CYAN,BLACK,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = (WHITE,BLACK,ON) - -# Inactive button key color -button_key_inactive_color = (WHITE,CYAN,ON) - -# Active button label color -button_label_active_color = button_active_color - -# Inactive button label color -button_label_inactive_color = dialog_color - -# Input box color -inputbox_color = (BLACK,CYAN,OFF) - -# Input box border color -inputbox_border_color = inputbox_color - -# Search box color -searchbox_color = inputbox_color - -# Search box title color -searchbox_title_color = (BLUE,WHITE,ON) - -# Search box border color -searchbox_border_color = (WHITE,WHITE,ON) - -# File position indicator color -position_indicator_color = searchbox_title_color - -# Menu box color -menubox_color = dialog_color - -# Menu box border color -menubox_border_color = dialog_color - -# Item color -item_color = inputbox_color - -# Selected item color -item_selected_color = button_key_active_color - -# Tag color -tag_color = button_inactive_color - -# Selected tag color -tag_selected_color = (CYAN,BLACK,OFF) - -# Tag key color -tag_key_color = button_key_inactive_color - -# Selected tag key color -tag_key_selected_color = (WHITE,BLACK,ON) - -# Check box color -check_color = inputbox_color - -# Selected check box color -check_selected_color = button_key_active_color - -# Up arrow color -uarrow_color = (GREEN,WHITE,ON) - -# Down arrow color -darrow_color = uarrow_color - -# Item help-text color -itemhelp_color = (WHITE,BLACK,OFF) - -# Active form text color -form_active_text_color = button_key_active_color - -# Form text color -form_text_color = (WHITE,CYAN,ON) - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = searchbox_title_color - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = inputbox_color - -# Search box border2 color -searchbox_border2_color = inputbox_color - -# Menu box border2 color -menubox_border2_color = dialog_color diff --git a/board/classic/rootfs/etc/finit.d/20-infix-classic.conf b/board/classic/rootfs/etc/finit.d/20-infix-classic.conf deleted file mode 100644 index 2a9e0759..00000000 --- a/board/classic/rootfs/etc/finit.d/20-infix-classic.conf +++ /dev/null @@ -1 +0,0 @@ -run [S] /libexec/infix/swup -- diff --git a/board/classic/rootfs/etc/mdev.conf b/board/classic/rootfs/etc/mdev.conf deleted file mode 100644 index dde9f93f..00000000 --- a/board/classic/rootfs/etc/mdev.conf +++ /dev/null @@ -1,112 +0,0 @@ -# NetBox mdev.conf based on https://github.com/slashbeast/mdev-like-a-boss/ - -# Syntax: -# [-]devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] -# [-]$ENVVAR=regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] -# [-]@maj,min[-min2] user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] -# -# [-]: do not stop on this match, continue reading mdev.conf -# =: move, >: move and create a symlink -# !: do not create device node -# @|$|*: run cmd if $ACTION=remove, @cmd if $ACTION=add, *cmd in all cases - -# support module loading on hotplug -$MODALIAS=.* root:root 660 @modprobe -b "$MODALIAS" - -# null may already exist; therefore ownership has to be changed with command -null root:root 666 @chmod 666 $MDEV -zero root:root 666 -full root:root 666 -random root:root 444 -urandom root:root 444 -hwrandom root:root 444 -grsec root:root 660 - -# Kernel-based Virtual Machine. -#kvm root:kvm 660 - -# vhost-net, to be used with kvm. -#vhost-net root:kvm 660 - -kmem root:root 640 -mem root:root 640 -port root:root 640 -# console may already exist; therefore ownership has to be changed with command -console root:tty 600 @chmod 600 $MDEV -ptmx root:tty 666 -pty.* root:tty 660 - -# Typical devices -tty root:tty 666 -tty[0-9]* root:tty 660 -vcsa*[0-9]* root:tty 660 -ttyS[0-9]* root:dialout 660 - -# block devices -ram([0-9]*) root:disk 660 >rd/%1 -loop([0-9]+) root:disk 660 >loop/%1 -sr[0-9]* root:cdrom 660 @ln -sf $MDEV cdrom -fd[0-9]* root:floppy 660 -#SUBSYSTEM=block;.* root:disk 660 */libexec/infix/storage-device - -# Run settle-nics every time new NIC appear. -# If you don't want to auto-populate /etc/mactab with NICs, -# run 'settle-nis' without '--write-mactab' param. -#-SUBSYSTEM=net;DEVPATH=.*/net/.*;.* root:root 600 @/libexec/infix/settle-nics --write-mactab - -net/tun[0-9]* root:netdev 660 -net/tap[0-9]* root:root 600 - -# alsa sound devices and audio stuff -#SUBSYSTEM=sound;.* root:audio 660 @/libexec/infix/sound-control - -adsp root:audio 660 >sound/ -audio root:audio 660 >sound/ -dsp root:audio 660 >sound/ -mixer root:audio 660 >sound/ -sequencer.* root:audio 660 >sound/ - - -# raid controllers -cciss!(.*) root:disk 660 =cciss/%1 -ida!(.*) root:disk 660 =ida/%1 -rd!(.*) root:disk 660 =rd/%1 - - -fuse root:root 666 - -card[0-9] root:video 660 =dri/ - -agpgart root:root 660 >misc/ -psaux root:root 660 >misc/ -rtc root:root 664 >misc/ - -# input stuff -SUBSYSTEM=input;.* root:plugdev 660 - -# v4l stuff -vbi[0-9] root:video 660 >v4l/ -video[0-9] root:video 660 >v4l/ - -# dvb stuff -dvb.* root:video 660 - -# drm etc -dri/.* root:video 660 - -# Don't create old usbdev* devices. -usbdev[0-9].[0-9]* root:root 660 ! - -# Stop creating x:x:x:x which looks like /dev/dm-* -[0-9]+\:[0-9]+\:[0-9]+\:[0-9]+ root:root 660 ! - -# /dev/cpu support. -microcode root:root 600 =cpu/ -cpu([0-9]+) root:root 600 =cpu/%1/cpuid -msr([0-9]+) root:root 600 =cpu/%1/msr - -# Populate /dev/bus/usb. -#SUBSYSTEM=usb;DEVTYPE=usb_device;.* root:root 660 */libexec/infix/dev-bus-usb - -# Catch-all other devices, Right now useful only for debuging. -#.* root:root 660 */libexec/infix/catch-all diff --git a/board/classic/rootfs/etc/motd b/board/classic/rootfs/etc/motd deleted file mode 100644 index 511ef561..00000000 --- a/board/classic/rootfs/etc/motd +++ /dev/null @@ -1 +0,0 @@ -Note: use help, show, and setup commands to set up and diagnose the system. diff --git a/board/classic/rootfs/etc/network/interfaces b/board/classic/rootfs/etc/network/interfaces deleted file mode 100644 index 11029b1e..00000000 --- a/board/classic/rootfs/etc/network/interfaces +++ /dev/null @@ -1,6 +0,0 @@ -# interfaces(5) file used by ifup(8) and ifdown(8) -auto lo -iface lo inet loopback - -source-directory /etc/network/interfaces.d - diff --git a/board/classic/rootfs/etc/network/interfaces.d/.empty b/board/classic/rootfs/etc/network/interfaces.d/.empty deleted file mode 100644 index e69de29b..00000000 diff --git a/board/classic/rootfs/etc/pdmenurc b/board/classic/rootfs/etc/pdmenurc deleted file mode 100644 index 399bdcc7..00000000 --- a/board/classic/rootfs/etc/pdmenurc +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/pdmenu - -title:Setup & Diagnostics - -color:desktop:blue:blue -color:title:blue:white -color:base:blue:white - -menu:main:Main Menu:Use arrow keys, Enter, Escape, and Q to navigate - show:_System Settings..::system - show:_Network Settings..::network - show:_Tools..::tools - nop - exec:Show _fdb:truncate:show -p fdb - exec:Show _mdb:truncate:show -p mdb - exec:Show _ports:truncate:show -p ports - exec:Show _vlans:truncate:show -p vlans - exec:Show _interfaces:truncate:show -p iface - exec:Show _routes:truncate:show -p route - nop - exec:Show _online users:truncate:w - exec:Show _CPU Load::top - nop - show:_Help..::help - exit:_Quit - -menu:help:Help:Help Menu - exec:Introduction:truncate:/bin/help -p - exec:Editors:truncate:/bin/help -p edit - exec:Networking:truncate:/bin/help -p net - nop - exit:_Main menu.. - -menu:network:Network:Network Settings - exec:Show all _links:truncated:ip -br link - exec:Show all _addresses:truncated:ip -br address - exec:Show managed _interfaces:truncated:ifparse --all - nop - exec:Take _interface down:edit:ifdown ~Enter name of interface to take down:~ - exec:Take _interface up:edit:ifup ~Enter name of interface to take up:~ - nop - exec:Edit _dhcpcd.conf::edit /etc/dhcpcd.conf - exec:Edit _dnsmasq.conf::edit /etc/dnsmasq.conf - exec:Edit _interfaces::edit /etc/network/interfaces - exec:Edit _mactab::edit /etc/mactab - exec:Edit _sysctl.conf::edit /etc/sysctl.conf - nop - exit:_Main menu.. - -menu:system:System:System Settings - exec:List _log files:truncate:ls -l /var/log - exec:Show _log file:edit,truncate:show -p -a log ~Show logfile, Enter for syslog:syslog~ - exec:Change _hostname:edit:hostnm ~Enter new hostname \[-a-zA-Z0-9\]:~ - exec:Change your _password::passwd - exec:Edit _rc.local::edit /etc/rc.local - nop - exec:_Show State of Services:truncate:initctl -p - exec:_Reload services:truncate:initctl reload;sleep 2;initctl -p - exec:Show _available services:truncate:initctl -p ls - exec:_Enable service:edit:initctl enable ~Enter name of service (filename) to enable:~ - exec:_Disable service:edit:initctl disable ~Enter name of service (filename) to disable:~ - nop - exec:_Factory Reset::yorn "Factory reset device (reboots), are you sure?" factory -y - nop - exit:_Main menu.. - -menu:tools:Tools:Tools - exec:_Ping:edit,pause:ping ~Enter address (IP or name) to ping:~ - exec:_Shell Prompt::/bin/bash --login - exec:_SSH:edit,pause:ssh ~Enter [username@]address (IP or name) to SSH to:~ - exec:_Telnet:edit,pause:telnet ~Enter address (IP or name) to telnet to:~ - exec:_Traceroute:edit,pause:mtr ~Enter address (IP or name) to traceroute to:~ - exec:Browse _WWW:edit,pause:lynx ~Enter URL to browse:~ - nop - exit:_Main menu.. diff --git a/board/classic/rootfs/etc/rc.local b/board/classic/rootfs/etc/rc.local deleted file mode 100755 index fbdd8e30..00000000 --- a/board/classic/rootfs/etc/rc.local +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# This file is run at the very end of runlevel S (bootstrap) -# -# Note: 1) not all initctl commands are allowed here -# 2) to enable IP forwarding, use /etc/sysctl.conf, or /etc/sysctl.d/ -# 3) ensure the script calls `exit 0` at the end -# - -# Uncomment to classify all interfaces starting with 'eth' as ports. -#for port in $(ip -br link |awk '/eth/{print $1}'); do -# ip link set $port group port -#done - -# Uncomment to enable IP masquerading (NAT) of all traffic egressing -# the WAN interface, here eth0. E.g., if you are a router for your -# LAN on eth1. -#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - -exit 0 diff --git a/board/classic/rootfs/lib/infix/swup b/board/classic/rootfs/lib/infix/swup deleted file mode 100755 index 385e35e5..00000000 --- a/board/classic/rootfs/lib/infix/swup +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# Factory default: -# 1) all switch ports in VLAN 1 of br0 -# 2) no switch ports => DHCP on eth0 -# 3) no eth0 - -create_bridge() -{ - nm=$1 - shift - ports=$@ - - touch "/etc/network/interfaces.d/$nm" - for port in $ports; do - cat <<-EOF >>"/etc/network/interfaces.d/$nm" - iface $port - bridge-access 1 - post-up ip link set $port group port - EOF - done - cat <<-EOF >> "/etc/network/interfaces.d/$nm" - - auto $nm - iface $nm - bridge-ports $ports - bridge-vlan-aware yes - bridge-stp on - bridge-vids 1 - - auto vlan1 - iface vlan1 inet dhcp - vlan-id 1 - vlan-raw-device $nm - post-up ip link set vlan1 group iface - EOF - ip link set vlan1 group iface -} - -# Check if already set up -[ -z "$(ls -A /etc/network/interfaces.d/)" ] || exit 0 - -# Check for custom hostname from Qemu/Qeneth -nm=$(cat /sys/firmware/qemu_fw_cfg/by_name/opt/hostname/raw) -if [ -n "$nm" ]; then - hostnm "$nm" -fi - -# need to check for 'length > 0' because ip command -# outputs empty json objects for non-port group ifs -ports=$(ip -json link show group port | jq -r '.[].ifname | select(length > 0)' | tr "\n" " ") -if [ -n "$ports" ]; then - create_bridge br0 $ports -else - ifaces=$(ip -json addr show |jq -r '.[] | select(.link_type=="ether").ifname') - for iface in $ifaces; do - cat <<-EOF > "/etc/network/interfaces.d/$iface" - auto $iface - iface $iface inet dhcp - pre-up ip link set $iface group iface - EOF - done -fi diff --git a/board/classic/rootfs/libexec/infix/probe b/board/classic/rootfs/libexec/infix/probe deleted file mode 100755 index d366189d..00000000 --- a/board/classic/rootfs/libexec/infix/probe +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# Probe for various types of harware features - -if dmesg |grep -q QEMU || test -d /sys/module/qemu_fw_cfg; then - initctl -nbq cond set qemu -fi diff --git a/board/common/mkgns3a.sh b/board/common/mkgns3a.sh index c8e814a9..35d46d81 100755 --- a/board/common/mkgns3a.sh +++ b/board/common/mkgns3a.sh @@ -60,7 +60,7 @@ cat <"$BINARIES_DIR/${NM}.gns3a" "status": "stable", "maintainer": "$VENDOR_NAME", "maintainer_email": "${SUPPORT_URL#mailto:}", - "usage": "Default login, user/pass: admin/admin\n\nType 'help' for an overview of commands and relevant configuration files.\n\nFor Classic builds the following applies: the /etc directory is writable, use the passwd tool after login as part of your set up.\nFor networking, classify interfaces as switchports with /etc/mactab, syntax: 'MAC-address eN', where N is the port number (1-MAX).\nTo set up bridging and management interfaces, use /etc/network/interfaces, and /etc/network/interfaces.d/", + "usage": "Default login, user/pass: admin/admin\n\nType 'cli' (and Enter) followed by 'help' for an overview of commands and relevant configuration files.", "port_name_format": "eth{0}", "linked_clone": true, "qemu": { diff --git a/board/common/post-build.sh b/board/common/post-build.sh index b1fcc7fa..f8d03418 100755 --- a/board/common/post-build.sh +++ b/board/common/post-build.sh @@ -40,13 +40,6 @@ rm -f "$TARGET_DIR/etc/os-release" if [ -n "$INFIX_RELEASE" ]; then echo "IMAGE_VERSION=\"$INFIX_RELEASE\"" fi - if [ "$INFIX_VARIANT_NETCONF" = "y" ]; then - echo "VARIANT=\"Managed NETCONF\"" - echo "VARIANT_ID=netconf" - else - echo "VARIANT=\"Classic, writable /etc\"" - echo "VARIANT_ID=classic" - fi echo "ARCHITECTURE=\"${INFIX_ARCH}\"" echo "HOME_URL=$INFIX_HOME" if [ -n "$INFIX_VENDOR" ]; then diff --git a/board/common/qemu/Config.in.in b/board/common/qemu/Config.in.in index ef703149..272a1037 100644 --- a/board/common/qemu/Config.in.in +++ b/board/common/qemu/Config.in.in @@ -77,9 +77,9 @@ config QEMU_MACHINE_RAM string "RAM size (k/M/G)" default "384M" help - The default, 384 MiB, works for most configurations, even less for - the Infix Classic builds. However, if you get kernel panic with: - "System is deadlocked on memory", try increasing this one. + The default, 384 MiB, works for most configurations. However, + if you get kernel panic with: "System is deadlocked on memory", + try increasing this one. config QEMU_KERNEL string diff --git a/board/common/rootfs/libexec/infix/mnt b/board/common/rootfs/libexec/infix/mnt index 3e4be7bb..7b557401 100755 --- a/board/common/rootfs/libexec/infix/mnt +++ b/board/common/rootfs/libexec/infix/mnt @@ -126,11 +126,6 @@ if ! mount_rw cfg >/dev/null 2>&1; then # Even if /mnt/var isn't available, if /mnt/cfg isn't either, then # there's no point in overlaying one ramdisk on top of another. vlibsrc= -else - # Classic Infix has read-write /etc across boots - if [ "$VARIANT_ID" != "netconf" ]; then - etcsrc=/mnt/cfg - fi fi if check_factory; then diff --git a/configs/aarch64_classic_defconfig b/configs/aarch64_classic_defconfig deleted file mode 100644 index 76fd656b..00000000 --- a/configs/aarch64_classic_defconfig +++ /dev/null @@ -1,120 +0,0 @@ -BR2_aarch64=y -BR2_ARM_FPU_VFPV4=y -BR2_TOOLCHAIN_EXTERNAL=y -BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y -BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y -BR2_DL_DIR="${BR2_EXTERNAL_INFIX_PATH}/dl" -BR2_CCACHE=y -BR2_CCACHE_DIR="${BR2_EXTERNAL_INFIX_PATH}/.ccache" -BR2_ENABLE_DEBUG=y -BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_INFIX_PATH}/patches" -BR2_TARGET_GENERIC_HOSTNAME="infix" -BR2_TARGET_GENERIC_ISSUE="Infix by KernelKit" -BR2_INIT_FINIT=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y -BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt ${BR2_EXTERNAL_INFIX_PATH}/board/common/xattrs" -BR2_TARGET_GENERIC_GETTY_TERM="xterm" -BR2_SYSTEM_DHCP="eth0" -BR2_ENABLE_LOCALE_WHITELIST="C en_US en_CA" -BR2_GENERATE_LOCALE="en_US en_CA" -BR2_TARGET_TZ_INFO=y -BR2_ROOTFS_OVERLAY="${BR2_EXTERNAL_INFIX_PATH}/board/common/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/classic/rootfs" -BR2_ROOTFS_POST_BUILD_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/classic/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22" -BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/linux_defconfig" -BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="alder/alder marvell/armada-3720-espressobin marvell/armada-3720-espressobin-emmc marvell/armada-3720-espressobin-v7 marvell/armada-3720-espressobin-v7-emmc marvell/armada-3720-espressobin-ultra marvell/cn9130-crb-A marvell/cn9130-crb-B microchip/sparx5_pcb135_emmc_no_psci" -BR2_LINUX_KERNEL_CUSTOM_DTS_OVERLAY="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/dts" -BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y -BR2_LINUX_KERNEL_INSTALL_TARGET=y -BR2_PACKAGE_BUSYBOX_CONFIG="${BR2_EXTERNAL_INFIX_PATH}/board/common/busybox_defconfig" -BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y -BR2_PACKAGE_STRACE=y -BR2_PACKAGE_STRESS_NG=y -BR2_PACKAGE_JQ=y -BR2_PACKAGE_MDIO_TOOLS=y -BR2_PACKAGE_RNG_TOOLS=y -BR2_PACKAGE_UBOOT_TOOLS=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y -BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_CA_CERTIFICATES=y -BR2_PACKAGE_LIBCURL_CURL=y -BR2_PACKAGE_NSS_MDNS=y -BR2_PACKAGE_ONIGURUMA=y -BR2_PACKAGE_AVAHI=y -# BR2_PACKAGE_AVAHI_AUTOIPD is not set -BR2_PACKAGE_AVAHI_DAEMON=y -BR2_PACKAGE_AVAHI_DEFAULT_SERVICES=y -BR2_PACKAGE_CHRONY=y -BR2_PACKAGE_DHCPCD=y -BR2_PACKAGE_DNSMASQ=y -BR2_PACKAGE_DROPBEAR=y -BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y -BR2_PACKAGE_DROPBEAR_WTMP=y -BR2_PACKAGE_DROPBEAR_LASTLOG=y -BR2_PACKAGE_DROPBEAR_LEGACY_CRYPTO=y -BR2_PACKAGE_ETHTOOL=y -BR2_PACKAGE_FPING=y -# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set -BR2_PACKAGE_IPROUTE2=y -BR2_PACKAGE_IPTABLES=y -BR2_PACKAGE_IPTABLES_NFTABLES=y -BR2_PACKAGE_LLDPD=y -BR2_PACKAGE_LYNX=y -BR2_PACKAGE_MTR=y -BR2_PACKAGE_NETCALC=y -BR2_PACKAGE_NFTABLES=y -BR2_PACKAGE_NMAP=y -BR2_PACKAGE_NMAP_NMAP=y -BR2_PACKAGE_NMAP_NPING=y -BR2_PACKAGE_OPENRESOLV=y -BR2_PACKAGE_SOCAT=y -BR2_PACKAGE_TCPDUMP=y -BR2_PACKAGE_TRACEROUTE=y -BR2_PACKAGE_DIALOG=y -BR2_PACKAGE_PDMENU=y -BR2_PACKAGE_HTOP=y -BR2_PACKAGE_IRQBALANCE=y -BR2_PACKAGE_KMOD_TOOLS=y -BR2_PACKAGE_PWGEN=y -BR2_PACKAGE_RAUC=y -BR2_PACKAGE_RAUC_GPT=y -BR2_PACKAGE_RAUC_NETWORK=y -BR2_PACKAGE_SYSKLOGD=y -BR2_PACKAGE_SYSKLOGD_LOGGER=y -BR2_PACKAGE_WATCHDOGD=y -BR2_PACKAGE_MG=y -BR2_PACKAGE_MOST=y -BR2_PACKAGE_NANO=y -BR2_TARGET_ROOTFS_SQUASHFS=y -# BR2_TARGET_ROOTFS_TAR is not set -BR2_PACKAGE_HOST_E2FSPROGS=y -BR2_PACKAGE_HOST_ENVIRONMENT_SETUP=y -BR2_PACKAGE_HOST_GENEXT2FS=y -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_RAUC=y -BR2_PACKAGE_HOST_UBOOT_TOOLS=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y -INFIX_VENDOR_HOME="https://github.com/kernelkit" -INFIX_DESC="Infix is a Network Operating System based on Linux. It can be set up both as a switch, with offloading using switchdev, and a router with firewalling." -INFIX_HOME="https://github.com/kernelkit/infix/" -INFIX_DOC="https://github.com/kernelkit/infix/tree/main/doc" -INFIX_VARIANT_CLASSIC=y -BR2_PACKAGE_FACTORY=y -BR2_PACKAGE_FINIT_SULOGIN=y -BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y -BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y -BR2_PACKAGE_FINIT_PLUGIN_MODULES_LOAD=y -BR2_PACKAGE_FINIT_PLUGIN_MODPROBE=y -BR2_PACKAGE_FINIT_PLUGIN_RTC=y -BR2_PACKAGE_FINIT_PLUGIN_TTY=y -BR2_PACKAGE_FINIT_PLUGIN_URANDOM=y -BR2_PACKAGE_IFUPDOWN_NG=y -BR2_PACKAGE_TETRIS=y diff --git a/configs/x86_64_classic_defconfig b/configs/x86_64_classic_defconfig deleted file mode 100644 index 38f5f202..00000000 --- a/configs/x86_64_classic_defconfig +++ /dev/null @@ -1,121 +0,0 @@ -BR2_x86_64=y -BR2_x86_corei7=y -BR2_TOOLCHAIN_EXTERNAL=y -BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y -BR2_DL_DIR="${BR2_EXTERNAL_INFIX_PATH}/dl" -BR2_CCACHE=y -BR2_CCACHE_DIR="${BR2_EXTERNAL_INFIX_PATH}/.ccache" -BR2_ENABLE_DEBUG=y -BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_INFIX_PATH}/patches" -BR2_TARGET_GENERIC_HOSTNAME="infix" -BR2_TARGET_GENERIC_ISSUE="Infix by KernelKit" -BR2_INIT_FINIT=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y -BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt ${BR2_EXTERNAL_INFIX_PATH}/board/common/xattrs" -BR2_TARGET_GENERIC_GETTY_TERM="xterm" -BR2_SYSTEM_DHCP="eth0" -BR2_ENABLE_LOCALE_WHITELIST="C en_US en_CA" -BR2_GENERATE_LOCALE="en_US en_CA" -BR2_TARGET_TZ_INFO=y -BR2_ROOTFS_OVERLAY="${BR2_EXTERNAL_INFIX_PATH}/board/common/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/classic/rootfs" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/classic/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22" -BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/linux_defconfig" -BR2_LINUX_KERNEL_INSTALL_TARGET=y -BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y -BR2_PACKAGE_BUSYBOX_CONFIG="${BR2_EXTERNAL_INFIX_PATH}/board/common/busybox_defconfig" -BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y -BR2_PACKAGE_JQ=y -BR2_PACKAGE_RNG_TOOLS=y -BR2_PACKAGE_UBOOT_TOOLS=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y -BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y -BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_CA_CERTIFICATES=y -BR2_PACKAGE_LIBCURL_CURL=y -BR2_PACKAGE_NSS_MDNS=y -BR2_PACKAGE_ONIGURUMA=y -BR2_PACKAGE_AVAHI=y -# BR2_PACKAGE_AVAHI_AUTOIPD is not set -BR2_PACKAGE_AVAHI_DAEMON=y -BR2_PACKAGE_AVAHI_DEFAULT_SERVICES=y -BR2_PACKAGE_DHCPCD=y -BR2_PACKAGE_DNSMASQ=y -BR2_PACKAGE_DROPBEAR=y -BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y -BR2_PACKAGE_DROPBEAR_WTMP=y -BR2_PACKAGE_DROPBEAR_LASTLOG=y -BR2_PACKAGE_DROPBEAR_LEGACY_CRYPTO=y -BR2_PACKAGE_ETHTOOL=y -BR2_PACKAGE_FPING=y -# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set -BR2_PACKAGE_IPROUTE2=y -BR2_PACKAGE_IPTABLES=y -BR2_PACKAGE_IPTABLES_NFTABLES=y -BR2_PACKAGE_LLDPD=y -BR2_PACKAGE_LYNX=y -BR2_PACKAGE_MTR=y -BR2_PACKAGE_NETCALC=y -BR2_PACKAGE_NFTABLES=y -BR2_PACKAGE_NMAP=y -BR2_PACKAGE_NMAP_NMAP=y -BR2_PACKAGE_NMAP_NPING=y -BR2_PACKAGE_OPENRESOLV=y -BR2_PACKAGE_SOCAT=y -BR2_PACKAGE_TCPDUMP=y -BR2_PACKAGE_TRACEROUTE=y -BR2_PACKAGE_DIALOG=y -BR2_PACKAGE_PDMENU=y -BR2_PACKAGE_HTOP=y -BR2_PACKAGE_IRQBALANCE=y -BR2_PACKAGE_KMOD_TOOLS=y -BR2_PACKAGE_PWGEN=y -BR2_PACKAGE_RAUC=y -BR2_PACKAGE_RAUC_GPT=y -BR2_PACKAGE_RAUC_NETWORK=y -BR2_PACKAGE_SYSKLOGD=y -BR2_PACKAGE_SYSKLOGD_LOGGER=y -BR2_PACKAGE_WATCHDOGD=y -BR2_PACKAGE_MG=y -BR2_PACKAGE_MOST=y -BR2_PACKAGE_NANO=y -BR2_TARGET_ROOTFS_SQUASHFS=y -# BR2_TARGET_ROOTFS_TAR is not set -BR2_TARGET_EDK2=y -BR2_TARGET_GRUB2=y -BR2_TARGET_GRUB2_X86_64_EFI=y -BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 squash4 part_gpt normal efi_gop configfile loadenv test echo reboot net efinet tftp loopback" -BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/grub-embed.cfg" -BR2_TARGET_GRUB2_INSTALL_TOOLS=y -BR2_PACKAGE_HOST_DOSFSTOOLS=y -BR2_PACKAGE_HOST_E2FSPROGS=y -BR2_PACKAGE_HOST_ENVIRONMENT_SETUP=y -BR2_PACKAGE_HOST_GENEXT2FS=y -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_MTOOLS=y -BR2_PACKAGE_HOST_RAUC=y -BR2_PACKAGE_HOST_UBOOT_TOOLS=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y -INFIX_VENDOR_HOME="https://github.com/kernelkit" -INFIX_DESC="Infix is a Network Operating System based on Linux. It can be set up both as a switch, with offloading using switchdev, and a router with firewalling." -INFIX_HOME="https://github.com/kernelkit/infix/" -INFIX_DOC="https://github.com/kernelkit/infix/tree/main/doc" -INFIX_VARIANT_CLASSIC=y -BR2_PACKAGE_FACTORY=y -BR2_PACKAGE_FINIT_SULOGIN=y -BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y -BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y -BR2_PACKAGE_FINIT_PLUGIN_MODULES_LOAD=y -BR2_PACKAGE_FINIT_PLUGIN_MODPROBE=y -BR2_PACKAGE_FINIT_PLUGIN_RTC=y -BR2_PACKAGE_FINIT_PLUGIN_TTY=y -BR2_PACKAGE_FINIT_PLUGIN_URANDOM=y -BR2_PACKAGE_IFUPDOWN_NG=y -BR2_PACKAGE_TETRIS=y -DISK_IMAGE_BOOT_BIN=y \ No newline at end of file diff --git a/doc/README.md b/doc/README.md index 271d3d59..2d88f69b 100644 --- a/doc/README.md +++ b/doc/README.md @@ -24,7 +24,6 @@ the `help` command. - [Find Your Device on the Network](discovery.md) - [Hardware Info & Status](hardware.md) - [Scripting Infix](scripting.md) - - [Infix Variants](variant.md) - [Virtual Environments](virtual.md) - [Vital Product Data (VPD)](vpd.md) - [YANG to Ethtool Mapping](eth-counters.md) diff --git a/doc/boot.md b/doc/boot.md index a5d50a32..d388aedd 100644 --- a/doc/boot.md +++ b/doc/boot.md @@ -331,8 +331,6 @@ rollbacks when upgrading to a new version. Non-volatile storage of the system configuration and user data. Concretely, user data is everything stored under `/root` and `/home`. -Depending on the operating mode, the configuration is either the NETCONF -databases from `/cfg`, or the contents of `/etc` in classic mode. ### `var` - Variable Data diff --git a/doc/variant.md b/doc/variant.md deleted file mode 100644 index 2f0415c3..00000000 --- a/doc/variant.md +++ /dev/null @@ -1,67 +0,0 @@ -Infix Variants -============== - -Infix comes in two *flavors*. Both have a default `admin` account, -allowed to log in from remote, with the default password `admin` -- -*customer specific builds* may have something else, e.g., per-device -generated factory password. - - -NETCONF -------- - -Infix use by [sysrepo][1] and [Netopeer][2] to provide NETCONF support. -A set of sysrepo plugins configure the network, using the Linux iproute2 -tool suite, generate configuration files in `/etc`, and control the all -system daemons, e.g., enable DHCP client on an interface. - -Configuration of an Infix device can be done remotely, using command -line tools like [netconf-client][3] and [netopeer2-cli][2], or desktop -GUI tools like [NETCONFc][4] and [MG-SOFT NetConf Browser][5]. It is -also possible to log in to the device using SSH and set it up locally -using the built-in [CLI](cli/introduction.md)[^1]. - -> **Note:** unlike Infix Classic, the `/etc` directory is a volatile RAM -> disk populated on each boot from the `startup-config`, ensuring a -> coherent centralized view of the system. - -For more information, see [Containers in Infix](container.md). - -[^1]: A [RESTCONF][7] based WebUI is also in progress. - - -Classic -------- - -Infix Classic is very much like a traditional embedded Linux system. -Stripped down, single read-only image, reusing the same Linux kernel and -Buildroot base as the NETCONF variant. Unlike the NETCONF variant, it -is up to the administrator to manually modify system configuration files -in `/etc`[^2] and control system services using the `initctl` tool. - -For example, networking is configured by editing the [ifupdown-ng][6] -files in `/etc/network/interfaces`. - -To perform a factory reset, wiping all changes in `/etc`, and all other -areas of the file system that are persistent, use the factory -tool. - -See the online help command for an introduction to the system -and help on available tools, like text editors, network debugging, etc. - -> **Note:** the Classic builds are legacy at this point. They were -> initially used for educational purposes, and sometimes as slightly -> more useful end-devices in GNS3. Little to no testing is done on -> them and they may eventually be migrated to a separate repository. - -[^2]: In Classic builds the `/etc` directory is saved across reboots on - a separate read-write partition. - -[1]: https://www.sysrepo.org/ -[2]: https://github.com/CESNET/netopeer -[3]: https://pypi.org/project/netconf-client/ -[4]: http://www.seguesoft.com/index.php/netconfc/ -[5]: https://www.mg-soft.si/mgNetConfBrowser.html -[6]: https://github.com/ifupdown-ng/ifupdown-ng -[7]: https://datatracker.ietf.org/doc/html/rfc8040 - diff --git a/doc/virtual.md b/doc/virtual.md index 303e8fb6..4cdcaeef 100644 --- a/doc/virtual.md +++ b/doc/virtual.md @@ -40,14 +40,13 @@ The Infix test suite is built around Qemu and [Qeneth][qeth], see: GNS3 ---- -Download the [latest build][rels] of the `x86_64`, or `x86_64_classic` -flavor. Unpack the tarball in a dedicated directory and use ["Import -Appliance"][APPL] to install the `.gns3a` file into [GNS3][]. +Download the [latest build][rels] of the `x86_64`, or `aarch64` if your +host machine is Arm. Unpack the tarball in a dedicated directory and +use ["Import Appliance"][APPL] to install the `.gns3a` file into +[GNS3][]. -Infix (`x86_64`) is in the "Router" category, it has with 10 interfaces -available by default for use as switch ports or routing. The *classic* -build only has one interface by default, geared more towards acting as -an end device. +Infix is in the "Router" category, it comes with 10 interfaces available +by default for use as switch ports or routing. [Qemu]: https://www.qemu.org/ [GNS3]: https://gns3.com/ diff --git a/test/case/repo/defconfig.sh b/test/case/repo/defconfig.sh index e774acf0..edfd743c 100755 --- a/test/case/repo/defconfig.sh +++ b/test/case/repo/defconfig.sh @@ -7,7 +7,7 @@ whitelist() { nm=$(basename "$1") case $nm in - aarch64_classic_defconfig | cn9130_crb_boot_defconfig | fireant_boot_defconfig | x86_64_classic_defconfig) + cn9130_crb_boot_defconfig | fireant_boot_defconfig) return 0 ;; *)