5 |
HWSETUP_DIR=/etc/sysconfig/hwsetup |
HWSETUP_DIR=/etc/sysconfig/hwsetup |
6 |
HWINFO="/usr/sbin/hwinfo" |
HWINFO="/usr/sbin/hwinfo" |
7 |
|
|
8 |
|
UNSUPPORTED_GFXCARD_DRIVERS="" |
9 |
|
UNSUPPORTED_NETCARD_DRIVERS="" |
10 |
|
if [ -f ${HWSETUP_DIR}/unsupported-gfxcard-drivers ] |
11 |
|
then |
12 |
|
UNSUPPORTED_GFXCARD_DRIVERS="$(< ${HWSETUP_DIR}/unsupported-gfxcard-drivers)" |
13 |
|
fi |
14 |
|
if [ -f ${HWSETUP_DIR}/unsupported-netcard-drivers ] |
15 |
|
then |
16 |
|
UNSUPPORTED_NETCARD_DRIVERS="$(< ${HWSETUP_DIR}/unsupported-netcard-drivers)" |
17 |
|
fi |
18 |
|
|
19 |
clearconfig() |
clearconfig() |
20 |
{ |
{ |
21 |
local file="$1" |
local file="$1" |
30 |
echo "${data}" >> ${HWSETUP_DIR}/${file} |
echo "${data}" >> ${HWSETUP_DIR}/${file} |
31 |
} |
} |
32 |
|
|
33 |
|
# check_unsupported_netcard_drivers UNSUPPORTED_ARRAY DRIVER |
34 |
|
check_unsupported_drivers() |
35 |
|
{ |
36 |
|
local unsupported="$1" |
37 |
|
local driver="$2" |
38 |
|
local i |
39 |
|
|
40 |
|
# filter unsupported devices |
41 |
|
for i in ${unsupported} |
42 |
|
do |
43 |
|
[[ ${i} = ${driver} ]] && return 1 |
44 |
|
done |
45 |
|
return 0 |
46 |
|
} |
47 |
|
|
48 |
|
# disable probeonly, load all modules by default |
49 |
|
probeonly=0 |
50 |
|
|
51 |
|
# check getops |
52 |
|
for i in $* |
53 |
|
do |
54 |
|
case $1 in |
55 |
|
# ignoring -p,-v,-a,-s |
56 |
|
-p|-v|-a|-s) shift;; |
57 |
|
# only support dry-run |
58 |
|
-n) shift; probeonly=1 ;; |
59 |
|
esac |
60 |
|
shift |
61 |
|
done |
62 |
|
|
63 |
|
echo -n "Autoconfiguring devices... " 1>&2 |
64 |
|
|
65 |
GFXCARD_INFO="$(${HWINFO} --gfxcard)" |
GFXCARD_INFO="$(${HWINFO} --gfxcard)" |
66 |
NETCARD_INFO="$(${HWINFO} --netcard)" |
NETCARD_INFO="$(${HWINFO} --netcard)" |
67 |
MOUSE_INFO="$(${HWINFO} --mouse)" |
MOUSE_INFO="$(${HWINFO} --mouse)" |
77 |
# network |
# network |
78 |
eval $(echo NETCARD_MODULE=\($(echo "${NETCARD_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
eval $(echo NETCARD_MODULE=\($(echo "${NETCARD_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
79 |
eval $(echo NETCARD_DESC=\($(echo "${NETCARD_INFO}" | grep 'Model:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
eval $(echo NETCARD_DESC=\($(echo "${NETCARD_INFO}" | grep 'Model:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
80 |
|
# fallback (only needed for systems without netlink) |
81 |
|
eval $(echo NETCARD_MODULE_FB=\($(echo "${NETCARD_INFO}" | grep 'Driver Activation Cmd:' | sed 's:.*\:\ \"modprobe\ \(.*\)\"$:\"\1\":')\)) |
82 |
# |
# |
83 |
# mouse |
# mouse |
84 |
eval $(echo MOUSE_MODULE=\($(echo "${MOUSE_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
eval $(echo MOUSE_MODULE=\($(echo "${MOUSE_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) |
107 |
GFXCARD_MODULE[${i}]="vesa" |
GFXCARD_MODULE[${i}]="vesa" |
108 |
fi |
fi |
109 |
|
|
110 |
|
# exclude unsupported drivers |
111 |
|
check_unsupported_drivers "${UNSUPPORTED_GFXCARD_DRIVERS}" "${NETCARD_MODULE[${i}]}" || continue |
112 |
|
|
113 |
addconfig xserver "XSERVER=\"${GFXCARD_XSERVER}\"" |
addconfig xserver "XSERVER=\"${GFXCARD_XSERVER}\"" |
114 |
addconfig xserver "XMODULE=\"${GFXCARD_MODULE[${i}]}\"" |
addconfig xserver "XMODULE=\"${GFXCARD_MODULE[${i}]}\"" |
115 |
addconfig xserver "XDESC=\"${GFXCARD_DESC[${i}]}\"" |
addconfig xserver "XDESC=\"${GFXCARD_DESC[${i}]}\"" |
122 |
|
|
123 |
for ((i=0; i<NETCARD_COUNT; i++)) |
for ((i=0; i<NETCARD_COUNT; i++)) |
124 |
do |
do |
125 |
|
# use fallback |
126 |
|
if [[ -z ${NETCARD_MODULE[${i}]} ]] |
127 |
|
then |
128 |
|
NETCARD_MODULE[${i}]="${NETCARD_MODULE_FB[${i}]}" |
129 |
|
fi |
130 |
|
|
131 |
|
# exclude unsupported drivers |
132 |
|
check_unsupported_drivers "${UNSUPPORTED_NETCARD_DRIVERS}" "${NETCARD_MODULE[${i}]}" || continue |
133 |
|
|
134 |
addconfig netcard "FULLNAME=\"${NETCARD_DESC[${i}]}\"" |
addconfig netcard "FULLNAME=\"${NETCARD_DESC[${i}]}\"" |
135 |
addconfig netcard "DRIVER=\"${NETCARD_MODULE[${i}]}\"" |
addconfig netcard "DRIVER=\"${NETCARD_MODULE[${i}]}\"" |
136 |
|
|
137 |
# add them to knoppix too |
# add them to knoppix too |
138 |
addconfig knoppix "NETCARD_FULLNAME=\"${NETCARD_DESC[${i}]}\"" |
addconfig knoppix "NETCARD_FULLNAME=\"${NETCARD_DESC[${i}]}\"" |
139 |
addconfig knoppix "NETCARD_DRIVER=\"${NETCARD_MODULE[${i}]}\"" |
addconfig knoppix "NETCARD_DRIVER=\"${NETCARD_MODULE[${i}]}\"" |
140 |
|
|
141 |
|
# load the netcard modules |
142 |
|
if [[ ${probeonly} = 0 ]] |
143 |
|
then |
144 |
|
modprobe -q "${NETCARD_MODULE[${i}]}" |
145 |
|
fi |
146 |
done |
done |
147 |
|
|
148 |
for ((i=0; i<MOUSE_COUNT; i++)) |
for ((i=0; i<MOUSE_COUNT; i++)) |
171 |
addconfig knoppix "MOUSE_DEVICE=\"${MOUSE_DEVICE[${i}]}\"" |
addconfig knoppix "MOUSE_DEVICE=\"${MOUSE_DEVICE[${i}]}\"" |
172 |
addconfig knoppix "MOUSE_DRIVER=\"${MOUSE_MODULE[${i}]}\"" |
addconfig knoppix "MOUSE_DRIVER=\"${MOUSE_MODULE[${i}]}\"" |
173 |
done |
done |
174 |
|
|
175 |
|
echo "Done." 1>&2 |