Linux lionsclub 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.29 (Ubuntu)
: 161.35.52.75 | : 18.191.144.73
Cant Read [ /etc/named.conf ]
7.4.28
www-data
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
bash
1.06
MB
-rwxr-xr-x
btrfs
699.67
KB
-rwxr-xr-x
btrfs-debug-tree
367.14
KB
-rwxr-xr-x
btrfs-find-root
363.14
KB
-rwxr-xr-x
btrfs-image
387.14
KB
-rwxr-xr-x
btrfs-map-logical
367.14
KB
-rwxr-xr-x
btrfs-select-super
363.14
KB
-rwxr-xr-x
btrfs-zero-log
363.14
KB
-rwxr-xr-x
btrfsck
699.67
KB
-rwxr-xr-x
btrfstune
367.14
KB
-rwxr-xr-x
bunzip2
34.07
KB
-rwxr-xr-x
busybox
1.97
MB
-rwxr-xr-x
bzcat
34.07
KB
-rwxr-xr-x
bzcmp
2.09
KB
-rwxr-xr-x
bzdiff
2.09
KB
-rwxr-xr-x
bzegrep
3.56
KB
-rwxr-xr-x
bzexe
4.76
KB
-rwxr-xr-x
bzfgrep
3.56
KB
-rwxr-xr-x
bzgrep
3.56
KB
-rwxr-xr-x
bzip2
34.07
KB
-rwxr-xr-x
bzip2recover
13.99
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
cat
34.24
KB
-rwxr-xr-x
chacl
13.99
KB
-rwxr-xr-x
chgrp
62.18
KB
-rwxr-xr-x
chmod
58.21
KB
-rwxr-xr-x
chown
66.18
KB
-rwxr-xr-x
chvt
10.07
KB
-rwxr-xr-x
cp
138.21
KB
-rwxr-xr-x
cpio
153.54
KB
-rwxr-xr-x
dash
118.59
KB
-rwxr-xr-x
date
98.21
KB
-rwxr-xr-x
dd
74.22
KB
-rwxr-xr-x
df
82.79
KB
-rwxr-xr-x
dir
130.66
KB
-rwxr-xr-x
dmesg
70.31
KB
-rwxr-xr-x
dnsdomainname
18.07
KB
-rwxr-xr-x
domainname
18.07
KB
-rwxr-xr-x
dumpkeys
166.52
KB
-rwxr-xr-x
echo
34.18
KB
-rwxr-xr-x
ed
50.3
KB
-rwxr-xr-x
efibootdump
17.99
KB
-rwxr-xr-x
efibootmgr
39.12
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
false
30.18
KB
-rwxr-xr-x
fgconsole
10.07
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
findmnt
63.27
KB
-rwxr-xr-x
fsck.btrfs
1.16
KB
-rwxr-xr-x
fuser
35.09
KB
-rwxr-xr-x
fusermount
30.08
KB
-rwsr-xr-x
getfacl
22.62
KB
-rwxr-xr-x
grep
214.31
KB
-rwxr-xr-x
gunzip
2.25
KB
-rwxr-xr-x
gzexe
5.86
KB
-rwxr-xr-x
gzip
99.18
KB
-rwxr-xr-x
hostname
18.07
KB
-rwxr-xr-x
ip
545.12
KB
-rwxr-xr-x
journalctl
62.09
KB
-rwxr-xr-x
kbd_mode
10.07
KB
-rwxr-xr-x
kill
26.08
KB
-rwxr-xr-x
kmod
146.18
KB
-rwxr-xr-x
less
166.76
KB
-rwxr-xr-x
lessecho
10.02
KB
-rwxr-xr-x
lessfile
8.36
KB
-rwxr-xr-x
lesskey
19.39
KB
-rwxr-xr-x
lesspipe
8.36
KB
-rwxr-xr-x
ln
66.22
KB
-rwxr-xr-x
loadkeys
206.57
KB
-rwxr-xr-x
login
51.43
KB
-rwxr-xr-x
loginctl
50.08
KB
-rwxr-xr-x
lowntfs-3g
106.67
KB
-rwxr-xr-x
ls
130.66
KB
-rwxr-xr-x
lsblk
82.08
KB
-rwxr-xr-x
lsmod
146.18
KB
-rwxr-xr-x
mkdir
78.18
KB
-rwxr-xr-x
mkfs.btrfs
387.17
KB
-rwxr-xr-x
mknod
66.18
KB
-rwxr-xr-x
mktemp
42.18
KB
-rwxr-xr-x
more
38.04
KB
-rwxr-xr-x
mount
42.08
KB
-rwsr-xr-x
mountpoint
14.07
KB
-rwxr-xr-x
mt
78.63
KB
-rwxr-xr-x
mt-gnu
78.63
KB
-rwxr-xr-x
mv
134.22
KB
-rwxr-xr-x
nano
240.11
KB
-rwxr-xr-x
nc
34.48
KB
-rwxr-xr-x
nc.openbsd
34.48
KB
-rwxr-xr-x
netcat
34.48
KB
-rwxr-xr-x
netstat
150.58
KB
-rwxr-xr-x
networkctl
42.07
KB
-rwxr-xr-x
nisdomainname
18.07
KB
-rwxr-xr-x
ntfs-3g
142.7
KB
-rwxr-xr-x
ntfs-3g.probe
10.07
KB
-rwxr-xr-x
ntfscat
26.1
KB
-rwxr-xr-x
ntfscluster
34.1
KB
-rwxr-xr-x
ntfscmp
34.1
KB
-rwxr-xr-x
ntfsfallocate
34.11
KB
-rwxr-xr-x
ntfsfix
42.11
KB
-rwxr-xr-x
ntfsinfo
54.12
KB
-rwxr-xr-x
ntfsls
31.18
KB
-rwxr-xr-x
ntfsmove
30.1
KB
-rwxr-xr-x
ntfsrecover
114.1
KB
-rwxr-xr-x
ntfssecaudit
86.59
KB
-rwxr-xr-x
ntfstruncate
38.03
KB
-rwxr-xr-x
ntfsusermap
30.02
KB
-rwxr-xr-x
ntfswipe
46.63
KB
-rwxr-xr-x
open
18.43
KB
-rwxr-xr-x
openvt
18.43
KB
-rwxr-xr-x
pidof
22.08
KB
-rwxr-xr-x
ping
62.91
KB
-rwsr-xr-x
ping4
62.91
KB
-rwsr-xr-x
ping6
62.91
KB
-rwsr-xr-x
plymouth
37.99
KB
-rwxr-xr-x
ps
130.3
KB
-rwxr-xr-x
pwd
34.18
KB
-rwxr-xr-x
rbash
1.06
MB
-rwxr-xr-x
readlink
42.18
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
rm
62.21
KB
-rwxr-xr-x
rmdir
42.18
KB
-rwxr-xr-x
rnano
240.11
KB
-rwxr-xr-x
run-parts
18.32
KB
-rwxr-xr-x
sed
106.45
KB
-rwxr-xr-x
setfacl
34.68
KB
-rwxr-xr-x
setfont
42.13
KB
-rwxr-xr-x
setupcon
38.19
KB
-rwxr-xr-x
sh
118.59
KB
-rwxr-xr-x
sh.distrib
118.59
KB
-rwxr-xr-x
sleep
34.18
KB
-rwxr-xr-x
ss
136.63
KB
-rwxr-xr-x
static-sh
1.97
MB
-rwxr-xr-x
stty
74.21
KB
-rwxr-xr-x
su
43.62
KB
-rwsr-xr-x
sync
34.18
KB
-rwxr-xr-x
systemctl
178.08
KB
-rwxr-xr-x
systemd
1.54
MB
-rwxr-xr-x
systemd-ask-password
10.08
KB
-rwxr-xr-x
systemd-escape
14.06
KB
-rwxr-xr-x
systemd-hwdb
82.35
KB
-rwxr-xr-x
systemd-inhibit
14.08
KB
-rwxr-xr-x
systemd-machine-id-setup
18.06
KB
-rwxr-xr-x
systemd-notify
14.07
KB
-rwxr-xr-x
systemd-sysusers
42.07
KB
-rwxr-xr-x
systemd-tmpfiles
70.07
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
26.07
KB
-rwxr-xr-x
tar
413.39
KB
-rwxr-xr-x
tempfile
9.87
KB
-rwxr-xr-x
touch
86.21
KB
-rwxr-xr-x
true
30.18
KB
-rwxr-xr-x
udevadm
574.4
KB
-rwxr-xr-x
ulockmgr_server
13.99
KB
-rwxr-xr-x
umount
26.07
KB
-rwsr-xr-x
uname
34.21
KB
-rwxr-xr-x
uncompress
2.25
KB
-rwxr-xr-x
unicode_start
2.7
KB
-rwxr-xr-x
vdir
130.66
KB
-rwxr-xr-x
wdctl
30.08
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
whiptail
26.01
KB
-rwxr-xr-x
ypdomainname
18.07
KB
-rwxr-xr-x
zcat
1.89
KB
-rwxr-xr-x
zcmp
1.74
KB
-rwxr-xr-x
zdiff
5.65
KB
-rwxr-xr-x
zegrep
140
B
-rwxr-xr-x
zfgrep
140
B
-rwxr-xr-x
zforce
2.08
KB
-rwxr-xr-x
zgrep
6.3
KB
-rwxr-xr-x
zless
1.99
KB
-rwxr-xr-x
zmore
1.87
KB
-rwxr-xr-x
znew
4.95
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : setupcon
#!/bin/sh # setupcon -- setup the font and keyboard on the Linux console # Copyright (C) 2011 Anton Zinoviev <anton@lml.bas.bg> # Permission is hereby granted, free of charge, to any person # obtaining a copy of this file (the "Program"), to deal in the # Program without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, # sublicense, and/or sell copies of the Program, and to permit # persons to whom the Program is furnished to do so, subject to # the following conditions: The above copyright notice and this # permission notice shall be included in all copies or substantial # portions of the Program. # THE PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE PROGRAM OR THE USE OR # OTHER DEALINGS IN THE PROGRAM. ########################################################################### do_font='' # configure font do_kbd='' # configure the keyboard do_term='' # configure the terminal do_check=yes # test whether we are on the console do_verbose='' # explain what is being doing do_save='' # save the required files in /etc/console-setup do_saveonly='' # save the required files, do not configure anything do_currenttty='' # configure only current tty savekbdfile='' # save the keyboard map in $savekbdfile do_printonly='' # only print the configuration commands setupdir='' # directory for --setup-dir SETUP='' # The same as /usr/bin/which - in order to make "which" available before # /usr is mounted which () { local IFS IFS=: for i in $PATH; do if [ -f "$i/$1" -a -x "$i/$1" ]; then echo "$i/$1" return 0 fi done return 1 } # Create a temporary file name and set TMPFILE to its name. Early in # the boot process /tmp is mounted read-only, so lets have some other # options... I am not sure all non-GNU versions of mktemp understand # the -q option so redirections of stderr are used instead. tempfiles='' trap 'rm -f $tempfiles >/dev/null 2>&1' 0 trap "exit 2" 1 2 3 13 15 tempfile () { if \ TMPFILE=`mktemp /run/tmpkbd.XXXXXX 2>/dev/null` \ || TMPFILE=`mktemp /tmp/tmpkbd.XXXXXX 2>/dev/null` then tempfiles="$tempfiles $TMPFILE" return 0 else TMPFILE='' return 1 fi } # Print the arguments to stderr if $do_verbose is yes report () { local nl case "$1" in -n) shift nl='' ;; *) nl=' ' ;; esac if [ "$do_verbose" ]; then echo -n "$@" "$nl" >&2 fi } # Execute a command on every console terminal screen specified in # $ACTIVE_CONSOLES. # # 1st argument: plain=execute only once with no tty change, # out=execute with standard output redirected to the tty, in=the same # but the standard input is being redirected, 'other argument'=do not # redirect the standard input or output but use this as a tty option. # # 2nd argument: option(s) for verbose output. NONE=no output, # FORK=run the command in background, 'other argument'=give this # option to the executed command. # # 3rd argument: command to run; other arguments: other options # # Example 1: run '-C ' -v setfont font.psf # If ACTIVE_CONSOLES='/dev/tty1 /dev/tty2 /dev/tty3', then this results in # # setfont -C /dev/tty1 font.psf -v # setfont -C /dev/tty2 font.psf -v # setfont -C /dev/tty3 font.psf -v # # or # # setfont -C /dev/tty1 font.psf >/dev/null 2>&1 # setfont -C /dev/tty2 font.psf >/dev/null 2>&1 # setfont -C /dev/tty3 font.psf >/dev/null 2>&1 # # depending on the value of $do_verbose # # Example 2: `run plain FORK echo hello` results in `echo hello` # regardless of the value of $do_verbose. # # Example 3: `run plain NONE echo hello` results in `echo hello` or # `echo hello >/dev/null 2>&1` depending on the value of $do_verbose. run () { local ttyarg cmd verbose tty x ttyarg="$1" verbose="$2" cmd="$3" shift; shift; shift if [ -z "$ACTIVE_CONSOLES" -o -n "$do_currenttty" ]; then ttyarg=plain fi case "$ttyarg" in plain) if [ "$setupdir$do_printonly" ]; then if [ "$verbose" = NONE ]; then # keep the space after > SETUP="$SETUP$cmd $@ > /dev/null " else SETUP="$SETUP$cmd $@ " fi elif [ "$do_verbose" ]; then case "$verbose" in NONE) report executing $cmd "$@". $cmd "$@" ;; FORK) # no arguments to suppress '\033%%@' and '\033%%G' report executing $cmd. $cmd "$@" & ;; *) report executing $cmd "$@". $cmd "$@" $verbose ;; esac else case "$verbose" in NONE) report executing $cmd "$@". $cmd "$@" >/dev/null 2>&1 ;; FORK) # no arguments to suppress '\033%%@' and '\033%%G' report executing $cmd. $cmd "$@" & ;; *) report executing $cmd "$@". $cmd "$@" ;; esac fi ;; in) for tty in $ACTIVE_CONSOLES; do if [ "$setupdir$do_printonly" ]; then # keep the space around > and < if [ "$verbose" = NONE ]; then SETUP="$SETUP$cmd $@ < $tty > /dev/null " else SETUP="$SETUP$cmd $@ < $tty " fi elif [ -r $tty ]; then report -n on $tty '' run plain "$verbose" "$cmd" "$@" <$tty else report No read access from $tty. Can not execute $cmd. fi done ;; out) for tty in $ACTIVE_CONSOLES; do if [ "$setupdir$do_printonly" ]; then # keep the space between > and $tty SETUP="$SETUP$cmd $@ > $tty " elif [ -w $tty ]; then report -n on $tty '' run plain "$verbose" "$cmd" "$@" >$tty else report No write access to $tty. Can not execute $cmd. fi done ;; *) for tty in $ACTIVE_CONSOLES; do x="${ttyarg}$tty" run plain "$verbose" "$cmd" $x "$@" done ;; esac } # Search a file and return the full file name if found. # The filename may include wildcards and may not include space. # Example: findfile share/consolefonts Uni3-*.psf.gz # Result: /usr/share/consolefonts/Uni3-Fixed13.psf.gz findfile () { local x case "$2" in /*) if [ -f "$2" ]; then echo "$2" return 0 fi ;; esac x=`(ls "$installdir"/$1/$2 \ /usr/local/$1/$2 \ /usr/$1/$2 \ /etc/console-setup/cached_$2 \ /etc/console-setup/$2 \ "$installdir"/etc/console-setup/cached_$2 \ "$installdir"/etc/console-setup/$2) 2>/dev/null` x=`echo $x` [ "${x%% *}" ] || report Unable to find "$2". echo "${x%% *}" } # Return code 0: we are on the console; 1: we are not on the console test_console () { local ok ok=0 if which tty >/dev/null; then case "`tty`" in /dev/tty[1-9]*|/dev/vc/[0-9]*|/dev/console|/dev/ttyv[0-9]*) return 0 ;; esac ok=1 fi if which kbd_mode >/dev/null; then mode="`(LC_ALL=C; export LC_ALL; kbd_mode) 2>&1`" mode=${mode#The keyboard is in } case "$mode" in Unicode*|default*|xlate*) return 0 ;; esac ok=1 fi if which vidcontrol >/dev/null; then if vidcontrol -i adapter >&- 2>&-; then return 0 fi ok=1 fi return $ok } ########################################################################### ### PROCESS THE COMMAND LINE ARGUMENTS ########################################################################### while [ "$1" ]; do case "$1" in -k|--keyboard-only) do_kbd=yes ;; -f|--font-only) do_font=yes ;; -t|--terminal-only) do_term=yes ;; --current-tty) do_currenttty=yes ;; -v|--verbose) do_verbose=yes ;; --force) do_check='' ;; --save) do_save=yes ;; --save-only) do_save=yes do_saveonly=yes do_check='' ;; --save-keyboard) shift savekbdfile="$1" do_saveonly=yes do_check='' ;; --print-commands-only) do_printonly=yes do_check='' ;; --setup-dir) shift do_kbd=yes do_currenttty=yes setupdir="$1" do_check='' ;; -h|--help) cat >&2 <<EOF Usage: setupcon [OPTION] [VARIANT] Sets up the font and the keyboard on Linux console. -k, --keyboard-only setup the keyboard only, do not setup the font -f, --font-only setup the font only, do not setup the keyboard -t, --terminal-only setup the terminal only --current-tty setup only the current virtual terminal --force do not check whether we are on the console -v, --verbose explain what is being doing, try it if s.t. goes wrong --save copy the font and the console map in /etc/console-setup, update /etc/console-setup/cached.* --save-only only save; don't setup keyboard/font immediately (implies --force) --print-commands-only print the configuration commands, do not configure --save-keyboard FILE, --setup-dir DIR options for initrd builders -h, --help display this help and exit If VARIANT is not specified setupcon looks for the configuration files (in this order) ~/.console-setup and if this doesn't exist then the combination /etc/default/keyboard + /etc/default/console-setup. When a VARIANT is specified then setupcon looks for the configuration files ~/.console-setup.VARIANT and /etc/default/console-setup.VARIANT. EOF exit 0 ;; -*) echo "setupcon: Unrecognised option $1" >&2 exit 1 ;; *) if [ -z "$VARIANT" ]; then VARIANT="$1" else echo "setupcon: Two variants specified: $VARIANT and $1" >&2 exit 1 fi ;; esac shift done if [ -z "$do_saveonly$do_kbd$do_font$do_term" ]; then do_kbd=yes do_font=yes do_term=yes fi # installdir installdir=${0%/*} case "$installdir" in */bin) installdir=${installdir%/bin} ;; *) installdir=$installdir/.. ;; esac [ -n "$installdir" -a -d "$installdir"/bin ] || installdir=/usr case "$installdir" in /*) ;; *) installdir="`pwd`\$installdir" ;; esac ########################################################################### ### READ THE CONFIGURATION FILES ########################################################################### if [ "$VARIANT" ]; then VARIANT=".$VARIANT" fi USER_CONFIG=${HOME}/.console-setup"$VARIANT" USER_CONFIG2=${HOME}/.keyboard"$VARIANT" MAIN_CONFIG=/etc/default/keyboard"$VARIANT" [ -f "$MAIN_CONFIG" ] \ || [ ! -f "$installdir"/etc/default/keyboard"$VARIANT" ] \ || MAIN_CONFIG="$installdir"/etc/default/keyboard"$VARIANT" MAIN_CONFIG2=/etc/default/console-setup"$VARIANT" [ -f "$MAIN_CONFIG2" ] \ || [ ! -f "$installdir"/etc/default/console-setup"$VARIANT" ] \ || MAIN_CONFIG2="$installdir"/etc/default/console-setup"$VARIANT" if [ -f "$USER_CONFIG" -o -f "$USER_CONFIG2" ]; then CONFIG="$USER_CONFIG" CONFIG2="$USER_CONFIG2" elif [ -f "$MAIN_CONFIG" -o -f "$MAIN_CONFIG2" ]; then CONFIG="$MAIN_CONFIG" CONFIG2="$MAIN_CONFIG2" else echo "setupcon: None of $MAIN_CONFIG, $MAIN_CONFIG2, $USER_CONFIG, $USER_CONFIG2 exists." >&2 exit 1 fi if [ -f "$CONFIG2" ]; then . "$CONFIG2" else # in order to permit "if [ cached.kmap.gz -ot $CONFIG2 ]; then ... fi" CONFIG2="$CONFIG" fi if [ -f "$CONFIG" ]; then . "$CONFIG" fi ########################################################################### ### INITIALIZATION AND DEFAULT VALUES ########################################################################### # do_verbose # The variable VERBOSE_OUTPUT is obsoleted in favour of the option --verbose if [ "$VERBOSE_OUTPUT" = yes ]; then do_verbose=yes fi # kernel kernel=unknown if which uname >/dev/null; then case "`uname`" in *Linux*) kernel=linux ;; *FreeBSD*) kernel=freebsd ;; *) echo 'setupcon: Unknown kernel (only Linux and FreeBSD are supported).' >&2 exit 1 ;; esac fi # do_save if [ -n "$do_save" ]; then if [ ! -d /usr/share ]; then echo setupcon: It seems /usr is not mounted. Will not save files in /etc. >&2 do_save='' fi fi # ACTIVE_CONSOLES # When ACTIVE_CONSOLES=guess the following will result in ACTIVE_CONSOLES='' ACTIVE_CONSOLES=$( for tty in $ACTIVE_CONSOLES; do if [ -e $tty ]; then echo $tty fi done ) if [ -z "$ACTIVE_CONSOLES" ]; then # Some crude guess # Conf. files: # BSD: /etc/ttys # Sys V init: /etc/inittab # Upstart: /etc/init/* # Devices: # Linux: /dev/tty[1-9][0-9]* # FreeBSD: /dev/ttyv[0-9a-f] for tty in \ $(cat /etc/inittab /etc/init/* /etc/ttys 2>/dev/null \ | grep getty \ | egrep '([[:blank:]]|^)tty([1-9][0-9]*|v[0-9a-f])([[:blank:]]|$)' \ | sed -e '/^ *#/d' \ -e 's/.*[[:blank:]]\(tty[1-9][0-9]*\).*/\1/' \ -e 's/.*[[:blank:]]\(ttyv[0-9a-f]\).*/\1/') do if [ -e /dev/$tty ]; then ACTIVE_CONSOLES="$ACTIVE_CONSOLES /dev/$tty" fi done fi if [ -z "$ACTIVE_CONSOLES" ]; then case "$kernel" in linux) ACTIVE_CONSOLES=$(ls /dev/tty[1-6] 2>/dev/null) ;; freebsd) ACTIVE_CONSOLES=$(ls /dev/ttyv[0-3] 2>/dev/null) ;; esac report Can not find the active virtual consoles, \ assuming ACTIVE_CONSOLES=\"$ACTIVE_CONSOLES\" >&2 else report Configuring $ACTIVE_CONSOLES fi # CHARMAP if [ "$CHARMAP" = guess -o -z "$CHARMAP" ]; then CHARMAP='' if which locale >/dev/null; then CHARMAP=`locale charmap` fi fi CHARMAP=${CHARMAP:-UTF-8} # FreeBSD uses ISO8859-1, GNU uses ISO-8859-1, we use the GNU names case "$CHARMAP" in ISO8859-*) CHARMAP="ISO-8859-${CHARMAP#ISO8859-}" ;; US-ASCII|ANSI*) CHARMAP=ISO-8859-1 ;; esac report The charmap is $CHARMAP # unicode if \ [ "$CHARMAP" = UTF-8 ] then unicode=yes else unicode='' fi # do_font if [ "$do_font" ]; then case "$kernel" in linux) if which consolechars >/dev/null ; then do_font=linuxct elif which setfont >/dev/null ; then do_font=linuxkbd else echo "setupcon: Neither setfont nor consolechars is accessible. No font will be configured." >&2 do_font='' fi ;; freebsd) if which vidcontrol >/dev/null ; then do_font=freebsd else echo "setupcon: vidcontrol is not accessible. No font will be configured." >&2 do_font='' fi ;; esac fi # Due to bug in splashy and usplash: do not load fonts (#540314) if which pidof >/dev/null; then if pidof splashy > /dev/null || pidof usplash > /dev/null; then do_font='' fi fi # CODESET [ "$CODESET" != guess ] || CODESET='' if [ -z "$CODESET" ]; then case "$CHARMAP" in UTF-8) CODESET=Uni2;; ARMSCII-8) CODESET=Armenian ;; CP1251) CODESET=CyrSlav ;; CP1255) CODESET=Hebrew ;; CP1256) CODESET=Arabic ;; GEORGIAN-ACADEMY) CODESET=Georgian ;; GEORGIAN-PS) CODESET=Georgian ;; IBM1133) CODESET=Lao ;; ISIRI-3342) CODESET=Arabic ;; ISO-8859-1) CODESET=Lat15 ;; ISO-8859-2) CODESET=Lat2 ;; ISO-8859-3) CODESET=Lat38 ;; ISO-8859-4) CODESET=Lat7 ;; # sometimes Lat15 ISO-8859-5) CODESET=CyrSlav ;; ISO-8859-6) CODESET=Arabic ;; ISO-8859-7) CODESET=Greek ;; ISO-8859-8) CODESET=Hebrew ;; ISO-8859-9) CODESET=Lat15 ;; ISO-8859-10) CODESET=Lat15 ;; ISO-8859-11) CODESET=Thai ;; ISO-8859-13) CODESET=Lat7 ;; ISO-8859-14) CODESET=Lat38 ;; ISO-8859-15) CODESET=Lat15 ;; ISO-8859-16) CODESET=Lat2 ;; KOI8-R) CODESET=CyrKoi ;; KOI8-U) CODESET=CyrKoi ;; TIS-620) CODESET=Thai ;; VISCII) CODESET=Vietnamese ;; *) if [ "$do_font" ]; then echo Unsupported charmap $CHARMAP >&2 exit 1 fi ;; esac if [ "$kernel" = freebsd ]; then # 512 character fonts are not supported on FreeBSD case "$CODESET" in Uni*|Vietnamese|Arabic|Ethiopian) CODESET=Lat15 ;; esac fi fi if [ "$CHARMAP" != UTF-8 -a "$kernel" = freebsd ]; then if \ [ -z "`findfile share/syscons/scrnmaps ${CHARMAP}_${CODESET}.scm`" ] then report "Ignoring the CODESET specification ($CODESET)." CODESET=`findfile share/syscons/scrnmaps ${CHARMAP}_*.scm` if [ -n "$do_font" -a -z "$CODESET" ]; then echo setupcon: Unsupported charmap $CHARMAP >&2 exit 1 fi CODESET=${CODESET%%*/} CODESET=${CODESET#.scm*} CODESET=${CODESET%*_} report Using $CODESET instead. fi fi # FONTSIZE if [ -z "$FONTSIZE" -o "$FONTSIZE" = guess ]; then FONTSIZE=16 fi case "$FONTSIZE" in 8x*) FONTSIZE=${FONTSIZE#*x} ;; *x8) FONTSIZE=${FONTSIZE%x*} ;; *x*) a=${FONTSIZE%x*} b=${FONTSIZE#*x} if [ "$a" -lt "$b" ]; then FONTSIZE=${b}x${a} fi ;; esac # mapdir, fontdir, stdfont, stdfontfallback case "$kernel" in linux) mapdir=share/consoletrans stdmap=$CHARMAP.acm.gz fontdir=share/consolefonts stdfont=$CODESET-$FONTFACE$FONTSIZE.psf.gz # [A-WXYZa-wyz] is a funny way to say [A-Za-wyz]. In some locales # [A-Z] includes x and we don't want this. stdfontfallback=$CODESET-*[A-WXYZa-wyz]$FONTSIZE.psf.gz ;; freebsd) mapdir=share/syscons/scrnmaps stdmap=${CHARMAP}_${CODESET}.scm fontdir=share/syscons/fonts stdfont16=$CODESET-${FONTFACE}16.fnt stdfont14=$CODESET-${FONTFACE}14.fnt stdfont8=$CODESET-${FONTFACE}8.fnt stdfontfallback16=$CODESET-*[A-WXYZa-wyz]16.fnt stdfontfallback14=$CODESET-*[A-WXYZa-wyz]14.fnt stdfontfallback8=$CODESET-*[A-WXYZa-wyz]8.fnt ;; esac # CONSOLE_MAP CONSOLE_MAP=${CONSOLE_MAP:-$ACM} [ -z "$CONSOLE_MAP" ] || CONSOLE_MAP=`findfile $mapdir "$CONSOLE_MAP"` [ -n "$CONSOLE_MAP" -o "$CHARMAP" = UTF-8 ] || CONSOLE_MAP=`findfile $mapdir $stdmap` [ -n "$CONSOLE_MAP" -o "$CHARMAP" = UTF-8 ] || CONSOLE_MAP=`findfile $mapdir ${stdmap%.gz}` # FONTFILES FONTFILES='' if [ "$FONT" ]; then for f in $FONT; do FONTFILES="$FONTFILES `findfile $fontdir $f`" RES=`findfile $fontdir $f` if [ -z "$RES" ]; then fdec="${f%.gz}" RES=`findfile $fontdir $fdec` fi FONTFILES="$FONTFILES $RES" done fi FONTFILES=`echo $FONTFILES` # remove extra spaces if [ -n "$FONTFACE" -a -z "$FONTFILES" ]; then case "$kernel" in linux) # the following will fail if FONTFACE=guess ($stdfont will # match nothing) FONTFILES=`findfile $fontdir $stdfont` [ "$FONTFILES" ] || FONTFILES=`findfile $fontdir $stdfontfallback` case "$FONTFILES" in *[0-9]x[1-9]*.psf.gz) if which consolechars >/dev/null; then echo "\ The consolechars utility from the \"console-tools\" package can load only fonts with 8 pixel width matrix. Please install the setfont utility from the package \"kbd\" or reconfigure the font size." >&2 fi ;; esac ;; freebsd) FONTFILES=`findfile $fontdir $stdfont16` [ "$FONTFILES" ] || FONTFILES=`findfile $fontdir $stdfontfallback16` font=`findfile $fontdir $stdfont14` [ "$font" ] || font=`findfile $fontdir $stdfontfallback14` [ -z "$font" ] || FONTFILES="$FONTFILES $font" font=`findfile $fontdir $stdfont8` [ "$font" ] || font=`findfile $fontdir $stdfontfallback8` [ -z "$font" ] || FONTFILES="$FONTFILES $font" ;; esac if [ -n "$do_font" -a -z "$FONTFILES" ]; then echo setupcon: Unable to find the required font. No font will be configured. >&2 do_font='' fi fi # FONTMAPFILE FONTMAPFILE='' if [ "$kernel" = linux -a -n "$FONT_MAP" ]; then FONTMAPFILE=`findfile share/consoletrans "$FONT_MAP"` fi # XKBMODEL if \ [ -n "$do_kbd$do_save$savekbdfile$setupdir$do_printonly" \ -a -z "$XKBMODEL" ] then echo setupcon: The keyboard model is unknown, assuming \'pc105\'. Keyboard may be configured incorrectly. >&2 XKBMODEL='pc105' fi [ -n "$XKBMODEL" -o -z "$savekbdfile" ] || exit 1 # Backwards-compatibility with Ubuntu-specific preseeding if [ "$XKBMODEL" = SKIP ]; then XKBMODEL= fi # do_kbd [ "$XKBMODEL$KMAP" ] || do_kbd='' if [ "$do_kbd" ]; then case "$kernel" in linux) if which loadkeys >/dev/null; then do_kbd=linux else echo setupcon: loadkeys is not accessible. Keyboard will not be configured.>&2 do_kbd='' fi ;; freebsd) if which kbdcontrol >/dev/null; then do_kbd=freebsd else echo setupcon: kbdcontrol is not accessible. Keyboard will not be configured.>&2 do_kbd='' fi ;; esac fi # acm_option if [ "$CHARMAP" != UTF-8 ]; then acm_option="-charmap $CHARMAP" elif [ "$kernel" = freebsd ]; then acm_option='-charmap ISO-8859-1' else acm_option='' fi # rules_option if [ "$XKBRULES" ]; then rules_option="-rules $XKBRULES" else rules_option='' fi # backspace case "$kernel" in linux) backspace='del' ;; freebsd) backspace='bs' ;; esac case \ "`(stty -a \ | egrep '(^| )erase *=' \ | sed -e 's/.* erase *= *//' -e 's/^erase *= *//' -e 's/[; ].*//') \ 2>/dev/null`" in ^\?) backspace='del' ;; ^h|^H) backspace='bs' ;; esac case "$BACKSPACE" in del) backspace='del' ;; bs) backspace='bs' ;; esac case "$backspace" in del) report BackSpace is ^? ;; bs) report BackSpace is ^h ;; *) echo setupcon: Wrong BackSpace option >&2 ;; esac # do_term if [ "$do_term" ]; then case "$kernel" in linux) do_term=linux ;; freebsd) do_term=freebsd ;; esac fi # cached case "$kernel" in linux) cached=/etc/console-setup/cached_${CHARMAP}_$backspace$VARIANT.kmap.gz ;; freebsd) cached=/etc/console-setup/cached_${CHARMAP}_$backspace$VARIANT.kbd ;; esac # savekbdfile if \ [ -z "$savekbdfile" -a -n "$do_save" ] \ && [ ! -f "$cached" \ -o ! "$CONFIG" -ot "$cached" \ -o ! "$CONFIG2" -ot "$cached" ] then savekbdfile="$cached" fi [ "$XKBMODEL" ] || savekbdfile='' if [ "$kernel" = linux ] && ! which gzip >/dev/null; then savekbdfile='' echo setupcon: gzip is not accessible. Will not save cached keyboard map. >&2 fi # KMAP if [ -n "$KMAP" -a ! -f "$KMAP" ]; then echo setupcon: $KMAP does not exist. >&2 KMAP='' fi ########################################################################### ### SAVE THE FILES IN /etc ########################################################################### for i in /etc/console-setup $CONSOLE_MAP $FONTFILES $FONTMAPFILE $savekbdfile; do if [ "$i" = "${i#/etc/console-setup}" -a -n "$do_save" ]; then if \ ! touch /etc/console-setup/cached_rwtest 2>/dev/null \ || ! rm /etc/console-setup/cached_rwtest 2>/dev/null then echo setupcon: /etc/console-setup is not writable. No files will be saved there. >&2 do_save='' fi break fi done if [ -n "$do_save" ]; then case "$CONSOLE_MAP" in /etc/console-setup/*) ;; ?*) console_map_dec="${CONSOLE_MAP%.gz}" if [ "$console_map_dec" = "$CONSOLE_MAP" ]; then cp "$CONSOLE_MAP" /etc/console-setup/ else gunzip -c "$CONSOLE_MAP" >"/etc/console-setup/${console_map_dec##*/}" fi rm -f "/etc/console-setup/${console_map_dec##*/}.gz" ;; esac for font in $FONTFILES; do case "$font" in /etc/console-setup/*) ;; ?*) cp "$font" /etc/console-setup/ ;; esac done case "$FONTMAPFILE" in /etc/console-setup/*) ;; ?*) cp "$FONTMAPFILE" /etc/console-setup/ ;; esac fi if [ "$savekbdfile" ]; then case "$kernel" in linux) tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; } { $installdir/bin/ckbcomp -backspace "$backspace" $acm_option \ $rules_option -model "$XKBMODEL" \ "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE \ && gzip -9n <$TMPFILE >"$savekbdfile" } || exit 1 ;; freebsd) $installdir/bin/ckbcomp -freebsd -backspace "$backspace" \ $acm_option $rules_option -model "$XKBMODEL" \ "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >"$savekbdfile" \ || exit 1 ;; esac fi if [ -n "$do_save" ]; then case "$CONSOLE_MAP" in /etc/console-setup/*) ;; ?*) cp "$CONSOLE_MAP" /etc/console-setup/cached_"${CONSOLE_MAP##*/}" ;; esac for font in $FONTFILES; do case "$font" in /etc/console-setup/*) ;; ?*) cp "$font" /etc/console-setup/cached_"${font##*/}" ;; esac done case "$FONTMAPFILE" in /etc/console-setup/*) ;; ?*) cp "$FONTMAPFILE" /etc/console-setup/cached_"${FONTMAPFILE##*/}" ;; esac if [ "$kernel" = linux ]; then commands_k=$($0 -k --print-commands-only) commands_f=$($0 -f --current-tty --print-commands-only) commands_t=$($0 -t --current-tty --print-commands-only) cat >/etc/console-setup/cached_setup_keyboard.sh <<EOF #!/bin/sh if [ -f /run/console-setup/keymap_loaded ]; then rm /run/console-setup/keymap_loaded exit 0 fi $commands_k EOF cat >/etc/console-setup/cached_setup_font.sh <<EOF #!/bin/sh $commands_f if ls /dev/fb* >/dev/null 2>/dev/null; then for i in /dev/vcs[0-9]*; do { : $commands_f } < /dev/tty\${i#/dev/vcs} > /dev/tty\${i#/dev/vcs} done fi mkdir -p /run/console-setup > /run/console-setup/font-loaded for i in /dev/vcs[0-9]*; do { : $commands_t } < /dev/tty\${i#/dev/vcs} > /dev/tty\${i#/dev/vcs} done EOF cat >/etc/console-setup/cached_setup_terminal.sh <<EOF #!/bin/sh { : $commands_t } < /dev/tty\${1#vcs} > /dev/tty\${1#vcs} EOF chmod +x /etc/console-setup/cached_setup_keyboard.sh \ /etc/console-setup/cached_setup_font.sh \ /etc/console-setup/cached_setup_terminal.sh fi fi ########################################################################### ### ARE WE ON THE CONSOLE? ########################################################################### if [ "$do_check" ]; then if ! test_console; then echo setupcon: We are not on the console, the console is left unconfigured. >&2 exit 0 fi fi ########################################################################### ### OUTPUT ########################################################################### # Video mode if [ "$VIDEOMODE" ]; then case "$do_font" in freebsd) run in '' vidcontrol "$VIDEOMODE" ;; linux*) # this is a bit pointless as vesafb doesn't support changing mode if which fbset >/dev/null; then run plain '' fbset -a "$VIDEOMODE" else report fbset is not installed fi ;; esac fi # Load the font(s) if [ "$FONTFILES" ]; then case "$do_font" in freebsd) if [ -z "$unicode" ]; then for font in $FONTFILES; do run plain '' vidcontrol -f $font done if [ "$CONSOLE_MAP" ]; then run plain '' vidcontrol -l "$CONSOLE_MAP" fi fi ;; linuxkbd) if [ "$FONTMAPFILE" ]; then if [ "$CONSOLE_MAP" ]; then run '-C ' -v setfont $FONTFILES -u "$FONTMAPFILE" -m "$CONSOLE_MAP" else run '-C ' -v setfont $FONTFILES -u "$FONTMAPFILE" fi else if [ "$CONSOLE_MAP" ]; then run '-C ' -v setfont $FONTFILES -m "$CONSOLE_MAP" else run '-C ' -v setfont $FONTFILES fi fi ;; linuxct) if [ "$FONTMAPFILE" ]; then if [ "$CONSOLE_MAP" ]; then run --tty= -v consolechars -f ${FONTFILES%% *} \ -u "$FONTMAPFILE" --acm "$CONSOLE_MAP" else run --tty= -v consolechars -f ${FONTFILES%% *} -u "$FONTMAPFILE" fi else if [ "$CONSOLE_MAP" ]; then run --tty= -v consolechars -f ${FONTFILES%% *} --acm "$CONSOLE_MAP" else run --tty= -v consolechars -f ${FONTFILES%% *} fi fi ;; esac fi # Setup unicode/non-unicode mode case "$do_term" in # So far the FreeBSD kernel doesn't support changes of the mode from # utf to 8-bit and vice versa (its a compile time option). linux*) # FORK because of #678897 if [ "$unicode" ]; then run out FORK printf '\033%%G' else run out FORK printf '\033%%@' fi ;; esac # Setup the terminal width and height if [ "$do_term" ]; then STTY='' [ -z "$SCREEN_WIDTH" ] || STTY="$STTY cols $SCREEN_WIDTH" [ -z "$SCREEN_HEIGHT" ] || STTY="$STTY rows $SCREEN_HEIGHT" if [ "$STTY" ]; then run in '' stty $STTY fi fi # Setup the system beep case "$do_term" in linux*) SETTERM='' if [ -n "$BEEP" ]; then # we use hardcoded ESC sequences instead of setterm # because we TERM is unset in scripts run by udev case "$BEEP" in default) ;; standard) # --bfreq 750 --blength 100 SETTERM='\033[11;100]\033[10;750]' ;; short) # --bfreq 750 --blength 40 SETTERM='\033[11;40]\033[10;750]' ;; shortest) # --bfreq 750 --blength 9 SETTERM='\033[11;9]\033[10;750]' ;; polite) # --bfreq 130 --blength 9 SETTERM='\033[11;9]\033[10;130]' ;; attention) # --bfreq 130 --blength 600 SETTERM='\033[11;600]\033[10;130]' ;; annoying) # --bfreq 550 --blength 1000 SETTERM='\033[11;1000]\033[10;550]' ;; off) # --blength 0 SETTERM='\033[11;0]' ;; *) echo setupcon: Unrecognised setting BEEP="$BEEP" >&2 ;; esac if [ "$SETTERM" ]; then run out FORK printf "$SETTERM" fi fi ;; esac ########################################################################### ### INPUT ########################################################################### # On Mac PPC machines, we may need to set kernel vars first. We need # to mount /proc to do that, but we need it set up before sulogin may # be run in checkroot, which will need the keyboard to log in... # This code was borrowed from the keymap.sh script of console-common # Copyright © 2001 Yann Dirson # Copyright © 2001 Alcove http://www.alcove.fr/ if [ "$do_kbd" = linux ]; then if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then if grep -v '^\#' /etc/sysctl.conf | grep -q keycodes ; then grep keycodes /etc/sysctl.conf | grep -v "^#" \ | while read -r d ; do /sbin/sysctl -w $d 2> /dev/null || true done fi fi fi # Setup unicode/non-unicode mode # The following had to be [ "$do_kbd" = linux -o "$do_term" = linux ]. # Unfortunately, that way the X keyboard will be damaged when # console-setup modifies the keyboard mode of X. if [ "$do_kbd" = linux ]; then if which kbd_mode >/dev/null; then if [ "$unicode" ]; then run in '' kbd_mode -u else run in '' kbd_mode -a fi else report kbd_mode is not accessible. Unable to setup unicode/non-unicode keyboard mode. fi fi if \ [ -z "$KMAP" -a -f "$cached" ] \ && [ "$CONFIG" -ot "$cached" -a "$CONFIG2" -ot "$cached" ] then KMAP="$cached" fi if [ "$KMAP" ]; then case "$do_kbd" in linux) run plain NONE loadkeys "$KMAP" ;; freebsd) run in '' kbdcontrol -l "$KMAP" ;; esac else tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; } case "$do_kbd" in linux) $installdir/bin/ckbcomp -backspace "$backspace" $acm_option \ $rules_option -model "$XKBMODEL" \ "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE run plain NONE loadkeys $TMPFILE ;; freebsd) $installdir/bin/ckbcomp -freebsd -backspace "$backspace" \ $acm_option $rules_option -model "$XKBMODEL" \ "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE run in '' kbdcontrol -l $TMPFILE run in '' kbdcontrol -f 70 "`printf '\033[3~'`" ;; esac fi ########################################################################### ### PRINTONLY ########################################################################### if [ "$do_printonly" ]; then fileargs () { local arg args f if [ "$1" ]; then printf "%s" "$1" | { read -r arg args case "$arg" in \>|\<) echo -n "$arg" ;; *) echo -n "'" # printf instead of echo because different versions of # echo process backslashes differently. printf "%s" "$arg" \ | sed "s/'/\'\\\\\'\'/g" echo -n "'" ;; esac echo -n ' ' fileargs "$args" } fi } printf "%s" "$SETUP" | while read -r cmd args; do printf "%s " "$cmd" fileargs "$args" echo done fi ########################################################################### ### SETUPDIR ########################################################################### if [ "$setupdir" ]; then fileargs () { local arg args f if [ "$1" ]; then printf "%s" "$1" | { read -r arg args case "$arg" in \>|\<) echo -n "$arg" ;; /*) echo -n "'" if [ -e "$arg" ]; then f="${arg##*/}" f="${f%.gz}" case "$arg" in *.gz) zcat "$arg" >"$setupdir/etc/console-setup/$f" ;; *) cp -a "$arg" "$setupdir/etc/console-setup/$f" ;; esac printf "%s" "/etc/console-setup/$f" \ | sed "s/'/\'\\\\\'\'/g" else printf "%s" "$arg" \ | sed "s/'/\'\\\\\'\'/g" fi echo -n "'" ;; *) echo -n "'" # printf instead of echo because different versions of # echo process backslashes differently. printf "%s" "$arg" \ | sed "s/'/\'\\\\\'\'/g" echo -n "'" ;; esac echo -n ' ' fileargs "$args" } fi } mkdir -p "$setupdir"/bin mkdir -p "$setupdir"/etc/console-setup echo '#!/bin/sh' >"$setupdir"/bin/setupcon echo '# A micro-version of setupcon with static configuration.' >>"$setupdir"/bin/setupcon chmod +x "$setupdir"/bin/setupcon tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; } printf "%s" "$SETUP" | while read -r cmd args; do which "$cmd" >>$TMPFILE || true printf "%s " "$cmd" fileargs "$args" echo done >>"$setupdir"/bin/setupcon echo 'mkdir /run/console-setup' >>"$setupdir"/bin/setupcon echo '>/run/console-setup/keymap_loaded' >>"$setupdir"/bin/setupcon echo exit 0 >>"$setupdir"/bin/setupcon sort $TMPFILE | uniq | grep -v 'printf$' >"$setupdir"/morefiles fi exit 0
Close