web-dev-qa-db-fra.com

insmod pour démarrer automatiquement

J'ai un logiciel tiers. À l'heure actuelle, chaque fois que je redémarre mon système, je suis obligé d'utiliser insmod manuellement via Shell pour charger les modules.

J'ai lu un peu dans le buntu Wiki - DKMS et j'ai trouvé ça. Donc, je suppose que cela [~ # ~] dkms [~ # ~] est à la pointe de la technologie en ce moment. Juste en tant que sidenote, j'ai également trouvé cette question ici: https://stackoverflow.com/questions/4356224/how-to-load-a-custom-module-at-the-boot-time-in- ubunt - Mais il semble que ce ne soit plus à jour.

Donc, ma routine quotidienne est la suivante:

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

J'ai reçu les commentaires de l'équipe de support de ce module tiers, que cela doit être fait à chaque redémarrage. Mais ce n'est pas une option. Je veux qu'il démarre automatiquement.

Si je ne me trompe pas, les pièces make ne sont nécessaires qu'une seule fois, non? Je n'ai pas besoin d'utiliser make à chaque redémarrage. Mais la partie insmod- doit être exécutée à nouveau, non?

Je viens d'installer dkms, mais maintenant je ne sais pas comment ajouter ces commandes insmod à un démarrage automatique.

1
DasSaffe

Pour permettre à quiconque d'insérer des modules "automatiquement", procédez comme suit:

  1. Créez le script suivant:
    #!/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. Enregistrez-le dans /usr/local/bin/DasSaffe_insmod.sh
  2. Exécutez la commande suivante:

    chmod +x /usr/local/bin/DasSaffe_insmod.sh
    
  3. Maintenant, nous devons autoriser tous les utilisateurs de cette machine à charger ces modules, nous allons donc adapter le fichier sodoers:

    Sudo visudo
    
  4. Recherchez maintenant la section ### Alias section ### puis le # Cmnd alias specification.

  5. Ajoutez les lignes suivantes:

    # Fabby: 2015-08-14 Create special operator for insmod
    InsMod_alias INSMOD_OPERATOR=/sbin/insmod, /usr/local/bin/DasSaffe_insmod.sh 
    
  6. Recherchez maintenant la section:

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

et ajoutez ci-dessous:

    # Fabby: 2015-08-14 Allow the group "im-operator" to use certain applications
    %im-operator    ALL=CMD_OPERATOR
  1. Ajoutez le groupe im-operator et votre utilisateur par:

    Sudo groupadd im-operator&&Sudo adduser $USER im-operator
    
  2. Accédez au tableau de bord et saisissez startup app et cliquez sur l'unique icône.

  3. Cliquez sur Add
  4. Dans le champ Command, tapez: DasSaffe_insmod.sh et ce que vous voulez dans les champs Name et Comment qui vous rappelleront ce que c'est.
  5. Pour tester: redémarrez et connectez-vous.

Attention: Je ne peux pas tester ci-dessus, vous êtes donc mon cobaye. Veuillez laisser un commentaire, que cela fonctionne ou non.

Si cela fonctionne, c'est aussi simple que:

Sudo adduser zsUserName im-operator

szUserName est le nom de l'utilisateur pour lui permettre d'insérer des modules à partir de ce point dans le temps.

1
Fabby