Hello everyone! I recently decided to reignite my passion for learning about kernel development, so I printed out the third edition of Linux Device Drivers by J. Corbet + others. In the book it is stated that they assume you have the 2.6.10 kernel. I decided to set up a virtual machine using virt-manager so that I can work through most of the book (I realise VMs dont allow for many things when developing drivers, where physical access to hardware is required, but its the best option for now until I can get a RPi or something else).

I decided to go with Ubuntu Dapper Drake, as it has a kernel version pretty close to what is used in the book, so I figured there wouldn’t be much friction when trying to install the specific 2.6.10 version (Dapper Drake is on 2.6.15, at least the one I got). However, I am encountering an issue with my networking. I have set up the NAT bridge from my regular WIFI internet connection to my virtual machines, set my dapper drake installation to use that in the NIC settings, but it doesnt connect.

Here are some commands and their output from the guest OS:

$ ifconfig -a
lo
<loopback information yada yada>

sit0
<yada yada>

$ lspci | grep -i ethernet
0000:01:00.0 Ethernet controller: Unknown device 1af4:1041 (rev 01)

The second command’s output leads me to believe that a device is detected but the OS doesnt know what to do with it because I dont have the virtio drivers for networking installed.

I’ve searched everywhere for a way to download them either as source or as a .deb package so I can transfer them to the guest OS using a disk drive I will create, but I cant find them anywhere. Everywhere I look, everyone says that for linux they are already included in the kernel (might not be true for the distribution I have as a guest).

So here is my question(s) finally: Where can I find virtio-tools either as a .deb package or as source with instruction to build on a distribution of around the age of dapper drake, or if there is another way and I am wrongly fixated on this, how can I set up networking by passing through my regular internet from the host to the guest, so that I can use stuff like github to write the driver code on my host and easily transfer it to the guest for compilation/testing?

Please be gentle. Dapper drake released around 2006 and it wasn’t until 2016 when I first used linux in any form, so I am used to a little more quality of life in my distributions xD /j

As always, many thanks in advance to everyone taking time to answer :)

  • promitheasOP
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 days ago

    I’ve got it set up like that. In my NIC section, under device model, the selected option is e1000e, but still no eth0 interface or anything other than lo and sit0

    Edit: unless I misunderstood and that’s not enough to use the e1000 driver

    • MorphiusFaydal@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      5 days ago

      You may need to shut down the VM, check the device config to ensure it’s set to e1000, then boot it back up. The PCI ID on your original post belongs to the virtio-net device.

      • promitheasOP
        link
        fedilink
        arrow-up
        1
        ·
        5 days ago

        Please could you guide me through that? How would I check that its set to e1000? I looked at the xml and and the model type is e1000, but again, I’m not sure im looking in the right place. Up to now I have been rawdogging qemu, so im not that familiar with virt-manager