[ubuntu] /etc/modules niet goed afgehandeld

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Ik heb Ubuntu Edgy of mijn computer staan en heb een aantal modules (lm_sensors gerelateerd) in /etc/modules staan. Nu worden deze niet geladen tijdens het opstarten. Ik heb wat in /etc/init.d/modutils lopen klooien (wat echo statements toegevoegd), en krijg het idee dat /etc/modules wel goed geparsed wordt maar dat het laden van de modules verkeerd gaat.
Ik heb een verse installatie gedaan (na 3 upgrades), dus daar ligt het niet aan. Ik heb er overigens ook een bug voor gemeld.
Mijn vraag hier: hebben jullie dit ook gezien?

Acties:
  • 0 Henk 'm!

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
Voor sensors is de volgorde van modules laden vaak belangrijk.
Zet ze verkeerd om in /etc/modules, en het laden kan niet plaats vinden.

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Ze staan in de volgorde waarin sensors_detect ze heeft gezet:
i2c-viapro
i2c-isa
eeprom
w83627hf

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Is er niemand die dit kan reproduceren?

Acties:
  • 0 Henk 'm!

  • Dr_Hell
  • Registratie: Juni 2002
  • Laatst online: 26-07 23:34
# Generated by sensors-detect on Sat Nov 11 20:11:49 2006
# I2C adapter drivers
# modprobe unknown adapter NVIDIA i2c adapter 0 at 1:00.0
# modprobe unknown adapter NVIDIA i2c adapter 1 at 1:00.0
# modprobe unknown adapter NVIDIA i2c adapter 2 at 1:00.0
i2c-nforce2
i2c-isa
# I2C chip drivers
eeprom
it87


Zo staan ze er bij mij in, zonder problemen.

Acties:
  • 0 Henk 'm!

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
Nogmaals, soms is de volgorde cruciaal.
insmod eens met de hand modules voor module, en controleer of ze daadwerkelijk zichtbaar zijn in lsmod, en check tenslotte of je de sensors kan uitlezen.
Dát is de volgorde waarin de modules in /etc/modules moeten staan.

In twee van mijn eigen machines (2.6.17 kernel) is dit de (enige) juiste volgorde:
VIA 8235: i2c_core,i2c_isa,i2c_dev,i2c_viapro,w83781d,i2c_sensor
VIA 686B: via686a,i2c_core,i2c_dev,i2c_isa,i2c_sensor

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
via686a, i2c-core, i2c-dev worden niet eens gebruik als mijn sensors het wel doen. Als ze het niet doen is het enige wat nodig is het handmatig laden van w83627hf. Ik denk dan ook dat het probleem hier niet zit. Als ik "/etc/init.d/module-init-tool restart" doe, krijg ik een rij foutmeldingen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 * Loading manual drivers...                                                           ng module                                                                 modprobe 
 not found.le 
                                                                         [fail]
       ng module lp                                                              modprobe lp
 not found.le lp
                                                                         [fail]
       ng module                                                                 modprobe 
 not found.le 
                                                                         [fail]
       ng module i2c-viapro                                                      modprobe i2c-viapro
 not found.le i2c_viapro
                                                                         [fail]
       ng module i2c-isa                                                         modprobe i2c-isa
 not found.le i2c_isa
                                                                         [fail]
       ng module eeprom                                                          modprobe eeprom
 not found.le eeprom
                                                                         [fail]
       ng module w83627hf                                                        modprobe w83627hf
 not found.le w83627hf
                                                                         [fail]

Het init script is volgens mij gewoon goed defect:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/sh -e

# Silently exit if the kernel does not support modules or needs modutils.
[ -f /proc/modules ] || exit 0
[ ! -f /proc/ksyms ] || exit 0
[ -x /sbin/modprobe  ] || exit 0

. /etc/default/rcS
. /lib/lsb/init-functions

PATH="/sbin:/bin"
KVER=$(uname -r)
KMAJ=${KVER%${KVER#*.*[^.]}}
KMAJ=${KMAJ%.}

if [ -e /etc/modules-$KVER ]; then
  MODULES_FILE=/etc/modules-$KVER
elif [ -e /etc/modules-$KMAJ ]; then
  MODULES_FILE=/etc/modules-$KMAJ
else
  MODULES_FILE=/etc/modules
fi

# Loop over every line in /etc/modules.
log_begin_msg 'Loading manual drivers...'
grep '^[^#]' $MODULES_FILE | \
while read module args; do
  [ "$module" ] || continue
#  if [ "$VERBOSE" != no ]; then
  if [ "$VERBOSE" ]; then
    log_begin_msg "Trying module $module"
    echo " modprobe $module $args"  
    if modprobe $module $args; then
      log_end_msg $?
    else
      log_end_msg $? || true
    fi
  else
   modprobe $module $args > /dev/null 2>&1 || true
  fi
done
log_end_msg 0

exit 0

Ik heb alleen de "if [VERBOSE ..] regel aangepast omdat die niet werkte. Ziet een van jullie waar hier een fout kan zitten? Ik heb wat geprobeerd door regels handmatig na te doen, maar ben niet zo'n held in shell scripten.

Acties:
  • 0 Henk 'm!

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
Voor wat het waard is (Feisty):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 cat /etc/init.d/module-init-tools 
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          module-init-tools
# Required-Start:    
# Required-Stop:     
# Should-Start:      checkroot
# Should-stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Process /etc/modules.
# Description:       Load the modules listed in /etc/modules.
### END INIT INFO

# Silently exit if the kernel does not support modules or needs modutils.
[ -f /proc/modules ] || exit 0
[ ! -f /proc/ksyms ] || exit 0
[ -x /sbin/modprobe  ] || exit 0

. /etc/default/rcS
. /lib/lsb/init-functions

PATH="/sbin:/bin"

KVER=$(uname -r)
KMAJ=${KVER%${KVER#*.*[^.]}}
KMAJ=${KMAJ%.}

if [ -e /etc/modules-$KVER ]; then
  MODULES_FILE=/etc/modules-$KVER
elif [ -e /etc/modules-$KMAJ ]; then
  MODULES_FILE=/etc/modules-$KMAJ
else
  MODULES_FILE=/etc/modules
fi

load_module() {
  local module args
  module="$1"
  args="$2"

  if [ "$VERBOSE" != no ]; then
    log_action_msg "Loading kernel module $module"
    modprobe $module $args || true
  else
    modprobe $module $args > /dev/null 2>&1 || true
  fi
}

if [ "$VERBOSE" = no ]; then
  log_action_begin_msg 'Loading kernel modules'
fi

# Loop over every line in /etc/modules.
log_begin_msg 'Loading manual drivers...'
grep '^[^#]' $MODULES_FILE | \
while read module args; do
  [ "$module" ] || continue
  load_module "$module" "$args"
done

if [ "$VERBOSE" = no ]; then 
  log_action_end_msg 0
fi

exit 0

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Ik heb inmiddels de oorzaak van het probleem gevonden en wil die hier ook even melden: /etc/modules had de \r\n combinatie als niewe regel karakters. Nadat ik hier \n van heb gemaakt werkt het als een zonnetje.
Pagina: 1