michaeljclark / busybear-linux

busybear-linux is a tiny RISC-V Linux root filesystem image that targets the VirtIO board in riscv-qemu.
93 stars 33 forks source link

getting tap interface to work... #16

Closed MarcKarasek closed 4 years ago

MarcKarasek commented 4 years ago

I have used your busybear to help me boot opensbi+linux payload

I have setup tap0 on my ubuntu18 (VM) and have a br0 bridge configured.

The Host interface is a Virtualbox Host-Only Interface. I just want to talk with the riscv machine from the HOST..

I am booting riscv on qemu-system-riscv64:

qemu-system-riscv64 -M virt -m 1024M -nographic \ -kernel images/opensbi_linux.elf \ -drive file=images/ramdisk,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -append "root=/dev/vda rw console=ttyS0" \ -netdev type=tap,ifname=tap0,script=ramdisk/scripts/ifup.sh,downscript=ramdisk/scripts/ifdown.sh,id=net0 \ -device virtio-net-device,netdev=net0

I have configured the eth0 on the image as both static ip and dchp.

When dhcp I see the request on the Host and it gets an ipaddr during boot. But it never shows up in ifconfig. And I cannot ping the HOST.

If i configure it as static ifconfig shows the address but no route to the outside.

Both are going through the same tap0 interface above. bridge name bridge id STP enabled interfaces br0 8000.080027ea438c no enp0s8 tap0

I am at a loss now as the bridge seems to be working at least for dhcp....

FYI: The scripts in the cmdline above are from your repo, ifup/ifdown. I also took your .config files for busybox and linux and resued tehm in my makery.

MarcKarasek commented 4 years ago

Looks like this is a dhcp issue. If I set the interface on the qemu image (static ipaddress) it works and it connects to the tap0, etc.. Dhcp was working from the point of view you can run udhcpc and it would get an address, this address just never showed up on the interface (eth0). Very strange.

I created a seperate make_tap and del_tap scripts and put no on the -netdev line for scripts -netdev type=tap,ifname=tap0,script=no,downscript=no,id=net0