| 1 | #!/bin/bash |
|---|
| 2 | # Basic system configuration and hardware setup |
|---|
| 3 | # (C) Klaus Knopper <knopper@knopper.net> 2004 |
|---|
| 4 | # modified for KANOTIX by Joerg Schirottke <master@kanotix.com> 2003-05 |
|---|
| 5 | # modified for PARSIX by Alan Baghumian <alan@technotux.org> 2007-02 |
|---|
| 6 | ### BEGIN INIT INFO |
|---|
| 7 | # Provides: live-autoconfig |
|---|
| 8 | # Required-Start: |
|---|
| 9 | # Required-Stop: |
|---|
| 10 | # Default-Start: |
|---|
| 11 | # Default-Stop: |
|---|
| 12 | # Short-Description: Live-Autoconfig service |
|---|
| 13 | # Description: Live autoconfig system for Parsix |
|---|
| 14 | ### END INIT INFO |
|---|
| 15 | |
|---|
| 16 | PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin" |
|---|
| 17 | export PATH |
|---|
| 18 | |
|---|
| 19 | umask 022 |
|---|
| 20 | |
|---|
| 21 | # override tool behaviour through distro-defaults |
|---|
| 22 | FLL_DISTRO_MODE="installed" |
|---|
| 23 | FLL_IMAGE_DIR="KNOPPIX" |
|---|
| 24 | FLL_DISTRO_NAME="Parsix" |
|---|
| 25 | FLL_LIVE_USER="parsix" |
|---|
| 26 | |
|---|
| 27 | [ -r /etc/default/distro ] && source /etc/default/distro |
|---|
| 28 | |
|---|
| 29 | [ ! "$FLL_DISTRO_MODE" == "live" ] && exit 0 |
|---|
| 30 | |
|---|
| 31 | case "$1" in |
|---|
| 32 | start) ;; |
|---|
| 33 | stop) ;; |
|---|
| 34 | restart|force-reload) ;; |
|---|
| 35 | esac |
|---|
| 36 | |
|---|
| 37 | # Ignore these signals: INT, TERM, SEGV |
|---|
| 38 | trap "" 2 3 11 |
|---|
| 39 | |
|---|
| 40 | # ANSI COLORS |
|---|
| 41 | CRE=" |
|---|
| 42 | [K" |
|---|
| 43 | NORMAL="[0;39m" |
|---|
| 44 | # RED: Failure or error message |
|---|
| 45 | |
|---|
| 46 | # GREEN: Success message |
|---|
| 47 | GREEN="[1;32m" |
|---|
| 48 | # YELLOW: Descriptions |
|---|
| 49 | YELLOW="[1;33m" |
|---|
| 50 | # BLUE: System messages |
|---|
| 51 | BLUE="[1;34m" |
|---|
| 52 | # MAGENTA: Found devices or drivers |
|---|
| 53 | MAGENTA="[1;35m" |
|---|
| 54 | # CYAN: Questions |
|---|
| 55 | CYAN="[1;36m" |
|---|
| 56 | # BOLD WHITE: Hint |
|---|
| 57 | WHITE="[1;37m" |
|---|
| 58 | |
|---|
| 59 | ### Utility Function(s) |
|---|
| 60 | |
|---|
| 61 | # Simple shell grep |
|---|
| 62 | stringinfile(){ |
|---|
| 63 | case "$(cat $2)" in *$1*) return 0;; esac |
|---|
| 64 | return 1 |
|---|
| 65 | } |
|---|
| 66 | |
|---|
| 67 | # same for strings |
|---|
| 68 | stringinstring(){ |
|---|
| 69 | case "$2" in *$1*) return 0;; esac |
|---|
| 70 | return 1 |
|---|
| 71 | } |
|---|
| 72 | |
|---|
| 73 | # Reread boot command line; echo last parameter's argument or return false. |
|---|
| 74 | getbootparam(){ |
|---|
| 75 | stringinstring " $1=" "$CMDLINE" || return 1 |
|---|
| 76 | result="${CMDLINE##*$1=}" |
|---|
| 77 | result="${result%%[ ]*}" |
|---|
| 78 | echo "$result" |
|---|
| 79 | return 0 |
|---|
| 80 | } |
|---|
| 81 | |
|---|
| 82 | # Check boot commandline for specified option |
|---|
| 83 | checkbootparam(){ |
|---|
| 84 | stringinstring " $1" "$CMDLINE" |
|---|
| 85 | return "$?" |
|---|
| 86 | } |
|---|
| 87 | |
|---|
| 88 | ### EOF utility functions |
|---|
| 89 | |
|---|
| 90 | # We need /proc here, so mount it in case we skipped the bootfloppy |
|---|
| 91 | [ -f /proc/version ] || mount -t proc proc /proc 2>/dev/null |
|---|
| 92 | |
|---|
| 93 | # Kernel 2.6 |
|---|
| 94 | [ -d /sys/devices ] || mount -t sysfs sysfs /sys 2>/dev/null |
|---|
| 95 | |
|---|
| 96 | # Read in boot parameters |
|---|
| 97 | # This should work, but doesn't with Kernel 2.4.19-rc1 |
|---|
| 98 | # CMDLINE="$(</proc/cmdline)" This should work, but doesn't with Kernel 2.4.19-rc1 |
|---|
| 99 | # This works. |
|---|
| 100 | [ -z "$CMDLINE" ] && CMDLINE=" $(cat /proc/cmdline)" |
|---|
| 101 | |
|---|
| 102 | # Check if we are in interactive startup mode |
|---|
| 103 | INTERACTIVE="" |
|---|
| 104 | stringinstring "BOOT_IMAGE=expert " "$CMDLINE" && INTERACTIVE="yes" |
|---|
| 105 | |
|---|
| 106 | # Check if we want the config floppy |
|---|
| 107 | MYCONF="" |
|---|
| 108 | case "$CMDLINE" in *\ myconf*|*\ floppyconf*|*\ custom*|*\ config*) MYCONF="yes"; ;; esac |
|---|
| 109 | if [ -n "$MYCONF" ]; then |
|---|
| 110 | # Check for given config directory |
|---|
| 111 | MYCONFDIR="$(getbootparam 'myconfig')" |
|---|
| 112 | [ -n "$MYCONFDIR" ] || MYCONFDIR="$(getbootparam 'myconf')" |
|---|
| 113 | [ -n "$MYCONFDIR" ] || MYCONFDIR="$(getbootparam 'floppyconfig')" |
|---|
| 114 | [ -n "$MYCONFDIR" ] || MYCONFDIR="$(getbootparam 'floppyconf')" |
|---|
| 115 | [ -n "$MYCONFDIR" ] || MYCONFDIR="$(getbootparam 'custom')" |
|---|
| 116 | [ -n "$MYCONFDIR" ] || MYCONFDIR="$(getbootparam 'config')" |
|---|
| 117 | fi |
|---|
| 118 | |
|---|
| 119 | ### localization |
|---|
| 120 | # Allow language specification via commandline. The default language |
|---|
| 121 | # will be overridden via "lang=de" boot commandline |
|---|
| 122 | LANGUAGE="$(getbootparam lang 2>/dev/null)" |
|---|
| 123 | [ -n "$LANGUAGE" ] || LANGUAGE="$(getbootparam console-setup/layoutcode 2>/dev/null)" |
|---|
| 124 | [ -n "$LANGUAGE" ] || LANGUAGE="us" |
|---|
| 125 | |
|---|
| 126 | # Set default console font (needed for first console + kernel 2.6) |
|---|
| 127 | CONSOLEFONT="Uni3-Terminus16" |
|---|
| 128 | |
|---|
| 129 | # The default language/keyboard to use. This CANNOT be autoprobed. |
|---|
| 130 | # Most of these variables will be used to generate the KDE defaults |
|---|
| 131 | # and will be inserted into /etc/sysconfig/* below. |
|---|
| 132 | case "$LANGUAGE" in |
|---|
| 133 | fa) |
|---|
| 134 | COUNTRY="ir_IR" |
|---|
| 135 | LANG="fa_IR" |
|---|
| 136 | KEYTABLE="us" |
|---|
| 137 | XKEYBOARD="us,ir" |
|---|
| 138 | KDEKEYBOARD="us,ir" |
|---|
| 139 | CHARSET="utf8" |
|---|
| 140 | TZ="Asia/Tehran" |
|---|
| 141 | ;; |
|---|
| 142 | de) |
|---|
| 143 | # German version |
|---|
| 144 | COUNTRY="de" |
|---|
| 145 | LANG="de_DE@euro" |
|---|
| 146 | KEYTABLE="de-latin1-nodeadkeys" |
|---|
| 147 | XKEYBOARD="de,us" |
|---|
| 148 | KDEKEYBOARD="de,us" |
|---|
| 149 | CHARSET="iso8859-15" |
|---|
| 150 | TZ="Europe/Berlin" |
|---|
| 151 | ;; |
|---|
| 152 | de-utf8) |
|---|
| 153 | # German version UTF-8 |
|---|
| 154 | LANGUAGE="de_DE:de" |
|---|
| 155 | COUNTRY="de_DE" |
|---|
| 156 | LANG="de_DE.UTF-8" |
|---|
| 157 | KEYTABLE="de-latin1-nodeadkeys" |
|---|
| 158 | XKEYBOARD="de,us" |
|---|
| 159 | KDEKEYBOARD="de,us" |
|---|
| 160 | CHARSET="utf8" |
|---|
| 161 | TZ="Europe/Berlin" |
|---|
| 162 | ;; |
|---|
| 163 | au) |
|---|
| 164 | # Australian version |
|---|
| 165 | LANGUAGE="en" |
|---|
| 166 | COUNTRY="au" |
|---|
| 167 | LANG="en_AU" |
|---|
| 168 | KEYTABLE="us" |
|---|
| 169 | XKEYBOARD="us" |
|---|
| 170 | KDEKEYBOARD="us" |
|---|
| 171 | CHARSET="iso8859-1" |
|---|
| 172 | TZ="Australia/Sydney" |
|---|
| 173 | ;; |
|---|
| 174 | au-utf8) |
|---|
| 175 | # Australian version |
|---|
| 176 | LANGUAGE="en_AU:en" |
|---|
| 177 | COUNTRY="au" |
|---|
| 178 | LANG="en_AU.UTF-8" |
|---|
| 179 | KEYTABLE="us" |
|---|
| 180 | XKEYBOARD="us" |
|---|
| 181 | KDEKEYBOARD="us" |
|---|
| 182 | CHARSET="utf8" |
|---|
| 183 | TZ="Australia/Sydney" |
|---|
| 184 | ;; |
|---|
| 185 | be) |
|---|
| 186 | # Belgian version |
|---|
| 187 | LANGUAGE="be" |
|---|
| 188 | COUNTRY="be" |
|---|
| 189 | LANG="C" |
|---|
| 190 | KEYTABLE="be2-latin1" |
|---|
| 191 | XKEYBOARD="be,us" |
|---|
| 192 | KDEKEYBOARD="be,us" |
|---|
| 193 | CHARSET="iso8859-15" |
|---|
| 194 | # Additional KDE Keyboards |
|---|
| 195 | KDEKEYBOARDS="us,de,fr" |
|---|
| 196 | TZ="Europe/Brussels" |
|---|
| 197 | ;; |
|---|
| 198 | be-utf8) |
|---|
| 199 | # Belgian version |
|---|
| 200 | LANGUAGE="be_BY:be" |
|---|
| 201 | COUNTRY="be" |
|---|
| 202 | LANG="be_BY.UTF-8" |
|---|
| 203 | KEYTABLE="be2-latin1" |
|---|
| 204 | XKEYBOARD="be" |
|---|
| 205 | KDEKEYBOARD="be" |
|---|
| 206 | CHARSET="utf8" |
|---|
| 207 | # Additional KDE Keyboards |
|---|
| 208 | KDEKEYBOARDS="us,de,fr" |
|---|
| 209 | TZ="Europe/Brussels" |
|---|
| 210 | ;; |
|---|
| 211 | bg) |
|---|
| 212 | # Bulgarian version |
|---|
| 213 | LANGUAGE="bg" |
|---|
| 214 | COUNTRY="bg" |
|---|
| 215 | LANG="bg_BG" |
|---|
| 216 | KEYTABLE="bg" |
|---|
| 217 | XKEYBOARD="bg,us" |
|---|
| 218 | KDEKEYBOARD="bg,us" |
|---|
| 219 | CHARSET="microsoft-cp1251" |
|---|
| 220 | # Additional KDE Keyboards |
|---|
| 221 | KDEKEYBOARDS="us,de,fr" |
|---|
| 222 | TZ="Europe/Sofia" |
|---|
| 223 | ;; |
|---|
| 224 | bg-utf8) |
|---|
| 225 | # Bulgarian version |
|---|
| 226 | LANGUAGE="bg_BG:bg" |
|---|
| 227 | COUNTRY="bg" |
|---|
| 228 | LANG="bg_BG.UTF-8" |
|---|
| 229 | KEYTABLE="bg" |
|---|
| 230 | XKEYBOARD="bg,us" |
|---|
| 231 | KDEKEYBOARD="bg,us" |
|---|
| 232 | CHARSET="utf8" |
|---|
| 233 | # Additional KDE Keyboards |
|---|
| 234 | KDEKEYBOARDS="us,de,fr" |
|---|
| 235 | TZ="Europe/Sofia" |
|---|
| 236 | ;; |
|---|
| 237 | br) |
|---|
| 238 | # Brazilian Version |
|---|
| 239 | LANGUAGE="pt_BR" |
|---|
| 240 | COUNTRY="br" |
|---|
| 241 | LANG="pt_BR" |
|---|
| 242 | KEYTABLE="br-abnt2" |
|---|
| 243 | XKEYBOARD="abnt2" |
|---|
| 244 | KDEKEYBOARD="br,us" |
|---|
| 245 | CHARSET="iso8859-1" |
|---|
| 246 | # Additional KDE Keyboards |
|---|
| 247 | KDEKEYBOARDS="us,br" |
|---|
| 248 | TZ="America/Sao_Paulo" |
|---|
| 249 | ;; |
|---|
| 250 | br-utf8) |
|---|
| 251 | # Brazilian Version |
|---|
| 252 | LANGUAGE="pt_BR:pt" |
|---|
| 253 | COUNTRY="br" |
|---|
| 254 | LANG="pt_BR.UTF-8" |
|---|
| 255 | KEYTABLE="br-abnt2" |
|---|
| 256 | XKEYBOARD="abnt2,us" |
|---|
| 257 | KDEKEYBOARD="br,us" |
|---|
| 258 | CHARSET="utf8" |
|---|
| 259 | TZ="America/Sao_Paulo" |
|---|
| 260 | ;; |
|---|
| 261 | ch) |
|---|
| 262 | # Swiss version (basically de with some modifications) |
|---|
| 263 | LANGUAGE="de" |
|---|
| 264 | COUNTRY="ch" |
|---|
| 265 | LANG="de_CH" |
|---|
| 266 | KEYTABLE="sg-latin1" |
|---|
| 267 | XKEYBOARD="de_CH,us" |
|---|
| 268 | KDEKEYBOARD="de_CH,us" |
|---|
| 269 | CHARSET="iso8859-15" |
|---|
| 270 | TZ="Europe/Zurich" |
|---|
| 271 | ;; |
|---|
| 272 | ch-utf8) |
|---|
| 273 | # Swiss version (basically de with some modifications) |
|---|
| 274 | LANGUAGE="de_CH:de" |
|---|
| 275 | COUNTRY="ch" |
|---|
| 276 | LANG="de_CH.UTF-8" |
|---|
| 277 | KEYTABLE="sg-latin1" |
|---|
| 278 | XKEYBOARD="de_CH,us" |
|---|
| 279 | KDEKEYBOARD="de_CH,us" |
|---|
| 280 | CHARSET="utf8" |
|---|
| 281 | TZ="Europe/Zurich" |
|---|
| 282 | ;; |
|---|
| 283 | cn) |
|---|
| 284 | # Simplified Chinese version |
|---|
| 285 | COUNTRY="cn" |
|---|
| 286 | LANG="zh_CN.GB2312" |
|---|
| 287 | KEYTABLE="us" |
|---|
| 288 | XKEYBOARD="us" |
|---|
| 289 | KDEKEYBOARD="us" |
|---|
| 290 | CHARSET="gb2312.1980-0" |
|---|
| 291 | XMODIFIERS="@im=Chinput" |
|---|
| 292 | TZ="Asia/Shanghai" |
|---|
| 293 | ;; |
|---|
| 294 | cn-utf8) |
|---|
| 295 | # Simplified Chinese version |
|---|
| 296 | COUNTRY="zh_CN:cn" |
|---|
| 297 | LANG="zh_CN.UTF-8" |
|---|
| 298 | KEYTABLE="us" |
|---|
| 299 | XKEYBOARD="us" |
|---|
| 300 | KDEKEYBOARD="us" |
|---|
| 301 | CHARSET="utf8" |
|---|
| 302 | XMODIFIERS="@im=Chinput" |
|---|
| 303 | TZ="Asia/Shanghai" |
|---|
| 304 | ;; |
|---|
| 305 | cs|cz) |
|---|
| 306 | # Czech version |
|---|
| 307 | LANGUAGE="cs" |
|---|
| 308 | COUNTRY="cs" |
|---|
| 309 | LANG="cs_CZ" |
|---|
| 310 | KEYTABLE="cz-lat2" |
|---|
| 311 | XKEYBOARD="cs,us" |
|---|
| 312 | KDEKEYBOARD="cs,us" |
|---|
| 313 | CHARSET="iso8859-2" |
|---|
| 314 | TZ="Europe/Prague" |
|---|
| 315 | CONSOLEFONT="iso02g" |
|---|
| 316 | ;; |
|---|
| 317 | cs-utf8|cz-utf8) |
|---|
| 318 | # Czech version |
|---|
| 319 | LANGUAGE="cs_CZ:cs" |
|---|
| 320 | COUNTRY="cs" |
|---|
| 321 | LANG="cs_CZ.UTF-8" |
|---|
| 322 | KEYTABLE="cz-lat2" |
|---|
| 323 | XKEYBOARD="cs,us" |
|---|
| 324 | KDEKEYBOARD="cs,us" |
|---|
| 325 | CHARSET="utf8" |
|---|
| 326 | TZ="Europe/Prague" |
|---|
| 327 | CONSOLEFONT="iso02g" |
|---|
| 328 | ;; |
|---|
| 329 | dk|da) |
|---|
| 330 | # Dansk version |
|---|
| 331 | COUNTRY="dk" |
|---|
| 332 | LANG="da_DK" |
|---|
| 333 | # Workaround: "dk" broken in gettext, use da:da_DK |
|---|
| 334 | LANGUAGE="da:da_DK" |
|---|
| 335 | # Keytable "dk" is correct. |
|---|
| 336 | KEYTABLE="dk" |
|---|
| 337 | XKEYBOARD="dk,us" |
|---|
| 338 | KDEKEYBOARD="dk,us" |
|---|
| 339 | CHARSET="iso8859-15" |
|---|
| 340 | TZ="Europe/Copenhagen" |
|---|
| 341 | ;; |
|---|
| 342 | dk-utf8|da-utf8) |
|---|
| 343 | # Dansk version |
|---|
| 344 | COUNTRY="dk" |
|---|
| 345 | LANG="da_DK.UTF-8" |
|---|
| 346 | # Workaround: "dk" broken in gettext, use da:da_DK |
|---|
| 347 | LANGUAGE="da_DK:da" |
|---|
| 348 | # Keytable "dk" is correct. |
|---|
| 349 | KEYTABLE="dk" |
|---|
| 350 | XKEYBOARD="dk,us" |
|---|
| 351 | KDEKEYBOARD="dk,us" |
|---|
| 352 | CHARSET="utf8" |
|---|
| 353 | TZ="Europe/Copenhagen" |
|---|
| 354 | ;; |
|---|
| 355 | el) |
|---|
| 356 | # Greek version |
|---|
| 357 | LANGUAGE="el" |
|---|
| 358 | COUNTRY="gr" |
|---|
| 359 | LANG="el_GR" |
|---|
| 360 | KEYTABLE="gr" |
|---|
| 361 | XKEYBOARD="us,el" |
|---|
| 362 | KDEKEYBOARD="us" |
|---|
| 363 | CHARSET="iso8859-7" |
|---|
| 364 | CONSOLEFONT="iso07.f16" |
|---|
| 365 | IOCHARSET="8859-7" |
|---|
| 366 | IOCODEPAGE="737" |
|---|
| 367 | SYSFONTACM="iso07" |
|---|
| 368 | TZ="Europe/Athens" |
|---|
| 369 | ;; |
|---|
| 370 | el-utf8) |
|---|
| 371 | # Greek version |
|---|
| 372 | LANGUAGE="el_GR:el" |
|---|
| 373 | COUNTRY="gr" |
|---|
| 374 | LANG="el_GR.UTF-8" |
|---|
| 375 | KEYTABLE="gr" |
|---|
| 376 | XKEYBOARD="us,el" |
|---|
| 377 | KDEKEYBOARD="us" |
|---|
| 378 | CHARSET="utf8" |
|---|
| 379 | CONSOLEFONT="iso07.f16" |
|---|
| 380 | IOCHARSET="8859-7" |
|---|
| 381 | IOCODEPAGE="737" |
|---|
| 382 | SYSFONTACM="iso07" |
|---|
| 383 | # Additional KDE Keyboards |
|---|
| 384 | KDEKEYBOARDS="el" |
|---|
| 385 | TZ="Europe/Athens" |
|---|
| 386 | ;; |
|---|
| 387 | es) |
|---|
| 388 | # Spanish version |
|---|
| 389 | COUNTRY="es" |
|---|
| 390 | LANG="es_ES@euro" |
|---|
| 391 | KEYTABLE="es" |
|---|
| 392 | XKEYBOARD="es" |
|---|
| 393 | KDEKEYBOARD="es" |
|---|
| 394 | CHARSET="iso8859-15" |
|---|
| 395 | # Additional KDE Keyboards |
|---|
| 396 | KDEKEYBOARDS="de,us,fr" |
|---|
| 397 | TZ="Europe/Madrid" |
|---|
| 398 | ;; |
|---|
| 399 | es-utf8) |
|---|
| 400 | # Spanish version |
|---|
| 401 | LANGUAGE="es_ES:es" |
|---|
| 402 | COUNTRY="es" |
|---|
| 403 | LANG="es_ES.UTF-8" |
|---|
| 404 | KEYTABLE="es" |
|---|
| 405 | XKEYBOARD="es,us" |
|---|
| 406 | KDEKEYBOARD="es,us" |
|---|
| 407 | CHARSET="utf8" |
|---|
| 408 | TZ="Europe/Madrid" |
|---|
| 409 | CONSOLEFONT="lat10-16" |
|---|
| 410 | ;; |
|---|
| 411 | fi) |
|---|
| 412 | # Finnish version, though we may not have the kde-i18n files |
|---|
| 413 | COUNTRY="fi" |
|---|
| 414 | LANG="fi_FI@euro" |
|---|
| 415 | KEYTABLE="fi-latin1" |
|---|
| 416 | XKEYBOARD="fi,us" |
|---|
| 417 | KDEKEYBOARD="fi,us" |
|---|
| 418 | CHARSET="iso8859-15" |
|---|
| 419 | TZ="Europe/Helsinki" |
|---|
| 420 | ;; |
|---|
| 421 | fi-utf8) |
|---|
| 422 | # Finnish version, though we may not have the kde-i18n files |
|---|
| 423 | LANGUAGE="fi_FI:fi" |
|---|
| 424 | COUNTRY="fi" |
|---|
| 425 | LANG="fi_FI.UTF-8" |
|---|
| 426 | KEYTABLE="fi-latin1" |
|---|
| 427 | XKEYBOARD="fi,us" |
|---|
| 428 | KDEKEYBOARD="fi,us" |
|---|
| 429 | CHARSET="utf8" |
|---|
| 430 | TZ="Europe/Helsinki" |
|---|
| 431 | ;; |
|---|
| 432 | fr) |
|---|
| 433 | # French version |
|---|
| 434 | COUNTRY="fr" |
|---|
| 435 | LANG="fr_FR@euro" |
|---|
| 436 | KEYTABLE="fr" |
|---|
| 437 | XKEYBOARD="fr,us" |
|---|
| 438 | KDEKEYBOARD="fr,us" |
|---|
| 439 | CHARSET="iso8859-15" |
|---|
| 440 | TZ="Europe/Paris" |
|---|
| 441 | ;; |
|---|
| 442 | fr-utf8) |
|---|
| 443 | # French version |
|---|
| 444 | LANGUAGE="fr_FR" |
|---|
| 445 | COUNTRY="fr" |
|---|
| 446 | LANG="fr_FR.UTF-8" |
|---|
| 447 | KEYTABLE="fr" |
|---|
| 448 | XKEYBOARD="fr,us" |
|---|
| 449 | KDEKEYBOARD="fr,us" |
|---|
| 450 | CHARSET="utf8" |
|---|
| 451 | TZ="Europe/Paris" |
|---|
| 452 | ;; |
|---|
| 453 | ga) |
|---|
| 454 | # Irish Gaeilge version |
|---|
| 455 | COUNTRY="ie" |
|---|
| 456 | LANG="ga_IE@euro" |
|---|
| 457 | KEYTABLE="uk" |
|---|
| 458 | XKEYBOARD="uk" |
|---|
| 459 | KDEKEYBOARD="ie" |
|---|
| 460 | CHARSET="iso8859-15" |
|---|
| 461 | # Additional KDE Keyboards |
|---|
| 462 | KDEKYBOARDS="gb,us,de,es,fr,it" |
|---|
| 463 | TZ="Europe/Dublin" |
|---|
| 464 | ;; |
|---|
| 465 | ga-utf8) |
|---|
| 466 | # Irish Gaeilge version |
|---|
| 467 | COUNTRY="ie" |
|---|
| 468 | LANG="ga_IE@UTF-8" |
|---|
| 469 | KEYTABLE="uk" |
|---|
| 470 | XKEYBOARD="uk,us" |
|---|
| 471 | KDEKEYBOARD="ie,us" |
|---|
| 472 | CHARSET="utf8" |
|---|
| 473 | TZ="Europe/Dublin" |
|---|
| 474 | ;; |
|---|
| 475 | he|il) |
|---|
| 476 | # Hebrew version |
|---|
| 477 | LANGUAGE="he" |
|---|
| 478 | COUNTRY="il" |
|---|
| 479 | LANG="he_IL" |
|---|
| 480 | KEYTABLE="us" |
|---|
| 481 | XKEYBOARD="il,us" |
|---|
| 482 | KDEKEYBOARD="il,us" |
|---|
| 483 | CHARSET="iso8859-8" |
|---|
| 484 | TZ="Asia/Jerusalem" |
|---|
| 485 | ;; |
|---|
| 486 | hy|am) |
|---|
| 487 | # Armenian version |
|---|
| 488 | LANGUAGE="hy_AM" |
|---|
| 489 | COUNTRY="am" |
|---|
| 490 | LANG="hy_AM.UTF-8" |
|---|
| 491 | KEYTABLE="am" |
|---|
| 492 | XKEYBOARD="am,us" |
|---|
| 493 | KDEKEYBOARD="am,us" |
|---|
| 494 | CHARSET="utf8" |
|---|
| 495 | TZ="Asia/Yerevan" |
|---|
| 496 | ;; |
|---|
| 497 | he-utf8|il-utf8) |
|---|
| 498 | # Hebrew version |
|---|
| 499 | LANGUAGE="he_IL:he" |
|---|
| 500 | COUNTRY="il" |
|---|
| 501 | LANG="he_IL.UTF-8" |
|---|
| 502 | KEYTABLE="us" |
|---|
| 503 | XKEYBOARD="il,us" |
|---|
| 504 | KDEKEYBOARD="il,us" |
|---|
| 505 | CHARSET="utf8" |
|---|
| 506 | TZ="Asia/Jerusalem" |
|---|
| 507 | ;; |
|---|
| 508 | ie) |
|---|
| 509 | # Irish (English) version |
|---|
| 510 | COUNTRY="ie" |
|---|
| 511 | LANG="en_IE@euro" |
|---|
| 512 | KEYTABLE="uk" |
|---|
| 513 | XKEYBOARD="uk" |
|---|
| 514 | KDEKEYBOARD="ie" |
|---|
| 515 | CHARSET="iso8859-15" |
|---|
| 516 | TZ="Europe/Dublin" |
|---|
| 517 | ;; |
|---|
| 518 | ie-utf8) |
|---|
| 519 | # Irish (English) version |
|---|
| 520 | LANGUAGE="en_IE:en" |
|---|
| 521 | COUNTRY="ie" |
|---|
| 522 | LANG="en_IE.UTF-8" |
|---|
| 523 | KEYTABLE="uk" |
|---|
| 524 | XKEYBOARD="uk" |
|---|
| 525 | KDEKEYBOARD="ie" |
|---|
| 526 | CHARSET="utf8" |
|---|
| 527 | TZ="Europe/Dublin" |
|---|
| 528 | ;; |
|---|
| 529 | it) |
|---|
| 530 | # Italian version |
|---|
| 531 | COUNTRY="it" |
|---|
| 532 | LANG="it_IT@euro" |
|---|
| 533 | KEYTABLE="it" |
|---|
| 534 | XKEYBOARD="it,us" |
|---|
| 535 | KDEKEYBOARD="it,us" |
|---|
| 536 | CHARSET="iso8859-15" |
|---|
| 537 | TZ="Europe/Rome" |
|---|
| 538 | ;; |
|---|
| 539 | it-utf8) |
|---|
| 540 | # Italian version |
|---|
| 541 | LANGUAGE="it_IT" |
|---|
| 542 | COUNTRY="it" |
|---|
| 543 | LANG="it_IT.UTF-8" |
|---|
| 544 | KEYTABLE="it" |
|---|
| 545 | XKEYBOARD="it,us" |
|---|
| 546 | KDEKEYBOARD="it,us" |
|---|
| 547 | CHARSET="utf8" |
|---|
| 548 | TZ="Europe/Rome" |
|---|
| 549 | ;; |
|---|
| 550 | ja) |
|---|
| 551 | # (limited) Japanese version |
|---|
| 552 | COUNTRY="jp" |
|---|
| 553 | LANG="ja_JP" |
|---|
| 554 | LANGUAGE="ja" |
|---|
| 555 | KEYTABLE="us" |
|---|
| 556 | XKEYBOARD="us" |
|---|
| 557 | KDEKEYBOARD="us" |
|---|
| 558 | CHARSET="iso8859-15" |
|---|
| 559 | TZ="Asia/Tokyo" |
|---|
| 560 | ;; |
|---|
| 561 | ja-utf8) |
|---|
| 562 | # (limited) Japanese version |
|---|
| 563 | LANGUAGE="ja_JP:ja" |
|---|
| 564 | COUNTRY="jp" |
|---|
| 565 | LANG="ja_JP.UTF-8" |
|---|
| 566 | LANGUAGE="ja" |
|---|
| 567 | KEYTABLE="us" |
|---|
| 568 | XKEYBOARD="us" |
|---|
| 569 | KDEKEYBOARD="us" |
|---|
| 570 | CHARSET="utf8" |
|---|
| 571 | TZ="Asia/Tokyo" |
|---|
| 572 | ;; |
|---|
| 573 | nl) |
|---|
| 574 | # Dutch version |
|---|
| 575 | COUNTRY="nl" |
|---|
| 576 | LANG="nl_NL@euro" |
|---|
| 577 | KEYTABLE="us" |
|---|
| 578 | XKEYBOARD="nl,us" |
|---|
| 579 | KDEKEYBOARD="nl,us" |
|---|
| 580 | CHARSET="iso8859-15" |
|---|
| 581 | TZ="Europe/Amsterdam" |
|---|
| 582 | ;; |
|---|
| 583 | nl-utf8) |
|---|
| 584 | # Dutch version |
|---|
| 585 | LANGUAGE="nl_NL:nl" |
|---|
| 586 | COUNTRY="nl" |
|---|
| 587 | LANG="nl_NL.UTF-8" |
|---|
| 588 | KEYTABLE="us" |
|---|
| 589 | XKEYBOARD="nl,us" |
|---|
| 590 | KDEKEYBOARD="nl,us" |
|---|
| 591 | CHARSET="utf8" |
|---|
| 592 | TZ="Europe/Amsterdam" |
|---|
| 593 | ;; |
|---|
| 594 | pl) |
|---|
| 595 | # Polish version |
|---|
| 596 | COUNTRY="pl" |
|---|
| 597 | LANG="pl_PL" |
|---|
| 598 | KEYTABLE="pl" |
|---|
| 599 | XKEYBOARD="pl,us" |
|---|
| 600 | KDEKEYBOARD="pl,us" |
|---|
| 601 | CHARSET="iso8859-2" |
|---|
| 602 | TZ="Europe/Warsaw" |
|---|
| 603 | CONSOLEFONT="iso02g" |
|---|
| 604 | ;; |
|---|
| 605 | pl-utf8) |
|---|
| 606 | # Polish version |
|---|
| 607 | LANGUAGE="pl_PL:pl" |
|---|
| 608 | COUNTRY="pl" |
|---|
| 609 | LANG="pl_PL.UTF-8" |
|---|
| 610 | KEYTABLE="pl" |
|---|
| 611 | XKEYBOARD="pl,us" |
|---|
| 612 | KDEKEYBOARD="pl,us" |
|---|
| 613 | CHARSET="utf8" |
|---|
| 614 | TZ="Europe/Warsaw" |
|---|
| 615 | CONSOLEFONT="iso02g" |
|---|
| 616 | ;; |
|---|
| 617 | pt) |
|---|
| 618 | # Portuguese version |
|---|
| 619 | COUNTRY="pt" |
|---|
| 620 | LANG="pt_PT@euro" |
|---|
| 621 | KEYTABLE="pt-latin1" |
|---|
| 622 | XKEYBOARD="pt,us" |
|---|
| 623 | KDEKEYBOARD="pt,us" |
|---|
| 624 | CHARSET="iso8859-1" |
|---|
| 625 | TZ="Europe/Lisbon" |
|---|
| 626 | CONSOLEFONT="lat10-16" |
|---|
| 627 | ;; |
|---|
| 628 | pt-utf8) |
|---|
| 629 | # Portuguese version |
|---|
| 630 | LANGUAGE="pt_PT:pt" |
|---|
| 631 | COUNTRY="pt" |
|---|
| 632 | LANG="pt_PT.UTF-8" |
|---|
| 633 | KEYTABLE="pt-latin1" |
|---|
| 634 | XKEYBOARD="pt,us" |
|---|
| 635 | KDEKEYBOARD="pt,us" |
|---|
| 636 | CHARSET="utf8" |
|---|
| 637 | TZ="Europe/Lisbon" |
|---|
| 638 | CONSOLEFONT="lat10-16" |
|---|
| 639 | ;; |
|---|
| 640 | ru) |
|---|
| 641 | # Russian version |
|---|
| 642 | COUNTRY="ru" |
|---|
| 643 | LANG="ru_RU.KOI8-R" |
|---|
| 644 | KEYTABLE="ru" |
|---|
| 645 | XKEYBOARD="ru,us" |
|---|
| 646 | KDEKEYBOARD="ru,us" |
|---|
| 647 | CHARSET="koi8-r" |
|---|
| 648 | CONSOLEFONT="Cyr_a8x16" |
|---|
| 649 | TZ="Europe/Moscow" |
|---|
| 650 | ;; |
|---|
| 651 | ru-utf8) |
|---|
| 652 | # Russian version |
|---|
| 653 | LANGUAGE="ru_RU:ru" |
|---|
| 654 | COUNTRY="ru" |
|---|
| 655 | LANG="ru_RU.UTF-8" |
|---|
| 656 | KEYTABLE="ru" |
|---|
| 657 | XKEYBOARD="ru,us" |
|---|
| 658 | KDEKEYBOARD="ru,us" |
|---|
| 659 | CHARSET="utf8" |
|---|
| 660 | CONSOLEFONT="Cyr_a8x16" |
|---|
| 661 | TZ="Europe/Moscow" |
|---|
| 662 | ;; |
|---|
| 663 | sk) |
|---|
| 664 | # Slovak version (guessed) |
|---|
| 665 | COUNTRY="sk" |
|---|
| 666 | LANG="sk" |
|---|
| 667 | KEYTABLE="sk-qwerty" |
|---|
| 668 | XKEYBOARD="sk,us" |
|---|
| 669 | KDEKEYBOARD="sk,us" |
|---|
| 670 | CHARSET="iso8859-2" |
|---|
| 671 | TZ="Europe/Bratislava" |
|---|
| 672 | CONSOLEFONT="iso02g" |
|---|
| 673 | ;; |
|---|
| 674 | sk-utf8) |
|---|
| 675 | # Slovak version (guessed) |
|---|
| 676 | LANGUAGE="sk_SK:sk" |
|---|
| 677 | COUNTRY="sk" |
|---|
| 678 | LANG="sk_SK.UTF-8" |
|---|
| 679 | KEYTABLE="sk-qwerty" |
|---|
| 680 | XKEYBOARD="sk,us" |
|---|
| 681 | KDEKEYBOARD="sk,us" |
|---|
| 682 | CHARSET="utf8" |
|---|
| 683 | TZ="Europe/Bratislava" |
|---|
| 684 | CONSOLEFONT="iso02g" |
|---|
| 685 | ;; |
|---|
| 686 | sl) |
|---|
| 687 | # Slovenian keyboard |
|---|
| 688 | LANGUAGE="sl" |
|---|
| 689 | COUNTRY="si" |
|---|
| 690 | LANG="sl_SI" |
|---|
| 691 | KEYTABLE="slovene" |
|---|
| 692 | XKEYBOARD="sl,us" |
|---|
| 693 | KDEKEYBOARD="si,us" |
|---|
| 694 | CHARSET="iso8859-2" |
|---|
| 695 | TZ="Europe/Ljubljana" |
|---|
| 696 | CONSOLEFONT="iso02g" |
|---|
| 697 | ;; |
|---|
| 698 | sl-utf8) |
|---|
| 699 | # Slovenian keyboard |
|---|
| 700 | LANGUAGE="sl_SI:sl" |
|---|
| 701 | COUNTRY="si" |
|---|
| 702 | LANG="sl_SI.UTF-8" |
|---|
| 703 | KEYTABLE="slovene" |
|---|
| 704 | XKEYBOARD="sl,us" |
|---|
| 705 | KDEKEYBOARD="si,us" |
|---|
| 706 | CHARSET="utf8" |
|---|
| 707 | TZ="Europe/Ljubljana" |
|---|
| 708 | CONSOLEFONT="iso02g" |
|---|
| 709 | ;; |
|---|
| 710 | tr) |
|---|
| 711 | # Turkish version (guessed) |
|---|
| 712 | COUNTRY="tr" |
|---|
| 713 | LANG="tr_TR" |
|---|
| 714 | KEYTABLE="tr_q-latin5" |
|---|
| 715 | XKEYBOARD="tr,us" |
|---|
| 716 | KDEKEYBOARD="tr,us" |
|---|
| 717 | CHARSET="iso8859-9" |
|---|
| 718 | TZ="Europe/Istanbul" |
|---|
| 719 | ;; |
|---|
| 720 | tr-utf8) |
|---|
| 721 | # Turkish version (guessed) |
|---|
| 722 | LANGUAGE="tr_TR" |
|---|
| 723 | COUNTRY="tr" |
|---|
| 724 | LANG="tr_TR.UTF-8" |
|---|
| 725 | KEYTABLE="tr_q-latin5" |
|---|
| 726 | XKEYBOARD="tr,us" |
|---|
| 727 | KDEKEYBOARD="tr,us" |
|---|
| 728 | CHARSET="utf8" |
|---|
| 729 | TZ="Europe/Istanbul" |
|---|
| 730 | ;; |
|---|
| 731 | tw) |
|---|
| 732 | # Traditional Chinese version (thanks to Chung-Yen Chang) |
|---|
| 733 | COUNTRY="tw" |
|---|
| 734 | LANG="zh_TW.Big5" |
|---|
| 735 | LANGUAGE="zh_TW.Big5" |
|---|
| 736 | KEYTABLE="us" |
|---|
| 737 | XKEYBOARD="us" |
|---|
| 738 | KDEKEYBOARD="us" |
|---|
| 739 | # CHARSET="big5-0" |
|---|
| 740 | CHARSET="iso8859-1" |
|---|
| 741 | XMODIFIERS="@im=xcin" |
|---|
| 742 | TZ="Asia/Taipei" |
|---|
| 743 | ;; |
|---|
| 744 | tw-utf8) |
|---|
| 745 | # Traditional Chinese version (thanks to Chung-Yen Chang) |
|---|
| 746 | LANGUAGE="zh_TW:zh" |
|---|
| 747 | COUNTRY="tw" |
|---|
| 748 | LANG="zh_TW.UTF-8" |
|---|
| 749 | KEYTABLE="us" |
|---|
| 750 | XKEYBOARD="us" |
|---|
| 751 | KDEKEYBOARD="us" |
|---|
| 752 | # CHARSET="big5-0" |
|---|
| 753 | CHARSET="utf8" |
|---|
| 754 | XMODIFIERS="@im=xcin" |
|---|
| 755 | TZ="Asia/Taipei" |
|---|
| 756 | ;; |
|---|
| 757 | uk) |
|---|
| 758 | # British version |
|---|
| 759 | COUNTRY="uk" |
|---|
| 760 | LANG="en_GB" |
|---|
| 761 | LANGUAGE="en" |
|---|
| 762 | KEYTABLE="uk" |
|---|
| 763 | XKEYBOARD="uk" |
|---|
| 764 | KDEKEYBOARD="gb" |
|---|
| 765 | CHARSET="iso8859-1" |
|---|
| 766 | TZ="Europe/London" |
|---|
| 767 | ;; |
|---|
| 768 | uk-utf8) |
|---|
| 769 | # British version UTF-8 |
|---|
| 770 | LANGUAGE="en_GB:en" |
|---|
| 771 | COUNTRY="uk" |
|---|
| 772 | LANG="en_GB.UTF-8" |
|---|
| 773 | KEYTABLE="uk" |
|---|
| 774 | XKEYBOARD="uk" |
|---|
| 775 | KDEKEYBOARD="gb" |
|---|
| 776 | CHARSET="utf8" |
|---|
| 777 | TZ="Europe/London" |
|---|
| 778 | ;; |
|---|
| 779 | us-utf8) |
|---|
| 780 | # American version UTF-8 |
|---|
| 781 | LANGUAGE="en_US:en" |
|---|
| 782 | COUNTRY="us" |
|---|
| 783 | LANG="en_US.UTF-8" |
|---|
| 784 | KEYTABLE="us" |
|---|
| 785 | XKEYBOARD="us" |
|---|
| 786 | KDEKEYBOARD="us" |
|---|
| 787 | CHARSET="utf8" |
|---|
| 788 | TZ="America/New_York" |
|---|
| 789 | ;; |
|---|
| 790 | *) |
|---|
| 791 | # American version |
|---|
| 792 | LANGUAGE="us" |
|---|
| 793 | COUNTRY="us" |
|---|
| 794 | LANG="en_US.UTF-8" |
|---|
| 795 | KEYTABLE="us" |
|---|
| 796 | XKEYBOARD="us,ir" |
|---|
| 797 | KDEKEYBOARD="us,ir" |
|---|
| 798 | CHARSET="utf8" |
|---|
| 799 | TZ="Asia/Tehran" |
|---|
| 800 | ;; |
|---|
| 801 | esac |
|---|
| 802 | |
|---|
| 803 | # Export it now, so error messages get translated, too |
|---|
| 804 | export LANG COUNTRY CHARSET |
|---|
| 805 | |
|---|
| 806 | # FIXME |
|---|
| 807 | # Allow keyboard override by boot commandline |
|---|
| 808 | #KKEYBOARD="$(getbootparam keyboard 2>/dev/null)" |
|---|
| 809 | #[ -n "$KKEYBOARD" ] && KEYTABLE="$KKEYBOARD" |
|---|
| 810 | #KXKEYBOARD="$(getbootparam xkeyboard 2>/dev/null)" |
|---|
| 811 | #if [ -n "$KXKEYBOARD" ]; then |
|---|
| 812 | # XKEYBOARD="$KXKEYBOARD" |
|---|
| 813 | # KDEKEYBOARD="$KXKEYBOARD" |
|---|
| 814 | #elif [ -n "$KKEYBOARD" ]; then |
|---|
| 815 | # XKEYBOARD="$KKEYBOARD" |
|---|
| 816 | # KDEKEYBOARD="$KKEYBOARD" |
|---|
| 817 | #fi |
|---|
| 818 | |
|---|
| 819 | # Also read desired desktop, if any |
|---|
| 820 | DESKTOP="$(getbootparam desktop 2>/dev/null)" |
|---|
| 821 | # Allow only supported windowmanagers |
|---|
| 822 | case "$DESKTOP" in gnome|enlightenment|kde|larswm|xfce|xfce4|windowmaker|wmaker|icewm|fluxbox|twm|nx|rdp|kiosk) ;; *) DESKTOP="gnome"; ;; esac |
|---|
| 823 | |
|---|
| 824 | # Set hostname |
|---|
| 825 | hostname $FLL_DISTRO_NAME |
|---|
| 826 | |
|---|
| 827 | # Set clock (Local time is more often used than GMT, so it is default) |
|---|
| 828 | UTC="" |
|---|
| 829 | checkbootparam utc &>/dev/null && UTC="-u" |
|---|
| 830 | checkbootparam gmt &>/dev/null && UTC="-u" |
|---|
| 831 | |
|---|
| 832 | # hwclock uses the TZ variable |
|---|
| 833 | KTZ="$(getbootparam tz 2>/dev/null)" |
|---|
| 834 | [ -f "/usr/share/zoneinfo/$KTZ" ] && TZ="$KTZ" |
|---|
| 835 | export TZ |
|---|
| 836 | hwclock $UTC -s |
|---|
| 837 | |
|---|
| 838 | KERNEL="$(uname -r)" |
|---|
| 839 | echo " ${GREEN}Running Linux Kernel ${YELLOW}$KERNEL${GREEN}.${NORMAL}" |
|---|
| 840 | |
|---|
| 841 | # / must be read-write in any case, starting from here |
|---|
| 842 | mount -o remount,rw / 2>/dev/null |
|---|
| 843 | |
|---|
| 844 | rm -f /etc/localtime |
|---|
| 845 | cp "/usr/share/zoneinfo/$TZ" /etc/localtime |
|---|
| 846 | |
|---|
| 847 | # Delete obsolete links and files before starting autoconfig |
|---|
| 848 | if ! checkbootparam "nohwsetup"; then |
|---|
| 849 | rm -f /dev/cdrom* /dev/cdwriter* /dev/dvdwriter* /dev/mouse* /dev/modem* /dev/scanner* \ |
|---|
| 850 | /etc/sysconfig/i18n /etc/sysconfig/keyboard /etc/sysconfig/knoppix \ |
|---|
| 851 | 2>/dev/null |
|---|
| 852 | fi |
|---|
| 853 | |
|---|
| 854 | # override dpi setting |
|---|
| 855 | CUSTOM_DPI="$(getbootparam dpi 2>/dev/null)" |
|---|
| 856 | |
|---|
| 857 | # Write KNOPPIX config files for other scripts to parse |
|---|
| 858 | # Standard variables/files |
|---|
| 859 | echo "LANG=\"$LANG\"" > /etc/sysconfig/i18n |
|---|
| 860 | echo "COUNTRY=\"$COUNTRY\"" >> /etc/sysconfig/i18n |
|---|
| 861 | echo "LANGUAGE=\"$LANGUAGE\"" >> /etc/sysconfig/i18n |
|---|
| 862 | echo "CHARSET=\"$CHARSET\"" >> /etc/sysconfig/i18n |
|---|
| 863 | echo "XMODIFIERS=\"$XMODIFIERS\"" >> /etc/sysconfig/i18n |
|---|
| 864 | #echo "TZ=\"$TZ\"" >> /etc/sysconfig/i18n |
|---|
| 865 | |
|---|
| 866 | rm -f /etc/timezone |
|---|
| 867 | echo "$TZ" > /etc/timezone |
|---|
| 868 | |
|---|
| 869 | # Default Keyboard layout for console and X |
|---|
| 870 | echo "KEYTABLE=\"$KEYTABLE\"" > /etc/sysconfig/keyboard |
|---|
| 871 | echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/keyboard |
|---|
| 872 | echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/keyboard |
|---|
| 873 | echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/keyboard |
|---|
| 874 | |
|---|
| 875 | # Desired desktop |
|---|
| 876 | echo "DESKTOP=\"$DESKTOP\"" > /etc/sysconfig/desktop |
|---|
| 877 | |
|---|
| 878 | # Write all, including non-standard variables, to /etc/sysconfig/knoppix |
|---|
| 879 | echo "LANG=\"$LANG\"" > /etc/sysconfig/knoppix |
|---|
| 880 | echo "COUNTRY=\"$COUNTRY\"" >> /etc/sysconfig/knoppix |
|---|
| 881 | echo "LANGUAGE=\"$LANGUAGE\"" >> /etc/sysconfig/knoppix |
|---|
| 882 | echo "CHARSET=\"$CHARSET\"" >> /etc/sysconfig/knoppix |
|---|
| 883 | echo "KEYTABLE=\"$KEYTABLE\"" >> /etc/sysconfig/knoppix |
|---|
| 884 | echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/knoppix |
|---|
| 885 | echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/knoppix |
|---|
| 886 | echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/knoppix |
|---|
| 887 | echo "DESKTOP=\"$DESKTOP\"" >> /etc/sysconfig/knoppix |
|---|
| 888 | echo "TZ=\"$TZ\"" >> /etc/sysconfig/knoppix |
|---|
| 889 | |
|---|
| 890 | # Write DPI setting if specified |
|---|
| 891 | [ "$CUSTOM_DPI" ] && echo "CUSTOM_DPI=\"$CUSTOM_DPI\"" >> /etc/sysconfig/knoppix |
|---|
| 892 | |
|---|
| 893 | # disable 915resolution hack |
|---|
| 894 | checkbootparam "no915res" && echo "NO915RES=\"yes\"" >> /etc/sysconfig/knoppix |
|---|
| 895 | |
|---|
| 896 | # No kernel messages while probing modules |
|---|
| 897 | echo "0" > /proc/sys/kernel/printk |
|---|
| 898 | |
|---|
| 899 | # Check for IDE-SCSI capable CD-Rom(s) first |
|---|
| 900 | checkbootparam "idecd" || checkbootparam "atapicd" || modprobe ide-scsi &>/dev/null |
|---|
| 901 | modprobe ide-cd &>/dev/null |
|---|
| 902 | |
|---|
| 903 | # Bring up loopback interface now |
|---|
| 904 | ifconfig lo 127.0.0.1 up |
|---|
| 905 | |
|---|
| 906 | # Write locale setting to default position |
|---|
| 907 | rm -f /etc/default/locale |
|---|
| 908 | echo -e "# File generated by update-locale\nLANG=$LANG" > /etc/default/locale |
|---|
| 909 | |
|---|
| 910 | # Unicode console fix |
|---|
| 911 | if [ "$(locale charmap)" = "UTF-8" ]; then |
|---|
| 912 | unicode_start 2> /dev/null |
|---|
| 913 | else |
|---|
| 914 | unicode_stop 2> /dev/null |
|---|
| 915 | fi |
|---|
| 916 | |
|---|
| 917 | # CD Checker |
|---|
| 918 | if checkbootparam "testcd"; then |
|---|
| 919 | echo " ${BLUE}Checking CD data integrity as requested by '${CYAN}testcd${BLUE}' boot option.${NORMAL}" |
|---|
| 920 | echo " ${BLUE}Reading files and checking against ${FLL_IMAGE_DIR}/md5sums, this may take a while...${NORMAL}" |
|---|
| 921 | echo -n "${RED}" |
|---|
| 922 | ( cd /cdrom/ ; rm -f /tmp/md5sum.log ; LANG="$LANG" md5sum -c ${FLL_IMAGE_DIR}/md5sums 2>&1 | tee /tmp/md5sum.log ) |
|---|
| 923 | if [ "$?" = "0" ]; then |
|---|
| 924 | echo " ${GREEN}Everything looks OK${NORMAL}" |
|---|
| 925 | else |
|---|
| 926 | echo "${RED} *** CHECKSUM FAILED FOR THESE FILES: ***" |
|---|
| 927 | egrep -v '(^md5sum:|OK$)' /tmp/md5sum.log |
|---|
| 928 | echo "${RED} *** DATA ON YOUR CD MEDIUM IS POSSIBLY INCOMPLETE OR DAMAGED, ***${NORMAL}" |
|---|
| 929 | echo "${RED} *** OR YOUR COMPUTER HAS BAD RAM. ***${NORMAL}" |
|---|
| 930 | echo -n "${CYAN}Hit return to contine, or press the reset button to quit.${NORMAL} " |
|---|
| 931 | read a |
|---|
| 932 | fi |
|---|
| 933 | fi |
|---|
| 934 | |
|---|
| 935 | # Print CPU info |
|---|
| 936 | echo -n "${GREEN}" |
|---|
| 937 | awk -F: '/^processor/{printf " Processor"$2" is "};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo 2>/dev/null |
|---|
| 938 | echo -n "${NORMAL}" |
|---|
| 939 | |
|---|
| 940 | # KANOTIX autoconfig |
|---|
| 941 | |
|---|
| 942 | # udev support |
|---|
| 943 | |
|---|
| 944 | if checkbootparam "noudev"; then |
|---|
| 945 | echo "${BLUE}Skipping udev as requested on boot commandline.${NORMAL}" |
|---|
| 946 | else |
|---|
| 947 | echo " ${GREEN}Enable ${YELLOW}udev${GREEN}.${NORMAL}" |
|---|
| 948 | mkdir -p /media |
|---|
| 949 | if ! pidof udevd >&-; then |
|---|
| 950 | RUNLEVEL=S /etc/init.d/udev start &>/dev/null |
|---|
| 951 | # load capability LSM (needed for hal) |
|---|
| 952 | modprobe capability &>/dev/null |
|---|
| 953 | if [ -x /etc/init.d/dbus-1 ]; then |
|---|
| 954 | /etc/init.d/dbus-1 start &>/dev/null |
|---|
| 955 | elif [ -x /etc/init.d/dbus ]; then |
|---|
| 956 | /etc/init.d/dbus start &>/dev/null |
|---|
| 957 | fi |
|---|
| 958 | fi |
|---|
| 959 | fi |
|---|
| 960 | |
|---|
| 961 | # Mount /dev/pts |
|---|
| 962 | stringinfile "/dev/pts" /proc/mounts || mount -t devpts -o mode=0622 /dev/pts /dev/pts 2>/dev/null |
|---|
| 963 | |
|---|
| 964 | # check if usbcore is already loaded. |
|---|
| 965 | USBCORE_TIMEOUT="$(getbootparam usbwait 2>/dev/null)" |
|---|
| 966 | [ -z "$USBCORE_TIMEOUT" ] && USBCORE_TIMEOUT=5 |
|---|
| 967 | USBCORE_TIMEOUT=$((USBCORE_TIMEOUT)) |
|---|
| 968 | [ $USBCORE_TIMEOUT -lt 0 -o $USBCORE_TIMEOUT -gt 60 ] && USBCORE_TIMEOUT=5 |
|---|
| 969 | |
|---|
| 970 | echo -n "${BLUE}Waiting for ${YELLOW}usbcore${BLUE}. ${NORMAL}" |
|---|
| 971 | for x in $(seq ${USBCORE_TIMEOUT}); do |
|---|
| 972 | stringinfile "usbcore" /proc/modules && break |
|---|
| 973 | echo -n "${BLUE}$((${USBCORE_TIMEOUT}-${x})) s${NORMAL}" |
|---|
| 974 | for y in $(seq 10); do |
|---|
| 975 | stringinfile "usbcore" /proc/modules && break |
|---|
| 976 | sleep 0.1 |
|---|
| 977 | done |
|---|
| 978 | for z in $(seq $((${#x}+2))); do echo -ne "\b \b"; done |
|---|
| 979 | done |
|---|
| 980 | stringinfile "usbcore" /proc/modules && echo "${GREEN}Done.${NORMAL}" || echo "${RED}Timeout reached.${NORMAL}" |
|---|
| 981 | |
|---|
| 982 | # Activate usbfs |
|---|
| 983 | stringinfile "/proc/bus/usb" /proc/mounts || mount -o devmode=0666 -t usbfs /proc/bus/usb /proc/bus/usb 2>/dev/null |
|---|
| 984 | |
|---|
| 985 | if [ -d /proc/acpi ]; then |
|---|
| 986 | # ACPI |
|---|
| 987 | if checkbootparam "noacpi"; then |
|---|
| 988 | echo " ${BLUE}Skipping ACPI Bios detection as requested on boot commandline.${NORMAL}" |
|---|
| 989 | else |
|---|
| 990 | echo -n " ${GREEN}ACPI Bios found, activating modules:" |
|---|
| 991 | found="" |
|---|
| 992 | for a in /lib/modules/$KERNEL/kernel/drivers/acpi/*; do |
|---|
| 993 | basename="${a##*/}" |
|---|
| 994 | basename="${basename%%.*}" |
|---|
| 995 | case "$basename" in *_acpi) |
|---|
| 996 | egrep -qi "${basename%%_acpi}" /proc/acpi/dsdt 2>/dev/null || continue ;; |
|---|
| 997 | esac |
|---|
| 998 | modprobe $basename &>/dev/null && echo -n " ${YELLOW}$basename${GREEN}" && found="yes" |
|---|
| 999 | done |
|---|
| 1000 | test -z "$found" && echo -n "${BLUE}(none)" |
|---|
| 1001 | echo "${NORMAL}" |
|---|
| 1002 | fuser -k /proc/acpi/event &>/dev/null |
|---|
| 1003 | /etc/init.d/acpid start >/dev/null |
|---|
| 1004 | fi |
|---|
| 1005 | else |
|---|
| 1006 | # APM |
|---|
| 1007 | if checkbootparam "noapm"; then |
|---|
| 1008 | echo " ${BLUE}Skipping APM Bios detection as requested on boot commandline.${NORMAL}" |
|---|
| 1009 | else |
|---|
| 1010 | modprobe apm power_off=1 &>/dev/null && test -x /etc/init.d/apmd &>/dev/null && /etc/init.d/apmd start &>/dev/null && echo " ${GREEN}APM Bios found, power management functions enabled.${NORMAL}" |
|---|
| 1011 | fi |
|---|
| 1012 | fi |
|---|
| 1013 | |
|---|
| 1014 | # laptop? |
|---|
| 1015 | unset IS_LAPTOP |
|---|
| 1016 | if laptop-detect 2>/dev/null; then |
|---|
| 1017 | IS_LAPTOP=true |
|---|
| 1018 | fi |
|---|
| 1019 | |
|---|
| 1020 | if [ -n "$IS_LAPTOP" ]; then |
|---|
| 1021 | # acpi-support |
|---|
| 1022 | if pidof acpid >/dev/null && /etc/init.d/acpi-support start >/dev/null 2>&1; then |
|---|
| 1023 | printf " ${GREEN}Starting ${YELLOW}acpi-support${GREEN} subsystem.${NORMAL}\n" |
|---|
| 1024 | fi |
|---|
| 1025 | fi |
|---|
| 1026 | |
|---|
| 1027 | # First: PCMCIA Check/Setup |
|---|
| 1028 | # This needs to be done before other modules are being loaded by hwsetup |
|---|
| 1029 | |
|---|
| 1030 | if checkbootparam "nopcmcia"; then |
|---|
| 1031 | echo " ${BLUE}Skipping PCMCIA detection as requested on boot commandline.${NORMAL}" |
|---|
| 1032 | else |
|---|
| 1033 | modprobe pcmcia_core &>/dev/null |
|---|
| 1034 | # Try Cardbus or normal PCMCIA socket drivers |
|---|
| 1035 | modprobe yenta_socket &>/dev/null || modprobe i82365 &>/dev/null || modprobe tcic &>/dev/null |
|---|
| 1036 | if [ "$?" = "0" ]; then |
|---|
| 1037 | modprobe ds &>/dev/null |
|---|
| 1038 | if cardmgr &>/dev/null; then |
|---|
| 1039 | echo " ${GREEN}PCMCIA found, cardmgr started.${NORMAL}" |
|---|
| 1040 | sleep 4 |
|---|
| 1041 | fi |
|---|
| 1042 | fi |
|---|
| 1043 | fi |
|---|
| 1044 | |
|---|
| 1045 | # Second: Search & configure supported hardware |
|---|
| 1046 | # Check for options relevant to hwsetup |
|---|
| 1047 | NOSERIAL="" |
|---|
| 1048 | checkbootparam noserial &>/dev/null && NOSERIAL="yes" |
|---|
| 1049 | [ -n "$NOSERIAL" ] && HWSETUP_NOSERIAL="-m" |
|---|
| 1050 | # load serial module |
|---|
| 1051 | modprobe 8250 &>/dev/null |
|---|
| 1052 | |
|---|
| 1053 | # load psmouse module |
|---|
| 1054 | modprobe psmouse &>/dev/null |
|---|
| 1055 | if checkbootparam "nohwsetup"; then |
|---|
| 1056 | echo "${BLUE}Loading hardware profile from ${MAGENTA}/etc/modules${BLUE}.${NORMAL}" |
|---|
| 1057 | /etc/init.d/modutils-knoppix start &>/dev/null |
|---|
| 1058 | else |
|---|
| 1059 | echo -n "${WHITE}" |
|---|
| 1060 | if hwsetup -p $HWSETUP_NOSERIAL >/dev/null; then |
|---|
| 1061 | echo -n "${NORMAL}" |
|---|
| 1062 | else |
|---|
| 1063 | echo " ${RED}Please check.${NORMAL}" |
|---|
| 1064 | fi |
|---|
| 1065 | fi |
|---|
| 1066 | |
|---|
| 1067 | # activate PC Speaker |
|---|
| 1068 | modprobe pcspkr &>/dev/null |
|---|
| 1069 | |
|---|
| 1070 | # Load fuse module |
|---|
| 1071 | modprobe fuse &>/dev/null |
|---|
| 1072 | |
|---|
| 1073 | # activate input driver for char event devices |
|---|
| 1074 | modprobe evdev &>/dev/null |
|---|
| 1075 | |
|---|
| 1076 | # dwl520e1 detection |
|---|
| 1077 | if lspci -nv|grep 1260:3873 -A1|grep -q 1186:3700; then |
|---|
| 1078 | /usr/sbin/dwl520e1_fw_load >/dev/null 2>&1 |
|---|
| 1079 | printf "install hostap_pci /sbin/modprobe --ignore-install hostap_pci && /usr/sbin/dwl520e1_fw_load >/dev/null 2>&1\n" > \ |
|---|
| 1080 | /etc/modprobe.d/dwl520e1 |
|---|
| 1081 | fi |
|---|
| 1082 | |
|---|
| 1083 | # soft modem detection |
|---|
| 1084 | if ! checkbootparam "nomodem"; then |
|---|
| 1085 | if lspci | grep Intel | grep -q "AC'97 Modem Controller"; then |
|---|
| 1086 | /etc/init.d/sl-modem-daemon start >/dev/null |
|---|
| 1087 | fi |
|---|
| 1088 | fi |
|---|
| 1089 | |
|---|
| 1090 | # ipw3945 detection |
|---|
| 1091 | [ -e /sys/bus/pci/drivers/ipw3945/*/cmd ] && (pidof ipw3945d &>/dev/null || /sbin/ipw3945d --quiet &>/dev/null) |
|---|
| 1092 | |
|---|
| 1093 | # Handle special options for ALSA sound drivers |
|---|
| 1094 | rm -f /etc/modprobe.d/alsa-special |
|---|
| 1095 | SYS=$(cut -f2 -d: /sys/devices/pci*/{,*/}*/modalias 2>/dev/null) |
|---|
| 1096 | ALSA_SPECIAL="" |
|---|
| 1097 | for sysid in $SYS; do |
|---|
| 1098 | # ALSA_SPECIAL is [kernel module with _ not -] [needed options] |
|---|
| 1099 | case "$sysid" in |
|---|
| 1100 | v000010DEd0000026Csv00001043sd000081CBbc*) |
|---|
| 1101 | # ASUS M2NPV-VM |
|---|
| 1102 | ALSA_SPECIAL="snd_hda_intel position_fix=1 model=3stack" |
|---|
| 1103 | break |
|---|
| 1104 | ;; |
|---|
| 1105 | v00008086d000027D8sv00001854sd0000005Fbc*) |
|---|
| 1106 | # LG Electronics P1-J302E1 |
|---|
| 1107 | ALSA_SPECIAL="snd_hda_intel model=lg" |
|---|
| 1108 | break |
|---|
| 1109 | ;; |
|---|
| 1110 | v00008086d0000284Bsv00008086sd0000284Bbc*) |
|---|
| 1111 | # MSI MS-7235 |
|---|
| 1112 | ALSA_SPECIAL="snd_hda_intel position_fix=1" |
|---|
| 1113 | break |
|---|
| 1114 | ;; |
|---|
| 1115 | esac |
|---|
| 1116 | done |
|---|
| 1117 | if [ -n "$ALSA_SPECIAL" ]; then |
|---|
| 1118 | printf "options $ALSA_SPECIAL\n" > /etc/modprobe.d/alsa-special |
|---|
| 1119 | if [ -d "/sys/module/${ALSA_SPECIAL%% *}" ]; then |
|---|
| 1120 | rmmod "${ALSA_SPECIAL%% *}" |
|---|
| 1121 | modprobe "$ALSA_SPECIAL" |
|---|
| 1122 | fi |
|---|
| 1123 | fi |
|---|
| 1124 | |
|---|
| 1125 | # Read in what hwsetup has found |
|---|
| 1126 | [ -f /etc/sysconfig/knoppix ] && source /etc/sysconfig/knoppix |
|---|
| 1127 | |
|---|
| 1128 | # Workaround for new mouse detection |
|---|
| 1129 | if [ -f /etc/sysconfig/mouse ]; then |
|---|
| 1130 | source /etc/sysconfig/mouse |
|---|
| 1131 | if [ "$MOUSETYPE" == "ps2" ]; then |
|---|
| 1132 | ln -sf /dev/psaux /dev/mouse |
|---|
| 1133 | perl -pi -e "s|/dev/input/mice|/dev/psaux|" /etc/sysconfig/mouse /etc/sysconfig/knoppix |
|---|
| 1134 | source /etc/sysconfig/mouse |
|---|
| 1135 | source /etc/sysconfig/knoppix |
|---|
| 1136 | fi |
|---|
| 1137 | fi |
|---|
| 1138 | |
|---|
| 1139 | # Mouse |
|---|
| 1140 | if [ -n "$MOUSE_DEVICE" ]; then |
|---|
| 1141 | echo " ${GREEN}Mouse is ${YELLOW}${MOUSE_FULLNAME}${GREEN} at ${MAGENTA}${MOUSE_DEVICE}${NORMAL}" |
|---|
| 1142 | fi |
|---|
| 1143 | |
|---|
| 1144 | # Soundcard |
|---|
| 1145 | if [ -n "$SOUND_FULLNAME" -o -n "$SOUND_DRIVER" ]; then |
|---|
| 1146 | SOUNDCARD="$SOUND_DRIVER" |
|---|
| 1147 | printf " ${GREEN}Soundcard is" |
|---|
| 1148 | [ -n "$SOUND_FULLNAME" ] && printf " ${YELLOW}$SOUND_FULLNAME${GREEN}" |
|---|
| 1149 | [ -n "$SOUNDCARD" ] && printf ", ALSA module is ${MAGENTA}$SOUNDCARD${GREEN}" |
|---|
| 1150 | printf "${NORMAL}\n" |
|---|
| 1151 | fi |
|---|
| 1152 | |
|---|
| 1153 | # Get max. sound volume |
|---|
| 1154 | VOL="$(getbootparam vol 2>/dev/null)" |
|---|
| 1155 | if [ -z "$VOL" ] || [ "$VOL" -lt 0 ] || [ "$VOL" -gt 100 ]; then |
|---|
| 1156 | VOL=50 |
|---|
| 1157 | fi |
|---|
| 1158 | |
|---|
| 1159 | # Fast ALSA detection |
|---|
| 1160 | case "$SOUND_DRIVER" in |
|---|
| 1161 | snd*) |
|---|
| 1162 | printf "alias snd-card-0 $SOUND_DRIVER\n" > /etc/modprobe.d/sound |
|---|
| 1163 | printf "options $SOUND_DRIVER index=0\n" >> /etc/modprobe.d/sound |
|---|
| 1164 | #set_mixers |
|---|
| 1165 | aumix -m 0 -v $VOL -w $VOL -c $VOL >/dev/null 2>&1 |
|---|
| 1166 | ;; |
|---|
| 1167 | esac |
|---|
| 1168 | |
|---|
| 1169 | # Read default keyboard from config file. |
|---|
| 1170 | # There seems to be no reliable autoprobe possible. |
|---|
| 1171 | [ -f /etc/sysconfig/keyboard ] && source /etc/sysconfig/keyboard |
|---|
| 1172 | # Set default keyboard before interactive setup |
|---|
| 1173 | [ -n "$KEYTABLE" ] && loadkeys -q $KEYTABLE |
|---|
| 1174 | [ -n "$CONSOLEFONT" ] && consolechars -f $CONSOLEFONT |
|---|
| 1175 | |
|---|
| 1176 | if [ -n "$INTERACTIVE" ]; then |
|---|
| 1177 | # Interactive configuration |
|---|
| 1178 | echo "${BLUE}Entering interactive configuration second stage.${NORMAL}" |
|---|
| 1179 | |
|---|
| 1180 | echo " ${GREEN}Your console keyboard defaults to: ${MAGENTA}${KEYTABLE}" |
|---|
| 1181 | echo -n "${CYAN}Do you want to (re)configure your console keyboard?${NORMAL} [Y/n] " |
|---|
| 1182 | read a |
|---|
| 1183 | [ "$a" != "n" ] && /usr/sbin/kbdconfig |
|---|
| 1184 | # kbdconfig already loads the keyboard if modified. |
|---|
| 1185 | |
|---|
| 1186 | echo -n "${CYAN}Do you want to (re)configure your soundcard?${NORMAL} [Y/n] " |
|---|
| 1187 | read a |
|---|
| 1188 | [ "$a" != "n" ] && sndconfig && ( exec aumix -m 0 &>/dev/null & ) |
|---|
| 1189 | |
|---|
| 1190 | if [ -n "$MOUSE_FULLNAME" -o -n "$MOUSE_DEVICE" ]; then |
|---|
| 1191 | echo -n " ${GREEN}Your mouse has been autodetected as: ${MAGENTA}" |
|---|
| 1192 | ls -l /dev/mouse | awk '{print $9 " " $10 " " $11}' |
|---|
| 1193 | echo -n "${NORMAL}" |
|---|
| 1194 | fi |
|---|
| 1195 | |
|---|
| 1196 | echo -n "${CYAN}Do you want to (re)configure your mouse?${NORMAL} [Y/n] " |
|---|
| 1197 | read a |
|---|
| 1198 | [ -f /etc/sysconfig/mouse ] && source /etc/sysconfig/mouse |
|---|
| 1199 | [ "$a" != "n" ] && mouseconfig |
|---|
| 1200 | fi |
|---|
| 1201 | |
|---|
| 1202 | # KNOPPIX automatic XFree86 Setup |
|---|
| 1203 | if ! checkbootparam "nomkxf86config"; then |
|---|
| 1204 | [ -x /usr/sbin/mkxf86config ] && /usr/sbin/mkxf86config |
|---|
| 1205 | fi |
|---|
| 1206 | |
|---|
| 1207 | # Read in changes |
|---|
| 1208 | [ -f /etc/sysconfig/knoppix ] && source /etc/sysconfig/knoppix |
|---|
| 1209 | |
|---|
| 1210 | if [ -n "$INTERACTIVE" ]; then |
|---|
| 1211 | echo -n "${CYAN}Do you want to (re)configure your graphics (X11) subsystem?${NORMAL} [Y/n] " |
|---|
| 1212 | read a |
|---|
| 1213 | [ "$a" != "n" ] && xf86cfg -textmode -xf86config /etc/X11/xorg.conf >/dev/console 2>&1 </dev/console |
|---|
| 1214 | echo " ${GREEN}Interactive configuration finished. Everything else should be fine for now.${NORMAL}" |
|---|
| 1215 | fi |
|---|
| 1216 | |
|---|
| 1217 | # Start FC detection on vt10 |
|---|
| 1218 | NOFC="" |
|---|
| 1219 | checkbootparam "nofc" && NOFC="yes" |
|---|
| 1220 | [ -e /etc/drdsl/modules.inc ] && NOFC="yes" |
|---|
| 1221 | if [ -z "$NOFC" ]; then |
|---|
| 1222 | echo " ${GREEN}Starting ${YELLOW}FC${GREEN} detection on ${YELLOW}vt10${GREEN}.${NORMAL}" |
|---|
| 1223 | if [ -x /usr/sbin/detect-fc ]; then |
|---|
| 1224 | open -c 10 /usr/sbin/detect-fc |
|---|
| 1225 | elif [ -x /usr/local/bin/detect-fc.bash ]; then |
|---|
| 1226 | open -c 10 /usr/local/bin/detect-fc.bash |
|---|
| 1227 | fi |
|---|
| 1228 | fi |
|---|
| 1229 | |
|---|
| 1230 | RUNLEVEL="$(runlevel)" |
|---|
| 1231 | |
|---|
| 1232 | # Add cdrom devices to /etc/fstab |
|---|
| 1233 | for c in $(ls -d /dev/cdrom* 2>/dev/null); do |
|---|
| 1234 | m=${c#/dev} |
|---|
| 1235 | [ "$m" == "/cdrom" ] && m="/cdrom0" |
|---|
| 1236 | [ -d /media$m ] || mkdir -p /media$m |
|---|
| 1237 | stringinfile "/dev/$(readlink $c)" "/etc/fstab" || printf "%-15s %-15s %-7s %-15s %-7s %s\n" "/dev/$(readlink $c)" "/media$m" "udf,iso9660" "user,noauto" "0" "0" >> /etc/fstab |
|---|
| 1238 | done |
|---|
| 1239 | |
|---|
| 1240 | # Add floppy devices to /etc/fstab |
|---|
| 1241 | for f in $(ls -d /sys/block/fd* 2>/dev/null); do |
|---|
| 1242 | [ -d /media/floppy${f#/sys/block/fd} ] || mkdir -p /media/floppy${f#/sys/block/fd} |
|---|
| 1243 | stringinfile "$f" "/etc/fstab" || printf "%-15s %-15s %-7s %-15s %-7s %s\n" "/dev${f#/sys/block}" "/media/floppy${f#/sys/block/fd}" "auto" "rw,user,noauto" "0" "0" >> /etc/fstab |
|---|
| 1244 | done |
|---|
| 1245 | |
|---|
| 1246 | NOSWAP="" |
|---|
| 1247 | checkbootparam "noswap" && NOSWAP="yes" |
|---|
| 1248 | |
|---|
| 1249 | # Collect partitions from /proc/partitions |
|---|
| 1250 | partitions="" |
|---|
| 1251 | while read major minor blocks partition relax; do |
|---|
| 1252 | partition="${partition##*/}" |
|---|
| 1253 | [ -z "$partition" -o ! -e "/dev/$partition" ] && continue |
|---|
| 1254 | case "$partition" in |
|---|
| 1255 | hd?) ;; # IDE Harddisk, entire disk |
|---|
| 1256 | sd?) ;; # SCSI Harddisk, entire disk |
|---|
| 1257 | [hs]d*) partitions="$partitions /dev/$partition";; # IDE or SCSI disk partition |
|---|
| 1258 | esac |
|---|
| 1259 | done <<EOT |
|---|
| 1260 | $(awk 'BEGIN{old="__start"}{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print $0}}}' /proc/partitions) |
|---|
| 1261 | EOT |
|---|
| 1262 | |
|---|
| 1263 | # Disable DMA for all IDE drives now if not enabled (and if not already done by linuxrc). |
|---|
| 1264 | # This is already done by linuxrc now. |
|---|
| 1265 | # However, for a harddisk-installed version, we are doing it again here. |
|---|
| 1266 | if checkbootparam "nodma"; then |
|---|
| 1267 | #echo " ${BLUE}Skipping DMA accelleration as requested on boot commandline.${NORMAL}" |
|---|
| 1268 | #else |
|---|
| 1269 | for d in $(cd /proc/ide 2>/dev/null && echo hd[a-z]); do |
|---|
| 1270 | if test -d /proc/ide/$d; then |
|---|
| 1271 | if egrep -q 'using_dma[ \t]+1' /proc/ide/$d/settings 2>/dev/null; then |
|---|
| 1272 | MODEL="$(cat /proc/ide/$d/model 2>/dev/null)" |
|---|
| 1273 | test -z "$MODEL" && MODEL="[GENERIC IDE DEVICE]" |
|---|
| 1274 | echo "${BLUE}Disabling DMA acceleration for: ${MAGENTA}$d ${YELLOW}[${MODEL}]${NORMAL}" |
|---|
| 1275 | echo "using_dma:0" >/proc/ide/$d/settings |
|---|
| 1276 | fi |
|---|
| 1277 | fi |
|---|
| 1278 | done |
|---|
| 1279 | fi |
|---|
| 1280 | |
|---|
| 1281 | # Start creating /etc/fstab with HD partitions and USB SCSI devices now |
|---|
| 1282 | if checkbootparam "nofstab"; then |
|---|
| 1283 | echo " ${BLUE}Skipping /etc/fstab creation as requested on boot commandline.${NORMAL}" |
|---|
| 1284 | else |
|---|
| 1285 | echo -n "${BLUE}Scanning for Harddisk partitions and creating ${YELLOW}/etc/fstab${BLUE}... " |
|---|
| 1286 | [ -d /${FLL_IMAGE_DIR} ] && rebuildfstab -r -u ${FLL_LIVE_USER} -g $(getent passwd "$FLL_LIVE_USER" | cut -d\: -f 4) >/dev/null 2>/dev/null || rebuildfstab -r &>/dev/null |
|---|
| 1287 | if [ -e /var/run/rebuildfstab.pid ]; then |
|---|
| 1288 | # Another instance of rebuildfstab, probably from hotplug, is still running, so just wait. |
|---|
| 1289 | sleep 8 |
|---|
| 1290 | fi |
|---|
| 1291 | echo "${GREEN}Done.${NORMAL}" |
|---|
| 1292 | fi |
|---|
| 1293 | |
|---|
| 1294 | if [ -n "$partitions" ]; then |
|---|
| 1295 | while read p m f relax; do |
|---|
| 1296 | case "$p" in *fd0*|*proc*|*pts*|*sys*|*cdrom*|\#*) continue;; esac |
|---|
| 1297 | options="users,exec" |
|---|
| 1298 | fnew="" |
|---|
| 1299 | case "$f" in swap) |
|---|
| 1300 | if [ -n "$NOSWAP" ]; then |
|---|
| 1301 | echo "${BLUE}Ignoring swap partition ${MAGENTA}$p${BLUE} as requested.${NORMAL}" |
|---|
| 1302 | else |
|---|
| 1303 | echo "${BLUE}Using swap partition ${MAGENTA}$p${BLUE}.${NORMAL}" |
|---|
| 1304 | swapon $p 2>/dev/null |
|---|
| 1305 | fi |
|---|
| 1306 | continue |
|---|
| 1307 | ;; |
|---|
| 1308 | esac |
|---|
| 1309 | # Create mountdir if not already present |
|---|
| 1310 | d="/media/${p##*/}" ; [ -d "$d" ] || mkdir -p "$d" |
|---|
| 1311 | case "$f" in vfat|msdos) |
|---|
| 1312 | if [ -z "$NOSWAP" ] && mount -o uid=${FLL_LIVE_USER},gid=$(getent passwd "$FLL_LIVE_USER" | cut -d\: -f 4),ro -t $f $p $d 2>/dev/null; then |
|---|
| 1313 | if [ -f $d/${FLL_DISTRO_NAME}.swp ]; then |
|---|
| 1314 | mount -o remount,rw $d |
|---|
| 1315 | if swapon $d/${FLL_DISTRO_NAME}.swp 2>/dev/null; then |
|---|
| 1316 | echo "${BLUE}Using ${FLL_DISTRO_NAME} swapfile ${MAGENTA}$d/${FLL_DISTRO_NAME}.swp${BLUE}.${NORMAL}" |
|---|
| 1317 | mount -o remount,ro $d 2>/dev/null |
|---|
| 1318 | fnew="$d/${FLL_DISTRO_NAME}.swp none swap sw 0 0" |
|---|
| 1319 | stringinfile "$fnew" "/etc/fstab" || echo "$fnew" >> /etc/fstab |
|---|
| 1320 | else |
|---|
| 1321 | umount $d |
|---|
| 1322 | fi |
|---|
| 1323 | else |
|---|
| 1324 | umount $d |
|---|
| 1325 | fi |
|---|
| 1326 | fi |
|---|
| 1327 | ;; |
|---|
| 1328 | esac |
|---|
| 1329 | done <<EOT |
|---|
| 1330 | $(cat /etc/fstab) |
|---|
| 1331 | EOT |
|---|
| 1332 | fi |
|---|
| 1333 | |
|---|
| 1334 | # New: Interactively create swapfiles on DOS partitions |
|---|
| 1335 | # (if necessary and possible) |
|---|
| 1336 | FREEMEM="$(awk 'BEGIN{m=0};/MemFree|Cached|SwapFree/{m+=$2};END{print m}' /proc/meminfo)" |
|---|
| 1337 | |
|---|
| 1338 | if [ "$FREEMEM" -lt 80000 -a -x /usr/bin/kdeinit -a -x /usr/sbin/mkdosswapfile ]; then |
|---|
| 1339 | case "$LANGUAGE" in |
|---|
| 1340 | de) |
|---|
| 1341 | LOWMEM="Ihr Rechner verfügt nur über ${FREEMEM}kB freien RAM-Speicher. Dies ist für das Arbeiten mit Linux zwar generell ausreichend, aber leider nicht genug, um größere Anwendungen wie KDE oder Office-Pakete zu starten. Sie können im nächsten Schritt versuchen, eine sog. Auslagerungsdatei auf einer DOS-Partition (sofern vorhanden) einzurichten." |
|---|
| 1342 | ;; |
|---|
| 1343 | *) |
|---|
| 1344 | LOWMEM="There are only ${FREEMEM}kB of RAM available in your computer. While this is usually sufficient for working under Linux, it is unfortunately not enough for starting bigger applications like KDE, or office suites. You can try to create a so-called swapfile on an existing DOS-Partition (if available) in the next step." |
|---|
| 1345 | ;; |
|---|
| 1346 | esac |
|---|
| 1347 | dialog --msgbox "$LOWMEM" 12 65 </dev/console >/dev/console 2>&1 |
|---|
| 1348 | /usr/sbin/mkdosswapfile </dev/console >/dev/console 2>&1 |
|---|
| 1349 | fi |
|---|
| 1350 | |
|---|
| 1351 | # Fat-Client-Version: DHCP Broadcast for IP address |
|---|
| 1352 | if checkbootparam "nodhcp"; then |
|---|
| 1353 | echo " ${BLUE}Skipping DHCP broadcast/network detection as requested on boot commandline.${NORMAL}" |
|---|
| 1354 | else |
|---|
| 1355 | NETDEVICES="$(awk -F: '/eth.:|tr.:/{print $1}' /proc/net/dev 2>/dev/null)" |
|---|
| 1356 | for DEVICE in $NETDEVICES; do |
|---|
| 1357 | echo -n " ${GREEN}Network device ${MAGENTA}$DEVICE${GREEN} detected, DHCP broadcasting for IP.${NORMAL}" |
|---|
| 1358 | trap 2 3 11 |
|---|
| 1359 | pump -i $DEVICE &>/dev/null & |
|---|
| 1360 | trap "" 2 3 11 |
|---|
| 1361 | sleep 1 |
|---|
| 1362 | echo " ${BLUE}(Backgrounding)${NORMAL}" |
|---|
| 1363 | done |
|---|
| 1364 | fi |
|---|
| 1365 | |
|---|
| 1366 | findfile(){ |
|---|
| 1367 | FOUND="" |
|---|
| 1368 | # search all partitions for a file in the root directory |
|---|
| 1369 | for i in /media/[sh]d[a-z] /media/[sh]d[a-z][1-9] /media/[sh]d[a-z][1-9]?*; do |
|---|
| 1370 | # See if it's already mounted |
|---|
| 1371 | [ -f "$i/$1" ] && { echo "$i/$1"; return 0; } |
|---|
| 1372 | if [ -d "$i" ] && mount -r "$i" 2>/dev/null; then |
|---|
| 1373 | [ -f "$i/$1" ] && FOUND="$i/$1" |
|---|
| 1374 | umount -l "$i" 2>/dev/null |
|---|
| 1375 | [ -n "$FOUND" ] && { echo "$FOUND"; return 0; } |
|---|
| 1376 | fi |
|---|
| 1377 | done |
|---|
| 1378 | return 2 |
|---|
| 1379 | } |
|---|
| 1380 | |
|---|
| 1381 | # Load aes and cryptoloop |
|---|
| 1382 | modprobe aes 2>/dev/null |
|---|
| 1383 | modprobe cryptoloop 2>/dev/null |
|---|
| 1384 | |
|---|
| 1385 | # Try to mount this filesystem read-only, without or with encryption |
|---|
| 1386 | trymount(){ |
|---|
| 1387 | # Check if already mounted |
|---|
| 1388 | case "$(cat /proc/mounts)" in *\ $2\ *) return 0;; esac |
|---|
| 1389 | # Apparently, mount-aes DOES autodetect AES loopback files. |
|---|
| 1390 | [ -b "$1" ] && { mount -t auto -o ro "$1" "$2" 2>/dev/null; RC="$?"; } |
|---|
| 1391 | # We need to mount crypto-loop files with initial rw support |
|---|
| 1392 | [ -f "$1" ] && { mount -t auto -o loop,rw "$1" "$2" 2>/dev/null; RC="$?"; } |
|---|
| 1393 | # Mount succeeded? |
|---|
| 1394 | [ "$RC" = "0" ] && return 0 |
|---|
| 1395 | echo "" |
|---|
| 1396 | echo "${CYAN}Filesystem not autodetected, trying to mount $1 with AES256 encryption${NORMAL}" |
|---|
| 1397 | a="y" |
|---|
| 1398 | while [ "$a" != "n" -a "$a" != "N" ]; do |
|---|
| 1399 | # We need to mount crypto-loop files with initial rw support |
|---|
| 1400 | mount -t auto -o loop,rw,encryption=AES256 "$1" "$2" && return 0 |
|---|
| 1401 | echo -n "${RED}Mount failed, retry? [Y/n] ${NORMAL}" |
|---|
| 1402 | read a |
|---|
| 1403 | done |
|---|
| 1404 | return 1 |
|---|
| 1405 | } |
|---|
| 1406 | |
|---|
| 1407 | # Unionfs |
|---|
| 1408 | getfiledev(){ |
|---|
| 1409 | filedev="$(echo $MYPARAM | grep ^/media/ | tail -n 1 | sed s/\\/media\\/\\\([^\\/]\\+\\\).*/\\/dev\\/\\\1/)" |
|---|
| 1410 | [ -z "$filedev" ] && filedev="$(echo $MYPARAM | grep ^/dev/ | tail -n 1 | sed s/\\/dev\\/\\\([^\\/]\\+\\\).*/\\/dev\\/\\\1/)" |
|---|
| 1411 | } |
|---|
| 1412 | |
|---|
| 1413 | getfilepath(){ |
|---|
| 1414 | filepath="$(echo $MYPARAM | grep ^/media/ | sed s/\\/media\\/\\\([^\\/]\\+\\\)\\///)" |
|---|
| 1415 | [ -z "$filepath" ] && filepath="$(echo $MYPARAM | grep ^/dev/ | sed s/\\/dev\\/\\\([^\\/]\\+\\\)\\///)" |
|---|
| 1416 | } |
|---|
| 1417 | |
|---|
| 1418 | # Move up with other cheats code later |
|---|
| 1419 | checkbootparam noconfigall && NOCONFIGCD="Y" && NOCONFIGHOME="Y" && NOCONFIGCHEAT="Y" |
|---|
| 1420 | checkbootparam noconfigcd && NOCONFIGCD="Y" |
|---|
| 1421 | checkbootparam noconfighome && NOCONFIGHOME="Y" |
|---|
| 1422 | checkbootparam noconfigcheat && NOCONFIGCHEAT="Y" |
|---|
| 1423 | |
|---|
| 1424 | if [ -z "$NOCONFIGCD" ]; then |
|---|
| 1425 | # Check for extra shellscript on CD-Rom (/cdrom/${FLL_IMAGE_DIR}/knoppix.sh) |
|---|
| 1426 | MYCONFIG="$(ls -1d /cdrom/${FLL_IMAGE_DIR}/[Kk][Nn][Oo][Pp][Pp][Ii][Xx].[Ss][Hh] 2>/dev/null)" |
|---|
| 1427 | if [ -n "$MYCONFIG" -a -f "$MYCONFIG" -a -z "$NOCONFIGCD" ]; then |
|---|
| 1428 | echo "" |
|---|
| 1429 | echo " ${GREEN}${FLL_DISTRO_NAME} Configuration file found on CD, executing ${MAGENTA}$MYCONFIG${GREEN}.${NORMAL}" |
|---|
| 1430 | echo "6" > /proc/sys/kernel/printk |
|---|
| 1431 | source "$MYCONFIG" /cdrom/${FLL_IMAGE_DIR} || true |
|---|
| 1432 | echo "0" > /proc/sys/kernel/printk |
|---|
| 1433 | fi |
|---|
| 1434 | fi |
|---|
| 1435 | |
|---|
| 1436 | # Check for persistent homedir option and eventually mount /home from there, |
|---|
| 1437 | # or use a loopback file. |
|---|
| 1438 | HOMEDIR="$(getbootparam home)" |
|---|
| 1439 | MYHOMEDEVICE="" |
|---|
| 1440 | MYHOMEMOUNTPOINT="" |
|---|
| 1441 | MYHOMEDIR="" |
|---|
| 1442 | if [ -n "$HOMEDIR" ]; then |
|---|
| 1443 | case "$HOMEDIR" in |
|---|
| 1444 | /dev/*) |
|---|
| 1445 | MYHOMEDEVICE="${HOMEDIR##/dev/}" |
|---|
| 1446 | MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" |
|---|
| 1447 | MYHOMEMOUNTPOINT=$(grep $MYHOMEDEVICE /proc/mounts | cut -d' ' -f2) |
|---|
| 1448 | [ -z "$MYHOMEMOUNTPOINT" ] && MYHOMEMOUNTPOINT="/media/${MYHOMEDEVICE##/dev/}" |
|---|
| 1449 | MYHOMEDIR="/media/${HOMEDIR##/dev/}" |
|---|
| 1450 | ;; |
|---|
| 1451 | /media/*) |
|---|
| 1452 | MYHOMEDEVICE="${HOMEDIR##/media/}" |
|---|
| 1453 | MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" |
|---|
| 1454 | MYHOMEMOUNTPOINT=$(grep $MYHOMEDEVICE /proc/mounts | cut -d' ' -f2) |
|---|
| 1455 | [ -z "$MYHOMEMOUNTPOINT" ] && MYHOMEMOUNTPOINT="/media/${MYHOMEDEVICE##/dev/}" |
|---|
| 1456 | MYHOMEDIR="$HOMEDIR" |
|---|
| 1457 | ;; |
|---|
| 1458 | [Aa][Uu][Tt][Oo]|[Ss][Cc][Aa][Nn]|[Ff][Ii][Nn][Dd]) |
|---|
| 1459 | MYHOMEDIR="$(findfile knoppix.img)" |
|---|
| 1460 | MYHOMEDEVICE="${MYHOMEDIR##/media/}" |
|---|
| 1461 | MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}" |
|---|
| 1462 | MYHOMEMOUNTPOINT=$(grep $MYHOMEDEVICE /proc/mounts | cut -d' ' -f2) |
|---|
| 1463 | [ -z "$MYHOMEMOUNTPOINT" ] && MYHOMEMOUNTPOINT="/media/${MYHOMEDEVICE##/dev/}" |
|---|
| 1464 | ;; |
|---|
| 1465 | *) |
|---|
| 1466 | echo "${CRE}${RED}Invalid ${CYAN}home=${RED} option '$HOMEDIR' specified (must start with /dev/ or /media/ or 'scan').${NORMAL}" |
|---|
| 1467 | echo "${CRE}${RED}Option ignored.${NORMAL}" |
|---|
| 1468 | ;; |
|---|
| 1469 | esac |
|---|
| 1470 | fi |
|---|
| 1471 | |
|---|
| 1472 | if [ -n "$MYHOMEDIR" ]; then |
|---|
| 1473 | if trymount "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT"; then |
|---|
| 1474 | [ -f "$MYHOMEMOUNTPOINT/knoppix.img" ] && MYHOMEDIR="$MYHOMEMOUNTPOINT/knoppix.img" |
|---|
| 1475 | while read device mountpoint fs relax; do |
|---|
| 1476 | case "$mountpoint" in |
|---|
| 1477 | *$MYHOMEMOUNTPOINT*) |
|---|
| 1478 | case "$fs" in |
|---|
| 1479 | *[Nn][Tt][Ff][Ss]*) |
|---|
| 1480 | umount "$MYHOMEMOUNTPOINT"; echo " ${RED}ERROR: WON'T MOUNT NTFS FILESYSTEM ON $MYHOMEDEVICE READ/WRITE!" |
|---|
| 1481 | break |
|---|
| 1482 | ;; |
|---|
| 1483 | *[Ff][Aa][Tt]*) |
|---|
| 1484 | # Note: This currently won't work with encrypted partitions |
|---|
| 1485 | mount -o remount,rw,uid=${FLL_LIVE_USER},gid=$(getent passwd "$FLL_LIVE_USER" | cut -d\: -f 4),umask=002,shortname=mixed,quiet "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT" |
|---|
| 1486 | if [ ! -f "$MYHOMEDIR" ]; then |
|---|
| 1487 | echo " ${RED}WARNING: FAT32 is not a good filesystem option for /home/${FLL_LIVE_USER} (missing socket/symlink support).${NORMAL}" |
|---|
| 1488 | echo " ${RED}WARNING: Better use an ext2 loopback file on this device, and boot with home=$MYHOMEDEVICE/knoppix.img.${NORMAL}" |
|---|
| 1489 | fi |
|---|
| 1490 | ;; |
|---|
| 1491 | esac |
|---|
| 1492 | if mount -o remount,rw "$MYHOMEMOUNTPOINT"; then |
|---|
| 1493 | echo -n " ${GREEN}Mounting ${YELLOW}$MYHOMEDIR${GREEN} as ${YELLOW}/home/${FLL_LIVE_USER}${GREEN}... " |
|---|
| 1494 | if [ -f "$MYHOMEDIR" ]; then |
|---|
| 1495 | # It's a loopback file, mount it over the /home/${FLL_LIVE_USER} directory |
|---|
| 1496 | trymount "$MYHOMEDIR" /home/${FLL_LIVE_USER} |
|---|
| 1497 | RC="$?" |
|---|
| 1498 | [ "$RC" = "0" ] && ERROR="$(mount -o remount,rw /home/${FLL_LIVE_USER} 2>&1)" |
|---|
| 1499 | RC="$?" |
|---|
| 1500 | else |
|---|
| 1501 | # Do a --bind mount |
|---|
| 1502 | ERROR="$(mount --bind "$MYHOMEDIR" /home/${FLL_LIVE_USER} 2>&1)" |
|---|
| 1503 | RC="$?" |
|---|
| 1504 | fi |
|---|
| 1505 | [ "$RC" = "0" ] && echo "${GREEN}/home/${FLL_LIVE_USER} mounted OK.${NORMAL}" || { echo "${RED}FAILED."; echo "$ERROR${NORMAL}"; } |
|---|
| 1506 | fi |
|---|
| 1507 | break |
|---|
| 1508 | ;; |
|---|
| 1509 | esac |
|---|
| 1510 | done <<EOT |
|---|
| 1511 | $(cat /proc/mounts) |
|---|
| 1512 | EOT |
|---|
| 1513 | fi |
|---|
| 1514 | fi |
|---|
| 1515 | |
|---|
| 1516 | for unioncheat in unionro unionrw unionfs ; do |
|---|
| 1517 | DOUNION="" |
|---|
| 1518 | grep $unioncheat /home/${FLL_LIVE_USER}/.union >/dev/null 2>&1 && DOUNION="Yes" && MYPARAM="$(grep $unioncheat /home/${FLL_LIVE_USER}/.union 2>/dev/null | cut -d'=' -f2)" |
|---|
| 1519 | checkbootparam "$unioncheat" && DOUNION="Yes" && MYPARAM="$(getbootparam "$unioncheat")" |
|---|
| 1520 | if [ -n "$DOUNION" ] ;then |
|---|
| 1521 | [ -z "$UNIONMADE" ] && mount -t unionfs -o dirs=/${FLL_IMAGE_DIR} none /${FLL_IMAGE_DIR} && UNIONMADE="yes" >/dev/null |
|---|
| 1522 | echo " ${GREEN}Enable ${YELLOW} $unioncheat ${GREEN}support.${NORMAL}" |
|---|
| 1523 | UNIONMNTOPT="" |
|---|
| 1524 | [ "$unioncheat" == "unionro" ] && UNIONMNTOPT="-o ro" |
|---|
| 1525 | [ "$unioncheat" == "unionfs" ] && MYPARAM="/ramdisk/var/tmp/union/" && mkdir -p $MYPARAM |
|---|
| 1526 | getfiledev |
|---|
| 1527 | if [ -n "$filedev" ]; then |
|---|
| 1528 | if grep $filedev /etc/fstab 2>&1>/dev/null && ! grep $filedev /proc/mounts 2>&1>/dev/null; then |
|---|
| 1529 | mount $UNIONMNTOPT $filedev >/dev/null |
|---|
| 1530 | getfilepath |
|---|
| 1531 | MYPARAM="$(grep -v ^[:space:]*\# /etc/fstab | grep $filedev | head -n 1 | awk '{print $2}')" |
|---|
| 1532 | MYPARAM="$MYPARAM/$filepath" |
|---|
| 1533 | else |
|---|
| 1534 | if ! grep $filedev /proc/mounts; then |
|---|
| 1535 | mkdir -p /tmp/$unioncheat >/dev/null |
|---|
| 1536 | mount $UNIONMNTOPT $filedev /tmp/$unioncheat >/dev/null |
|---|
| 1537 | getfilepath |
|---|
| 1538 | MYPARAM="/ramdisk/var/tmp/$unioncheat/$filepath" |
|---|
| 1539 | else |
|---|
| 1540 | getfilepath |
|---|
| 1541 | MYPARAM="$(grep $filedev /proc/mounts | tail -n 1 | awk '{ print $2 }' -)" |
|---|
| 1542 | grep $MYPARAM /proc/mounts | awk '{print $4 }' - | grep ro &>/dev/null && mount -o remount,rw $filedev $MYPARAM >/dev/null |
|---|
| 1543 | MYPARAM="$MYPARAM/$filepath" |
|---|
| 1544 | fi |
|---|
| 1545 | fi |
|---|
| 1546 | fi |
|---|
| 1547 | if [ -f "$MYPARAM" ]; then |
|---|
| 1548 | mkdir -p /tmp/$unioncheat-loop >/dev/null |
|---|
| 1549 | mount -o loop $UNIONMNTOPT $MYPARAM /tmp/$unioncheat-loop >/dev/null |
|---|
| 1550 | MYPARAM="/ramdisk/var/tmp/$unioncheat-loop" |
|---|
| 1551 | fi |
|---|
| 1552 | [ -n "$MYPARAM" ] && unionctl /${FLL_IMAGE_DIR} --add $MYPARAM >/dev/null && echo " ${Green}Union ${YELLOW}$MYPARAM ${GREEN}enabled.${Normal}" |
|---|
| 1553 | [ -z "$UNIONTIDY" ] && unionctl /${FLL_IMAGE_DIR} --mode /${FLL_IMAGE_DIR} ro > /dev/null && UNIONTIDY="yes" |
|---|
| 1554 | [ -n "$UNIONMNTOPT" ] && unionctl /${FLL_IMAGE_DIR} --mode $MYPARAM ro > /dev/null |
|---|
| 1555 | fi |
|---|
| 1556 | done |
|---|
| 1557 | |
|---|
| 1558 | if [ -z "$NOCONFIGCHEAT" ]; then |
|---|
| 1559 | # Check for configuration floppy add-on if not running from HD |
|---|
| 1560 | if [ -n "$MYCONF" ]; then |
|---|
| 1561 | FOUND_CONFIG="" |
|---|
| 1562 | if [ -n "$MYCONFDIR" ]; then |
|---|
| 1563 | case "$MYCONFDIR" in |
|---|
| 1564 | /dev/*) |
|---|
| 1565 | MYCONFDEVICE="${MYCONFDIR##/dev/}" |
|---|
| 1566 | MYCONFDEVICE="/dev/${MYCONFDEVICE%%/*}" |
|---|
| 1567 | MYCONFMOUNTPOINT="/media/${MYCONFDEVICE##/dev/}" |
|---|
| 1568 | MYCONFDIR="/media/${MYCONFDIR##/dev/}" |
|---|
| 1569 | ;; |
|---|
| 1570 | /media/*) |
|---|
| 1571 | MYCONFDEVICE="${MYCONFDIR##/media/}" |
|---|
| 1572 | MYCONFDEVICE="/dev/${MYCONFDEVICE%%/*}" |
|---|
| 1573 | MYCONFMOUNTPOINT="/media/${MYCONFDEVICE##/dev/}" |
|---|
| 1574 | ;; |
|---|
| 1575 | [Aa][Uu][Tt][Oo]|[Ss][Cc][Aa][Nn]|[Ff][Ii][Nn][Dd]) |
|---|
| 1576 | MYCONFDIR="$(findfile knoppix.sh)" |
|---|
| 1577 | if [ -n "$MYCONFDIR" ]; then |
|---|
| 1578 | MYCONFDEVICE="${MYCONFDIR##/media/}" |
|---|
| 1579 | MYCONFDEVICE="/dev/${MYCONFDEVICE%%/*}" |
|---|
| 1580 | MYCONFMOUNTPOINT="/media/${MYCONFDEVICE##/dev/}" |
|---|
| 1581 | MYCONFDIR="${MYCONFMOUNTPOINT}" |
|---|
| 1582 | else |
|---|
| 1583 | FOUND_CONFIG="none" |
|---|
| 1584 | fi |
|---|
| 1585 | ;; |
|---|
| 1586 | *) |
|---|
| 1587 | echo "${CRE}${RED}Invalid configdir '$MYCONFDIR' specified (must start with /dev/ or /media/ or 'scan').${NORMAL}" |
|---|
| 1588 | echo "${CRE}${RED}Option ignored.${NORMAL}" |
|---|
| 1589 | FOUND_CONFIG="invalid" |
|---|
| 1590 | ;; |
|---|
| 1591 | esac |
|---|
| 1592 | else |
|---|
| 1593 | MYCONFDEVICE="/dev/fd0" |
|---|
| 1594 | MYCONFMOUNTPOINT="/media/floppy0" |
|---|
| 1595 | MYCONFDIR="/media/floppy0" |
|---|
| 1596 | fi |
|---|
| 1597 | |
|---|
| 1598 | if [ -z "$FOUND_CONFIG" ]; then |
|---|
| 1599 | echo -n "${CRE}${BLUE}Checking ${MAGENTA}${MYCONFDIR}${BLUE} for ${FLL_DISTRO_NAME} configuration files...${NORMAL}" |
|---|
| 1600 | if trymount "$MYCONFDEVICE" "$MYCONFMOUNTPOINT"; then |
|---|
| 1601 | MYCONFIG="$(ls -1d $MYCONFDIR/[Kk][Nn][Oo][Pp][Pp][Ii][Xx].[Ss][Hh] 2>/dev/null)" |
|---|
| 1602 | if [ -n "$MYCONFIG" -a -f "$MYCONFIG" ]; then |
|---|
| 1603 | echo "" |
|---|
| 1604 | FOUND_CONFIG="yes" |
|---|
| 1605 | echo " ${GREEN}Found, now executing ${MAGENTA}$MYCONFIG${GREEN}.${NORMAL}" |
|---|
| 1606 | echo "6" > /proc/sys/kernel/printk |
|---|
| 1607 | source "$MYCONFIG" "$MYCONFDIR" || true |
|---|
| 1608 | echo "0" > /proc/sys/kernel/printk |
|---|
| 1609 | fi |
|---|
| 1610 | umount "$MYCONFMOUNTPOINT" 2>/dev/null |
|---|
| 1611 | fi |
|---|
| 1612 | fi |
|---|
| 1613 | [ -n "$FOUND_CONFIG" ] || echo " ${BLUE}Not present.${NORMAL}" |
|---|
| 1614 | fi |
|---|
| 1615 | fi |
|---|
| 1616 | |
|---|
| 1617 | if [ -z "$NOCONFIGHOME" -a -f /home/${FLL_LIVE_USER}/.[Kk][Nn][Oo][Pp][Pp][Ii][Xx].[Ss][Hh] ]; then |
|---|
| 1618 | MYCONFIG="$(ls -1d /home/${FLL_LIVE_USER}/.[Kk][Nn][Oo][Pp][Pp][Ii][Xx].[Ss][Hh] 2>/dev/null)" |
|---|
| 1619 | echo " ${GREEN}Found, now executing ${MAGENTA}$MYCONFIG${GREEN}.${NORMAL}" |
|---|
| 1620 | echo "6" > /proc/sys/kernel/printk |
|---|
| 1621 | source "$MYCONFIG" "/home/${FLL_LIVE_USER}" || true |
|---|
| 1622 | echo "0" > /proc/sys/kernel/printk |
|---|
| 1623 | fi |
|---|
| 1624 | |
|---|
| 1625 | |
|---|
| 1626 | # modem detection |
|---|
| 1627 | if ! checkbootparam "nomodem"; then |
|---|
| 1628 | if lspci|grep Intel|grep -q "AC'97 Modem Controller"; then |
|---|
| 1629 | /etc/init.d/sl-modem-daemon start &>/dev/null |
|---|
| 1630 | grep -q ^sl-modem-daemon /etc/sysconfig/services &>/dev/null || echo sl-modem-daemon >> /etc/sysconfig/services |
|---|
| 1631 | fi |
|---|
| 1632 | fi |
|---|
| 1633 | |
|---|
| 1634 | # powernow detection |
|---|
| 1635 | if ! checkbootparam "nopowernow"; then |
|---|
| 1636 | CPUINFO=/proc/cpuinfo |
|---|
| 1637 | IOPORTS=/proc/ioports |
|---|
| 1638 | |
|---|
| 1639 | [ -f $CPUINFO ] || exit 0 |
|---|
| 1640 | |
|---|
| 1641 | MODEL_NAME=$(grep '^model name' "$CPUINFO" | head -1 | sed -e 's/^.*: //;') |
|---|
| 1642 | VENDOR_ID=$(grep -E '^vendor_id[^:]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;') |
|---|
| 1643 | CPU_FAMILY=$(sed -e '/^cpu family/ {s/.*: //;p;Q};d' $CPUINFO) |
|---|
| 1644 | |
|---|
| 1645 | POWERNOW= |
|---|
| 1646 | |
|---|
| 1647 | # Two modules for PIII-M depending the chipset. |
|---|
| 1648 | if [ -f $IOPORTS ] && grep -q 'Intel .*ICH' $IOPORTS ; then |
|---|
| 1649 | PIII_POWERNOW=speedstep-ich |
|---|
| 1650 | else |
|---|
| 1651 | PIII_POWERNOW=speedstep-smi |
|---|
| 1652 | fi |
|---|
| 1653 | |
|---|
| 1654 | case "$VENDOR_ID" in |
|---|
| 1655 | |
|---|
| 1656 | GenuineIntel*) |
|---|
| 1657 | # If the CPU has the est flag, it supports enhanced speedstep and should |
|---|
| 1658 | # use the acpi-cpufreq driver (speedstep-centrino is deprecated) |
|---|
| 1659 | if grep -q est $CPUINFO; then |
|---|
| 1660 | POWERNOW=acpi-cpufreq; |
|---|
| 1661 | elif [ $CPU_FAMILY = 15 ]; then |
|---|
| 1662 | # Right. Check if it's a P4 without est. |
|---|
| 1663 | # Could be speedstep-ich. |
|---|
| 1664 | POWERNOW=speedstep-ich; |
|---|
| 1665 | else |
|---|
| 1666 | # So it doesn't have Enhanced Speedstep, and it's not a P4. It could be |
|---|
| 1667 | # a Speedstep PIII, or it may be unsupported. There's no terribly good |
|---|
| 1668 | # programmatic way of telling. |
|---|
| 1669 | case "$MODEL_NAME" in |
|---|
| 1670 | Intel\(R\)\ Pentium\(R\)\ III\ Mobile\ CPU*) |
|---|
| 1671 | POWERNOW=$PIII_POWERNOW |
|---|
| 1672 | ;; |
|---|
| 1673 | |
|---|
| 1674 | # JD: says this works with cpufreq_userspace |
|---|
| 1675 | Mobile\ Intel\(R\)\ Pentium\(R\)\ III\ CPU\ -\ M*) |
|---|
| 1676 | POWERNOW=$PIII_POWERNOW |
|---|
| 1677 | ;; |
|---|
| 1678 | |
|---|
| 1679 | # https://bugzilla.ubuntu.com/show_bug.cgi?id=4262 |
|---|
| 1680 | # UNCONFIRMED |
|---|
| 1681 | Pentium\ III\ \(Coppermine\)*) |
|---|
| 1682 | POWERNOW=$PIII_POWERNOW |
|---|
| 1683 | ;; |
|---|
| 1684 | esac |
|---|
| 1685 | fi |
|---|
| 1686 | ;; |
|---|
| 1687 | |
|---|
| 1688 | AuthenticAMD*) |
|---|
| 1689 | # Hurrah. This is nice and easy. |
|---|
| 1690 | case $CPU_FAMILY in |
|---|
| 1691 | 5) |
|---|
| 1692 | # K6 |
|---|
| 1693 | POWERNOW=powernow-k6 |
|---|
| 1694 | ;; |
|---|
| 1695 | 6) |
|---|
| 1696 | # K7 |
|---|
| 1697 | POWERNOW=powernow-k7 |
|---|
| 1698 | ;; |
|---|
| 1699 | 15) |
|---|
| 1700 | # K8 |
|---|
| 1701 | POWERNOW=powernow-k8 |
|---|
| 1702 | ;; |
|---|
| 1703 | esac |
|---|
| 1704 | ;; |
|---|
| 1705 | |
|---|
| 1706 | CentaurHauls*) |
|---|
| 1707 | # VIA |
|---|
| 1708 | if [ $CPU_FAMILY = 6 ]; then |
|---|
| 1709 | POWERNOW=longhaul; |
|---|
| 1710 | fi |
|---|
| 1711 | ;; |
|---|
| 1712 | |
|---|
| 1713 | GenuineTMx86*) |
|---|
| 1714 | # Transmeta |
|---|
| 1715 | if grep -q longrun $CPUINFO; then |
|---|
| 1716 | POWERNOW=longrun |
|---|
| 1717 | fi |
|---|
| 1718 | ;; |
|---|
| 1719 | |
|---|
| 1720 | esac |
|---|
| 1721 | if [ "$POWERNOW" ]; then |
|---|
| 1722 | echo " ${GREEN}Enable ${YELLOW}Powernow${GREEN}.${NORMAL}" |
|---|
| 1723 | modprobe $POWERNOW &>/dev/null |
|---|
| 1724 | if [ -x /etc/init.d/powernowd ]; then |
|---|
| 1725 | /etc/init.d/powernowd start &>/dev/null |
|---|
| 1726 | grep -q ^powernowd /etc/sysconfig/services &>/dev/null || echo powernowd >>/etc/sysconfig/services |
|---|
| 1727 | fi |
|---|
| 1728 | if [ -x /etc/init.d/powersaved ]; then |
|---|
| 1729 | /etc/init.d/powersaved start &>/dev/null |
|---|
| 1730 | grep -q ^powersaved /etc/sysconfig/services &>/dev/null || echo powersaved >>/etc/sysconfig/services |
|---|
| 1731 | fi |
|---|
| 1732 | fi |
|---|
| 1733 | else |
|---|
| 1734 | echo "${BLUE}Skipping Powernow detection as requested on boot commandline.${NORMAL}" |
|---|
| 1735 | fi |
|---|
| 1736 | |
|---|
| 1737 | # MS MM keyboard add-on |
|---|
| 1738 | # fix |
|---|
| 1739 | setkeycodes e001 126 &>/dev/null |
|---|
| 1740 | setkeycodes e059 127 &>/dev/null |
|---|
| 1741 | # fn keys |
|---|
| 1742 | setkeycodes e03b 59 &>/dev/null |
|---|
| 1743 | setkeycodes e008 60 &>/dev/null |
|---|
| 1744 | setkeycodes e007 61 &>/dev/null |
|---|
| 1745 | setkeycodes e03e 62 &>/dev/null |
|---|
| 1746 | setkeycodes e03f 63 &>/dev/null |
|---|
| 1747 | setkeycodes e040 64 &>/dev/null |
|---|
| 1748 | setkeycodes e041 65 &>/dev/null |
|---|
| 1749 | setkeycodes e042 66 &>/dev/null |
|---|
| 1750 | setkeycodes e043 67 &>/dev/null |
|---|
| 1751 | setkeycodes e023 68 &>/dev/null |
|---|
| 1752 | setkeycodes e057 87 &>/dev/null |
|---|
| 1753 | setkeycodes e058 88 &>/dev/null |
|---|
| 1754 | |
|---|
| 1755 | # enable hotkeys |
|---|
| 1756 | [ -x /etc/init.d/hotkey-setup ] && /etc/init.d/hotkey-setup start |
|---|
| 1757 | |
|---|
| 1758 | echo "6" > /proc/sys/kernel/printk |
|---|
| 1759 | |
|---|
| 1760 | # Re-enable signals |
|---|
| 1761 | trap 2 3 11 |
|---|
| 1762 | |
|---|
| 1763 | exit 0 |
|---|