LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   bash programming (https://www.linuxquestions.org/questions/linux-newbie-8/bash-programming-112437/)

cpukiller 11-04-2003 07:36 PM

bash programming
 
hi all!

i'm trying to write a script that "insmod" a kernel module i wrote and then create the dev file in the /dev/ directory. once my module is loaded, he has an entry in the /proc/modules and /proc/devices files. So, I want to get the major # of the device specified in the /proc/devices file. Here's my script:

#!/bin/bash

DEVICE_FILE_NAME="/dev/ioaccess"
DEVICE_PROC_NAME="ioperm"
CONFIG_FILE="/etc/ioperm.conf"

tput reset
echo Installation du module ioperm.o...
insmod ioperm.o &> /dev/null
if [ "$?" = "0" ]; then
echo chargement du module réussi
else
echo erreur lors du chargement du module
echo
echo script terminé...
exit
fi
echo Cherche le numéro de device attribué par insmod...
grep $DEVICE_PROC_NAME /proc/devices > $CONFIG_FILE
echo Le fichier de configuration $CONFIG_FILE a été mis à jour
conf=$(cat $CONFIG_FILE)
echo conf=$conf
num=$(expr substr $conf 1 3)
echo Le numero du device est $num
echo Création du fichier device...
rm -f $DEVICE_FILE_NAME
mknod $DEVICE_FILE_NAME c $num 0
chmod 666 $DEVICE_FILE_NAME
echo Tout est ok... script terminé!

the config file will be use by programs accessing the driver. The variable 'conf' contain the config line for my device file(ex.: "253 ioperm"). I have to take the number at the beginning(253) and use it with mknod. When i execute it, it says that i made a typo error in the line -> num=$(expr substr $conf 1 3). i don't understand why. this line works if i replace $conf by another normal string variable like $CONFIG_FILE.

If someone as an idea on how to solve it or even an other way for retrieving the major # of a driver in /proc/devices, please let me know.

LogicG8 11-04-2003 07:45 PM

Please use the [ code ] [ /code ] tags (without the spaces.)

num=`cat $CONFIG_FILE | cut --delim=' ' -f1`


All times are GMT -5. The time now is 09:04 PM.