Я изучаю модули ядра и новы к нему. Я хочу изменить размер MTU для eth0. Вот программа модуля, которую я написал.Ядро Linux для изменения размера MTU не работает
Цель состоит в том, чтобы изменить размер MTU eth0 на 1000. Но его не изменить. Может ли кто-нибудь сказать мне, что мне не хватает. Если сам подход не соответствует действительности, можете ли вы указать мне в правильном направлении?
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/etherdevice.h>
#include <linux/netdevice.h>
static int __init hello_2_init(void)
{
printk(KERN_INFO "Hello, world 2\n");
struct net_device dev;
eth_change_mtu(&dev,1000); //calling eth_change_mtu
return 0;
}
static void __exit hello_2_exit(void)
{
printk(KERN_INFO "Goodbye, world 2\n");
}
int eth_change_mtu(struct net_device *dev, int new_mtu)
{
dev->mtu = new_mtu;
printk(KERN_INFO "New MTU is %d",new_mtu);
return 0;
}
module_init(hello_2_init);
module_exit(hello_2_exit);
Для этого вам не нужен модуль ядра, введите эту команду в терминал 'ifconfig eth0 mtu 1000 up' –