usb_init函数,第二个问题是,第868行的nousb表示什么

关于usb_init函数,第二个问题是,第868行的nousb表示什么?
知道C语言的人都会知道nousb是一个标志,只是不同的标志有不一样的精彩,这里的nousb是用来让我们在启动内核的时候通过内核参数去掉USB子系统的,Linux社会是一个很人性化的世界,它不会去逼迫我们接受USB,一切都只关乎我们自己的需要。不过我想我们一般来说是不会去指定nousb的吧。如果你真的指定了nousb,那它就只会幽怨的说一句“USBsupportdisabled”,然后退出usb_init。
nousb在drivers/usb/core/usb.c文件中定义为:
staticintnousb;/*DisableUSBwhenbuiltintokernelimage*/
module_param_named(autosuspend,usb_autosuspend_delay,int,0644);
MODULE_PARM_DESC(autosuspend,"defaultautosuspenddelay");
从中可知nousb是个模块参数。关于模块参数,我们都知道可以在加载模块的时候可以指定,但是如何在内核启动的时候指定?
打开系统的grub文件,然后找到kernel行,比如:
kernel/boot/vmlinuz-2.6.18-kdbroot=/dev/sda1rosplash=silentvga=0x314
其中的root,splash,vga等都表示内核参数。当某一模块被编译进内核的时候,它的模块参数便需要在kernel行来指定,格式为“模块名.参数=值”,比如:
modprobeusbcoreautosuspend=2
对应到kernel行,即为:
usbcore.autosuspend=2
通过命令“modinfo-p${modulename}”可以得知一个模块有哪些参数可以使用。同时,对于已经加载到内核里的模块,它们的模块参数会列举在/sys/module/${modulename}/parameters/目录下面,可以使用“echo-n${value}>/sys/module/${modulename}/parameters/${parm}”这样的命令去修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: __init__函数是一个Python中的特殊方法,也被称为构造函数。它在对象被创建时调用,用于初始化对象的属性和方法。通过在类定义中定义__init__函数,可以在创建对象时自动调用该函数,从而方便地完成对象的初始化工作。__init__函数的参数为self,代表对象本身,可以在函数中使用self来访问对象的属性和方法。例如: class Person: def __init__(self, name, age): self.name = name self.age = age p = Person("Tom", 18) 上述代码中,__init__函数中定义了两个参数,name和age,用来初始化对象的属性。在创建对象时,传入参数"Tom"和18,会自动调用__init__函数,从而完成对象的初始化。通过访问p.name和p.age,可以获取到对象的属性值。 ### 回答2: __init__函数是Python中的特殊方法,用于在创建类的实例时进初始化操作。它是在类的对象创建后立即调用的方法。 __init__函数的主要作用是初始化实例的属性和数据,可以在其中定义实例变量并为其赋初值。通过在__init__函数中定义实例变量,可以确保所有的实例都具有这些属性,并且可以在实例化时为它们提供初始值。 在使用__init__函数时,需要在类的定义中定义该函数,并指定self参数。当创建类的新实例时,Python会自动调用__init__函数,并将该实例作为第一个参数传递给self。通过self,可以在__init__函数中访问和操作实例的其他属性和方法。 下面是一个示例,演示了如何使用__init__函数: ```python class Person: def __init__(self, name, age): # 定义__init__函数,并传入name和age参数 self.name = name # 设置实例的name属性为传入的name参数 self.age = age # 设置实例的age属性为传入的age参数 def greet(self): # 定义实例方法greet print("Hello, my name is", self.name, "and I am", self.age, "years old.") # 创建Person的实例 person1 = Person("Alice", 25) # 调用实例方法greet person1.greet() ``` 在上面的例子中,定义了一个Person类,__init__函数中接受了两个参数name和age,并将它们分别赋值给实例的name属性和age属性。创建了person1的实例后,调用了实例方法greet,输出了该实例的name和age属性值。 通过__init__函数,可以在创建类的实例时,为实例属性提供初值,并且可以在__init__函数中执其他初始化操作,使得实例创建后更加完善和可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值