Re: Help on Modifying a Driver on Native Linux
Julia Lawall <[email protected]> Wed, 2 Apr 2025 08:13:36 +0200 (CEST)
| Newsgroups | dev.linux.lists.outreachy |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 1 Apr 2025, Richard Akintola wrote:
> I learnt that e1000 didn't work because the driver is included in VM
> images and not on Linux native, and a variant of e1000 on Linux native
> is the e1000e driver.
Thanks for the suggested text. You can see it here:
https://kernelnewbies.org/FirstKernelPatch#DriverChange
julia
>
> Below are some of the drivers that one could modify on Linux native
> in order have the "I can modify Linux kernel\n" effect.
>
> Using the e1000e driver
>
> 1. vim drivers/net/ethernet/intel/e1000e/netdev.c
>
> 2. Find the probe function
>
> static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> {
> struct net_device *netdev;
> struct e1000_adapter *adapter;
> struct e1000_hw *hw;
> const struct e1000_info *ei = e1000_info_tbl[ent->driver_data];
> resource_size_t mmio_start, mmio_len;
> resource_size_t flash_start, flash_len;
> static int cards_found;
> u16 aspm_disable_flag = 0;
> u16 eeprom_data = 0;
> u16 eeprom_apme_mask = E1000_EEPROM_APME;
> int bars, i, err;
> s32 ret_val = 0;
>
> printk(KERN_DEBUG "I can modify the Linux kernel\n");
>
> 3. Save the file and recompile the kernel, you should see the text
> printed when you run the "dmesg | less" command after rebooting.
>
> Or you could use the bluetooth driver
>
> 1. vim drivers/bluetooth/btusb.c
>
> 2. Find the probe function
>
> static int btusb_probe(struct usb_interface *intf,
> const struct usb_device_id *id)
> {
> struct usb_endpoint_descriptor *ep_desc;
> struct gpio_desc *reset_gpio;
> struct btusb_data *data;
> struct hci_dev *hdev;
> unsigned ifnum_base;
> int i, err, priv_size;
>
> printk(KERN_DEBUG "I can modify the Linux Kernel\n");
>
>
> 3. Save the file and recompile the kernel, you should see the text
> printed when you run the "dmesg | less" command after rebooting.
>
> I hope this helps.
>
>