Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleQEMU invocation
# Copy the QCOW2 image and u-boot.bin from the deploy directory
cp $HOME/rdkb-cmf-arm/build-armefi64-rdk-broadband/tmp/deploy/images/armefi64-rdk-broadband/{rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2,u-boot.bin} .

# It can be helpful to create a snapshot to quickly revert
# any changes that are made
qemu-img create -f qcow2 -b rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2 -F qcow2 rdk.snapshot.qcow2
# And resize that snapshot to allow space for upgrades
qemu-img resize rdk.snapshot.qcow2 10G

DISK=${DISK:-rdk.snapshot.qcow2}
sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin \
    -smp 2 -m 1024 \
    -device virtio-rng-pci \
    -hda "${DISK}" \
    -netdev tap,id=testlan -net nic,netdev=testlan \
    -netdev tap,id=testlan2 -net nic,netdev=testlan2 \
    -netdev user,id=testwan -net nic,netdev=testwan \
    -device pci-serial
#using bridge manager:
# ensure /usr/local/libexec/qemu-bridge-helper is present and executable
# provide /usr/local/etc/qemu/bridge.conf:
#     allow br10
#     allow br100
Create a fresh virtual switch wan feed and LAN clients
sudo ip link add name br-wan-test type bridge
sudo ip link add name br-lan-test type bridge

# Assign both an IPv4 address 
sudo ip addr add <VIRTUAL_WAN_IP>/24 dev br-wan-test # ex: sudo ip addr add 192.168.50.1/24 dev br-wan-test
sudo ip addr add 10.0.0.254/24 dev br-lan-test


# Turn on the virtual switch
sudo ip link set br-wan-test up
sudo ip link set br-lan-test up


#If you are using USB-to-Ethernet adapter to connect LAN clinets
#check interfae name bu using ip link ex; enx000e0987b9ec
sudo ip addr flush dev <interface_name> 


# Physically link your USB adapter into LAN virtual switch
sudo ip link set <interface_name> master br-lan-test
sudo ip link set <interface_name> up

sudo mkdir -p /etc/qemu
echo -e "allow br-wan-test\nallow br-lan-test" | sudo tee /etc/qemu/bridge.conf > /dev/null
sudo chmod 4755 /usr/lib/qemu/qemu-bridge-helper


#Enable Host Routing, NAT
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o <your_host_internet_card> -j MASQUERADE
sudo iptables -F FORWARD
sudo iptables -A FORWARD -j ACCEPT




# Start Virtual WAN DHCP Engine
sudo dnsmasq --interface=br-wan-test \
             --dhcp-range=<START_IP>,<END_IP>,<SUBNET_MASK>,12h \
             --dhcp-option=option:router,<GATEWAY_IP> \
             --dhcp-option=option:dns-server,8.8.8.8 \
             --port=0 &


ex:
sudo dnsmasq --interface=br-wan-test \
             --dhcp-range=192.168.50.10,192.168.50.50,255.255.255.0,12h \
             --dhcp-option=option:router,192.168.50.1 \
             --dhcp-option=option:dns-server,8.8.8.8 \
             --port=0 &


# It can be helpful to create a snapshot to quickly revert
# any changes that are made
qemu-img create -f qcow2 -b rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2 -F qcow2 rdk.snapshot.qcow2

# And resize that snapshot to allow space for upgrades
qemu-img resize rdk.snapshot.qcow2 10G
DISK=${DISK:-rdk.snapshot.qcow2}

# Boot
sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin  \
    -smp 2 -m 1024  \
    -device virtio-rng-pci  \
    -hda "${DISK}"  \
    -netdev bridge,id=testwan,br=br10br-wan-test \
    -device virtio-net -pci,netdev=testwan,mac=52:54:00:2d:6e:99  \
    -netdev bridge,id=testlan,br=br100br-lan-test \
    -device virtio-net-pci,netdev=testlan,mac=52:54:00:2d:6e:98  \
    -device pci-serial

...