web-dev-qa-db-ja.com

自動起動するinsmod

サードパーティのソフトウェアを持っています。現在、システムを再起動するたびに、シェルを介して手動でinsmodを使用してモジュールをロードする必要があります。

buntu Wiki-DKMS を少し読んで、これを見つけました。だから、これは[〜#〜] dkms [〜#〜]が今のところ最先端のものだと思います。補足として、私はこの質問もここに見つけました: https://stackoverflow.com/questions/4356224/how-to-load-a-custom-module-at-the-boot-time-in- ubunt -しかし、これはもはや最新ではないようです。

だから、私の日常はこれです:

cd /usr/src/gx/kernel/gxsd/
make
/sbin/insmod gxsd.ko
cd /usr/src/gx/kernel/fxmc_usb/
make
/sbin/insmod fxmc_usb.ko
cd /usr/src/gx/examples/cpp/cpd
make

このサードパーティモジュールのサポートチームから、再起動するたびにこれを実行する必要があるというフィードバックを受けました。しかし、これはオプションではありません。自動的に起動させたい。

誤解しない限り、makeパーツは1回だけ必要ですよね?再起動するたびにmakeを使用する必要はありません。しかし、insmod- partをもう一度実行する必要がありますよね?

Dkmsをインストールしたばかりですが、これらのinsmodコマンドを自動起動に追加する方法に行き詰まっています。

1
DasSaffe

誰でもモジュールを「自動的に」挿入できないようにするには、次の手順に従います。

  1. 次のスクリプトを作成します。
    #!/bin/sh
    # Example script for loading modules
    # This script is in answer to question http://askubuntu.com/questions/660901/insmod-to-autostart

    # Copyright (c) 2015 Fabby

    # This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
    # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. See the GNU General Public License for more details.
    # You DID NOT receive a copy of the GNU General Public License along with this program as the license is bigger then this program.
    # Therefore, see http://www.gnu.org/licenses/ for more details.

    # Note:
    #   untested as I do not have these proprietary modules.

    # Version 0.1   DD 2015/08/13   converted from manual work.
    # version 0.2   DD 2015/08/14   added Sudo ls /home

    # Activate Sudo with bogus command so next lines will not need password
    Sudo ls /home > /dev/null

    if [ "$EUID" -ne 0 ]; then 
       read -p "You need to be a member of the im-operator group or root to be able to run this script"
       exit
    fi

    # Make statement : cd /usr/src/gx/kernel/gxsd/&&make
    # Insmod statement : /sbin/insmod gxsd.ko
    Sudo /sbin/insmod /usr/src/gx/kernel/gxsd/gxsd.ko
    # Make statement : cd /usr/src/gx/kernel/fxmc_usb/&&make
    # Insmod statement : /sbin/insmod fxmc_usb.ko
    Sudo /sbin/insmod fxmc_usb.ko
    # Make statement : cd /usr/src/gx/examples/cpp/cpd&&make
    # Seems superfluous, so let's skip this
  1. /usr/local/bin/DasSaffe_insmod.shに保存します
  2. 次のコマンドを実行します。

    chmod +x /usr/local/bin/DasSaffe_insmod.sh
    
  3. このマシンのすべてのユーザーがこれらのモジュールをロードできるようにする必要があるので、sodoersファイルを適合させます。

    Sudo visudo
    
  4. 次に、セクション### Alias section ###を探し、次に# Cmnd alias specificationを探します。

  5. 次の行を追加します。

    # Fabby: 2015-08-14 Create special operator for insmod
    InsMod_alias INSMOD_OPERATOR=/sbin/insmod, /usr/local/bin/DasSaffe_insmod.sh 
    
  6. 次に、セクションを探します。

    # Allow members of group Sudo to execute any command
    %Sudo           ALL=(ALL:ALL) ALL
    

その下に追加:

    # Fabby: 2015-08-14 Allow the group "im-operator" to use certain applications
    %im-operator    ALL=CMD_OPERATOR
  1. グループim-operatorとユーザーを追加します。

    Sudo groupadd im-operator&&Sudo adduser $USER im-operator
    
  2. ダッシュに移動してstartup appと入力し、そこにある唯一のアイコンをクリックします。

  3. クリック Add
  4. Commandフィールドに次のように入力します。DasSaffe_insmod.shと、NameおよびCommentフィールドでこれが何であるかを通知する任意の項目。
  5. テストするには、再起動してログオンします。

警告:上記ではテストできないので、あなたは私のモルモットです。これが機能するかどうかにかかわらずコメントを残してください。

動作する場合、次のように簡単です。

Sudo adduser zsUserName im-operator

ここで、szUserNameは、特定の時点からモジュールを挿入できるようにするユーザーの名前です。

1
Fabby