router7/Makefile

107 lines
3.7 KiB
Makefile
Raw Normal View History

2020-05-09 22:14:37 +02:00
SUDO=GOPATH=$(shell go env GOPATH) sudo --preserve-env=GOPATH
PKGS := github.com/gokrazy/breakglass \
2020-05-09 22:14:37 +02:00
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/...
2020-05-09 22:14:37 +02:00
image:
ifndef DIR
@echo variable DIR unset
false
endif
go install github.com/gokrazy/tools/cmd/gokr-packer@latest
2020-05-09 22:14:37 +02:00
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= \
2020-05-09 22:14:37 +02:00
-overwrite_boot=${DIR}/boot.img \
-overwrite_root=${DIR}/root.img \
-overwrite_mbr=${DIR}/mbr.img \
2023-01-11 17:54:35 +01:00
-serial_console=ttyS0,115200 \
2020-05-09 22:14:37 +02:00
-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
2020-05-09 22:14:37 +02:00
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= \
2020-05-09 22:14:37 +02:00
-overwrite_boot=/tmp/recovery/boot.img \
-overwrite_root=/tmp/recovery/root.img \
-serial_console=ttyS0,115200n8 \
-hostname=router7 \
${PKGS}
${SUDO} /home/michael/go/bin/rtr7-recover \
-boot=/tmp/recovery/boot.img \
-root=/tmp/recovery/root.img
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/...
2020-05-09 22:14:37 +02:00
# integration tests
${SUDO} $(shell go env GOROOT)/bin/go test -buildvcs=false -count=1 -v -race github.com/rtr7/router7/...
2020-05-09 22:14:37 +02:00
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'
2020-06-04 09:58:50 +02:00
2023-01-11 17:56:00 +01:00
# sudo ip link add link enp3s0 name macvtap0 type macvtap
2020-06-04 09:58:50 +02:00
# sudo ip link set macvtap0 address 52:55:00:d1:55:03 up
2023-01-11 17:56:00 +01:00
# sudo chown $USER /dev/tap*
2020-06-04 09:58:50 +02:00
#
# TODO: use veth pairs for router7s lan0?
# e.g. get a network namespace to talk through router7
# ip link add dev veth1 type veth peer name veth2
qemu:
2023-01-11 17:55:50 +01:00
mkdir -p /tmp/router7-qemu
2020-06-04 09:58:50 +02:00
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= \
2020-06-04 09:58:50 +02:00
-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 \
2023-01-11 17:55:13 +01:00
-bios /usr/share/edk2-ovmf/x64/OVMF_CODE.fd \
2020-06-04 09:58:50 +02:00
-smp 8 \
-machine accel=kvm \
-m 4096 \
-nographic