Contents of /alx-src/branches/alxconf-060/functions/config_modules.sh
Parent Directory | Revision Log
Revision 1800 -
(show annotations)
(download)
(as text)
Thu Apr 14 19:29:35 2011 UTC (13 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 3034 byte(s)
Thu Apr 14 19:29:35 2011 UTC (13 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 3034 byte(s)
created 0.6.x branch
1 | # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_modules.sh,v 1.6 2005-10-09 21:28:46 niro Exp $ |
2 | # configures printing on the host via mysql db settings |
3 | # Note must be the first configure script which will be startet |
4 | |
5 | kernel_major_version() |
6 | { |
7 | local KV |
8 | KV="$(uname -r | cut -d. -f1-2)" |
9 | echo "${KV}" |
10 | } |
11 | |
12 | get_modules_settings() |
13 | { |
14 | local i count mod_ids settings arg |
15 | |
16 | # first get all module names |
17 | mod_ids=$(mysqldo "select id from cfg_modules where serial='${ALX_SERIAL}'") |
18 | |
19 | # set counter equal to numbers of printers |
20 | declare -i count=0 |
21 | for i in ${mod_ids} |
22 | do |
23 | # now get the other settings und put them in arrays |
24 | ALX_MODULES[${count}]=$(mysqldo "select module from cfg_modules where id=${i};") |
25 | # get modules arguments |
26 | arg=$(mysqldo "select arg from cfg_modules where id=${i};") |
27 | # handle Nulls |
28 | [[ ${arg} = NULL ]] && arg="" |
29 | ALX_MODULES_ARG[${count}]="${arg}" |
30 | (( count++ )) |
31 | done |
32 | |
33 | # get network module |
34 | ALX_NETWORK_MODULE=$(mysqldo "select module from cfg_network where serial=${ALX_SERIAL};") |
35 | |
36 | ## fixes needed to satisfy some deps |
37 | ALX_GFX_MODULE=$(mysqldo "select module from cfg_graphic where serial=${ALX_SERIAL};") |
38 | |
39 | # export all settings |
40 | export ALX_COUNT=${count} |
41 | export ALX_NETWORK_MODULE |
42 | export ALX_GFX_MODULE |
43 | export ALX_MODULES |
44 | export ALX_MODULES_ARG |
45 | } |
46 | |
47 | add_modules() |
48 | { |
49 | local modules="$@" |
50 | local modfile="/etc/modules.autoload.d/kernel-$(kernel_major_version)" |
51 | local argfile="${SETTINGSPATH}/modules-args" |
52 | local mod |
53 | local arg |
54 | local oldifs |
55 | |
56 | for mod in ${modules} |
57 | do |
58 | if [ -n "$(find /lib/modules/$(uname -r) -name ${mod}.[o,k]*)" ] |
59 | then |
60 | # get the args |
61 | arg="$(grep ^${mod}: ${argfile})" |
62 | |
63 | # extract the arguments |
64 | if [[ -n ${arg} ]] |
65 | then |
66 | arg="${arg##*:}" |
67 | echo "${mod} ${arg}" >> ${modfile} |
68 | else |
69 | echo "${mod}" >> ${modfile} |
70 | fi |
71 | fi |
72 | done |
73 | } |
74 | |
75 | create_argfile() |
76 | { |
77 | local argfile="${SETTINGSPATH}/modules-args" |
78 | local count="${#ALX_MODULES[*]}" |
79 | local i |
80 | |
81 | for ((i=0; i<count; i++)) |
82 | do |
83 | if [[ ! -z ${ALX_MODULES_ARG[${i}]} ]] |
84 | then |
85 | echo "${ALX_MODULES[${i}]}:${ALX_MODULES_ARG[${i}]}" >> ${argfile} |
86 | fi |
87 | done |
88 | } |
89 | |
90 | config_modules() |
91 | { |
92 | local i |
93 | local modfile |
94 | local argfile |
95 | |
96 | # first of all get the vars |
97 | get_modules_settings |
98 | |
99 | # location of the modules.autoload file |
100 | modfile="/etc/modules.autoload.d/kernel-$(kernel_major_version)" |
101 | # location of the modules argument file |
102 | argfile="${SETTINGSPATH}/modules-args" |
103 | |
104 | # clear the old one |
105 | :> ${modfile} |
106 | :> ${argfile} |
107 | |
108 | # create a new arg file |
109 | create_argfile |
110 | |
111 | # needed for printing: |
112 | add_modules lp parport parport_pc usblp |
113 | |
114 | if [[ -n ${ALX_NETWORK_MODULE} ]] |
115 | then |
116 | add_modules "${ALX_NETWORK_MODULE}" |
117 | fi |
118 | |
119 | # intel i810 needs intel-agp module to work probably |
120 | [[ ${ALX_GFX_MODULE} = i810 ]] && add_modules intel-agp |
121 | [[ ${ALX_GFX_MODULE} = intel ]] && add_modules intel-agp |
122 | |
123 | for ((i=0; i <= ALX_COUNT; i++)) |
124 | do |
125 | if [[ -n ${ALX_MODULES[${i}]} ]] |
126 | then |
127 | add_modules "${ALX_MODULES[${i}]}" |
128 | fi |
129 | done |
130 | |
131 | unset ALX_COUNT |
132 | unset ALX_MODULES |
133 | unset ALX_NETWORK_MODULE |
134 | unset ALX_GFX_MODULE |
135 | } |