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

参考技术A insmod kernel var=value
如果这个错误信息是正确的, 那么检查一下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编译内核时出现错误,求解

Kali Linux中,make编译时出现错误怎么解决?

编译linux内核时出现"mkimage" command not found - U-Boot images will not be built错误的解决办法

linux 下make 时出现如下错误,怎么办?

阿里云服务器教程–SSH 登录时出现如下错误:Host key verification failed

分段错误:使用 yosys 编译时出现 11