2017-07-11 53 views
0

現在、私はyocto mortyカーネルを構築中です。私は、カーネルで、カーネルモジュール(実際にはカメラドライバ)の不適切な読み込み順序がモジュールの失敗につながることを発見しました。yoctoでカーネルモジュールのロード順序を変更する方法

ドライバを変更したくないのは、依存関係が多すぎるためで、異なる会社の異なる人が実装するためです。

タイトルのとおり、カーネルブートの段階でドライバの読み込み順序を変更するにはどうすればよいですか?

ご協力いただきありがとうございます。

答えて

0

KERNEL_MODULE_AUTOLOAD変数を使用することもできます。それは私のために働いています。

はあなたに感謝、これは単純に見えますし、作品

+1

あなたlocal.confに KERNEL_MODULE_AUTOLOAD += "<module-name>"を追加します。 –

0

ドライバの読み込みについては、起動時に起動され、別のドライバに優先順位を付けることができないため、内蔵ドライバではありません。 カーネルモジュールの場合は、スタートアップシステム機能systemdまたはsysvを使用する必要があります。 (優先順位について話)作業ドライバーにsystemdためため
例:はsystemdにするために(優先順位について話)ドライバを動作していないため

[Unit] 
Description=Initializer for good driver 
Before=bad_driver.service 

[Service] 
Type=oneshot 
ExecStart=/bin/sh /usr/bin/script_modprobing_good_driver.sh 

[Install] 
WantedBy=multi-user.target 

例:

[Unit] 
Description=Initializer for bad driver 
After=good_driver.service 

[Service] 
Type=oneshot 
ExecStart=/bin/sh /usr/bin/script_modprobing_bad_driver.sh 

[Install] 
WantedBy=multi-user.target 

とリトル.BBそれらの人をインストールするファイル。

SUMMARY = "Systemd test for changing precedence of 2 kernel modules" 
LICENSE = "CLOSED" 

SRC_URI = "file://script_modprobing_good_driver.sh \ 
      file://script_modprobing_bad_driver.sh \ 
      file://bad_driver.service \ 
      file://good_driver.service \ 
      " 

DEPENDS = "systemd" 

S = "${WORKDIR}" 

inherit systemd 

SYSTEMD_SERVICE_${PN} = " bad_driver.service good_driver.service " 

do_install() { 
    install -d ${D}/usr/bin 
    install -d ${D}/etc/systemd/system 

    install -m 700 ${S}/script_modprobing_bad_driver.sh ${D}/usr/bin/ 
    install -m 700 ${S}/script_modprobing_good_driver.sh ${D}/usr/bin/ 
    install -m 644 ${S}/bad_driver.service    ${D}/etc/systemd/system/ 
    install -m 644 ${S}/good_driver.service    ${D}/etc/systemd/system/ 
} 
関連する問題