[ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
fi
CUR_CONSOLE=$(fgconsole 2>/dev/null)
+
+ if [ -x "$(which setfont)" ] ; then
+ use_setfont=true
+ elif [ -x "$(which consolechars)" ] ; then
+ use_consolechars=true
+ else
+ eerror "Neither setfont nor consolechars tool present, can not set font."
+ eend 1
+ return 1
+ fi
+
if [ -n "$CHARMAP" ] ; then
- einfo "Running consolechars for ${CHARMAP}"
+ einfo "Setting font to ${CHARMAP}"
RC=0
for vc in $(seq 0 ${NUM_CONSOLES}) ; do
- consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
+ if $use_setfont ; then
+ setfont -C /dev/tty${vc} $CHARMAP ; RC=$?
+ elif $use_consolechars ; then
+ consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
+ fi
done
if [ -n "$CUR_CONSOLE" ] ; then
[ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE
ewarn "Skipping setting console font as requested on boot commandline." ; eend 0
else
if [ -n "$CONSOLEFONT" ] ; then
- einfo "Running consolechars using ${CONSOLEFONT}"
+ einfo "Setting font to ${CONSOLEFONT}"
RC=0
for vc in $(seq 0 ${NUM_CONSOLES}) ; do
- consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$?
+ if $use_setfont ; then
+ setfont -C /dev/tty${vc} ${CONSOLEFONT} ; RC=$?
+ elif $use_consolechars ; then
+ consolechars --tty=/dev/tty${vc} -f ${CONSOLEFONT} ; RC=$?
+ fi
done
if [ -n "$CUR_CONSOLE" ] ; then
[ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE
#store the options in a file
VNCDIR="/home/${USER}/.vnc"
[ -d "$VNCDIR" ] || mkdir "$VNCDIR"
- echo " --connect $VNC_CONNECT " >> $VNCDIR/options
+ echo " --connect $VNC_CONNECT " >> $VNCDIR/options
fi
fi
}
# }}}
# {{{ Sound
-
-config_mixer(){
-if ! [ -x /usr/bin/amixer ] ; then
- eerror "amixer binary not available. Can not set sound volumes therefore." ; eend 1
-else
-
- if ! [ -r /proc/asound/cards ] ; then
- ewarn "No soundcard present, skipping mixer settings therefore." ; eend 0
- return
- fi
-
- if checkbootparam 'vol' ; then
- VOL="$(getbootparam 'vol' 2>>$DEBUG)"
- if [ -z "$VOL" ] ; then
- eerror "Bootoption vol found but no volume level/parameter given. Using defaults." ; eend 1
- VOL='75' # default
- fi
- else
- VOL='75' # default
- fi
-
- if checkbootparam 'nosound' ; then
- einfo "Muting sound devices on request."
-
- fix_ibm_sound 0
- # mute the master, this should be sufficient
- ERROR=$(amixer -q set Master mute)
- RC=$?
-
- if [ -n "$ERROR" ] ; then
- eindent
- eerror "Problem muting sound devices: $ERROR"
- eoutdent
- fi
- eend $RC
- elif [ -z "$INSTALLED" ]; then
- einfo "Setting mixer volumes to level ${WHITE}${VOL}${NORMAL}."
-
- fix_ibm_sound ${VOL}
-
- # by default assume '0' as volume for microphone:
- if checkbootparam 'micvol' ; then
- MICVOL="$(getbootparam 'micvol' 2>>$DEBUG)"
- else
- MICVOL=0
- fi
-
- # finally set the volumes:
- RC=0
- for CONTROL in Master PCM ; do
- amixer -q set ${CONTROL} ${VOL}%
- if [ $? -ne 0 ] ; then RC=$? ; fi
- done
- # dont know how to set microphone volume for all soundcards with amixer,
- # so use aumix instead :/
- if [ ${MICVOL} -ne 0 -a -x /usr/bin/aumix ] ; then
- aumix -m $MICVOL &>/dev/null
- if [ $? -ne 0 ] ; then RC=$? ; fi
+config_mixer () {
+ if ! [ -x /usr/bin/amixer ] ; then
+ eerror "amixer binary not available. Can not set sound volumes therefore."
+ eend 1
+ else
+ if ! [ -r /proc/asound/cards ] ; then
+ ewarn "No soundcard present, skipping mixer settings therefore."
+ eend 0
+ return
fi
- eend $RC
- fi
+ for card in $(cat /proc/asound/cards| grep -e '^\s*[0-9]' | awk '{print $1}') ; do
+ einfo "Configuring soundcard $(cat /proc/asound/cards| grep -e "$card" | awk -F\[ '{print $2}' | awk '{print $1}')"
+ eindent
-fi
-}
+ if checkbootparam 'vol' ; then
+ VOL="$(getbootparam 'vol' 2>>$DEBUG)"
+ if [ -z "$VOL" ] ; then
+ eerror "Bootoption vol found but no volume level/parameter given. Using defaults (75%)."
+ VOL='75'
+ eend 1
+ fi
+ else
+ VOL='75'
+ fi
-# on some IBM notebooks the front control has to be toggled
-fix_ibm_sound() {
- if [ -z $1 ] ; then
- return
- fi
+ if checkbootparam 'nosound' ; then
+ einfo "Muting sound devices on request."
+ ERROR=$(amixer -q set Master mute)
+ RC=$?
+ if [ -n "$ERROR" ] ; then
+ eindent
+ eerror "Problem muting sound devices: $ERROR"
+ eoutdent
+ fi
+ eend $RC
+ elif [ -z "$INSTALLED" ] ; then
+ einfo "Setting mixer volumes to level ${WHITE}${VOL}${NORMAL}."
- VOL=${1}
+ if checkbootparam 'micvol' ; then
+ MICVOL="$(getbootparam 'micvol' 2>>$DEBUG)"
+ else
+ MICVOL=0
+ fi
- if [ -x /usr/bin/amixer ] ; then
- if amixer -q get Front >/dev/null 2>>$DEBUG ; then
- amixer -q set Front unmute &>/dev/null
- amixer -q set Front ${VOL}% &>/dev/null
- fi
- fi
+ for CONTROL in Master PCM ; do
+ if amixer -q | grep -q "Simple mixer control.*$CONTROL" ; then
+ amixer -q set "${CONTROL}" "${VOL}"%
+ eend $?
+ fi
+ done
+
+ if [ ${MICVOL} -ne 0 ] ; then
+ einfo "Setting microphone to ${WHITE}${MICVOL}${NORMAL}."
+ amixer -q set "Mic" $MICVOL &> /dev/null
+ eend $?
+ fi
+ fi # checkbootparam 'nosound'
+ eoutdent
+ done
+ fi
}
# }}}
# make sure we start X only if startx is used *before* a nostartx option
# so it's possible to disable automatic X startup using nostart
if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; then
- if [ -x $(which X) ] ; then
+ if [ -x "$(which X)" ] ; then
if [ -z "$INSTALLED" ] ; then
WINDOWMANAGER="$(getbootparam 'startx' 2>>$DEBUG)"
if [ -z "$WINDOWMANAGER" ] ; then
}
# }}}
-# {{{ check for broken ipw3945 driver which causes problems (especially on hd install)
-config_ipw3945() {
- if grep -q ipw3945 /proc/modules ; then
- if ! iwconfig 2>/dev/null| grep -qe 'IEEE 802' -qe 'unassociated' ; then
- ewarn "Broken ipw3945 network interface found, reloading module."
- rmmod ipw3945
- modprobe ipw3945
- eend $?
- fi
- fi
-}
-# }}}
-
# {{{ disable console blanking
config_blanking(){
if checkbootparam 'noblank' ; then