mirror of
https://github.com/rtr7/router7.git
synced 2024-05-06 15:54:52 +00:00
7bc59a8b27
based on what I last used successfully
110 lines
3.8 KiB
Makefile
110 lines
3.8 KiB
Makefile
SUDO=GOPATH=$(shell go env GOPATH) sudo --preserve-env=GOPATH --preserve-env=PATH --preserve-env=HOME
|
||
|
||
PKGS := github.com/gokrazy/breakglass \
|
||
github.com/gokrazy/timestamps \
|
||
github.com/gokrazy/gdns \
|
||
github.com/gokrazy/serial-busybox \
|
||
github.com/prometheus/node_exporter \
|
||
github.com/gokrazy/fbstatus \
|
||
github.com/gokrazy/iptables \
|
||
github.com/gokrazy/nsenter \
|
||
github.com/gokrazy/podman \
|
||
github.com/greenpau/cni-plugins/cmd/cni-nftables-portmap \
|
||
github.com/greenpau/cni-plugins/cmd/cni-nftables-firewall \
|
||
github.com/gokrazy/syslogd/cmd/gokr-syslogd \
|
||
github.com/gokrazy/stat/cmd/... \
|
||
github.com/rtr7/router7/cmd/...
|
||
|
||
image:
|
||
ifndef DIR
|
||
@echo variable DIR unset
|
||
false
|
||
endif
|
||
go install github.com/gokrazy/tools/cmd/gokr-packer@latest
|
||
GOARCH=amd64 gokr-packer \
|
||
-gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp,github.com/gokrazy/gokrazy/cmd/randomd \
|
||
-kernel_package=github.com/rtr7/kernel \
|
||
-firmware_package=github.com/rtr7/kernel \
|
||
-eeprom_package= \
|
||
-overwrite_boot=${DIR}/boot.img \
|
||
-overwrite_root=${DIR}/root.img \
|
||
-overwrite_mbr=${DIR}/mbr.img \
|
||
-serial_console=ttyS0,115200 \
|
||
-hostname=router7 \
|
||
${PKGS}
|
||
|
||
recover: #test
|
||
go install github.com/gokrazy/tools/cmd/gokr-packer@latest
|
||
go install github.com/rtr7/tools/cmd/rtr7-recover@latest
|
||
GOARCH=amd64 gokr-packer \
|
||
-gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp,github.com/gokrazy/gokrazy/cmd/randomd \
|
||
-kernel_package=github.com/rtr7/kernel \
|
||
-firmware_package=github.com/rtr7/kernel \
|
||
-eeprom_package= \
|
||
-overwrite_boot=/tmp/recovery/boot.img \
|
||
-overwrite_root=/tmp/recovery/root.img \
|
||
-serial_console=ttyS0,115200n8 \
|
||
-hostname=router7 \
|
||
${PKGS}
|
||
${SUDO} $(which rtr7-recover) \
|
||
--boot /tmp/recovery/boot.img \
|
||
--root /tmp/recovery/root.img \
|
||
--mbr /tmp/recovery/mbr.img \
|
||
--hostname router7 \
|
||
--interface enp0s31f6
|
||
|
||
test:
|
||
# simulate recover (quick, for early for feedback)
|
||
go build -mod=mod ${PKGS} github.com/rtr7/tools/cmd/...
|
||
go test -mod=mod -count=1 -v -race github.com/rtr7/router7/internal/...
|
||
# integration tests
|
||
${SUDO} $(shell go env GOROOT)/bin/go test -buildvcs=false -count=1 -v -race github.com/rtr7/router7/...
|
||
|
||
testdhcp:
|
||
go test -v -coverprofile=/tmp/cov github.com/rtr7/router7/internal/dhcp4d
|
||
#&& go tool cover -html=/tmp/cov
|
||
|
||
strace:
|
||
# simulate recover (quick, for early for feedback)
|
||
go build ${PKGS} github.com/rtr7/tools/cmd/...
|
||
go test -v -race github.com/rtr7/router7/internal/...
|
||
# integration tests
|
||
(cd /tmp && go test -c router7) && ${SUDO} strace -f -o /tmp/st -s 2048 /tmp/router7.test -test.v #-test.race
|
||
|
||
update:
|
||
rtr7-safe-update -build_command='make image DIR=$$GOKR_DIR'
|
||
|
||
# sudo ip link add link enp3s0 name macvtap0 type macvtap
|
||
# sudo ip link set macvtap0 address 52:55:00:d1:55:03 up
|
||
# sudo chown $USER /dev/tap*
|
||
#
|
||
# TODO: use veth pairs for router7’s lan0?
|
||
# e.g. get a network namespace to talk through router7
|
||
# ip link add dev veth1 type veth peer name veth2
|
||
qemu:
|
||
mkdir -p /tmp/router7-qemu
|
||
GOARCH=amd64 gokr-packer \
|
||
-gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp,github.com/gokrazy/gokrazy/cmd/randomd \
|
||
-hostname=qemu-router7 \
|
||
-kernel_package=github.com/rtr7/kernel \
|
||
-firmware_package=github.com/rtr7/kernel \
|
||
-eeprom_package= \
|
||
-overwrite=/tmp/router7-qemu/disk.img \
|
||
-target_storage_bytes=$$((2*1024*1024*1024)) \
|
||
-serial_console=ttyS0,115200 \
|
||
${PKGS}
|
||
./travis/loopmkfs.sh
|
||
# TODO: without -smp, nothing works! is that GOMAXPROCS defaulting to 1 or something?
|
||
qemu-system-x86_64 \
|
||
-boot order=d \
|
||
-drive file=/tmp/router7-qemu/disk.img,format=raw \
|
||
-netdev tap,id=uplink,fd=3 3<>/dev/tap184 \
|
||
-device virtio-net-pci,netdev=uplink,mac=52:55:00:d1:55:03 \
|
||
-device virtio-net-pci,id=lan,mac=52:55:00:d1:55:04 \
|
||
-device i6300esb,id=watchdog0 -watchdog-action reset \
|
||
-bios /usr/share/edk2-ovmf/x64/OVMF_CODE.fd \
|
||
-smp 8 \
|
||
-machine accel=kvm \
|
||
-m 4096 \
|
||
-nographic
|