linux下加内核模块时出现出现如下错误:insmod: error inserting 'kernel.ko': -1 Invalid parameters因该
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下加内核模块时出现出现如下错误:insmod: error inserting 'kernel.ko': -1 Invalid parameters因该相关的知识,希望对你有一定的参考价值。
我的用的内核版本是2.6.38
make cloneconfig 以后一定要把Module.symvers文件拷贝到/usr/src/linux/下面,否则编译出来的ko模块会出现错误 "Invalid module format",无法加载。Module.symvers在 /lib/modules/`uname -r`/build/
Module.symvers文件里面存放的实际是模块导出函数的信息,格式如下
<CRC> <Symbol> <module>
因此,对于2.6.26以后的内核,如果某个模块使用了另一个模块里面的函数,则Module.symvers里面要有该函数的信息,否则在insmod的时候会出现类似以下的错误
Error inserting depends (/lib/modules/2.6.31-16-generic/kernel/net/depends/depends.ko): Unknown symbol in module, or unknown parameter (see dmesg)追问
我也是这么加载的, Invalid parameters也是由加载问题引起的吗?
追答CMEM装载的地址范围必须和linux内核管理的地址分开, 看看uboot里面MEM的配置
或者
从出错的内容来看,你这个模块是要依赖其它模块的,要先插入其依赖的模块。
具体是哪个模块我也不清楚,也可能是编译内核时没有把一些模块选上。好像有个DMA
如果这个错误信息是正确的, 那么检查一下insmod模块时使用的参数(var=value ...). 参考技术B 查dmesg
我觉得是你设置或需要设置参数。
从共享模块注入组件时出现Angular 5静态注入器错误
【中文标题】从共享模块注入组件时出现Angular 5静态注入器错误【英文标题】:Angular 5 Static Injector error when injecting a component from a sharedmodule 【发布时间】:2018-07-21 12:19:10 【问题描述】:这是我的组件文件。我正在尝试使用 ng-bootstraps 模态创建一个可重用的模态组件。当我尝试从共享模块导入以下组件时,出现静态注入器错误。我查看了许多其他资源,但无法弄清楚我的实现有什么问题。
import Component from '@angular/core';
import NgbModal, ModalDismissReasons from '@ng-bootstrap/ng-bootstrap';
@Component(
selector: 'ngbd-modal-basic',
templateUrl: './customM.component.html'
)
export class CustomModalComponent
closeResult: string;
constructor(private modalService: NgbModal)
open(content)
this.modalService.open(content).result.then((result) =>
this.closeResult = `Closed with: $result`;
, (reason) =>
this.closeResult = `Dismissed $this.getDismissReason(reason)`;
);
private getDismissReason(reason: any): string
if (reason === ModalDismissReasons.ESC)
return 'by pressing ESC';
else if (reason === ModalDismissReasons.BACKDROP_CLICK)
return 'by clicking on a backdrop';
else
return `with: $reason`;
下面是声明的 SharedModule 并导出 ModalComponent。
import NgModule from '@angular/core';
import CommonModule from '@angular/common';
import LoaderComponent from './loader/loader.component';
import * as Shared from './index';
@NgModule(
imports: [
CommonModule
],
declarations: [
LoaderComponent,
Shared.CustomModalComponent
],
exports: [
LoaderComponent,
Shared.CustomModalComponent
],
providers: []
)
export class SharedModule
// static forRoot() : ModuleWithProviders
// return
// ngModule: SharedModule,
// providers: [ WebsocketService ]
//
//
一旦在构造函数中声明了静态注入器错误,它就会在此处抛出。
import Component, OnInit from '@angular/core';
import Router from '@angular/router';
import FormGroup, FormBuilder, Validators from '@angular/forms';
import finalize from 'rxjs/operators';
import environment from '@env/environment';
import Logger, I18nService, AuthenticationService from '@app/core';
import CustomModalComponent from '../shared/_directives/custom-modal/customM.component';
const log = new Logger('Login');
@Component(
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
)
export class LoginComponent implements OnInit
version: string = environment.version;
error: string;
loginForm: FormGroup;
isLoading = false;
constructor(private router: Router,
private formBuilder: FormBuilder,
private i18nService: I18nService,
private authenticationService: AuthenticationService,
private c: CustomModalComponent)
this.createForm();
主 App.module 文件
import BrowserModule from '@angular/platform-browser';
import BrowserAnimationsModule, NoopAnimationsModule from '@angular/platform-browser/animations';
import NgModule from '@angular/core';
import FormsModule from '@angular/forms';
import HttpModule from '@angular/http';
import TranslateModule from '@ngx-translate/core';
import NgbModule from '@ng-bootstrap/ng-bootstrap';
import NgxChartsModule from '@swimlane/ngx-charts';
import CoreModule from '@app/core';
import SharedModule from '@app/shared';
import HomeModule from './home/home.module';
import AboutModule from './about/about.module';
import LoginModule from './login/login.module';
import AppComponent from './app.component';
import AppRoutingModule from './app-routing.module';
@NgModule(
imports: [
BrowserModule,
BrowserAnimationsModule,
NoopAnimationsModule,
FormsModule,
HttpModule,
TranslateModule.forRoot(),
NgbModule.forRoot(),
CoreModule,
SharedModule,
HomeModule,
AboutModule,
LoginModule,
NgxChartsModule,
AppRoutingModule
],
declarations: [AppComponent],
providers: [ ],
bootstrap: [AppComponent]
)
export class AppModule
【问题讨论】:
【参考方案1】:你必须考虑两件事:
您的应用只有一个根注入器,其中包含在您的应用中任何模块(包括 AppModule)的 @NgModule.providers 数组中定义的所有提供程序。 每个组件都有自己的注入器(根注入器的子注入器),其中包含在组件的 @Component.providers 数组中声明的提供程序。 当 Angular 想要解决服务(MainService)的依赖项(RightClickService)时,他会在包含所有 NgModules 提供者的根注入器中查找它。
当 Angular 想要解决组件 (RightClickComponent) 的依赖项 (RightClickService) 时,如果未找到,他会在组件注入器中查找它,如果未找到,他将在父组件注入器中查找它,他将执行相同操作,直到到达如果没有找到根注入器,则会抛出错误。
所以,我遇到了同样的问题,这很烦人,但当我在组件模块文件中定义依赖项时,问题终于解决了。
PS:解读自here
【讨论】:
以上是关于linux下加内核模块时出现出现如下错误:insmod: error inserting 'kernel.ko': -1 Invalid parameters因该的主要内容,如果未能解决你的问题,请参考以下文章
编译linux内核时出现"mkimage" command not found - U-Boot images will not be built错误的解决办法