DF-2305 / fwpci_prep.sh
#!/bin/sh # fwpci_prep.sh -- one-time guest preparation for the fwohci_pci.c rig # (DF-2304..DF-2306). Files are pushed to /root/fwo from the host. set -e cd /root/fwo # 1. install both harness TUs into the kernel source tree (the guest # /usr/src is the build scratch; the host-side sys/ tree is never # modified). fwpci_harness.c #includes the UNMODIFIED fwohci_pci.c # into its TU and fwohci_harness.c #includes the UNMODIFIED fwohci.c # (and exports fh_regs to the fwpci TU), so both stock units are # dropped from the FWO build to avoid duplicate symbols. install -m 644 fwohci_harness.c fwohci_harness.h fwpci_harness.c \ fwpci_harness.h /usr/src/sys/bus/firewire/ sed -i '' -e 's|^bus/firewire/fwohci.c[[:space:]].*|bus/firewire/fwohci.c\toptional fwohci_stock_disabled|' /usr/src/sys/conf/files sed -i '' -e 's|^bus/firewire/fwohci_pci.c[[:space:]].*|bus/firewire/fwohci_pci.c\toptional fwohci_stock_disabled|' /usr/src/sys/conf/files grep -q fwohci_harness.c /usr/src/sys/conf/files || \ printf 'bus/firewire/fwohci_harness.c\toptional fwohci_harness\n' \ >> /usr/src/sys/conf/files grep -q fwpci_harness.c /usr/src/sys/conf/files || \ printf 'bus/firewire/fwpci_harness.c\toptional fwpci_harness\n' \ >> /usr/src/sys/conf/files grep -n 'firewire' /usr/src/sys/conf/files if [ ! -f /usr/src/sys/config/FWO ]; then cp /usr/src/sys/config/X86_64_GENERIC /usr/src/sys/config/FWO printf '\n# fwohci/fwohci_pci audit rig (DF-2300..DF-2306)\ndevice\t\tfwohci_harness\ndevice\t\tfwpci_harness\n' \ >> /usr/src/sys/config/FWO fi tail -3 /usr/src/sys/config/FWO # 2. panic behavior: no ddb, dump on grep -q debugger_on_panic /etc/sysctl.conf || \ echo 'debug.debugger_on_panic=0' >> /etc/sysctl.conf sysctl debug.debugger_on_panic=0 # 3. build the userland driver cc -O -Wall -o fwpcictl fwpcictl.c ls -l fwpcictl echo PREP_OK |