fi czD>}DSGwDN Yxa:Lsy {e>BdU2ζYGwDiGwDGwDGwDAfzDuwDuwDA0GwDGwDGwDAg|D{D{DB p^A@{DuwD Dp^eDuwDfqiB p^ueDuwD)c> p^eDuwD Dp^`eDuwD!H D    p^!eDuwDX@p^A@{DuwD Dp^.eDuwDtHBp^A@{DuwDtHBp^A@{DuwDtHBp^A@{DuwD Dp^uwDuwDuwD/usr/sbin/hal-hotplug-mapp^h6eDuwDB !"#p^A@{DuwDG D&p^eDuwDf?p^!eDuwDo%A@p^0eDuwDU,BABCDEFGHIJKLMp^eDuwD:a,Bp^&eDuwDo%Ap^eDuwDo%Ap^eDuwDo%Ap^ eDuwD9a,Bp^ eDuwD:a,Bp^$eDuwD˟:Bp^eDuwDo%Ap^eDuwDo%Ap^[eDuwDo%Ap^eDuwD9a,Bp^BeDuwDo%Ap^eDuwDo%Ap^A@{DuwD Dp^A@{DuwD Dp^A@{DuwD Dp^A@{DuwD Dp^eDuwD\?p^A@{DuwD Dp^eDuwD,#>p^eDuwD,#>p^A@{DuwD Dp^A@{DuwD Dp^jeDuwDHH,Bp^A@{DuwD Dp^A@{DuwD Dp^eDuwDfBp^A@{DuwD Dp^eDuwD4 /Bp^2 eDuwD]~@p^A@{DuwD Dp^A@{DuwD Dp^A@{DuwD Dp^A@{DuwD Dp^[eDuwD#fBp^ eDuwD#fBp^3eDuwDJ@p^beDuwD#fBp^eDuwDCl> p^3eDuwDA  p^eDuwD#fB p^eDuwD#fB q^A@{DuwD Dq^eDuwD#fBq^eDuwD#fBq^eDuwD#fBq^TeDuwD#fBq^eDuwD#fBq^eDuwD#fBq^UeDuwD#fBq^A@{DuwD D q^eDuwD#fB q^ eDuwD``A q^ReDuwD``A q^A@{DuwD D q^A@{DuwD Dq^FeDuwDJ@q^FeDuwDA q^A@{DuwD D!q^A@{DuwD D"q^n eDuwD#fB#$%q^ eDuwD#fB&'(q^ eDuwDJ@)*+q^\ eDuwD#fB,-.q^ eDuwDCl>/01q^ eDuwDA234q^DeDuwD#fB5q^teDuwD#fB678q^A@{DuwD D9q^eDuwD#fB :;<=>q^r eDuwD#fB?@Aq^geDuwD#fB BCDEFq^eDuwD#fB GHIJKq^!eDuwD#fBLM q^ eDuwD#fBNOP!q^ eDuwD#fBQRS"q^3eDuwD#fBTU#q^ eDuwD#fBVWX$q^A@{DuwD DY%q^ eDuwD#fBZ[\&q^ eDuwD"fB]^_'q^eDuwD#fB `abcd(q^A@{DuwD De)q^A@{DuwD Df*q^seDuwD#fB ghijk+q^&eDuwD#fB lmnop,q^geDuwDJ@ qrstu-q^{eDuwD#fB vwxyz.q^BeDuwDCl> {|}~/q^geDuwDA 0q^eDuwD#fB1q^eDuwD#fB2q^A@{DuwD D3q^eDuwD#fB4q^eDuwD#fB5q^eDuwD#fB6q^| eDuwD#fB7q^N eDuwD#fB8q^\eDuwD#fB9q^eDuwD#fB:q^A@{DuwD D;q^3eDuwD#fB q^A@{DuwD D?q^A@{DuwD D@q^ eDuwD#fBAq^&eDuwD#fBBq^weDuwDJ@Cq^eDuwD#fBDq^weDuwDAEq^NeDuwD#fB Fq^A@{DuwD DGq^!eDuwD#fBHq^eDuwD#fBIq^"eDuwD#fBJq^eDuwD#fB    Kq^eDuwD#fB  Lq^| eDuwD#fBMq^eDuwD#fB Nq^A@{DuwD DOq^:!eDuwD#fB !"#Pq^;eDuwD#fB$%&'()*+Qq^eDuwD#fB ,-./01Rq^A@{DuwD D2Sq^A@{DuwD D3Tq^#EeDuwDJ@&456789:;<=>?@Uq^#EeDuwDA&GHIJKLMNOPQRSVq^A@{DuwD DZWq^A@{DuwD D[Xq^)eDuwD,#>\]^Yq^eDuwD,#>_`Zq^A@{DuwD Da[q^eDuwD,#>b\q^A@{DuwDsDc]q^A@{DuwDsDd^q^xUeDuwD D.efghijklmnopq_q^uwDuwDuwD../../../../../X11/xdm/Xservers`q^OeDuwDA|aq^eDuwDM:B}bq^0eDuwD2$>~cq^VeDuwD Ddq^eDuwD3$>eq^eDuwDh6 Bfq^eDuwDީN>gq^eDuwDIe@hq^eDuwD3$>iq^LeDuwD3$>jq^eDuwD,#>kq^?eDuwDt7h@lq^BeDuwDC9Bmq^$eDuwD3$>nq^eDuwDVl>oq^<eDuwD)@pq^ueDuwD Dqq^eDuwDf?rq^eDuwD3$>sq^aeDuwD7?tq^eDuwDU>uq^eDuwD/iAvq^,eDuwDQ%Awq^eDuwDU?xq^eDuwD3$>yq^eDuwDh6 Bzq^)eDuwD-U?{q^eDuwD3$>|q^eDuwD/p@}q^eDuwDk]?~q^&eDuwDAq^eDuwD3$>q^CeDuwD Dq^eDuwDCI>q^A@{DuwD Dq^8( eDuwD Dq^A@{DuwD Dq^A@{DuwD Dq^eeDuwDfBq^A@{DuwD( Dq^A@{DuwD D q^ uwDuwDuwDgtkrc.unifontq^ uwDuwDuwDgtkrc.unifontq^]eDuwD]@Bq^^eDuwD]@Bq^^eDuwD]@Bq^uwDuwDuwDgtkrc.iso885915q^uwDuwDuwDgtkrc.iso885913q^uwDuwDuwDgtkrc.iso885913q^ uwDuwDuwDgtkrc.unifontq^uwDuwDuwDgtkrc.iso885914q^ uwDuwDuwDgtkrc.cp1255q^uwDuwDuwDgtkrc.iso885913q^eDuwD]@Bq^uwDuwDuwDgtkrc.iso88595q^deDuwD]@Bq^,eDuwD]@Bq^ZeDuwD]@Bq^+eDuwD]@Bq^LeDuwD]@Bq^ZeDuwD]@Bq^ uwDuwDuwDgtkrc.unifontq^ReDuwD]@Bq^ReDuwD]@Bq^ uwDuwDuwDgtkrc.unifontq^feDuwD]@Bq^eDuwD]@Bq^eDuwDQd@q^ uwDuwDuwDgtkrc.unifontq^ uwDuwDuwDgtkrc.cp1255q^&eDuwD]@Bq^ uwDuwDuwDgtkrc.cp1251q^ uwDuwDuwDgtkrc.cp1251q^eDuwD]@Bq^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso885914q^uwDuwDuwDgtkrc.iso885915q^uwDuwDuwDgtkrc.iso885914q^eDuwD]@Bq^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso88592q^eDuwD]@Bq^eDuwD]@Bq^uwDuwDuwDgtkrc.ka_GE.georgianpsq^keDuwD]@B q^uwDuwDuwDgtkrc.iso885913q^uwDuwDuwDgtkrc.iso885913q^uwDuwDuwDgtkrc.iso885913q^uwDuwDuwDgtkrc.iso88595q^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso88592q^ieDuwD]@B q^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso88595q^uwDuwDuwDgtkrc.iso88592q^uwDuwDuwDgtkrc.iso88592q^eDuwD]@B q^eDuwD]@B q^uwDuwDuwDgtkrc.vi_VN.tcvnq^ uwDuwDuwDgtkrc.cp1255q^uwDuwDuwDgtkrc.jaq^uwDuwDuwDgtkrc.azq^ uwDuwDuwDgtkrc.unifontq^ uwDuwDuwDgtkrc.unifontq^ceDuwD]@Bq^uwDuwDuwDgtkrc.vi_VN.visciiq^eDuwD]@Bq^uwDuwDuwDgtkrc.zh_TW.big5q^ uwDuwDuwDgtkrc.unifontq^uwDuwDuwDgtkrc.iso885914q^uwDuwDuwDgtkrc.iso88595q^ uwDuwDuwDgtkrc.unifontq^beDuwD[_@B q^A@{DuwDDq^ eDuwDDq^,eDuwD]@B !"#$%q^A@{DuwDnG D&q^A@{DuwD ?B'q^eDuwD[_@B(q^A@{DuwDD)q^eDuwDD*+q^ eDuwDD,-.q^0 eDuwD[_@B/012q^eDuwD[_@B3q^A@{DuwD D4q^'eDuwDwB56789:;q^ eDuwDwB<=>q^A@{DuwDXAB?q^zDuwDuwDip-upq^A@{DuwDXAB@q^eDuwDXQBAq^OeDuwDIBBCq^Ap{DuwDDDq^P eDuwDӲCEFGq^{ eDuwDӲCHIJKq^ eDuwDI DLq^XeDuwDI DMq^eDuwDI DNq^eDuwDӲCOPQRSTUVWXYZ[q^IeDuwDI Dq^eDuwDI Dq^seDuwDI Dq^Ap{DuwD Dq^feDuwDOCq^A@{DuwD D q^ uwDuwDuwDfactory.pemq^uwDuwDuwDEquifax-root1.pemq^ uwDuwDuwDpca-cert.pemq^ eDuwD])~6q^ uwDuwDuwDthawteCp.pemq^eDuwDC:q^ uwDuwDuwDtimCA.pemq^eDuwDC:q^eDuwDC:q^uwDuwDuwDeng4.pemq^weDuwDBq^ uwDuwDuwDRegTP-4R.pemq^ uwDuwDuwDvsigntca.pemq^ uwDuwDuwDICE-root.pemr^eDuwD[*~6r^ uwDuwDuwDICE-user.pemr^eDuwD~(~6r^uwDuwDuwDeng3.pemr^ uwDuwDuwDvsign3.pemr^ uwDuwDuwDRegTP-5R.pemr^weDuwD(|@r^weDuwD(|@r^.eDuwD(|@ r^weDuwD(|@ r^eDuwD(|@ r^ uwDuwDuwDdsa-ca.pem r^ uwDuwDuwDICE-CA.pem r^A@{DuwD Dr^ eDuwD[*~6r^eDuwD[*~6r^ eDuwD[*~6r^eDuwDx@r^eDuwD߀9r^ eDuwD[*~6r^eDuwDG8r^uwDuwDuwDICP-Brasil.pemr^r eDuwD~(~6r^geDuwD~(~6r^ uwDuwDuwDvsign1.pemr^eDuwD])~6r^[eDuwD~(~6r^eDuwDG8r^ uwDuwDuwDthawteCb.pemr^<eDuwD[*~6r^ uwDuwDuwDvsignss.pemr^ uwDuwDuwDca-cert.pem r^ eDuwD])~6!r^eDuwD~(~6"r^geDuwD~(~6#r^eDuwD~(~6$r^eDuwD[*~6%r^eDuwD[*~6&r^eDuwDx@'r^ uwDuwDuwDRegTP-6R.pem(r^eDuwDO@  )r^ uwDuwDuwDrsa-cca.pem*r^uwDuwDuwDeng1.pem+r^ uwDuwDuwDtjhCA.pem,r^eDuwD~(~6  -r^ uwDuwDuwDnortelCA.pem.r^uwDuwDuwDeng5.pem/r^uwDuwDuwDeng2.pem0r^eDuwD~(~61r^ uwDuwDuwDvsign2.pem2r^ eDuwD])~63r^ uwDuwDuwDdsa-pca.pem4r^A@{DuwDOC5r^A@{DuwD  D6r^A@{DuwD D7r^eDuwDzL>8r^|eDuwD6BB !"#$9r^neDuwDC %@9:;:r^"eDuwDU(B<=>?@ABCD;r^ eDuwD U>Er^eDuwD4BHI?r^A@{DuwD4 DJ@r^feDuwDEBgLr^A@{DuwD" DhMr^eDuwD=yBiNr^ eDuwDܙtr^weDuwDU4ur^eDuwDҬ0vr^A@{DuwDG Dwr^A@{DuwDG Dxr^~eDuwD>Byr^A@{DuwD Dzr^eDuwD>B{r^beDuwDfB4     |r^ceDuwDNG D"}r^eDuwD6$B#~r^XWwDuwD>B$r^A @{DuwDXAB%r^eDuwD D&r^5eDuwDGAB'r^A@{DuwD D(r^eDuwDB)r^eDuwD)a D*r^]eDuwD5^C+r^5eDuwDy?@ABr^A@{DuwD&@BCr^A@{DuwDG DDr^/(eDuwD&@BEFGHIJKLMNOr^A@{DuwDG DPr^eDuwD&@BQRr^A@{DuwDG DSr^xeDuwD&@BTr^A@{DuwD DUr^WwDuwD AVr^uwDuwDuwD/usr/sbin/hal.hotplugr^A@{DuwDG DWr^N eDuwD&@BXYZr^A@{DuwDG D[r^WeDuwD&@B\]r^A@{DuwDG D^r^BeDuwD&@B _`abcr^A@{DuwDG Ddr^XeDuwD&@Befr^A@{DuwDG Dgr^^eDuwD&@Bhir^A@{DuwDG Djr^uwDuwDuwD50-visor.hotplugr^A@{DuwDG Dkr^eDuwD&@Blmnopqrsr^A@{DuwDG Dtr^(eDuwD&@Buvr^eDuwDEs^eDuwD D=?s^A@{DuwD D>@s^eDuwD ws^keDuwD ]Dxs^A@{DuwDM Dys^/6eDuwDb@Bzs^A@{DuwDM D{s^A@{DuwDM D|s^FeDuwDb@B}s^ eDuwDb@B~s^CeDuwDb@Bs^GeDuwDb@Bs^FeDuwDb@Bs^A@{DuwDM Ds^eDuwD&As^[eDuwDb@B0s^eDuwDb@B s^eDuwDMB s^eDuwD4n@B s^eDuwD֎s^neDuwD D?s^veDuwD H D@As^eDuwD DBs^eDuwD DCs^ueDuwDz DDs^eDuwDd DEs^A@{DuwDG DFs^eDuwD}?@ABCDEFGHIt^uwDuwDuwDifup-pppt^keDuwDwBOPQRt^eDuwDZQBSTt^ uwDuwDuwDifup-802.1qt^+eDuwDwBUVWXYZ[\]^_t^eDuwD D`t^eDuwDÄwB abcdef t^eDuwD[ Dghijklmn t^eDuwDÄwBo t^_eDuwD D pqrstu t^A@{DuwDf!Dv t^uwDuwDuwD../scripts/dhcpcd-hook-sambat^A@{DuwDXABwt^eDuwDÄwBxt^A@{DuwDXAByt^SeDuwD Dzt^ eDuwD D{|}t^1eDuwD D~t^eDuwD'a Dt^eDuwDG Dt^eDuwD Dt^@eDuwDZ Dt^ eDuwDH Dt^zeDuwD Dt^aeDuwD8GDt^%eDuwDf!Dt^eDuwDG Dt^weDuwD Dt^O eDuwD Dt^(eDuwD D t^eDuwD D!t^eDuwDG D"t^ eDuwDɎ D#t^$eDuwD(H D$t^eDuwDI D%t^ eDuwDI D&t^"eDuwDG D't^eDuwDDD(t^Ap{DuwD"f!D)t^7eDuwDЛt^eDuwD=Ft^?eDuwD_>=Gt^eDuwD h@Ht^%eDuwD_>=It^8eDuwD_>=Jt^9eDuwD_>=Kt^eDuwD[CLt^eDuwDD=Ot^9eDuwD_>=Pt^9eDuwD_>=Qt^0eDuwD_>=Rt^,eDuwD^=Tt^!eDuwDbmt^eDuwD߭t^V eDuwDN)S?t^J eDuwDAt^eDuwD Dt^eDuwD9NAt^eDuwD;,At^eDuwD]u^uwDuwDuwD../dbus?u^uwDuwDuwD../sshd@u^uwDuwDuwD../nscdAu^uwDuwDuwD../cronBu^uwDuwDuwD../fbsetCu^ uwDuwDuwD../powersavedDu^ uwDuwDuwD../randomEu^uwDuwDuwD../mdnsdFu^uwDuwDuwD../running-kernelGu^uwDuwDuwD../earlysyslogHu^ uwDuwDuwD../earlykdmIu^uwDuwDuwD../irq_balancerJu^A@{DuwDG D Ku^ uwDuwDuwD../rebootLu^A@{DuwDG D Mu^uwDuwDuwD../kbdNu^ uwDuwDuwD../singleOu^ uwDuwDuwD../boot.clockPu^+eDuwD5A Qu^eDuwDvB-./0123456Wu^eDuwD79#B7Xu^ eDuwDI9B89:Yu^eDuwD&@B;<=>Zu^eDuwDiD?@[u^ueDuwDiDABC\u^eDuwD}Bu^eDuwDӕBu^eDuwDiDu^eDuwDAu^eDuwD}B/u^keDuwDoB2u^ eDuwDo?u^<deDuwDZBg @ABCDu^eDuwDA/-Eu^eDuwDxH/Fu^/eDuwD8DDGu^A@{DuwDf!DHu^eDuwDABIu^eDuwDf@BJu^eDuwDBKu^eDuwDϛBXYu^weDuwD>B Z[\]^_u^3eDuwD>B `abcdu^eDuwD>B efghiju^eDuwDHM Dku^ eDuwDDBz{|u^CeDuwD=mD}~u^]#eDuwDnv^eDuwD%Ʒ= ?v^A@{DuwDf!D @v^TeDuwD'Ʒ= Av^eDuwD'Ʒ= Bv^A@{DuwDf!D Cv^weDuwD'Ʒ= Dv^eDuwD'Ʒ= Ev^{eDuwD'Ʒ= Fv^DeDuwD'Ʒ= Gv^eDuwD'Ʒ= Hv^eDuwD'Ʒ= Iv^A@{DuwDf!D Jv^eDuwD'Ʒ= Kv^eDuwD'Ʒ= Lv^eDuwD'Ʒ= Mv^A@{DuwDYiD Nv^eDuwD۴B        gv^eDuwD֎ ? @ v^reDuwDy?@ABCDEFGv^eDuwD 2002 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Load custom file ;; ---------------- (setq custom-file "~/.xemacs/custom.el") (load "~/.xemacs/custom.el" t t) ;; ;; More coding systems (UNICODE) ;; ----------------------------- (if (locate-library "un-define") (require 'un-define)) ;; ;; Remember font and more settings ;; ------------------------------- (setq options-save-faces t) ;; ;; Load AucTeX by default ;; ---------------------- (require 'tex-site) (setq-default TeX-master nil) ;; Users private libaries ;(setq TeX-macro-private '("~/lib/tex-lib/")) ;; AUC-TeX-Macros ;(setq TeX-style-private "~/lib/xemacs/site-lisp/auctex/style/") ;; Autom. Auc-TeX-Macros ;(setq TeX-auto-private "~/lib/xemacs/site-lisp/auctex/auto/") ;;; # Sample .profile for SuSE Linux # rewritten by Christian Steinruecken # # This file is read each time a login shell is started. # All other interactive shells will only read .bashrc; this is particularly # important for language settings, see below. test -z "$PROFILEREAD" && . /etc/profile # Most applications support several languages for their output. # To make use of this feature, simply uncomment one of the lines below or # add your own one (see /usr/share/locale/locale.alias for more codes) # #export LANG=de_DE@euro # uncomment this line for German output #export LANG=fr_FR@euro # uncomment this line for French output #export LANG=es_ES@euro # uncomment this line for Spanish output # Some people don't like fortune. If you uncomment the following lines, # you will have a fortune each time you log in ;-) #if [ -x /usr/bin/fortune ] ; then # echo # /usr/bin/fortune # echo #fi /* ######################################################################## SMAC FILE USED BY XCORAL EDITOR File: xcoralrc.lf Path: /home/fournigault/c/X11/xcoral-2.33/SmacLib/xcoralrc.lf Description: Created: Sun Aug 7 14:52:32 MET 1994 Author: Thierry Emery Modified: Fri Feb 17 15:38:00 MET 1995 Last maintained by: Lionel Fournigault RCS $Revision$ $State$ ######################################################################## Note: initialization file for Xcoral ######################################################################## Copyright (c) : Thierry Emery This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ######################################################################## */ /* ------------------------------------------------------------------------- load standard libraries ------------------------------------------------------------------------- */ { /* general SMAC programmer and XCORAL user utilities */ load_file("utilities.sc"); /* C and C++ mode, auto indent, reindent, indent region etc */ load_file("mode.sc" ); /* provide class method and function profile */ load_file("head.sc"); /* extract logical pathname from automount pathname */ load_file("hack-filename.sc"); /* command shell utilities, grep make user interface */ load_file("cmd.sc" ); /* for us frenchies */ load_file("french.sc"); /* SMAC functions writer and/or user help */ load_file("describe.sc"); /* extensions of C and C++ modes */ load_file("mode-ext.sc"); /* mouse customization */ load_file("mouse.sc"); /* C C++ comments facilities */ load_file("comments.sc"); /* file title and custom organization title */ load_file("title.sc"); /* save file utilities */ load_file("save.sc"); /* global set key utilities */ load_file("keydef-ext.sc"); /* word completion */ load_file("complete-word.sc"); /* window-utilities */ load_file("window-utilities.sc"); /* compare two windows */ load_file("compare-win.sc"); /* latex indent */ load_file("latex.sc"); /* color region buffer */ load_file("color.sc"); /* edit directory */ load_file("edir.sc"); /* rcs interface */ load_file("rcs.sc"); /* Version control */ load_file("version.sc"); /* Latex utilities */ load_file("latex-macros.sc"); /* Misc utilities */ load_file("misc-commands.sc"); /* html utilities */ load_file("html.sc"); } /* ------------------------------------------------------------------------- define fonts ------------------------------------------------------------------------- */ { set_mode_font("default", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("C-mode", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("C++mode", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Latex", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Html", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Ada", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Perl", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Fortran", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("shell", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font("Shell", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); set_mode_font ("french", "-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1"); } /* ------------------------------------------------------------------------- define suffixes ------------------------------------------------------------------------- */ { set_mode_suffixes("C++mode",".c .cc .h .sc"); set_mode_suffixes("C-mode",".c .h .sc .xcoralrc"); set_mode_suffixes("Latex",".tex .latex .sty"); set_mode_suffixes("Html",".html"); set_mode_suffixes("Perl",".pl"); set_mode_suffixes("Fortran",".f"); set_mode_suffixes("Ada",".a"); set_mode_suffixes("french",".txt .texte"); } /* ------------------------------------------------------------------------- define modes on which global_key_def operates ------------------------------------------------------------------------- */ { globalize_mode("default"); globalize_mode("C-mode"); globalize_mode("C++mode"); globalize_mode("Latex"); globalize_mode("Html"); globalize_mode("Perl"); globalize_mode("Ada"); globalize_mode("Fortran"); globalize_mode("shell"); globalize_mode("french"); globalize_mode("Shell"); } /* ------------------------------------------------------------------------- define keys ------------------------------------------------------------------------- */ { global_key_def("^xt", "transpose_chars"); global_key_def("^xy", "transpose_forms"); global_key_def("^[\\", "delete_line_blanks"); global_key_def("^[ ", "just_one_blank"); global_key_def("^[k", "delete_to_beginning_of_line"); global_key_def("^xc", "center_line"); global_key_def("^[m", "recenter"); global_key_def("^x#", "sharp_comment"); global_key_def("^x+", "plus_comment"); global_key_def("^x=", "equal_comment"); global_key_def("^x-", "minus_comment"); global_key_def("^x%", "percent_comment"); global_key_def("^xz", "update_title_and_save_file"); global_key_def("^xs", "update_title_backup_and_save_file"); global_key_def("^[/", "complete_word"); global_key_def("^xC", "CompareAgain"); global_key_def("^xg", "go_next"); global_key_def("^xa", "color_buffer"); global_key_def("^xr", "color_region"); global_key_def("^xd", "edir"); key_def("Edir", "^xd", "edir"); key_def("Shell", "^[b", "backward_c_form"); key_def("Shell", "^[f", "forward_c_form"); key_def("Shell", "^[d", "delete_next_c_form"); key_def("Shell", "^[\b", "delete_previous_c_form"); key_def("Shell", "^[\177", "delete_previous_c_form"); /* esc delete */ key_def("Shell", "^x^c", "quit_shell"); } /* -------------------------------------------------------------------------------- French accents in Latex mode. -------------------------------------------------------------------------------- */ { key_def("Latex", "'", "french_accent"); key_def("Latex", "`", "french_accent"); key_def("Latex", "^^", "french_accent"); key_def("Latex", "\"", "french_accent"); } /* -------------------------------------------------------------------------------- User commands: call by Users commands item in Misc Menu. -------------------------------------------------------------------------------- */ user_commands() { /**** char *str; int win = current_window(); clear_list(); add_list_item("User smac function 1"); add_list_item("User smac function 2"); add_list_item("User smac function 3"); str = select_from_list("User commands"); redisplay(); select_window(win); if(str==0 || strlen(str) < 2) { return; } if (strcmp(str,"User smac function 1")==0) { user_smac_function_1(); return; } ... ****/ } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; File name: ` ~/.emacs ' ;;; --------------------- ;;; ;;; If you need your own personal ~/.emacs ;;; please make a copy of this file ;;; an placein your changes and/or extension. ;;; ;;; Copyright (c) 1997-2002 SuSE Gmbh Nuernberg, Germany. ;;; ;;; Author: Werner Fink, 1997,98,99,2002 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Test of Emacs derivates ;;; ----------------------- (if (string-match "XEmacs\\|Lucid" emacs-version) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; XEmacs ;;; ------ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (progn (if (file-readable-p "~/.xemacs/init.el") (load "~/.xemacs/init.el" nil t)) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; GNU-Emacs ;;; --------- ;;; load ~/.gnu-emacs or, if not exists /etc/skel/.gnu-emacs ;;; For a description and the settings see /etc/skel/.gnu-emacs ;;; ... for your private ~/.gnu-emacs your are on your one. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (if (file-readable-p "~/.gnu-emacs") (load "~/.gnu-emacs" nil t) (if (file-readable-p "/etc/skel/.gnu-emacs") (load "/etc/skel/.gnu-emacs" nil t))) ;; Custum Settings ;; =============== ;; To avoid any trouble with the customization system of GNU emacs ;; we set the default file ~/.gnu-emacs-custom (setq custom-file "~/.gnu-emacs-custom") (load "~/.gnu-emacs-custom" t t) ;;; ) ;;;  ...XTALKPATH /usr/X11R6/lib/X11/xtalk ICONPATH /usr/X11R6/lib/X11/xtalk LIBPATH /usr/X11R6/lib/X11/xtalk LANGUAGE ENGLISH % Paper size information. First definition is the default. % % If your default is a4 uncomment the following definition % and comment out the letterSize definition. % @ a4size 210mm 297mm @+ %%PaperSize: a4  . ..scriptsrules.d udev.conf . ..dvb.sh#!/lib/klibc/bin/sh set -e echo $1 | /lib/klibc/bin/sed -e 's#^dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\)#dvb/adapter\1/\2\3#' exit 0  . .. 45-volume_label.rules 50-udev.rules20-cdrom.rules 41-usb.rules# # Links for mount-by-label or -by-uuid # SUBSYSTEM="block", KERNEL="*[0-9]", PROGRAM="/lib/klibc/bin/udev_volume_id -fu %N", SYMLINK="disk/by-uuid/%c" KERNEL="dm-[0-9]*", PROGRAM="/lib/klibc/bin/udev_volume_id -u %N", SYMLINK="disk/by-uuid/%c" SUBSYSTEM="block", KERNEL="*[0-9]", PROGRAM="/lib/klibc/bin/udev_volume_id -fl %N", SYMLINK="disk/by-label/%c" KERNEL="dm-[0-9]*", PROGRAM="/lib/klibc/bin/udev_volume_id -l %N", SYMLINK="disk/by-label/%c" # $Id: udev.rules.SuSE 251 2005-03-10 15:10:57Z hare $ # # There are a number of modifiers that are allowed to be used in some of the # fields. See the udev man page for a full description of them. # # See the udev.rules.examples file for more examples of how to create rules # # external helpers should match /sbin/udev.*.sh # they should only use /lib/klibc/bin/ binaries # BUS="scsi", PROGRAM="/sbin/udev.get_persistent_device_name.sh", NAME="%k" SYMLINK="%c{1+}", MODE="0660", GROUP="disk" BUS="usb", PROGRAM="/sbin/udev.get_persistent_device_name.sh", NAME="%k" SYMLINK="%c{1+}", MODE="0660", GROUP="disk" BUS="ide", PROGRAM="/sbin/udev.get_persistent_device_name.sh", NAME="%k" SYMLINK="%c{1+}", MODE="0660", GROUP="disk" BUS="ccw", PROGRAM="/sbin/udev.get_persistent_device_name.sh", NAME="%k" SYMLINK="%c{1+}", MODE="0660", GROUP="disk" # device mapper targets KERNEL="device-mapper", NAME="%k", SYMLINK="mapper/control" KERNEL="dm-[0-9]*", PROGRAM="/sbin/udev.devmap_name.sh %M %m | /bin/sed 's.--._.;s.-./.;s._.-.'", SYMLINK="%c" KERNEL="dm-[0-9]*", PROGRAM="/sbin/udev.devmap_name.sh %M %m", NAME="mapper/%c", MODE="0660", GROUP="disk" # DRI devices always go into a subdirectory (as per the LSB spec) KERNEL="card*", NAME="dri/card%n", MODE="0660", GROUP="video", OPTIONS="ignore_device" # alsa devices KERNEL="controlC[0-9]*", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" KERNEL="hw[CD0-9]*", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" KERNEL="pcm[CD0-9cp]*", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" KERNEL="midiC[D0-9]*", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" KERNEL="timer", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" KERNEL="seq", NAME="snd/%k", MODE="0660", GROUP="audio", OPTIONS="resmgr" # symlink infrared remote input device #KERNEL="event*", SYSFS_name="*IR*", NAME="input/%k", SYMLINK="input/ir" # would have been nice ... KERNEL="event*", PROGRAM="/sbin/udev.get_input_lirc.sh %k", RESULT="*IR*", NAME="input/%k", SYMLINK="input/ir" KERNEL="lirc0", NAME="%k", SYMLINK="lirc" # misc devices # 183 = /dev/hwrng Generic random number generator KERNEL="hw_random", NAME="hwrng", SYMLINK="%k" # 219 = /dev/modems/mwave MWave modem firmware upload KERNEL="mwave", NAME="modems/%k" # 169 = /dev/specialix_rioctl Specialix RIO serial control KERNEL="rioctl", NAME="specialix_rioctl", SYMLINK="%k" # 167 = /dev/specialix_sxctl Specialix serial control KERNEL="sxctl", NAME="specialix_sxctl", SYMLINK="%k" # input devices KERNEL="mice", NAME="input/%k", MODE="0640" KERNEL="mouse*", NAME="input/%k", MODE="0640" KERNEL="event*", NAME="input/%k", MODE="0640" KERNEL="js*", NAME="input/%k", MODE="0644" KERNEL="ts*", NAME="input/%k", MODE="0600" KERNEL="uinput", NAME="input/%k", MODE="0600" # CAPI devices KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20", MODE="660", GROUP="dialout" KERNEL="capi*", NAME="capi/%n", MODE="660", GROUP="dialout" # cpu devices KERNEL="cpu[0-9]*", NAME="cpu/%n/cpuid" KERNEL="msr[0-9]*", NAME="cpu/%n/msr" KERNEL="microcode", NAME="cpu/microcode", MODE="0600" # Network devices KERNEL="tun", NAME="net/%k", MODE="0600" # raw devices KERNEL="raw[0-9]*", NAME="raw/%k", MODE="0660", GROUP="disk" KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c", MODE="0660", GROUP="video" # IEEE1394 devices KERNEL="raw1394*", NAME="%k", MODE="660", OPTIONS="resmgr" KERNEL="video1394*", SYMLINK="video1394/%n", NAME="%k", MODE="660", OPTIONS="resmgr" # Devices which need special permissions only KERNEL="mem", NAME="%k", GROUP="kmem", MODE="640" KERNEL="kmem", NAME="%k", GROUP="kmem", MODE="640" KERNEL="null", NAME="%k", MODE="666" KERNEL="port", NAME="%k", GROUP="kmem", MODE="660" KERNEL="zero", NAME="%k", MODE="666" KERNEL="full", NAME="%k", MODE="622" KERNEL="random", NAME="%k", MODE="666" KERNEL="urandom", NAME="%k", MODE="644" KERNEL="ram*", NAME="%k", GROUP="disk", MODE="660", OPTIONS="ignore_scripts" KERNEL="initrd", NAME="%k", GROUP="disk", MODE="660" KERNEL="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", MODE="666", OPTIONS="ignore_scripts" KERNEL="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", MODE="666", OPTIONS="ignore_scripts" KERNEL="fd*", NAME="%k", GROUP="disk", MODE="660", OPTIONS="resmgr" KERNEL="tty", NAME="%k", GROUP="tty", MODE="666", OPTIONS="ignore_scripts" KERNEL="tty[0-9]", NAME="%k", GROUP="tty", MODE="620", OPTIONS="ignore_scripts" KERNEL="tty[0-9][0-9]", NAME="%k", GROUP="tty", MODE="620", OPTIONS="ignore_scripts" KERNEL="ttyS*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="console", NAME="%k", MODE="600" KERNEL="ptmx", NAME="%k", GROUP="tty", MODE="666" KERNEL="cua*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="lp*", NAME="%k", GROUP="lp", MODE="660" KERNEL="vcs*", NAME="%k", GROUP="tty", MODE="620", OPTIONS="ignore_scripts" KERNEL="vcsa*", NAME="%k", GROUP="tty", MODE="620", OPTIONS="ignore_scripts" KERNEL="loop*", NAME="%k", GROUP="disk", MODE="660" KERNEL="st*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="st*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="st*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="st*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="md*", NAME="%k", GROUP="disk", MODE="660" KERNEL="logibm*", NAME="%k", MODE="660" KERNEL="psaux", NAME="%k", MODE="660" KERNEL="inportbm*", NAME="%k", MODE="660" KERNEL="atibm*", NAME="%k", MODE="660" KERNEL="jbm*", NAME="%k", MODE="660" KERNEL="amigamouse*", NAME="%k", MODE="660" KERNEL="atarimouse*", NAME="%k", MODE="660" KERNEL="sunmouse*", NAME="%k", MODE="660" KERNEL="amigamouse1*", NAME="%k", MODE="660" KERNEL="smouse*", NAME="%k", MODE="660" KERNEL="pc110pad*", NAME="%k", MODE="660" KERNEL="adbmouse*", NAME="%k", MODE="660" KERNEL="vrtpanel*", NAME="%k", MODE="660" KERNEL="vpcmouse*", NAME="%k", MODE="660" KERNEL="beep*", NAME="%k", MODE="600" KERNEL="modreq*", NAME="%k", MODE="600" KERNEL="watchdog*", NAME="%k", MODE="600" KERNEL="temperature*", NAME="%k", MODE="600" KERNEL="hwtrap*", NAME="%k", MODE="600" KERNEL="exttrp*", NAME="%k", MODE="600" KERNEL="apm_bios", NAME="%k", MODE="600" KERNEL="rtc", NAME="%k", MODE="600" KERNEL="efirtc*", NAME="%k", MODE="600" KERNEL="qcam0*", NAME="%k", MODE="600" KERNEL="qcam1*", NAME="%k", MODE="600" KERNEL="qcam2*", NAME="%k", MODE="600" KERNEL="openprom*", NAME="%k", MODE="600" KERNEL="relay8*", NAME="%k", MODE="600" KERNEL="relay16*", NAME="%k", MODE="600" KERNEL="msr*", NAME="%k", MODE="600" KERNEL="pciconf*", NAME="%k", MODE="600" KERNEL="nvram", NAME="%k", MODE="600" KERNEL="hfmodem*", NAME="%k", MODE="600" KERNEL="graphics*", NAME="%k", MODE="600" KERNEL="opengl*", NAME="%k", MODE="600" KERNEL="gfx*", NAME="%k", MODE="600" KERNEL="led*", NAME="%k", MODE="600" KERNEL="mergemem*", NAME="%k", MODE="600" KERNEL="pmu*", NAME="%k", MODE="600" KERNEL="isictl*", NAME="%k", MODE="600" KERNEL="ac*", NAME="%k", MODE="600" KERNEL="nwbutton*", NAME="%k", MODE="600" KERNEL="nwdebug*", NAME="%k", MODE="600" KERNEL="nwflash*", NAME="%k", MODE="600" KERNEL="userdma*", NAME="%k", MODE="600" KERNEL="smbus*", NAME="%k", MODE="600" KERNEL="lik*", NAME="%k", MODE="600" KERNEL="ipmo*", NAME="%k", MODE="600" KERNEL="vmmon*", NAME="%k", MODE="600" KERNEL="i2o/ctl*", NAME="%k", MODE="600" KERNEL="specialix_sxctl*", NAME="%k", MODE="600" KERNEL="tcldrv*", NAME="%k", MODE="600" KERNEL="specialix_rioctl*", NAME="%k", MODE="600" KERNEL="smapi*", NAME="%k", MODE="600" KERNEL="srripc*", NAME="%k", MODE="600" KERNEL="usemaclone*", NAME="%k", MODE="600" KERNEL="ipmikcs*", NAME="%k", MODE="600" KERNEL="uctrl*", NAME="%k", MODE="600" KERNEL="agpgart*", NAME="%k", MODE="600" KERNEL="gtrsc*", NAME="%k", MODE="600" KERNEL="cbm*", NAME="%k", MODE="600" KERNEL="jsflash*", NAME="%k", MODE="600" KERNEL="xsvc*", NAME="%k", MODE="600" KERNEL="vrbuttons*", NAME="%k", MODE="600" KERNEL="toshiba*", NAME="%k", MODE="600", OPTIONS="resmgr" KERNEL="perfctr*", NAME="%k", MODE="600" KERNEL="intel_rng*", NAME="%k", MODE="600" KERNEL="atomicps*", NAME="%k", MODE="600" KERNEL="irnet*", NAME="%k", MODE="600" KERNEL="smbusbios*", NAME="%k", MODE="600" KERNEL="ussp_ctl*", NAME="%k", MODE="600" KERNEL="crash*", NAME="%k", MODE="600" KERNEL="pcl181*", NAME="%k", MODE="600" KERNEL="nas_xbus*", NAME="%k", MODE="600" KERNEL="d7s*", NAME="%k", MODE="600" KERNEL="zkshim*", NAME="%k", MODE="600" KERNEL="sheep_net*", NAME="%k", MODE="644" KERNEL="scanners/cuecat*", NAME="%k", MODE="600" KERNEL="button/gulpb*", NAME="%k", MODE="600" KERNEL="compaq/cpqphpc*", NAME="%k", MODE="600" KERNEL="compaq/cpqrid*", NAME="%k", MODE="600" KERNEL="impi/bt*", NAME="%k", MODE="600" KERNEL="impi/smic*", NAME="%k", MODE="600" KERNEL="watchdogs/0*", NAME="%k", MODE="600" KERNEL="watchdogs/1*", NAME="%k", MODE="600" KERNEL="watchdogs/2*", NAME="%k", MODE="600" KERNEL="watchdogs/3*", NAME="%k", MODE="600" KERNEL="fujitsu/apanel*", NAME="%k", MODE="600" KERNEL="ni/natmotn*", NAME="%k", MODE="600" KERNEL="kchuid*", NAME="%k", MODE="600" KERNEL="modems/mwave*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="mptctl*", NAME="%k", MODE="600" KERNEL="mvista/hssdsi*", NAME="%k", MODE="600" KERNEL="mvista/hasi*", NAME="%k", MODE="600" KERNEL="agpgarti810*", NAME="%k", MODE="600" KERNEL="sonypi*", NAME="%k", MODE="600", OPTIONS="resmgr" KERNEL="kbd*", NAME="%k", MODE="600" KERNEL="sr*", NAME="%k", GROUP="disk", MODE="640" KERNEL="scd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="ntpqic11*", NAME="%k", MODE="600" KERNEL="tpqic11*", NAME="%k", MODE="600" KERNEL="ntpqic24*", NAME="%k", MODE="600" KERNEL="tpqic24*", NAME="%k", MODE="600" KERNEL="ntpqic120*", NAME="%k", MODE="600" KERNEL="tpqic120*", NAME="%k", MODE="600" KERNEL="ntpqic150*", NAME="%k", MODE="600" KERNEL="tpqic150*", NAME="%k", MODE="600" KERNEL="dos_cd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="usbmouse*", NAME="%k", MODE="660" KERNEL="xda*", NAME="%k", MODE="600" KERNEL="xdb*", NAME="%k", MODE="600" KERNEL="mixer*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="sequencer", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="sequencer2", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="music", NAME="%k", GROUP="audio", MODE="660" KERNEL="dsp", NAME="%k", GROUP="audio", MODE="666", OPTIONS="resmgr" KERNEL="dsp*", NAME="%k", GROUP="audio", MODE="666", OPTIONS="resmgr" KERNEL="audio*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="dmmidi*", NAME="%k", GROUP="audio", MODE="660" KERNEL="dmfm*", NAME="%k", GROUP="audio", MODE="660" KERNEL="adsp*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="amidi*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="admmidi*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="patmgr*", NAME="%k", GROUP="audio", MODE="660" KERNEL="dos_hda*", NAME="%k", GROUP="disk", MODE="660" KERNEL="dos_hdb*", NAME="%k", GROUP="disk", MODE="660" KERNEL="dos_hdc*", NAME="%k", GROUP="disk", MODE="660" KERNEL="dos_hdd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="js*", NAME="%k", MODE="644" KERNEL="djs*", NAME="%k", MODE="644" KERNEL="js*", NAME="%k", MODE="644" KERNEL="djs*", NAME="%k", MODE="644" KERNEL="sonycd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="gs4500*", NAME="%k", MODE="600" KERNEL="gscd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="gscd0*", NAME="%k", GROUP="disk", MODE="640" KERNEL="ttyH*", NAME="%k", MODE="666" KERNEL="optcd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="optcd0*", NAME="%k", GROUP="disk", MODE="640" KERNEL="cuh*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="sjcd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="ttyC*", NAME="%k", MODE="666" KERNEL="double*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cdouble*", NAME="%k", GROUP="disk", MODE="660" KERNEL="double*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cdouble*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cub*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="mcdx*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sgi_*", NAME="%k", MODE="666" KERNEL="sg*", NAME="%k", GROUP="disk", M !ODE="640" KERNEL="ttyD*", NAME="%k", MODE="666" KERNEL="cud*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="mcd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="ttyE*", NAME="%k", MODE="666" KERNEL="cdu535*", NAME="%k", GROUP="disk", MODE="640" KERNEL="cue*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="sbpcd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd0*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd1*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd2*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd3*", NAME="%k", GROUP="disk", MODE="640" KERNEL="wvisfgrab*", NAME="%k", MODE="600" KERNEL="sbpcd4*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd5*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd6*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd7*", NAME="%k", GROUP="disk", MODE="640" KERNEL="qft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nqft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="zqft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nzqft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="rawqft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nrawqft*", NAME="%k", GROUP="disk", MODE="660" KERNEL="sbpcd8*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd9*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd10*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd11*", NAME="%k", GROUP="disk", MODE="640" KERNEL="staliomem*", NAME="%k", MODE="660" KERNEL="sbpcd12*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd13*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd14*", NAME="%k", GROUP="disk", MODE="640" KERNEL="sbpcd15*", NAME="%k", GROUP="disk", MODE="640" KERNEL="fb*", NAME="%k", GROUP="video", MODE="660" KERNEL="aztcd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="aztcd0*", NAME="%k", GROUP="disk", MODE="640" KERNEL="socksys*", NAME="%k", MODE="660" KERNEL="spx*", NAME="%k", MODE="660" KERNEL="inet/ip*", NAME="%k", MODE="660" KERNEL="inet/icmp*", NAME="%k", MODE="660" KERNEL="inet/ggp*", NAME="%k", MODE="660" KERNEL="inet/ipip*", NAME="%k", MODE="660" KERNEL="inet/tcp*", NAME="%k", MODE="660" KERNEL="inet/egp*", NAME="%k", MODE="660" KERNEL="inet/pup*", NAME="%k", MODE="660" KERNEL="inet/udp*", NAME="%k", MODE="660" KERNEL="inet/idp*", NAME="%k", MODE="660" KERNEL="inet/rawip*", NAME="%k", MODE="660" KERNEL="inet/arp*", NAME="%k", MODE="660" KERNEL="inet/rip*", NAME="%k", MODE="660" KERNEL="ip*", NAME="%k", MODE="660" KERNEL="icmp*", NAME="%k", MODE="660" KERNEL="ggp*", NAME="%k", MODE="660" KERNEL="ipip*", NAME="%k", MODE="660" KERNEL="tcp*", NAME="%k", MODE="660" KERNEL="egp*", NAME="%k", MODE="660" KERNEL="pup*", NAME="%k", MODE="660" KERNEL="udp*", NAME="%k", MODE="660" KERNEL="idp*", NAME="%k", MODE="660" KERNEL="rawip*", NAME="%k", MODE="660" KERNEL="arp*", NAME="%k", MODE="660" KERNEL="rip*", NAME="%k", MODE="660" KERNEL="cm205cd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="lmscd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="mpu401data*", NAME="%k", GROUP="audio", MODE="666" KERNEL="mpu401stat*", NAME="%k", GROUP="audio", MODE="666" KERNEL="rom*", NAME="%k", MODE="600" KERNEL="rrom*", NAME="%k", MODE="400" KERNEL="flash*", NAME="%k", MODE="600" KERNEL="rflash*", NAME="%k", MODE="400" KERNEL="ttyX*", NAME="%k", MODE="666" KERNEL="cm206cd*", NAME="%k", GROUP="disk", MODE="640" KERNEL="cux*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="midi*", NAME="%k", GROUP="audio", MODE="666", OPTIONS="resmgr" KERNEL="rmidi*", NAME="%k", GROUP="audio", MODE="666", OPTIONS="resmgr" KERNEL="smpte*", NAME="%k", GROUP="audio", MODE="666" KERNEL="slram*", NAME="%k", MODE="660" KERNEL="route*", NAME="%k", MODE="600" KERNEL="skip*", NAME="%k", MODE="600" KERNEL="tap0*", NAME="%k", MODE="600" KERNEL="tap1*", NAME="%k", MODE="600" KERNEL="tap2*", NAME="%k", MODE="600" KERNEL="eda*", NAME="%k", MODE="600" KERNEL="edb*", NAME="%k", MODE="600" KERNEL="ht0*", NAME="%k", MODE="600" KERNEL="nht0*", NAME="%k", MODE="600" KERNEL="z2ram*", NAME="%k", MODE="600" KERNEL="mlanai*", NAME="%k", MODE="600" KERNEL="mmetfgrab*", NAME="%k", MODE="600" KERNEL="yamm*", NAME="%k", MODE="600" KERNEL="ttyI*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="nb*", NAME="%k", MODE="660" KERNEL="cui*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="pda*", NAME="%k", GROUP="disk", MODE="660" KERNEL="pdb*", NAME="%k", GROUP="disk", MODE="660" KERNEL="pdc*", NAME="%k", GROUP="disk", MODE="660" KERNEL="pdd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="isdn*", NAME="%k", MODE="600" KERNEL="isdnctrl*", NAME="%k", MODE="600" KERNEL="ippp*", NAME="%k", MODE="600" KERNEL="isdn*", NAME="%k", MODE="600" KERNEL="isdnctrl*", NAME="%k", MODE="600" KERNEL="ippp*", NAME="%k", MODE="600" KERNEL="isdninfo*", NAME="%k", MODE="444" KERNEL="pcd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="ttyR*", NAME="%k", MODE="666" KERNEL="pf*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cur*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="ttyL*", NAME="%k", MODE="666" KERNEL="cul*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="dsp56k*", NAME="%k", MODE="660" KERNEL="adb*", NAME="%k", MODE="660" KERNEL="firewall*", NAME="%k", MODE="600" KERNEL="enskip*", NAME="%k", MODE="600" KERNEL="ttyW*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="cuw*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="i2o/hda*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdb*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdc*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hde*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdf*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdg*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdh*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdi*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdj*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdk*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdl*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdm*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdn*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdo*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2o/hdp*", NAME="%k", GROUP="disk", MODE="660" KERNEL="video*", NAME="%k", GROUP="video", MODE="660", OPTIONS="resmgr" KERNEL="radio*", NAME="%k", GROUP="audio", MODE="660" KERNEL="vtx*", NAME="%k", GROUP="video", MODE="660", OPTIONS="resmgr" KERNEL="vbi*", NAME="%k", GROUP="video", MODE="660", OPTIONS="resmgr" KERNEL="winradio*", NAME="%k", GROUP="video", MODE="660" KERNEL="vttuner*", NAME="%k", GROUP="video", MODE="660" KERNEL="sch*", NAME="%k", GROUP="disk", MODE="660" KERNEL="i2c-*", NAME="%k", MODE="660" KERNEL="ipl*", NAME="%k", MODE="600" KERNEL="ipnat*", NAME="%k", MODE="600" KERNEL="ipstate*", NAME="%k", MODE="600" KERNEL="ipauth*", NAME="%k", MODE="600" KERNEL="pt*", NAME="%k", GROUP="disk", MODE="660" KERNEL="npt*", NAME="%k", GROUP="disk", MODE="660" KERNEL="pg*", NAME="%k", GROUP="disk", MODE="660" KERNEL="parport*", NAME="%k", MODE="660" KERNEL="phone*", NAME="%k", GROUP="audio", MODE="660" KERNEL="cbd/a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cbd/b*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cbd/c*", NAME="%k", GROUP="disk", MODE="660" KERNEL="cbd/d*", NAME="%k", GROUP="disk", MODE="660" KERNEL="3dfx*", NAME="%k", GROUP="video", MODE="660" KERNEL="cpcmd*", NAME="%k", MODE="660" KERNEL="ppp*", NAME="%k", MODE="660" KERNEL="iseries/vcd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="aloadC*", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="aloadSEQ", NAME="%k", GROUP="audio", MODE="660", OPTIONS="resmgr" KERNEL="evms/block_device*", NAME="%k", GROUP="disk", MODE="660" KERNEL="pppox*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="dpti*", NAME="%k", MODE="600" KERNEL="ircomm*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="irlpt*", NAME="%k", GROUP="lp", MODE="660" KERNEL="rawctl*", NAME="%k", GROUP="disk", MODE="660" KERNEL="ttyACM*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="usblp*", NAME="%k", GROUP="lp", MODE="660" KERNEL="usbscanner*", NAME="%k", MODE="644", OPTIONS="resmgr" KERNEL="usb/mouse*", NAME="%k", MODE="660" KERNEL="usb/ez*", NAME="%k", MODE="660" KERNEL="usb/scanner*", NAME="%k", MODE="660", OPTIONS="resmgr" KERNEL="usb/dc2xx*", NAME="%k", MODE="660" KERNEL="ttyUSB*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="usb/ttyUSB*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="mvideo/status0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/stream0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/frame0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/rawframe0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/codec0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/video4linux0*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/status1*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/stream1*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/frame1*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/rawframe1*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/codec1*", NAME="%k", GROUP="video", MODE="660" KERNEL="mvideo/video4linux1*", NAME="%k", GROUP="video", MODE="660" KERNEL="nvidia*", NAME="%k", GROUP="video", MODE="660" KERNEL="nvidia0*", NAME="%k", GROUP="video", MODE="660" KERNEL="nvidiactl*", NAME="%k", GROUP="video", MODE="660" KERNEL="osst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst0l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst1l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst2l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst3l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst0m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst1m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst2m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst3m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst0a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst1a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst2a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="osst3a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst0l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst1l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst2l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst3l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst0m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst1m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst2m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst3m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst0a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst1a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst2a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="nosst3a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="ttySL0*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="ttyUB*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="cuub*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="3270/ttycons*", NAME="%k", MODE="600" KERNEL="3270/tub*", NAME="%k", MODE="666" KERNEL="3270/tubcons*", NAME="%k", MODE="600" KERNEL="iseries/vtty*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="hvc*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="hvsi*", NAME="%k", GROUP="uucp", MODE="660" KERNEL="iseries/vd*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt0*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt1*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt2*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt3*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt4*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt5*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt6*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt7*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt8*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt9*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt10*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt11*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt12*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt0l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt1l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt0m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt1m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt0a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/vt1a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt0*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt1*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt0l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt1l*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt0m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt1m*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt0a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/nvt1a*", NAME="%k", GROUP="disk", MODE="660" KERNEL="iseries/ibmsis*", NAME="%k", GROUP="disk", MODE="660" KERNEL="ica", NAME="%k", MODE="666" KERNEL="z90crypt", NAME="%k", MODE="666" KERNEL="mmtimer", NAME="%k", MODE="444" # eveything that did not match yet will get the kernel name. # cdrom links generated by YaST2 # BUS="ide", ID="0.0", SYSFS{removable}="1", SYMLINK="dvd cdrom" # # Rules for USB devices. Please note that USB-storage devices # are handled separately by the main ruleset. # BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k", MODE="660", GROUP="lp" BUS="usb", KERNEL="mdc800", NAME="usb/%k" BUS="usb", KERNEL="rio500", NAME="usb/%k", MODE="660" BUS="usb", KERNEL="usblcd", NAME="usb/%k" BUS="usb", KERNEL="idmouse", NAME="usb/%k" BUS="usb", KERNEL="lcd", NAME="usb/%k", MODE="600" BUS="usb", KERNEL="auer[0-9]*", NAME="usb/%k", MODE="666" BUS="usb", KERNEL="hiddev[0-9]*", NAME="usb/%k", MODE="660" BUS="usb", KERNEL="brlvgr[0-9]*", NAME="usb/%k" BUS="usb", KERNEL="legousbtower[0-9]*", NAME="usb/%k" BUS="usb", KERNEL="dabusb[0-9]*", NAME="usb/%k", MODE="660" # http://www.personal.uni-jena.de/~p1stja/linux/cpad.html BUS="usb", KERNEL="cpad[0-9]*", NAME="usb/%k" # udev.conf # The main config file for udev # # This file can be used to override some of udev's default values # for where it looks for files, and where it places device nodes. # udev_root - where in the filesystem to place the device nodes udev_root="/dev" # udev_db - The name and location of the udev database. udev_db="/dev/.udevdb" # udev_rules - The name and location of the udev rules file udev_rules="/etc/udev/rules.d" # udev_log - set to "yes" if you want logging, else "no" udev_log="no" # udev_perms - The name and location of the permissions device udev_devperms="/dev/devperms"  . ..sar Welcome to SuSE Linux 9.3 (x86-64) - Kernel %r (%t).  . .. nsspasswduseradd# /etc/default/nss # This file can theoretically contain a bunch of customization variables # for Name Service Switch in the GNU C library. For now there are only two # variables: # # NETID_AUTHORITATIVE # If set to TRUE, the initgroups() function will accept the information # from the netid.byname NIS map as authoritative. This can speed up the # function significantly if the group.byname map is large. The content # of the netid.byname map is used AS IS. The system administrator has # to make sure it is correctly generated. #NETID_AUTHORITATIVE=TRUE # # SERVICES_AUTHORITATIVE # If set to TRUE, the getservbyname{,_r}() function will assume # services.byservicename NIS map exists and is authoritative, particularly # that it contains both keys with /proto and without /proto for both # primary service names and service aliases. The system administrator # has to make sure it is correctly generated. #SERVICES_AUTHORITATIVE=TRUE # This file contains some information for # the passwd (1) command and other tools # creating or modifying passwords. # Define default crypt hash # CRYPT={des,md5,blowfish} CRYPT=des # Use another crypt hash for group passwowrds. # This is used by gpasswd, fallback is the CRYPT entry. # GROUP_CRYPT=des # We can override the default for a special service # by appending the service name (FILES, YP, NISPLUS, LDAP) # for local files, use a more secure hash. We # don't need to be portable here: CRYPT_FILES=blowfish # sometimes we need to specify special options for # a hash (variable is prepended by the name of the # crypt hash). BLOWFISH_CRYPT_FILES=10 # For NIS, we should always use DES: CRYPT_YP=des GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel GROUPS=video,dialout # # ftpusers This file describes the names of the users that may # _*NOT*_ log into the system via the FTP server. # This usually includes "root", "uucp", "news" and the # like, because those users have too much power to be # allowed to do "just" FTP... # adabas amanda at bin cyrus daemon dbmaker db2fenc1 db2inst1 db2as db4web dpbox empress fax firewall fnet games gdm gnats irc informix ingres ixess lnx lp mail man mdom mysql named news nobody nps oracle perforce pop postfix postgres root sapdb skyrix squid uucp virtuoso vscan wnn wwwrun yard zope # End. # # This file contains the device names of tty lines (one per line, # without leading /dev/) on which root is allowed to login. # tty1 tty2 tty3 tty4 tty5 tty6 # for devfs: vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 # Please see /usr/share/doc/packages/net-snmp/EXAMPLE.conf for a # more complete example and snmpd.conf(5). # # Writing is disabled by default for security reasons. If you'd like # to enable it uncomment the rwcommunity line and change the community # name to something nominally secure (keeping in mind that this is # transmitted in clear text). # don't use ' < > in strings for syslocation or syscontact # Note that if you define the following here you won't be able to change # them with snmpset syslocation Server Room syscontact Sysadmin (root@localhost) # These really aren't meant for production use. They include all MIBS # and can use considerable resources. See snmpd.conf(5) for information # on setting up groups and limiting MIBS. #rocommunity public 127.0.0.1 # rwcommunity mysecret 127.0.0.1 com2sec readonly 127.0.0.1 compass ypserver dc.sar.informatik.hu-berlin.de root:$2a$05$fBrdNkYkZ/DLzkT6rr0Y/.8fJuYTZmqAwkgEXVt6L9C/xTWSioUKm:13213:0:10000:::: bin:*:8902:0:10000:::: daemon:*:8902:0:10000:::: lp:*:8902:0:10000:::: mail:*:8902:0:10000:::: news:*:8902:0:10000:::: uucp:*:8902:0:10000:::: games:*:8902:0:10000:::: man:*:8902:0:10000:::: wwwrun:*:8902:0:10000:::: ftp:*:8902:0:10000:::: nobody:*:8902:0:10000:::: at:!:13213:0:99999:7::: messagebus:!:13213:0:99999:7::: postfix:!:13213:0:99999:7::: sshd:!:13213:0:99999:7::: haldaemon:!:13213:0:99999:7:::  . .. ccw net pci tty usb scsi_host scsidefaultblockfirmwareieee1394 scsi_devicettyUSB0ttyUSB1 input_deviceccwgroup . ..50-ccw.hotplug#!/bin/bash # $Id: ccw.agent 269 2004-08-16 13:07:06Z hare $ # vim: syntax=sh # # CCW hotplug policy agent for Linux 2.6 kernels # # Kernel CCW hotplug params include: # # ACTION=%s [register or unregister] # CU_TYPE=%04x [CU type of the device] # CU_MODEL=%02x [CU model of the device] # DEV_TYPE=%04x [Devtype of the device] # DEV_MODEL=%02x [Devmodel of the device] # DEVPATH=%s [sysfs-path of the device] # # set -x SYSFS=needed cd /etc/hotplug . hotplug.functions CHAN_ID=${DEVPATH##*/} case $ACTION in register|add) mesg "Configuring channel $CHAN_ID for event 'ccw'" hwup ccw-devpath-${SYSFS}${DEVPATH} -o hotplug fast ;; unregister|remove) # Nothing to be done here ... exit 0 ;; *) debug_mesg CCW $ACTION event not supported exit 1 ;; esac  . ..50-ifup.hotplug#!/bin/bash # $Id: 50-ifup.dev 301 2004-12-04 12:56:34Z zoz $ # # Network hotplug policy agent for Linux 2.6 kernels # # Kernel NET hotplug params include: # # ACTION=%s [add or remove] # INTERFACE=%s # # Protect against renaming if [ -n "$DEVNAME" -a "$INTERFACE" != "$DEVNAME" ]; then INTERFACE=$DEVNAME export INTERFACE fi : ${INTERFACE?Bad invocation: \$INTERFACE is not set} SYSFS=needed cd /etc/hotplug . ./hotplug.functions case $ACTION in add|register) case $INTERFACE in # interfaces that are registered after being "up" (?) modem*|dsl*|ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*|wifi*) debug_mesg Event for $INTERFACE will be ignored exit 0 ;; # interfaces that are registered then brought up *) # There are some NICs which set their MAC address when loading # their firmware and unfortunately load the firmware not until # they are brought up. Therefore we set them up and down. if [ -f $SYSFS/class/net/$INTERFACE/address ]; then macadd=`sed "s/[:0]//g" $SYSFS/class/net/$INTERFACE/address` if [ -z "$macadd" ] ; then ip link set up dev $INTERFACE ip link set down dev $INTERFACE debug_mesg "MAC address after ip up/down: " \ `cat $SYSFS/class/net/$INTERFACE/address` fi fi debug_mesg invoke ifup $INTERFACE -o hotplug exec /sbin/ifup $INTERFACE -o hotplug ;; esac ;; remove|unregister) case $INTERFACE in # interfaces that are registered after being "up" (?) modem*|dsl*|ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*|wifi*) debug_mesg Event for $INTERFACE will be ignored exit 0 ;; # interfaces that are registered then brought up *) debug_mesg invoke ifdown $INTERFACE -o hotplug exec /sbin/ifdown $INTERFACE -o hotplug ;; esac ;; *) debug_mesg NET $ACTION event not supported exit 1 ;; esac  . ..50-pci.hotplug#!/bin/bash # $Id: pci.agent 313 2005-01-21 15:56:39Z hare $ # # PCI and CardBus hotplug policy agent. # # Kernel Cardbus/PCI params are: # # ACTION=%s [add or remove] # DEVPATH=%s [device path in sysfs] # PCI_CLASS=%04X # PCI_ID=%04X:%04X # PCI_SLOT_NAME=%s # PCI_SUBSYS_ID=%04X:%04X # # If /proc is mounted, /proc/bus/pci/$PCI_SLOT_NAME is almost the name # of the binary device descriptor file ... just change ':' to '/'. : ${ACTION?Bad invocation: \$ACTION is not set} : ${DEVPATH?Bad invocation: \$DEVPATH is not set} : ${PCI_CLASS?Bad invocation: \$PCI_CLASS is not set} : ${PCI_ID?Bad invocation: \$PCI_ID is not set} : ${PCI_SLOT_NAME?Bad invocation: \$PCI_SLOT_NAME is not set} : ${PCI_SUBSYS_ID?Bad invocation: \$PCI_SUBSYS_ID is not set} cd /etc/hotplug . ./hotplug.functions # generated by modutils, for kernels 2.4.x and newer MAP_CURRENT=$MODULE_DIR/modules.pcimap # used for kernel drivers that don't show up in MAP_CURRENT # or to overwrite default from MAP_CURRENT MAP_HANDMAP=$HOTPLUG_DIR/pci.handmap LOCKFILE=/var/run/hotplug/pci.net.lock.$PCI_SLOT_NAME if [ -e /sbin/hwscanqueue ]; then HWSCAN=/sbin/hwscanqueue elif [ -e /usr/sbin/hwscanqueue ]; then HWSCAN=/usr/sbin/hwscanqueue fi queue_nic_events() { # return immediately if device is not a NIC (pci class '02' test $((0x$PCI_CLASS & 0xf0000)) -eq $((0x20000)) || return 0 touch $LOCKFILE debug_mesg "touching $LOCKFILE" if [ "$HOTPLUG_PCI_QUEUE_NIC_EVENTS" = wait ]; then trap 'sleep 2; debug_mesg "removing $LOCKFILE"; rm -f $LOCKFILE' EXIT sleep 1 else trap 'debug_mesg "removing $LOCKFILE"; rm -f $LOCKFILE' EXIT fi WAIT_MAX=10 # in case of an error while [ $((WAIT_MAX--)) -gt 0 ] ; do LF=`ls -tr /var/run/hotplug/pci.net.lock.* | sed -n 1p` debug_mesg "checking lock $LF" test "$LF" = "$LOCKFILE" && break sleep 1 done } filter_drivers() { test $# = 0 && return 0 # debug_mesg "drivertype white/black-list filter: $*" # debug_mesg "HPDTW:$HOTPLUG_PCI_DRIVERTYPE_WHITELIST" # debug_mesg "HPDTB:$HOTPLUG_PCI_DRIVERTYPE_BLACKLIST" if [ -z "$HOTPLUG_PCI_DRIVERTYPE_WHITELIST" \ -a -z "$HOTPLUG_PCI_DRIVERTYPE_BLACKLIST" ] ; then echo $* return 0 fi local P DP YES while [ $# -gt 0 ] ; do YES= DP=`sed -n "s=^.*/kernel/drivers\(.*\)/$1.ko:.*$=\1=p;T;q" \ $MODULE_DIR/modules.dep` test -z "$DP" && YES=yes debug_mesg "Driver: $1 DriverPath: ${DP#/}" for P in ${HOTPLUG_PCI_DRIVERTYPE_WHITELIST:-\*}; do case "$DP" in /$P*) YES=yes ;; esac done for P in $HOTPLUG_PCI_DRIVERTYPE_BLACKLIST; do case "$DP" in /$P*) YES=no ;; esac done # debug_mesg "`printf "%-8s %-10s %s\n" "$YES" "$1" "$DP"`" if [ "$YES" = yes ] ; then echo $1 elif [ "$YES" = no ] ; then debug_mesg "drivertype of driver '$1' is listed in" \ "HOTPLUG_PCI_DRIVERTYPE_BLACKLIST" else debug_mesg "drivertype of driver '$1' is not listed in" \ "HOTPLUG_PCI_DRIVERTYPE_WHITELIST" fi shift done } pci_check_class() { local OK=no USE SKIP TAIL PCICLASS HOTPLUG_PCI_CLASSES_WHITELIST=$(echo ${HOTPLUG_PCI_CLASSES_WHITELIST} | tr [:lower:] [:upper:]) HOTPLUG_PCI_CLASSES_BLACKLIST=$(echo ${HOTPLUG_PCI_CLASSES_BLACKLIST} | tr [:lower:] [:upper:]) PCICLASS=$(echo ${PCI_CLASS}|tr [:lower:] [:upper:]) test ${#PCICLASS} -le 5 && PCICLASS="0${PCICLASS}" for USE in $HOTPLUG_PCI_CLASSES_WHITELIST; do TAIL=${PCICLASS##$USE} if [ ${#TAIL} -le 4 ] ; then OK=yes fi done if [ "$OK" = no -a -n "$HOTPLUG_PCI_CLASSES_WHITELIST" ] ; then debug_mesg "skipped `lspci -s ${PCI_SLOT_NAME/0000:/}`" \ "(not in the WHITELIST)" return 1 fi # Skip some classes for SKIP in $HOTPLUG_PCI_CLASSES_BLACKLIST; do # The numbers in HOTPLUG_PCI_CLASSES_BLACKLIST must not specify # prog-if. Therfore check if at least the first four digits match. TAIL=${PCICLASS##$SKIP} # debug_mesg $PCICLASS $SKIP $TAIL if [ ${#TAIL} -le 4 ] ; then debug_mesg "skipped `lspci -s ${PCI_SLOT_NAME/0000:/}`" \ "(is in the BLACKLIST)" return 1 fi done return 0 } # # Each modules.pcimap format line corresponds to one entry in a # MODULE_DEVICE_TABLE(pci,...) declaration in a kernel file. # # Think of it as a database column with up to three "match specs" # to associate kernel modules with particular devices or classes # of device. The match specs provide a reasonably good filtering # mechanism, but some driver probe() routines need to provide # extra filtering. # # inputs to the match algorithm, from kernel by way of /sbin/hotplug declare -i pci_class declare -i pci_id_vendor pci_id_device declare -i pci_subid_vendor pci_subid_device pci_convert_vars () { pci_class=0x$PCI_CLASS set -- `IFS=:; echo $PCI_ID` pci_id_vendor=0x$1 pci_id_device=0x$2 set -- `IFS=:; echo $PCI_SUBSYS_ID` pci_subid_vendor=0x$1 pci_subid_device=0x$2 pci_revision=`lspci -ns ${DEVPATH##*/} 2>/dev/null | sed "s/^.*(rev *\([0-9]*\).*$/\1/"` } declare -i PCI_ANY=0xffffffff # stdin is "modules.pcimap" syntax # on return, ONE matching module was added to $DRIVERS # pci_map_modules () { # convert the usb_device_id fields to integers as we read them local line module ignored declare -i vendor device declare -i subvendor subdevice declare -i class class_mask declare -i class_temp HWINFO=yes # look at each pci_device_id entry # collect one match in $DRIVERS while read line do HWINFO=no # comments are lines that start with "#" ... # be careful, they still get parsed by bash! case "$line" in \#*|"") continue ;; esac set -- $line module=$1 vendor=$(($2)) device=$(($3)) subvendor=$(($4)) subdevice=$(($5)) class=$(($6)) class_mask=$(($7)) : checkmatch $module : vendor $vendor $pci_id_vendor if [ $vendor -ne $PCI_ANY -a $vendor -ne $pci_id_vendor ]; then continue fi : device $device $pci_id_device if [ $device -ne $PCI_ANY -a $device -ne $pci_id_device ]; then continue fi : sub-vendor $subvendor $pci_subid_vendor if [ $subvendor -ne $PCI_ANY -a $subvendor -ne $pci_subid_vendor ]; then continue fi : sub-device $subdevice $pci_subid_device if [ $subdevice -ne $PCI_ANY -a $subdevice -ne $pci_subid_device ]; then continue fi class_temp="$pci_class & $class_mask" if [ $class_temp -eq $class ]; then DRIVERS="$module $DRIVERS" : drivers $DRIVERS break fi done if [ "$HWINFO" = yes ] ; then DRIVERS=`hwinfo --db "pci ${pci_id_vendor:+vendor=$pci_id_vendor} ${pci_id_device:+device=$pci_id_device} ${pci_subid_vendor:+subvendor=$pci_subid_vendor} ${pci_subid_device:+subdevice=$pci_subid_device} ${pci_revision:+revision=$pci_revision} ${PCI_CLASS:+class=0x$PCI_CLASS}"` fi DRIVERS=`filter_drivers $DRIVERS` } # # What to do with this PCI hotplug event? # case $ACTION in add) if [ "$HOTPLUG_PCI_QUEUE_NIC_EVENTS" != no ] ; then queue_nic_events fi # If hwup does initialize the device there is nothing more to do if [ -x /sbin/hwup ] ; then /sbin/hwup ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi if [ -n "HOTPLUG_PCI_CLASSES_WHITELIST" \ -o -n "HOTPLUG_PCI_CLASSES_BLACKLIST" ] ; then pci_check_class || exit fi pci_convert_vars LABEL="PCI slot $PCI_SLOT_NAME" FOUND="" if [ -x /usr/sbin/hwinfo ] ; then load_drivers pci hwinfo "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi # cope with special driver module configurations first. So we can # overwrite default settings in MAP_CURRENT provide missing information if [ -r $MAP_HANDMAP -a "$FOUND" == "" ]; then load_drivers pci $MAP_HANDMAP "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi # We do not need to check this, hwinfo already did it # if [ -r $MAP_CURRENT -a "$FOUND" == "" ]; then # load_drivers pci $MAP_CURRENT "$LABEL" # FOUND="$FOUND${DRIVERS:+ $DRIVERS}" # fi # update hardware database [ "$HWSCAN" ] && $HWSCAN --pci $DEVPATH # Generate hwcfg file VPID="$(printf %04x $pci_id_vendor)-$(printf %04x $pci_id_device)" if [ $pci_subid_vendor -ne 0 ]; then VPID="${VPID}-$(printf %04x $pci_subid_vendor)-$(printf %04x $pci_subid_device)" fi debug_mesg "Create hwcfg-vpid-${VPID}" create_hwcfg_file vpid-${VPID} "$DRIVERS" ;; remove) # If hwdown does initialize the device there is nothing more to do if [ -x /sbin/hwdown ] ; then /sbin/hwdown ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi # update the local hardware components database (/var/lib/hardware) [ "$HWSCAN" ] && $HWSCAN --pci $DEVPATH ;; *) debug_mesg PCI $ACTION event not supported exit 1 ;; esac  ... . ..50-usb.hotplug#!/bin/bash # $Id: usb.agent 302 2005-01-19 16:41:20Z hare $ # # USB-specific hotplug policy agent. # # This should handle 2.6.* USB hotplugging, # with a consistent framework for adding device and driver # specific handling. # # Normally, adding a usb device will modprobe a driver. If there # is a /etc/hotplug/usb/$DRIVER script set up, it will also run, # handling tasks like loading firmware or starting daemons. # # Kernel USB hotplug params include: # # ACTION=%s [add or remove] # DEVPATH=%s [/sys/$DEVPATH] # PRODUCT=%x/%x/%x # INTERFACE=%d/%d/%d [ for interface 0, if TYPE=0/*/* ] # TYPE=%d/%d/%d # # And if usbfs (originally called usbdevfs) is configured, also: # # DEVICE=/proc/bus/usb/%03d/%03d # # If usbfs is mounted on /proc/bus/usb, $DEVICE is a file which # can be read to get the device's current configuration descriptor. # (The "usbmodules" utility does that.) Or it can be used by a # user mode driver to interact with the usb device. USB hotplug # does *not* require usbfs (or sysfs) to work, although on 2.4 # some devices work better if "usbmodules" can help. # # For Linux 2.5+ kernels, there's no need for "usbmodules". For # two reasons: first, hotplug is invoked for each interface, not # just the first one. Second, sysfs exposes descriptors so they # are easy to use for "coldplug" event simulation. (But sysfs is # not a replacement for the driver I/O capabilities in usbfs.) # : ${ACTION?Bad invocation: \$ACTION is not set} # : ${DEVPATH?Bad invocation: \$DEVPATH is not set} # : ${PRODUCT?Bad invocation: \$PRODUCT is not set} # : ${INTERFACE?Bad invocation: \$INTERFACE is not set} # : ${TYPE?Bad invocation: \$TYPE is not set} SYSFS=needed cd /etc/hotplug . ./hotplug.functions if [ -e /sbin/hwscanqueue ]; then HWSCAN=/sbin/hwscanqueue elif [ -e /usr/sbin/hwscanqueue ]; then HWSCAN=/usr/sbin/hwscanqueue fi # generated by modutils, for current 2.4.x (and later) kernels # MAP_CURRENT=$MODULE_DIR/modules.usbmap # used for kernel drivers that don't show up in MAP_CURRENT # or to overwrite default from MAP_CURRENT # MAP_HANDMAP=$HOTPLUG_DIR/usb.handmap # used to run config scripts for user mode drivers (jPhoto, gPhoto2, # rio500 tools, etc) ... instead of naming kernel modules, it names # config scripts. those could change $DEVICE permissions, etc. # # for purely user mode drivers, scripts $HOTPLUG_DIR/usb/NAME should be # installed with usermap files in $HOTPLUG_DIR/usb/NAME.usermap instead # of continuing to use/modify $MAP_USERMAP # MAP_USERMAP=$HOTPLUG_DIR/usb.usermap # Each modules.usbmap format line corresponds to one entry in a # MODULE_DEVICE_TABLE(usb,...) declaration in a kernel file. # # Think of it as a database column with up to three "match specs" # to associate kernel modules with particular devices or classes # of device. The match specs provide a reasonably good filtering # mechanism, but some driver probe() routines need to provide # extra filtering. # usb_convert_vars () { set -- `IFS=/; echo $PRODUCT` usb_idVendor=$((0x$1)) usb_idProduct=$((0x$2)) usb_bcdDevice=$((0x$3)) if [ "$TYPE" != "" ]; then set -- `IFS=/; echo $TYPE` usb_bDeviceClass="$1" usb_bDeviceSubClass="$2" usb_bDeviceProtocol="$3" elif [ -r $SYSFS/$DEVPATH/bDeviceClass ]; then usb_bDeviceClass=$((0x$(cat $SYSFS/$DEVPATH/bDeviceClass))) usb_bDeviceSubClass=$((0x$(cat $SYSFS/$DEVPATH/bDeviceSubClass))) usb_bDeviceProtocol=$((0x$(cat $SYSFS/$DEVPATH/bDeviceProtocol))) else # out-of-range values usb_bDeviceClass=1000 usb_bDeviceSubClass=1000 usb_bDeviceProtocol=1000 fi if [ "$INTERFACE" != "" ]; then set -- `IFS=/; echo $INTERFACE` usb_bInterfaceClass="$1" usb_bInterfaceSubClass="$2" usb_bInterfaceProtocol="$3" elif [ -r $SYSFS/$DEVPATH/bInterfaceClass ]; then usb_bInterfaceClass=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceClass))) usb_bInterfaceSubClass=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceSubClass))) usb_bInterfaceProtocol=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceProtocol))) else # out-of-range values usb_bInterfaceClass=1000 usb_bInterfaceSubClass=1000 usb_bInterfaceProtocol=1000 fi } USB_MATCH_VENDOR=$((0x0001)) USB_MATCH_PRODUCT=$((0x0002)) USB_MATCH_DEV_LO=$((0x0004)) USB_MATCH_DEV_HI=$((0x0008)) USB_MATCH_DEV_CLASS=$((0x0010)) USB_MATCH_DEV_SUBCLASS=$((0x0020)) USB_MATCH_DEV_PROTOCOL=$((0x0040)) USB_MATCH_INT_CLASS=$((0x0080)) USB_MATCH_INT_SUBCLASS=$((0x0100)) USB_MATCH_INT_PROTOCOL=$((0x0200)) # # stdin is "modules.usbmap" syntax # on return, all matching modules were added to $DRIVERS # usb_map_modules () { # convert the usb_device_id fields to integers as we read them local line module # look at each usb_device_id entry # collect all matches in $DRIVERS while read line do # comments are lines that start with "#" ... # be careful, they still get parsed by bash! case "$line" in \#*|"") continue ;; esac set -- $line module=$1 match_flags=$(($2)) idVendor=$(($3)) idProduct=$(($4)) bcdDevice_lo=$(($5)) bcdDevice_hi=$(($6)) bDeviceClass=$(($7)) bDeviceSubClass=$(($8)) bDeviceProtocol=$(($9)) shift 9 bInterfaceClass=$(($1)) bInterfaceSubClass=$(($2)) bInterfaceProtocol=$(($3)) : checkmatch $module : idVendor $idVendor $usb_idVendor if [ $USB_MATCH_VENDOR -eq $((match_flags & USB_MATCH_VENDOR)) ] && [ $idVendor -ne $usb_idVendor ]; then continue fi : idProduct $idProduct $usb_idProduct if [ $USB_MATCH_PRODUCT -eq $((match_flags & USB_MATCH_PRODUCT)) ] && [ $idProduct -ne $usb_idProduct ]; then continue fi : bcdDevice range $bcdDevice_hi $bcdDevice_lo actual $usb_bcdDevice if [ $USB_MATCH_DEV_LO -eq $((match_flags & USB_MATCH_DEV_LO)) ] && [ $usb_bcdDevice -lt $bcdDevice_lo ]; then continue fi # bcdDevice_lo <= bcdDevice <= bcdDevice_hi if [ $USB_MATCH_DEV_HI -eq $((match_flags & USB_MATCH_DEV_HI)) ] && [ $usb_bcdDevice -gt $bcdDevice_hi ]; then continue fi : bDeviceClass $bDeviceClass $usb_bDeviceClass if [ $USB_MATCH_DEV_CLASS \ -eq $((match_flags & USB_MATCH_DEV_CLASS)) ] && [ $bDeviceClass -ne $usb_bDeviceClass ]; then continue fi : bDeviceSubClass $bDeviceSubClass $usb_bDeviceSubClass if [ $USB_MATCH_DEV_SUBCLASS \ -eq $((match_flags & USB_MATCH_DEV_SUBCLASS)) ] && [ $bDeviceSubClass -ne $usb_bDeviceSubClass ]; then continue fi : bDeviceProtocol $bDeviceProtocol $usb_bDeviceProtocol if [ $USB_MATCH_DEV_PROTOCOL \ -eq $((match_flags & USB_MATCH_DEV_PROTOCOL)) ] && [ $bDeviceProtocol -ne $usb_bDeviceProtocol ]; then continue fi # NOTE: for now, this only checks the first of perhaps # several interfaces for this device. : bInterfaceClass $bInterfaceClass $usb_bInterfaceClass if [ $USB_MATCH_INT_CLASS \ -eq $((match_flags & USB_MATCH_INT_CLASS)) ] && [ $bInterfaceClass -ne $usb_bInterfaceClass ]; then continue fi : bInterfaceSubClass $bInterfaceSubClass $usb_bInterfaceSubClass if [ $USB_MATCH_INT_SUBCLASS \ -eq $((match_flags & USB_MATCH_INT_SUBCLASS)) ] && [ $bInterfaceSubClass -ne $usb_bInterfaceSubClass ]; then continue fi : bInterfaceProtocol $bInterfaceProtocol $usb_bInterfaceProtocol if [ $USB_MATCH_INT_PROTOCOL \ -eq $((match_flags & USB_MATCH_INT_PROTOCOL)) ] && [ $bInterfaceProtocol -ne $usb_bInterfaceProtocol ]; then continue fi # It was a match! DRIVERS="$module $DRIVERS" : drivers $DRIVERS done } # # What to do with this USB hotplug event? # case $ACTION in add) # update current state [ "$HWSCAN" ] && $HWSCAN --usb $DEVPATH # If hwup does initialize the device there is nothing more to do if [ -x /sbin/hwup ] ; then /sbin/hwup ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi usb_convert_vars FOUND="" if [ -f $SYSFS/$DEVPATH/manufacturer ]; then LABEL="USB `cat $SYSFS/$DEVPATH/manufacturer`" LABEL="$LABEL `cat $SYSFS/$DEVPATH/product`" else LABEL="USB product $PRODUCT" fi # cope with special driver module configurations first. So we can # overwrite default settings in MAP_CURRENT provide missing information if [ -r $MAP_HANDMAP ]; then load_drivers usb $MAP_HANDMAP "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi if [ -r $MAP_CURRENT -a "$FOUND" == "" ]; then load_drivers usb $MAP_CURRENT "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi # some devices have user-mode drivers (no kernel module, but config) # or specialized user-mode setup helpers MODPROBE=: for MAP in $MAP_USERMAP $HOTPLUG_DIR/usb/*.usermap do if [ -r $MAP ]; then load_drivers usb $MAP "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi done if [ -z "$FOUND" ]; then # mesg "... no modules for $LABEL" exit 2 fi ;; remove) # If hwdown shuts down the device there is nothing more to do if [ -x /sbin/hwdown ] ; then /sbin/hwdown ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi if [ -x /usr/sbin/updfstab ]; then /usr/sbin/updfstab fi # update current state [ "$HWSCAN" ] && $HWSCAN --usb $DEVPATH ;; *) debug_mesg USB $ACTION event not supported exit 1 ;; esac  . ..50-scsi_host.hotplug#!/bin/bash # vim: syntax=sh # # SCSI_HOST hotplug policy agent for Linux 2.6 kernels # $Id: scsi_host.agent 269 2004-08-16 13:07:06Z hare $ # # Kernel SCSI_HOST hotplug params include: # # ACTION=%s [register or unregister] # DEVPATH=%s [sysfs-path of the device] # SYSFS=needed cd /etc/hotplug . hotplug.functions case $ACTION in register|add) # hwconfig interaction WAIT_MAX=5 while [ ! -e ${SYSFS}${DEVPATH}/device ] ; do test $((WAIT_MAX--)) -le 0 && break sleep 1 done if [ -e ${SYSFS}${DEVPATH}/device ] ; then REAL_DEVPATH=$(cd ${SYSFS}${DEVPATH}/device; /bin/pwd) REAL_DEVPATH=$(cd ${REAL_DEVPATH}/..; /bin/pwd) export REAL_DEVPATH fi if [ -f "${REAL_DEVPATH}/cutype" ] ; then # This is a zfcp adapter SCSI_HOST_DEV="zfcp" SCSI_HOST_ID=$(basename $REAL_DEVPATH) fi if [ -z "$SCSI_HOST_DEV" ] ; then debug_mesg "Unknown scsi_host type" exit 0 else debug_mesg "Configuring $SCSI_HOST_DEV on ID $SCSI_HOST_ID $REAL_DEVPATH" hwup scsi__host-devpath-${REAL_DEVPATH} -o hotplug fi ;; unregister|remove) exit 0 ;; *) debug_mesg SCSI_HOST $ACTION event not supported exit 1 ;; esac  . ..50-scsi.hotplug#!/bin/bash # $Id: scsi.agent 269 2004-08-16 13:07:06Z hare $ # # SCSI hotplug agent for 2.5 kernels # # ACTION=add # DEVPATH=devices/scsi0/0:0:0:0 # : ${ACTION?Bad invocation: \$ACTION is not set} : ${DEVPATH?Bad invocation: \$DEVPATH is not set} SYSFS=needed cd /etc/hotplug . ./hotplug.functions case $ACTION in add) : ;; remove) case $DEVPATH in /devices/css*) hwdown scsi-devpath-${SYSFS}${DEVPATH} -o hotplug ;; esac ;; *) debug_mesg SCSI $ACTION event not supported exit 1 ;; esac  . .. 40-eventrecorder.hotplug20-hal.hotplug#!/bin/bash # $Id:$ # # Start eventrecorder if directory /events exists # if [ -d /events -a -x /sbin/hotplugeventrecorder ] ; then /sbin/hotplugeventrecorder $1 2>/dev/null fi  . ..50-hwscan.hotplug#!/bin/bash # $Id: 50-hwscan.dev 314 2005-01-21 16:02:02Z hare $ # set -x # # block hotplug policy agent for Linux kernels # # Kernel BLOCK hotplug params include: # # ACTION=%s [add or remove] # DEVPATH=%s # # bash required due to echo | while read line ; do : ; done # # Logic is like this: # - call hwscanqueue --block for all full disks # - call hwscanqueue --scan only for usb-storage disks # - mount devices (either full disks or partitions) if # HOTPLUG_USE_SUBFS is not 'no' and if an matching entry # from /etc/fstab or /proc/mounts is found. # cd /etc/hotplug . ./hotplug.functions # DEBUG=yes export DEBUG if [ "$DEVPATH" = "" ]; then mesg Bad BLOCK invocation: \$DEVPATH is not set exit 1 fi # # generic section # if [ -e /sbin/hwscanqueue ]; then HWSCAN=/sbin/hwscanqueue elif [ -e /usr/sbin/hwscanqueue ]; then HWSCAN=/usr/sbin/hwscanqueue fi BLKID=/sbin/blkid do_mount= if [ "$DEVNAME" ] ; then real_device="$DEVNAME" else real_device=/dev/${DEVPATH##*/} fi # check whether the devpath has a 'device' link pname="" if [ -e /sys$DEVPATH/device ]; then dname=`cd -P /sys$DEVPATH/device; echo $PWD` else if [ -e /sys$DEVPATH/../device ]; then dname=`cd -P /sys$DEVPATH/../device; echo $PWD` fi fi # Get the type of disk if [ -n "$dname" ]; then pname=${dname%/*} pname=/sys/class/scsi_host/${pname##*/}/proc_name if [ -f "$pname" ]; then read dtype < "$pname" fi fi # # do the real action # if [ -z "$HWSCAN" ]; then # We only need to execute $HWSCAN exit 0 fi case $ACTION in add) mesg "new block device $DEVPATH" case "$DEVPATH" in *[0-9]) # Register partition $HWSCAN --partition "$real_device" ;; *) $HWSCAN --block "$real_device" if [ "$dtype" = "usb-storage" ] ; then $HWSCAN --scan=$real_device fi ;; esac # We always call blkid as we don't know whether # the filesystem might span the entire disk if [ -x "$BLKID" -a "$real_device" != /dev/fd0 ]; then $BLKID "$real_device" fi ;; remove) case "$DEVPATH" in *[0-9]) # Register partition $HWSCAN --partition "$real_device" ;; *) # We can't figure out the real device type # as the device is already gone from sysfs $HWSCAN --stop=$real_device $HWSCAN --block "$real_device" ;; esac ;; *) debug_mesg BLOCK $ACTION event not supported exit 1 ;; esac  . ..50-firmware.hotplug#!/bin/bash # $Id: firmware.agent 308 2005-01-20 11:02:49Z hare $ # # Firmware-specific hotplug policy agent. # # Kernel firmware hotplug params include: # # ACTION=%s [add or remove] # DEVPATH=%s [in 2.5 kernels, /sys/$DEVPATH] # FIRMWARE=%s # # HISTORY: # # 24-Jul-2003 Initial version of "new" hotplug agent. # # SYSFS=needed cd /etc/hotplug . ./hotplug.functions # directories with the firmware files FIRMWARE_DIRS="/lib/firmware /usr/local/lib/firmware /usr/lib/hotplug/firmware" # # What to do with this firmware hotplug event? # case "$ACTION" in add) if [ ! -e $SYSFS/$DEVPATH/loading ]; then debug_mesg "loading of firmware is not supported" exit 0 fi for DIR in $FIRMWARE_DIRS; do [ -e "$DIR/$FIRMWARE" ] || continue echo 1 > $SYSFS/$DEVPATH/loading cat "$DIR/$FIRMWARE" > $SYSFS/$DEVPATH/data echo 0 > $SYSFS/$DEVPATH/loading exit done # the firmware was not found echo -1 > $SYSFS/$DEVPATH/loading ;; remove) ;; *) mesg "Firmware '$ACTION' event not supported" exit 1 ;; esac  . ..50-ieee1394.hotplug#!/bin/bash # $Id: ieee1394.agent 296 2004-10-01 12:39:26Z zoz $ # # IEEE1394-specific hotplug policy agent. # # This should handle 2.4.10 (or later) IEEE1394 hotplugging, with a # consistent framework for adding device and driver specific treatments. # # Kernel IEEE1394 params are: # # ACTION=add or remove # VENDOR_ID=24 bit vendor id # GUID=64 bit globally unique id # SPECIFIER_ID=24 bit id of owner of specification # VERSION=version of specification # # See IEEE1212 for details on these parameters. # : ${ACTION?Bad invocation: \$ACTION is not set} : ${DEVPATH?Bad invocation: \$DEVPATH is not set} # : ${VENDOR_ID?Bad invocation: \$VENDOR_ID is not set} # : ${GUID?Bad invocation: \$GUID is not set} # : ${SPECIFIER_ID?Bad invocation: \$SPECIFIER_ID is not set} # : ${VERSION?Bad invocation: \$VERSION is not set} cd /etc/hotplug . ./hotplug.functions # generated by modutils 2.4.9 or later, for 2.4.10 and later kernels MAP_CURRENT=$MODULE_DIR/modules.ieee1394map # used for kernel drivers that don't show up in MAP_CURRENT # or to overwrite default from MAP_CURRENT MAP_HANDMAP=$HOTPLUG_DIR/ieee1394.handmap device_vendor_id=$((0x$VENDOR_ID)) device_specifier_id=$((0x$SPECIFIER_ID)) device_version=$((0x$VERSION)) MATCH_VENDOR_ID=0x0001 MATCH_SPECIFIER_ID=0x0004 MATCH_VERSION=0x0008 if [ -e /sbin/hwscanqueue ]; then HWSCAN=/sbin/hwscanqueue elif [ -e /usr/sbin/hwscanqueue ]; then HWSCAN=/usr/sbin/hwscanqueue fi # stdin is "modules.ieee1394map" syntax # on return, all matching modules were added to $DRIVERS # ieee1394_map_modules () { local line module ignored while read line do case "$line" in \#*|"") continue ;; esac read module match_flags vendor_id model_id \ specifier_id version < <(echo $line) : check match for $module match_flags=$(($match_flags)) vendor_id=$(($vendor_id)) model_id=$(($model_id)) specifier_id=$(($specifier_id)) version=$(($version)) : vendor_id $vendor_id $device_vendor_id if [ $(($match_flags & $MATCH_VENDOR_ID)) -ne 0 ] && [ "$vendor_id" -ne "$device_vendor_id" ]; then continue fi : specifier_id $specifier_id $device_specifier_id if [ $(($match_flags & $MATCH_SPECIFIER_ID)) -ne 0 ] && [ "$specifier_id" -ne "$device_specifier_id" ]; then continue fi : version $version $device_version if [ $(($match_flags & $MATCH_VERSION)) -ne 0 ] && [ "$version" != "$device_version" ]; then continue fi DRIVERS="$module $DRIVERS" done } # # What to do with this IEEE1394 hotplug event? # case "$ACTION" in add) # If hwup does initialize the device there is nothing more to do if [ -x /sbin/hwup ] ; then /sbin/hwup ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi LABEL="IEEE1394 product 0x$VENDOR_ID/0x$SPECIFIER_ID/0x$VERSION" FOUND="" # cope with special driver module configurations first. So we can # overwrite default settings in MAP_CURRENT provide missing information if [ -r $MAP_HANDMAP ]; then load_drivers ieee1394 $MAP_HANDMAP "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi # on 2.4 systems, modutils maintains MAP_CURRENT if [ -r $MAP_CURRENT -a -z "$FOUND" ]; then load_drivers ieee1394 $MAP_CURRENT "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi # update hardware database [ "$HWSCAN" ] && $HWSCAN --firewire if [ -z "$FOUND" ]; then mesg "... no drivers for $LABEL" exit 2 fi ;; remove) # If hwdown shuts down the device there is nothing more to do if [ -x /sbin/hwdown ] ; then /sbin/hwdown ${1:+$1-}devpath-$DEVPATH -o hotplug && exit fi # update hardware database [ "$HWSCAN" ] && $HWSCAN --firewire ;; *) debug_mesg "IEEE1394 '$ACTION' event not supported" exit 1 ;; esac  . ..50-scsi_device.hotplug#!/bin/bash # $Id: scsi_device.agent 269 2004-08-16 13:07:06Z hare $ #set -x # # block hotplug policy agent for Linux kernels # # Kernel BLOCK hotplug params include: # # ACTION=%s [add or remove] # DEVPATH=%s # # bash required due to echo | while read line ; do : ; done # SYSFS=needed cd /etc/hotplug . ./hotplug.functions # DEBUG=yes export DEBUG if [ "$DEVPATH" = "" ]; then mesg Bad SCSI_DEVICE invocation: \$DEVPATH is not set exit 1 fi case $ACTION in add) # work around a race in the scsi layer, # type doesnt exist sometimes for i in 1 2 3 4 5 ; do if [ -f $SYSFS$DEVPATH/device/type ] ; then break fi sleep 1 done if [ -f $SYSFS$DEVPATH/device/type ]; then read type < $SYSFS$DEVPATH/device/type case $type in 0) modprobe sd_mod ;; 3|4|5) modprobe sr_mod ;; *) debug_mesg SCSI_DEVICE "unknown scsi type $type" ;; esac fi modprobe sg ;; remove) : ;; *) debug_mesg SCSI_DEVICE $ACTION event not supported exit 1 ;; esac  . ..50-visor.hotplug#!/bin/bash # $Id: 50-visor.dev 262 2004-08-09 12:22:13Z hare $ #set -x # # tty hotplug policy agent for Linux kernels # # Kernel TTY hotplug params include: # # ACTION=%s [add or remove] # DEVPATH=%s # cd /etc/hotplug . ./hotplug.functions # DEBUG=yes export DEBUG # Should match definitions in /etc/hotplug/hotplug.subfs.functions DESKTOPDIR=/var/lib/Desktop TEMPLATEDIR=/usr/share/hotplug/DesktopTemplates if [ "$DEVPATH" = "" ]; then mesg Bad TTY invocation: \$DEVPATH is not set exit 1 fi if [ ! -L /sys$DEVPATH/device ] ; then exit 0 fi # # do the real action # export DEVICE=/dev/${DEVPATH##*/} case $ACTION in add) mesg "add tty device $DEVPATH" # # special handling for visor/palm devices # if [ -e /etc/hotplug/usb/desktopdev ]; then if [ -e /sys/bus/usb-serial/drivers/visor/"${DEVPATH##*/}" ]; then /etc/hotplug/usb/desktopdev # TOFIX: We can handle only one Palm at the same time atm # TOFIX: yes, yes, this is broken, but tell me something better for all # different Palms. ttyUSB0 can come after ttyUSB1 ... D=$DESKTOPDIR/kpilot.desktop EXISTING="-1" [ -e $D ] && EXISTING=`sed -n -e 's,^Dev=/dev/ttyUSB\(.*\),\1,p' $D` if [ "$EXISTING" -lt "${DEVICE#/dev/ttyUSB}" ]; then # remove first to generate a new create event via DNOTIFY [ -e $D ] && rm -f $D sed s,__DEVICE__,"${DEVICE}", $TEMPLATEDIR/kpilot.desktop \ > $D [ -e /sbin/hwscan ] && /sbin/hwscan --cfg=yes $DEVNAME fi fi fi ;; remove) mesg "remove tty device $DEVPATH" if [ -e $DESKTOPDIR/kpilot.desktop ]; then grep -q ^Dev=${DEVICE}$ $DESKTOPDIR/kpilot.desktop && \ rm -f $DESKTOPDIR/kpilot.desktop [ -e /sbin/hwscan ] && /sbin/hwscan --cfg=no $DEVICE fi ;; *) debug_mesg TTY $ACTION event not supported exit 1 ;; esac  . ..50-visor.hotplug . ..50-input_device.hotplug#!/bin/bash # $Id$ # # input-device specific hotplug policy agent. # # This should handle 2.6.* input hotplugging, # with a consistent framework for adding device and driver # specific handling. # # Normally, adding a input device will modprobe handler(s) for # this device. # # Kernel input hotplug params include (not all of them may be available): # # ACTION=%s [add or remove] # PRODUCT=%x/%x/%x/%x # NAME=%s # PHYS=%s # EV=%lx # KEY=%lx %lx ... # REL=%lx # ABS=%lx %lx ... # MSC=%lx # LED=%lx # SND=%lx # FF=%lx %lx ... # : ${ACTION?Bad invocation: \$ACTION is not set} cd /etc/hotplug . ./hotplug.functions # generated by module-init-tools MAP_CURRENT=$MODULE_DIR/modules.inputmap # used for kernel drivers that don't show up in MAP_CURRENT # or to overwrite default from MAP_CURRENT # MAP_HANDMAP=$HOTPLUG_DIR/input.handmap # Each modules.inputmap format line corresponds to one entry in a # MODULE_DEVICE_TABLE(input,...) declaration in a kernel file. # matchBits=0 i_bustype=0 i_vendor=0 i_product=0 i_version=0 i_evBits=0 input_join_words () { local name=$1; shift local tmp=$1; shift while [ "$#" -gt 0 ]; do tmp="$tmp:$1"; shift done eval $name=\$tmp } input_convert_vars () { if [ "$PRODUCT" != "" ]; then set -- `IFS=/; echo $PRODUCT` i_bustype=$((0x$1)) i_vendor=$((0x$2)) i_product=$((0x$3)) i_version=$((0x$4)) fi if [ "$EV" != "" ]; then i_evBits=$((0x$EV)) fi input_join_words i_keyBits $KEY # for a in $KEY; do i_keyBits="${i_keyBits:+$i_keyBits:}${a}"; done input_join_words i_relBits $REL input_join_words i_absBits $ABS input_join_words i_mscBits $MSC input_join_words i_ledBits $LED input_join_words i_sndBits $SND input_join_words i_ffBits $FF } INPUT_DEVICE_ID_MATCH_BUS=1 INPUT_DEVICE_ID_MATCH_VENDOR=2 INPUT_DEVICE_ID_MATCH_PRODUCT=4 INPUT_DEVICE_ID_MATCH_VERSION=8 INPUT_DEVICE_ID_MATCH_EVBIT=$((0x010)) INPUT_DEVICE_ID_MATCH_KEYBIT=$((0x020)) INPUT_DEVICE_ID_MATCH_RELBIT=$((0x040)) INPUT_DEVICE_ID_MATCH_ABSBIT=$((0x080)) INPUT_DEVICE_ID_MATCH_MSCBIT=$((0x100)) INPUT_DEVICE_ID_MATCH_LEDBIT=$((0x200)) INPUT_DEVICE_ID_MATCH_SNDBIT=$((0x400)) INPUT_DEVICE_ID_MATCH_FFBIT=$((0x800)) input_match_bits () { local mod_bits=$1 dev_bits=$2 mword=$((0x${mod_bits##*:})) dword=$((0x${dev_bits##*:})) while true; do if [ $(( $mword & $dword != $mword )) -eq 1 ]; then return 1 fi mod_bits=${mod_bits%:*} dev_bits=${dev_bits%:*} case "$mod_bits-$dev_bits" in *:*-*:* ) : continue ;; *:*-*|*-*:* ) return 0 ;; * ) return 1 ;; esac done } # # stdin is "modules.inputmap" syntax # on return, all matching modules were added to $DRIVERS # input_map_modules () { local line module local relBits mscBits ledBits sndBits keyBits absBits ffBits while read line do # comments are lines that start with "#" ... # be careful, they still get parsed by bash! case "$line" in \#*|"") continue ;; esac set $line module=$1 matchBits=$(($2)) bustype=$(($3)) vendor=$(($4)) product=$(($5)) vendor=$(($6)) evBits=$(($7)) keyBits=$8 relBits=$(($9)) shift 9 absBits=$(($1)) cbsBits=$(($2)) ledBits=$(($3)) sndBits=$(($4)) ffBits=$(($5)) driverInfo=$(($6)) : checkmatch $module : bustype $bustype $i_bustype if [ $INPUT_DEVICE_ID_MATCH_BUS -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_BUS )) ] && [ $bustype -ne $i_bustype ]; then continue fi : vendor $vendor $i_vendor if [ $INPUT_DEVICE_ID_MATCH_VENDOR -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_VENDOR )) ] && [ $vendor -ne $i_vendor ]; then continue fi : product $product $i_product if [ $INPUT_DEVICE_ID_MATCH_PRODUCT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_PRODUCT )) ] && [ $product -ne $i_product ]; then continue fi # version i_version $i_version < version $version if [ $INPUT_DEVICE_ID_MATCH_VERSION -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_VERSION )) ] && [ $version -ge $i_version ]; then continue fi : evBits $evBits $i_evBits if [ $INPUT_DEVICE_ID_MATCH_EVBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_EVBIT )) ] && [ $evBits -ne $(( $evBits & $i_evBits)) ]; then continue fi : keyBits $keyBits $i_keyBits if [ $INPUT_DEVICE_ID_MATCH_KEYBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_KEYBIT )) ] && input_match_bits "$keyBits" "$i_keyBits"; then continue fi : relBits $relBits $i_relBits if [ $INPUT_DEVICE_ID_MATCH_RELBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_RELBIT )) ] && [ $relBits -ne $(( $relBits & $i_relBits)) ]; then continue fi : absBits $absBits $i_absBits if [ $INPUT_DEVICE_ID_MATCH_ABSBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_ABSBIT )) ] && input_match_bits "$absBits" "$i_absBits"; then continue fi : mscBits $mscBits $i_mscBits if [ $INPUT_DEVICE_ID_MATCH_MSCBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_MSCBIT )) ] && [ $mscBits -ne $(( $mscBits & $i_mscBits)) ]; then continue fi : ledBits $ledBits $_ledBits if [ $INPUT_DEVICE_ID_MATCH_LEDBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_LEDBIT )) ] && input_match_bits "$ledBits" "$i_ledBits"; then continue fi : sndBits $sndBits $i_sndBits if [ $INPUT_DEVICE_ID_MATCH_SNDBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_SNDBIT )) ] && [ $sndBits -ne $(( $sndBits & $i_sndBits)) ]; then continue fi : ffBits $ffBits $i_ffBits if [ $INPUT_DEVICE_ID_MATCH_FFBIT -eq $(( $matchBits & $INPUT_DEVICE_ID_MATCH_FFBIT )) ] && input_match_bits "$ffBits" "$i_ffBits"; then continue fi : driverInfo $driverInfo if [ $matchBits -eq 0 -a $driverInfo -eq 0 ]; then continue fi # It was a match! case " $DRIVERS " in *" $module "* ) : already found ;; * ) DRIVERS="$module $DRIVERS" ;; esac : drivers $DRIVERS done } # # What to do with this INPUT hotplug event? # case $ACTION in add) # If hwup does initialize the device there is nothing more to do if [ -x /sbin/hwup ] && /sbin/hwup ${1:+$1-}devpath-$DEVPATH -o hotplug; then : nix else input_convert_vars FOUND="" LABEL="INPUT product $PRODUCT" # cope with special driver module configurations first. So we can # overwrite default settings in MAP_CURRENT if [ -r $MAP_HANDMAP ]; then load_drivers usb $MAP_HANDMAP "$LABEL" FOUND="$FOUND${DRIVERS:+ $DRIVERS}" fi if [ -r $MAP_CURRENT -a -z "$FOUND" ]; then load_drivers input $MAP_CURRENT "$LABEL" fi fi ;; remove) if [ -x /sbin/hwdown ] && /sbin/hwdown ${1:+$1-}devpath-$DEVPATH -o hotplug; then : nix fi ;; *) debug_mesg INPUT $ACTION event not supported exit 1 ;; esac  . ..50-ccwgroup.hotplug#!/bin/bash # vim: syntax=sh # # CCWGROUP hotplug policy agent for Linux 2.6 kernels # $Id: ccwgroup.agent 269 2004-08-16 13:07:06Z hare $ # # Kernel CCWGROUP hotplug params include: # # ACTION=%s [register or unregister] # DEVPATH=%s [sysfs-path of the device] # SYSFS=needed cd /etc/hotplug . hotplug.functions _ccw_status_dir="${SYSFS}${DEVPATH}" CHAN_ID=$(basename $_ccw_status_dir) case $ACTION in register|add) for i in 1 2 3 4 5 ; do if [ -d "$_ccw_status_dir/cdev0" ]; then REAL_DEVPATH=$(cd -P ${_ccw_status_dir}/cdev0; echo $PWD) break; fi mesg "Waiting for cdev0 of device $CHAN_ID" sleep 1 done if [ "$REAL_DEVPATH" ]; then mesg "Configuring channel $CHAN_ID for event 'ccwgroup'" hwup ccwgroup-devpath-${REAL_DEVPATH} -o hotplug else mesg "Cannot configure device $CHAN_ID: No cdev0" fi ;; unregister|remove) # Nothing to be done, device is already gone debug_mesg CCWGROUP $ACTION event nothing to do ;; *) debug_mesg CCWGROUP $ACTION event not supported exit 1 ;; esac SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin MAILTO=root # # check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly # -*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 # # (c) System csh.cshrc for tcsh, Werner Fink '93 # and J"org Stadler '94 # # This file sources /etc/profile.d/complete.tcsh and # /etc/profile.d/bindkey.tcsh used especially by tcsh. # # PLEASE DO NOT CHANGE /etc/csh.cshrc. There are chances that your changes # will be lost during system upgrades. Instead use /etc/csh.cshrc.local for # your local settings, favourite global aliases, VISUAL and EDITOR # variables, etc ... # USERS may write their own $HOME/.csh.expert to skip sourcing of # /etc/profile.d/complete.tcsh and most parts oft this file. # onintr - # # Default echo style # set echo_style=both # setenv MANPATH "`(unsetenv MANPATH; manpath -q)`" setenv MINICOM "-c on" setenv HOSTNAME "`hostname -f`" setenv HOST "`hostname -s`" if ( -f /etc/organization ) then setenv ORGANIZATION "`cat /etc/organization`" endif setenv MACHTYPE "`uname -m`" setenv LESS "-M -I" setenv LESSOPEN "lessopen.sh %s" setenv LESSCLOSE "lessclose.sh %s %s" if ( -f /etc/lesskey.bin ) then setenv LESSKEY /etc/lesskey.bin endif setenv MORE -sl setenv PAGER '/usr/bin/less' setenv GZIP -9 setenv CSHEDIT emacs if ( -d /usr/info ) then setenv INFODIR /usr/info:/usr/share/info:/usr/local/info else setenv INFODIR /usr/share/info:/usr/local/info endif setenv INFOPATH $INFODIR if ( -s /etc/nntpserver ) then setenv NNTPSERVER `cat /etc/nntpserver` else setenv NNTPSERVER news endif # set XLIBDIR=/usr/X11R6/lib/X11/ if ( -d /usr/lib/X11/app-defaults/ ) then set XLIBDIR=/usr/lib/X11/ endif set path_xr5=${XLIBDIR}%L/%T/%N%C:${XLIBDIR}%l/%T/%N%C:${XLIBDIR}%T/%N%C set path_xr6=${XLIBDIR}%L/%T/%N:${XLIBDIR}%l/%T/%N:${XLIBDIR}%T/%N set path_var=/var/X11R6/%T/%N%C:/var/X11R6/%T/%N setenv XFILESEARCHPATH "${path_xr5}:${path_xr6}:${path_var}" if ( -d ${HOME}/.app-defaults/ ) then setenv XAPPLRESDIR ${HOME}/.app-defaults/ endif unset XLIBDIR path_xr5 path_xr6 path_var # if ( -f /usr/lib/teTeX/texmf.cnf ) then setenv TETEXDIR /usr/lib/teTeX if ( -d /usr/bin/TeX ) set path=( /usr/bin/TeX $path ) endif # # For all readline library based applications # if (-r /etc/inputrc) setenv INPUTRC /etc/inputrc setenv COLORTERM 1 # # SuSEconfig stuff # # But do not source this if CSHRCREAD is already set to avoid # overriding locale variables already present in the environment # if (! ${?CSHRCREAD} ) then setenv CSHRCREAD true set -r CSHRCREAD=$CSHRCREAD if ( -r /etc/profile.d/csh.ssh ) source /etc/profile.d/csh.ssh if ( -r /etc/SuSEconfig/csh.cshrc ) source /etc/SuSEconfig/csh.cshrc if (! ${?SSH_SENDS_LOCALE} ) then if ( -r /etc/sysconfig/language && -r /etc/profile.d/csh.utf8 ) then set _tmp=`sh -c '. /etc/sysconfig/language; echo $AUTO_DETECT_UTF8'` if ( ${_tmp} == "yes" ) source /etc/profile.d/csh.utf8 unset _tmp endif endif endif # # source extensions for special packages # if ( -d /etc/profile.d ) then set _tmp=${?nonomatch} set nonomatch foreach _s ( /etc/profile.d/*.csh ) if ( -r $_s ) then source $_s endif end if ( ! ${_tmp} ) unset nonomatch unset _tmp _s endif # # if (! ${?prompt}) goto end # # This is an interactive session # # Now read in the key bindings of the tcsh # if ($?tcsh && -r /etc/profile.d/bindkey.tcsh) source /etc/profile.d/bindkey.tcsh # # Expert mode: if we find $HOME/.csh.expert we skip our settings # used for interactive sessions and read in the expert file. # if (-r $HOME/.csh.expert) then source $HOME/.csh.expert goto end endif # # Some useful settings # set autocorrect=1 set listmaxrows=23 # set cdpath = ( /var/spool ) # set complete=enhance # set correct=all set correct=cmd set fignore=(.o \~) # set histdup=prev set histdup=erase set history=100 set listjobs=long set notify=1 set nostat=( /afs ) set rmstar=1 set savehist=( $history merge ) set showdots=1 set symlinks=ignore # unset autologout unset ignoreeof # set noglob if ( -x /usr/bin/dircolors ) then if ( -r $HOME/.dir_colors ) then eval `dircolors -c $HOME/.dir_colors` else if ( -r /etc/DIR_COLORS ) then eval `dircolors -c /etc/DIR_COLORS` endif endif setenv LS_OPTIONS '--color=tty' if ( ${?LS_COLORS} ) then if ( "${LS_COLORS}" == "" ) setenv LS_OPTIONS '--color=none' endif unalias ls if ( "$uid" == "0" ) then setenv LS_OPTIONS "-a -N $LS_OPTIONS -T 0" else setenv LS_OPTIONS "-N $LS_OPTIONS -T 0" endif alias ls 'ls $LS_OPTIONS' alias la 'ls -AF --color=none' alias ll 'ls -l --color=none' alias l 'll' alias dir 'ls --format=vertical' alias vdir 'ls --format=long' alias d dir; alias v vdir; # Handle emacs if ($?EMACS) then setenv LS_OPTIONS '-N --color=none -T 0'; tset -I -Q stty cooked pass8 dec nl -echo # if ($?tcsh) unset edit endif unset noglob # # Prompting and Xterm title # set prompt="%B%m%b %C2%# " if ( -o /dev/$tty ) then alias cwdcmd '(echo "Directory: $cwd" > /dev/$tty)' if ( -x /usr/bin/biff ) /usr/bin/biff y # If we're running under X11 if ( ${?DISPLAY} ) then if ( ${?TERM} && ${?EMACS} == 0 ) then if ( ${TERM} == "xterm" ) then alias cwdcmd '(echo -n "\033]2;$USER on ${HOST}: $cwd\007\033]1;$HOST\007" > /dev/$tty)' cd . endif endif if ( -x /usr/bin/biff ) /usr/bin/biff n set prompt="%C2%# " endif endif # # tcsh help system does search for uncompressed helps file # within the cat directory system of a old manual page system. # Therefore we use whatis as alias for this helpcommand # alias helpcommand whatis # # Source the completion extension of the tcsh # if ($?tcsh) then set _rev=${tcsh:r} set _rel=${_rev:e} set _rev=${_rev:r} if ($_rel > 5 && $_rev > 1 && -r /etc/profile.d/complete.tcsh) then source /etc/profile.d/complete.tcsh endif unset _rev _rel endif # # Enable editing in multibyte encodings for the locales where this make sense: # switch ( `locale charmap` ) case UTF-8: set dspmbyte=utf8 breaksw case BIG5: set dspmbyte=big5 breaksw case EUC-JP: set dspmbyte=euc breaksw case EUC-KR: set dspmbyte=euc breaksw case GB2312: set dspmbyte=euc breaksw case SHIFT_JIS: set dspmbyte=sjis breaksw default: breaksw endsw # end: onintr # # Local configuration # if ( -r /etc/csh.cshrc.local ) source /etc/csh.cshrc.local # # csh.cshrc end here # # # $Id: auto.master,v 1.3 2003/09/29 08:22:35 raven Exp $ # # Sample auto.master file # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # For details of the format look at autofs(5). #/misc /etc/auto.misc --timeout=60 #/misc /etc/auto.misc #/net /etc/auto.net # # System csh.login for tcsh, # (c) Werner Fink '93 # # PLEASE DO NOT CHANGE /etc/csh.login. There are chances that your changes # will be lost during system upgrades. Instead use /etc/csh.login.local for # your local environment settings. # if ( -o /dev/$tty && ${?prompt} ) then # Console if ( ! ${?TERM} ) setenv TERM linux if ( "$TERM" == "unknown" ) setenv TERM linux if ( ! ${?SSH_TTY} ) then # No tset available on SlackWare if ( -x "`which stty`" ) stty sane cr0 pass8 dec if ( -x "`which tset`" ) tset -I -Q endif unsetenv TERMCAP settc km yes endif umask 022 setenv SHELL /bin/tcsh if ( -f /var/spool/mail/$USER ) then setenv MAIL /var/spool/mail/$USER set mail=$MAIL endif set _xpath set _tpath foreach _d (~/bin/$MACHTYPE ~/bin \ /var/lib/dosemu \ /usr/games \ /opt/bin \ /opt/gnome/bin \ /opt/kde3/bin \ /opt/kde2/bin \ /opt/kde/bin \ /usr/openwin/bin \ /opt/cross/bin \ /usr/andrew/bin ) if ( -d $_d ) set _tpath=( $_d $_tpath) end if ( ${?OPENWINHOME} ) then if ( -d $OPENWINHOME/bin ) then set _xpath=( $OPENWINHOME/bin ) endif endif if ( -d /usr/bin/X11 ) then set _xpath=( /usr/bin/X11 $_xpath ) else if ( -d /usr/X11R6/bin ) then set _xpath=( /usr/X11R6/bin $_xpath ) else if ( -d /usr/X11/bin ) then set _xpath=( /usr/X11/bin $_xpath ) endif set _tpath=( $_tpath $_xpath ) # # Doing only one rehash # set -f path=( $_tpath $path ) unset _tpath unset _xpath unset _d # # SuSEconfig stuff # if ( -r /etc/SuSEconfig/csh.login ) then source /etc/SuSEconfig/csh.login endif # # Local configuration # if ( -r /etc/csh.login.local ) then source /etc/csh.login.local endif # if ( "$uid" == "0" ) then set who=( "%n has %a %l from %M." ) set watch=( any any ) endif # # Go home cd # # An x session if (${?TERM}) then if (${TERM} == "xterm") then if ( -f /etc/motd ) cat /etc/motd echo "Directory: $cwd" # # shadow passwd # Note: on normal console this will be done # by /bin/login if ( -x "`which faillog`" && -r /var/log/faillog ) faillog -p endif endif # # Do you really like this? #if (-x "`which fortune`" ) then # echo " " # fortune -s # echo " " #endif # # last but not least if ( -o /dev/$tty && ${?prompt} ) date ##  . .. apt jar jdb  jps  jre  idlj  java  jmap orbd rmic rmidrmiregistry.1.gz java_sdk_1.4.2_exportsserialver.1.gz serialvernative2ascii.1.gzextcheck(jce_1.5.0_sun_us_export_policy orbd.1.gzkeytooljre_sunjarsigner.1.gzpolicytool.1.gzjavacjavahjavap jinfo!jstat"java_sdk_exports# jmap.1.gz$ unpack200% native2ascii& appletviewer' javac.1.gz(servertool.1.gz)jre_1.4.2_exports* keytool.1.gz+ javah.1.gz, javap.1.gz-tnameserv.1.gz.jre_sun_exports/java_sdk_1.4.20java_sdk_1.5.01 extcheck.1.gz2jaxp_parser_impl3apt.1.gz4appletviewer.1.gz5 java_sdk_sun6$jce_1.4.2_sun_local_policy7 jstack.1.gz/usr/lib64/jvm-private/java-1_5_0-sun/jce/vanilla/US_export_policy.jar/usr/lib/jvm-private/java-1.4.2-sun/jce/vanilla/local_policy.jar8 kinit.1.gz9jstack:jstatd; jstat.1.gz<java_sdk_sun_exports= jconsole.1.gz> tnameserv? servertool@ jarsignerAjar.1.gzB jre_1.4.2C jre_1.5.0D java_sdk_1.5.0_exportsE klist.1.gzFjsadebugd.1.gzGjava_sdkHpack200I HtmlConverterJ idlj.1.gzK jinfo.1.gzL jsadebugdMjps.1.gzN rmic.1.gzO$jce_1.5.0_sun_local_policyP rmid.1.gzQjdb.1.gzR ktab.1.gzSjre_1.5.0_exportsT pack200.1.gzU javadoc.1.gzV java.1.gzWjavadocX jstatd.1.gzY jre_exportsZ(jce_1.4.2_sun_us_export_policy[ rmiregistry\ policytool]jconsole^unpack200.1.gz/usr/lib64/jvm-private/java-1_5_0-sun/jce/vanilla/local_policy.jar/usr/lib/jvm-private/java-1.4.2-sun/jce/vanilla/US_export_policy.jarbrn-suse093-2.sar.informatik.hu-berlin.de keymaps 0-6,8-10,12 keycode 1 = Escape Escape alt keycode 1 = Meta_Escape shift alt keycode 1 = Meta_Escape keycode 2 = one exclam alt keycode 2 = Meta_one shift alt keycode 2 = Meta_exclam keycode 3 = two quotedbl twosuperior control keycode 3 = nul alt keycode 3 = Meta_two shift alt keycode 3 = Meta_quotedbl keycode 4 = three section threesuperior control keycode 4 = Escape alt keycode 4 = Meta_three keycode 5 = four dollar alt keycode 5 = Meta_four shift alt keycode 5 = Meta_dollar keycode 6 = five percent alt keycode 6 = Meta_five shift alt keycode 6 = Meta_percent keycode 7 = six ampersand alt keycode 7 = Meta_six shift alt keycode 7 = Meta_ampersand keycode 8 = seven slash braceleft alt keycode 8 = Meta_seven shift alt keycode 8 = Meta_slash altgr alt keycode 8 = Meta_braceleft keycode 9 = eight parenleft bracketleft alt keycode 9 = Meta_eight shift alt keycode 9 = Meta_parenleft altgr alt keycode 9 = Meta_bracketleft keycode 10 = nine parenright bracketright altgr control keycode 10 = Control_bracketright alt keycode 10 = Meta_nine shift alt keycode 10 = Meta_parenright altgr alt keycode 10 = Meta_bracketright keycode 11 = zero equal braceright alt keycode 11 = Meta_zero shift alt keycode 11 = Meta_equal altgr alt keycode 11 = Meta_braceright keycode 12 = ssharp question backslash altgr control keycode 12 = Control_backslash shift alt keycode 12 = Meta_question altgr alt keycode 12 = Meta_backslash keycode 13 = dead_acute dead_grave alt keycode 13 = 0x08b4 shift alt keycode 13 = Meta_grave keycode 14 = Delete Delete alt keycode 14 = Meta_Delete shift alt keycode 14 = Meta_Delete keycode 15 = Tab Meta_Tab alt keycode 15 = Meta_Tab keycode 16 = +q +Q at control keycode 16 = Control_q shift control keycode 16 = Control_q altgr control keycode 16 = nul alt keycode 16 = Meta_q shift alt keycode 16 = Meta_Q altgr alt keycode 16 = Meta_at keycode 17 = +w shift keycode 17 = +W shift altgr keycode 17 = VoidSymbol control keycode 17 = Control_w shift control keycode 17 = Control_w altgr control keycode 17 = Control_w alt keycode 17 = Meta_w shift alt keycode 17 = Meta_W altgr alt keycode 17 = Meta_w control alt keycode 17 = Meta_Control_w keycode 18 = +e +E currency control keycode 18 = Control_e shift control keycode 18 = Control_e altgr control keycode 18 = Control_e alt keycode 18 = Meta_e shift alt keycode 18 = Meta_E altgr alt keycode 18 = Meta_e keycode 19 = +r shift keycode 19 = +R shift altgr keycode 19 = VoidSymbol control keycode 19 = Control_r shift control keycode 19 = Control_r altgr control keycode 19 = Control_r alt keycode 19 = Meta_r shift alt keycode 19 = Meta_R altgr alt keycode 19 = Meta_r control alt keycode 19 = Meta_Control_r keycode 20 = +t shift keycode 20 = +T shift altgr keycode 20 = VoidSymbol control keycode 20 = Control_t shift control keycode 20 = Control_t altgr control keycode 20 = Control_t alt keycode 20 = Meta_t shift alt keycode 20 = Meta_T altgr alt keycode 20 = Meta_t control alt keycode 20 = Meta_Control_t keycode 21 = +z shift keycode 21 = +Z shift altgr keycode 21 = VoidSymbol control keycode 21 = Control_z shift control keycode 21 = Control_z altgr control keycode 21 = Control_z alt keycode 21 = Meta_z shift alt keycode 21 = Meta_Z altgr alt keycode 21 = Meta_z control alt keycode 21 = Meta_Control_z keycode 22 = +u shift keycode 22 = +U shift altgr keycode 22 = VoidSymbol control keycode 22 = Control_u shift control keycode 22 = Control_u altgr control keycode 22 = Control_u alt keycode 22 = Meta_u shift alt keycode 22 = Meta_U altgr alt keycode 22 = Meta_u control alt keycode 22 = Meta_Control_u keycode 23 = +i shift keycode 23 = +I shift altgr keycode 23 = VoidSymbol control keycode 23 = Tab shift control keycode 23 = Tab altgr control keycode 23 = Tab alt keycode 23 = Meta_i shift alt keycode 23 = Meta_I altgr alt keycode 23 = Meta_i control alt keycode 23 = Meta_Tab keycode 24 = +o shift keycode 24 = +O shift altgr keycode 24 = VoidSymbol control keycode 24 = Control_o shift control keycode 24 = Control_o altgr control keycode 24 = Control_o alt keycode 24 = Meta_o shift alt keycode 24 = Meta_O altgr alt keycode 24 = Meta_o control alt keycode 24 = Meta_Control_o keycode 25 = +p shift keycode 25 = +P shift altgr keycode 25 = VoidSymbol control keycode 25 = Control_p shift control keycode 25 = Control_p altgr control keycode 25 = Control_p alt keycode 25 = Meta_p shift alt keycode 25 = Meta_P altgr alt keycode 25 = Meta_p control alt keycode 25 = Meta_Control_p keycode 26 = udiaeresis Udiaeresis keycode 27 = plus asterisk dead_tilde alt keycode 27 = Meta_plus shift alt keycode 27 = Meta_asterisk keycode 28 = Return shift altgr keycode 28 = VoidSymbol alt keycode 28 = Meta_Control_m keycode 29 = Control shift keycode 29 = Compose shift altgr keycode 29 = VoidSymbol keycode 30 = +a shift keycode 30 = +A shift altgr keycode 30 = VoidSymbol control keycode 30 = Control_a shift control keycode 30 = Control_a altgr control keycode 30 = Control_a alt keycode 30 = Meta_a shift alt keycode 30 = Meta_A altgr alt keycode 30 = Meta_a control alt keycode 30 = Meta_Control_a keycode 31 = +s shift keycode 31 = +S shift altgr keycode 31 = VoidSymbol control keycode 31 = Control_s shift control keycode 31 = Control_s altgr control keycode 31 = Control_s alt keycode 31 = Meta_s shift alt keycode 31 = Meta_S altgr alt keycode 31 = Meta_s control alt keycode 31 = Meta_Control_s keycode 32 = +d shift keycode 32 = +D shift altgr keycode 32 = VoidSymbol control keycode 32 = Control_d shift control keycode 32 = Control_d altgr control keycode 32 = Control_d alt keycode 32 = Meta_d shift alt keycode 32 = Meta_D altgr alt keycode 32 = Meta_d control alt keycode 32 = Meta_Control_d keycode 33 = +f shift keycode 33 = +F shift altgr keycode 33 = VoidSymbol control keycode 33 = Control_f shift control keycode 33 = Control_f altgr control keycode 33 = Control_f alt keycode 33 = Meta_f shift alt keycode 33 = Meta_F altgr alt keycode 33 = Meta_f control alt keycode 33 = Meta_Control_f keycode 34 = +g shift keycode 34 = +G shift altgr keycode 34 = VoidSymbol control keycode 34 = Control_g shift control keycode 34 = Control_g altgr control keycode 34 = Control_g alt keycode 34 = Meta_g shift alt keycode 34 = Meta_G altgr alt keycode 34 = Meta_g control alt keycode 34 = Meta_Control_g keycode 35 = +h shift keycode 35 = +H shift altgr keycode 35 = VoidSymbol control keycode 35 = BackSpace shift control keycode 35 = BackSpace altgr control keycode 35 = BackSpace alt keycode 35 = Meta_h shift alt keycode 35 = Meta_H altgr alt keycode 35 = Meta_h control alt keycode 35 = Meta_BackSpace keycode 36 = +j shift keycode 36 = +J shift altgr keycode 36 = VoidSymbol control keycode 36 = Linefeed shift control keycode 36 = Linefeed altgr control keycode 36 = Linefeed alt keycode 36 = Meta_j shift alt keycode 36 = Meta_J altgr alt keycode 36 = Meta_j control alt keycode 36 = Meta_Linefeed keycode 37 = +k shift keycode 37 = +K shift altgr keycode 37 = VoidSymbol control keycode 37 = Control_k shift control keycode 37 = Control_k altgr control keycode 37 = Control_k alt keycode 37 = Meta_k shift alt keycode 37 = Meta_K altgr alt keycode 37 = Meta_k control alt keycode 37 = Meta_Control_k keycode 38 = +l shift keycode 38 = +L shift altgr keycode 38 = VoidSymbol control keycode 38 = Control_l shift control keycode 38 = Control_l altgr control keycode 38 = Control_l alt keycode 38 = Meta_l shift alt keycode 38 = Meta_L altgr alt keycode 38 = Meta_l control alt keycode 38 = Meta_Control_l keycode 39 = odiaeresis Odiaeresis keycode 40 = adiaeresis Adiaeresis keycode 41 = dead_circumflex degree Meta_asciicircum control keycode 41 = Control_asciicircum keycode 42 = Shift shift altgr keycode 42 = VoidSymbol control keycode 42 = Compose keycode 43 = numbersign apostrophe alt keycode 43 = Meta_numbersign shift alt keycode 43 = Meta_apostrophe keycode 44 = +y shift keycode 44 = +Y shift altgr keycode 44 = VoidSymbol control keycode 44 = Control_y shift control keycode 44 = Control_y altgr control keycode 44 = Control_y alt keycode 44 = Meta_y shift alt keycode 44 = Meta_Y altgr alt keycode 44 = Meta_y control alt keycode 44 = Meta_Control_y keycode 45 = +x shift keycode 45 = +X shift altgr keycode 45 = VoidSymbol control keycode 45 = Control_x shift control keycode 45 = Control_x altgr control keycode 45 = Control_x alt keycode 45 = Meta_x shift alt keycode 45 = Meta_X altgr alt keycode 45 = Meta_x control alt keycode 45 = Meta_Control_x keycode 46 = +c +C cent control keycode 46 = Control_c shift control keycode 46 = Control_c altgr control keycode 46 = Control_c alt keycode 46 = Meta_c shift alt keycode 46 = Meta_C altgr alt keycode 46 = Meta_c keycode 47 = +v shift keycode 47 = +V shift altgr keycode 47 = VoidSymbol control keycode 47 = Control_v shift control keycode 47 = Control_v altgr control keycode 47 = Control_v alt keycode 47 = Meta_v shift alt keycode 47 = Meta_V altgr alt keycode 47 = Meta_v control alt keycode 47 = Meta_Control_v keycode 48 = +b shift keycode 48 = +B shift altgr keycode 48 = VoidSymbol control keycode 48 = Control_b shift control keycode 48 = Control_b altgr control keycode 48 = Control_b alt keycode 48 = Meta_b shift alt keycode 48 = Meta_B altgr alt keycode 48 = Meta_b control alt keycode 48 = Meta_Control_b keycode 49 = +n shift keycode 49 = +N shift altgr keycode 49 = VoidSymbol control keycode 49 = Control_n shift control keycode 49 = Control_n altgr control keycode 49 = Control_n alt keycode 49 = Meta_n shift alt keycode 49 = Meta_N altgr alt keycode 49 = Meta_n control alt keycode 49 = Meta_Control_n keycode 50 = +m +M mu control keycode 50 = Control_m shift control keycode 50 = Control_m altgr control keycode 50 = Control_m alt keycode 50 = Meta_m shift alt keycode 50 = Meta_M altgr alt keycode 50 = Meta_m keycode 51 = comma semicolon alt keycode 51 = Meta_comma shift alt keycode 51 = Meta_semicolon keycode 52 = period colon alt keycode 52 = Meta_period shift alt keycode 52 = Meta_colon keycode 53 = minus underscore Meta_minus shift control keycode 53 = Control_underscore alt keycode 53 = Meta_minus shift alt keycode 53 = Meta_underscore keycode 54 = Shift shift altgr keycode 54 = VoidSymbol control keycode 54 = Compose keycode 55 = KP_Multiply altgr keycode 55 = Hex_C shift altgr keycode 55 = VoidSymbol keycode 56 = Alt shift altgr keycode 56 = VoidSymbol keycode 57 = space space Meta_space control keycode 57 = nul alt keycode 57 = Meta_space shift alt keycode 57 = Meta_space keycode 58 = Caps_Lock shift altgr keycode 58 = VoidSymbol keycode 59 = F1 F13 Console_13 control keycode 59 = F25 alt keycode 59 = Console_1 control alt keycode 59 = Console_1 keycode 60 = F2 F14 Console_14 control keycode 60 = F26 alt keycode 60 = Console_2 control alt keycode 60 = Console_2 keycode 61 = F3 F15 Console_15 control keycode 61 = F27 alt keycode 61 = Console_3 control alt keycode 61 = Console_3 keycode 62 = F4 F16 Console_16 control keycode 62 = F28 alt keycode 62 = Console_4 control alt keycode 62 = Console_4 keycode 63 = F5 F17 Console_17 control keycode 63 = F29 alt keycode 63 = Console_5 control alt keycode 63 = Console_5 keycode 64 = F6 F18 Console_18 control keycode 64 = F30 alt keycode 64 = Console_6 control alt keycode 64 = Console_6 keycode 65 = F7 F19 Console_19 control keycode 65 = F31 alt keycode 65 = Console_7 control alt keycode 65 = Console_7 keycode 66 = F8 F20 Console_20 control keycode 66 = F32 alt keycode 66 = Console_8 control alt keycode 66 = Console_8 keycode 67 = F9 F21 Console_21 control keycode 67 = F33 alt keycode 67 = Console_9 control alt keycode 67 = Console_9 keycode 68 = F10 F22 Console_22 control keycode 68 = F34 alt keycode 68 = Console_10 control alt keycode 68 = Console_10 keycode 69 = Num_Lock altgr keycode 69 = Hex_A shift altgr keycode 69 = VoidSymbol keycode 70 = Scroll_Lock Show_Memory Show_Registers control keycode 70 = Show_State alt keycode 70 = Scroll_Lock keycode 71 = KP_7 altgr keycode 71 = Hex_7 shift altgr keycode 71 = VoidSymbol alt keycode 71 = Ascii_7 keycode 72 = KP_8 altgr keycode 72 = Hex_8 shift altgr keycode 72 = VoidSymbol alt keycode 72 = Ascii_8 keycode 73 = KP_9 altgr keycode 73 = Hex_9 shift altgr keycode 73 = VoidSymbol alt keycode 73 = Ascii_9 keycode 74 = KP_Subtract altgr keycode 74 = Hex_D shift altgr keycode 74 = VoidSymbol keycode 75 = KP_4 altgr keycode 75 = Hex_4 shift altgr keycode 75 = VoidSymbol alt keycode 75 = Ascii_4 keycode 76 = KP_5 altgr keycode 76 = Hex_5 shift altgr keycode 76 = VoidSymbol alt keycode 76 = Ascii_5 keycode 77 = KP_6 altgr keycode 77 = Hex_6 shift altgr keycode 77 = VoidSymbol alt keycode 77 = Ascii_6 keycode 78 = KP_Add altgr keycode 78 = Hex_E shift altgr keycode 78 = VoidSymbol keycode 79 = KP_1 altgr keycode 79 = Hex_1 shift altgr keycode 79 = VoidSymbol alt keycode 79 = Ascii_1 keycode 80 = KP_2 altgr keycode 80 = Hex_2 shift altgr keycode 80 = VoidSymbol alt keycode 80 = Ascii_2 keycode 81 = KP_3 altgr keycode 81 = Hex_3 shift altgr keycode 81 = VoidSymbol alt keycode 81 = Ascii_3 keycode 82 = KP_0 altgr keycode 82 = Hex_0 shift altgr keycode 82 = VoidSymbol alt keycode 82 = Ascii_0 keycode 83 = KP_Comma shift altgr keycode 83 = VoidSymbol altgr control keycode 83 = Boot control alt keycode 83 = Boot keycode 84 = Last_Console shift altgr keycode 84 = VoidSymbol keycode 85 = keycode 86 = less greater bar alt keycode 86 = Meta_less shift alt keycode 86 = Meta_greater altgr alt keycode 86 = Meta_bar keycode 87 = F11 F23 Console_23 control keycode 87 = F35 alt keycode 87 = Console_11 control alt keycode 87 = Console_11 keycode 88 = F12 F24 Console_24 control keycode 88 = F36 alt keycode 88 = Console_12 control alt keycode 88 = Console_12 keycode 89 = keycode 90 = keycode 91 = keycode 92 = keycode 93 = keycode 94 = keycode 95 = keycode 96 = KP_Enter altgr keycode 96 = Hex_F shift altgr keycode 96 = VoidSymbol keycode 97 = Control shift keycode 97 = Compose shift altgr keycode 97 = VoidSymbol keycode 98 = KP_Divide altgr keycode 98 = Hex_B shift altgr keycode 98 = VoidSymbol keycode 99 = control keycode 99 = Control_backslash alt keycode 99 = Control_backslash keycode 100 = AltGr shift altgr keycode 100 = VoidSymbol keycode 101 = Break shift altgr keycode 101 = VoidSymbol keycode 102 = Find shift altgr keycode 102 = VoidSymbol keycode 103 = Up shift altgr keycode 103 = VoidSymbol alt keycode 103 = KeyboardSignal keycode 104 = Prior shift keycode 104 = Scroll_Backward shift altgr keycode 104 = VoidSymbol keycode 105 = Left shift altgr keycode 105 = VoidSymbol alt keycode 105 = Decr_Console keycode 106 = Right shift altgr keycode 106 = VoidSymbol alt keycode 106 = Incr_Console keycode 107 = Select shift altgr keycode 107 = VoidSymbol keycode 108 = Down shift altgr keycode 108 = VoidSymbol keycode 109 = Next shift keycode 109 = Scroll_Forward shift altgr keycode 109 = VoidSymbol keycode 110 = Insert shift altgr keycode 110 = VoidSymbol keycode 111 = Remove shift altgr keycode 111 = VoidSymbol altgr control keycode 111 = Boot control alt keycode 111 = Boot keycode 112 = Macro shift altgr keycode 112 = VoidSymbol altgr control keycode 112 = VoidSymbol shift alt keycode 112 = VoidSymbol altgr alt keycode 112 = VoidSymbol keycode 113 = F13 shift altgr keycode 113 = VoidSymbol altgr control keycode 113 = VoidSymbol shift alt keycode 113 = VoidSymbol altgr alt keycode 113 = VoidSymbol keycode 114 = F14 shift altgr keycode 114 = VoidSymbol altgr control keycode 114 = VoidSymbol shift alt keycode 114 = VoidSymbol altgr alt keycode 114 = VoidSymbol keycode 115 = Help shift altgr keycode 115 = VoidSymbol altgr control keycode 115 = VoidSymbol shift alt keycode 115 = VoidSymbol altgr alt keycode 115 = VoidSymbol keycode 116 = Do shift altgr keycode 116 = VoidSymbol altgr control keycode 116 = VoidSymbol shift alt keycode 116 = VoidSymbol altgr alt keycode 116 = VoidSymbol keycode 117 = F17 shift altgr keycode 117 = VoidSymbol altgr control keycode 117 = VoidSymbol shift alt keycode 117 = VoidSymbol altgr alt keycode 117 = VoidSymbol keycode 118 = KP_MinPlus shift altgr keycode 118 = VoidSymbol altgr control keycode 118 = VoidSymbol shift alt keycode 118 = VoidSymbol altgr alt keycode 118 = VoidSymbol keycode 119 = Pause shift altgr keycode 119 = VoidSymbol keycode 120 = keycode 121 = keycode 122 = keycode 123 = keycode 124 = keycode 125 = Decr_Console Last_Console Incr_Console Compose keycode 126 = Incr_Console Last_Console Decr_Console Compose keycode 127 = Compose Decr_Console Incr_Console Last_Console keycode 128 = nul shift altgr keycode 128 = VoidSymbol altgr control keycode 128 = VoidSymbol alt keycode 128 = Meta_nul shift alt keycode 128 = VoidSymbol altgr alt keycode 128 = VoidSymbol control alt keycode 128 = Meta_nul keycode 129 = nul shift altgr keycode 129 = VoidSymbol altgr control keycode 129 = VoidSymbol alt keycode 129 = Meta_nul shift alt keycode 129 = VoidSymbol altgr alt keycode 129 = VoidSymbol control alt keycode 129 = Meta_nul keycode 130 = nul shift altgr keycode 130 = VoidSymbol altgr control keycode 130 = VoidSymbol alt keycode 130 = Meta_nul shift alt keycode 130 = VoidSymbol altgr alt keycode 130 = VoidSymbol control alt keycode 130 = Meta_nul keycode 131 = nul shift altgr keycode 131 = VoidSymbol altgr control keycode 131 = VoidSymbol alt keycode 131 = Meta_nul shift alt keycode 131 = VoidSymbol altgr alt keycode 131 = VoidSymbol control alt keycode 131 = Meta_nul keycode 132 = nul shift altgr keycode 132 = VoidSymbol altgr control keycode 132 = VoidSymbol alt keycode 132 = Meta_nul shift alt keycode 132 = VoidSymbol altgr alt keycode 132 = VoidSymbol control alt keycode 132 = Meta_nul keycode 133 = nul shift altgr keycode 133 = VoidSymbol altgr control keycode 133 = VoidSymbol alt keycode 133 = Meta_nul shift alt keycode 133 = VoidSymbol altgr alt keycode 133 = VoidSymbol control alt keycode 133 = Meta_nul keycode 134 = nul shift altgr keycode 134 = VoidSymbol altgr control keycode 134 = VoidSymbol alt keycode 134 = Meta_nul shift alt keycode 134 = VoidSymbol altgr alt keycode 134 = VoidSymbol control alt keycode 134 = Meta_nul keycode 135 = nul shift altgr keycode 135 = VoidSymbol altgr control keycode 135 = VoidSymbol alt keycode 135 = Meta_nul shift alt keycode 135 = VoidSymbol altgr alt keycode 135 = VoidSymbol control alt keycode 135 = Meta_nul keycode 136 = nul shift altgr keycode 136 = VoidSymbol altgr control keycode 136 = VoidSymbol alt keycode 136 = Meta_nul shift alt keycode 136 = VoidSymbol altgr alt keycode 136 = VoidSymbol control alt keycode 136 = Meta_nul keycode 137 = nul shift altgr keycode 137 = VoidSymbol altgr control keycode 137 = VoidSymbol alt keycode 137 = Meta_nul shift alt keycode 137 = VoidSymbol altgr alt keycode 137 = VoidSymbol control alt keycode 137 = Meta_nul keycode 138 = nul shift altgr keycode 138 = VoidSymbol altgr control keycode 138 = VoidSymbol alt keycode 138 = Meta_nul shift alt keycode 138 = VoidSymbol altgr alt keycode 138 = VoidSymbol control alt keycode 138 = Meta_nul keycode 139 = nul shift altgr keycode 139 = VoidSymbol altgr control keycode 139 = VoidSymbol alt keycode 139 = Meta_nul shift alt keycode 139 = VoidSymbol altgr alt keycode 139 = VoidSymbol control alt keycode 139 = Meta_nul keycode 140 = nul shift altgr keycode 140 = VoidSymbol altgr control keycode 140 = VoidSymbol alt keycode 140 = Meta_nul shift alt keycode 140 = VoidSymbol altgr alt keycode 140 = VoidSymbol control alt keycode 140 = Meta_nul keycode 141 = nul shift altgr keycode 141 = VoidSymbol altgr control keycode 141 = VoidSymbol alt keycode 141 = Meta_nul shift alt keycode 141 = VoidSymbol altgr alt keycode 141 = VoidSymbol control alt keycode 141 = Meta_nul keycode 142 = nul shift altgr keycode 142 = VoidSymbol altgr control keycode 142 = VoidSymbol alt keycode 142 = Meta_nul shift alt keycode 142 = VoidSymbol altgr alt keycode 142 = VoidSymbol control alt keycode 142 = Meta_nul keycode 143 = nul shift altgr keycode 143 = VoidSymbol altgr control keycode 143 = VoidSymbol alt keycode 143 = Meta_nul shift alt keycode 143 = VoidSymbol altgr alt keycode 143 = VoidSymbol control alt keycode 143 = Meta_nul keycode 144 = nul shift altgr keycode 144 = VoidSymbol altgr control keycode 144 = VoidSymbol alt keycode 144 = Meta_nul shift alt keycode 144 = VoidSymbol altgr alt keycode 144 = VoidSymbol control alt keycode 144 = Meta_nul keycode 145 = nul shift altgr keycode 145 = VoidSymbol altgr control keycode 145 = VoidSymbol alt keycode 145 = Meta_nul shift alt keycode 145 = VoidSymbol altgr alt keycode 145 = VoidSymbol control alt keycode 145 = Meta_nul keycode 146 = nul shift altgr keycode 146 = VoidSymbol altgr control keycode 146 = VoidSymbol alt keycode 146 = Meta_nul shift alt keycode 146 = VoidSymbol altgr alt keycode 146 = VoidSymbol control alt keycode 146 = Meta_nul keycode 147 = nul shift altgr keycode 147 = VoidSymbol altgr control keycode 147 = VoidSymbol alt keycode 147 = Meta_nul shift alt keycode 147 = VoidSymbol altgr alt keycode 147 = VoidSymbol control alt keycode 147 = Meta_nul keycode 148 = nul shift altgr keycode 148 = VoidSymbol altgr control keycode 148 = VoidSymbol alt keycode 148 = Meta_nul shift alt keycode 148 = VoidSymbol altgr alt keycode 148 = VoidSymbol control alt keycode 148 = Meta_nul keycode 149 = nul shift altgr keycode 149 = VoidSymbol altgr control keycode 149 = VoidSymbol alt keycode 149 = Meta_nul shift alt keycode 149 = VoidSymbol altgr alt keycode 149 = VoidSymbol control alt keycode 149 = Meta_nul keycode 150 = nul shift altgr keycode 150 = VoidSymbol altgr control keycode 150 = VoidSymbol alt keycode 150 = Meta_nul shift alt keycode 150 = VoidSymbol altgr alt keycode 150 = VoidSymbol control alt keycode 150 = Meta_nul keycode 151 = nul shift altgr keycode 151 = VoidSymbol altgr control keycode 151 = VoidSymbol alt keycode 151 = Meta_nul shift alt keycode 151 = VoidSymbol altgr alt keycode 151 = VoidSymbol control alt keycode 151 = Meta_nul keycode 152 = nul shift altgr keycode 152 = VoidSymbol altgr control keycode 152 = VoidSymbol alt keycode 152 = Meta_nul shift alt keycode 152 = VoidSymbol altgr alt keycode 152 = VoidSymbol control alt keycode 152 = Meta_nul keycode 153 = nul shift altgr keycode 153 = VoidSymbol altgr control keycode 153 = VoidSymbol alt keycode 153 = Meta_nul shift alt keycode 153 = VoidSymbol altgr alt keycode 153 = VoidSymbol control alt keycode 153 = Meta_nul keycode 154 = nul shift altgr keycode 154 = VoidSymbol altgr control keycode 154 = VoidSymbol alt keycode 154 = Meta_nul shift alt keycode 154 = VoidSymbol altgr alt keycode 154 = VoidSymbol control alt keycode 154 = Meta_nul keycode 155 = nul shift altgr keycode 155 = VoidSymbol altgr control keycode 155 = VoidSymbol alt keycode 155 = Meta_nul shift alt keycode 155 = VoidSymbol altgr alt keycode 155 = VoidSymbol control alt keycode 155 = Meta_nul keycode 156 = nul shift altgr keycode 156 = VoidSymbol altgr control keycode 156 = VoidSymbol alt keycode 156 = Meta_nul shift alt keycode 156 = VoidSymbol altgr alt keycode 156 = VoidSymbol control alt keycode 156 = Meta_nul keycode 157 = nul shift altgr keycode 157 = VoidSymbol altgr control keycode 157 = VoidSymbol alt keycode 157 = Meta_nul shift alt keycode 157 = VoidSymbol altgr alt keycode 157 = VoidSymbol control alt keycode 157 = Meta_nul keycode 158 = nul shift altgr keycode 158 = VoidSymbol altgr control keycode 158 = VoidSymbol alt keycode 158 = Meta_nul shift alt keycode 158 = VoidSymbol altgr alt keycode 158 = VoidSymbol control alt keycode 158 = Meta_nul keycode 159 = nul shift altgr keycode 159 = VoidSymbol altgr control keycode 159 = VoidSymbol alt keycode 159 = Meta_nul shift alt keycode 159 = VoidSymbol altgr alt keycode 159 = VoidSymbol control alt keycode 159 = Meta_nul keycode 160 = nul shift altgr keycode 160 = VoidSymbol altgr control keycode 160 = VoidSymbol alt keycode 160 = Meta_nul shift alt keycode 160 = VoidSymbol altgr alt keycode 160 = VoidSymbol control alt keycode 160 = Meta_nul keycode 161 = nul shift altgr keycode 161 = VoidSymbol altgr control keycode 161 = VoidSymbol alt keycode 161 = Meta_nul shift alt keycode 161 = VoidSymbol altgr alt keycode 161 = VoidSymbol control alt keycode 161 = Meta_nul keycode 162 = nul shift altgr keycode 162 = VoidSymbol altgr control keycode 162 = VoidSymbol alt keycode 162 = Meta_nul shift alt keycode 162 = VoidSymbol altgr alt keycode 162 = VoidSymbol control alt keycode 162 = Meta_nul keycode 163 = nul shift altgr keycode 163 = VoidSymbol altgr control keycode 163 = VoidSymbol alt keycode 163 = Meta_nul shift alt keycode 163 = VoidSymbol altgr alt keycode 163 = VoidSymbol control alt keycode 163 = Meta_nul keycode 164 = nul shift altgr keycode 164 = VoidSymbol altgr control keycode 164 = VoidSymbol alt keycode 164 = Meta_nul shift alt keycode 164 = VoidSymbol altgr alt keycode 164 = VoidSymbol control alt keycode 164 = Meta_nul keycode 165 = nul shift altgr keycode 165 = VoidSymbol altgr control keycode 165 = VoidSymbol alt keycode 165 = Meta_nul shift alt keycode 165 = VoidSymbol altgr alt keycode 165 = VoidSymbol control alt keycode 165 = Meta_nul keycode 166 = nul shift altgr keycode 166 = VoidSymbol altgr control keycode 166 = VoidSymbol alt keycode 166 = Meta_nul shift alt keycode 166 = VoidSymbol altgr alt keycode 166 = VoidSymbol control alt keycode 166 = Meta_nul keycode 167 = nul shift altgr keycode 167 = VoidSymbol altgr control keycode 167 = VoidSymbol alt keycode 167 = Meta_nul shift alt keycode 167 = VoidSymbol altgr alt keycode 167 = VoidSymbol control alt keycode 167 = Meta_nul keycode 168 = nul shift altgr keycode 168 = VoidSymbol altgr control keycode 168 = VoidSymbol alt keycode 168 = Meta_nul shift alt keycode 168 = VoidSymbol altgr alt keycode 168 = VoidSymbol control alt keycode 168 = Meta_nul keycode 169 = nul shift altgr keycode 169 = VoidSymbol altgr control keycode 169 = VoidSymbol alt keycode 169 = Meta_nul shift alt keycode 169 = VoidSymbol altgr alt keycode 169 = VoidSymbol control alt keycode 169 = Meta_nul keycode 170 = nul shift altgr keycode 170 = VoidSymbol altgr control keycode 170 = VoidSymbol alt keycode 170 = Meta_nul shift alt keycode 170 = VoidSymbol altgr alt keycode 170 = VoidSymbol control alt keycode 170 = Meta_nul keycode 171 = nul shift altgr keycode 171 = VoidSymbol altgr control keycode 171 = VoidSymbol alt keycode 171 = Meta_nul shift alt keycode 171 = VoidSymbol altgr alt keycode 171 = VoidSymbol control alt keycode 171 = Meta_nul keycode 172 = nul shift altgr keycode 172 = VoidSymbol altgr control keycode 172 = VoidSymbol alt keycode 172 = Meta_nul shift alt keycode 172 = VoidSymbol altgr alt keycode 172 = VoidSymbol control alt keycode 172 = Meta_nul keycode 173 = nul shift altgr keycode 173 = VoidSymbol altgr control keycode 173 = VoidSymbol alt keycode 173 = Meta_nul shift alt keycode 173 = VoidSymbol altgr alt keycode 173 = VoidSymbol control alt keycode 173 = Meta_nul keycode 174 = nul shift altgr keycode 174 = VoidSymbol altgr control keycode 174 = VoidSymbol alt keycode 174 = Meta_nul shift alt keycode 174 = VoidSymbol altgr alt keycode 174 = VoidSymbol control alt keycode 174 = Meta_nul keycode 175 = nul shift altgr keycode 175 = VoidSymbol altgr control keycode 175 = VoidSymbol alt keycode 175 = Meta_nul shift alt keycode 175 = VoidSymbol altgr alt keycode 175 = VoidSymbol control alt keycode 175 = Meta_nul keycode 176 = nul shift altgr keycode 176 = VoidSymbol altgr control keycode 176 = VoidSymbol alt keycode 176 = Meta_nul shift alt keycode 176 = VoidSymbol altgr alt keycode 176 = VoidSymbol control alt keycode 176 = Meta_nul keycode 177 = nul shift altgr keycode 177 = VoidSymbol altgr control keycode 177 = VoidSymbol alt keycode 177 = Meta_nul shift alt keycode 177 = VoidSymbol altgr alt keycode 177 = VoidSymbol control alt keycode 177 = Meta_nul keycode 178 = nul shift altgr keycode 178 = VoidSymbol altgr control keycode 178 = VoidSymbol alt keycode 178 = Meta_nul shift alt keycode 178 = VoidSymbol altgr alt keycode 178 = VoidSymbol control alt keycode 178 = Meta_nul keycode 179 = nul shift altgr keycode 179 = VoidSymbol altgr control keycode 179 = VoidSymbol alt keycode 179 = Meta_nul shift alt keycode 179 = VoidSymbol altgr alt keycode 179 = VoidSymbol control alt keycode 179 = Meta_nul keycode 180 = nul shift altgr keycode 180 = VoidSymbol altgr control keycode 180 = VoidSymbol alt keycode 180 = Meta_nul shift alt keycode 180 = VoidSymbol altgr alt keycode 180 = VoidSymbol control alt keycode 180 = Meta_nul keycode 181 = nul shift altgr keycode 181 = VoidSymbol altgr control keycode 181 = VoidSymbol alt keycode 181 = Meta_nul shift alt keycode 181 = VoidSymbol altgr alt keycode 181 = VoidSymbol control alt keycode 181 = Meta_nul keycode 182 = nul shift altgr keycode 182 = VoidSymbol altgr control keycode 182 = VoidSymbol alt keycode 182 = Meta_nul shift alt keycode 182 = VoidSymbol altgr alt keycode 182 = VoidSymbol control alt keycode 182 = Meta_nul keycode 183 = nul shift altgr keycode 183 = VoidSymbol altgr control keycode 183 = VoidSymbol alt keycode 183 = Meta_nul shift alt keycode 183 = VoidSymbol altgr alt keycode 183 = VoidSymbol control alt keycode 183 = Meta_nul keycode 184 = nul shift altgr keycode 184 = VoidSymbol altgr control keycode 184 = VoidSymbol alt keycode 184 = Meta_nul shift alt keycode 184 = VoidSymbol altgr alt keycode 184 = VoidSymbol control alt keycode 184 = Meta_nul keycode 185 = nul shift altgr keycode 185 = VoidSymbol altgr control keycode 185 = VoidSymbol alt keycode 185 = Meta_nul shift alt keycode 185 = VoidSymbol altgr alt keycode 185 = VoidSymbol control alt keycode 185 = Meta_nul keycode 186 = nul shift altgr keycode 186 = VoidSymbol altgr control keycode 186 = VoidSymbol alt keycode 186 = Meta_nul shift alt keycode 186 = VoidSymbol altgr alt keycode 186 = VoidSymbol control alt keycode 186 = Meta_nul keycode 187 = nul shift altgr keycode 187 = VoidSymbol altgr control keycode 187 = VoidSymbol alt keycode 187 = Meta_nul shift alt keycode 187 = VoidSymbol altgr alt keycode 187 = VoidSymbol control alt keycode 187 = Meta_nul keycode 188 = nul shift altgr keycode 188 = VoidSymbol altgr control keycode 188 = VoidSymbol alt keycode 188 = Meta_nul shift alt keycode 188 = VoidSymbol altgr alt keycode 188 = VoidSymbol control alt keycode 188 = Meta_nul keycode 189 = nul shift altgr keycode 189 = VoidSymbol altgr control keycode 189 = VoidSymbol alt keycode 189 = Meta_nul shift alt keycode 189 = VoidSymbol altgr alt keycode 189 = VoidSymbol control alt keycode 189 = Meta_nul keycode 190 = nul shift altgr keycode 190 = VoidSymbol altgr control keycode 190 = VoidSymbol alt keycode 190 = Meta_nul shift alt keycode 190 = VoidSymbol altgr alt keycode 190 = VoidSymbol control alt keycode 190 = Meta_nul keycode 191 = nul shift altgr keycode 191 = VoidSymbol altgr control keycode 191 = VoidSymbol alt keycode 191 = Meta_nul shift alt keycode 191 = VoidSymbol altgr alt keycode 191 = VoidSymbol control alt keycode 191 = Meta_nul keycode 192 = nul shift altgr keycode 192 = VoidSymbol altgr control keycode 192 = VoidSymbol alt keycode 192 = Meta_nul shift alt keycode 192 = VoidSymbol altgr alt keycode 192 = VoidSymbol control alt keycode 192 = Meta_nul keycode 193 = nul shift altgr keycode 193 = VoidSymbol altgr control keycode 193 = VoidSymbol alt keycode 193 = Meta_nul shift alt keycode 193 = VoidSymbol altgr alt keycode 193 = VoidSymbol control alt keycode 193 = Meta_nul keycode 194 = nul shift altgr keycode 194 = VoidSymbol altgr control keycode 194 = VoidSymbol alt keycode 194 = Meta_nul shift alt keycode 194 = VoidSymbol altgr alt keycode 194 = VoidSymbol control alt keycode 194 = Meta_nul keycode 195 = nul shift altgr keycode 195 = VoidSymbol altgr control keycode 195 = VoidSymbol alt keycode 195 = Meta_nul shift alt keycode 195 = VoidSymbol altgr alt keycode 195 = VoidSymbol control alt keycode 195 = Meta_nul keycode 196 = nul shift altgr keycode 196 = VoidSymbol altgr control keycode 196 = VoidSymbol alt keycode 196 = Meta_nul shift alt keycode 196 = VoidSymbol altgr alt keycode 196 = VoidSymbol control alt keycode 196 = Meta_nul keycode 197 = nul shift altgr keycode 197 = VoidSymbol altgr control keycode 197 = VoidSymbol alt keycode 197 = Meta_nul shift alt keycode 197 = VoidSymbol altgr alt keycode 197 = VoidSymbol control alt keycode 197 = Meta_nul keycode 198 = nul shift altgr keycode 198 = VoidSymbol altgr control keycode 198 = VoidSymbol alt keycode 198 = Meta_nul shift alt keycode 198 = VoidSymbol altgr alt keycode 198 = VoidSymbol control alt keycode 198 = Meta_nul keycode 199 = nul shift altgr keycode 199 = VoidSymbol altgr control keycode 199 = VoidSymbol alt keycode 199 = Meta_nul shift alt keycode 199 = VoidSymbol altgr alt keycode 199 = VoidSymbol control alt keycode 199 = Meta_nul keycode 200 = nul shift altgr keycode 200 = VoidSymbol altgr control keycode 200 = VoidSymbol alt keycode 200 = Meta_nul shift alt keycode 200 = VoidSymbol altgr alt keycode 200 = VoidSymbol control alt keycode 200 = Meta_nul keycode 201 = nul shift altgr keycode 201 = VoidSymbol altgr control keycode 201 = VoidSymbol alt keycode 201 = Meta_nul shift alt keycode 201 = VoidSymbol altgr alt keycode 201 = VoidSymbol control alt keycode 201 = Meta_nul keycode 202 = nul shift altgr keycode 202 = VoidSymbol altgr control keycode 202 = VoidSymbol alt keycode 202 = Meta_nul shift alt keycode 202 = VoidSymbol altgr alt keycode 202 = VoidSymbol control alt keycode 202 = Meta_nul keycode 203 = nul shift altgr keycode 203 = VoidSymbol altgr control keycode 203 = VoidSymbol alt keycode 203 = Meta_nul shift alt keycode 203 = VoidSymbol altgr alt keycode 203 = VoidSymbol control alt keycode 203 = Meta_nul keycode 204 = nul shift altgr keycode 204 = VoidSymbol altgr control keycode 204 = VoidSymbol alt keycode 204 = Meta_nul shift alt keycode 204 = VoidSymbol altgr alt keycode 204 = VoidSymbol control alt keycode 204 = Meta_nul keycode 205 = nul shift altgr keycode 205 = VoidSymbol altgr control keycode 205 = VoidSymbol alt keycode 205 = Meta_nul shift alt keycode 205 = VoidSymbol altgr alt keycode 205 = VoidSymbol control alt keycode 205 = Meta_nul keycode 206 = nul shift altgr keycode 206 = VoidSymbol altgr control keycode 206 = VoidSymbol alt keycode 206 = Meta_nul shift alt keycode 206 = VoidSymbol altgr alt keycode 206 = VoidSymbol control alt keycode 206 = Meta_nul keycode 207 = nul shift altgr keycode 207 = VoidSymbol altgr control keycode 207 = VoidSymbol alt keycode 207 = Meta_nul shift alt keycode 207 = VoidSymbol altgr alt keycode 207 = VoidSymbol control alt keycode 207 = Meta_nul keycode 208 = nul shift altgr keycode 208 = VoidSymbol altgr control keycode 208 = VoidSymbol alt keycode 208 = Meta_nul shift alt keycode 208 = VoidSymbol altgr alt keycode 208 = VoidSymbol control alt keycode 208 = Meta_nul keycode 209 = nul shift altgr keycode 209 = VoidSymbol altgr control keycode 209 = VoidSymbol alt keycode 209 = Meta_nul shift alt keycode 209 = VoidSymbol altgr alt keycode 209 = VoidSymbol control alt keycode 209 = Meta_nul keycode 210 = nul shift altgr keycode 210 = VoidSymbol altgr control keycode 210 = VoidSymbol alt keycode 210 = Meta_nul shift alt keycode 210 = VoidSymbol altgr alt keycode 210 = VoidSymbol control alt keycode 210 = Meta_nul keycode 211 = nul shift altgr keycode 211 = VoidSymbol altgr control keycode 211 = VoidSymbol alt keycode 211 = Meta_nul shift alt keycode 211 = VoidSymbol altgr alt keycode 211 = VoidSymbol control alt keycode 211 = Meta_nul keycode 212 = nul shift altgr keycode 212 = VoidSymbol altgr control keycode 212 = VoidSymbol alt keycode 212 = Meta_nul shift alt keycode 212 = VoidSymbol altgr alt keycode 212 = VoidSymbol control alt keycode 212 = Meta_nul keycode 213 = nul shift altgr keycode 213 = VoidSymbol altgr control keycode 213 = VoidSymbol alt keycode 213 = Meta_nul shift alt keycode 213 = VoidSymbol altgr alt keycode 213 = VoidSymbol control alt keycode 213 = Meta_nul keycode 214 = nul shift altgr keycode 214 = VoidSymbol altgr control keycode 214 = VoidSymbol alt keycode 214 = Meta_nul shift alt keycode 214 = VoidSymbol altgr alt keycode 214 = VoidSymbol control alt keycode 214 = Meta_nul keycode 215 = nul shift altgr keycode 215 = VoidSymbol altgr control keycode 215 = VoidSymbol alt keycode 215 = Meta_nul shift alt keycode 215 = VoidSymbol altgr alt keycode 215 = VoidSymbol control alt keycode 215 = Meta_nul keycode 216 = nul shift altgr keycode 216 = VoidSymbol altgr control keycode 216 = VoidSymbol alt keycode 216 = Meta_nul shift alt keycode 216 = VoidSymbol altgr alt keycode 216 = VoidSymbol control alt keycode 216 = Meta_nul keycode 217 = nul shift altgr keycode 217 = VoidSymbol altgr control keycode 217 = VoidSymbol alt keycode 217 = Meta_nul shift alt keycode 217 = VoidSymbol altgr alt keycode 217 = VoidSymbol control alt keycode 217 = Meta_nul keycode 218 = nul shift altgr keycode 218 = VoidSymbol altgr control keycode 218 = VoidSymbol alt keycode 218 = Meta_nul shift alt keycode 218 = VoidSymbol altgr alt keycode 218 = VoidSymbol control alt keycode 218 = Meta_nul keycode 219 = nul shift altgr keycode 219 = VoidSymbol altgr control keycode 219 = VoidSymbol alt keycode 219 = Meta_nul shift alt keycode 219 = VoidSymbol altgr alt keycode 219 = VoidSymbol control alt keycode 219 = Meta_nul keycode 220 = nul shift altgr keycode 220 = VoidSymbol altgr control keycode 220 = VoidSymbol alt keycode 220 = Meta_nul shift alt keycode 220 = VoidSymbol altgr alt keycode 220 = VoidSymbol control alt keycode 220 = Meta_nul keycode 221 = nul shift altgr keycode 221 = VoidSymbol altgr control keycode 221 = VoidSymbol alt keycode 221 = Meta_nul shift alt keycode 221 = VoidSymbol altgr alt keycode 221 = VoidSymbol control alt keycode 221 = Meta_nul keycode 222 = nul shift altgr keycode 222 = VoidSymbol altgr control keycode 222 = VoidSymbol alt keycode 222 = Meta_nul shift alt keycode 222 = VoidSymbol altgr alt keycode 222 = VoidSymbol control alt keycode 222 = Meta_nul keycode 223 = nul shift altgr keycode 223 = VoidSymbol altgr control keycode 223 = VoidSymbol alt keycode 223 = Meta_nul shift alt keycode 223 = VoidSymbol altgr alt keycode 223 = VoidSymbol control alt keycode 223 = Meta_nul keycode 224 = nul shift altgr keycode 224 = VoidSymbol altgr control keycode 224 = VoidSymbol alt keycode 224 = Meta_nul shift alt keycode 224 = VoidSymbol altgr alt keycode 224 = VoidSymbol control alt keycode 224 = Meta_nul keycode 225 = nul shift altgr keycode 225 = VoidSymbol altgr control keycode 225 = VoidSymbol alt keycode 225 = Meta_nul shift alt keycode 225 = VoidSymbol altgr alt keycode 225 = VoidSymbol control alt keycode 225 = Meta_nul keycode 226 = nul shift altgr keycode 226 = VoidSymbol altgr control keycode 226 = VoidSymbol alt keycode 226 = Meta_nul shift alt keycode 226 = VoidSymbol altgr alt keycode 226 = VoidSymbol control alt keycode 226 = Meta_nul keycode 227 = nul shift altgr keycode 227 = VoidSymbol altgr control keycode 227 = VoidSymbol alt keycode 227 = Meta_nul shift alt keycode 227 = VoidSymbol altgr alt keycode 227 = VoidSymbol control alt keycode 227 = Meta_nul keycode 228 = nul shift altgr keycode 228 = VoidSymbol altgr control keycode 228 = VoidSymbol alt keycode 228 = Meta_nul shift alt keycode 228 = VoidSymbol altgr alt keycode 228 = VoidSymbol control alt keycode 228 = Meta_nul keycode 229 = nul shift altgr keycode 229 = VoidSymbol altgr control keycode 229 = VoidSymbol alt keycode 229 = Meta_nul shift alt keycode 229 = VoidSymbol altgr alt keycode 229 = VoidSymbol control alt keycode 229 = Meta_nul keycode 230 = nul shift altgr keycode 230 = VoidSymbol altgr control keycode 230 = VoidSymbol alt keycode 230 = Meta_nul shift alt keycode 230 = VoidSymbol altgr alt keycode 230 = VoidSymbol control alt keycode 230 = Meta_nul keycode 231 = nul shift altgr keycode 231 = VoidSymbol altgr control keycode 231 = VoidSymbol alt keycode 231 = Meta_nul shift alt keycode 231 = VoidSymbol altgr alt keycode 231 = VoidSymbol control alt keycode 231 = Meta_nul keycode 232 = nul shift altgr keycode 232 = VoidSymbol altgr control keycode 232 = VoidSymbol alt keycode 232 = Meta_nul shift alt keycode 232 = VoidSymbol altgr alt keycode 232 = VoidSymbol control alt keycode 232 = Meta_nul keycode 233 = nul shift altgr keycode 233 = VoidSymbol altgr control keycode 233 = VoidSymbol alt keycode 233 = Meta_nul shift alt keycode 233 = VoidSymbol altgr alt keycode 233 = VoidSymbol control alt keycode 233 = Meta_nul keycode 234 = nul shift altgr keycode 234 = VoidSymbol altgr control keycode 234 = VoidSymbol alt keycode 234 = Meta_nul shift alt keycode 234 = VoidSymbol altgr alt keycode 234 = VoidSymbol control alt keycode 234 = Meta_nul keycode 235 = nul shift altgr keycode 235 = VoidSymbol altgr control keycode 235 = VoidSymbol alt keycode 235 = Meta_nul shift alt keycode 235 = VoidSymbol altgr alt keycode 235 = VoidSymbol control alt keycode 235 = Meta_nul keycode 236 = nul shift altgr keycode 236 = VoidSymbol altgr control keycode 236 = VoidSymbol alt keycode 236 = Meta_nul shift alt keycode 236 = VoidSymbol altgr alt keycode 236 = VoidSymbol control alt keycode 236 = Meta_nul keycode 237 = nul shift altgr keycode 237 = VoidSymbol altgr control keycode 237 = VoidSymbol alt keycode 237 = Meta_nul shift alt keycode 237 = VoidSymbol altgr alt keycode 237 = VoidSymbol control alt keycode 237 = Meta_nul keycode 238 = nul shift altgr keycode 238 = VoidSymbol altgr control keycode 238 = VoidSymbol alt keycode 238 = Meta_nul shift alt keycode 238 = VoidSymbol altgr alt keycode 238 = VoidSymbol control alt keycode 238 = Meta_nul keycode 239 = nul shift altgr keycode 239 = VoidSymbol altgr control keycode 239 = VoidSymbol alt keycode 239 = Meta_nul shift alt keycode 239 = VoidSymbol altgr alt keycode 239 = VoidSymbol control alt keycode 239 = Meta_nul keycode 240 = nul shift altgr keycode 240 = VoidSymbol altgr control keycode 240 = VoidSymbol alt keycode 240 = Meta_nul shift alt keycode 240 = VoidSymbol altgr alt keycode 240 = VoidSymbol control alt keycode 240 = Meta_nul keycode 241 = nul shift altgr keycode 241 = VoidSymbol altgr control keycode 241 = VoidSymbol alt keycode 241 = Meta_nul shift alt keycode 241 = VoidSymbol altgr alt keycode 241 = VoidSymbol control alt keycode 241 = Meta_nul keycode 242 = nul shift altgr keycode 242 = VoidSymbol altgr control keycode 242 = VoidSymbol alt keycode 242 = Meta_nul shift alt keycode 242 = VoidSymbol altgr alt keycode 242 = VoidSymbol control alt keycode 242 = Meta_nul keycode 243 = nul shift altgr keycode 243 = VoidSymbol altgr control keycode 243 = VoidSymbol alt keycode 243 = Meta_nul shift alt keycode 243 = VoidSymbol altgr alt keycode 243 = VoidSymbol control alt keycode 243 = Meta_nul keycode 244 = nul shift altgr keycode 244 = VoidSymbol altgr control keycode 244 = VoidSymbol alt keycode 244 = Meta_nul shift alt keycode 244 = VoidSymbol altgr alt keycode 244 = VoidSymbol control alt keycode 244 = Meta_nul keycode 245 = nul shift altgr keycode 245 = VoidSymbol altgr control keycode 245 = VoidSymbol alt keycode 245 = Meta_nul shift alt keycode 245 = VoidSymbol altgr alt keycode 245 = VoidSymbol control alt keycode 245 = Meta_nul keycode 246 = nul shift altgr keycode 246 = VoidSymbol altgr control keycode 246 = VoidSymbol alt keycode 246 = Meta_nul shift alt keycode 246 = VoidSymbol altgr alt keycode 246 = VoidSymbol control alt keycode 246 = Meta_nul keycode 247 = nul shift altgr keycode 247 = VoidSymbol altgr control keycode 247 = VoidSymbol alt keycode 247 = Meta_nul shift alt keycode 247 = VoidSymbol altgr alt keycode 247 = VoidSymbol control alt keycode 247 = Meta_nul keycode 248 = nul shift altgr keycode 248 = VoidSymbol altgr control keycode 248 = VoidSymbol alt keycode 248 = Meta_nul shift alt keycode 248 = VoidSymbol altgr alt keycode 248 = VoidSymbol control alt keycode 248 = Meta_nul keycode 249 = nul shift altgr keycode 249 = VoidSymbol altgr control keycode 249 = VoidSymbol alt keycode 249 = Meta_nul shift alt keycode 249 = VoidSymbol altgr alt keycode 249 = VoidSymbol control alt keycode 249 = Meta_nul keycode 250 = nul shift altgr keycode 250 = VoidSymbol altgr control keycode 250 = VoidSymbol alt keycode 250 = Meta_nul shift alt keycode 250 = VoidSymbol altgr alt keycode 250 = VoidSymbol control alt keycode 250 = Meta_nul keycode 251 = nul shift altgr keycode 251 = VoidSymbol altgr control keycode 251 = VoidSymbol alt keycode 251 = Meta_nul shift alt keycode 251 = VoidSymbol altgr alt keycode 251 = VoidSymbol control alt keycode 251 = Meta_nul keycode 252 = nul shift altgr keycode 252 = VoidSymbol altgr control keycode 252 = VoidSymbol alt keycode 252 = Meta_nul shift alt keycode 252 = VoidSymbol altgr alt keycode 252 = VoidSymbol control alt keycode 252 = Meta_nul keycode 253 = nul shift altgr keycode 253 = VoidSymbol altgr control keycode 253 = VoidSymbol alt keycode 253 = Meta_nul shift alt keycode 253 = VoidSymbol altgr alt keycode 253 = VoidSymbol control alt keycode 253 = Meta_nul keycode 254 = nul shift altgr keycode 254 = VoidSymbol altgr control keycode 254 = VoidSymbol alt keycode 254 = Meta_nul shift alt keycode 254 = VoidSymbol altgr alt keycode 254 = VoidSymbol control alt keycode 254 = Meta_nul keycode 255 = nul alt keycode 255 = Meta_nul shift alt keycode 255 = Meta_nul altgr alt keycode 255 = Meta_nul control alt keycode 255 = Meta_nul string F1 = "\033[[A" string F2 = "\033[[B" string F3 = "\033[[C" string F4 = "\033[[D" string F5 = "\033[[E" string F6 = "\033[17~" string F7 = "\033[18~" string F8 = "\033[19~" string F9 = "\033[20~" string F10 = "\033[21~" string F11 = "\033[23~" string F12 = "\033[24~" string F13 = "\033[25~" string F14 = "\033[26~" string F15 = "\033[28~" string F16 = "\033[29~" string F17 = "\033[31~" string F18 = "\033[32~" string F19 = "\033[33~" string F20 = "\033[34~" string Find = "\033[1~" string Insert = "\033[2~" string Remove = "\033[3~" string Select = "\033[4~" string Prior = "\033[5~" string Next = "\033[6~" string Macro = "\033[M" string Pause = "\033[P" compose '`' 'A' to '' compose '`' 'a' to '' compose '\'' 'A' to '' compose '\'' 'a' to '' compose '^' 'A' to '' compose '^' 'a' to '' compose '~' 'A' to '' compose '~' 'a' to '' compose '"' 'A' to '' compose '"' 'a' to '' compose '-' 'a' to '' compose '-' 'A' to '' compose 'O' 'A' to '' compose 'o' 'a' to '' compose '0' 'A' to '' compose '0' 'a' to '' compose 'A' 'A' to '' compose 'a' 'a' to '' compose '' 'A' to '' compose '' 'a' to '' compose 'A' 'E' to '' compose 'a' 'e' to '' compose ',' 'C' to '' compose ',' 'c' to '' compose '^' 'C' to '' compose '^' 'c' to '' compose '`' 'E' to '' compose '`' 'e' to '' compose '\'' 'E' to '' compose '\'' 'e' to '' compose '^' 'E' to '' compose '^' 'e' to '' compose '"' 'E' to '' compose '"' 'e' to '' compose '`' 'I' to '' compose '`' 'i' to '' compose '\'' 'I' to '' compose '\'' 'i' to '' compose '^' 'I' to '' compose '^' 'i' to '' compose '"' 'I' to '' compose '"' 'i' to '' compose '-' 'D' to '' compose '-' 'd' to '' compose '^' 'D' to '' compose '^' 'd' to '' compose '~' 'N' to '' compose '~' 'n' to '' compose '^' 'N' to '' compose '^' 'n' to '' compose '`' 'O' to '' compose '`' 'o' to '' compose '\'' 'O' to '' compose '\'' 'o' to '' compose '^' 'O' to '' compose '^' 'o' to '' compose '~' 'O' to '' compose '~' 'o' to '' compose '"' 'O' to '' compose '"' 'o' to '' compose '/' 'O' to '' compose '/' 'o' to '' compose '-' 'o' to '' compose '-' 'O' to '' compose '`' 'U' to '' compose '`' 'u' to '' compose '\'' 'U' to '' compose '\'' 'u' to '' compose '^' 'U' to '' compose '^' 'u' to '' compose '"' 'U' to '' compose '"' 'u' to '' compose '\'' 'Y' to '' compose '\'' 'y' to '' compose 'T' 'H' to '' compose 't' 'h' to '' compose 's' 's' to '' compose '"' 'y' to '' compose 's' 'z' to '' compose 'n' 'n' to '' compose 'n' 'h' to '' compose 'N' 'Y' to '' compose 'N' 'N' to '' compose 'N' 'H' to '' compose 'N' 'y' to '' compose 'N' 'n' to '' compose 'N' 'h' to '' compose '-' 'L' to '' compose '<' '<' to '' compose '>' '>' to '' compose '?' '?' to '' compose '^' '?' to '' compose '!' '!' to '' compose '^' '!' to '' compose '^' '1' to '' compose '^' '2' to '' compose '^' '3' to '' compose '+' '-' to '' compose 'c' '=' to '' compose 'c' '/' to '' compose '/' 'c' to '' compose '-' 'c' to '' compose '-' 'C' to '' compose '|' 'c' to '' compose '|' 'C' to '' compose 'L' '=' to '' compose '-' 'L' to '' compose '-' 'l' to '' compose '^' '*' to '' compose '^' 'x' to '' compose 'x' 'x' to '' compose '^' '.' to '' compose '.' '.' to '' compose '^' '/' to '' compose '^' ':' to '' compose '-' ':' to '' compose ':' '-' to '' compose 'Y' '=' to '' compose '=' 'Y' to '' compose '-' 'Y' to '' compose '-' 'l' to '' compose '(' 'c' to '' compose '"' 'c' to '' compose 'O' 'C' to '' compose '(' 'C' to '' compose 'C' ')' to '' compose '-' 'a' to '' compose '-' 'A' to '' compose '-' 'o' to '' compose '-' 'O' to '' compose '(' 'r' to '' compose '"' 'r' to '' compose 'O' 'R' to '' compose '(' 'R' to '' compose 'R' ')' to '' compose 'm' 'u' to '' compose 'P' 'P' to '' compose '1' '4' to '' compose '1' '2' to '' compose '3' '4' to '' compose 'e' '=' to '' compose '-' 'e' to '' compose '-' 'E' to '' compose '=' 'E' to '' compose 'v' 'S' to '' compose '^' 'S' to '' compose 'v' 's' to '' compose '^' 's' to '' compose 'v' 'Z' to '' compose '^' 'Z' to '' compose 'v' 'z' to '' compose '^' 'z' to '' compose 'O' 'E' to '' compose 'O' 'e' to '' compose 'o' 'e' to '' compose '"' 'Y' to '' compose 'i' 'j' to '' compose 'I' 'J' to '' compose '|' 's' to '$' compose '|' 'S' to '$' compose 'S' 'S' to '' compose '=' 'C' to '' compose 'C' '=' to '' compose 'o' 'x' to '' compose 'x' 'o' to '' # This file is read by the YaST Online Update (YOU) to build the list of servers # used for getting updates. It may contain URLs to the base directories where # an update tree is located. # # This file is not overwritten with the list from the master server as it was # the case with /etc/suseservers in previous YOU versions. /etc/suseservers is # obsolete. # # Examples: # #ftp://ftp.suse.com/pub/suse #cd:/// #dir:///var/lib/YaST2/you/mnt # # GNU Enscript configuration file. # Copyright (c) 1995-1998 Markku Rossi. # # Author: Markku Rossi # # # # This file is part of GNU enscript. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Do we accept PostScript font's composite characters? As a default, # this is false because I think this is GhostScript dependant. AcceptCompositeCharacters: 0 # Lookup path for the AFM files. AFMPath: /usr/share/ghostscript/fonts:/usr/share/enscript/afm # Append ^D character to the end of the output. Some printers like HP # LaserJet 5 require this but the default is `false'. AppendCtrlD: 0 # How characters greater than 127 are printed: # 1 generate clean 7-bit code; print characters greater than 127 # in the backslash-octal notation `\xxx' (default) # 0 generate 8-bit code Clean7Bit: 1 # Default input encoding. DefaultEncoding: LC_CTYPE # Default fancy header. DefaultFancyHeader: enscript # Default output media. DefaultMedia: LC_PAPER # Where output goes as a default: `printer' or `stdout' DefaultOutputMethod: printer # Include following font files to all PostScript outputs. # # DownloadFont: FooFont1 # DownloadFont: FooFont2 # The escape character for special escapes. EscapeChar: 0 # What to do when a formfeed character is encountered from input: # column move to the beginning of the next column # page move to the beginning of the next page FormFeedType: column # Specify whether the PageSize page device option is generated to the # output. GeneratePageSize: 1 # The gray level which is used to print highlight bars. HighlightBarGray: .97 # How high highlight bars are in lines. The default is 0 so no # highlight bars are printed. # HighlightBars: 2 # Library path. Let's use built-in default. # LibraryPath: # How wrapped lines are marked in printout. Possible values are: `none', # `plus', `box' and `arrow'. As a default, we do not mark them. MarkWrappedLines: none # Media definitions: # name width height llx lly urx ury Media: A3 842 1190 24 24 818 1166 Media: A4 595 842 24 24 571 818 Media: A5 420 595 24 24 396 571 Media: Legal 612 1008 24 24 588 984 Media: Letter 612 792 38 24 574 768 # HP DeskJet media (DeskJet can't print on the bottom 1/2" of the paper). Media: A4dj 595 842 24 50 571 818 Media: Letterdj 612 792 24 40 588 768 # Define ghostscript page names and their sizes Media: letter 612 792 24 24 574 768 Media: note 540 720 24 24 516 696 Media: legal 612 1008 24 24 588 984 Media: a0 2380 3368 24 24 2356 3344 Media: a1 1684 2380 24 24 1660 2356 Media: a2 1190 1684 24 24 1166 1660 Media: a3 842 1190 24 24 818 1166 Media: a4 595 842 24 24 571 818 Media: a5 421 595 24 24 397 571 Media: a6 297 421 24 24 273 397 Media: a7 210 297 24 24 186 273 Media: a8 148 210 24 24 124 186 Media: a9 105 148 24 24 81 124 Media: a10 74 105 24 24 50 81 Media: b0 2836 4008 24 24 2812 3984 Media: b1 2004 2836 24 24 1980 2812 Media: b2 1418 2004 24 24 1394 1980 Media: b3 1002 1418 24 24 978 1394 Media: b4 709 1002 24 24 685 978 Media: b5 501 709 24 24 477 685 Media: archE 2592 3456 24 24 2568 3432 Media: archD 1728 2592 24 24 1704 2568 Media: archC 1296 1728 24 24 1272 1704 Media: archB 864 1296 24 24 840 1272 Media: archA 648 864 24 24 624 840 Media: flsa 612 936 24 24 588 912 Media: flse 612 936 24 24 588 912 Media: halfletter 396 612 24 24 372 588 Media: 11x17 792 1224 24 24 768 1200 Media: ledger 1224 792 24 24 1200 768 # Spooler option to suppress the job header. NoJobHeaderSwitch: -h # How non-printable characters are printed: `caret', `octal', # `questionmark' or `space'. NonPrintableFormat: octal # PostScript output's first line. OutputFirstLine: %!PS-Adobe-3.0 # Default page label format: `short' or `long'. PageLabelFormat: short # Enable / disable page prefeed. PagePrefeed: 0 # The PostScript language level that enscript should use. PostScriptLevel: 2 # Printer name to spool to. As a default we want to use system's # default printer. # Printer: ps # The spooler command switch to select the printer queue. This option # can also be used to pass other flags to the spooler command but they # must be given bofore the queue switch. QueueParam: -P # Pass following Page Device options to the generated output. # # Duplex printing. # SetPageDevice: Duplex:true # Printer spooler command name. Spooler: /usr/bin/lpr # An absolute path to the states program. StatesBinary: /usr/bin/states # Create color outputs with States? StatesColor: 0 # The name of the States configuration file. StatesConfigFile: /usr/share/enscript/hl/enscript.st # States' default highlight style. StatesHighlightStyle: emacs # Path for the States program. # StatesPath: /usr/share/enscript/hl # Pass following statusdict options to the generated output. # # Use always paper tray 1. # StatusDict: setpapertray:1 # Format string for table-of-contents entries. # # TOCFormat: $3v $-40N $3% pages $4L lines $E $C # As a default, print this underlay text to all document. # Underlay: mtr's printout # Underlay text angle. # UnderlayAngle: 45 # Select underlay font. UnderlayFont: Times-Roman200 # Select underlay gray. UnderlayGray: .8 # Underlay text starting position. # UnderlayPosition: +0-0 # Underlay style: `outline' or `filled' UnderlayStyle: outline # EOF c . ..dProductFeatureseeula.txtf control.xml## Path: System/Yast2 ## Description: Product Features ## Type: yesno ## Default: yes # # Enable Auto-Login # ENABLE_AUTOLOGIN="yes" ## Type: yesno ## Default: no # # Enable EVMS config # EVMS_CONFIG="no" ## Type: string(simple,expert) ## Default: expert # # UI mode # UI_MODE="simple" SUSE LINUX PROFESSIONAL 9.3 Novell Software License Agreement PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE USING THE SOFTWARE (INCLUDING ITS COMPONENTS), YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT DOWNLOAD, INSTALL OR USE THE SOFTWARE AND, IF APPLICABLE, RETURN THE ENTIRE UNUSED PACKAGE TO THE RESELLER WITH YOUR RECEIPT FOR A REFUND. THE SOFTWARE MAY NOT BE SOLD, TRANSFERRED, OR FURTHER DISTRIBUTED WITHOUT PRIOR WRITTEN AUTHORIZATION FROM NOVELL. RIGHTS AND LICENSES This Novell Software License Agreement ("Agreement") is a legal agreement between You (an entity or a person) and Novell, Inc. ("Novell") with respect to the software product identified in the title of this Agreement, media (if any) and accompanying documentation (collectively the "Software"). The Software is a collective work of Novell. You may make and use unlimited copies of the Software for Your distribution and use within Your Organization. You may make and distribute unlimited copies of the Software outside Your organization provided that: 1) You receive no consideration; and, 2) you do not bundle or combine the Software with another offering (e.g., software, hardware, or service). The term "Organization" means a legal entity, excluding subsidiaries and affiliates with a separate existence for tax purposes or for legal personality purposes. An example of an Organization in the private sector would be a corporation, partnership, or trust, excluding any subsidiaries or affiliates of the organization with a separate tax identification number or company registration number. In the public sector, an example of Organization would be a specific government body or local government authority. The Software is a modular operating system. Most of the components are open source packages, developed independently, and accompanied by separate license terms. Your license rights with respect to individual components accompanied by separate license terms are defined by those terms; nothing in this Agreement (including, for example, the "Other License Terms and Restrictions," below) shall restrict, limit, or otherwise affect any rights or obligations You may have, or conditions to which You may be subject, under such license terms. While the license terms for a component may authorize You to distribute the component, You may not use any Novell marks (e.g., SUSE and SUSE LINUX) in distributing the component, whether or not the component contains Novell marks. OTHER LICENSE TERMS AND RESTRICTIONS The Software is protected by the copyright laws and treaties of the United States ("U.S.") and other countries and is subject to the terms of this Agreement. The Software is licensed to You, not sold. The Software may be bundled with other software programs ("Bundled Programs"). Your license rights with respect to Bundled Programs accompanied by separate license terms are defined by those terms; nothing in this Agreement shall restrict, limit, or otherwise affect any rights or obligations You may have, or conditions to which You may be subject, under such license terms. Novell reserves all rights not expressly granted to You. You may not: (1) reverse engineer, decompile, or disassemble the Software except and only to the extent it is expressly permitted by applicable law or the license terms accompanying a component of the Software; or (2) transfer the Software or Your license rights under this Agreement, in whole or in part. MAINTENANCE AND SUPPORT Novell has no obligation to provide maintenance or support for the Software. OWNERSHIP RIGHTS No title to or ownership of the Software is transferred to You. Novell and/or its licensors owns and retains all title and ownership of all intellectual property rights in the Software, including any adaptations or copies. You acquire only a license to use the Software. LIMITED WARRANTY For ninety (90) days from Your date of purchase, Novell warrants that (1) any media on which the Software is delivered is free from physical defects; and (2) the Software will substantially conform to the documentation accompanying the Software. If the defective items are returned to Novell or if You report the nonconformity to Novell within ninety (90) days from the date of purchase, Novell will at its sole discretion either resolve the nonconformity or refund the license fees You paid for the Software. Any misuse or unauthorized modification of the Software voids this warranty. THE FOREGOING WARRANTY IS YOUR SOLE AND EXCLUSIVE REMEDY AND IS IN LIEU OF ALL OTHER WARRANTIES, EXPRESS OR IMPLIED. (The foregoing warranty does not apply to Software provided free of charge. SUCH SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND.) THE SOFTWARE IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR DISTRIBUTION WITH ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION, COMMUNICATION, OR CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR OTHER USES IN WHICH FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE. THE SOFTWARE IS ONLY COMPATIBLE WITH CERTAIN COMPUTERS AND OPERATING SYSTEMS. THE SOFTWARE IS NOT WARRANTED FOR NON-COMPATIBLE SYSTEMS. Call Novell or Your dealer for information about compatibility. Non-Novell Products. The Software may include or be bundled with hardware or other software programs licensed or sold by a licensor other than Novell. NOVELL DOES NOT WARRANT NON-NOVELL PRODUCTS. ANY SUCH PRODUCTS ARE PROVIDED ON AN "AS IS" BASIS. ANY WARRANTY SERVICE FOR NON-NOVELL PRODUCTS IS PROVIDED BY THE PRODUCT LICENSOR IN ACCORDANCE WITH THE APPLICABLE LICENSOR WARRANTY. EXCEPT AS OTHERWISE RESTRICTED BY LAW, NOVELL DISCLAIMS AND EXCLUDES ANY AND ALL IMPLIED WARRANTIES INCLUDING ANY WARRANTIES OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NOVELL MAKES NO WARRANTY, REPRESENTATION OR PROMISE NOT EXPRESSLY SET FORTH IN THIS LIMITED WARRANTY. NOVELL DOES NOT WARRANT THAT THE SOFTWARE WILL SATISFY YOUR REQUIREMENTS OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED. Some jurisdictions do not allow certain disclaimers and limitations of warranties, so portions of the above limitations may not apply to You. This limited warranty gives You specific rights and You may also have other rights which vary from state to state. LIMITATION OF LIABILITY (a) Consequential Losses. NEITHER NOVELL NOR ANY OF ITS LICENSORS, SUBSIDIARIES, OR EMPLOYEES WILL IN ANY CASE BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, TORT, ECONOMIC OR PUNITIVE DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, INCLUDING WITHOUT LIMITATION LOSS OF PROFITS, BUSINESS OR DATA, EVEN IF ADVISED OF THE POSSIBILITY OF THOSE DAMAGES. (b) Direct Damages. IN NO EVENT WILL NOVELL'S AGGREGATE LIABILITY FOR DIRECT DAMAGES TO PROPERTY OR PERSON (WHETHER IN ONE INSTANCE OR A SERIES OF INSTANCES) EXCEED 1.25 TIMES THE AMOUNT PAID BY YOU FOR THE SOFTWARE OUT OF WHICH SUCH CLAIM AROSE [OR $50 (U.S.) IF YOU RECEIVED THE SOFTWARE FREE OF CHARGE]. The above exclusions and limitations will not apply to claims relating to death or personal injury. In those jurisdictions that do not allow the exclusion or limitation of damages, Novell's liability shall be limited or excluded to the maximum extent allowed within those jurisdictions. GENERAL TERMS Term. This Agreement becomes effective on the date You legally acquire the Software and will automatically terminate if You breach any of its terms. Upon termination of this Agreement, You must destroy the original and all copies of the Software or return them to Novell and delete the Software from Your systems. Benchmark Testing. This benchmark testing restriction applies to You if You are a software vendor or if You are performing testing on the Software at the direction of or on behalf of a software vendor. You may not, without Novell's prior written consent not to be unreasonably withheld, publish or disclose to any third party the results of any benchmark test of the Software. If You are a vendor of products that are functionally similar to or compete with the Software ("Similar Products"), or are acting on behalf of such a vendor, and You publish or disclose benchmark information on the Software in violation of this restriction, then notwithstanding anything to the contrary in the Similar Product's end user license agreement, and in addition to any other remedies Novell may have, Novell shall have the right to perform benchmark testing on Similar Products and to disclose and publish that benchmark information and You hereby represent that You have authority to grant such right to Novell. Transfer. This Agreement may not be transferred or assigned without the prior written approval of Novell. Law and Jurisdiction. This Agreement is governed by the laws of the State of Utah, U.S. Any action at law relating to this Agreement may only be brought before the courts of competent jurisdiction of the State of Utah. If, however, Your country of principal residence is a member state of the European Union or the European Free Trade Association, this Agreement is governed by the laws of that country, and any action at law may only be brought before a court of competent jurisdiction of that country. Entire Agreement. This Agreement and the Upgrade/Additive Agreement (if applicable) sets forth the entire understanding and agreement between You and Novell and may be amended only in a writing signed by both parties. NO LICENSOR, DISTRIBUTOR, DEALER, RETAILER, RESELLER, SALES PERSON, OR EMPLOYEE IS AUTHORIZED TO MODIFY THIS AGREEMENT OR TO MAKE ANY REPRESENTATION OR PROMISE THAT IS DIFFERENT FROM, OR IN ADDITION TO, THE TERMS OF THIS AGREEMENT. Waiver. No waiver of any right under this Agreement will be effective unless in writing, signed by a duly authorized representative of the party to be bound. No waiver of any past or present right arising from any breach or failure to perform will be deemed to be a waiver of any future right arising under this Agreement. Severability. If any provision in this Agreement is invalid or unenforceable, that provision will be construed, limited, modified or, if necessary, severed, to the extent necessary, to eliminate its invalidity or unenforceability, and the other provisions of this Agreement will remain unaffected. Export Compliance. Any person or entity exporting or re-exporting Novell products directly or indirectly and via any means, including electronic transfer, is wholly responsible for doing so in accordance with the U.S. Export Administration Regulations and the laws of host countries. Novell assumes no responsibility or liability for your failure to obtain any necessary export approvals. Approvals are dependent upon an item's technical characteristics, the destination, end-use and end-user, as well as other activities of the end user. Specifically, no Novell product may be exported to embargoed or otherwise restricted countries or end users. Please consult the Bureau of Industry and Security web page and other sources before exporting Novell products from the U.S. and familiarize yourself with the laws of destination countries before re-exporting Novell products. This provision shall survive the expiration or earlier termination of this Agreement. Please refer to the export matrix for Novell products for more information on exporting Novell Software. You can download a copy from http://www.novell.com/info/exports/ or obtain a copy from your local Novell office. U.S. Government Restricted Rights. Use, duplication, or disclosure by the U.S. Government is subject to the restrictions in FAR 52.227-14 (June 1987) Alternate III (June 1987), FAR 52.227-19 (June 1987), or DFARS 252.227-7013 (b)(3) (Nov 1995), or applicable successor clauses. Contractor/ Manufacturer is Novell, Inc., 1800 South Novell Place, Provo, Utah 84606. Other. The application of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. ©1993, 2000-2005 Novell, Inc. All Rights Reserved. Novell is a registered trademark, and SUSE LINUX is registered trademark, and the SUSE logo is a trademark, of SUSE LINUX Products GmbH, a Novell company, in the United States and other countries. Linux is a registered trademark of Linus Torvalds. control true true gnome false true true simple true auto false installation,demo,autoinstallation initial initial no hwinfo mode keyboard mouse partitions software bootloader timezone language runlevel normal uml normal no uml_source uml_user uml_options uml_disks uml_network update initial normal no update packages backup language update initial initial no hwinfo mode media rootpart update packages backup language keyboard network continue,normal yes lan 20 dsl 30 isdn 40 modem 50 remote 60 firewall 10 proxy 70 hardware continue yes x11 printer sound tv bluetooth all installation,update initial info language no yes yes true checkmedia yes yes proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy finish all initial repair info repair all initial screen_shot no yes language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy all initial demo info no yes language true proposal initial do_resize false i386,x86_64,ia64 prepdisk kickoff rpmcopy continue update all no no netsetup rpmcopy  ask_net_test yes yes do_net_test yes yes you yes yes suseconfig release_notes yes yes congratulate yes yes continue installation yes yes all netsetup netprobe rpmcopy no no root no proposal network fam ask_net_test do_net_test you auth user suseconfig no no release_notes proposal hardware congratulate initial autoinstallation all no no info autoinit all true autosetup proposal initial no yes prepdisk kickoff autoimage rpmcopy finish all no no continue autoinstallation netsetup netprobe autopost rpmcopy x11 autoconfigure suseconfig g . ..hODBCDataSourcesi odbcinst.inijodbc.inih .g..# # Copyright (c) 1996-2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # Author: Hubert Mantel , 1996-2002 # # Configuration file for loadable modules; used by modprobe # # Please don't edit this file. Place your settings into # /etc/modprobe.conf.local instead. # # ######################################################################## # Aliases - specify your hardware ######################################################################## install eth0 /bin/true install eth1 /bin/true install tr0 /bin/true install scsi_hostadapter /bin/true install fb0 /bin/true ######################################################################## # only used for Mylex or Compaq Raid as module ######################################################################## install block-major-48 /bin/true install block-major-49 /bin/true install block-major-72 /bin/true install block-major-73 /bin/true ######################################################################## # only needed for fifth and sixth IDE adaptor ######################################################################## install block-major-56 /bin/true install block-major-57 /bin/true ######################################################################## # mouse (for older busmice) ######################################################################## install char-major-10 /bin/true ######################################################################## # If you want to use the new autofs4 ######################################################################## alias autofs autofs4 ######################################################################## # For parallel port devices, uncomment the following two lines and # change "frpw" to the protocol type you use ######################################################################## # install paride /sbin/modprobe --ignore-install paride && { /sbin/modprobe --ignore-install frpw; } # remove paride { /sbin/modprobe -r --ignore-remove frpw; } ; /sbin/modprobe -r --ignore-remove paride ######################################################################## # Options; these are examples; uncomment and modify the lines you need ######################################################################## # options cdu31a cdu31a_port=0x340 cdu31a_irq=0 # options sbpcd sbpcd=0x230,1 # options aztcd aztcd=0x320 # options cm206 cm206=0x340,11 # options gscd gscd=0x340 # options mcd mcd=0x300,11 # options mcdx mcdx=0x300,11 # options optcd optcd=0x340 # options sjcd sjcd_base=0x340 # options sonycd535 sonycd535=0x340 # options isp16 isp16_cdrom_base=0x340 isp16_cdrom_irq=0 isp16_cdrom_dma=0 isp16_cdrom_type=Sanyo # options ne io=0x300 irq=5 # Use this if you have two cards: # options ne io=0x300,0x320 irq=5,7 # options tulip options=0 # options 3c59x options=0 # options 3c501 io=0x280 irq=5 # options 3c503 io=0x280 irq=5 xcvr=0 # options 3c505 io=0x300 irq=10 # options 3c507 io=0x300 irq=10 # options 3c509 irq=10 # options at1700 io=0x260 irq=10 # options smc-ultra io=0x200 irq=10 # options wd io=0x300 irq=10 # options smc9194 io=0x200 irq=10 ifport=0 # options e2100 io=0x300 irq=10 mem=0xd0000 xcvr=0 # options depca io=0x200 irq=7 # options ewrk3 io=0x300 irq=10 # options eexpress io=0x300 irq=10 # options hp-plus io=0x300 irq=10 # options hp io=0x300 irq=10 # options hp100 hp100_port=0x380 # options apricot io=0x300 irq=10 # options ac3200 io=0x300 irq=10 mem=0xd0000 # options de620 io=0x378 irq=7 bnc=1 # options ibmtr io=0xa20 # options arcnet io=0x300 irq=10 shmem=0xd0000 # options plip io=0x378 irq=7 # options eepro io=0x260 irq=10 mem=0x6000 # options eth16i io=0x2a0 irq=10 # options fmv18x io=0x220 irq=10 # options ni52 io=0x360 irq=9 memstart=0xd0000 memend=0xd4000 # options bttv pll=1 radio=0 card=0 # options tuner type=0 # options msp3400 once=1 simple=1 # install bttv /sbin/modprobe --ignore-install bttv && { /sbin/modprobe -k tuner; /sbin/modprobe -k msp3400; } # install dummy0 /sbin/modprobe -o dummy0 --ignore-install dummy install dummy1 /sbin/modprobe -o dummy1 --ignore-install dummy remove dummy0 /sbin/modprobe -r -o dummy0 --ignore-remove dummy remove dummy1 /sbin/modprobe -r -o dummy1 --ignore-remove dummy ######################################################################## # cipe section ######################################################################## alias cipcb0 cipcb alias cipcb1 cipcb options cipcb cipe_debug=0 ######################################################################## # block dev aliases ######################################################################## alias block-major-1 rd alias block-major-2 floppy install block-major-3 /bin/true alias block-major-7 loop alias block-major-8 sd_mod alias block-major-11 sr_mod alias block-major-13 xd alias block-major-15 cdu31a alias block-major-16 gscd alias block-major-17 optcd alias block-major-18 sjcd alias block-major-20 mcdx install block-major-22 /bin/true alias block-major-23 mcd alias block-major-24 sonycd535 alias block-major-25 sbpcd alias block-major-26 sbpcd alias block-major-27 sbpcd alias block-major-28 sbpcd alias block-major-29 aztcd alias block-major-32 cm206 install block-major-33 /bin/true install block-major-34 /bin/true # network block device install block-major-43 /bin/true alias block-major-45 pd alias block-major-46 pcd alias block-major-47 pf alias block-major-117 evms ######################################################################## # char dev aliases ######################################################################## alias char-major-6 lp alias char-major-9 st alias char-major-10-130 softdog install char-major-10-134 /bin/true install char-major-10-135 /bin/true alias char-major-10-175 agpgart alias char-major-10-181 toshiba alias char-major-10-250 sonypi options sonypi minor=250 install char-major-15 /bin/true alias char-major-19 cyclades alias char-major-20 cyclades alias char-major-21 sg alias char-major-27 ftape install char-major-29 /bin/true alias char-major-36 netlink_dev # alias char-major-43 hisax # alias char-major-44 hisax # alias char-major-45 hisax install char-major-43 /bin/true install char-major-44 /bin/true install char-major-45 /bin/true alias char-major-48 riscom8 alias char-major-49 riscom8 alias char-major-67 coda alias char-major-75 specialix alias char-major-76 specialix alias char-major-81 videodev install char-major-81-0 /bin/true install char-major-81-1 /bin/true install char-major-81-2 /bin/true install char-major-81-3 /bin/true alias char-major-83 vtx options vtx quiet=1 alias char-major-89 i2c-dev alias char-major-96 pt alias char-major-97 pg alias char-major-107 3dfx alias char-major-109 lvm-mod # remove this if sound is configured install char-major-116 /bin/true ######################################################################## # ppp over ethernet # the kernel 2.2 uses pppox # the kernel 2.4 uses pppoe ######################################################################## alias char-major-108 ppp_generic alias char-major-144 pppoe alias net-pf-24 pppoe ######################################################################## # IrDA ######################################################################## alias char-major-161 ircomm-tty alias char-major-162 raw ######################################################################## # USB ######################################################################## install char-major-166 /bin/true ######################################################################## # Moxa Multiport Serial Boards ######################################################################## alias char-major-172 moxa alias char-major-173 moxa # options moxa type=2,,, baseaddr=0xdc000,,, numports=8,,, alias char-major-174 mxser alias char-major-175 mxser # options mxser ioaddr=0x180 #alias char-major-180 usbcore alias InterMezzo intermezzo alias char-major-185 intermezzo alias char-major-188 usbserial alias char-major-195* nvidia alias char-major-206 osst alias char-major-212 /bin/true alias binfmt-204 binfmt_aout alias binfmt-263 binfmt_aout alias binfmt-264 binfmt_aout alias binfmt-267 binfmt_aout alias binfmt-0064 binfmt_aout alias binfmt-0008 binfmt_aout alias iso9660 isofs alias tty-ldisc-1 slip alias tty-ldisc-2 serio alias tty-ldisc-5 mkiss # alias tty-ldisc-7 6pack install tty-ldisc-7 /bin/true # IrDA alias tty-ldisc-11 irtty-sir # alias ax0 mkiss install ax0 /bin/true # alias sp0 6pack install sp0 /bin/true alias slip0 slip alias sl0 slip alias slip1 slip alias sl1 slip ######################################################################## # the kernel 2.2 uses ppp.o as ppp driver, # the kernel 2.4 uses ppp_generic.o ######################################################################## alias ppp0 ppp_generic alias ppp1 ppp_generic alias tty-ldisc-3 ppp_async alias plip0 plip alias plip1 plip # Tunnel interfaces alias sit0 ipv6 alias gre0 ip_gre alias ipip0 ipip alias ppp-compress-18 ppp_mppe alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate alias net-pf-1 unix alias net-pf-3 ax25 # install net-pf-3 /bin/true alias net-pf-4 ipx # install net-pf-4 /bin/true alias net-pf-5 appletalk # install net-pf-5 /bin/true alias net-pf-6 netrom # install net-pf-6 /bin/true alias net-pf-10 ipv6 # install net-pf-10 /bin/true alias net-pf-11 rose # install net-pf-11 /bin/true alias net-pf-15 af_key alias net-pf-17 af_packet alias net-pf-31 bluetooth alias bt-proto-0 l2cap alias bt-proto-2 sco alias bt-proto-3 rfcomm alias bt-proto-4 bnep alias md-personality-1 linear alias md-personality-2 raid0 alias md-personality-3 raid1 alias md-personality-4 raid5 alias md-personality-7 multipath alias tap0 ethertap alias tap1 ethertap alias tap2 ethertap alias tap3 ethertap alias tap4 ethertap alias tap5 ethertap alias tap6 ethertap alias tap7 ethertap alias tap8 ethertap alias tap9 ethertap alias tap10 ethertap alias tap11 ethertap alias tap12 ethertap alias tap13 ethertap alias tap14 ethertap alias tap15 ethertap alias xfrm-type-2-50 esp4 alias xfrm-type-2-51 ah4 alias xfrm-type-2-108 ipcomp alias xfrm-type-10-50 esp6 alias xfrm-type-10-51 ah6 alias xfrm-type-10-108 ipcomp6 # don't try to reset isa-pnp cards on startup options isa-pnp isapnp_reset=0 # Linux-ABI install binfmt_misc /sbin/modprobe --ignore-install binfmt_misc && { mount -t binfmt_misc none /proc/sys/fs/binfmt_misc; } remove binfmt_misc { umount /proc/sys/fs/binfmt_misc; } ; /sbin/modprobe -r --ignore-remove binfmt_misc # Bluetooth alias bt-proto-5 cmtp alias bt-proto-6 hidp # Load lp after parport install parport /sbin/modprobe -i parport && /sbin/modprobe lp # end of common part for modprobe.conf # begin of x86_64 part for modprobe.conf alias char-major-4 serial alias char-major-5 serial alias parport_lowlevel parport_pc # options parport_pc io=0x378 irq=none,none # If you have multiple parallel ports, specify them this way: # options parport_pc io=0x378,0x278 irq=none,none # ata_piix can't handle ICH6 in AHCI mode install ata_piix /sbin/modprobe ahci; /sbin/modprobe --ignore-install ata_piix # end of x86_64 part for modprobe.conf # please keep this at the end and add local modifications to modules.conf.local include /etc/modprobe.d include /etc/modprobe.conf.local l . ..m snddefaultsoundm .l ..n controlC0q controlC1r controlC2s controlC3t controlC4u controlC5v controlC6w controlC7xhwC0D2{hwC1D2|hwC2D2}hwC3D2~hwC4D2hwC5D2hwC6D2hwC7D2n .m ..o alsap 50-alsa.dev#!/bin/sh -e CARD=${DEVNAME##/dev/snd/controlC} exec /usr/sbin/alsactl -F restore $CARD x .m ..y alsaz 50-alsa.dev#!/bin/sh -e CARD=${DEVNAME##/dev/snd/hwC} CARD=${CARD%%D2} case $PHYSDEVDRIVER in EMU10K1_Audigy) echo -en "\xf0\x00\x20\x21\x61\x00\x00\x00\x7f\x00\xf7" > /dev/snd/midiC${CARD}D1 /etc/alsa.d/load-soundfont $CARD default.bnk default.sf2 ;; sbawe) /etc/alsa.d/load-soundfont $CARD default.bnk default.sf2 default.sbk gu11-rom.sf2 GU11-ROM.SF2 ;; esac exit 0  .l .. 10-hal.dev .l ..50-alsa-resmgr.dev alsa-resmgr#!/bin/sh -e case $DEVNAME in /dev/snd/*) /sbin/resmgr add $DEVNAME desktop ;; esac exit 0 # /etc/fdprm - floppy disk parameter table # Common disk formats. Names are of the form # actual media capacity/maximum drive capacity # (Note: although 5.25" HD drives can format disks at 1.44M, they're listed # as 1200 because that's the common maximum size.) # size sec/t hds trk stre gap rate spec1 fmt_gap 360/360 720 9 2 40 0 0x2A 0x02 0xDF 0x50 1200/1200 2400 15 2 80 0 0x1B 0x00 0xDF 0x54 360/720 720 9 2 40 1 0x2A 0x02 0xDF 0x50 720/720 1440 9 2 80 0 0x2A 0x02 0xDF 0x50 720/1440 1440 9 2 80 0 0x2A 0x02 0xDF 0x50 360/1200 720 9 2 40 1 0x23 0x01 0xDF 0x50 720/1200 1440 9 2 80 0 0x23 0x01 0xDF 0x50 1440/1440 2880 18 2 80 0 0x1B 0x00 0xCF 0x6C # Non-standard disk formats: # BEWARE: They're incomplete and possibly incorrect. The only reason why # they are in this file is to show how such formats are added. 1440/1200 2880 18 2 80 0 ???? ???? ???? ???? # ????? 1680/1440 3360 21 2 80 0 0x0C 0x00 0xCF 0x6C # ????? # Add user-specific formats here cbm1581 1600 10 2 80 2 0x2A 0x02 0xDF 0x2E 800/720 1600 10 2 80 0 0x2A 0x02 0xDF 0x2E  . .. fonts.dtdlocal.conf.instsys fonts.conf local.confsuse-post-user.confsuse-pre-user.confXsuse-generic-names.conf false /usr/share/fonts /usr/X11R6/lib/X11/fonts /opt/kde3/share/fonts /usr/lib/ooo-1.1/share/fonts /opt/OpenOffice.org/share/fonts /opt/staroffice6.0/share/fonts /usr/local/share/fonts/ ~/.fonts mono monospace sans serif sans-serif sans sans-serif suse-generic-names.conf Bitstream Vera Serif Times New Roman Thorndale AMT Times Nimbus Roman No9 L Luxi Serif Kochi Mincho AR PL SungtiL GB AR PL Mingti2L Big5 MS 明朝 SimSun Baekmuk Batang FreeSerif serif Bitstream Vera Sans Helvetica Arial Verdana Albany AMT Nimbus Sans L Luxi Sans Kochi Gothic AR PL KaitiM GB AR PL KaitiM Big5 MS ゴシック Baekmuk Dotum FreeSans sans-serif Bitstream Vera Sans Mono Courier Courier New Andale Mono Luxi Mono Cumberland AMT Nimbus Mono L NSimSun FreeMono monospace sans-serif serif monospace sans-serif Times Nimbus Roman No9 L Helvetica Nimbus Sans L Courier Nimbus Mono L Times New Roman Thorndale AMT Arial Albany AMT Courier New Cumberland AMT GulimChe false DotumChe false BatangChe false GungsuhChe false Bitstream Vera Sans 7.5 false Bitstream Vera Serif 7.5 false Bitstream Vera Sans Mono 7.5 false suse-pre-user.conf ~/.fonts.conf suse-post-user.conf conf.d local.conf serif Bitstream Vera Serif Times New Roman Thorndale AMT Luxi Serif Nimbus Roman No9 L Times Frank Ruehl Kochi Mincho AR PL SungtiL GB SimSun AR PL Mingti2L Big5 MS 明朝 Baekmuk Batang FreeSerif sans-serif Bitstream Vera Sans Verdana Arial Albany AMT Luxi Sans Nimbus Sans L Helvetica Nachlieli Kochi Gothic AR PL KaitiM GB AR PL KaitiM Big5 MS ゴシック Baekmuk Dotum FreeSans monospace Bitstream Vera Sans Mono Andale Mono Courier New Cumberland AMT Luxi Mono Nimbus Mono L Courier Miriam Mono Kochi Gothic AR PL SungtiL GB AR PL Mingti2L Big5 Baekmuk Dotum FreeMono roman roman matrix 10.2 01 oblique 100 200 true 0x0020 0x00A0 0x00AD 0x034F 0x0600 0x0601 0x0602 0x0603 0x06DD 0x070F 0x115F 0x1160 0x1680 0x17B4 0x17B5 0x180E 0x2000 0x2001 0x2002 0x2003 0x2004 0x2005 0x2006 0x2007 0x2008 0x2009 0x200A 0x200B 0x200C 0x200D 0x200E 0x200F 0x2028 0x2029 0x202A 0x202B 0x202C 0x202D 0x202E 0x202F 0x205F 0x2060 0x2061 0x2062 0x2063 0x206A 0x206B 0x206C 0x206D 0x206E 0x206F 0x3000 0x3164 0xFEFF 0xFFA0 0xFFF9 0xFFFA 0xFFFB 30 true Helvetica 8 20 Adobe Helvetica Adobe true Albany AMT 8 20 Adobe Helvetica Adobe true Arial 8 20 Adobe Helvetica Adobe true Nimbus Sans L 8 20 Adobe Helvetica Adobe true Times 8 20 Adobe Times Adobe true Thorndale AMT 8 20 Adobe Times Adobe true Times New Roman 8 20 Adobe Times Adobe true Nimbus Roman No9 L 8 20 Adobe Times Adobe true Courier 8 20 Adobe Courier Adobe true Cumberland AMT 8 20 Adobe Courier Adobe true Courier New 8 20 Adobe Courier Adobe true Nimbus Mono L 8 20 Adobe Courier Adobe true Fixed Misc Fixed serif Times New Roman Thorndale AMT SUSE Serif Nimbus Roman No9 L Luxi Serif Likhan FreeSerif Bitstream Vera Serif Times TSCu_Times Nazli HGPMinchoL IPAPMincho Sazanami Mincho Kochi Mincho FZSongTi FZMingTiB AR PL SungtiL GB AR PL Mingti2L Big5 Baekmuk Batang SimSun HanyiSong ZYSong18030 sans-serif Verdana Arial Albany AMT SUSE Sans Luxi Sans Mukti Narrow FreeSans Bitstream Vera Sans Nimbus Sans L Helvetica TSCu_Paranar Terafik HGPGothicB IPAPGothic Sazanami Gothic Kochi Gothic FZSongTi FZMingTiB AR PL SungtiL GB AR PL Mingti2L Big5 Baekmuk Gulim Baekmuk Dotum monospace Andale Mono Courier New Cumberland AMT SUSE Sans Mono Nimbus Mono L Luxi Mono Mukti Narrow FreeMono Bitstream Vera Sans Mono Terafik TSCu_Paranar HGGothicB IPAGothic Sazanami Gothic Kochi Gothic FZSongTi FZMingTiB AR PL SungtiL GB AR PL Mingti2L Big5 Baekmuk Gulim Baekmuk Dotum NSimSun HanyiSong ZYSong18030 medium medium bold unknown ja zh ko dual proportional false ja zh ko false mono charcell proportional false Likhan hintnone symbol Standard Symbols L console Misc Console Misc Console Wide false false ja zh ko true true true Georgia Bell MT Thorndale AMT SUSE Serif FreeSerif HGMinchoL HGPMinchoL HGPMinchoB HGSMinchoB HGMinchoE HGPMinchoE HGSMinchoE IPAMincho IPAPMincho Sazanami Mincho serif Trebuchet Segoe Andale Sans Albany AMT SUSE Sans FreeSans HGGothicB HGPGothicB HGGothicE HGPGothicE HGSGothicE HGGothicM HGPGothicM HGSGothicM IPAGothic IPAPGothic Sazanami Gothic Baekmuk Gulim sans-serif Fixed Cumberland AMT SUSE Sans Mono FreeMono monospace /dev/sda1 / reiserfs acl,user_xattr 1 1 /dev/sda6 /tmp reiserfs acl,user_xattr 1 2 /dev/sda5 swap swap pri=42 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 proc /proc proc defaults 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 sysfs /sys sysfs noauto 0 0 #/dev/dvd /media/dvd subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec,iocharset=utf8 0 0 #/dev/fd0 /media/floppy subfs noauto,fs=floppyfss,procuid,nodev,nosuid,sync 0 0 dc:/home /home nfs rw,hard,intr,timeo=20,retrans=8,udp,async,nocto 0 0 dc:/pub /pub nfs rw,hard,intr,timeo=20,retrans=8,udp,async,nocto 0 0 dc:/backup /backup nfs rw,hard,intr,timeo=20,retrans=8,udp,async,nocto,noauto 0 0 root:x:0: bin:x:1:daemon daemon:x:2: sys:x:3: tty:x:5: disk:x:6: lp:x:7: www:x:8: kmem:x:9: wheel:x:10: mail:x:12: news:x:13: uucp:x:14: shadow:x:15: dialout:x:16: audio:x:17: floppy:x:19: cdrom:x:20: console:x:21: utmp:x:22: public:x:32: video:x:33: games:x:40: xok:x:41: trusted:x:42: modem:x:43: ftp:x:49: man:x:62: users:x:100: nobody:x:65533: nogroup:x:65534:nobody at:!:25: messagebus:!:101: postfix:!:51: maildrop:!:59: sshd:!:65: haldaemon:!:102: mysql:!:103: ntadmin:!:71: +::: # # hosts This file describes a number of hostname-to-address # mappings for the TCP/IP subsystem. It is mostly # used at boot time, when no name servers are running. # On small systems, this file can be used instead of a # "named" name server. # Syntax: # # IP-Address Full-Qualified-Hostname Short-Hostname # 127.0.0.1 localhost # special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback fe00::0 ipv6-localnet ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts 127.0.0.2 brn-suse093-2.sar.informatik.hu-berlin.de brn-suse093-2  . .. cookies.txt htdig.conf HtFileType-magic.mime mime.types# # Example of input file for cookies for ht://Dig and ht://Check # # Copyright (c) 1999-2004 Comune di Prato - Prato - Italy # Copyright (c) 1995-2004 The ht://Dig Group # Author: Gabriele Bartolini - Prato - Italy # # For copyright details, see the file COPYING in your distribution # or the GNU General Public License version 2 or later # # # This file must be located through the 'cookies_input_file' directive, and # its purpose is to pre-load cookies into ht://Check and ht://Dig and to be used for a # crawl. Each line contains one name-value pair. Lines beginning with '#' # or empty ones are ignored. # # Info have been taken from: http://www.cookiecentral.com/faq/#3.5 # # Each line represents a single piece of stored information. # A tab is inserted between each of the fields. From left-to-right, # here is what each field represents: # # domain The domain that created AND that can read the variable. # flag A TRUE/FALSE value indicating if all machines within a given # domain can access the variable. This value is IGNORED. # path The path within the domain that the variable is valid for. # secure A TRUE/FALSE value indicating if a secure connection with the # domain is needed to access the variable. IGNORED. # expiration The UNIX time that the variable will expire on. UNIX time is # defined as the number of seconds since epoc (Jan 1, 1970 00:00:00 GMT). # If you want to issue a session cookie, just set this field # value to '0'. # name The name of the variable. # value The value of the variable. # # For instance, a cookies.txt file may have an entry that looks like this: # # .netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103 # # Example config file for ht://Dig. # # This configuration file is used by all the programs that make up ht://Dig. # Please refer to the attribute reference manual for more details on what # can be put into this file. (http://www.htdig.org/confindex.html) # Note that most attributes have very reasonable default values so you # really only have to add attributes here if you want to change the defaults. # # What follows are some of the common attributes you might want to change. # # # Specify where the database files need to go. Make sure that there is # plenty of free disk space available for the databases. They can get # pretty big. # database_dir: /var/lib/htdig/db # # This specifies the URL where the robot (htdig) will start. You can specify # multiple URLs here. Just separate them by some whitespace. # The example here will cause the ht://Dig homepage and related pages to be # indexed. # You could also index all the URLs in a file like so: # start_url: `${common_dir}/start.url` # start_url: http://www.htdig.org/ # # This attribute limits the scope of the indexing process. The default is to # set it to the same as the start_url above. This way only pages that are on # the sites specified in the start_url attribute will be indexed and it will # reject any URLs that go outside of those sites. # # Keep in mind that the value for this attribute is just a list of string # patterns. As long as URLs contain at least one of the patterns it will be # seen as part of the scope of the index. # limit_urls_to: ${start_url} # # This attribute is used for compressing the database. The default is to # set it to the same as the limit_urls_to above, plus some common endings. # # Keep in mind that this list should be short. If your start_url is a very # long list of URLs, it may be wise to replace it with something like # http://www. or comment this out and use the compiled-in default. # common_url_parts: ${limit_urls_to} .html .htm .shtml # # If there are particular pages that you definitely do NOT want to index, you # can use the exclude_urls attribute. The value is a list of string patterns. # If a URL matches any of the patterns, it will NOT be indexed. This is # useful to exclude things like virtual web trees or database accesses. By # default, all CGI URLs will be excluded. (Note that the /cgi-bin/ convention # may not work on your web server. Check the path prefix used on your web # server.) # exclude_urls: /cgi-bin/ .cgi # # Since ht://Dig does not (and cannot) parse every document type, this # attribute is a list of strings (extensions) that will be ignored during # indexing. These are *only* checked at the end of a URL, whereas # exclude_url patterns are matched anywhere. # # Also keep in mind that while other attributes allow regex, these must be # actual strings. # bad_extensions: .wav .gz .z .sit .au .zip .tar .hqx .exe .com .gif \ .jpg .jpeg .aiff .class .map .ram .tgz .bin .rpm .mpg .mov .avi .css # # The string htdig will send in every request to identify the robot. Change # this to your email address. # maintainer: unconfigured@htdig.searchengine.maintainer # # The excerpts that are displayed in long results rely on stored information # in the index databases. The compiled default only stores 512 characters of # text from each document (this excludes any HTML markup...) If you plan on # using the excerpts you probably want to make this larger. The only concern # here is that more disk space is going to be needed to store the additional # information. Since disk space is cheap (! :-)) you might want to set this # to a value so that a large percentage of the documents that you are going # to be indexing are stored completely in the database. At SDSU we found # that by setting this value to about 50k the index would get 97% of all # documents completely and only 3% was cut off at 50k. You probably want to # experiment with this value. # Note that if you want to set this value low, you probably want to set the # excerpt_show_top attribute to false so that the top excerpt_length characters # of the document are always shown. # max_head_length: 10000 # # To limit network connections, ht://Dig will only pull up to a certain limit # of bytes. This prevents the indexing from dying because the server keeps # sending information. However, several FAQs happen because people have files # bigger than the default limit of 100KB. This sets the default a bit higher. # (see for more) # max_doc_size: 200000 # # Most people expect some sort of excerpt in results. By default, if the # search words aren't found in context in the stored excerpt, htsearch shows # the text defined in the no_excerpt_text attribute: # (None of the search words were found in the top of this document.) # This attribute instead will show the top of the excerpt. # no_excerpt_show_top: true # # Depending on your needs, you might want to enable some of the fuzzy search # algorithms. There are several to choose from and you can use them in any # combination you feel comfortable with. Each algorithm will get a weight # assigned to it so that in combinations of algorithms, certain algorithms get # preference over others. Note that the weights only affect the ranking of # the results, not the actual searching. # The available algorithms are: # accents # exact # endings # metaphone # prefix # regex # soundex # speling [sic] # substring # synonyms # By default only the "exact" algorithm is used with weight 1. # Note that if you are going to use the endings, metaphone, soundex, accents, # or synonyms algorithms, you will need to run htfuzzy to generate # the databases they use. # search_algorithm: exact:1 synonyms:0.5 endings:0.1 # # The following are the templates used in the builtin search results # The default is to use compiled versions of these files, which produces # slightly faster results. However, uncommenting these lines makes it # very easy to change the format of search results. # See for more details. # # template_map: Long long ${common_dir}/long.html \ # Short short ${common_dir}/short.html # template_name: long # # The following are used to change the text for the page index. # The defaults are just boring text numbers. These images spice # up the result pages quite a bit. (Feel free to do whatever, though) # next_page_text: next no_next_page_text: prev_page_text: prev no_prev_page_text: page_number_text: '1' \ '2' \ '3' \ '4' \ '5' \ '6' \ '7' \ '8' \ '9' \ '10' # # To make the current page stand out, we will put a border around the # image for that page. # no_page_number_text: '1' \ '2' \ '3' \ '4' \ '5' \ '6' \ '7' \ '8' \ '9' \ '10' # local variables: # mode: text # eval: (if (eq window-system 'x) (progn (setq font-lock-keywords (list '("^#.*" . font-lock-keyword-face) '("^[a-zA-Z][^ :]+" . font-lock-function-name-face) '("[+$]*:" . font-lock-comment-face) )) (font-lock-mode))) # end: # Magic data for for file(1) command # # The format is 4-5 columns: # Column #1: byte number to begin checking from, ">" indicates continuation # Column #2: type of data to match # Column #3: contents of data to match # Column #4: MIME type of result # Column #5: MIME encoding of result (optional) # # Modified by for compatibility with # different versions of file(1): # - Columns are separated by TABs (for traditional versions) # - spaces and '<'s within a column are escaped by '\' (for new versions) # - Hex numbers in strings are given as '\0x' (traditional) and '\x' (new) # - Null characters (\000) traditionally terminate strings, but now don't #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # Add any locally observed files here. #------------------------------------------------------------------------------ # end local stuff #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Java 0 short 0xcafe >2 short 0xbabe application/java # Microsoft WAVE format (*.wav) # [GRR 950115: probably all of the shorts and longs should be leshort/lelong] # Microsoft RIFF 0 string RIFF audio/unknown # - WAVE format >8 string WAVE audio/x-wav >8 string AVI video/x-msvideo # 0 belong 0x2e7261fd application/x-realaudio # MPEG Layer 3 sound files 0 beshort &0xffe0 audio/mpeg #MP3 with ID3 tag 0 string ID3 audio/mpeg # Ogg/Vorbis 0 string OggS audio/x-ogg #------------------------------------------------------------------------------ # commands: file(1) magic for various shells and interpreters # #0 string :\ shell archive or commands for antique kernel text 0 string #!/bin/sh application/x-shellscript 0 string #!\ /bin/sh application/x-shellscript 0 string #!/bin/csh application/x-shellscript 0 string #!\ /bin/csh application/x-shellscript # korn shell magic, sent by George Wu, gwu@clyde.att.com 0 string #!/bin/ksh application/x-shellscript 0 string #!\ /bin/ksh application/x-shellscript 0 string #!/bin/tcsh application/x-shellscript 0 string #!\ /bin/tcsh application/x-shellscript 0 string #!/usr/local/tcsh application/x-shellscript 0 string #!\ /usr/local/tcsh application/x-shellscript 0 string #!/usr/local/bin/tcsh application/x-shellscript 0 string #!\ /usr/local/bin/tcsh application/x-shellscript # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de) 0 string #!/bin/bash application/x-shellscript 0 string #!\ /bin/bash application/x-shellscript 0 string #!/usr/local/bin/bash application/x-shellscript 0 string #!\ /usr/local/bin/bash application/x-shellscript # # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson) 0 string #!/usr/local/bin/zsh application/x-shellscript 0 string #!\ /usr/local/bin/zsh application/x-shellscript 0 string #!/usr/local/bin/ash application/x-shellscript 0 string #!\ /usr/local/bin/ash application/x-shellscript #0 string #!/usr/local/bin/ae Neil Brown's ae #0 string #!\ /usr/local/bin/ae Neil Brown's ae 0 string #!/bin/nawk application/x-nawk 0 string #!\ /bin/nawk application/x-nawk 0 string #!/usr/bin/nawk application/x-nawk 0 string #!\ /usr/bin/nawk application/x-nawk 0 string #!/usr/local/bin/nawk application/x-nawk 0 string #!\ /usr/local/bin/nawk application/x-nawk 0 string #!/bin/gawk application/x-gawk 0 string #!\ /bin/gawk application/x-gawk 0 string #!/usr/bin/gawk application/x-gawk 0 string #!\ /usr/bin/gawk application/x-gawk 0 string #!/usr/local/bin/gawk application/x-gawk 0 string #!\ /usr/local/bin/gawk application/x-gawk # 0 string #!/bin/awk application/x-awk 0 string #!\ /bin/awk application/x-awk 0 string #!/usr/bin/awk application/x-awk 0 string #!\ /usr/bin/awk application/x-awk 0 string BEGIN application/x-awk # For Larry Wall's perl language. The ``eval'' line recognizes an # outrageously clever hack for USG systems. # Keith Waclena 0 string #!/bin/perl application/x-perl 0 string #!\ /bin/perl application/x-perl 0 string eval\ "exec\ /bin/perl application/x-perl 0 string #!/usr/bin/perl application/x-perl 0 string #!\ /usr/bin/perl application/x-perl 0 string eval\ "exec\ /usr/bin/perl application/x-perl 0 string #!/usr/local/bin/perl application/x-perl 0 string #!\ /usr/local/bin/perl application/x-perl 0 string eval\ "exec\ /usr/local/bin/perl application/x-perl #------------------------------------------------------------------------------ # compress: file(1) magic for pure-compression formats (no archives) # # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. # # Formats for various forms of compressed data # Formats for "compress" proper have been moved into "compress.c", # because it tries to uncompress it to figure out what's inside. # (Technically, "gzip", "bzip2" etc. are encodings, not mime-types, # and should also decompress to find out the type of data inside.) # standard unix compress 0 string \037\235 application/x-compress # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) 0 string \037\213 application/x-gzip # bzip2 0 string BZh application/x-bzip2 0 string PK\003\004 application/x-zip # According to gzip.h, this is the correct byte order for packed data. 0 string \037\036 application/octet-stream # # This magic number is byte-order-independent. # 0 short 017437 application/octet-stream # XXX - why *two* entries for "compacted data", one of which is # byte-order independent, and one of which is byte-order dependent? # # compacted data 0 short 0x1fff application/octet-stream 0 string \377\037 application/octet-stream # huf output 0 short 0145405 application/octet-stream # Squeeze and Crunch... # These numbers were gleaned from the Unix versions of the programs to # handle these formats. Note that I can only uncrunch, not crunch, and # I didn't have a crunched file handy, so the crunch number is untested. # Keith Waclena #0 leshort 0x76FF squeezed data (CP/M, DOS) #0 leshort 0x76FE crunched data (CP/M, DOS) # Freeze #0 string \037\237 Frozen file 2.1 #0 string \037\236 Frozen file 1.0 (or gzip 0.5) # lzh? #0 string \037\240 LZH compressed data 257 string ustar\0 application/x-tar posix 257 string ustar\040\040\0 application/x-tar gnu 0 short 070707 application/x-cpio 0 short 0143561 application/x-cpio swapped 0 string = application/x-archive 0 string ! application/x-archive >8 string debian application/x-debian-package #------------------------------------------------------------------------------ # # RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com) # 0 beshort 0xedab >2 beshort 0xeedb application/x-rpm 0 lelong&0x8080ffff 0x0000081a application/x-arc lzw 0 lelong&0x8080ffff 0x0000091a application/x-arc squashed 0 lelong&0x8080ffff 0x0000021a application/x-arc uncompressed 0 lelong&0x8080ffff 0x0000031a application/x-arc packed 0 lelong&0x8080ffff 0x0000041a application/x-arc squeezed 0 lelong&0x8080ffff 0x0000061a application/x-arc crunched 0 leshort 0xea60 application/octet-stream x-arj # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) 2 string -lh0- application/x-lharc lh0 2 string -lh1- application/x-lharc lh1 2 string -lz4- application/x-lharc lz4 2 string -lz5- application/x-lharc lz5 # [never seen any but the last; -lh4- reported in comp.compression:] 2 string -lzs- application/x-lha lzs 2 string -lh\ - application/x-lha lh 2 string -lhd- application/x-lha lhd 2 string -lh2- application/x-lha lh2 2 string -lh3- application/x-lha lh3 2 string -lh4- application/x-lha lh4 2 string -lh5- application/x-lha lh5 2 string -lh6- application/x-lha lh6 2 string -lh7- application/x-lha lh7 # Shell archives 10 string #\ This\ is\ a\ shell\ archive application/octet-stream x-shell #------------------------------------------------------------------------------ # frame: file(1) magic for FrameMaker files # # This stuff came on a FrameMaker demo tape, most of which is # copyright, but this file is "published" as witness the following: # 0 string \ # modified by Lachlan Andrew to # match leading whitespace, but still work with old versions # of file(1) which don't recognise the /cb options # 0 string \14 byte 12 (OS/2 1.x format) #>14 byte 64 (OS/2 2.x format) #>14 byte 40 (Windows 3.x format) #0 string IC icon #0 string PI pointer #0 string CI color icon #0 string CP color pointer #0 string BA bitmap array #------------------------------------------------------------------------------ # lisp: file(1) magic for lisp programs # # various lisp types, fWXYZ[rom Daniel Quinlan (quinlan@yggdrasil.com) 0 string ;; text/plain 8bit # Emacs 18 - this is always correct, but not very magical. 0 string \012( application/x-elc # Emacs 19 0 string ;ELC\023\000\000\000 application/x-elc #------------------------------------------------------------------------------ # mail.news: file(1) magic for mail and news # # There are tests to ascmagic.c to cope with mail and news. 0 string Relay-Version: message/rfc822 7bit 0 string #!\ rnews message/rfc822 7bit 0 string N#!\ rnews message/rfc822 7bit 0 string Forward\ to message/rfc822 7bit 0 string Pipe\ to message/rfc822 7bit 0 string Return-Path: message/rfc822 7bit 0 string Path: message/news 8bit 0 string Xref: message/news 8bit 0 string From: message/rfc822 7bit 0 string Article message/news 8bit #------------------------------------------------------------------------------ # msword: file(1) magic for MS Word files # # Contributor claims: # Reversed-engineered MS Word magic numbers # Some of these also occur in PowerPoint. -- lha@users.sourceforge.net 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword #------------------------------------------------------------------------------ # printer: file(1) magic for printer-formatted files # # PostScript 0 string %! application/postscript 0 string \004%! application/postscript 0 string \033%-12345X%!PS application/postscript # Acrobat # (due to clamen@cs.cmu.edu) 0 string %PDF- application/pdf #------------------------------------------------------------------------------ # sc: file(1) magic for "sc" spreadsheet # 38 string Spreadsheet application/x-sc #------------------------------------------------------------------------------ # tex: file(1) magic for TeX files # # XXX - needs byte-endian stuff (big-endian and little-endian DVI?) # # From # Although we may know the offset of certain text fields in TeX DVI # and font files, we can't use them reliably because they are not # zero terminated. [but we do anyway, christos] 0 string \367\002 application/x-dvi #0 string \367\203 TeX generic font data #0 string \367\131 TeX packed font data #0 string \367\312 TeX virtual font data #0 string This\ is\ TeX, TeX transcript text #0 string This\ is\ METAFONT, METAFONT transcript text # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) #0 string \\input\ texinfo Texinfo source text #0 string This\ is\ Info\ file GNU Info text # correct TeX magic for Linux (and maybe more) # from Peter Tobias (tobias@server.et-inf.fho-emden.de) # 0 leshort 0x02f7 application/x-dvi # RTF - Rich Text Format 0 string {\\rtf text/rtf #------------------------------------------------------------------------------ # animation: file(1) magic for animation/movie formats # # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) # MPEG file 0 belong 0x000001b3 video/mpeg 0 belong 0x000001ba video/mpeg # FLI animation format 0 leshort 0xAF11 video/fli # FLC animation format 0 leshort 0xAF12 video/flc # AVI >8 string AVI\ video/avi # # SGI and Apple formats # 0 string MOVI video/sgi 4 string moov video/quicktime moov 4 string mdat video/quicktime mdat # The contributor claims: # I couldn't find a real magic number for these, however, this # -appears- to work. Note that it might catch other files, too, # so BE CAREFUL! # # Note that title and author appear in the two 20-byte chunks # at decimal offsets 2 and 22, respectively, but they are XOR'ed with # 255 (hex FF)! DL format SUCKS BIG ROCKS. # # DL file version 1 , medium format (160x100, 4 images/screen) 0 byte 1 video/unknown 0 byte 2 video/unknown # # Databases # # GDBM magic numbers # Will be maintained as part of the GDBM distribution in the future. # 0 belong 0x13579ace application/x-gdbm 0 lelong 0x13579ace application/x-gdbm 0 string GDBM application/x-gdbm # 0 belong 0x061561 application/x-dbm # # Executables # 0 string \177ELF >4 byte 0 >4 byte 1 >4 byte 2 >5 byte 0 >5 byte 1 >>16 leshort 0 >>16 leshort 1 application/x-object >>16 leshort 2 application/x-executable >>16 leshort 3 application/x-sharedlib >>16 leshort 4 application/x-coredump # # DOS 0 string MZ application/x-dosexec # # KDE 0 string [KDE\ Desktop\ Entry] application/x-kdelnk 0 string \#\ KDE\ Config\ File application/x-kdelnk # xmcd database file for kscd 0 string \#\ xmcd text/xmcd #------------------------------------------------------------------------------ # pkgadd: file(1) magic for SysV R4 PKG Datastreams # 0 string #\ PaCkAgE\ DaTaStReAm application/x-svr4-package #PNG Image Format 0 string \x89PNG image/png 0 string \0x89PNG image/png # This is the default mime.types file from the Apache web server distribution # This file controls what Internet media types are sent to the client for # given file extension(s). Sending the correct media type to the client # is important so they know how to handle the content of the file. # Extra types can either be added here or by using an AddType directive # in your config files. For more information about Internet media types, # please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type # registry is at . # MIME type Extension application/EDI-Consent application/EDI-X12 application/EDIFACT application/activemessage application/andrew-inset ez application/applefile application/atomicmail application/cals-1840 application/commonground application/cybercash application/dca-rft application/dec-dx application/eshop application/hyperstudio application/iges application/mac-binhex40 hqx application/mac-compactpro cpt application/macwriteii application/marc application/mathematica application/msword doc application/news-message-id application/news-transmission application/octet-stream bin dms lha lzh exe class application/oda oda application/pdf pdf application/pgp-encrypted application/pgp-keys application/pgp-signature application/pkcs10 application/pkcs7-mime application/pkcs7-signature application/postscript ai eps ps application/prs.alvestrand.titrax-sheet application/prs.cww application/prs.nprend application/remote-printing application/riscos application/rtf rtf application/set-payment application/set-payment-initiation application/set-registration application/set-registration-initiation application/sgml application/sgml-open-catalog application/slate application/smil smi smil application/vemmi application/vnd.3M.Post-it-Notes application/vnd.FloGraphIt application/vnd.acucobol application/vnd.anser-web-certificate-issue-initiation application/vnd.anser-web-funds-transfer-initiation application/vnd.audiograph application/vnd.businessobjects application/vnd.claymore application/vnd.comsocaller application/vnd.dna application/vnd.dxr application/vnd.ecdis-update application/vnd.ecowin.chart application/vnd.ecowin.filerequest application/vnd.ecowin.fileupdate application/vnd.ecowin.series application/vnd.ecowin.seriesrequest application/vnd.ecowin.seriesupdate application/vnd.enliven application/vnd.epson.salt application/vnd.fdf application/vnd.ffsns application/vnd.framemaker application/vnd.fujitsu.oasys application/vnd.fujitsu.oasys2 application/vnd.fujitsu.oasys3 application/vnd.fujitsu.oasysgp application/vnd.fujitsu.oasysprs application/vnd.fujixerox.docuworks application/vnd.hp-HPGL application/vnd.hp-PCL application/vnd.hp-PCLXL application/vnd.hp-hps application/vnd.ibm.MiniPay application/vnd.ibm.modcap application/vnd.intercon.formnet application/vnd.intertrust.digibox application/vnd.intertrust.nncp application/vnd.is-xpr application/vnd.japannet-directory-service application/vnd.japannet-jpnstore-wakeup application/vnd.japannet-payment-wakeup application/vnd.japannet-registration application/vnd.japannet-registration-wakeup application/vnd.japannet-setstore-wakeup application/vnd.japannet-verification application/vnd.japannet-verification-wakeup application/vnd.koan application/vnd.lotus-1-2-3 application/vnd.lotus-approach application/vnd.lotus-freelance application/vnd.lotus-organizer application/vnd.lotus-screencam application/vnd.lotus-wordpro application/vnd.meridian-slingshot application/vnd.mif mif application/vnd.minisoft-hp3000-save application/vnd.mitsubishi.misty-guard.trustweb application/vnd.ms-artgalry application/vnd.ms-asf application/vnd.ms-excel application/vnd.ms-powerpoint ppt application/vnd.ms-project application/vnd.ms-tnef application/vnd.ms-works application/vnd.music-niff application/vnd.musician application/vnd.netfpx application/vnd.noblenet-directory application/vnd.noblenet-sealer application/vnd.noblenet-web application/vnd.novadigm.EDM application/vnd.novadigm.EDX application/vnd.novadigm.EXT application/vnd.osa.netdeploy application/vnd.powerbuilder6 application/vnd.powerbuilder6-s application/vnd.rapid application/vnd.seemail application/vnd.shana.informed.formtemplate application/vnd.shana.informed.interchange application/vnd.shana.informed.package application/vnd.street-stream application/vnd.sun.xml.calc sxc application/vnd.sun.xml.draw sxd application/vnd.sun.xml.impress sxi application/vnd.sun.xml.writer sxw application/vnd.svd application/vnd.swiftview-ics application/vnd.truedoc application/vnd.visio application/vnd.webturbo application/vnd.wrq-hp3000-labelled application/vnd.wt.stf application/vnd.xara application/vnd.yellowriver-custom-menu application/wita application/wordperfect5.1 application/x-bcpio bcpio application/x-cdlink vcd application/x-chess-pgn pgn application/x-compress application/x-cpio cpio application/x-csh csh application/x-director dcr dir dxr application/x-dvi dvi application/x-futuresplash spl application/x-gtar gtar application/x-gzip application/x-hdf hdf application/x-javascript js application/x-koan skp skd skt skm application/x-latex latex application/x-netcdf nc cdf application/x-sh sh application/x-shar shar application/x-shockwave-flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar tar application/x-tcl tcl application/x-tex tex application/x-texinfo texinfo texi application/x-troff t tr roff application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/x400-bp application/xml application/zip zip audio/32kadpcm audio/basic au snd audio/midi mid midi kar audio/mpeg mpga mp2 mp3 audio/vnd.qcelp audio/x-aiff aif aiff aifc audio/x-pn-realaudio ram rm audio/x-pn-realaudio-plugin rpm audio/x-realaudio ra audio/x-wav wav chemical/x-pdb pdb xyz image/cgm image/g3fax image/gif gif image/ief ief image/jpeg jpeg jpg jpe image/naplps image/png png image/prs.btif image/tiff tiff tif image/vnd.dwg image/vnd.dxf image/vnd.fpx image/vnd.net-fpx image/vnd.svf image/vnd.xiff image/x-cmu-raster ras image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd message/delivery-status message/disposition-notification message/external-body message/http message/news message/partial message/rfc822 model/iges igs iges model/mesh msh mesh silo model/vnd.dwf model/vrml wrl vrml multipart/alternative multipart/appledouble multipart/byteranges multipart/digest multipart/encrypted multipart/form-data multipart/header-set multipart/mixed multipart/parallel multipart/related multipart/report multipart/signed multipart/voice-message text/css css text/directory text/enriched text/plain asc txt text/prs.lines.tag text/rfc822-headers text/richtext rtx text/rtf rtf text/sgml sgml sgm text/tab-separated-values tsv text/uri-list text/vnd.abc text/vnd.flatland.3dml text/vnd.fmi.flexstor text/vnd.in3d.3dml text/vnd.in3d.spot text/vnd.latex-z text/x-setext etx text/xml xml video/mpeg mpeg mpg mpe video/quicktime qt mov video/vnd.motorola.video video/vnd.motorola.videop video/vnd.vivo video/x-msvideo avi video/x-sgi-movie movie x-conference/x-cooltalk ice text/html html htm  . ..conf.d ... Welcome to SuSE Linux 9.3 (x86-64) - Kernel \r (\l). # Localstuff: file(1) magic(5) for locally observed files # global magic file is /usr/share/misc/magic(.mgc)  . .. su chfn chsh sshdcommon-passwordchagecrondloginothersamba common-authrpasswdcommon-sessionpasswdcommon-accountshadowuseraddvsftpdxdm-np pure-ftpd#%PAM-1.0 auth sufficient pam_rootok.so auth include common-auth account include common-account password include common-password session include common-session session optional pam_xauth.so #%PAM-1.0 auth sufficient pam_rootok.so auth include common-auth account include common-account password include common-password session include common-session #%PAM-1.0 auth sufficient pam_rootok.so auth include common-auth account include common-account password include common-password session include common-session #%PAM-1.0 auth include common-auth auth required pam_nologin.so account include common-account password include common-password session include common-session # Enable the following line to get resmgr support for # ssh sessions (see /usr/share/doc/packages/resmgr/README.SuSE) #session optional pam_resmgr.so fake_ttyname # # /etc/pam.d/common-password - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services to be # used to change user passwords. The default is pam_unix2 in combination # with pam_pwcheck. # The "nullok" option allows users to change an empty password, else # empty passwords are treated as locked accounts. # # To enable Blowfish or MD5 passwords, you should edit # /etc/default/passwd. # # Alternate strength checking for passwords should be configured # in /etc/security/pam_pwcheck.conf. # # pam_make can be used to rebuild NIS maps after password change. # password required pam_pwcheck.so nullok password required pam_unix2.so nullok use_first_pass use_authtok #password required pam_make.so /var/yp #%PAM-1.0 auth sufficient pam_rootok.so auth include common-auth account include common-account password include common-password session include common-session # # The PAM configuration file for the cron daemon # # auth sufficient pam_rootok.so auth include common-auth account include common-account password include common-password session include common-session #%PAM-1.0 auth required pam_securetty.so auth include common-auth auth required pam_nologin.so auth required pam_mail.so account include common-account password include common-password session include common-session session required pam_resmgr.so #%PAM-1.0 auth required pam_warn.so auth required pam_deny.so account required pam_warn.so account required pam_deny.so password required pam_warn.so password required pam_deny.so session required pam_warn.so session required pam_deny.so #%PAM-1.0 auth include common-auth account include common-account password include common-password session include common-session # # /etc/pam.d/common-auth - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # auth required pam_env.so auth sufficient pam_unix2.so use_first_pass auth required pam_smb_auth.so #%PAM-1.0 auth include common-auth account include common-account password include common-password session include common-session # # /etc/pam.d/common-session - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of sessions of *any* kind (both interactive and # non-interactive). The default is pam_unix2. # session required pam_limits.so session required pam_unix2.so #%PAM-1.0 auth include common-auth account include common-account password include common-password session include common-session # # /etc/pam.d/common-account - authorization settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authorization modules that define # the central access policy for use on the system. The default is to # only deny service to users whose accounts are expired. # account required pam_unix2.so #%PAM-1.0 auth sufficient pam_rootok.so auth required pam_permit.so account required pam_permit.so #password required pam_make.so /var/yp password required pam_permit.so session required pam_deny.so #%PAM-1.0 auth sufficient pam_rootok.so auth required pam_permit.so account required pam_permit.so password required pam_permit.so session required pam_permit.so #%PAM-1.0 # Uncomment this to achieve what used to be ftpd -A. # auth required pam_listfile.so item=user sense=allow file=/etc/ftpchroot onerr=fail auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed # Uncomment the following line for anonymous ftp. #auth sufficient pam_ftp.so auth required pam_unix2.so auth required pam_shells.so account required pam_unix2.so password required pam_unix2.so session required pam_unix2.so #%PAM-1.0 auth required pam_permit.so account required pam_unix2.so password required pam_unix2.so #strict=false session required pam_unix2.so debug # trace or none session required pam_devperm.so session required pam_resmgr.so #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth include common-auth auth required pam_shells.so account include common-account password include common-password # # ant.conf (Ant 1.6.x) # JPackage Project # # Validate --noconfig setting in case being invoked # from pre Ant 1.6.x environment if [ -z "$no_config" ] ; then no_config=true fi # Setup ant configuration if $no_config ; then # Disable RPM layout rpm_mode=false else # Use RPM layout rpm_mode=true # ANT_HOME for rpm layout ANT_HOME=/usr/share/ant # Optional jars list if [ -z "$OPT_JAR_LIST" ] ; then # RPM installed ant optional packages normally # require one or more other dependencies to be listed # as well, (e.g. "ant-junit" requires "junit"): # OPT_JAR_LIST="$OPT_JAR_LIST junit ant/ant-junit" OPT_JAR_LIST="$OPT_JAR_LIST" # RPM DO NOT EDIT OR REMOVE THIS LINE fi fi  . ..lmhosts secrets.tdb smbpasswdsmb.confsmbfstabsmbusers# This file provides the same function that the lmhosts file does for # Windows. It's another way to map netbios names to ip addresses. # # See section 'name resolve order' in the manual page of smb.conf for # more information. 127.0.0.1 localhost TDB file m&4dDmIe&SECRETS/SID/BRN-SUSE093-24@3#s}BBB|fBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB# This file is the authentication source for Samba if 'passdb backend' is set # to 'smbpasswd' and 'encrypt passwords' is 'Yes' in the [global] section of # /etc/samba/smb.conf # # See section 'passdb backend' and 'encrypt passwords' in the manual page of # smb.conf for more information. nobody:65534:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[DU ]:LCT-00000000: # smb.conf is the main Samba configuration file. You find a full commented # version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the # samba-doc package is installed. # Date: 2005-04-04 [global] workgroup = BRN netbios name = BRN-SUSE093-2 security = share #[homes] # comment = Home Directories # valid users = %S # browseable = No # read only = No # inherit acls = Yes ## Share disabled by YaST # [profiles] # comment = Network Profiles Service # path = %H # read only = No # store dos attributes = Yes # create mask = 0600 # directory mask = 0700 #[users] # comment = All users # path = /home # read only = No # inherit acls = Yes # veto files = /aquota.user/groups/shares/ ## Share disabled by YaST # [groups] # comment = All groups # path = /home/groups # read only = No # inherit acls = Yes ## Share disabled by YaST # [printers] # comment = All Printers # path = /var/tmp # printable = Yes # create mask = 0600 # browseable = No ## Share disabled by YaST # [print$] # comment = Printer Drivers # path = /var/lib/samba/drivers # write list = @ntadmin root # force group = ntadmin # create mask = 0664 # directory mask = 0775 [tmp] comment = tmp path = /tmp read only = NO guest only = Yes # This file allows you to mount SMB/ CIFS shares during system boot while # hiding passwords to other people than root. Use /etc/fstab for public # available services. You have to specify at least a service name and a mount # point. Current default vfstype is smbfs. # # Possible vfstypes are smbfs and cifs. # # The options are explained in the manual page of smbmount and mount.cifs. # # service moint-point vfstype options ;//fjall/test /data/test cifs username=tridge,password=foobar # This file allows you to map usernames from the clients to the server. # Unix_name = SMB_name1 SMB_name2 ... # # See section 'username map' in the manual page of smb.conf for more # information. root = administrator ;nobody = guest pcguest smbguest  . .. tex ls-R xdvidvipsweb2c . .. mexcyrplainplaingenericplatex . ..config . .. mexconf.tex% This is MEXCONF.TEX - a part of the Polish plain TeX and LaTeX formats. % Version 1.05, 18 December 1993 % % Authors: Marek Ry\'cko & Bogus\l{}aw Jackowski % % This macro file belongs to the public domain % under the conditions specified by the author of TeX: % % ``Macro files like PLAIN.TEX should not be changed in any way, % except with respect to preloaded fonts, % unless the changes are authorized by the authors of the macros.'' % % Donald E. Knuth % % You are entitled to modify this file obeying the rules specified below. % % For details see MEXINFO.ENG or MEXINFO.POL. \message{MeX configuration,} % The following lines define which hyphenation patterns % are to be included in the current configuration of the MeX format. % We assume that fonts with different positions of Polish diacritical % characters can be used within the same document and each font layout % requires its own hyphenation patterns. % The standard positions of Polish diacritical characters in TeX's fonts % is the layout accepted at the 5th European TeX Conference in Cork (1990); % this layout is called here `PL'. % % The standard configuration of the MeX format includes the hyphenation % patterns for: % - the English language (OK for all fonts), % - the Polish language used with the fonts in the `PL' layout. % In such configuration switching to another font layout disables % hyphenation for the Polish language. % % However, the hyphenation patterns for other layouts of fonts including % Polish diacritical letters are prepared and if memory space in the % particular instalation of TeX permits the user is free to use INITEX % to generate a new MeX or LaMeX format containing these patterns. % Just `unpercent' some of the following lines. \hyph@nate{english} \hyph@nate{pl} %\hyph@nate{pone} %\hyph@nate{mazovia} %\hyph@nate{latintwo} % ``deafault'' means -- at the beginning % (unpercent only one possibility) \def\d@faultlayout {pl} %{mazovia} %{latintwo} %{pone} \def\d@faultlanguage {\polish} %{\english} \def\d@faultprefixing {\nonprefixing} %{\prefixing} \def\d@faultspacing {\frenchspacing} %{\nonfrenchspacing} % in PLAIN.TeX and LFONTS.TeX files the prefix: \def\@ldpref % exactly two characters {cm} % is changed to: \def\n@wpref % an arbitrary number of characters {pl} \def\pl@in % the name of the file containing the original plain TeX format % (usually: `plain.tex') {plain.tex} \def\lpl@in % the name of the file containing the original lplain file % (usually: `lplain.tex') {lplain.tex} \def\lf@nts % the name of the file containing the original lfonts file % (usually: `lfonts.tex') {lfonts.tex} \def\l@tex % the name of the file containing the original latex file % (usually: `latex.tex') {latex.tex} \def\P@lhyphen % name of the file containing Polish hyphenation patterns % the patterns must be in the prefix notation {plhyph.tex} \def\@nghyphen % name of the file containing the US-English % hyphenation patterns (usually `hyphen.tex') {hyphen.tex} \endinput  . ..config . .. cyrtex.cfg% Cyrillic TeX configuration file for Plain TeX based packages % Select text font encoding and fonts which will be used \c lh/lcy/lcydefs/cm/cyrcmfnt %\c c3/lcy/lcydefs/cm/cyrcmfnt %\c la/t2a/txxdefs/ex/cyrecfnt %\c c1/t2a/txxdefs/ex/cyrcmfnt %\c lb/t2b/txxdefs/ex/cyrecfnt %\c lc/t2c/txxdefs/ex/cyrecfnt %\c ld/t2d/txxdefs/ex/cyrecfnt % In general, latin-based setups are also supported %\c cm/ot1/null/cm/cyrcmfnt %\c ec/t1/txxdefs/ex/cyrecfnt %\c ae/t1/txxdefs/ex/cyrcmfnt % Which Russian hyphenation pattern to load (if not defined here, % the default from ruhyphen.tex will be used) %\def\Pattern{al} %\def\Pattern{as} %\def\Pattern{ct} %\def\Pattern{dv} %\def\Pattern{vl} %\def\Pattern{zn} % Whether to switch on hyphenation of words with explicit hyphens % (requires hyphenation patterns with hypht1.tex or hypht2.tex loaded!) \iftxxenc\lccode`\-=`\- \defaulthyphenchar=127 \fi % Whether to use input encoding selection (with active characters) \let\ifinpenc\iftrue %\let\ifinpenc\iffalse % Select the default input encoding (only if inputenc is activated). % Some possible choices for cyrillic: % cp1251, cp855, cp866, cp866av, cp866mav, cp866nav, cp866tat, ctt, dbk, % iso88595, isoir111, koi8-r, koi8-ru, koi8-u, maccyr, macukr, mik, mls, % mnk, mos, ncc % % Some possible choices for latin: % ansinew, applemac, ascii, cp1250, cp1252, cp437, cp437de, cp850, % cp852, cp865, decmulti, latin1, latin2, latin3, latin5, next % latin1jk, latin2jk, latin3jk % amigapl, mazovia % atari, isolatin, mac, pc850, roman8 \def\definpenc{koi8-r}  . ..config . .. language.def%% e-TeX V2.0;2 % Note: the first line of this file must match the corresponding line % in "etex.src" and "etexdefs.lib", otherwise fallback will be used. % This is "language.def", e-TeX's language definition file. % It is explicitly permitted to augment this file by adding additional % \addlanguage ... commands AFTER the first (\addlanguage {USenglish}) % which must remain as the first language added to ensure total document % portability for pre-\language documents. The last line of the file % MUST be left as \uselanguage {USenglish} for the sane reason. \addlanguage {USenglish}{hyphen}{}{2}{3} %%% This MUST be the first non-comment %%% line of the file % Additional languages, patterns, exceptions and left- and right-hyphen % minima may be added here, and an example is given for German. % The five parameters for \addlanguage are: % language, patterns file, exceptions file, left- and right-hyphen minima %%% Next section is E X A M P L E O N L Y %%% \addlanguage {German}{ghyph31}{}{2}{2} %%% further such lines may be used; %%% Previous section is E X A M P L E O N L Y %%% No changes may be made beyond this point. \uselanguage {USenglish} %%% This MUST be the last line of the file.  . ..config . ..pdftexconfig.tex language.dat% Set pdfTeX parameters for pdf mode (replacing pdftex.cfg file). % Thomas Esser, 2004. public domain. \pdfoutput=1 \pdfpagewidth=210 true mm \pdfpageheight=297 true mm \pdfpkresolution=600 \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File : language.dat % Purpose : specify which hypenation patterns to load % while running iniTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CAUTION: the first language will be the default if no style-file % (e.g. german.sty) is used. % Since version 3.0 of TeX, hyphenation patterns for multiple languages are % possible. Unless you know what you are doing, please let the american % english patterns be the first ones. The babel system allows you to % easily change the active language for your texts. For more information, % have a look to the documentation in texmf/doc/generic/babel. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The hyphenation pattern files are in the dirctory: % texmf/tex/generic/hyphen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The US-english patterns should be loaded *always* and as *first* ones. % Define USenglish as an alias for american. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% american ushyph1.tex =USenglish %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % UK english, TWO LINES! To enable these lines, remove %! and the space. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %! british ukhyphen.tex % unavailable in teTeX due to license problem! %! =UKenglish % english should always be defined. Either an alias for american or british. =english % French, TWO lines! french frhyph.tex =patois german dehypht.tex =austrian % For use with ngerman.sty (neue Rechtschreibung): ngerman dehyphn.tex =naustrian %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The following languages are disabled by default. Uncomment, what you need. % To enable, remove %! and the space. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bahasa inhyph.tex basque bahyph.tex bulgarian bghyphen.tex catalan cahyph.tex croatian hrhyph.tex czech czhyph.tex % depends on other files from tex/csplain danish dkhyphen.tex dutch nehyph.tex esperanto eohyph.tex estonian eehyph.tex finnish fi8hyph.tex greek grhyph.tex icelandic icehyph.tex irish gahyph.tex italian ithyph.tex latin lahyph.tex magyar huhyphn.tex norsk nohyphbx.tex % see http://home.c2i.net/omselberg/pub/nohyphbx_intro.htm (in Norwegian) polish plhyph.tex portuges pt8hyph.tex romanian rohyphen.tex russian ruhyphen.tex % note: edit ruhyphen.tex for your encoding! serbian srhyphc.tex % Serbian Cyrillic Hyphenation Patterns slovak skhyph.tex % depends on csplain being installed slovene sihyph23.tex spanish eshyph.tex swedish sehyph.tex turkish trhyph.tex % For Ukrainian, either use ukrhyph.tex (and edit that file for the encoding % that you need) or use one of the ukrhyph.ENC files. ukrainian ukrhyph.tex %! ukrainian ukrhyph.t2a %! ukrainian ukrhyph.lcy %! ukrainian ukrhyph.ot2 % A "language" without hyphenation: nohyphenation zerohyph.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Please contact me, if for any of the following languages there are % freely available hyphenation tables: % galician % I might want to include them in a future version of this file. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Email : Thomas Esser, te@dbs.uni-hannover.de %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  . ..config . .. language.dat%% language.dat %% %% This file specifies which hyphenation patterns iniTeX should load %% while generating a format file. %% %% %% This file can contain two kinds of lines: %% 1. Lines of the form %% %% instruct iniTeX to allocate new language and load all pattern files %% for that language. %% 2. Lines of the form %% = %% say that language name specified on this line is just a synonym for %% the language defined by previous line. %% Comments start with percent character. %% %% Note: the first defined language will be the default if you use no %% language switching package (such as babel or polski.sty or %% german.sty). %% By convention the american english patterns should be the default. %% %% Below you'll find many example entries which you may want to %% activate by removing the % from line beginning. Before activating %% any of the lines below please check if you have appropriate %% hyphenation patterns files or iniTeX will fail to generate the %% format. %% %% If you've got here by using some configuration program you should %% edit this file to your taste, save it and exit the editor. Then %% probably your configuration program will regenerate format files to %% put your changes into effect. %% %%%%%%%%%%%%%%%%%%%%%%%%% BEGINNING OF DATA %%%%%%%%%%%%%%%%%%%%%%%%% %% This line defines language `american' with original Knuth's %% patterns: american hyphen.tex %% If you use Babel you should include this line instead: %american ushyph1.tex %% Please always include one of the above two lines! %% %% This line declares name USenglish as a synonym for american: =USenglish %% UK english: %british ukhyph.tex %=UKenglish =english %catalan cahyph.tex %croatian hrhyph.tex %czech czhyph2e.tex %danish dkhyphen.tex %dutch nehyph1.tex %dutch nehyph2.tex %dutch nehyph3.tex %finnish fihyph.tex %french frhyph.tex frhyphex.tex %german ghyph31.tex %italian ithyph.tex %norsk nohyph.tex polish plhyph.tex %portuges pthyph.tex %romanian rohyphen.tex %slovene sihyph22.tex %spanish sphyph.tex %swedish sehyph.tex % ls-R -- filename database for kpathsea; do not change this line. ./: .: .lsR.w20910 dvips ls-R tex web2c xdvi ./dvips: config ./dvips/config: config.bjc600 config.deskjet config.ljet4 config.ps config.stcolor ./tex: cyrplain generic mex plain platex ./tex/cyrplain: config ./tex/cyrplain/config: cyrtex.cfg ./tex/generic: config ./tex/generic/config: language.dat pdftexconfig.tex ./tex/mex: config ./tex/mex/config: mexconf.tex ./tex/plain: config ./tex/plain/config: language.def ./tex/platex: config ./tex/platex/config: language.dat ./web2c: fmtutil.cnf mktex.cnf texmf.cnf updmap.cfg ./xdvi: XDvi  . ..XDvi!!! Global application defaults for XDvik !!! Install this file into $TEXMF/xdvi/XDvi !!! (use kpsewhich --expand-path '$TEXMF' to determine the location of !!! $TEXMF on you system). !!! !!! Lines commented out (starting with `!') are examples of !!! how to customize Xdvi for your personal needs. !!! To use these settings, copy them into your $HOME/.Xdefaults file !!! (remove the comments), prefix each line with `xdvi', and activate !!! them with: !!! $ xrdb -merge $HOME/.Xdefaults !!!------------------------------------------------------------------------------ !!!------------------------ useful global settings ------------------------------ !!!------------------------------------------------------------------------------ !!! Use `logical' (TeX) pages instead of physical pages for the `g' keystroke: *useTeXPages: True !!! A fairly high resolution, which usually gives better results for anti-aliasing !!! and greater flexibility for shrink values. Generating MF fonts shouldn't be an !!! issue when using T1lib. !*mfMode: ljfour *paper: a4 !!! This should be the best choice for modern displays with large color depth. *thorough: true !!!------------------------------------------------------------------------------ !!!------------------------------ Motif toolbar --------------------------------- !!!------------------------------------------------------------------------------ !!! filename of the XPM file used for the toolbar pixmaps: *toolbarPixmapFile: toolbar.xpm !!! Use toolbar buttons that are non-raised by default and only appear raised !!! when the mouse is over a button, as in e.g. Netscape 4.x: *toolbarButtonsRaised: False !!! don't draw a border around armed buttons: *button*highlightThickness: 0 !!! no extra margin above/below buttons *toolBar.marginHeight:0 !!! some spacing around button icons and button edges *toolBar*button*marginHeight: 2 *toolBar*button*marginWidth: 2 !!! don't draw the small grey rectangle inside the armed button: *button*fillOnArm: false !!! Or, for a more traditional Motif look, use something like: !*toolbarButtonsRaised: True !*button*fillOnArm: True !*button*shadowThickness: 1 !*toolBar.marginHeight: 0 !*toolBarFrame.marginWidth: 0 !*button*highlightThickness: 2 !!!------------------------------------------------------------------------------ !!!-------------------------------- Motif widgets ------------------------------- !!!------------------------------------------------------------------------------ !!! small shadows like in netscape 4.x *menuBar.shadowThickness: 1 *button*shadowThickness: 2 *toolBar.shadowThickness: 1 *toolBarFrame.shadowThickness: 1 *helppanel.shadowThickness: 1 *toolBarFrame.marginWidth: 2 *statusline*shadowThickness: 1 !!! prevent the Motif file selector widget from resizing itself, and start with a reasonable default: *resizePolicy: XmRESIZE_NONE *textColumns: 50 !!! make all text/entry fields white, for better contrasts: *file_text.background: white *searchbox_input.background: white *print_text.background: white *dvips_options_text.background: white *from_page.background: white *to_page.background: white *topics_list.background: white *help_text.background: white *FilterText.background: white *DirList.background: white *ItemsList.background: white *file.Text.background: white !!! adjust position of header in help window *help_window*right_form.topOffset: 10 !!!------------------------------------------------------------------------------ !!!----------------------------- Preferences window ----------------------------- !!!------------------------------------------------------------------------------ *XmComboBox*List*background: white *XmComboBox*Text*background: white *XmComboBox*Text*borderWidth: 2 *XmComboBox*Text*borderColor: black !!!------------------------------------------------------------------------------ !!!--------------------------------- Help window -------------------------------- !!!------------------------------------------------------------------------------ !!! (See also the fontList entries for TOPIC_LABEL and TOPIC_HEADING) !!! !!! Set this to something that fits to your font size: *help_text.rows: 23 *help_text.columns: 56 !!! fg/bg for help topics label *help_label*shadowThickness: 2 !!! ... if you want a more colorful label: !*help_label*foreground: blue4 !*help_label*background: grey90 !!! help topics label for Xaw *help_label.font: -*-helvetica-bold-r-*-*-14-*-*-*-*-*-*-* !!!------------------------------------------------------------------------------ !!!-------------------------------- Motif tooltips ------------------------------ !!!------------------------------------------------------------------------------ !!! background color and font: *tipShell.background: cornsilk *tipShell.fontSet: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-* !!! time the mouse needs to stay on a button until tooltips pop up, !!! in milliseconds; set to a negative value to disable: *tipShell.waitPeriod: 800 !!!------------------------------------------------------------------------------ !!!------------------------------ Fonts and colors ------------------------------ !!!------------------------------------------------------------------------------ *font: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-* !!! Use a smaller font for the statusline in the Xaw version: *statusline.font: -*-helvetica-medium-r-*-*-10-*-*-*-*-*-* !!! Motif fonts. Meaning of the tags is: !!! NORMAL: Ordinary text, labels etc. !!! UNMARKED: Unmarked entries in page list !!! MARKED: Marked entries in page list, emphasized entries in other lists !!! TOPIC_LABEL: Label for topics list in help window !!! TOPIC_HEADING: Heading for help text in help window !!! *fontList: \ -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*=NORMAL,\ -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*=UNMARKED,\ -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*=MARKED,\ -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*=TOPIC_LABEL,\ -*-helvetica-bold-r-*-*-14-*-*-*-*-*-*-*=TOPIC_HEADING !!! Color used for page border, image bounding boxes and the ruler in `Ruler mode'. *highlight: red !!! Color used for the magnifier and its rulers: *rulecolor: blue !!!------------------------------------------------------------------------------ !!!---------------------------------- hyperlinks ------------------------------- !!!------------------------------------------------------------------------------ !!! Colors for unvisited and visited hyperlinks (can be any valid X color spec, !!! also in hex format): *linkColor: Blue2 *visitedLinkColor: Purple4 !!! Link style: !!! 0: no highlighting at all !!! 1: underline with linkColor !!! 2: no underlining, text with linkColor !!! 3: underlining and text with linkColor *linkStyle: 3 !!!------------------------------------------------------------------------------ !!!------------------------------ helper applications --------------------------- !!!------------------------------------------------------------------------------ !!! the editor used for `forward search'; can also be set via $EDITOR, $VISUAL !!! or $XEDITOR. Setting the X resource will override the environment variables. !!! The format strings `%l' and `%f' are optional. !!! You could use this for older emacsen that come with emacsclient: !*editor: emacsclient --no-wait +%l %f !!! and this for current emacs or xemacs that come with gnuclient (which is much better): !*editor: gnuclient -q +%l %f !!!------------------------------------------------------------------------------ !!!------------------------------ Xaw buttons and helptexts --------------------- !!!------------------------------------------------------------------------------ !!! The following sections are of a more esoteric nature, giving !!! examples for customizing the Xaw buttons and the help texts. !!! Maybe these are useful for i18n. !!!------------------------------ !!! This is the default Xaw button configuration: !!!------------------------------ ! *buttonTranslations: \ ! File_Open ...:select-dvi-file()\n\ ! File_Reload:reread-dvi-file()\n\ ! File_Back Hyperref:htex-back()\n\ ! File_Quit:quit()\n\ ! Page_First page:goto-page(1)\n\ ! Page_Page-10:back-page(10)\n\ ! Page_Page-5:back-page(10)\n\ ! Page_Prev:back-page(1)\n\ ! Page_Next:forward-page(1)\n\ ! Page_Page+5:forward-page(5)\n\ ! Page_Page+10:forward-page(10)\n\ ! Page_Last page:goto-page()\n\ ! Zoom_Full size:set-shrink-factor(1)\n\ ! Zoom_$%%:shrink-to-dpi(150)\n\ ! Zoom_$%%:shrink-to-dpi(100)\n\ ! Zoom_$%%:shrink-to-dpi(50)\n\ ! Zoom_Fit in window:set-shrink-factor()\n\ ! Options_View PS:set-ps(toggle)\n\ ! Options_Keep position:set-keep-flag()\n\ ! Help_About ...:popup-help(helpGeneral)\n\ ! Help_Page Motion ...:popup-help(helpPagemotion)\n\ ! Help_Other Commands ...:popup-help(helpOthercommands)\n\ ! Help_HyperTeX commands ...:popup-help(helpHypertex)\n\ ! Help_Source specials ...:popup-help(helpSourcespecials)\n !!!------------------------------ !!! help texts !!!------------------------------ !!!------------------------------ !!! about/general !!!------------------------------ ! *.helpGeneral: \ ! \n\ ! This is xdvik, CVS version.\n\ ! \n\ ! The xdvik project homepage is located at\n\ ! http://sourceforge.net/projects/xdvi,\n\ ! where you can find updates, report bugs and submit feature requests.\n\ ! \n\ ! Getting help and exiting xdvi\n\ ! \n\ ! h or ? or `Help' button\n\ ! Displays this help text.\n\ ! \n\ ! q or Control-C or Control-D or Cancel or Stop or Control-Z (VAX VMS)\n\ ! Quits the program.\n ! !!!------------------------------ !!! other commands !!!------------------------------ ! *helpOthercommands: \ ! \n\ ! Other Commands\n\ ! \n\ ! \n\ ! Control-F\n\ ! Find another DVI file.\n\ ! \n\ ! Control-L or Clear\n\ ! Redisplays the current page.\n\ ! \n\ ! Control-P\n\ ! Prints bitmap unit, bit order, and byte order.\n\ ! \n\ ! ^ or Home\n\ ! Move to the ``home'' position of the page. This is\n\ ! normally the upper left-hand corner of the page,\n\ ! depending on the margins as described in the -margins\n\ ! option, above.\n\ ! \n\ ! c Moves the page so that the point currently beneath the\n\ ! cursor is moved to the middle of the window. It also\n\ ! (gasp!) warps the cursor to the same place.\n\ ! \n\ ! G This key toggles the use of greyscale anti-aliasing for\n\ ! displaying shrunken bitmaps. In addition, the key\n\ ! sequences `0G' and `1G' clear and set this flag,\n\ ! respectively. See also the -nogrey option.\n\ ! \n\ ! k Normally when xdvi switches pages, it moves to the home\n\ ! position as well. The `k' keystroke toggles a `keep-\n\ ! position' flag which, when set, will keep the same\n\ ! position when moving between pages. Also `0k' and `1k'\n\ ! clear and set this flag, respectively. See also the\n\ ! -keep option.\n\ ! \n\ ! M Sets the margins so that the point currently under the\n\ ! cursor is the upper left-hand corner of the text in the\n\ ! page. Note that this command itself does not move the\n\ ! image at all. For details on how the margins are used,\n\ ! see the -margins option.\n\ ! \n\ ! P ``This is page number n.'' This can be used to make\n\ ! the `g' keystroke refer to actual page numbers instead\n\ ! of absolute page numbers.\n\ ! \n\ ! R Forces the dvi file to be reread. This allows you to\n\ ! preview many versions of the same file while running\n\ ! xdvi only once.\n\ ! \n\ ! s Changes the shrink factor to the given number. If no\n\ ! number is given, the smallest factor that makes the\n\ ! entire page fit in the window will be used. (Margins\n\ ! are ignored in this computation.)\n\ ! \n\ ! S Sets the density factor to be used when shrinking\n\ ! bitmaps. This should be a number between 0 and 100;\n\ ! higher numbers produce lighter characters.\n\ ! \n\ ! t Toggles to the next unit in a sorted list of TeX dimension\n\ ! units for the popup magnifier ruler.\n\ ! \n\ ! V Toggles Ghostscript anti-aliasing. Also `0V' and `1V' clear\n\ ! and enables this mode, respectively. See also the the\n\ ! -gsalpha option.\n\ ! \n\ ! x Toggles expert mode (in which the buttons do not appear).\n\ ! `1x' toggles display of the statusline at the bottom of\n\ ! the window.\n !!!------------------------------ !!! page motion !!!------------------------------ ! *helpPagemotion: \ ! \n\ ! Moving around in the document\n\ ! \n\ ! \n\ ! \n\ ! n or f or Space or Return or LineFeed or PgDn\n\ ! Moves to the next page (or to the nth next page if a\n\ ! number is given).\n\ ! \n\ ! p or b or Control-H or BackSpace or DELete or PgUp\n\ ! Moves to the previous page (or back n pages).\n\ ! \n\ ! u or Up-arrow\n\ ! Moves up two thirds of a window-full.\n\ ! \n\ ! d or Down-arrow\n\ ! Moves down two thirds of a window-full.\n\ ! \n\ ! l or Left-arrow\n\ ! Moves left two thirds of a window-full.\n\ ! \n\ ! r or Right-arrow\n\ ! Moves right two thirds of a window-full.\n\ ! \n\ ! g or j or End\n\ ! Moves to the page with the given number. Initially,\n\ ! the first page is assumed to be page number 1, but this\n\ ! can be changed with the `P' keystroke, below. If no\n\ ! page number is given, then it goes to the last page.\n\ ! \n\ ! < Move to first page in document.\n\ ! > Move to last page in document.\n !!!------------------------------ !!! end of helptexts !!!------------------------------ !!!------------------------------------------------------------------------------ !!!-------------- used for internal checking - DO NOT CHANGE THIS! -------------- !!!------------------------------------------------------------------------------ *appDefaultsFileVersion: 20030303  . ..config . ..config.deskjet config.ps config.ljet4config.stcolor config.bjc600% file config.deskjet; added by texconfig M deskjet D 300 X 300 Y 300 % teTeX's config.ps. Thomas Esser, 1998, public domain. % Memory available. Download the three-line PostScript file: % %! Hey, we're PostScript % /Times-Roman findfont 30 scalefont setfont 144 432 moveto % vmstatus exch sub 40 string cvs show pop showpage % to determine this number. (It will be the only thing printed.) m 3500000 % z1 is "secure", i.e., inhibits execution of `shell commands` in % \specials. Dvips allows this by default. z1 % How to print, maybe with lp instead lpr, etc. If commented-out, output % will go into a file by default. o % Default resolution of this device, in dots per inch. D 600 X 600 Y 600 % Metafont mode. (This is completely different from the -M % command-line option, which controls whether mktexpk is invoked.) % See ../../metafont/misc/modes.mf for a list of mode names. This mode % and the D number above must agree, or mktexpk will get confused. M ljfour % Last resort bitmap sizes. R 300 600 % Correct printer offset. You can use testpage.tex from the LaTeX % distribution to find these numbers. O 0pt,0pt % Bitmap font compression. Results in more compact output files, but % sometimes causes trouble. So the default is disabled. Set Z1 to enable % this feature. Z0 % Partially download Type 1 fonts by default. Only reason not to do % this is if you encounter bugs. (Please report them to % @email{tex-k@@mail.tug.org} if you do.) j % This shows how to add your own map file. % Remove the comment and adjust the name: % p +myfonts.map % 0 0 595 842 is the right bounding box that most applications expect % for A4. Since dvips always rounds up, choose something slightly smaller. @ a4 594.99bp 841.99bp @+ ! %%DocumentPaperSizes: a4 @+ %%BeginPaperSize: a4 @+ a4 @+ %%EndPaperSize @ A4size 594.99bp 841.99bp @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: A4 @ letterSize 8.5in 11in @+ ! %%DocumentPaperSizes: Letter @ letter 8.5in 11in @+ ! %%DocumentPaperSizes: Letter @+ %%BeginPaperSize: Letter @+ letter @+ %%EndPaperSize @ legal 8.5in 14in @+ ! %%DocumentPaperSizes: Legal @+ %%BeginPaperSize: Legal @+ legal @+ %%EndPaperSize @ ledger 17in 11in @+ ! %%DocumentPaperSizes: Ledger @+ %%BeginPaperSize: Ledger @+ ledger @+ %%EndPaperSize @ tabloid 11in 17in @+ ! %%DocumentPaperSizes: Tabloid @+ %%BeginPaperSize: Tabloid @+ 11x17 @+ %%EndPaperSize @ a6 105mm 148mm @+ ! %%DocumentPaperSizes: a6 @+ %%BeginPaperSize: a6 @+ a6 @+ %%EndPaperSize @ a5 148mm 210mm @+ ! %%DocumentPaperSizes: a5 @+ %%BeginPaperSize: a5 @+ a5 @+ %%EndPaperSize @ a3 297mm 420mm @+ ! %%DocumentPaperSizes: a3 @+ %%BeginPaperSize: a3 @+ a3 @+ %%EndPaperSize @ a2 420mm 595mm @+ ! %%DocumentPaperSizes: a2 @+ %%BeginPaperSize: a2 @+ a2 @+ %%EndPaperSize @ a1 595mm 841mm @+ ! %%DocumentPaperSizes: a1 @+ %%BeginPaperSize: a1 @+ a1 @+ %%EndPaperSize @ a0 841mm 1189mm @+ ! %%DocumentPaperSizes: a0 @+ %%BeginPaperSize: a0 @+ a0 @+ %%EndPaperSize @ b6 125mm 176mm @+ ! %%DocumentPaperSizes: b6 @+ %%BeginPaperSize: b6 @+ b6 @+ %%EndPaperSize @ b5 176mm 250mm @+ ! %%DocumentPaperSizes: b5 @+ %%BeginPaperSize: b5 @+ b5 @+ %%EndPaperSize @ b4 250mm 353mm @+ ! %%DocumentPaperSizes: b4 @+ %%BeginPaperSize: b4 @+ b4 @+ %%EndPaperSize @ b3 353mm 500mm @+ ! %%DocumentPaperSizes: b3 @+ %%BeginPaperSize: b3 @+ b3 @+ %%EndPaperSize @ unknown 0in 0in @+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin { @+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known @+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if % file config.ljet4; added by texconfig M ljfour D 600 X 600 Y 600 % file config.stcolor; added by texconfig M epstylus D 360 X 360 Y 360 % file config.bjc600; added by texconfig M canonbjc D 360 X 360 Y 360  . .. mktex.cnf texmf.cnf fmtutil.cnf updmap.cfg: ${MT_FEATURES=appendonlydir:varfonts} : ${MODE=ljfour} : ${BDPI=600} # uncomment the following line to use ps2pk instead of gsftopk: # : ${ps_to_pk=ps2pk} % original texmf.cnf -- runtime path configuration file for kpathsea. % (If you change or delete `original' on the previous line, the % distribution won't install its version over yours.) % Public domain. % % What follows is a super-summary of what this .cnf file can % contain. Please read the Kpathsea manual for more information. % % texmf.cnf is generated from texmf.in, by replacing @var@ with the % value of the Make variable `var', via a sed file texmf.sed, generated % (once) by kpathsea/Makefile (itself generated from kpathsea/Makefile.in % by configure). % % Any identifier (sticking to A-Za-z_ for names is safest) can be assigned. % The `=' (and surrounding spaces) is optional. % No % or @ in texmf.in, for the sake of autogeneration. % (However, %'s and @'s can be edited into texmf.cnf or put in envvar values.) % $foo (or ${foo}) in a value expands to the envvar or cnf value of foo. % % Earlier entries (in the same or another file) override later ones, and % an environment variable foo overrides any texmf.cnf definition of foo. % % All definitions are read before anything is expanded, so you can use % variables before they are defined. % % If a variable assignment is qualified with `.PROGRAM', it is ignored % unless the current executable (last filename component of argv[0]) is % named PROGRAM. This foo.PROGRAM construct is not recognized on the % right-hand side. For environment variables, use FOO_PROGRAM. % % Which file formats use which paths for searches is described in the % various programs' and the kpathsea documentation. % % // means to search subdirectories (recursively). % A leading !! means to look only in the ls-R db, never on the disk. % A leading/trailing/doubled ; in the paths will be expanded into the % compile-time default. Probably not what you want. % % You can use brace notation, for example: /usr/local/{mytex:othertex} % expands to /usr/local/mytex:/usr/local/othertex. Instead of the path % separator you can use a comma: /usr/local/{mytex,othertex} also expands % to /usr/local/mytex:/usr/local/othertex. However, the use of the comma % instead of the path separator is deprecated. % % The text above assumes thet path separator is a colon (:). Non-UNIX % systems use different path separators, like the semicolon (;). % Part 1: Search paths and directories. % You can set an environment variable to override TEXMF if you're testing % a new TeX tree, without changing anything else. % % You may wish to use one of the $SELFAUTO... variables here so TeX will % find where to look dynamically. See the manual and the definition % below of TEXMFCNF. % The tree containing the runtime files closely related to the specific % program version used: TEXMFMAIN = /usr/share/texmf % The main distribution tree: TEXMFDIST = /usr/share/texmf/contrib % A place for local additions to a "standard" texmf tree. % This tree is not used for local configuration maintained by % texconfig, it uses TEXMFCONFIG below. TEXMFLOCAL = /usr/local/share/texmf % TEXMFSYSVAR, where texconfig-sys stores variable runtime data. % With teTeX-3.0 or later, this must be set. % For sharing this tree with $TEXMFMAIN: % TEXMFSYSVAR = $TEXMFMAIN % For using a separate tree: % TEXMFSYSVAR = /usr/share/texmf-var TEXMFSYSVAR = /var/lib/texmf % TEXMFSYSCONFIG, where texconfig-sys stores configuration data. % With teTeX-3.0 or later, this must be set. % For sharing this tree with $TEXMFMAIN: % TEXMFSYSCONFIG = $TEXMFMAIN % For using a separate tree: % TEXMFSYSCONFIG = /usr/share/texmf-config TEXMFSYSCONFIG = /etc/texmf % User texmf trees can be catered for like this... % This used to be TEXMFHOME. TEXMFHOME = $HOME/texmf % TEXMFVAR, where texconfig stores variable runtime data. % With teTeX-3.0 or later, this must be set. % For sharing this tree with $TEXMFMAIN: % TEXMFVAR = $TEXMFMAIN % For using a separate tree: % TEXMFVAR = $HOME/.texmf-var TEXMFVAR = ${TEXMFSYSVAR} % TEXMFCONFIG, where texconfig stores configuration data. % With teTeX-3.0 or later, this must be set. % For sharing this tree with $TEXMFMAIN: % TEXMFCONFIG = $TEXMFMAIN % For using a separate tree: % TEXMFCONFIG = $HOME/.texmf-config % For using a separate tree: % TEXMFCONFIG = /usr/share/texmf-config TEXMFCONFIG = ${TEXMFSYSCONFIG} % Now, list all the texmf trees. If you have multiple trees you can % use shell brace notation, like this: % TEXMF = {$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFMAIN} % The braces are necessary. % % For texconfig to work properly, TEXMFCONGIG and TEXMFVAR should be named % explicitly and before all other trees. TEXMF = {$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} % The system trees. These are the trees that are shared by all the users. SYSTEXMF = $TEXMFSYSCONFIG;$TEXMFSYSVAR;$TEXMFMAIN;$TEXMFLOCAL;$TEXMFDIST % Where generated fonts may be written. This tree is used when the sources % were found in a system tree and either that tree wasn't writable, or the % varfonts feature was enabled in MT_FEATURES in mktex.cnf. VARTEXFONTS = /var/cache/fonts % Where to look for ls-R files. There need not be an ls-R in the % directories in this path, but if there is one, Kpathsea will use it. % % Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below % one of the TEXMF directories (avoids overlapping ls-R files). TEXMFDBS = ${TEXMFHOME};${TEXMFLOCAL};${TEXMFSYSCONFIG};${TEXMFSYSVAR};$TEXMFMAIN;$OLDTEXMF;$VARTEXFONTS % It may be convenient to define TEXMF like this: % TEXMF = {$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFMAIN,$HOME} % which allows users to set up entire texmf trees, and tells TeX to % look in places like ~/tex and ~/bibtex. If you do this, define TEXMFDBS % like this: % TEXMFDBS = $TEXMFHOME;$TEXMFLOCAL;$TEXMFMAIN;$VARTEXFONTS % or mktexlsr will generate an ls-R file for $HOME when called, which is % rarely desirable. If you do this you'll want to define SYSTEXMF like % this: % SYSTEXMF = $TEXMFLOCAL;$TEXMFMAIN;$TEXMFDIST % so that fonts from a user's tree won't escape into the global trees. % % On some systems, there will be a system tree which contains all the font % files that may be created as well as the formats. For example % TEXMFVAR = /var/lib/texmf % is used on many Linux systems. In this case, set VARTEXFONTS like this % VARTEXFONTS = $TEXMFVAR/fonts % and do not mention it in TEXMFDBS (but _do_ mention TEXMFVAR). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Usually you will not need to edit any of the other variables in part 1. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % WEB2C is for Web2C specific files. The current directory may not be % a good place to look for them. WEB2C = ${TEXMFHOME}/web2c;${TEXMFSYSCONFIG}/web2c;${TEXMFSYSVAR}/web2c;$TEXMF/web2c % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input % or \openin, including .sty, .eps, etc. % Plain TeX. Have the command tex check all directories as a last % resort, we may have plain-compatible stuff anywhere. TEXINPUTS.tex = .;$TEXMF/tex/{plain,generic,}// % Other plain-based formats. TEXINPUTS.amstex = .;$TEXMF/tex/{amstex,plain,generic,}// TEXINPUTS.csplain = .;$TEXMF/tex/{csplain,plain,generic,}// TEXINPUTS.eplain = .;$TEXMF/tex/{eplain,plain,generic,}// TEXINPUTS.ftex = .;$TEXMF/tex/{formate,plain,generic,}// TEXINPUTS.jadetex = .;$TEXMF/tex/{jadetex,plain,generic,}// TEXINPUTS.mex = .;$TEXMF/tex/{mex,plain,generic,}// TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// % LaTeX 2e specific macros are stored in latex/, macros that can only be % used with 2.09 in latex209/. In addition, we look in the directory % latex209, useful for macros that were written for 2.09 and do not % mention 2e at all, but can be used with 2e. TEXINPUTS.cslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.olatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.latex209 = .;$TEXMF/tex/{latex209,generic,latex,}// % Fontinst needs to read afm files. TEXINPUTS.fontinst = .;$TEXMF/{tex,fonts/afm}// % MLTeX. TEXINPUTS.frlatex = .;$TEXMF/tex/{french,latex,generic,}// TEXINPUTS.frtex = .;$TEXMF/tex/{french,plain,generic,}// TEXINPUTS.mllatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.mltex = .;$TEXMF/tex/{plain,generic,}// % e-TeX. This form of the input paths is borrowed from teTeX. A certain % variant of TDS is assumed here, unaffected by the build variables. TEXINPUTS.elatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}// % pdfTeX. This form of the input paths is borrowed from teTeX. A certain % variant of TDS is assumed here, unaffected by the build variables. TEXINPUTS.pdfcslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// TEXINPUTS.pdfcsplain = .;$TEXMF/tex/{csplain,plain,generic,}// TEXINPUTS.pdfjadetex = .;$TEXMF/tex/{jadetex,plain,generic,}// TEXINPUTS.pdflatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.pdfmex = .;$TEXMF/tex/{mex,plain,generic,}// TEXINPUTS.utf8mex = .;$TEXMF/tex/{mex,plain,generic,}// TEXINPUTS.pdftex = .;$TEXMF/tex/{plain,generic,}// TEXINPUTS.pdftexinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// TEXINPUTS.pdfamstex = .;$TEXMF/tex/{amstex,plain,generic,}// % pdfeTeX. TEXINPUTS.pdfelatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.pdfetex = .;$TEXMF/tex/{plain,generic,}// % pdfxTeX. TEXINPUTS.pdfxlatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.pdfxtex = .;$TEXMF/tex/{plain,generic,}// % XeTeX TEXINPUTS.xelatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.xetex = .;$TEXMF/tex/{plain,generic,}// % pTeX. ptex_inputs = .;$TEXMF/{ptex,tex}/{plain,generic,}// platex_inputs = .;$TEXMF/{ptex,tex}/{platex,latex,generic,}// TEXINPUTS.platex-sjis = $platex_inputs TEXINPUTS.platex-euc = $platex_inputs TEXINPUTS.platex-jis = $platex_inputs TEXINPUTS.platex = $platex_inputs TEXINPUTS.ptex-sjis = $ptex_inputs TEXINPUTS.ptex-euc = $ptex_inputs TEXINPUTS.ptex-jis = $ptex_inputs TEXINPUTS.ptex = $ptex_inputs % Omega / Aleph TEXINPUTS.lamed = .;$TEXMF/tex/{lamed,lambda,latex,generic,}// TEXINPUTS.lambda = .;$TEXMF/tex/{lambda,latex,generic,}// TEXINPUTS.omega = .;$TEXMF/tex/{plain,generic,}// TEXINPUTS.aleph = .;$TEXMF/tex/{plain,generic,}// % Context macros by Hans Hagen: TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}// % odd formats needing their own paths TEXINPUTS.lamstex = .;$TEXMF/tex/{lamstex,plain,generic,}// TEXINPUTS.lollipop = .;$TEXMF/tex/{lollipop,plain,generic,}// TEXINPUTS.platex-pl = .;$TEXMF/tex/{platex,latex,generic,}// TEXINPUTS.pdfplatex = .;$TEXMF/tex/{platex,latex,generic,}// % For xmltex and pdfxmltex TEXINPUTS.xmltex = .;$TEXMF/tex/{xmltex,latex,generic,}// TEXINPUTS.pdfxmltex = .;$TEXMF/{pdftex,tex}/{xmltex,latex,generic,}// % Earlier entries override later ones, so put this last. TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}// % Metafont, MetaPost inputs. MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// MPINPUTS = .;$TEXMF/metapost// % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read (see web2c/INSTALL), % and string pools (.pool) for ini{tex,mf,mp}. It is silly that we have six % paths and directories here (they all resolve to a single place by default), % but historically ... TEXFORMATS = .;$WEB2C MFBASES = .;$WEB2C MPMEMS = .;$WEB2C TEXPOOL = .;$WEB2C MFPOOL = .;$WEB2C MPPOOL = .;$WEB2C % Device-independent font metric files. VFFONTS = .;$TEXMF/fonts/vf// TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm// % The $MAKETEX_MODE below means the drivers will not use a cx font when % the mode is ricoh. If no mode is explicitly specified, kpse_prog_init % sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. % The modeless part guarantees that bitmaps for PostScript fonts are found. PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// % Similarly for the GF format, which only remains in existence because % Metafont outputs it (and MF isn't going to change). GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MODE// % A backup for PKFONTS and GFFONTS. Not used for anything. GLYPHFONTS = .;$TEXMF/fonts % A place to puth everything that doesn't fit the other font categories. MISCFONTS = .;$TEXMF/fonts/misc//;$TEXMF/fonts/hbf// % font name map files. TEXFONTMAPS = .;$TEXMF/fonts/map// % support non"k"-xdvi: PKFONTS.XDvi = .:$TEXMF/%s:$VARTEXFONTS/pk/{%m,modeless}// VFFONTS.XDvi = .:$TEXMF/%s PSHEADERS.XDvi = .:$TEXMF/%q{dvips,fonts/type1}// TEXPICTS.XDvi = .:$TEXMF/%q{dvips,tex}// % BibTeX bibliographies and style files. BIBINPUTS.jbibtex = .;$TEXMF/{jbibtex,bibtex}/bib// BSTINPUTS.jbibtex = .;$TEXMF/{jbibtex,bibtex}/bst// BIBINPUTS = .;$TEXMF/bibtex/bib// BSTINPUTS = .;$TEXMF/bibtex/bst// % MFT style files. MFTINPUTS = .;$TEXMF/mft// % PostScript headers and prologues (.pro); unfortunately, some programs % also use this for acessing font files (enc, type1, truetype) TEXPSHEADERS = .;$TEXMF/{dvips,fonts/{enc,type1,type3}}// TEXPSHEADERS.gsftopk = .;$TEXMF/{dvips,fonts/{enc,type1,type3,truetype}}// % for pdvips which is a patched dvips to use with the Japanese pTeX: TEXPSHEADERS.pdvips = .;$TEXMF/{pdvips,pdftex,tex,fonts/type1}// % PostScript Type 1 outline fonts. T1FONTS = .;$TEXMF/fonts/type1// % PostScript AFM metric files. AFMFONTS = .;$TEXMF/fonts/afm// % TrueType outline fonts. TTFONTS = .;$TEXMF/fonts/truetype// % Type 42 outline fonts. T42FONTS = .;$TEXMF/fonts/type42// % Ligature definition files. LIGFONTS = .;$TEXMF/fonts/lig// % Dvips' config.* files (this name should not start with `TEX'!). TEXCONFIG = $TEXMF/dvips// % for pdvips which is a patched dvips to use with the Japanese pTeX: TEXCONFIG.pdvips = $TEXMF/pdvips// % Makeindex style (.ist) files. INDEXSTYLE = .;$TEXMF/makeindex// % Font encoding files (.enc). ENCFONTS = .;$TEXMF/fonts/enc// % CMap files. CMAPFONTS = .;$TEXMF/fonts/cmap// % Subfont definition files. SFDFONTS = .;$TEXMF/fonts/sfd// % Opentype outline fonts. OPENTYPEFONTS = .;$TEXMF/fonts/opentype// % pdftex config files: PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}// % Used by DMP (ditroff-to-mpx), called by makempx -troff. % The path given is correct for GROFF on Linux installed under /usr. % Originally: TRFONTS = /usr/lib/font/devpost TRFONTS = /usr/share/groff/current/font/devps MPSUPPORT = .;$TEXMF/metapost/support % For xdvi to find mime.types and .mailcap, if they do not exist in % $HOME. These are single directories, not paths. % (But the default mime.types, at least, may well suffice.) MIMELIBDIR = /etc MAILCAPLIBDIR = /etc % TeX documentation and source files, for use with kpsewhich. TEXDOCS = .;$TEXMF/doc// TEXSOURCES = .;$TEXMF/source// TEXDOCSSUFFIX = .dvi;.ps;.html;.txt TEXDOCSCOMPRESS = ;.gz;.bz2;.zip;.Z TEXDOCEXT = {$TEXDOCSSUFFIX}{$TEXDOCSCOMPRESS} % Web and CWeb input paths. WEBINPUTS = .;$TEXMF/web// CWEBINPUTS = .;$TEXMF/cweb// % Omega-related fonts and other files. The odd construction for OFMFONTS % makes it behave in the face of a definition of TFMFONTS. Unfortunately % no default substitution would take place for TFMFONTS, so an explicit % path is retained. OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//;$TFMFONTS OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl// OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovf// OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp// OTPINPUTS = .;$TEXMF/omega/otp// OCPINPUTS = .;$TEXMF/omega/ocp// % Some additional input variables for several programs. If you add % a program that uses the 'other text files' or 'other binary files' % search formats, you'll want to add their variables here as well. T4HTINPUTS = .;$TEXMF/tex4ht// % Architecture independent executables TEXMFSCRIPTS = $TEXMF/scripts// %% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment. % KPSE_DOT = . % This definition isn't used from this .cnf file itself (that would be % paradoxical), but the compile-time default in paths.h is built from it. % The SELFAUTO* variables are set automatically from the location of % argv[0], in kpse_set_progname. % % The TETEXDIR stuff isn't likely to relevant unless you're using teTeX, % but it doesn't hurt. % % For security reasons, it is better not to have . part of the path. % TEXMFCNF = /etc/texmf;/var/lib/texmf/web2c;/usr/share/texmf/web2c;/.$TETEXDIR # $progname: kpathsea v. 3.5.3 or later overwrites this at runtime. To # avoid empty expansions from binaries linked against an earlier # version of the library, we set $progname and $engine to something # non-empty: progname = unset engine = unset % Part 2: Non-path options. % Write .log/.dvi/etc. files here, if the current directory is unwritable. % TEXMFOUTPUT = /tmp % If a dynamic file creation fails, log the command to this file, in % either the current directory or TEXMFOUTPUT. Set to the % empty string or 0 to avoid logging. MISSFONT_LOG = missfont.log % Set to a colon-separated list of words specifying warnings to suppress. % To suppress everything, use TEX_HUSH = all; this is currently equivalent to % TEX_HUSH = checksum:lostchar:readable:special % To suppress nothing, use TEX_HUSH = none or do not set the variable at all. TEX_HUSH = none % Enable system commands via \write18{...}? shell_escape = f % Allow TeX \openin, \openout, or \input on filenames starting with `.' % (e.g., .rhosts) or outside the current tree (e.g., /etc/passwd)? % a (any) : any file can be opened. % r (restricted) : disallow opening "dotfiles". % p (paranoid) : as 'r' and disallow going to parent directories, and % restrict absolute paths to be under $TEXMFOUTPUT. openout_any = p openin_any = a % Allow TeX, MF, and MP to parse the first line of an input file for % the %&format construct. parse_first_line = f % Enable file:line:error style messages. file_line_error_style = f % Enable the mktex... scripts by default? These must be set to 0 or 1. % Particular programs can and do override these settings, for example % dvips's -M option. Your first chance to specify whether the scripts % are invoked by default is at configure time. % % These values are ignored if the script names are changed; e.g., if you % set DVIPSMAKEPK to `foo', what counts is the value of the environment % variable/config value `FOO', not the `MKTEXPK' value. % % MKTEXTEX = 0 % MKTEXPK = 0 % MKTEXMF = 0 % MKTEXTFM = 0 % MKTEXFMT = 0 % MKOCP = 0 % MKOFM = 0 % What MetaPost runs to make MPX files. This is passed an option -troff % if MP is in troff mode. Set to `0' to disable this feature. MPXCOMMAND = makempx % Part 3: Array and other sizes for TeX (and Metafont and MetaPost). % % If you want to change some of these sizes only for a certain TeX % variant, the usual dot notation works, e.g., % main_memory.hugetex = 20000000 % % If a change here appears to be ignored, try redumping the format file. % Memory. Must be less than 8,000,000 total. % % main_memory is relevant only to initex, extra_mem_* only to non-ini. % Thus, have to redump the .fmt file after changing main_memory; to add % to existing fmt files, increase extra_mem_*. (To get an idea of how % much, try \tracingstats=2 in your TeX source file; % web2c/tests/memtest.tex might also be interesting.) % % To increase space for boxes (as might be needed by, e.g., PiCTeX), % increase extra_mem_bot. % % For some xy-pic samples, you may need as much as 700000 words of memory. % For the vast majority of documents, 60000 or less will do. % main_memory = 3500000 % words of inimemory available; also applies to inimf&mp extra_mem_top = 500000 % extra high memory for chars, tokens, etc. extra_mem_bot = 700000 % extra low memory for boxes, glue, breakpoints, etc. % ConTeXt is a memory hog... extra_mem_top.context = 2000000 extra_mem_bot.context = 4000000 main_memory.context = 1500000 main_memory.mpost = 1500000 % Words of font info for TeX (total size of all TFM files, approximately). font_mem_size = 500000 % Total number of fonts. Must be >= 50 and <= 2000 (without tex.ch changes). font_max = 2000 % Extra space for the hash table of control sequences (which allows 10K % names as distributed). hash_extra = 50000 % Max number of characters in all strings, including all error messages, % help texts, font names, control sequences. These values apply to TeX and MP. pool_size = 1250000 % Minimum pool space after TeX/MP's own strings; must be at least % 25000 less than pool_size, but doesn't need to be nearly that large. string_vacancies = 90000 % Maximum number of strings. max_strings = 100000 % min pool space left after loading .fmt pool_free = 47500 % Hyphenation trie. As distributed, the maximum is 65535; this should % work unless `unsigned short' is not supported or is smaller than 16 % bits. This value should suffice for UK English, US English, French, % and German (for example). To increase, you must change % `ssup_trie_opcode' and `ssup_trie_size' in tex.ch (and rebuild TeX); % the trie will then consume four bytes per entry, instead of two. % % US English, German, and Portuguese: 30000. % German: 14000. % US English: 10000. % trie_size = 262000 % Buffer size. TeX uses the buffer to contain input lines, but macro % expansion works by writing material into the buffer and reparsing the % line. As a consequence, certain constructs require the buffer to be % very large. As distributed, the size is 50000; most documents can be % handled within a tenth of this size. buf_size = 200000 hyph_size = 1000 % number of hyphenation exceptions, >610 and <32767. nest_size = 500 % simultaneous semantic levels (e.g., groups) max_in_open = 15 % simultaneous input files and error insertions param_size = 5000 % simultaneous macro parameters save_size = 5000 % for saving values outside current group stack_size = 1500 % simultaneous input sources % These are Omega-specific. ocp_buf_size = 20000 % character buffers for ocp filters. ocp_stack_size = 10000 % stacks for ocp computations. ocp_list_size = 1000 % control for multiple ocps. % Parameter specific to MetaPost. % Maximum number of knots between breakpoints of a path. % Set to 2000 by default. % path_size.mpost = 10000 % These are pdftex-specific. obj_tab_size = 300000 % PDF objects dest_names_size = 300000 % destinations % These work best if they are the same as the I/O buffer size, but it % doesn't matter much. Must be a multiple of 8. dvi_buf_size = 16384 % TeX gf_buf_size = 16384 % MF % It's probably inadvisable to change these. At any rate, we must have: % 45 < error_line < 255; % 30 < half_error_line < error_line - 15; % 60 <= max_print_line; % These apply to Metafont and MetaPost as well. error_line = 79 half_error_line = 50 max_print_line = 79 % These are xmltex specific main_memory.xmltex = 1500000 param_size.xmltex = 1500 stack_size.xmltex = 1500 hash_extra.xmltex = 50000 string_vacancies.xmltex = 45000 pool_free.xmltex = 47500 nest_size.xmltex = 500 save_size.xmltex = 10000 pool_size.xmltex = 500000 max_strings.xmltex = 55000 % These are pdfxmltex specific main_memory.pdfxmltex = 2500000 param_size.pdfxmltex = 1500 stack_size.pdfxmltex = 1500 hash_extra.pdfxmltex = 50000 string_vacancies.pdfxmltex = 45000 pool_free.pdfxmltex = 47500 nest_size.pdfxmltex = 500 save_size.pdfxmltex = 10000 pool_size.pdfxmltex = 500000 max_strings.pdfxmltex = 55000 % These are jadetex specific main_memory.jadetex = 499999 hash_extra.jadetex = 25000 pool_size.jadetex = 500000 save_size.jadetex = 15000 # Thomas Esser, Copyright 1998, 1999. Public domain. # fmtutil.cnf: configuration file for fmtutil. # Customize this file to your needs, e.g. # - remove or uncomment formats that you don't need # - add your own formats # - change default engine / flags for standard formats # Some notes: # 1) tex and amstex just load hyphen.tex. No customization. # You can have you own customized (via babel's hyphen.cfg) # formats on top of plain by using "bplain.tex" instead of # plain.tex (see e.g. bplain.ini file for bplain format). # # 2) etex loads language.def, not language.dat. # # 3) The symbolic link to the right engines (e.g. bplain -> tex) # will be generated by the "texlinks" script. So, if you call # fmtutil "by hand" and not via texconfig, please also call # texlinks afterwards. # # 4) usual comments start with "# ", whereas disabled configurations # start with "#! " in this file. # The format of the table is: # format engine pattern-file arguments # The last part of "arguments" must be the name of the file to run # initex (or another "ini"-engine) on. # metafont and metapost: mf mf - -translate-file=cp227.tcx mf.ini mpost mpost - -translate-file=cp227.tcx mpost.mp metafun mpost - -translate-file=cp227.tcx metafun.mp # Standard formats (plain, latex) with all engines: # Change "tex.ini -> bplain.ini" and "- -> language.dat" # if you want babel support in tex: tex tex - -translate-file=cp227.tcx tex.ini latex pdfetex language.dat -translate-file=cp227.tcx *latex.ini etex pdfetex language.def -translate-file=cp227.tcx *etex.ini pdftex pdfetex - -translate-file=cp227.tcx *pdftex.ini pdflatex pdfetex language.dat -translate-file=cp227.tcx *pdflatex.ini pdfetex pdfetex language.def -translate-file=cp227.tcx *pdfetex.ini #! pdfxlatex pdfxtex language.dat -translate-file=cp227.tcx *pdfxlatex.ini #! pdfxtex pdfxtex - -translate-file=cp227.tcx *pdfxtex.ini omega omega - omega.ini lambda omega language.dat lambda.ini aleph aleph - *aleph.ini lamed aleph language.dat *lambda.ini # The amstex format: # Change "amstex.ini -> bamstex.ini" and "- -> language.dat" # if you want babel support in amstex: amstex pdfetex - -translate-file=cp227.tcx *amstex.ini # Change "pdfamstex.ini -> pdfbamstex.ini" and "- -> language.dat" # if you want babel support in pdfamstex: #! pdfamstex pdfetex - -translate-file=cp227.tcx *pdfamstex.ini # Context formats: cont-cz pdfetex cont-usr.tex -translate-file=cp227.tcx *cont-cz.ini cont-de pdfetex cont-usr.tex -translate-file=cp227.tcx *cont-de.ini cont-en pdfetex cont-usr.tex -translate-file=cp227.tcx *cont-en.ini cont-nl pdfetex cont-usr.tex -translate-file=cp227.tcx *cont-nl.ini cont-uk pdfetex cont-usr.tex -translate-file=cp227.tcx *cont-uk.ini # language-specific things: # - Cyrillic: #! cyrtex pdfetex language.dat -translate-file=cp227.tcx *cyrtex.ini #! cyrtexinfo pdfetex language.dat -translate-file=cp227.tcx *cyrtxinf.ini #! cyramstex pdfetex language.dat -translate-file=cp227.tcx *cyramstx.ini # - Polish: #! platex pdfetex language.dat -translate-file=cp227.tcx *platex.ini #! pdfplatex pdfetex language.dat -translate-file=cp227.tcx *pdfplatex.ini #! mex pdfetex mexconf.tex -translate-file=cp227.tcx *mex.ini #! pdfmex pdfetex mexconf.tex -translate-file=cp227.tcx *pdfmex.ini #! utf8mex pdfetex mexconf.tex -enc *utf8mex.ini # - Polish with translated messages (experimental): #! platex-pl pdfetex - nls=pdfetex-pl,il2-pl *platex.ini #! mex-pl pdfetex mexconf.tex nls=pdfetex-pl,il2-pl *mex.ini #! pdfmex-pl pdfetex mexconf.tex nls=pdfetex-pl,il2-pl *pdfmex.ini # - Czech / Slovak: csplain pdfetex - -translate-file=cp227.tcx *csplain.ini cslatex pdfetex - -translate-file=cp227.tcx *cslatex.ini pdfcsplain pdfetex - -translate-file=cp227.tcx *csplain.ini pdfcslatex pdfetex - -translate-file=cp227.tcx *cslatex.ini # Other formats: # Change "eplain.ini -> ebplain.ini" and "- -> language.dat" # if you want babel support in eplain: eplain pdfetex - -translate-file=cp227.tcx *eplain.ini # mptopdf utility mptopdf pdfetex - -translate-file=cp227.tcx mptopdf.tex # Formats not directly supported by teTeX. You need to add the necessary # macro files and eventually run texhash before you can use the following: jadetex etex language.dat -translate-file=cp227.tcx &latex jadetex.ini pdfjadetex pdfetex language.dat -translate-file=cp227.tcx &pdflatex pdfjadetex.ini # xmltex and pdfxmltex xmltex etex language.dat -translate-file=cp227.tcx &latex xmltex.ini pdfxmltex pdfetex language.dat -translate-file=cp227.tcx &pdflatex pdfxmltex.ini # ptex and platex, Japanese tex and latex by ASCII Corporation: ptex ptex - ptex.ini platex ptex language.dat platex.ini ################################################################ # OPTIONS ################################################################ # # dvipsPreferOutline # # Should dvips (by default) prefer bitmap fonts or outline fonts # if both are available? Independend of this setting, outlines # can be forced by putting "p psfonts_t1.map" into a config file # that dvips reads. Bitmaps (for the fonts in question) can # be forced by putting "p psfonts_pk.map" into a config file. # We provide such config files which can be enabled via # dvips -Poutline ... resp. dvips -Ppk ... # # Valid settings for dvipsPreferOutline are true / false: dvipsPreferOutline true # # LW35 # # Which fonts for the "Basic 35 Laserwriter Fonts" do you want to use and # how are the filenames chosen? Valid settings: # URW: URW fonts with "vendor" filenames (e.g. n019064l.pfb) # URWkb: URW fonts with "berry" filenames (e.g. uhvbo8ac.pfb) # ADOBE: Adobe fonts with "vendor" filenames (e.g. hvnbo___.pfb) # ADOBEkb: Adobe fonts with "berry" filenames (e.g. phvbo8an.pfb) LW35 URWkb # # dvipsDownloadBase35 # # Should dvips (by default) download the standard 35 LaserWriter fonts # with the document (then set dvipsDownloadBase35 true) or should these # fonts be used from the ps interpreter / printer? # Whatever the default is, the user can override it by specifying # dvips -Pdownload35 ... resp. dvips -Pbuiltin35 ... to either download # the LW35 fonts resp. use the build-in fonts. # # Valid settings are true / false: dvipsDownloadBase35 false # # pdftexDownloadBase14 # # Should pdftex download the base 14 pdf fonts? Since some configurations # (ps / pdf tools / printers) use bad default fonts, it is safer to download # the fonts. The pdf files will get bigger, though. # Valid settings are true (download the fonts) or false (don't download # the fonts). Adobe recomments to embed all fonts. pdftexDownloadBase14 true # # dvipdfmDownloadBase14 # # Should dvipdfm download the base 14 pdf fonts? Since some configurations # (ps / pdf tools / printers) use bad default fonts, it is safer to download # the fonts. The pdf files will get bigger, though. # Valid settings are true (download the fonts) or false (don't download # the fonts). dvipdfmDownloadBase14 true ################################################################ # Map files. ################################################################ # # There are two possible entries: Map and MixedMap. Both have one additional # argument: the filename of the map file. MixedMap ("mixed" means that # the font is available as bitmap and as outline) lines will not be used # in the default map of dvips if dvipsPreferOutline is false. Inactive # Map files should be marked by "#! " (without the quotes), not just #. # # AntykwaPoltawskiego; CTAN:fonts/psfonts/polish/antp/ Map antp.map # AntykwaTorunska; CTAN:fonts/antt/ Map cork-antt.map Map cs-antt.map Map exp-antt.map Map greek-antt.map Map qx-antt.map Map t2a-antt.map Map t2b-antt.map Map t2c-antt.map Map t5-antt.map Map texnansi-antt.map Map wncy-antt.map # "quasi" fonts derived from URW and enhanced (from the Polish TeX users); # CTAN:fonts/psfonts/polish/qfonts/ Map qbk.map Map qcr.map Map qhv.map Map qpl.map Map qtm.map Map qzc.map # Bitstream Charter text font Map charter.map # Computer Modern fonts extended with Russian letters; # CTAN:fonts/cyrillic/cmcyr/ Map cmcyr.map # symbols for ConTeXt macro package Map contnav.map # latin modern; CTAN:fonts/lm. Enable encoding specific map # files or the "all-in-one" file lm.map, not both at the same time. Map cork-lm.map Map qx-lm.map Map texnansi-lm.map Map ts1-lm.map #! Map lm.map # a symbol font; CTAN:fonts/psfonts/marvosym/ Map marvosym.map # two font map entries for the mathpple package Map mathpple.map # for Omega Map omega.map # the pazo fonts; CTAN:fonts/mathpazo Map pazo.map # pxfonts (palatino extension); CTAN:fonts/pxfonts Map pxfonts.map # txfonts (times extension); CTAN:fonts/txfonts Map txfonts.map # XY-pic fonts; CTAN:macros/generic/diagrams/xypic Map xypic.map # 7-8-9 sizes for cmex taken from TeXtrace2001 MixedMap ttcmex.map # ps-type1 versions for cm+ams; CTAN:fonts/cm/ps-type1/bluesky MixedMap bsr.map MixedMap bsr-interpolated.map # CSTeX; http://math.feld.cvut.cz/olsak/cstex/ MixedMap cs.map # mf -> type1 converted fonts by Taco Hoekwater MixedMap hoekwater.map # cm like, but enhanced for polish; CTAN:fonts/psfonts/polish/plpsfont MixedMap pl.map MixedMap ccpl.map # See comments in doc/fonts/belleek/README about using mt-belleek.map # instead of mt-yy.map: Map mt-belleek.map # Euro Symbol fonts by Henrik Theiling; CTAN:fonts/eurosym MixedMap eurosym.map # vntex support, see http://vinux.sourceforge.net/vntex MixedMap vnr.map # urw++ fonts with vietnamese accents added # see http://vinux.sourceforge.net/urwvn Map urwvn.map # Y&Y's Lucida Bright and Lucida New Math supporting "Berry"-style # tfm names (commercial fonts): #! Map lucidabr.map #! Map lumath.map # Y&Y's Lucida Bright and Lucida New Math supporting "Y&Y"-style # tfm names (commercial fonts): #! Map lucidabr-o.map #! Map lumath-o.map # Y&Y's Mathtime (commercial fonts). Disable mt-belleek.map if you want to # use mt-yy.map! #! Map mt-yy.map #! Map mt-plus.map # Doublestroke, based on Knuth's Computer Modern Roman; CTAN:fonts/doublestroke Map dstroke.map # FPL, free substitutes for the commercial Palatino SC/OsF fonts # are available from CTAN:fonts/fpl; used by psnfss 9.2. Map fpls.map " /etc/vimrc (configuration file for vim only) " author: Klaus Franken " author: Werner Fink " author: Florian La Roche " version: 00/01/20 " commented lines start with `"' " enable syntax highlighting " syntax on " automatically indent lines (default) " set noautoindent " select case-insenitiv search (not default) " set ignorecase " show cursor line and column in the status line set ruler " show matching brackets set showmatch " display mode INSERT/REPLACE/... set showmode " changes special characters in search patterns (default) " set magic " Required to be able to use keypad keys and map missed escape sequences set esckeys " get easier to use and more user friendly vim defaults " CAUTION: This option breaks some vi compatibility. " Switch it off if you prefer real vi compatibility set nocompatible " Complete longest common string, then each full match " enable this for bash compatible behaviour " set wildmode=longest,full " Try to get the correct main terminal type if &term =~ "xterm" let myterm = "xterm" else let myterm = &term endif let myterm = substitute(myterm, "cons[0-9][0-9].*$", "linux", "") let myterm = substitute(myterm, "vt1[0-9][0-9].*$", "vt100", "") let myterm = substitute(myterm, "vt2[0-9][0-9].*$", "vt220", "") let myterm = substitute(myterm, "\\([^-]*\\)[_-].*$", "\\1", "") " Here we define the keys of the NumLock in keyboard transmit mode of xterm " which misses or hasn't activated Alt/NumLock Modifiers. Often not defined " within termcap/terminfo and we should map the character printed on the keys. if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" " keys in insert/command mode. map! Oo : map! Oj * map! Om - map! Ok + map! Ol , map! OM map! Ow 7 map! Ox 8 map! Oy 9 map! Ot 4 map! Ou 5 map! Ov 6 map! Oq 1 map! Or 2 map! Os 3 map! Op 0 map! On . " keys in normal mode map Oo : map Oj * map Om - map Ok + map Ol , map OM map Ow 7 map Ox 8 map Oy 9 map Ot 4 map Ou 5 map Ov 6 map Oq 1 map Or 2 map Os 3 map Op 0 map On . endif " xterm but without activated keyboard transmit mode " and therefore not defined in termcap/terminfo. if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" " keys in insert/command mode. map! [H map! [F " Home/End: older xterms do not fit termcap/terminfo. map! [1~ map! [4~ " Up/Down/Right/Left map! [A map! [B map! [C map! [D " KP_5 (NumLock off) map! [E " PageUp/PageDown map [5~ map [6~ map [5;2~ map [6;2~ map [5;5~ map [6;5~ " keys in normal mode map [H 0 map [F $ " Home/End: older xterms do not fit termcap/terminfo. map [1~ 0 map [4~ $ " Up/Down/Right/Left map [A k map [B j map [C l map [D h " KP_5 (NumLock off) map [E i " PageUp/PageDown map [5~  map [6~  map [5;2~  map [6;2~  map [5;5~  map [6;5~  endif " xterm/kvt but with activated keyboard transmit mode. " Sometimes not or wrong defined within termcap/terminfo. if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" " keys in insert/command mode. map! OH map! OF map! O2H map! O2F map! O5H map! O5F " Cursor keys which works mostly " map! OA " map! OB " map! OC " map! OD map! [2;2~ map! [3;2~ map! [2;5~ map! [3;5~ map! O2A map! O2B map! O2C map! O2D map! O5A map! O5B map! O5C map! O5D " KP_5 (NumLock off) map! OE " keys in normal mode map OH 0 map OF $ map O2H 0 map O2F $ map O5H 0 map O5F $ " Cursor keys which works mostly " map OA k " map OB j " map OD h " map OC l map [2;2~ i map [3;2~ x map [2;5~ i map [3;5~ x map O2A ^B map O2B ^F map O2D b map O2C w map O5A ^B map O5B ^F map O5D b map O5C w " KP_5 (NumLock off) map OE i endif if myterm == "linux" " keys in insert/command mode. map! [G " KP_5 (NumLock off) " keys in normal mode " KP_5 (NumLock off) map [G i endif " This escape sequence is the well known ANSI sequence for " Remove Character Under The Cursor (RCUTC[tm]) map! [3~ map [3~ x " Only do this part when compiled with support for autocommands. if has("autocmd") " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif endif " has("autocmd") " Changed default required by SuSE security team--be aware if enabling this " that it potentially can open for malicious users to do harmful things. set modelines=0 " get easier to use and more user friendly vim defaults " /etc/vimrc ends here zshrc sysconfig{yp.conf| slp.reg.d krb5.conf pam_smb.conf cron.dailydefkeymap.name scpm.users insserv.conflesskeymysqlaccess.conf nss_mdns.conf cron.hourlyxinetd.dauto.net nscd.confiproute2 grub.conf syslog-ngmail.rcmailcap permissionsslp.regslp.spi cron.monthly filesystems DIR_COLORSpermissions.paranoididn.conftermcappwdutils idnalias.conf xinetd.conf rpasswd.conf a2ps-site.cfg cron.weekly vsftpd.confalsa.d hosts.allowa2ps.cfg hosts.equivscreenrcmodprobe.conf.local blkid.tabnamed.dexports(dbus-1snmpd.conf.newcron.d y2pmbuildethers ld.so.conf.d# zsh line editing : ${ZSHEDIT:="emacs"} : ${TERM:=linux} if [[ "$ZSHEDIT" == "vi" ]] then bindkey -v else bindkey -e bindkey "^[ " magic-space bindkey "^[!" expand-history fi # Environment HISTSIZE=1000 HISTFILE=${HOME}/.zsh_history SAVEHIST=500 # Prompt on the right side. zsh feature #RPROMPT="[%T]" # Set/unset shell options setopt globdots nocorrect pushdtohome autolist nopromptcr setopt nocorrectall autocd recexact longlistjobs autoresume setopt histignoredups pushdsilent appendhistory histexpiredupsfirst setopt autopushd pushdminus extendedglob rcquotes unsetopt bgnice autoparamslash hup # Setup some basic programmable completions. To see more examples # of these, check out /usr/doc/packages/zsh/compctl-examples. # You you have a slow machine, you might want to comment the lines below # with compctl in, and comment the below two lines out. # # compctl -g '*(-/)' cd pushd # compctl -g '*(/)' rmdir dircmp # compctl -j -P % -x 's[-] p[1]' -k signals -- kill # compctl -j -P % fg bg wait jobs disown # compctl -A shift # compctl -caF type whence which # compctl -F unfunction # compctl -a unalias # compctl -v unset typeset declare vared readonly export integer # compctl -e disable # compctl -d enable # # The default way is the usage of the zsh built-in completer # Comment the two below lines out, if you are on a slow machine, and # comment the above compctl lines in. autoload -U compinit compinit # Completion so "cd .." -> "cd ../" # zstyle ':completion:*' special-dirs .. # Online help unalias run-help 2>/dev/null || true autoload run-help # Don't use zsh builtin which alias which >/dev/null && unalias which # Common standard keypad and cursor bindkey "^[[2~" yank bindkey "^[[3~" delete-char # History completion on pgup and pgdown autoload -U history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^[[5~" history-beginning-search-backward-end bindkey "^[[6~" history-beginning-search-forward-end if [[ "$TERM" == "xterm" ]] then bindkey "^[2;5~" yank bindkey "^[3;5~" delete-char bindkey "^[5;5~" up-history bindkey "^[6;5~" down-history fi bindkey "^[[C" forward-char bindkey "^[[D" backward-char bindkey "^[[A" up-history bindkey "^[[B" down-history # Avoid network problems # ... \177 (ASCII-DEL) and \010 (ASCII-BS) # do `backward-delete-char' # Note: `delete-char' is maped to \033[3~ # Therefore xterm's responce on pressing # key Delete or KP-Delete should be # \033[3~ ... NOT \177 bindkey "^?" backward-delete-char bindkey "^H" backward-delete-char # Home and End if [[ "$TERM" == "xterm" ]] then # Normal keypad and cursor of xterm bindkey "^[[1~" history-search-backward bindkey "^[[4~" set-mark-command bindkey "^[[H" beginning-of-line bindkey "^[[F" end-of-line # Home and End of application keypad and cursor of xterm bindkey "^[OH" beginning-of-line bindkey "^[OF" end-of-line bindkey "^[O5H" beginning-of-line bindkey "^[O5F" end-of-line else if [[ "$TERM" == "kvt" ]] then bindkey "^[[1~" history-search-backward bindkey "^[[4~" set-mark-command bindkey "^[OH" beginning-of-line bindkey "^[OF" end-of-line else # TERM=linux or console bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line fi fi # Application keypad and cursor of xterm if [[ "$TERM" == "xterm" ]] then bindkey "^[OD" backward-char bindkey "^[OC" forward-char bindkey "^[OA" up-history bindkey "^[OB" down-history # DEC keyboard KP_F1 - KP_F4 bindkey -s "^[OP" "^[" bindkey "^[OQ" undo bindkey "^[OR" undefined-key bindkey "^[OS" kill-line fi if [[ "$TERM" == "gnome" ]] then # or gnome terminal F1 - F4 bindkey -s "^[OP" "^[" bindkey "^[OQ" undo bindkey "^[OR" undefined-key bindkey "^[OS" kill-line fi # Function keys F1 - F12 if [[ "$TERM" == "linux" ]] then # On console the first five function keys bindkey "^[[[A" undefined-key bindkey "^[[[B" undefined-key bindkey "^[[[C" undefined-key bindkey "^[[[D" undefined-key bindkey "^[[[E" undefined-key else # The first five standard function keys bindkey "^[[11~" undefined-key bindkey "^[[12~" undefined-key bindkey "^[[13~" undefined-key bindkey "^[[14~" undefined-key bindkey "^[[15~" undefined-key fi bindkey "^[[17~" undefined-key bindkey "^[[18~" undefined-key bindkey "^[[19~" undefined-key bindkey "^[[20~" undefined-key bindkey "^[[21~" undefined-key # Note: F11, F12 are identical with Shift_F1 and Shift_F2 bindkey "^[[23~" undefined-key bindkey "^[[24~" undefined-key # Shift Function keys F1 - F12 # identical with F11 - F22 # # bindkey "^[[23~" undefined-key # bindkey "^[[24~" undefined-key bindkey "^[[25~" undefined-key bindkey "^[[26~" undefined-key # DEC keyboard: F15=^[[28~ is Help bindkey "^[[28~" undefined-key # DEC keyboard: F16=^[[29~ is Menu bindkey "^[[29~" undefined-key bindkey "^[[31~" undefined-key bindkey "^[[32~" undefined-key bindkey "^[[33~" undefined-key bindkey "^[[34~" undefined-key if [[ "$TERM" == "xterm" ]] then # Not common bindkey "^[[35~" undefined-key bindkey "^[[36~" undefined-key fi if [[ "$TERM" == "xterm" ]] then # Application keypad and cursor of xterm # with NumLock ON # # Operators bindkey -s "^[Oo" "/" bindkey -s "^[Oj" "*" bindkey -s "^[Om" "-" bindkey -s "^[Ok" "+" bindkey -s "^[Ol" "," bindkey -s "^[OM" "\n" bindkey -s "^[On" "." # Numbers bindkey -s "^[Op" "0" bindkey -s "^[Oq" "1" bindkey -s "^[Or" "2" bindkey -s "^[Os" "3" bindkey -s "^[Ot" "4" bindkey -s "^[Ou" "5" bindkey -s "^[Ov" "6" bindkey -s "^[Ow" "7" bindkey -s "^[Ox" "8" bindkey -s "^[Oy" "9" fi # EMACS line editing if [[ "$ZSHEDIT" == "emacs" ]] then # ... xterm application cursor if [[ "$TERM" == "xterm" ]] then bindkey "^[^[OD" backward-word bindkey "^[^[OC" forward-word bindkey "^[^[OA" up-history bindkey "^[^[OB" down-history bindkey "^^[OD" backward-char bindkey "^^[OC" forward-char bindkey "^^[OA" up-history bindkey "^^[OB" down-history fi # Standard cursor bindkey "^[^[[D" backward-word bindkey "^[^[[C" forward-word bindkey "^[^[[A" up-history bindkey "^[^[[B" down-history bindkey "^^[[D" backward-char bindkey "^^[[C" forward-char bindkey "^^[[A" up-history bindkey "^^[[B" down-history fi  . .. ide ssh uml boot cron ldap mail news xntp powersaveconsolesusehelp fonts-configclockmdadmmouseproxysoundtetexsvnservescriptsscsidevbackupautofs  SuSEfirewall2 hardware6networkesecurityfkernelgdisplaymanagerhlocateipowermanagementjsysctlksyslogl autoinstallmservicesnypbindoapache2photplugqjoystickrlanguages windowmanagert onlineupdateu saslauthdv suseconfigw bootloaderx bluetoothykeyboardzpostfix## Path: Hardware/IDE ## Description: IDE device settings ## Type: string ## Default: "" ## ServiceRestart: boot.idedma # # Force DMA mode for selected device. Use pairs : separated # by space - dma_mode can be "on" (enable default DMA mode), "off" (disable DMA # mode) or any mode supported by hdparm (e.g. "mdma2", "udma5", ...) # Example: "/dev/hdc:off /dev/hdd:udma2" # DEVICES_FORCE_IDE_DMA="" ## Path: Network/Remote access/SSH ## Description: SSH server settings ## Type: string ## Default: "" ## ServiceRestart: sshd # # Options for sshd # SSHD_OPTS=""  ...## Path: System/Boot ## Description: Controlling of the boot process ## Type: yesno ## Default: no ## Config: # # For interactive debugging of the startup process. If set # to "yes" the system will ask whether to confirm every # step of the boot process. This will however only work # if the keyboard is already accessable at this time, # eg. USB keyboards need their modules loaded first. # PROMPT_FOR_CONFIRM="no" ## Type: integer ## Default: 5 # # For interactive debugging of the startup process. How long # wait before the default answer is assumed. # CONFIRM_PROMPT_TIMEOUT="5" ## Type: yesno ## Default: yes # # Run all scripts or rather start/stop all services # which are independent from each other in parallel. # RUN_PARALLEL=yes ## Type: yesno ## Default: yes # # Run all scripts or rather start/stop all services # by using the make command and if RUN_PARALLEL is # set to "yes" just use a make like boot behaviour # USE_MAKE=yes ## Type: yesno ## Default: no # # If set to "yes" this enables to stop the boot process by # pressing Ctrl-S and continue with Ctrl-Q (xon/xoff # flow control). # FLOW_CONTROL="no" ## Type: integer ## Default: 10 # # Limit the number of file system checkers that can be running in # parallel. This allows configurations which have a large number of # disks to avoid fsck starting too many file system checkers at once, # which might overload CPU and memory resources available on the # system. # FSCK_MAX_INST="10" ## Type: string ## Default: "" # # Set additional parameters for klogconsole, e.g. "-l 7" # KLOGCONSOLE_PARAMS="" ## Path: System/Cron ## Description: days to keep old files in tmp-dirs, 0 to disable ## Type: integer ## Default: 0 ## Config: # # cron.daily can check for old files in tmp-dirs. It will delete all files # not accessed for more than MAX_DAYS_IN_TMP. If MAX_DAYS_IN_TMP is not set # or set to 0, this feature will be disabled. # MAX_DAYS_IN_TMP="0" ## Type: integer ## Default: 0 # # see MAX_DAYS_IN_TMP. This allows to specify another frequency for # a second set of directories. # MAX_DAYS_IN_LONG_TMP="0" ## Type: string ## Default: "/tmp" # # This variable contains a list of directories, in which old files are to # be searched and deleted. The frequency is determined by MAX_DAYS_IN_TMP # TMP_DIRS_TO_CLEAR="/tmp" ## Type: string ## Default: "" # # This variable contains a list of directories, in which old files are to # be searched and deleted. The frequency is determined by MAX_DAYS_IN_LONG_TMP # If cleaning of /var/tmp is wanted add it here. # LONG_TMP_DIRS_TO_CLEAR="" ## Type: string ## Default: root # # In OWNER_TO_KEEP_IN_TMP, you can specify, whose files shall not be deleted. # OWNER_TO_KEEP_IN_TMP="root" ## Type: string ## Default: no # # "Set this to "yes" to entirely remove (rm -rf) all files and subdirectories # from the temporary directories defined in TMP_DIRS_TO_CLEAR on bootup. # Please note, that this feature ignores OWNER_TO_KEEP_IN_TMP - all files will # be removed without exception." # # If this is set to a list of directories (i.e. starts with a "/"), these # directories will be cleared instead of those listed in TMP_DIRS_TO_CLEAR. # This can be used to clear directories at boot as well as clearing unused # files out of other directories. # CLEAR_TMP_DIRS_AT_BOOTUP="no" ## Path: System/Cron/Man ## Description: cron configuration for man utility ## Type: yesno ## Default: yes # # Should mandb and whatis be recreated by cron.daily ("yes" or "no") # REINIT_MANDB=yes ## Type: yesno ## Default: yes # # Should old preformatted man pages (in /var/catman) be deleted? (yes/no) # DELETE_OLD_CATMAN=yes ## Type: integer ## Default: 7 # # How long should old preformatted man pages be kept before deletion? (days) # CATMAN_ATIME=7 ## Path: System/Yast2/Ldap ## Description: YaST2 Ldap-client configuration ## Type: string ## Default: none # # Main configuration DN. At these place (in the LDAP directory) the # configuration objects (like userConfiguration or groupConfiguration) # are saved as default. # # BASE_CONFIG_DN="" ## Path: System/Yast2/Ldap ## Description: YaST2 Ldap-client configuration ## Type: string ## Default: none # # Administrator bind DN. With this DN you will bind to LDAP server to # configure directory contens. # # BIND_DN="" ## Path: System/Yast2/Ldap ## Description: YaST2 Ldap-client configuration ## Type: yesno ## Default: no # # If this machine acts as a file server for LDAP users home directories. # Value is used by YaST2 Users module to check if managing home directories # of LDAP users is possible. # # FILE_SERVER="no" ## Path: Network/Mail/General ## Description: ## Type: string ## Default: "" ## Config: sendmail,postfix ## ServiceReload: sendmail,postfix # # From:-Line in email and News postings # (otherwise the FQDN is used) # FROM_HEADER="" ## Path: Network/Mail/General ## Description: Basic general MTA configuration ## Type: yesno ## Default: yes ## Config: postfix,sendmail # # If you don't want to let SuSEconfig generate your # configuration file, set this to no # MAIL_CREATE_CONFIG="yes" ## Type: yesno ## Default: no ## Config: postfix # # Set this to "yes" if mail from remote should be accepted # this is necessary for any mail server. # If set to "no" or empty then only mail from localhost # will be accepted. # SMTPD_LISTEN_REMOTE="no" ## Path: Network/News ## Description: ## Type: string ## Default: "" # # Used for News-Postings. # ORGANIZATION="" ## Type: string(news) ## Default: news # # News server. # NNTPSERVER="news" ## Path: Network/NTP ## Description: Network Time Protocol (NTP) server settings ## Type: string ## Default: AUTO-2 ## ServiceRestart: xntpd # # Usually it's a good idea to get the current time and date # from some other ntp server, before the local xntpd is started. # - Set XNTPD_INITIAL_NTPDATE="AUTO" to query ALL servers listed # in the configuration file (/etc/ntp.conf). # - Set XNTPD_INITIAL_NTPDATE="AUTO-{NUMBER}" to query the first {NUMBER} # servers listed in the configuration file. E.g. "AUTO-2". # Otherwise provide a space-separated list of ntp servers to query, or # set XNTPD_INITIAL_NTPDATE="" to do no initial query at all. # XNTPD_INITIAL_NTPDATE="" ## Type: string ## Default: "-u ntp" # # Additional arguments when starting ntpd. The most # important ones would be # -u user[:group] to make xntpd run as a user (group) other than root. # XNTPD_OPTIONS="-u ntp" ## Type: yesno ## Default: yes ## ServiceRestart: xntpd # # Shall the time server ntpd run in the chroot jail /var/lib/ntp? # # Each time you start ntpd with the init script, /etc/ntp.conf will be # copied to /var/lib/ntp/etc/. # # The pid file will be in /var/lib/ntp/var/run/ntpd.pid. # XNTPD_RUN_CHROOTED="yes"  . .. diskcpufreqsleepscheme_performancethermalcommonscheme_acousticeventsbatteryscheme_presentation,scheme_powersave#! /bin/sh ## Path: System/Powermanagement/Powersave/Disk ## Description: These settings determine, how the powersave daemon \ ## will adjust your harddisk settings in the different profiles. \ ## If you alter something here, you are doing this on your own risk. \ ## You should be at least familiar with hdparm (8) and the settings \ ## in /proc/sys/vm. Some of these variables contain raw hdparm arguments,\ ## any errors in these may cause the proxy scripts to fail.\n \ ## DANGER! YOU MAY LOSE DATA IF YOU ENTER WRONG VALUES HERE! \ ## You have been warned. ## Path: System/Powermanagement/Powersave/Disk ## Type: yesno ## Default: "yes" # # shall we remount journaled filesystems with appropriate commit interval? # this is needed to get the disk to shutdown on ext3 and reiserfs. HD_DO_REMOUNTS="yes" ## Path: System/Powermanagement/Powersave/Disk ## Type: yesno ## Default: "no" # # remount reiserfs with option noatime? Was necessary with earlier kernels, # should not be needed any longer. HD_NOATIME="no" ## Path: System/Powermanagement/Powersave/Disk ## Type: integer(0:10000) ## Default: "600" # # age time, in seconds. Journalled filesystems will be remounted with the # commit interval set to this value. The VM writeback and expire values # will be set to this value in seconds. # WARNING: You will lose data if your machine crashes or your battery runs # flat, sice data will eventually only be committed to disk after this time! HD_MAX_AGE="600" ## Path: System/Powermanagement/Powersave/Disk ## Type: integer(0:100) ## Default: "75" # # Allowed dirty ratio, in percent. This value will be put into # /proc/sys/vm/dirty_ratio and /proc/sys/vm/dirty_background_ratio. HD_DIRTY_RATIO="75" ## Path: System/Powermanagement/Powersave/Disk ## Type: integer(0:254) # # "hdparm -M" arguments for POWERSAVE_DISK_ACOUSTIC settings # "performance", "low" and "quiet". There will be a check on # the capabilities of the disk before those settings are issued, # so changes here will be doing nothing if the drive does not # support automatic acoustic management (AAM). Change only if you # know what you are doing! # Valid values are 128 (quiet) to 254 (fast), 0 disables this setting. HDPARM_ACOUSTIC_PERF="254" HDPARM_ACOUSTIC_LOW="128" HDPARM_ACOUSTIC_QUIET="128" ## Path: System/Powermanagement/Powersave/Disk ## Type: integer(0:255) # # "hdparm -B" arguments for POWERSAVE_STANDBY_MODE settings # "performance", "powersave" and "aggressive_powersave". # Change only if you know what you are doing! Also see the # "hdparm" manpage to learn more about those settings. # The support of the drive for APM is checked before issuing those # command, so these settings may have no effect on your hardware. # For many laptop harddisks, the APM settings are defined as follows: # 255: APM off # 192-254: "active idle" - not too much savings # 128-191: "low power idle" - heads may be parked # <127: "standby" - disk may spin down even without a spindown setting # 0: special value, disables the "hdparm -B" setting. # These values are dependent on your harddrive model! # Note that spinning down the disk leads to spurious lockups on some # machines (e.g. Dell D600), so be careful. # # Performance default is 254 instead of 255 (off) since this will let # a lot of drives run cooler without significant impact on performance. HDPARM_STBY_PERF="254" HDPARM_STBY_SAVE="128" HDPARM_STBY_AGGR="1" ## Path: System/Powermanagement/Powersave/Disk ## Type: string # # These are raw hdparm arguments for POWERSAVE_STANDBY_MODE settings # "performance", "powersave" and "aggressive_powersave". # Change only if you know what you are doing! These settings are passed # to hdparm without further checks! Use only if you know what you are # doing! These are the last parameters on the hdparm command line, so # they may override HD_STBY_* and HD_ACOUSTIC_* settings. HDPARM_RAW_PERF="" HDPARM_RAW_SAVE="" HDPARM_RAW_AGGR="" ## Path: System/Powermanagement/Powersave/CPU ## Description: The settings in this section affect the CPU frequency \ ## scaling algorithm and the timeout for CPU low/high events. ## Path: System/Powermanagement/Powersave/CPU ## Type: string ## ServiceRestart: powersave # # The powersaved startscript will load this module for CPU frequency # scaling support. If nothing is specified here, the most common cpufreq # modules will be tried. Entering the correct module will reduce the # warnings in syslog during boot and probably speed up booting a bit. # Entering "off" will skip trying to load cpufreq modules and avoid # warnings on machines with no cpufreq-capable hardware. # POWERSAVE_CPUFREQD_MODULE="" ## Path: System/Powermanagement/Powersave/CPU ## Type: string ## ServiceRestart: powersave # # Some cpufreq modules need additional parameters to define the hardware # of your system. You can enter these parameters here. # POWERSAVE_CPUFREQD_MODULE_OPTS="" ## Path: System/Powermanagement/Powersave/CPU ## Type: integer(1:100) ## Default "80" # # These variable sets the limit (in percent) for switching to the # next higher CPU frequency (if supported). The limit for switching # down is calculated from this high limit, the CPU_HYSTERESIS variable # and the available frequencies of your CPU automatically. # POWERSAVED_CPU_HIGH_LIMIT="80" ## Path: System/Powermanagement/Powersave/CPU ## Type: integer(1:100) ## Default "5" # # The hysteresis for calculating the CPU load limit to switch to # the next lover CPU frequency. Increasing this value lowers the # load percentage at which the deamon switches down one step. # This might be useful if you notice that the frequency continuously # oscilates at a almost constant CPU usage (e.g. when watching a movie). # 5 is default, you should not set it higher than 40. # Zero is not allowed. # POWERSAVED_CPU_HYSTERESIS="5" ## Path: System/Powermanagement/Powersave/CPU ## Type: integer(0:10000) ## Default "10" # # If CPU stays longer than this value (in seconds) below the # ``POWERSAVED_DYNAMIC_LOW_CPU_LIMIT'' limit, the daemon generates a # processor.low event. As soon as the CPU usage steps over the # POWERSAVED_CPU_HIGH_LIMIT once, a processor.dynamic.high event is sent. # Set it to 0 or let it empty to disable processor.* events. # POWERSAVED_CPU_IDLE_TIMEOUT="10" ## Path: System/Powermanagement/Powersave/CPU ## Type: integer(1:100) ## Default "25" # # If the CPU stays under the low limit for longer than specified in # POWERSAVED_CPU_IDLE_TIMEOUT above, the daemon will additionally send a # processor.low event. # This is not the limit at which the CPU frequency is scaled down. # POWERSAVED_DYNAMIC_LOW_CPU_LIMIT="25" ## Path: System/Powermanagement/Powersave/CPU ## Type: yesno ## Default "no" # # Consider nice process time as CPU usage # set to yes - if you want niced processes to be considered by the # CPU frequency algorithm. # POWERSAVED_CONSIDER_NICE="no" ## Path: System/Powermanagement/Powersave/CPU ## Type: integer(1:100) ## Default "70" # # Set the CPU load difference limit for which the highest available # frequency is set immediately (e.g. if set to 60, it switches to # full speed if the CPU load jumps from 5% to 66% or higher instead # of ramping up through all available frequencies). Disable the direct # triggering of the highest frequency by setting a value of 0. # POWERSAVED_JUMP_CPU_FREQ_MAX_LIMIT="50" # Here you can try to modify variables if you have some special hardware ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Description: Configuration of all three sleep modes (S2 is not supported):\n \ ## S1 sleep (only ACPI) low wake-up latency, \n \ ## S3 (ACPI) suspend to ram or (on APM systems) standby and \n \ ## S4 (ACPI) suspend to disk or (on APM systems) suspend. \n \ ## \n \ ## For some hardware, modules have to be unloaded before entering the \ ## sleep state. You can configure these in this section. These modules \ ## will be unloaded in the specified order. Modules which depend on one \ ## of the specified modules, will also be unloaded. If not all modules \ ## can be unloaded, entering the sleep state will fail. \n \ ## After resuming, the modules that have been unloaded will be reloaded \ ## in reverse order. \n \ ## The same applies for the "SERVICES_TO_RESTART"-variables which define \ ## services which have to be stopped before entering a sleep state. ## Path: System/Powermanagement/Powersave/Sleep_Modes ### Type: string ## Default: "stir4200 usb_storage sbp2 ohci_hcd uhci_hcd ohci1394 ipw2200 prism54 aic7xxx" ## ServiceRestart: # # These modules will be unloaded before entering the corresponding # sleep state. See README.unload-modules for more information. # POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2DISK="usb_storage sbp2 uhci_hcd stir4200 rt2500 prism54" POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2RAM="usb_storage sbp2 uhci_hcd stir4200 rt2500 prism54" POWERSAVE_UNLOAD_MODULES_BEFORE_STANDBY="" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: string ## Default: "autofs slmodemd irda" # # All services that have to be stopped before entering a sleep mode # and restarted after the machine resumes. # If you notice problems of some services that may be related to # suspend/standby, restarting the service may solve the problem. # The names to enter here are simply the filenames of the init scripts # in /etc/init.d. The services are stopped in the order entered here. # They are restarted after resume in the reverse order. # POWERSAVE_SUSPEND2DISK_RESTART_SERVICES="autofs slmodemd irda" POWERSAVE_SUSPEND2RAM_RESTART_SERVICES="autofs slmodemd irda" POWERSAVE_STANDBY_RESTART_SERVICES="" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: yesno ## Default: "yes" # # Should FAT and NTFS filesystems be unmounted before entering # a sleep mode and remounted after the machine resumed? # You should do this for suspend to disk if you want to boot # Windows while Linux is suspended to avoid severe data corruption # on the Windows filesystems. # Note that suspend will fail if the partitions cannot be unmounted. # This may cause problems with external storage media connected during # suspend. POWERSAVE_SUSPEND2DISK_UNMOUNT_FATFS="yes" POWERSAVE_SUSPEND2RAM_UNMOUNT_FATFS="no" POWERSAVE_STANDBY_UNMOUNT_FATFS="no" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: yesno ## Default "yes" ## ServiceRestart: powersaved # # Set these variables to disable entering the corresponding sleep # state. # POWERSAVED_DISABLE_USER_SUSPEND2DISK="no" POWERSAVED_DISABLE_USER_SUSPEND2RAM="yes" POWERSAVED_DISABLE_USER_STANDBY="yes" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: string ## Default: integer(1:1000) # # Specify the time in seconds a sleep state should be delayed. This can # be used to delay a power-button-induced suspend for some seconds to # be able to power off the machine hard. # POWERSAVE_SUSPEND2DISK_DELAY="0" POWERSAVE_SUSPEND2RAM_DELAY="0" POWERSAVE_STANDBY_DELAY="0" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: string(platform,firmware,shutdown,reboot) ## Default: "shutdown" # # Specify the shutdown method the kernel uses after suspend-to-disk. # "shutdown" is known to work on most machines, "platform" may work, # too. "firmware" will most likely not work, "reboot" is for # debugging only. Use only if you know what this is for. # POWERSAVE_SUSPEND2DISK_SHUTDOWN_MODE="platform" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: yesno ## Default: "yes" # # Should the system clock be reset from the hardware clock after # suspend-to-disk or suspend-to-RAM? This may be unneccessary depending # on kernel version and SUSPEND2DISK_SHUTDOWN_MODE, but will not hurt. POWERSAVE_SUSPEND2DISK_RESTORE_CLOCK="no" POWERSAVE_SUSPEND2RAM_RESTORE_CLOCK="no" POWERSAVE_STANDBY_RESTORE_CLOCK="no" ## Path: System/Powermanagement/Powersave/Sleep_Modes ## Type: yesno ## Default: "yes" # # Should we suspend to disk even if it seems the kernel in /boot # is not matching the running kernel? This is very dangerous, if # the kernels don't match, resume will not work. Use only if you # absolutely need to (e.g. you are compiling a custom kernel). # POWERSAVE_SUSPEND2DISK_IGNORE_KERNEL_MISMATCH="no" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Description: Scheme that is by default optimized for \ ## highest performance rates. \ ## See the variables POWERSAVE_BATTERY_SCHEME \ ## and POWERSAVE_AC_SCHEME to let this scheme \ ## take place for either working on AC or Battery \ ## or both. ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "Performance" ## Type: string # # Scheme name as displayed by YaST powermanagement module # POWERSAVE_SCHEME_NAME="Performance" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "Scheme optimized to let machine run on maximum performance" ## Type: string # # Description of the scheme as displayed by YaST powermanagement module # POWERSAVE_SCHEME_DESCRIPTION="Scheme optimized to let machine run on maximum performance." ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "dynamic" ## Type: list(performance,powersave,dynamic) ## ServiceRestart: # # performance - The CPU stays always on highest supported frequency # powersave The CPU stays always on lowest supported frequency. # dynamic - The frequency is adjusted dynamically # according to the current CPU usage. # # These settings need CPU frequency scaling support by your # hardware e.g. SpeedStep(Intel), PowerNow(AMD) or similar # technologies. The preferred value is dynamic to gain good # performance and reduce heat and noise. # POWERSAVE_CPUFREQUENCY="dynamic" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "no" ## Type: yesno # # Allow throttling of the CPU # POWERSAVE_ALLOW_THROTTLING="no" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "50" ## Type: integer(0:80) # # Maximum throttling (in percent) of the CPU (if enabled). # POWERSAVE_MAX_THROTTLING="50" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "no" ## Type: yesno # # Will always throttle the CPU instead of only throttle on low CPU # usage. This is useful to increase battery lifetime specially on # machines with no CPU frequency scaling support. Be careful your # machine could be distinctly slower (depends on the percent throttled). # POWERSAVE_ALWAYS_THROTTLE="no" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "performance" ## Type: list(performance,powersave,aggressiv_powersave,off) # # Activates the Advanded Power Management function # of your IDE-disks, SCSI disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_STANDBY_MODE="off" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "performance" ## Type: list(performance,low,quiet,off) # # Activates the Acoustic management function # of your IDE-disks, only some IDE disks # support it, not supported disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_ACOUSTIC="off" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default "active" ## Type: list(active,passive,off) # # Off - Disable thermal management # Active - The hardware is preferably cooled by the fan. # Passive - The hardware is preferably cooled through # throttling and other power saving/low-noise techniques # if the temperature raises over a limit defined by # your bios. This is sparsely supported by HW at the moment. # # The cooling policy is the preferred variable to adjust thermal management. # If not supported or for fine adjustence, use the variables below. POWERSAVE_COOLING_POLICY="active" ## Path: System/Powermanagement/Powersave/Scheme/Performance ## Default 0 ## Type: integer(0:200) # # Use the variables to override the temperature trip point settings exported # by BIOS (in degree Celcius). # The number in the end defines the thermal zone for which the value should # be active. Use the powersave -T command to find out supported thermal zones # and their default trip point settings. A value of 0 will be ignored. # Active trip points are not supported at the moment as fans cannot # be controlled over ACPI on most machines. #POWERSAVE_THERMAL_CRITICAL_0="0" #POWERSAVE_THERMAL_HOT_0="0" #POWERSAVE_THERMAL_PASSIVE_0="0" ## Path: System/Powermanagement/Powersave/Thermal ## Type: list(userspace,kernel,both,off) ## Default "kernel" # # this can only be used on ACPI systems # see /proc/acpi/thermal_zone/*/* whether thermal management is # supported on your machine (thermal module must be loaded) # At least the temperature file must exist and return reasonable # values. Also see README.thermal in /usr/share/doc/packages/powersave # # userspace: not supported yet # kernel: the values in /proc/acpi/thermal_zone/*/trip_points are # overridden with the POWERSAVE_THERMAL_*_X values from the # current active scheme see README.thermal # off: the kernel's default trip_point values are still active POWERSAVE_ENABLE_THERMAL_MANAGEMENT="kernel" ## Path: System/Powermanagement/Powersave ## Description: The Powersave package joins the capabilities of the ACPI daemon, \ ## APM daemon and CPUfreq daemon. It provides a unified configuration \ ## interface for your whole powermanagement. Be careful that you do not \ ## run the mentioned daemons together with the powersave daemon. ## Path: System/Powermanagement/Powersave/General ## Description: General Power Management settings ## Path: System/Powermanagement/Powersave/General ## Type: integer(0:31) ## Default: "3" ## ServiceRestart: powersave # # Set the debug level, allowed values: 0-31 # 1 Error # 2 Warning # 4 Diag # 8 Info # 16 Debug # e.g. Error + Warning: 1 + 2 -> 3 # powersaved needs restart to activate level, sending SIGHUP is not # enough. Proxy scripts react immediately. # POWERSAVED_DEBUG="3" ####### Y A S T 2 C O N F I G U R A T I O N S ####### ## Path: System/Powermanagement/Powersave/General ## Type: string ## Default: "performance" # # Defines which scheme(system settings) should be used when # the machine works on AC power. # Have a look into the YaST Power Management Module to create # new schemes. You can also set this variable there. # POWERSAVE_AC_SCHEME="performance" ## Path: System/Powermanagement/Powersave/General ## Type: string(powersave,performance,acoustic) ## Default: "powersave" # # Defines which scheme(system settings) # should be used when the system works on battery power. # Have a look into the YaST Power Management Module to create # new schemes. You can also set this variable there. # POWERSAVE_BATTERY_SCHEME="powersave" ## Path: System/Powermanagement/Powersave/General ## Type: string(notify_popup_fallback notify_popup_window notify_console notify_acoustic) ## Default: "notify_popup_fallback notify_acoustic" # # How should the user be notified by the notify method # which could be assigend to several variables in System/Powermanagement/Powersave/Events. # More than one value is assignable. # POWERSAVE_NOTIFY_METHOD="notify_popup_fallback notify_acoustic" ## Path: System/Powermanagement/Powersave/General ## Type: string(ac,battery,button,fan,processor,thermal,asus_acpi,toshiba_acpi) ## Default: "ac battery button fan processor thermal" ## ServiceRestart: powersaved # # The powersaved startscript will load all necessary modules for acpi. If some of # these modules cause trouble, you may remove it from this variable. You may # add the modules asus_acpi or toshiba_acpi if your computer is an Asus or a # Toshiba. Seperate several modules by space. # POWERSAVE_ACPI_MODULES="ac battery button fan processor thermal" ## Path: System/Powermanagement/Powersave/General ## Type: string(ac,battery,button,fan,processor,thermal) ## Default: "ac battery button fan processor thermal" ## ServiceRestart: # # The powersaved startscript will unload all loaded ACPI modules, when powersaved is # stopped. If some modules cause trouble when unloading, you may add them to # this variable. All modules in this list won't be unloaded. Note that some # other of these modules might be unloadable as well, but that should not harm.. # POWERSAVE_ACPI_MODULES_NOT_TO_UNLOAD="ac battery button fan processor thermal" ## Path: System/Powermanagement/Powersave/General ## Type: list(GRUB,LILO,OTHER) ## Default "GRUB" # # Set this variable to the boot loader you are using. # Only GRUB has an effect since LILO support is not implemented yet. # If you don't want to automatically boot into the kernel you suspended # with (or you don't use grub as boot loader), set this to anything else # than GRUB. POWERSAVE_BOOT_LOADER="GRUB" ## Path: System/Powermanagement/Powersave/General ## Type: integer(1:10000) ## Default "333" # # The powersave daemon watches the usage of your CPU # and other hardware concerning power consumption # Please set the time in milliseconds for what the # daemon should sleep before checking your system again # Good values are about 200-1000(milliseconds) # POWERSAVED_POLLING_INTERVAL="333" ## Path: System/Powermanagement/Powersave/General ## Type: yesno ## Default "yes" # # Should the screensaver() function also switch off the # display e.g. on lid close event? On some machines where # the display is not shut off via hardware switch, this is # required, on all others it should not harm. # This setting has no effect when using a graphical client like kpowersave. POWERSAVE_SCREENSAVER_DPMS_OFF="yes" ## Path: System/Powermanagement/Powersave/General ## Type: yesno ## Default "no" # # If this is set to "yes", the screensaver will be instructed to only blank # the screen and not display fancy graphics. This can cause confusion after # resume since the screen will just stay black until you press a key. On the # other hand, the fancy graphics may run down your battery faster. # Choose your poison here. # This setting has no effect when using a graphical client like kpowersave. POWERSAVE_SCREENSAVER_BLANKONLY="no" ## Path: System/Powermanagement/Powersave/General ## Type: yesno ## Default "yes" # # # Try to start acpid in init script # This allows other progs to access ACPI events via socket # Be sure that the acpid is installed but the service is not # started by default POWERSAVED_START_ACPID="yes" ## Path: System/Powermanagement/Powersave/General ## Type: list(resmgr,group,all,root) ## Default "resmgr" # # Who is allowed to access the powersaved: # all - everybody # group - members of the powersave system group # resmgr - users with a valid resource manager session (default) # root - only root POWERSAVED_SECURITY="resmgr" ## Path: System/Powermanagement/Powersave/General ## Type: string ## Default "powersave" # # If the daemon is started with group security policy (powersave -a param) # you can specify the system group that is allowed to connect to the daemon # by default the resource mangager (resmgr) policy is used and this # variable is ignored POWERSAVED_PM_GROUP="powersave" ## Path: System/Powermanagement/Powersave/General ## Type: integer(1:100) ## Default "0" # # Set a value to delay the execution of the action # bound to the power button. # This could be useful if the action should not be # triggered before the machine is possibly switched # of by holding the power button for some seconds. # POWERSAVED_POWERBTN_DELAY="0" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Description: Scheme that is by default optimized for \ ## low noise working. \ ## See the variables POWERSAVE_BATTERY_SCHEME \ ## and POWERSAVE_AC_SCHEME to let this scheme \ ## take place for either working on AC or Battery \ ## or both. ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "Acoustic" ## Type: string # # Scheme name as displayed by YaST powermanagement module # POWERSAVE_SCHEME_NAME="Acoustic" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "Scheme optimized to let machine run as quiet as possible." ## Type: string # # Description of the scheme as displayed by YaST powermanagement module # POWERSAVE_SCHEME_DESCRIPTION="Scheme optimized to let machine run as quietly as possible." ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "dynamic" ## Type: list(performance,powersave,dynamic) ## ServiceRestart: # # performance - The CPU stays always on highest supported frequency # powersave The CPU stays always on lowest supported frequency. # dynamic - The frequency is adjusted dynamically # according to the current CPU usage. # # These settings need CPU frequency scaling support by your # hardware e.g. SpeedStep(Intel), PowerNow(AMD) or similar # technologies. The preferred value is dynamic to gain good # performance and reduce heat and noise. # POWERSAVE_CPUFREQUENCY="dynamic" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "yes" ## Type: yesno # # Allow throttling of the CPU # POWERSAVE_ALLOW_THROTTLING="yes" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "50" ## Type: integer(0:80) # # Maximum throttling (in percent) of the CPU (if enabled). # POWERSAVE_MAX_THROTTLING="50" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "no" ## Type: yesno # # Will always throttle the CPU instead of only throttle on low CPU # usage. This is useful to increase battery lifetime specially on # machines with no CPU frequency scaling support. Be careful your # machine could be distinctly slower (depends on the percent throttled). # POWERSAVE_ALWAYS_THROTTLE="no" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "powersave" ## Type: list(performance,powersave,aggressiv_powersave,off) # # Activates the Advanded Power Management function # of your IDE-disks, SCSI disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_STANDBY_MODE="off" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "quiet" ## Type: list(performance,low,quiet,off) # # Activates the Acoustic management function # of your IDE-disks, only some IDE disks # support it, not supported disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_ACOUSTIC="off" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default "passive" ## Type: list(active,passive,off) # # Off - Disable thermal management # Active - The hardware is preferably cooled by the fan. # Passive - The hardware is preferably cooled through # throttling and other power saving/low-noise techniques # if the temperature raises over a limit defined by # your bios. This is sparsely supported by HW at the moment. # # The cooling policy is the preferred variable to adjust thermal management. # If not supported or for fine adjustence, use the variables below. POWERSAVE_COOLING_POLICY="passive" ## Path: System/Powermanagement/Powersave/Scheme/Acoustic ## Default 0 ## Type: integer(0:200) # # Use the variables to override the temperature trip point settings exported # by BIOS (in degree Celcius). # The number in the end defines the thermal zone for which the value should # be active. Use the powersave -T command to find out supported thermal zones # and their default trip point settings. A value of 0 will be ignored. # Active trip points are not supported at the moment as fans cannot # be controlled over ACPI on most machines. #POWERSAVE_THERMAL_CRITICAL_0="0" #POWERSAVE_THERMAL_HOT_0="0" #POWERSAVE_THERMAL_PASSIVE_0="0" ## Path: System/Powermanagement/Powersave/Events ## Description: In this section you can define what actions to perform \ ## if a powersaved event occurs. Read the documentation in \ ## /usr/share/doc/packages/powersave/ for more informations on how to \ ## add customized actions. You can specify multiple actions for a given \ ## event, just separate them with whitespace.\n \ ## Note: Your system might not generate all of the events. ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "ignore" # Events executed at daemon start. POWERSAVE_EVENT_DAEMON_START="ignore" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "set_disk_settings" # Events executed at a scheme change. The scheme change event is also thrown # if the machine is e.g. unplugged from AC or the daemon is started. POWERSAVE_EVENT_DAEMON_SCHEME_CHANGE="set_disk_settings" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "dethrottle" # # What events should be processed if the # powersave daemon terminates? POWERSAVE_EVENT_DAEMON_TERMINATE="dethrottle" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "reread_cpu_capabilities" POWERSAVE_EVENT_ACADAPTER_ONLINE="reread_cpu_capabilities" POWERSAVE_EVENT_ACADAPTER_OFFLINE="reread_cpu_capabilities" ## Path: System/Powermanagement/Powersave/Events ## Type: string(notify,wm_shutdown,wm_logout,standby,suspend_to_ram,suspend_disk,screen_saver,ignore) ## Default: "notify" # # The specified values(actions) will take effect, when the # battery state changes from "normal" to "warning". # POWERSAVE_EVENT_BATTERY_WARNING="notify" ## Path: System/Powermanagement/Powersave/Events ## Type: string(notify,wm_shutdown,wm_logout,standby,suspend_to_disk,suspend_to_ram,screen_saver,ignore) ## Default: "notify" # # The specified values(actions) will take effect, when the # battery state changes from "warning" to "low". # POWERSAVE_EVENT_BATTERY_LOW="notify" ## Path: System/Powermanagement/Powersave/Events ## Type: string(notify,wm_shutdown,wm_logout,standby,suspend_to_disk,suspend_to_ram,screen_saver,ignore) ## Default: "notify" # # The specified values(actions) will take effect, when the # battery state changes from "low" to "critical". # POWERSAVE_EVENT_BATTERY_CRITICAL="wm_shutdown" # This event is never reached POWERSAVE_EVENT_BATTERY_NORMAL="ignore" ## Path: System/Powermanagement/Powersave/Events ## Type: string(notify,wm_shutdown,wm_logout,standby,suspend_to_disk,suspend_to_ram,screen_saver,ignore) # # Button events. What functions of the proxy should be # triggered if a ACPI button is pressed? # POWERSAVE_EVENT_BUTTON_POWER="wm_shutdown" POWERSAVE_EVENT_BUTTON_SLEEP="suspend_to_disk" POWERSAVE_EVENT_BUTTON_LID_OPEN="ignore" POWERSAVE_EVENT_BUTTON_LID_CLOSED="screen_saver" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default "ignore" # # Gets processed if the powersave tool requests # a CPU frequency policy change. (e.g. powersave --performance) # These values are thought for later enhancements. # You may want to get your own function invoked to enable advanced # power saving functionalities. # However it would be easier to modify the binary that should # be invoked for the event in /etc/powersave.conf. # POWERSAVE_EVENT_PROCESSOR_PERFORMANCE="ignore" POWERSAVE_EVENT_PROCESSOR_POWERSAVE="ignore" POWERSAVE_EVENT_PROCESSOR_DYNAMIC="ignore" ## Path: System/Powermanagement/Powersave/Events ## Default "notify" ## Type: list(notify,wm_shutdown,wm_logout,standby,suspend_to_disk,suspend_to_ram,power_off,screen_saver) # # What should happen if a temperature limit is reached? POWERSAVE_EVENT_TEMPERATURE_CRITICAL="notify" POWERSAVE_EVENT_TEMPERATURE_HOT="notify" POWERSAVE_EVENT_TEMPERATURE_PASSIVE="ignore" POWERSAVE_EVENT_TEMPERATURE_ACTIVE="ignore" POWERSAVE_EVENT_TEMPERATURE_OK="ignore" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "ignore" # # This event gets thrown if a unknown event is encountered by the daemon. # Unknown events include e.g. ACPI hotkeys on some machines. # A description of this mechanism is available in # /usr/share/doc/packages/powersave/README.events. # POWERSAVE_EVENT_OTHER="ignore" ## Path: System/Powermanagement/Powersave/Events ## Type: string ## Default: "ignore" # # The kernel may inform that changes on CPU frequencies or throttling # states capabilites have been taken place. # In this case a cpu_notify event is generated by the powersave daemon and # the internal function reread_cpu_capabilities should be processed # POWERSAVE_EVENT_PROCESSOR_NOTIFY="reread_cpu_capabilities" ## Path: System/Powermanagement/Powersave/Events ## Type: string # # After the processor is idle (CPU_LOW) for a specific time # see a processor.dynamic.low event is thrown. # If the cpu usage goes beyond the CPU_HIGH value # a high event is thrown at once. # There will never be one event thrown twice in a row, they # alternate! This is a perfect place to add additional # power saving functionalities. # POWERSAVE_EVENT_PROCESSOR_DYNAMIC_HIGH="dethrottle" POWERSAVE_EVENT_PROCESSOR_DYNAMIC_LOW="throttle" ## Path: System/Powermanagement/Powersave/Events ## Type: string # # The specified functions that get processed # when an suspend/standby is requested should not be modified. # See System/Powermanagement/Powersave/Suspend or Standby # for possible modifications if you encounter problems # with these. # You should change those only if you know what you are doing, # if you remove e.g. the "screen_saver" event here, graphical # clients like kpowersave will no longer lock the screen on # suspend, no matter what. You have been warned :-) POWERSAVE_EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk screen_saver do_suspend_to_disk" POWERSAVE_EVENT_GLOBAL_SUSPEND2RAM="prepare_suspend_to_ram screen_saver do_suspend_to_ram" POWERSAVE_EVENT_GLOBAL_STANDBY="prepare_standby screen_saver do_standby" POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND2DISK="restore_after_suspend_to_disk" POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND2RAM="restore_after_suspend_to_ram" POWERSAVE_EVENT_GLOBAL_RESUME_STANDBY="restore_after_standby" ## Path: System/Powermanagement/Powersave/Battery ## Description: These variables control the various battery related settings \ ## of the powersave daemon. \n \ ## Note: the actions for the different battery charging levels are defined \ ## under "Events". ## Path: System/Powermanagement/Powersave/Battery ## Type: integer(1:100) # # Specify Battery state limits in percent of remaining battery. # If you are using more than one battery these values refer to the # state of the batteries on the whole POWERSAVED_BATTERY_WARNING="12" POWERSAVED_BATTERY_LOW="7" POWERSAVED_BATTERY_CRITICAL="2" ## Path: System/Powermanagement/Powersave/Battery ## Type: integer(1:10000) ## Default "180" # # Because reading out battery state causes high cpu # usage on some systems you can increase the time # when the battery is read out again. # Mulitply the value with the POWERSAVED_POLLING_INTERVAL # above and you get the time intervall the battery state # is read out(in millisecs) # If your system supports ACPI battery alarm events # (see /proc/acpi/battery/*/alarm) your battery is not polled # at all and you can ignore this setting POWERSAVED_BATTERY_POLLING_MULTIPLICATOR="180" ## Path: System/Powermanagement/Powersave/Battery ## Type: yesno ## Default "yes" # # If you have a broken ACPI system and battery states (warning, low, critical) # are not recognised as they should set this variable to yes. # This is a workaround for broken hardware, you normally do not need it. # To support all machines this is by default set to yes. POWERSAVED_FORCE_BATTERY_POLLING="yes" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Description: Scheme that is by default optimized for \ ## highest performance rates. \ ## See the variables POWERSAVE_BATTERY_SCHEME \ ## and POWERSAVE_AC_SCHEME to let this scheme \ ## take place for either working on AC or Battery \ ## or both. ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "Presentation" ## Type: string # # Scheme name as displayed by YaST powermanagement module # POWERSAVE_SCHEME_NAME="Presentation" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "Scheme optimized to let machine run on maximum performance" ## Type: string # # Description of the scheme as displayed by YaST powermanagement module # POWERSAVE_SCHEME_DESCRIPTION="Scheme optimized for good performance. Display standby mode and screensaver are disabled." ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "dynamic" ## Type: list(performance,powersave,dynamic) ## ServiceRestart: # # performance - The CPU stays always on highest supported frequency # powersave The CPU stays always on lowest supported frequency. # dynamic - The frequency is adjusted dynamically # according to the current CPU usage. # # These settings need CPU frequency scaling support by your # hardware e.g. SpeedStep(Intel), PowerNow(AMD) or similar # technologies. The preferred value is dynamic to gain good # performance and reduce heat and noise. # POWERSAVE_CPUFREQUENCY="dynamic" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "no" ## Type: yesno # # Allow throttling of the CPU # POWERSAVE_ALLOW_THROTTLING="no" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "50" ## Type: integer(0:80) # # Maximum throttling (in percent) of the CPU (if enabled). # POWERSAVE_MAX_THROTTLING="50" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "no" ## Type: yesno # # Will always throttle the CPU instead of only throttle on low CPU # usage. This is useful to increase battery lifetime specially on # machines with no CPU frequency scaling support. Be careful your # machine could be distinctly slower (depends on the percent throttled). # POWERSAVE_ALWAYS_THROTTLE="no" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "performance" ## Type: list(performance,powersave,aggressiv_powersave,off) # # Activates the Advanded Power Management function # of your IDE-disks, SCSI disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_STANDBY_MODE="off" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "performance" ## Type: list(performance,low,quiet,off) # # Activates the Acoustic management function # of your IDE-disks, only some IDE disks # support it, not supported disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_ACOUSTIC="off" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default "passive" ## Type: list(active,passive,off) # # Off - Disable thermal management # Active - The hardware is preferably cooled by the fan. # Passive - The hardware is preferably cooled through # throttling and other power saving/low-noise techniques # if the temperature raises over a limit defined by # your bios. This is sparsely supported by HW at the moment. # # The cooling policy is the preferred variable to adjust thermal management. # If not supported or for fine adjustence, use the variables below. POWERSAVE_COOLING_POLICY="active" ## Path: System/Powermanagement/Powersave/Scheme/Presentation ## Default 0 ## Type: integer(0:200) # # Use the variables to override the temperature trip point settings exported # by BIOS (in degree Celcius). # The number in the end defines the thermal zone for which the value should # be active. Use the powersave -T command to find out supported thermal zones # and their default trip point settings. A value of 0 will be ignored. # Active trip points are not supported at the moment as fans cannot # be controlled over ACPI on most machines. #POWERSAVE_THERMAL_CRITICAL_0="0" #POWERSAVE_THERMAL_HOT_0="0" #POWERSAVE_THERMAL_PASSIVE_0="0" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Description: Scheme that is by default optimized for \ ## low power drain. \ ## See the variables POWERSAVE_BATTERY_SCHEME \ ## and POWERSAVE_AC_SCHEME to let this scheme \ ## take place for either working on AC or Battery \ ## or both. ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "Powersave" ## Type: string # # Scheme name as displayed by YaST powermanagement module # POWERSAVE_SCHEME_NAME="Powersave" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "Scheme optimized to let maximum power savings take place." ## Type: string # # Description of the scheme as displayed by YaST powermanagement module # POWERSAVE_SCHEME_DESCRIPTION="Scheme optimized to let maximum power savings take place." ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "dynamic" ## Type: list(performance,powersave,dynamic) ## ServiceRestart: # # performance - The CPU stays always on highest supported frequency # powersave The CPU stays always on lowest supported frequency. # dynamic - The frequency is adjusted dynamically # according to the current CPU usage. # # These settings need CPU frequency scaling support by your # hardware e.g. SpeedStep(Intel), PowerNow(AMD) or similar # technologies. The preferred value is dynamic to gain good # performance and reduce heat and noise. # POWERSAVE_CPUFREQUENCY="dynamic" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "yes" ## Type: yesno # # Allow throttling of the CPU # POWERSAVE_ALLOW_THROTTLING="yes" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "50" ## Type: integer(0:80) # # Maximum throttling (in percent) of the CPU (if enabled). # POWERSAVE_MAX_THROTTLING="50" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "no" ## Type: yesno # # Will always throttle the CPU instead of only throttle on low CPU # usage. This is useful to increase battery lifetime specially on # machines with no CPU frequency scaling support. Be careful your # machine could be distinctly slower (depends on the percent throttled). # POWERSAVE_ALWAYS_THROTTLE="no" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "powersave" ## Type: list(performance,powersave,aggressiv_powersave,off) # # Activates the Advanded Power Management function # of your IDE-disks, SCSI disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_STANDBY_MODE="off" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "quiet" ## Type: list(performance,low,quiet,off) # # Activates the Acoustic management function # of your IDE-disks, only some IDE disks # support it, not supported disks will be omitted. # Setting this to "off" will skip this setting. # POWERSAVE_DISK_ACOUSTIC="off" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default "passive" ## Type: list(active,passive,off) # # Off - Disable thermal management # Active - The hardware is preferably cooled by the fan. # Passive - The hardware is preferably cooled through # throttling and other power saving/low-noise techniques # if the temperature raises over a limit defined by # your bios. This is sparsely supported by HW at the moment. # # The cooling policy is the preferred variable to adjust thermal management. # If not supported or for fine adjustence, use the variables below. POWERSAVE_COOLING_POLICY="passive" ## Path: System/Powermanagement/Powersave/Scheme/Powersave ## Default 0 ## Type: integer(0:200) # # Use the variables to override the temperature trip point settings exported # by BIOS (in degree Celcius). # The number in the end defines the thermal zone for which the value should # be active. Use the powersave -T command to find out supported thermal zones # and their default trip point settings. A value of 0 will be ignored. # Active trip points are not supported at the moment as fans cannot # be controlled over ACPI on most machines. #POWERSAVE_THERMAL_CRITICAL_0="0" #POWERSAVE_THERMAL_HOT_0="0" #POWERSAVE_THERMAL_PASSIVE_0="0" ## Path: System/Console/Framebuffer ## Description: Framebuffer configuration ## Type: string ## Default: "" # # You may want to load a framebuffer display driver into your kernel # in order to be able to change graphics modes etc. with fbset in # console mode. # # Notes: Most people won't enter anything here, as: # * it won't work if you have vesafb already active # * its advantageous to have fb support compiled into your kernel # * Some XFree86 drivers (especially in XFree86-4.x) don't work # too well, if you enable framebuffer text mode. # # Example: # FB_MODULES="matroxfb_base vesa=0x182 fv=85 matroxfb_maven matroxfb_crtc2" # FB_MODULES="" ## Type: string ## Default: "" # # In case your kernel has framebuffer support (or you loaded the framebuffer # support into your kernel as a module above), you may want to change the # resolution or other parameters. This is done by secifying the parameters # to fbset. Use a mode from /etc/fb-modes and additional parameters as # -a, -depth , -vyres , ... (See fbset manpage and/or fbset -h). # # Notes: # * vesafb does not (currently) support changing the display mode # * BEWARE! Don't set modes your monitor can't do. Watch out for the maximum # horizontal frequency. Old monitors might even be damaged if you exceed # their capabilities. # # Example: # FBSET_PARAMS="-a -depth 16 768x576-90 -vyres 10240" # FBSET_PARAMS="" ## Path: Hardware/Console ## Description: Text console settings (see also Hardware/Keyboard) ## Type: string ## Default: "" ## ServiceRestart: kbd # # Console settings. # Note: The KBD_TTY setting from Hardware/Keyboard (sysconfig/keyboard) # also applies for the settings here. # # Load this console font on bootup: # (/usr/share/kbd/consolefonts/) # CONSOLE_FONT="lat9w-16.psfu" ## Type: string ## Default: "" # # Some fonts come without a unicode map. # (.psfu fonts supposedly have it, others often not.) # You can then specify the unicode mapping of your font # explicitly. (/usr/share/kbd/unimaps/) # Normally not needed. # CONSOLE_UNICODEMAP="" ## Type: string ## Default: "" # # Most programs output 8 bit characters, so you need a table to # translate those characters into unicode. That one can be specified # here. (/usr/share/kbd/consoletrans/) # (Note: If your console is in utf-8 mode you don't need this.) # If your code does not use a unicode mapping at all (because you # e.g. explicitly specified UNICODEMAP="none") you may circumvent # the translation via unicode, but load a map which directly maps # 8 bit output of your program to a font position. # CONSOLE_SCREENMAP="trivial" ## Type: string ## Default: "" # # for some fonts the console has to be initialized with CONSOLE_MAGIC. # CONSOLE_MAGIC can be empty or have the values "(B", ")B", "(K" or ")K". # Normally not needed (automatically handled by setfont). # CONSOLE_MAGIC="(K" # Encoding used for output of non-ascii characters. # CONSOLE_ENCODING="UTF-8" ## Path: Applications/SuSEhelp ## Description: SuSE help system configuration ## Type: string(localhost) ## Default: localhost ## Config: ## ServiceRestart: ## Command: # # The name of the central server for the Online documentation # This should be a fully qualified host name, e.g. host.domain.top # To act as a server give here your own FQHOSTNAME # To act as client, set DOC_HOST to the name of the used server. # DOC_HOST="localhost" ## Type: string(localhost) ## Default: localhost ## Config: susehelp, apache ## ServiceRestart: apache ## Command: # # List of host/domain patterns for use with access restrictions for # apache, e.g. ".mydomain.top" to allow access from all hosts of domain # mydomain.top # DOC_ALLOW="localhost" ## Type: yesno ## Default: no ## Config: susehelp ## ServiceRestart: ## Command: # # Set this to yes if you want SuSEconfig to take care of refreshing the # index database for susehelp searching. This will be done after # installation of new packages and after changes of the DOC_* variables. # If set to no, you have to rebuild the databases yourself. # DOC_AUTOINDEX="no" ## Path: Desktop ## Description: Display font configuration ## Type: yesno ## Default: yes # # generate TTCap entries in fonts.dir, which can be used by # xtt/freetype font module # GENERATE_TTCAP_ENTRIES="yes" ## Path: System/Printing ## Description: Printer font configuration ## Type: yesno ## Default: no # # generate fontmaps for ghostscript # GENERATE_GHOSTSCRIPT_FONTMAPS="no" ## Path: Desktop ## Description: Display font configuration ## Type: yesno ## Default: yes # # generate font setup for OpenOffice # GENERATE_OOO_FONT_SETUP="yes" ## Path: System/Environment/Clock ## Description: Information about your timezone and time ## Type: string ## ServiceRestart: boot.clock # # Set to "-u" if your system clock is set to UTC, and to "--localtime" # if your clock runs that way. # HWCLOCK="--localtime" ## Type: string(Europe/Berlin,Europe/London,Europe/Paris) ## ServiceRestart: boot.clock # # Timezone (e.g. CET) # (this will set /usr/lib/zoneinfo/localtime) # TIMEZONE="Europe/Berlin" DEFAULT_TIMEZONE="US/Mountain" ## Path: System/File systems/Mdadm ## Description: Additional options for the mdadm daemon (see man mdadm(8)). ## Type: integer ## Default: 60 ## ServiceRestart: mdadm ## # # A delay in seconds between polling the md arrays. # MDADM_DELAY=60 ## Type: string ## Default: "" # # A mail address (or comma-separated list of mail addresses) to send alerts to. # MDADM_MAIL="root@localhost" ## Type: string ## Default: "" # # A program to be run whenever an event is detected. # MDADM_PROGRAM="" ## Type: string ## Default: "" # # Monitoring MD devices. # MDADM_RAIDDEVICES="" ## Type: yesno ## Default: yes # # "yes" for scanning config file or /proc/mdstat for missing information. # MDADM_SCAN=yes ## Type: string ## Default: "/etc/mdadm.conf" # # The config file. # MDADM_CONFIG="/etc/mdadm.conf" ## Path: Hardware/Mouse/Console ## Description: Console mouse configuration ## ServiceRestart: gpm # ## Type: string(/dev/input/mice,/dev/psaux) ## Default: "" # # The mouse device used on the console by gpm. # The default value is generated by YaST. # MOUSEDEVICE="/dev/input/mice" # The GPM mouse type, e.g. "ps2" # MOUSETYPE="exps2" ## Type: string ## Default: "" # # You can define your own options to start gpm here. If the variable is empty # then the gpm will start with the option "-m $MOUSEDEVICE -t $MOUSETYPE" # GPM_PARAM="" ## Type: string(raw,imps2,ms,ms3,msc,mman,ps2,syn,synps2) ## Default: "" # # Define type of repeating for gpm. This is usually needed when you want to # use gpm together with XFree. All mouse data will be repeated in fifo # /dev/gpmdata. Use "raw" for repeating same data as received by gpm. # GPM_REPEAT="" # The full name of the attached mouse. # FULLNAME="IntelliMouse Explorer (ps2)" # The YaST-internal identifier of the attached mouse. # YAST_MOUSE="22_exps2" # Mouse device used for the X11 system. # XMOUSEDEVICE="/dev/input/mice" # The number of buttons of the attached mouse. # BUTTONS="0" # The number of wheels of the attached mouse. # WHEELS="1" # Shall the emulate-3-buttons-mode be turned on under X11? # XEMU3="no" # The mouse type under X11, e.g. "ps/2" # XMOUSETYPE="ExplorerPS/2" ## Path: Network/Proxy ## Description: ## Type: yesno ## Default: no ## Config: kde,profiles # # Enable a generation of the proxy settings to the profile. # This setting allows to turn the proxy on and off while # preserving the particular proxy setup. # PROXY_ENABLED="no" ## Type: string ## Default: "" # # Some programs (e.g. lynx, arena and wget) support proxies, if set in # the environment. SuSEconfig can add these environment variables to # /etc/SuSEconfig/* (sourced by /etc/profile etc.) - # See http://portal.suse.com/sdb/en/1998/01/lynx_proxy.html for more details. # Example: HTTP_PROXY="http://proxy.provider.de:3128/" HTTP_PROXY="" ## Type: string ## Default: "" # # Example: FTP_PROXY="http://proxy.provider.de:3128/" # FTP_PROXY="" ## Type: string ## Default: "" # # Example: GOPHER_PROXY="http://proxy.provider.de:3128/" # GOPHER_PROXY="" ## Type: string(localhost) ## Default: localhost # # Example: NO_PROXY="www.me.de, do.main, localhost" # NO_PROXY="localhost" ## Path: Hardware/Soundcard ## Description: Additional options for the sound system. ## Type: yesno ## Default: yes ## ServiceReload: alsasound # # Load ALSA sequencer modules at boot-up? (yes/no) # Sequencer modules are necessary only for handling MIDI devices. # If you don't need MIDI, leave here no. (The modules can be loaded # even automatically if necessary.) # LOAD_SEQUENCER="yes" ## Type: string ## Default: "" # # The file name of SoundFont file to be loaded at boot # If you need to load a specific SoundFont file for SB AWE32, SB Live! # and Audigy series, set the file name (or path) of the file here. # SOUNDFONT_FILES="" ## Type: yesno ## Default: yes # # Load OSS-emulation modules at boot-up? (yes/no) # OSS-emulation modules are needed If you use OSS applications # with ALSA drivers. This option specifies whether these modules are # loaded at boot-time by alsasound init script. # Safe to leave yes here. # LOAD_OSS_EMUL_MODULES="yes" ## Path: Applications/TeX ## Description: ## Type: yesno ## Default: no ## Command: # # The automatical font generation of the TeX/LaTeX systems do # locate the bitmap font into the directory /var/cache/fonts/. # If CLEAR_TEXMF_FONTS is set to "yes" then this directory # will be cleared from fonts not used in the last 20 days. # CLEAR_TEXMF_FONTS="no" ## Path: Network/Subversion/svnserve ## Description: Basic configuration for svnserve ## Type: string ## Default "-d -R -r /srv/svn/repos" # # default options for the svnserve process # it is recommended to provide only readonly access to your data. # there is no authentication possible, everyone can read and write at will # read the subversion documentation about more info # SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"  . .. SuSEfirewall2-rpcinfo SuSEfirewall2-showlog SuSEfirewall2-bashhashSuSEfirewall2-batchSuSEfirewall2-qdiscSuSEfirewall2-custom$SuSEfirewall2-oldbroadcastSuSEfirewall2-openSuSEfirewall2-autointerface.sh#!/usr/bin/perl -w # SuSEfirewall2-rpcinfo - helper script for SuSEfirewall2 # Copyright (C) 2004 SUSE Linux AG # Copyright (C) 2005 SUSE Linux Products GmbH # # Author: Ludwig Nussel # # Please send feedback via http://www.suse.de/feedback # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # determine ports of RPC services specified on the command line and print them # as iptables command line parameters. Only services that are actually running # and are running as root are printed. use strict; #use Data::Dumper; if ($#ARGV < 0) { print STDERR "Usage: $0 \n\n"; exit 1; } # { # 'ypbind' => [ # { # 'udp' => [ # 979 # ], # 'tcp' => [ # 982 # ], # 'sport' => '666:777', # 'net' => '10.10.0.1/32' # }, # } my %services; foreach my $service (@ARGV) { my @a = split(/,/,$service); if( $#a == 0) { push @{$services{$service}}, {}; } elsif ($#a >= 2 && $a[1] eq '_rpc_') { my %h = (); $h{'net'} = $a[0] if($a[0] && length($a[0])); $h{'sport'} = $a[3] if($a[3] && length($a[3])); push @{$services{$a[2]}}, \%h; } } my %udpports = (); my %tcpports = (); # collect registered rpc services open (RPCINFO, '/usr/sbin/rpcinfo -p localhost|') or die; ; # header line while() { chomp; my @line = split; next if($#line < 4); next unless (exists $services{$line[4]}); if($line[2] eq 'udp') { $udpports{$line[3]} = $line[4]; } elsif($line[2] eq 'tcp') { $tcpports{$line[3]} = $line[4]; } } close RPCINFO; # @param file # @param hashref sub getportsfor($$) { my ($proto, $href) = @_; # check if the registered ports are actually used and whether they are # owned by a process running as root open (FILE, '<', "/proc/net/$proto") or die; ; # header line my $ret = 0; while() { chomp; my @line = split; next if($line[7] != 0); # only root allowed my ($addr, $port) = split(/:/, $line[1], 2); $port = pack('H*', $port); # "007B" => "\x00\x7B" $port = unpack('n', $port); # "\x00\x7B" => 0x007B if(exists $href->{$port}) { ++$ret; foreach my $h (@{$services{$href->{$port}}}) { push @{$h->{$proto}}, $port; } } } close FILE; # always also add portmapper if($ret && !exists $services{'portmapper'}) { push @{$services{'portmapper'}}, { tcp => [111], udp => [111] }; } } getportsfor('udp', \%udpports); getportsfor('tcp', \%tcpports); #print Dumper(\%services); foreach my $l (values %services) { foreach my $h (@$l) { foreach my $proto (('udp', 'tcp')) { if(exists($h->{$proto})) { foreach my $port (@{$h->{$proto}}) { print "-p $proto --dport $port"; print " --sport ".$h->{'sport'} if exists $h->{'sport'}; print " -s ".$h->{'net'} if exists $h->{'net'}; print "\n"; } } } } } #!/usr/bin/perl use strict; use Sys::Hostname; use Net::DNS; my $res; if($#ARGV >= 0 && $ARGV[0] eq '-N') { $res = Net::DNS::Resolver->new; $res->tcp_timeout(10); $res->udp_timeout(10); $res->persistent_tcp(1); $res->persistent_udp(1); shift @ARGV; } if($#ARGV < 0) { $ARGV[0] = '/var/log/messages'; } elsif($ARGV[0] eq '--help' || $ARGV[0] eq '-h') { print "Usage: $0 FILES\n"; print " /var/log/messages will be used if no file is specified\n"; print " specify - as file to read from STDIN\n"; exit 0; } elsif($ARGV[0] eq '-') { shift @ARGV; } my %dnscache; sub dnsresolve($) { my $ip = shift; return $dnscache{$ip} if(exists $dnscache{$ip}); my $query = $res->search($ip); if ($query) { my $a; foreach my $rr (grep { $_->type eq 'PTR' } $query->answer) { $a = $rr->ptrdname; } if($a) { $dnscache{$ip} = $a; return $a; } } return $ip; } my $hostname = hostname; my ($sflog,$src,$dst,$spt,$dpt,$interface,$proto); format STDOUT = @<<<<<<<<<<<<<<< @<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>>>>>@<<<<< @|||||| @>>>>>>>>>>>>>>>>>>>>>>>>>>>@<<<<< $sflog, $proto, $src, $spt, $interface, $dst,$dpt . while(<>) { next unless /^.*$hostname kernel: SFW2/; chomp; s/^.*$hostname kernel: //; s/OPT \((.*)\)/OPT=$1/; my @arr = split(/ /); $sflog = shift @arr; $sflog =~ s/^SFW2-//; my %tags = map { my @a = split(/=/,$_,2); $a[0] => $a[1]; } @arr; $src = $tags{SRC}; $dst = $tags{DST}; $src = dnsresolve($src) if($res && $src); $dst = dnsresolve($dst) if($res && $dst); $src = '['.$src.']' if($src =~ /:/); $dst = '['.$dst.']' if($dst =~ /:/); $spt = ':'.$tags{SPT} if($tags{SPT}); $dpt = ':'.$tags{DPT} if($tags{DPT}); $proto = lc $tags{PROTO}; if($tags{IN}) { $interface = '> '.$tags{IN}; } else { $interface = $tags{OUT}.' >'; } $spt = ' '.$tags{TYPE} if ($proto =~ /ICMP.*/); $src =~ s/(.*):.*:.*:.*:(.*:.*:.*:.*)/$1...$2/; $dst =~ s/(.*):.*:.*:.*:(.*:.*:.*:.*)/$1...$2/; write; } # vim: sw=4 #!/bin/bash # SuSEfirewall2-bashhash - hash emulation in bash # Copyright (C) 2004 SUSE LINUX Products GmbH # # Author: Ludwig Nussel # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # isn't that sick? hashlookup() { local h hmatch key q if [ "$1" = "-q" ]; then q=1 shift fi h="hash_$1" key="$2" eval hmatch="\$hash_match_$h" case "$key" in *\ *|*-*|*/*) return 1 ;; esac eval "case $key in $hmatch) [ -z "$q" ] && eval echo '\$hash_key_${h}_$key' return 0 ;; esac" return 1 } hashadd() { local h hmatch key val h="hash_$1" key="$2" val="$3" eval hmatch="\$hash_match_$h" case $key in $hmatch) ;; *) if [ -z "$hmatch" ]; then eval hash_match_$h="\"\$key\"" else eval hash_match_$h="\"\$hmatch|\$key\"" fi ;; esac eval hash_key_${h}_$key="\$val" } hashallkeys() { local h hmatch i h="hash_$1" eval hmatch="\$hash_match_$h" IFS="|" eval echo "\$hmatch" } if [ "$1" = "test" ]; then hashadd h "foo" "bar" hashadd h "bla" "blub" hashadd h "red" "blue" hashadd h "green" "yellow" for i in ${!hash*}; do eval echo \"$i=\$$i\" done hashlookup h foo || echo foo not in hash hashlookup h blue || echo blue not in hash hashlookup h green || echo green not in hash hashlookup -q h green || echo green not in hash hashlookup h "x y" || echo "\"x y\" invalid" hashlookup h x-y || echo "x-y invalid" echo -n "all keys: " hashallkeys h fi # vim:sw=4 #!/bin/bash # SuSEfirewall2-batch - batchmode support functions # Copyright (C) 2004 SUSE LINUX Products GmbH # # Author: Ludwig Nussel # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA check_iptables_batch() { if [ -n "$USE_IPTABLES_BATCH" ]; then IPTABLES_BATCH=`type -p iptables-batch` IP6TABLES_BATCH=`type -p ip6tables-batch` if [ -z "$IPTABLES_BATCH" ]; then echo "iptables-batch missing, batch support disabled." USE_IPTABLES_BATCH="" elif [ -z "$IP6TABLES_BATCH" ]; then echo "ip6tables-batch missing, batch support disabled." USE_IPTABLES_BATCH="" fi fi # override iptables calls with shell function if in batch mode if [ -n "$USE_IPTABLES_BATCH" ]; then iptables_batchfile=`mktemp -t SuSEfirewall2_iptables.XXXXXXXX` || exit 1 removeonexit "$iptables_batchfile" exec 4> "$iptables_batchfile" echo "#!$IPTABLES_BATCH" >&4 iptables() { local i echo -n "iptables" >&4 for i in "$@"; do echo -n " \"$i\""; done >&4 echo >&4 } ip6tables_batchfile=`mktemp -t SuSEfirewall2_ip6tables.XXXXXXXX` || exit 1 removeonexit "$ip6tables_batchfile" exec 6> "$ip6tables_batchfile" echo "#!$IP6TABLES_BATCH" >&6 ip6tables() { local i echo -n "ip6tables" >&6 for i in "$@"; do echo -n " \"$i\""; done >&6 echo >&6 } fi } commit_iptables_batch() { if [ -n "$USE_IPTABLES_BATCH" ]; then iptables-batch "$iptables_batchfile" ip6tables-batch "$ip6tables_batchfile" fi } # vim: sw=4 #!/bin/bash # SuSEfirewall2-qdisc - upstream tuning # Copyright (C) 2004 SUSE LINUX Products GmbH # # Author: Uwe Gansert # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # tune the upload stream a little bit # with DSL for example, you have the problem, that your # downstream collapses if your upstream is full. # After this tuning this should not happen anymore. # interactive SSH and VPN are faster too, because they # get some extra bandwidth besides the bulk traffic # # variabel from sysconfig: # FW_HTB_TUNE_DEV="DEV1,BANDWIDTH1 DEV2,BANDWIDTH2 ..." # # any questions about this to uwe.gansert@suse.de # do_qdisc_settings() { if [ -n "$FW_HTB_TUNE_DEV" ]; then modprobe sch_htb 2> /dev/null fi clear_qdisc_settings for DEVICE_DATA in $FW_HTB_TUNE_DEV; do IFS="," read DEV BANDWIDTH < <(echo "$DEVICE_DATA") DEV=`getdevinfo "$DEV"` || continue # sanity check if [ -n "$DEV" -a -n "$BANDWIDTH" ]; then # reserve about 15% for small packets (TCP ACK), # interactive SSH from and to us and DNS querys. # We don't need too much bandwidth but we need it fast. SMALL_PACKET_BW=$(( $BANDWIDTH / 7 )) if [ "$SMALL_PACKET_BW" -eq 0 ]; then warning "illegal bandwidth settings for $DEV in FW_HTB_TUNE_DEV" fi # reserve 25% for VPN traffic. Never mind if we don't have # a VPN. No bandwidth will be wasted VPN_BW=$(( $BANDWIDTH / 4 )) if [ "$VPN_BW" -eq 0 ];then warning "illegal bandwidth settings for $DEV in FW_HTB_TUNE_DEV" fi # bulk traffic REST_BW=$(( ${BANDWIDTH}-${SMALL_PACKET_BW}-${VPN_BW} )) $TC qdisc add dev $DEV root handle 1:0 htb default 20 # adding the queing discipline # adding the root class 1:1 $TC class add dev $DEV parent 1:0 classid 1:1 htb \ rate ${BANDWIDTH}kbit ceil ${BANDWIDTH}kbit # class for small tcp packets 1:10 $TC class add dev $DEV parent 1:1 classid 1:10 htb \ rate ${SMALL_PACKET_BW}kbit ceil ${BANDWIDTH}kbit prio 0 quantum 3000 # and interactive SSH # class for VPN traffic 1:11 $TC class add dev $DEV parent 1:1 classid 1:11 htb \ rate ${VPN_BW}kbit ceil ${BANDWIDTH}kbit prio 1 quantum 3000 # class for all the rest 1:20 $TC class add dev $DEV parent 1:1 classid 1:20 htb \ rate ${REST_BW}kbit ceil ${BANDWIDTH}kbit prio 2 quantum 3000 # packets, marked with "10" to queue 1:10 $TC filter add dev $DEV parent 1:0 prio 0 protocol ip \ handle 10 fw flowid 1:10 # packets, marked with "11" to queue 1:11 $TC filter add dev $DEV parent 1:0 prio 1 protocol ip \ handle 11 fw flowid 1:11 # iptables marks small TCP packets (potentially ACK) # with 10, so "tc" will send them to queue 1:10 $IPTABLES -A POSTROUTING -t mangle -o $DEV -p tcp \ -m length --length :64 -j MARK --set-mark 10 # iptables marks SSH interactive ssh traffic # with 10 too. So it gets to queue 1:10 like $IPTABLES -A POSTROUTING -t mangle -o $DEV -p tcp \ -m tos --tos Minimize-Delay \ -m tcp --dport 22 -j MARK --set-mark 10 # like the rule above, but this time we are # the sshd and want to respond fast, even when $IPTABLES -A POSTROUTING -t mangle -o $DEV -p tcp \ -m tos --tos Minimize-Delay \ -m tcp --sport 22 -j MARK --set-mark 10 # same like above for DNS $IPTABLES -A POSTROUTING -t mangle -o $DEV -p udp \ -m udp --dport 53 -j MARK --set-mark 10 $IPTABLES -A POSTROUTING -t mangle -o $DEV -p tcp \ -m tcp --dport 53 -j MARK --set-mark 10 # iptables marks VPN traffic with 11 # if we don't have VPN, never mind, no bandwidth # will be wastet and if we need more, then it'll be # be "borrowed" from the other queues $IPTABLES -A POSTROUTING -t mangle -o $DEV -p 50 \ -j MARK --set-mark 11 else warning "illegal settings in FW_HTB_TUNE_DEV=\"$FW_HTB_TUNE_DEV\", skipped device \"$DEV\"" fi done } # vim: sw=4 # # Authors: Marc Heuse , # Volker Kuhlmann # # /etc/sysconfig/scripts/SuSEfirewall2-custom # # ------------------------------------------------------------------------ # # This is file is for SuSEfirewall2 and is an example for using # the hooks which are supplied to load customized ipchains rules. # # THERE IS NO HELP FOR USING HOOKS EXCEPT THIS FILE ! SO READ CAREFULLY ! # IT IS USEFUL TO CROSS-READ /sbin/SuSEfirewall2 TO SEE HOW HOOKS WORK ! # # ------------------------------------------------------------------------ fw_custom_before_antispoofing() { # these rules will be loaded before any anti spoofing rules will be # loaded. Effectively the only filter lists already effective are # 1) allow any traffic via the loopback interface, 2) allow DHCP stuff, # 3) allow SAMBA stuff [2 and 3 only if FW_SERVICE_... are set to "yes"] # You can use this hook to prevent logging of uninteresting broadcast # packets or to allow certain packet through the anti-spoofing mechanism. #example: allow incoming multicast packets for any routing protocol #iptables -A INPUT -j ACCEPT -d 224.0.0.0/24 true } fw_custom_after_antispoofing() { # could also be named "before_port_splitting()" # these rules will be loaded after the anti-spoofing and icmp handling # but before any IP protocol or TCP/UDP port allow/protection rules # will be set. # You can use this hook to allow/deny certain IP protocols or TCP/UDP # ports before the SuSEfirewall2 generated rules are hit. #example: always filter backorifice/netbus trojan connect requests and log them. #for target in LOG DROP; do # for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do # iptables -A $chain -j $target -p tcp --dport 31337 # iptables -A $chain -j $target -p udp --dport 31337 # iptables -A $chain -j $target -p tcp --dport 12345:12346 # iptables -A $chain -j $target -p udp --dport 12345:12346 # done #done true } fw_custom_before_port_handling() { # these rules will be loaded after the anti-spoofing and icmp handling # and after the input has been redirected to the input_XXX and # forward_XXX chains and some basic chain-specific anti-circumvention # rules have been set, # but before any IP protocol or TCP/UDP port allow/protection rules # will be set. # You can use this hook to allow/deny certain IP protocols or TCP/UDP # ports before the SuSEfirewall2 generated rules are hit. true } fw_custom_before_masq() { # could also be named "after_port_handling()" # these rules will be loaded after the IP protocol and TCP/UDP port # handling, but before any IP forwarding (routing), masquerading # will be done. # NOTE: reverse masquerading is before directly after # fw_custom_before_port_handling !!!! # You can use this hook to ... hmmm ... I'm sure you'll find a use for # this ... true } fw_custom_before_denyall() { # could also be named "after_forwardmasq()" # these are the rules to be loaded after IP forwarding and masquerading # but before the logging and deny all section is set by SuSEfirewall2. # You can use this hook to prevent the logging of annoying packets. #example: prevent logging of talk requests from anywhere #for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do # iptables -A $chain -j DROP -p udp --dport 517:518 #done true } #!/bin/sh # # SuSEfirewall2-oldbroadcast - helper script for SuSEfirewall2 # Copyright (C) 2005 SUSE LINUX Products GmbH # # Author: Ludwig Nussel # # Please send feedback via http://www.suse.de/feedback # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Convert obsolete FW_ALLOW_FW_BROADCAST and FW_IGNORE_FW_BROADCAST into new # variables. Attention: do not use any special functions as this script is also # used in post-install of SuSEfirewall2! # convert_old_broadcast() { local i zone for i in $FW_ALLOW_FW_BROADCAST; do case "$i" in no) ;; yes) warning "FW_ALLOW_FW_BROADCAST=yes is obsolete, use FW_ALLOW_FW_BROADCAST_{INT,EXT,DMZ}=yes instead" for zone in INT EXT DMZ; do eval FW_ALLOW_FW_BROADCAST_$zone=yes done ;; int) warning "FW_ALLOW_FW_BROADCAST=$i is obsolete, use FW_ALLOW_FW_BROADCAST_INT=yes instead" FW_ALLOW_FW_BROADCAST_INT=yes ;; ext) warning "FW_ALLOW_FW_BROADCAST=$i is obsolete, use FW_ALLOW_FW_BROADCAST_EXT=yes instead" FW_ALLOW_FW_BROADCAST_EXT=yes ;; dmz) warning "FW_ALLOW_FW_BROADCAST=$i is obsolete, use FW_ALLOW_FW_BROADCAST_DMZ=yes instead" FW_ALLOW_FW_BROADCAST_DMZ=yes ;; *) warning "FW_ALLOW_FW_BROADCAST=$i is obsolete, use FW_ALLOW_FW_BROADCAST_{INT,EXT,DMZ}=$i instead" for zone in INT EXT DMZ; do eval FW_ALLOW_FW_BROADCAST_$zone="$i" done ;; esac done unset FW_ALLOW_FW_BROADCAST # backward compat for i in $FW_IGNORE_FW_BROADCAST; do case "$i" in no) ;; yes) warning "FW_IGNORE_FW_BROADCAST=yes is obsolete, use FW_IGNORE_FW_BROADCAST_{INT,EXT,DMZ}=yes instead" for zone in INT EXT DMZ; do eval FW_IGNORE_FW_BROADCAST_$zone=yes done ;; int) warning "FW_IGNORE_FW_BROADCAST=$i is obsolete, use FW_IGNORE_FW_BROADCAST_INT=yes instead" FW_IGNORE_FW_BROADCAST_INT=yes ;; ext) warning "FW_IGNORE_FW_BROADCAST=$i is obsolete, use FW_IGNORE_FW_BROADCAST_EXT=yes instead" FW_IGNORE_FW_BROADCAST_EXT=yes ;; dmz) warning "FW_IGNORE_FW_BROADCAST=$i is obsolete, use FW_IGNORE_FW_BROADCAST_DMZ=yes instead" FW_IGNORE_FW_BROADCAST_DMZ=yes ;; *) warning "FW_IGNORE_FW_BROADCAST=$i is obsolete, use FW_IGNORE_FW_BROADCAST_{INT,EXT,DMZ}=$i instead" for zone in INT EXT DMZ; do eval FW_IGNORE_FW_BROADCAST_$zone="$i" done ;; esac done unset FW_IGNORE_FW_BROADCAST } #!/usr/bin/perl -w use strict; my $config = '/etc/sysconfig/SuSEfirewall2'; my $tmpconfig = $config.'.new'; my %zones = map { $_ => 1} ( 'INT', 'EXT', 'DMZ' ); my %types = map { $_ => 1} ( 'TCP', 'UDP', 'IP', 'RPC' ); if($#ARGV < 2) { print "USAGE: $0 \n\n"; print "where ZONE is one of ".join(' ', keys %zones)."\n"; print "and TYPE is one of ".join(' ', keys %types)."\n"; exit 1 } my ($zone, $type); $zone = shift; $type = shift; if(!exists $zones{$zone}) { print "$zone is not a valid zone, must be one of ".join(' ', keys %zones)."\n"; exit 1 } if(!exists $types{$type}) { print "$type is not a valid type, must be one of ".join(' ', keys %types)."\n"; exit 1 } my $var = 'FW_SERVICES_'.$zone.'_'.$type; open(CONF,"<$config") or die "Unable to open file $config"; open(OUT,">$tmpconfig") or die "Unable to open file $tmpconfig"; while() { if(/^$var=/) { s/^$var=//; my $fc = ''; if(/^(['"])/) { $fc = substr $_, 0, 1; $_ = substr $_, 1; } foreach my $service (@ARGV) { $_ = $service.' '.$_ unless ($_ =~ /\W$service\W/) } print OUT "$var=$fc$_"; } else { print OUT; } } close OUT; close CONF; rename $tmpconfig, $config or die "can't rename file $tmpconfig to $config"; exit 0 #!/bin/bash # # SuSEfirewall2-autointerface.sh - helper script for SuSEfirewall2 # Copyright (C) 2004 SUSE Linux AG # # Author: Ludwig Nussel # # Please send feedback via http://www.suse.de/feedback # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # determine which network devices are internal and which are external # # The external device is always the one where the default route points at. If # there is no default route, then there is also no external device. # # Active devices except the external one are considered as candidates for # internal. Devices that are configured for pppoe in # /etc/sysconfig/network/ifcfg-dsl* are removed from the active list. If only # one device is left after that filter, it's considered as internal. # # => only one external and one internal possible # => if you only have one device with no default route it's internal # # All packets that arrive on devices that are neither internal nor external # will be dropped by the firewall # print the device where the default route points at get_default_route_dev() { while read line; do set -- $line [ "$1" != default ] && continue; # interface name comes after a "dev" token while [ "$1" != dev -a $# -gt 0 ]; do shift; done if [ "$1" = dev ]; then echo $2 break; fi done < <(ip route show) } # print active interfaces except lo get_active_interfaces() { while read line; do set -- $line case "$3" in *UP*) dev=${2%%:} [ "$dev" != "lo" ] && echo $dev ;; esac done < <(ip -o link show) } # first parameter is device to filter from rest of arguments filter_one_dev() { filter="$1" shift if [ -z "$filter" ]; then echo "$@" return; fi for i in "$@"; do [ "$filter" = "$i" ] && continue echo $i done } # filter devices for which a pppoe link is configured. exit with status 1 if # more than one device is left filter_pppoe_devs() { for i in /etc/sysconfig/network/ifcfg-dsl*; do . $i [ -z "$DEVICE" -o $PPPMODE != pppoe ] && continue if [ -x "/sbin/getcfg-interface" ] && ! ip link show dev "$DEVICE" > /dev/null 2>&1; then DEVICE=`/sbin/getcfg-interface "$DEVICE"` || continue fi set -- `filter_one_dev "$DEVICE" "$@"` done echo "$@" [ "$#" -gt 1 ] && return 1 return 0 } shopt -s nullglob internal= external=`get_default_route_dev` # all active devices active=`get_active_interfaces` # active devices except the default route device filtered=`filter_one_dev "$external" $active` # active devices minus pppoe devices filtered2=`filter_pppoe_devs $filtered` [ "$?" = 0 ] && internal=$filtered2 echo "External: $external" echo "Internal: $internal" #echo "Active: $active" #echo "Filtered: $filtered" #echo "Filtered2: $filtered2" ## Path: System/Boot ## Description: Boot configuration ## ServiceReload: boot.scsidev ## Type: string ## Default: "-r -q" # # SCSIDEV_ARGS # This entry sets the arguments passed to scsidev for scanning # for SCSI devices on bootup and populating /dev/scsi/ with # persistent device names. See scsidev manpage. # SCSIDEV_ARGS="-r -q" ## Path: System/Backup ## Description: ## Type: string(/var/adm/backup/rpmdb) ## Default: /var/adm/backup/rpmdb ## Config: # # If you want cron.daily to backup the rpm database, specify a directory # where the backups will be stored. (This is recommended!) The backups # will be made every time cron.daily is called and the db has changed. # Setting the variable to "" disables this feature. # RPMDB_BACKUP_DIR="/var/adm/backup/rpmdb" ## Type: integer ## Default: 5 # # Here you can set the maximum number of backup files for the rpm # database. # MAX_RPMDB_BACKUPS="5" ## Type: string ## Default: /var/adm/backup/rpmdb # # If you want cron.daily to backup /etc/rc.config and the files in # /etc/sysconfig, specify a directory where the backups will be stored. # (This is recommended!) The backups will be made every time cron.daily is # called and the the content of those files has changed. # Setting the variable to "" disables this feature. # RCCONFIG_BACKUP_DIR="/var/adm/backup/rpmdb" ## Type: integer ## Default: 5 # # Here you can set the maximum number of backup files for the rc.config files. # MAX_RCCONFIG_BACKUPS="5" ## Path: System/File systems/Autofs ## Description: Additional options for the autofs daemon. ## Type: string ## Default: "" ## ServiceReload: autofs # # autofs daemon options (e.g. --timeout 60) # AUTOFS_OPTIONS="" # Copyright (c) 2000-2002 SuSE GmbH Nuernberg, Germany. All rights reserved. # Copyright (c) 2003,2004 SuSE Linux AG Nuernberg, Germany. All rights reserved. # Copyright (c) 2005 SUSE LINUX Products GmbH Nuernberg, Germany. All rights reserved. # # Author: Marc Heuse, 2002 # Ludwig Nussel, 2004 # # /etc/sysconfig/SuSEfirewall2 # # for use with /sbin/SuSEfirewall2 version 3.3 # # ------------------------------------------------------------------------ # # PLEASE NOTE THE FOLLOWING: # # Just by configuring these settings and using the SuSEfirewall2 you # are not secure per se! There is *not* such a thing you install and # hence you are safed from all (security) hazards. # # To ensure your security, you need also: # # * Secure all services you are offering to untrusted networks # (internet) You can do this by using software which has been # designed with security in mind (like postfix, vsftpd, ssh), # setting these up without misconfiguration and praying, that # they have got really no holes. SuSEcompartment can help in # most circumstances to reduce the risk. # * Do not run untrusted software. (philosophical question, can # you trust SuSE or any other software distributor?) # * Check the security of your server(s) regulary # * If you are using this server as a firewall/bastion host to the # internet for an internal network, try to run proxy services # for everything and disable routing on this machine. # * If you run DNS on the firewall: disable untrusted zone # transfers and either don't allow access to it from the # internet or run it split-brained. # # Good luck! # # Yours, # SuSE Security Team # # ------------------------------------------------------------------------ # # Configuration HELP: # # If you have got any problems configuring this file, take a look at # /usr/share/doc/packages/SuSEfirewall2/EXAMPLES or use YaST # # # If you are a end-user who is NOT connected to two networks (read: you have # got a single user system and are using a dialup to the internet) you just # have to configure (all other settings are OK): 2) and maybe 9). # # If this server is a firewall, which should act like a proxy (no direct # routing between both networks), or you are an end-user connected to the # internet and to an internal network, you have to setup your proxys and # reconfigure (all other settings are OK): 2), 3), 9) and maybe 7), 11), 14) # # If this server is a firewall, and should do routing/masquerading between # the untrusted and the trusted network, you have to reconfigure (all other # settings are OK): 2), 3), 5), 6), 9), and maybe 7), 10), 11), 12), 13), # 14) # # If you want to run a DMZ in either of the above three standard setups, you # just have to configure *additionally* 4), 9), 12), 13), 18) # # Please note that if you use service names, they have to exist in # /etc/services. There is for example no service "dns", it's called # "domain"; email is called "smtp" etc. # # ------------------------------------------------------------------------ ## Path: Network/Firewall/SuSEfirewall2 ## Description: SuSEfirewall2 configuration ## Type: string ## Default: any # # 2.) # Which are the interfaces that point to the internet/untrusted # networks? # # Enter all untrusted network devices here # # Format: space separated list of interface or configuration names # # The special keyword "auto" means to use the device of the default # route. "auto" cannot be mixed with other interface names. # # The special keyword "any" means that packets arriving on interfaces not # explicitly configured as int, ext or dmz will be considered external. Note: # this setting only works for packets destined for the local machine. If you # want forwarding or masquerading you still have to add the external interfaces # individually. "any" can be mixed with other interface names. # # Examples: "eth-id-00:e0:4c:9f:61:9a", "ippp0 ippp1", "auto", "any dsl0" # # Note: alias interfaces (like eth0:1) are ignored # FW_DEV_EXT="eth-id-00:04:23:b7:27:c6" ## Type: string # # 3.) # Which are the interfaces that point to the internal network? # # Enter all trusted network interfaces here. If you are not # connected to a trusted network (e.g. you have just a dialup) leave # this empty. # # Format: space separated list of interface or configuration names # # Examples: "eth-id-00:e0:4c:9f:61:9a", "tr0", "eth0 eth1" # FW_DEV_INT="" ## Type: string # # 4.) # Which are the interfaces that point to the dmz or dialup network? # # Enter all the network devices here which point to the dmz/dialups. # A "dmz" is a special, seperated network, which is only connected # to the firewall, and should be reachable from the internet to # provide services, e.g. WWW, Mail, etc. and hence is at risk from # attacks. See /usr/share/doc/packages/SuSEfirewall2/EXAMPLES for an # example. # # Note: You have to configure FW_FORWARD to define the services # which should be available to the internet and set FW_ROUTE to yes. # # Format: space separated list of interface or configuration names # # Examples: "eth-id-00:e0:4c:9f:61:9a", "tr0", "eth0 eth1" # FW_DEV_DMZ="" ## Type: yesno ## Default: no # # 5.) # Should routing between the internet, dmz and internal network be # activated? # # Set this to "yes" if you either want to masquerade internal # machines or allow access to the dmz (or internal machines, but # this is not a good idea). # # This option overrides IP_FORWARD from # /etc/sysconfig/network/options # # Setting this option one alone doesn't do anything. Either activate # masquerading with FW_MASQUERADE below if you want to masquerade # your internal network to the internet, or configure FW_FORWARD to # define what is allowed to be forwarded. You also need to define # internal or dmz interfaces in FW_DEV_INT or FW_DEV_DMZ. # # defaults to "no" if not set # FW_ROUTE="no" ## Type: yesno ## Default: no # # 6.) # Do you want to masquerade internal networks to the outside? # # Requires: FW_DEV_INT or FW_DEV_DMZ, FW_ROUTE, FW_MASQ_DEV # # "Masquerading" means that all your internal machines which use # services on the internet seem to come from your firewall. Please # note that it is more secure to communicate via proxies to the # internet than to use masquerading. # # This option is required for FW_MASQ_NETS and FW_FORWARD_MASQ. # # defaults to "no" if not set # FW_MASQUERADE="no" ## Type: string ## Default: $FW_DEV_EXT # # 6a.) # You must also define on which interfaces to masquerade on. Those # are usually the same as the external interfaces. Most users can # leave the default. # # Examples: "ippp0", "$FW_DEV_EXT" # FW_MASQ_DEV="$FW_DEV_EXT" ## Type: string ## Default: 0/0 # # Which internal computers/networks are allowed to access the # internet via masquerading (not via proxys on the firewall)? # # Format: space separated list of # [,,[,port[:port]] # # If the protocol is icmp then port is interpreted as icmp type # # Examples: - "0/0" unrestricted access to the internet # - "10.0.0.0/8" allows the whole 10.0.0.0 network with # unrestricted access. # - "10.0.1.0/24,0/0,tcp,80 10.0.1.0/24,0/0,tcp,21" allows # the 10.0.1.0 network to use www/ftp to the internet. - # - "10.0.1.0/24,0/0,tcp,1024:65535 10.0.2.0/24" the # 10.0.1.0/24 network is allowed to access unprivileged # ports whereas 10.0.2.0/24 is granted unrestricted # access. # FW_MASQ_NETS="0/0" ## Type: yesno ## Default: no # # 7.) # Do you want to protect the firewall from the internal network? # Requires: FW_DEV_INT # # If you set this to "yes", internal machines may only access # services on the firewall you explicitly allow. If you set this to # "no", any internal user can connect (and attack) any service on # the firewall. # # defaults to "yes" if not set # FW_PROTECT_FROM_INT="no" ## Type: string # # 9.) # Which TCP services _on the firewall_ should be accessible from # untrusted networks? # # Enter all ports or known portnames below, seperated by a space. # TCP services (e.g. SMTP, WWW) must be set in FW_SERVICES_*_TCP, and # UDP services (e.g. syslog) must be set in FW_SERVICES_*_UDP. # e.g. if a webserver on the firewall should be accessible from the internet: # FW_SERVICES_EXT_TCP="www" # e.g. if the firewall should receive syslog messages from the dmz: # FW_SERVICES_DMZ_UDP="syslog" # For IP protocols (like GRE for PPTP, or OSPF for routing) you need to set # FW_SERVICES_*_IP with the protocol name or number (see /etc/protocols) # # Format: space separated list of ports, port ranges or well known # service names (see /etc/services) # # Examples: "ssh", "123 514", "3200:3299", "ftp 22 telnet 512:514" # FW_SERVICES_EXT_TCP="" ## Type: string # # Which UDP services _on the firewall_ should be accessible from # untrusted networks? # # see comments for FW_SERVICES_EXT_TCP # # Example: "53" # FW_SERVICES_EXT_UDP="" ## Type: string # # Which UDP services _on the firewall_ should be accessible from # untrusted networks? # # Usually for VPN/Routing which END at the firewall # # Example: "esp" # FW_SERVICES_EXT_IP="" ## Type: string # # Which RPC services _on the firewall_ should be accessible from # untrusted networks? # # Port numbers of RPC services are dynamically assigned by the # portmapper. Therefore "rpcinfo -p localhost" has to be used to # automatically determine the currently assigned port for the # services specified here. # # USE WITH CAUTION! # regular users can register rpc services and therefore may be able # to have SuSEfirewall2 open arbitrary ports # # Example: "mountd nfs" FW_SERVICES_EXT_RPC="" ## Type: string # # see comments for FW_SERVICES_EXT_TCP FW_SERVICES_DMZ_TCP="" ## Type: string # # see comments for FW_SERVICES_EXT_UDP FW_SERVICES_DMZ_UDP="" ## Type: string # # see comments for FW_SERVICES_EXT_IP FW_SERVICES_DMZ_IP="" ## Type: string # # see comments for FW_SERVICES_EXT_RPC FW_SERVICES_DMZ_RPC="" ## Type: string # # see comments for FW_SERVICES_EXT_TCP FW_SERVICES_INT_TCP="" ## Type: string # # see comments for FW_SERVICES_EXT_UDP FW_SERVICES_INT_UDP="" ## Type: string # # see comments for FW_SERVICES_EXT_IP FW_SERVICES_INT_IP="" ## Type: string # # see comments for FW_SERVICES_EXT_RPC FW_SERVICES_INT_RPC="" ## Type: string # # Packets to silently drop without log message # # Format: space separated list of net,protocol[,port][,sport] # Example: "0/0,tcp,445 0/0,udp,4662" # # The special value _rpc_ is recognized as protocol and means that dport is # interpreted as rpc service name. See FW_SERVICES_EXT_RPC for # details. # FW_SERVICES_DROP_EXT="" ## Type: string ## Default: 0/0,tcp,113 # # Packets to silently reject without log message. Common usage is # TCP port 113 which if dropped would cause long timeouts when # sending mail or connecting to IRC servers. # # Format: space separated list of net,protocol[,dport][,sport] # Example: "0/0,tcp,113" # # The special value _rpc_ is recognized as protocol and means that dport is # interpreted as rpc service name. See FW_SERVICES_EXT_RPC for # details. # FW_SERVICES_REJECT_EXT="0/0,tcp,113" ## Type: string ## Default: 0/0,tcp,113 # # Services to allow. This is a more generic form of FW_SERVICES_{IP,UDP,TCP} # and more specific than FW_TRUSTED_NETS # # Format: space separated list of net,protocol[,dport][,sport] # Example: "0/0,tcp,22" # # The special value _rpc_ is recognized as protocol and means that dport is # interpreted as rpc service name. See FW_SERVICES_EXT_RPC for # details. # FW_SERVICES_ACCEPT_EXT="" ## Type: string # # 10.) # Which services should be accessible from 'trusted' hosts or nets? # # Define trusted hosts or networks (doesn't matter whether they are internal or # external) and the services (tcp,udp,icmp) they are allowed to use. This can # be used instead of FW_SERVICES_* for further access restriction. Please note # that this is no replacement for authentication since IP addresses can be # spoofed. Also note that trusted hosts/nets are not allowed to ping the # firewall until you also permit icmp. # # Format: space separated list of network[,protocol[,port]] # in case of icmp, port meanswxyz{|}~ the icmp type # # Example: "172.20.1.1 172.20.0.0/16 1.1.1.1,icmp 2.2.2.2,tcp,22" # FW_TRUSTED_NETS="" ## Type: string ## Default: # # 11.) # Specify which ports are allowed to access unprivileged ports (>1023) # # Format: yes, no or space separated list of ports # # You may either allow everyone from anyport access to your highports ("yes"), # disallow anyone ("no"), anyone who comes from a defined port (portnumber or # known portname). Note that this is easy to circumvent! The best choice is to # keep this option unset or set to 'no' # # defaults to "no" if not set (good choice) # FW_ALLOW_INCOMING_HIGHPORTS_TCP="" ## Type: string ## Default: # # See FW_ALLOW_INCOMING_HIGHPORTS_TCP # # defaults to "no" if not set (good choice) FW_ALLOW_INCOMING_HIGHPORTS_UDP="" ## Type: string # # 13.) # Which services or networks are allowed to be routed through the # firewall, no matter which zone they are in? # Requires: FW_ROUTE # # With this option you may allow access to e.g. your mailserver. The # machines must have valid, non-private, IP addresses which were # assigned to you by your ISP. This opens a direct link to the # specified network, so please think twice befor using this option! # # Format: space separated list of # ,[,protocol[,port[,flags]]] # # If the protocol is icmp then port is interpreted as icmp type # # The only flag currently supported is 'ipsec' which means to only # match packets that originate from an IPsec tunnel # # Examples: - "1.1.1.1,2.2.2.2" allow the host 1.1.1.1 to access any # service on the host 2.2.2.2 # - "3.3.3.3/16,4.4.4.4/24" allow the network 3.3.3.3/16 # to access any service in the network 4.4.4.4/24 # - "5.5.5.5,6.6.6.6,igmp" allow routing of IGMP messages # from 5.5.5.5 to 6.6.6.6 # - "0/0,0/0,udp,514" always permit udp port 514 to pass # the firewall # - "192.168.1.0/24,10.10.0.0/16,,,ipsec \ # 10.10.0.0/16,192.168.1.0/24,,,ipsec" permit traffic # from 192.168.1.0/24 to 10.10.0.0/16 and vice versa # provided that both networks are connected via an # IPsec tunnel. FW_FORWARD="" ## Type: string # # 14.) # Which services accessed from the internet should be allowed to masqueraded # servers (on the internal network or dmz)? # Requires: FW_ROUTE # # With this option you may allow access to e.g. your mailserver. The # machines must be in a masqueraded segment and may not have public # IP addesses! Hint: if FW_DEV_MASQ is set to the external interface # you have to set FW_FORWARD from internal to DMZ for the service as # well to allow access from internal! # # Please note that this should *not* be used for security reasons! # You are opening a hole to your precious internal network. If e.g. # the webserver there is compromised - your full internal network is # compromised! # # Format: space separated list of # ,,,[,redirect port,[destination ip]] # # Protocol must be either tcp or udp # # Examples: - "4.0.0.0/8,10.0.0.10,tcp,80" forward all tcp request on # port 80 coming from the 4.0.0.0/8 network to the # internal server 10.10.0.10 # - "4.0.0.0/8,10.0.0.10,tcp,80,81" forward all tcp request on # port 80 coming from the 4.0.0.0/8 network to the # internal server 10.10.0.10 on port 81 # - "200.200.200.0/24,10.0.0.10,tcp,80,81,202.202.202.202" # the network 200.200.200.0/24 trying to access the # address 202.202.202.202 on port 80 will be forwarded # to the internal server 10.0.0.10 on port 81 # # Note: du to inconsitent iptables behaviour only port numbers are possible but # no service names (https://bugzilla.netfilter.org/bugzilla/show_bug.cgi?id=273) # FW_FORWARD_MASQ="" ## Type: string # # 15.) # Which accesses to services should be redirected to a local port on # the firewall machine? # # This option can be used to force all internal users to surf via # your squid proxy, or transparently redirect incoming webtraffic to # a secure webserver. # # Format: list of [,,[,dport[:lport]] # Where protocol is either tcp or udp. dport is the original # destination port and lport the port on the local machine to # redirect the traffic to # # An exclamation mark in front of source or destination network # means everything EXCEPT the specified network # # Example: "10.0.0.0/8,0/0,tcp,80,3128 0/0,172.20.1.1,tcp,80,8080" # # Note: contrary to previous SuSEfirewall2 versions it is no longer necessary # to additionally open the local port FW_REDIRECT="" ## Type: yesno ## Default: yes # # 16.) # Which kind of packets should be logged? # # When set to "yes", packages that got dropped and are considered # 'critical' will be logged. Such packets include for example # spoofed packets, tcp connection requests and certain icmp types. # # defaults to "yes" if not set # FW_LOG_DROP_CRIT="yes" ## Type: yesno ## Default: no # # whether all dropped packets should be logged # # Note: for broadcasts to be logged you also need to set # FW_IGNORE_FW_BROADCAST_* to 'no' # # defaults to "no" if not set # FW_LOG_DROP_ALL="no" ## Type: yesno ## Default: yes # # When set to "yes", packages that got accepted and are considered # 'critical' will be logged. Such packets include for example tcp # connection requests, rpc connection requests, access to high # udp/tcp port and forwarded pakets. # # defaults to "yes" if not set # FW_LOG_ACCEPT_CRIT="yes" ## Type: yesno ## Default: no # # whether all accepted packets should be logged # # Note: setting this to 'yes' causes _LOTS_ of log entries and may # fill your disk quickly. It also disables FW_LOG_LIMIT # # defaults to "no" if not set # FW_LOG_ACCEPT_ALL="no" ## Type: string # # How many packets per time unit get logged for each logging rule. # When empty a default of 3/minute is used to prevent port scans # flooding your log files. For desktop usage it's a good idea to # have the limit, if you are using logfile analysis tools however # you might want to disable it. # # Set to 'no' to disable the rate limit. Setting FW_LOG_ACCEPT_ALL # to 'yes' disables this option as well. # # Format: a digit and suffix /second, /minute, /hour or /day FW_LOG_LIMIT="" ## Type: string # # iptables logging option. Must end with --log-prefix and some prefix # characters # # only change this if you know what you are doing! FW_LOG="" ## Type: yesno ## Default: yes # # 17.) # Do you want to enable additional kernel TCP/IP security features? # If set to yes, some obscure kernel options are set. # (icmp_ignore_bogus_error_responses, icmp_echoreply_rate, # icmp_destunreach_rate, icmp_paramprob_rate, icmp_timeexeed_rate, # ip_local_port_range, log_martians, mc_forwarding, mc_forwarding, # rp_filter, routing flush) # Tip: Set this to "no" until you have verified that you have got a # configuration which works for you. Then set this to "yes" and keep it # if everything still works. (It should!) ;-) # # Choice: "yes" or "no", if not set defaults to "yes" # FW_KERNEL_SECURITY="yes" ## Type: yesno ## Default: no # # 18.) # Keep the routing set on, if the firewall rules are unloaded? # REQUIRES: FW_ROUTE # # Choices "yes" or "no", if not set defaults to "no" # FW_STOP_KEEP_ROUTING_STATE="no" ## Type: yesno ## Default: yes # # 19.) # Allow the firewall to reply to icmp echo requests # # defaults to "no" if not set # FW_ALLOW_PING_FW="yes" ## Type: yesno ## Default: no # # 19a.) # Allow hosts in the dmz to be pinged by internal and external hosts # REQUIRES: FW_ROUTE # # defaults to "no" if not set # FW_ALLOW_PING_DMZ="no" ## Type: yesno ## Default: no # # 19b.) # Allow external hosts to be pinged from internal or dmz hosts # REQUIRES: FW_ROUTE # # defaults to "no" if not set # FW_ALLOW_PING_EXT="no" ## # END of /etc/sysconfig/SuSEfirewall2 ## # # #-------------------------------------------------------------------------# # # # EXPERT OPTIONS - all others please don't change these! # # # #-------------------------------------------------------------------------# # # ## Type: yesno ## Default: yes # # 21.) # Allow ICMP sourcequench from your ISP? # # If set to yes, the firewall will notice when connection is choking, however # this opens yourself to a denial of service attack. Choose your poison. # # Defaults to "yes" if not set # FW_ALLOW_FW_SOURCEQUENCH="" ## Type: string(yes,no) # # 22.) # Allow IP Broadcasts? # # Whether the firewall allows broadcasts packets. # Broadcasts are used for e.g. for Netbios/Samba, RIP, OSPF and Games. # # If you want to drop broadcasts however ignore the annoying log entries, set # FW_IGNORE_FW_BROADCAST_* to yes. # # Note that if you allow specifc ports here it just means that broadcast # packets for that port are not dropped. You still need to set # FW_SERVICES_*_UDP to actually allow regular unicast packets to # reach the applications. # # Format: either # - "yes" or "no" # - list of udp destination ports # # Examples: - "631 137" allow broadcast packets on port 631 and 137 # to enter the machine but drop any other broadcasts # - "yes" do not install any extra drop rules for # broadcast packets. They'll be treated just as unicast # packets in this case. # - "no" drop all broadcast packets before other filtering # rules # # defaults to "no" if not set # FW_ALLOW_FW_BROADCAST_EXT="no" ## Type: string # # see comments for FW_ALLOW_FW_BROADCAST_EXT FW_ALLOW_FW_BROADCAST_INT="no" ## Type: string # # see comments for FW_ALLOW_FW_BROADCAST_EXT FW_ALLOW_FW_BROADCAST_DMZ="no" ## Type: string(yes,no) # # Suppress logging of dropped broadcast packets. Useful if you don't allow # broadcasts on a LAN interface. # # This setting only affects packets that are not allowed according # to FW_ALLOW_FW_BROADCAST_* # # Format: either # - "yes" or "no" # - list of udp destination ports # # Examples: - "631 137" silently drop broadcast packets on port 631 and 137 # - "yes" do not log dropped broadcast packets # - "no" log all dropped broadcast packets # # # defaults to "no" if not set FW_IGNORE_FW_BROADCAST_EXT="yes" ## Type: string # # see comments for FW_IGNORE_FW_BROADCAST_EXT FW_IGNORE_FW_BROADCAST_INT="no" ## Type: string # # see comments for FW_IGNORE_FW_BROADCAST_EXT FW_IGNORE_FW_BROADCAST_DMZ="no" ## Type: yesno ## Default: no # # 23.) # Allow same class routing per default? # REQUIRES: FW_ROUTE # # Do you want to allow routing between interfaces of the same class # (e.g. between all internet interfaces, or all internal network interfaces) # be default (so without the need setting up FW_FORWARD definitions)? # # Choice: "yes" or "no", if not set defaults to "no" # # Defaults to "no" if not set # FW_ALLOW_CLASS_ROUTING="" ## Type: string # # 25.) # Do you want to load customary rules from a file? # # This is really an expert option. NO HELP WILL BE GIVEN FOR THIS! # READ THE EXAMPLE CUSTOMARY FILE AT /etc/sysconfig/scripts/SuSEfirewall2-custom # #FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom" FW_CUSTOMRULES="" ## Type: yesno ## Default: no # # 26.) # Do you want to REJECT packets instead of DROPing? # # DROPing (which is the default) will make portscans and attacks much # slower, as no replies to the packets will be sent. REJECTing means, that # for every illegal packet, a connection reject packet is sent to the # sender. # # Choice: "yes" or "no", if not set defaults to "no" # # Defaults to "no" if not set # FW_REJECT="" ## Type: string # # 27.) # Tuning your upstream a little bit via HTB (Hierarchical Token Bucket) # for more information about HTB see http://www.lartc.org # # If your download collapses while you have a parallel upload, # this parameter might be an option for you. It manages your # upload stream and reserves bandwidth for special packets like # TCP ACK packets or interactive SSH. # It's a list of devices and maximum bandwidth in kbit. # For example, the german TDSL account, provides 128kbit/s upstream # and 768kbit/s downstream. We can only tune the upstream. # # Example: # If you want to tune a 128kbit/s upstream DSL device like german TDSL set # the following values: # FW_HTB_TUNE_DEV="dsl0,125" # where dsl0 is your pppoe device and 125 stands for 125kbit/s upstream # # you might wonder why 125kbit/s and not 128kbit/s. Well practically you'll # get a better performance if you keep the value a few percent under your # real maximum upload bandwidth, to prevent the DSL modem from queuing traffic in # it's own buffers because queing is done by us now. # So for a 256kbit upstream # FW_HTB_TUNE_DEV="dsl0,250" # might be a better value than "dsl0,256". There is no perfect value for a # special kind of modem. The perfect value depends on what kind of traffic you # have on your line but 5% under your maximum upstream might be a good start. # Everthing else is special fine tuning. # If you want to know more about the technical background, # http://tldp.org/HOWTO/ADSL-Bandwidth-Management-HOWTO/ # is a good start # FW_HTB_TUNE_DEV="" ## Type: list(no,drop,reject) ## Default: drop # # 28.) # What to do with IPv6 Packets? # # On older kernels ip6tables was not stateful so it's not possible to implement # the same features as for IPv4 on such machines. For these there are three # choices: # # - no: do not set any IPv6 rules at all. Your Host will allow any IPv6 # traffic unless you setup your own rules. # # - drop: drop all IPv6 packets. This is the default if stateful matching is # not available. # # - reject: reject all IPv6 packets # # Disallowing IPv6 packets may lead to long timeouts when connecting to IPv6 # Adresses. See FW_IPv6_REJECT_OUTGOING to avoid this. # # Leave empty to automatically detect whether your kernel supports stateful matching. # FW_IPv6="" ## Type: yesno ## Default: yes # # 28a.) # Reject outgoing IPv6 Packets? # # Set to yes to avoid timeouts because of dropped IPv6 Packets. This Option # does only make sense with FW_IPv6 != no # # Defaults to "yes" if not set # FW_IPv6_REJECT_OUTGOING="" ## Type: list(yes,no,int,ext,dmz) ## Default: no # # 29.) # Trust level of IPsec packets. # # You do not need to change this if you do not intend to run # services that should only be available trough an IPsec tunnel. # # The value specifies how much IPsec packets are trusted. 'int', 'ext' or 'dmz' # are the respective zones. 'yes' is the same as 'int. 'no' means that IPsec # packets belong to the same zone as the interface they arrive on. # # Note: you still need to explicitely allow IPsec traffic. # Example: # FW_IPSEC_TRUST="int" # FW_SERVICES_EXT_IP="esp" # FW_SERVICES_EXT_UDP="isakmp" # FW_PROTECT_FROM_INT="no" # # Defaults to "no" if not set # FW_IPSEC_TRUST="no" ## Type: string ## Default: # # 30.) # Define additional firewall zones # # The built-in zones INT, EXT and DMZ must not be listed here. Names # of additional zones must only contain lowercase ascii characters. # To define rules for the additional zone, take the approriate # variable for a built-in zone and substitute INT/EXT/DMZ with the # name of the additional zone. # # Example: # FW_ZONES="wlan" # FW_DEV_wlan="wlan0" # FW_SERVICES_wlan_TCP="80" # FW_ALLOW_FW_BROADCAST_wlan="yes" # FW_ZONES=""  . ..  skel(hwcfg-vpid-8086-1076-1028-016d$hwcfg-bus-pci-0000:03:0b.00(hwcfg-disk-id-SATA_TEAC_DVD-ROM_DV-28E-C(hwcfg-vpid-1000-0030-1028-016cscripts"(hwcfg-vpid-8086-24db-1028-016c#(hwcfg-vpid-8086-24d2-1028-016c$config%(hwcfg-vpid-8086-3590-1028-016c&hwcfg-static-printer'(hwcfg-vpid-8086-24dd-1028-016c((hwcfg-vpid-8086-24d4-1028-016c)(hwcfg-vpid-8086-1010-8086-1012*4*hwcfg-disk-id-SSEAGATE_ST373207LC_3KT3AC2Z+(hwcfg-vpid-8086-24d7-1028-016c,hwcfg-vpid-8086-0329-hwcfg-vpid-8086-0330.hwcfg-vpid-8086-0332/hwcfg-vpid-8086-032a0hwcfg-vpid-8086-244e1hwcfg-vpid-8086-24d02hwcfg-vpid-8086-35953hwcfg-vpid-8086-35974hwcfg-vpid-8086-35985hwcfg-vpid-8086-3599  .  ..  hwcfg-ctc  hwcfg-lcs hwcfg-iucv hwcfg-qeth hwcfg-zfcphwcfg-dasd-eckd#!/bin/sh # # hwcfg-ctc # # Default configuration for a ctc device # $Id: hwcfg-ctc 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="ctc" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. SCRIPTUP="hwup-ccw" SCRIPTUP_ccw="hwup-ccw" SCRIPTUP_ccwgroup="hwup-ctc" SCRIPTDOWN="hwdown-ccw" # CCW_CHAN_IDS sets the channel IDs for this device # The first ID will be used as the group ID CCW_CHAN_IDS="0.0.0600 0.0.0601" # CCW_CHAN_NUM set the number of channels for this device # Always 2 for a CTC device CCW_CHAN_NUM=2 # CCW_CHAN_MODE sets the protocol for CTC / ESCON # 0 for compability mode (default) # 1 for extended mode # 2 for CTC-based tty # 3 for compability mode with OS/390 and z/OS # CCW_CHAN_MODE=0 #!/bin/sh # # hwcfg-lcs # # Default configuration for a lcs device # $Id: hwcfg-lcs 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="lcs" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. SCRIPTUP="hwup-ccw" SCRIPTUP_ccw="hwup-ccw" SCRIPTUP_ccwgroup="hwup-lcs" SCRIPTDOWN="hwdown-ccw" # CCW_CHAN_IDS sets the channel IDs for this device # The first ID will be used as the group ID CCW_CHAN_IDS="0.0.0600 0.0.0601" # CCW_CHAN_NUM set the number of channels for this device # Always 2 for a LCS device CCW_CHAN_NUM=2 # CCW_CHAN_MODE sets the port number for LCS # 0 is the default port # CCW_CHAN_MODE=0 #!/bin/bash # # hwcfg-iucv # # Default configuration for an iucv device # $Id: hwcfg-iucv 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="netiucv" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. SCRIPTUP="hwup-iucv" SCRIPTDOWN="hwdown-iucv" #!/bin/sh # # hwcfg-qeth # # Default configuration for a qeth device # $Id: hwcfg-qeth 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="qeth_mod" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. SCRIPTUP="hwup-ccw" SCRIPTUP_ccw="hwup-ccw" SCRIPTUP_ccwgroup="hwup-qeth" SCRIPTDOWN="hwdown-ccw" # CCW_CHAN_IDS sets the channel IDs for this device # The first ID will be used as the group ID CCW_CHAN_IDS="0.0.0500 0.0.0501 0.0.0502" # CCW_CHAN_NUM set the number of channels for this device # Always 3 for an qeth device CCW_CHAN_NUM=3 # CCW_CHAN_MODE sets the port name for an OSA-Express device # CCW_CHAN_MODE="Z44LAN01" # QETH_OPTIONS sets additional options for the OSA-Express or # HiperSockets device. Valid parameters are: # add_hhlen buffer_count broadcast_mode canonical_macaddr checksumming # fake_broadcast fake_ll priority_queueing route4 route6 # QETH_OPTIONS="fake_ll=1" # QETH_IPA_TAKEOVER enables IP address takeover for this device # QETH_IPA_TAKEOVER=0 #!/bin/sh # # hwcfg-zfcp # # Default configuration for a zfcp device # $Id: hwcfg-zfcp 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="zfcp" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. # If called manually the event is set to 'up'. SCRIPTUP="hwup-ccw" SCRIPTUP_ccw="hwup-ccw" SCRIPTUP_scsi_host="hwup-zfcp" SCRIPTDOWN="hwdown-scsi" SCRIPTDOWN_scsi="hwdown-zfcp" # CCW_CHAN_IDS sets the channel IDs for this device # If not set or empty the channel ID from the file name # is used # CCW_CHAN_IDS="" # CCW_CHAN_NUM set the number of channels for this device # If not set it or empty default to '1' # CCW_CHAN_NUM=1 # fcp LUNs configured for this adapter. # Note that IBM ESS (aka 'Shark') ignores # all but the first 4 charaters of the # fcp LUN. ZFCP_LUNS=" 0x5005076300c590a9:0x0000000000000000 0x5005076300c590a9:0x0001000000000000" #!/bin/sh # # hwcfg-dasd-eckd # # Default configuration for a DASD device (ECKD mode) # $Id: hwcfg-dasd-eckd 1069 2004-09-02 18:23:18Z zoz $ # STARTMODE="auto" MODULE="dasd_eckd_mod" MODULE_OPTIONS="" MODULE_UNLOAD="yes" # Scripts to be called for the various events. SCRIPTUP="hwup-ccw" SCRIPTUP_ccw="hwup-ccw" SCRIPTDOWN="hwdown-ccw" # CCW_CHAN_NAME sets the name of the channel device as found in # sysfs/bus/ccw/drivers # if different from the configuration name. # This is a configuration for DASD devices in ECKD mode CCW_CHAN_NAME=dasd-eckd # CCW_CHAN_NUM set the number of channels for this device # We can use the default of 1 # CCW_CHAN_NUM=1 # DASD_USE_DIAG selects whether DIAG access should be enabled # for this device. 1 enables, 0 disables DIAG access. # DASD_USE_DIAG=0 # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='e1000' MODULE_OPTIONS_0='' MODULE='e1000' MODULE_OPTIONS='' STARTMODE='auto' DEVICE='hda' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='mptscsih' MODULE_OPTIONS_0='' MODULE_1='mptbase' MODULE_OPTIONS_1=''  .  .. hwup-iucv hwup-qeth hwup-zfcpchandev-to-hwcfg.sh hwdown-scsi hwdown-zfcp functionshwup-ccwhwup-ctc hwup-lcs!$ hwdown-ccw#!/bin/bash # # Configures a IUCV interface. # $Id: hwup-iucv 1069 2004-09-02 18:23:18Z zoz $ # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config if test -z "$SYSFS"; then message sysfs not mounted, aborting. exit 1 fi # Check whether the netiucv module is loaded _iucv_dir=${SYSFS}/bus/iucv/drivers/netiucv if [ ! -d "$_iucv_dir" ] ; then # Check for older kernels _iucv_dir=${SYSFS}/bus/iucv/drivers/NETIUCV if [ ! -d "$_iucv_dir" ]; then message "IUCV device not initialized !" exit 1 fi fi # Check whether this link is already established for _dev in ${SYSFS}/bus/iucv/devices/*; do if [ -d "$_dev" ] ; then read _link < $_dev/user if test "$_link" = "$HWD_ID" ; then message "IUCV device (link partner $HWD_ID) already established!" HWD_ID= break fi fi done if test -n "$HWD_ID" ; then echo "$HWD_ID" > $_iucv_dir/connection message "IUCV device (link partner $HW_ID) configured" fi # EOF #!/bin/bash # # hwup-qeth # $Id: hwup-qeth 1069 2004-09-02 18:23:18Z zoz $ # # Configuration script for OSA/Express devices # Sets the portname if configured and # sets the adapter online # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi if [ -z "$DEVPATH" ]; then message "no device path given, aborting." exit 1 fi # Read in the configuration file . ./hwcfg-${HWDESC} # Set sysfs paths _ccwgroup_dir=${SYSFS}${DEVPATH} # Check whether the channel group is configured message_n "Configuring device ${_ccwgroup_dir##*/}: " if test -d "$_ccwgroup_dir" ; then read _online < $_ccwgroup_dir/online # We do not check for the value of CCW_CHAN_MODE, since we # might want to switch back and forth between several modes if test "$_online" -eq "0" ; then # Set the portname if [ "$CCW_CHAN_MODE" ]; then message_n "(portname $CCW_CHAN_MODE) " echo "$CCW_CHAN_MODE" > $_ccwgroup_dir/portname fi # Enable IP address takeover if [ "$QETH_IPA_TAKEOVER" ]; then if [ "$QETH_IPA_TAKEOVER" = "1" ]; then message_n "(IP takeover) " echo 1 > $_ccwgroup_dir/ipa_takeover/enable fi fi # Set additional options if [ "$QETH_OPTIONS" ]; then for opt in $QETH_OPTIONS; do saved_IFS="$IFS" IFS='=' set -- $opt opt_name=$1 opt_val=$2 IFS="$saved_IFS" if [ "$opt_name" -a "$opt_val" ]; then case "$opt_name" in add_hhlen|broadcast_mode|canonical_macaddr|\ checksumming|fake_broadcast|fake_ll|\ priority_queueing|route4|route6|buffer_count) message_n "($opt_name) " echo "$opt_val" > $_ccwgroup_dir/$opt_name ;; *) # Skip invalid names ;; esac fi done fi echo "1" > $_ccwgroup_dir/online message "ok." else message "already online." fi else message "not available." fi #EOF #!/bin/bash # # Configures a zfcp lun. # # The hardware description should look like # -- # e.g. # 'hwup-zfcp lun-zfcp-0.0.f900' # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config # Check for variables if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi if [ -z "$HWD_DEVICEPATH" ]; then message "no device path given, aborting." exit 1 fi # Read in the configuration file . ./hwcfg-${HWDESC} # Set sysfs paths _zfcp_dir=${HWD_DEVICEPATH} # Check whether a device ID was given if [ -z "$ZFCP_LUNS" ]; then # Nothing to configure message "$SCRIPTNAME: No zfcp luns available for configuration" exit 1; fi # Check whether the adapter is available if [ ! -d "$_zfcp_dir" ]; then message "$SCRIPTNAME: zfcp adapter ${HWD_BUSID} is not available" exit 1 fi # Check whether the adapter is configured _zfcp_online=$(cat "${_zfcp_dir}/online") if [ "$_zfcp_online" = "0" ]; then message "$SCRIPTNAME: zfcp adapter ${HWD_BUSID} is not configured" exit 1 fi # Configure all wwpn/lun settings for _zfcp_dev in $ZFCP_LUNS; do _zfcp_wwpn=`echo $_zfcp_dev | sed -n 's/:.*//p'` _zfcp_lun=`echo $_zfcp_dev | sed -n 's/.*://p'` # Check whether the wwpn is already configured _zfcp_wwpn_dir="${_zfcp_dir}/${_zfcp_wwpn}" if [ ! -d "${_zfcp_wwpn_dir}" ]; then echo "$_zfcp_wwpn" > ${_zfcp_dir}/port_add fi # Re-check whether it exists now if [ ! -d "${_zfcp_wwpn_dir}" ] ; then message "$SCRIPTNAME: No WWPN ${_zfcp_wwpn} for zfcp adapter ${HWD_BUSID}" else # Check and configure the zfcp-lun if [ ! -d "${_zfcp_wwpn_dir}/${_zfcp_lun}" ] ; then echo "$_zfcp_lun" > ${_zfcp_wwpn_dir}/unit_add fi fi done # EOF #!/bin/bash # # Converts lines from /etc/chandev.conf to hwcfg-files. # # This is for debugging. # DEBUG=1 if [ -z "$DEBUG" ]; then HWCFG_DIR=/etc/sysconfig/hardware CHANDEV=/etc/chandev.conf else CHANDEV=$1 HWCFG_DIR="." fi if [ ! -f "$CHANDEV" ]; then # Nothing to be done exit 0 fi # What a bastard retval=0 saved_IFS="$IFS" IFS="," while read; do _line="$REPLY" set -- $REPLY if [ -n "$1" ]; then _devname=${1%%[1234567890]*} echo -n "Converting parameter $1: " shift case "$_devname" in qeth*) _read_chan=$(($1)) _write_chan=$(($2)) _data_chan=$(($3)) if [ "$_write_chan" -ne $(expr $_read_chan + 1) -o \ "$_data_chan" -ne $(expr $_read_chan + 2) ]; then echo "Channel IDs not consecutive, cannot convert." echo "Entry was:" echo "$_line" retval=1 break; fi shift; shift; shift; if [ $# -gt 0 ]; then if [ $1 -ne 0 ] ; then _memsize=$1 fi shift; fi if [ $# -gt 0 ] ; then if [ $1 -ne -1 -a $1 -ne 0 ] ; then _portno=$1 fi fi if [ "$_read_chan" -lt "$_write_chan" ]; then CFG_ID="$_read_chan" else CFG_ID="$_write_chan" fi if [ "$CFG_ID" -gt "$_data_chan" ]; then CFG_ID="$_data_chan" fi _begin_id=$(printf "%04x" $CFG_ID) eval CFGNAME[$CFG_ID]="hwcfg-qeth-bus-ccw-0.0.$_begin_id" eval MODULE[$CFG_ID]="qeth_mod" eval STARTMODE[$CFG_ID]="auto" eval CCW_CHAN_NAME[$CFG_ID]="qeth" eval CCW_CHAN_NUM[$CFG_ID]=3 eval CCW_CHAN_IDS[$CFG_ID]="\"0.0.$(printf "%04x" $_read_chan) 0.0.$(printf "%04x" $_write_chan) 0.0.$(printf "%04x" $_data_chan)\"" eval SCRIPT_up[$CFG_ID]="hwup-ccw" eval SCRIPT_ccw[$CFG_ID]="hwup-ccw" eval SCRIPT_ccwgroup[$CFG_ID]="hwup-qeth" eval SCRIPT_down[$CFG_ID]="hwdown-ccw" CFG_LIST="${CFG_LIST:+$CFG_LIST }$CFG_ID" _entry="$_line" echo "ok." ;; ctc*|escon*|lcs*) _read_chan=$(($1)) _write_chan=$(($2)) if [ "$_write_chan" -ne $(expr $_read_chan + 1) ]; then echo "Channel IDs not consecutive, cannot convert." echo "Entry was:" echo "$_line" retval=1 break; fi shift; shift; if [ $# -gt 0 ]; then if [ $1 -ne 0 ]; then _memsize=$1 fi shift fi if [ $# -gt 0 ]; then if [ $1 -ne 0 ]; then _port=$1 fi shift fi if [ $# -gt 0 ]; then if [ $1 -ne 0 ]; then _checksum=$1 fi shift fi if [ $# -gt 0 ] && [ $1 -ne 0 ]; then _use_stats=$1 fi if [ "$_read_chan" -lt "$_write_chan" ]; then CFG_ID="$_read_chan" else CFG_ID="$_write_chan" fi _begin_id=$(printf "%04x" $CFG_ID) eval CFGNAME[$CFG_ID]="hwcfg-$_devname-bus-ccw-0.0.$_begin_id" eval MODULE[$CFG_ID]="ctc" eval STARTMODE[$CFG_ID]="auto" eval CCW_CHAN_NAME[$CFG_ID]=cu3088 eval CCW_CHAN_NUM[$CFG_ID]=2 eval CCW_CHAN_IDS[$CFG_ID]="\"0.0.$(printf "%04x" $_read_chan) 0.0.$(printf "%04x" $_write_chan)\"" eval CCW_CHAN_MODE[$CFG_ID]="$_port" eval SCRIPT_up[$CFG_ID]="hwup-ccw" eval SCRIPT_ccw[$CFG_ID]="hwup-ccw" eval SCRIPT_ccwgroup[$CFG_ID]="hwup-ctc" eval SCRIPT_down[$CFG_ID]="hwdown-ccw" CFG_LIST="${CFG_LIST:+$CFG_LIST }$CFG_ID" _entry="$_line" echo "ok." ;; add_parm*) _chan_type=$1 if [ $(($_chan_type)) -ne $((0x10)) ]; then echo "Unhandled device type $_chan_type in add_parms!" retval=1 continue fi case $2 in 0x*) shift _begin_id=$1 shift _end_id=$1 ;; *) _begin_id=0 _end_id=$((0xFFFF)) ;; esac while shift; do case $1 in portname*) _port=${1#portname:} for _id in $CFG_LIST; do if [ $(($_id > $_begin_id)) ] && [ $((_id < $_end_id)) ] ; then eval CCW_CHAN_MODE[$_id]="$_port" fi done echo -n "(portname: $_port) " ;; *) if [ "$1" ]; then echo -n "($1: ignored) " fi ;; esac done echo "ok." _entry="$_entry;$_line" ;; noauto*) echo "ignored." ;; use_devno_names*) echo "ignored." ;; *) echo "not supported, please edit manually." retval=1 ;; esac fi done < <(cat $CHANDEV | sed '/^#/d;/^ /d' | tr ";" "\n") IFS="$saved_IFS" for _cfg in $CFG_LIST; do _hwcfg_file=${HWCFG_DIR}/${CFGNAME[$_cfg]} cat > $_hwcfg_file <> $_hwcfg_file fi if [ $SCRIPT_ccw[$_cfg] ]; then echo "SCRIPTUP_ccw=\"${SCRIPT_ccw[_cfg]}\"" >> $_hwcfg_file fi if [ $SCRIPT_ccw[$_cfg] ]; then echo "SCRIPTUP_ccwgroup=\"${SCRIPT_ccwgroup[_cfg]}\"" >> $_hwcfg_file fi if [ ${SCRIPT_down[$_cfg]} ]; then echo "SCRIPTDOWN=\"${SCRIPT_down[$_cfg]}\"" >> $_hwcfg_file fi cat >> $_hwcfg_file <> $_hwcfg_file <> $_hwcfg_file else echo "# CCW_CHAN_MODE=0" >> $_hwcfg_file fi echo >> $_hwcfg_file elif [ "$_devname" = "lcs" ]; then cat >> $_hwcfg_file <> $_hwcfg_file else echo "# CCW_CHAN_MODE=0" >> $_hwcfg_file fi echo >> $_hwcfg_file else cat >> $_hwcfg_file <> $_hwcfg_file else echo "# CCW_CHAN_MODE=\"\"" >> $_hwcfg_file fi echo >> $_hwcfg_file fi echo Wrote ${CFGNAME[$_cfg]} done exit $retval #!/bin/bash # # Deconfigures a zfcp lun. # # Following steps are required: # # 1.) set the SCSI ID offline # 2.) delete the SCSI ID # -> hotplug event scsi # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config # Check for variables if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi # Set defaults if [ -z "$HWD_DEVICEPATH" ]; then HWD_DEVICEPATH=${SYSFS}/bus/ccw/devices/${HWD_BUSID} fi if [ ! -d "$HWD_DEVICEPATH" ]; then message "No hardware devicepath given, cannot configure" exit 1 fi # Read in the configuration file . ./hwcfg-${HWDESC} # Set sysfs paths _zfcp_dir=${HWD_DEVICEPATH} # Delete all SCSI Ids read _scsi_host_no < ${_zfcp_dir}/scsi_host_no num_ids=0 for id in ${_zfcp_dir}/host$((_scsi_host_no))/*; do if [ -d $id ]; then echo "0" > ${id}/online echo "1" > ${id}/delete num_ids=$(expr $num_ids + 1) fi done # If no SCSI IDs has been found, no hotplug # events have been generated either. So we need # to deconfigure the adapter by hand. if (($num_ids == 0)); then # No IDs found / configured # Tear down the adapter for tmp_wwpn in ${_zfcp_dir}/0x*; do if [ -d "$tmp_wwpn" ]; then # Remove all luns fcp_wwpn=${tmp_wwpn##*/} for tmp_lun in ${tmp_wwpn}/0x*; do if [ -d "$tmp_lun" ]; then fcp_lun=${tmp_lun##*/} echo "$fcp_lun" > ${tmp_wwpn}/unit_remove debug "Removing unit $fcp_wwpn:$fcp_lun" fi done # Recheck for failures num_luns=0 for tmp_lun in ${tmp_wwpn}/0x*; do if [ -d "$tmp_lun" ]; then num_luns=$(expr $num_luns + 1) fi done if (($num_luns == 0)); then echo "$fcp_wwpn" > ${_zfcp_dir}/port_remove debug "Removing port $fcp_wwpn" else message "Error removing FCP port $fcp_wwpn: $num_luns units open" fi fi done # Recheck for failures num_ports=0 for tmp_wwpn in ${_zfcp_dir}/0x*; do if [ -d "$tmp_wwpn" ]; then num_ports=$(expr $num_ports + 1) fi done if (($num_ports == 0)); then echo "0" > ${_zfcp_dir}/online else message "Error on deconfigure adapter $HWD_BUSID: $num_ports still open" exit 1 fi fi # EOF #!/bin/bash # # Deconfigures a zfcp lun. # # Should be called after the SCSI id # has been removed # # Following steps are required: # # 1.) remove the LUN corresponding to the scsi id # 2.) Check if the port corresponding to the scsi id # has no other ports open # -> If so, remove the port # 3.) Check if the device has no other ports open # -> If so, deactivate the device # -> hotplug event scsi_host # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config # Check for variables if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi # Set defaults if [ -z "$HWD_DEVICEPATH" ]; then HWD_DEVICEPATH=${SYSFS}/bus/ccw/devices/${HWD_BUSID} fi # Set sysfs paths _zfcp_dir=${HWD_DEVICEPATH} # Find corresponding fcp wwpn:lun scsi_id=${$_zfcp_dir##*/} saved_IFS="$IFS" IFS=":" set -- $scsi_id scsi_host_num=$1 scsi_target_num=$3 scsi_lun_num=$4 IFS="$saved_IFS" path=`echo $_zfcp_dir | sed "s@/host[0-9]\{1,\}/.*@@"` # Find the fcp port corresponding to the scsi target for tmp_wwpn in ${path}/0x*; do if [ -d $tmp_wwpn ]; then read tmp_target_num < $tmp_wwpn/scsi_id if (($tmp_target_num == $scsi_target_num)); then wwpn=${$tmp_wwpn##*/} break; fi fi done if [ "$wwpn" ]; then # Find the fcp lun corresponding to the scsi lun for tmp_lun in ${path}/$wwpn/0x*; do if [ -d $tmp_lun ]; then read tmp_lun_num < $tmp_lun/scsi_lun if (($tmp_lun_num == $scsi_lun_num)); then lun=${$tmp_lun##*/} break; fi fi done # Remove if found if [ "$lun" ]; then message "Removing fcp unit $wwpn:$lun" echo "$lun" > ${path}/$wwpn/unit_remove fi # Recheck if the port still has luns open num_luns=0 for tmp_lun in ${path}/$wwpn/0x*; do if [ -d $tmp_lun ]; then num_luns=$(expr $num_luns + 1) fi done if (($num_luns == 0)); then # No, remove the fcp port echo "$wwpn" > ${path}/port_remove message "Removing fcp port $wwpn" fi fi # Recheck for open ports num_ports=0 for tmp_wwpn in ${path}/0x*; do if [ -d $tmp_wwpn ]; then num_ports=$(expr $num_ports + 1) fi done if (($num_ports == 0)); then # Deactivate this adapter echo "0" > ${path}/online message "Deactivating adapter $HWD_BUSID" else debug "Could not deactivate adapter $HWD_BUSID: $num_ports ports open" fi # EOF #!/bin/ash # # /etc/sysconfig/hardware/scripts/functions # # Common functions for hwconfig # . /etc/sysconfig/network/scripts/functions.common if [ -n "$DEBUG_HWCONFIG" ] ; then set -x fi mesg () { if [ -n "$DEBUG_HWCONFIG" ] ; then echo "${SCRIPTNAME}: $@" else /bin/logger -p kern.warn -t "$SCRIPTNAME" "$@" fi } # Get the mount point for sysfs while read MNTPT MNTDIR MNTSYS MNTTYPE; do if test "$MNTSYS" = "sysfs"; then SYSFS="$MNTDIR" break; fi done -bus-- # e.g. # 'hwup-ccw dasd-bus-ccw-0.0.0190' # # Programs called from this script: # echo # expr # test # SCRIPTNAME=${0##*/} CONFIG=$1 HWDESC=$2 # Read in common functions . ./scripts/functions test -r ./config && . ./config if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi # Read in the configuration file . ./hwcfg-${CONFIG} # Set defaults if [ -z "$HWD_DEVICEPATH" ]; then HWD_DEVICEPATH=${SYSFS}/bus/ccw/devices/${HWD_BUSID} fi if [ ! -d "$HWD_DEVICEPATH" ]; then message "No hardware devicepath given, cannot configure" exit 1 fi # Check for the attached control unit and device type read _cu_type < $HWD_DEVICEPATH/cutype read _dev_type < $HWD_DEVICEPATH/devtype # # This checks for all known control units and device types. # Information is from /lib/modules//modules.ccwmap # if [ -z "$CCW_CHAN_NAME" ] ; then CCW_CHAN_GROUP= CCW_CHAN_NUM= case "$_cu_type" in 3088/01) # P/390 network adapter (Not tested) CCW_CHAN_NAME="cu3088" CCW_CHAN_GROUP="p390" CCW_CHAN_NUM=2 ;; 3088/08) # Channel To Channel CCW_CHAN_NAME="cu3088" CCW_CHAN_GROUP="ctc" CCW_CHAN_NUM=2 ;; 3088/1e) # FICON adapter (Not tested) CCW_CHAN_NAME="cu3088" CCW_CHAN_GROUP="ficon" CCW_CHAN_NUM=2 ;; 3088/1f) # ESCON adapter (I.e. hardware CTC device) CCW_CHAN_NAME="cu3088" CCW_CHAN_GROUP="ctc" CCW_CHAN_NUM=2 ;; 3088/60) # Lan Control Station CCW_CHAN_NAME="cu3088" CCW_CHAN_GROUP="lcs" CCW_CHAN_NUM=2 ;; 1731/01|1731/05) # OSA/Express or Guest LAN CCW_CHAN_NAME="qeth" CCW_CHAN_NUM=3 ;; 1731/03) # zFCP adapter if [ "$_dev_type" == "1732/03" -o "$_dev_type" == "1732/04" ]; then CCW_CHAN_NAME="zfcp" else CCW_CHAN_NAME= fi ;; 3480/*|3490/*) # IBM 3480/3490 tape driver if [ "$_dev_type" == "$_cu_type" ]; then CCW_CHAN_NAME="tape-34xx" else CCW_CHAN_NAME= fi ;; 3990/*|2105/*|9343/*) # DASD (ECKD mode) CCW_CHAN_NAME="dasd-eckd" ;; 6310/*) # DASD (FBA mode) CCW_CHAN_NAME="dasd-fba" ;; 3880/*) case "$_dev_type" in 3390/*) # DASD (ECKD mode) CCW_CHAN_NAME="dasd-eckd" ;; 3370/*) # DASD (FBA mode) CCW_CHAN_NAME="dasd-fba" ;; *) CCW_CHAN_NAME= ;; esac ;; *) CCW_CHAN_NAME= ;; esac fi # Unknown device if [ -z "$CCW_CHAN_NAME" ]; then message "Invalid device type (cu ${_cu_type} dev ${_dev_type}" exit 1 fi # Set defaults if test -z "$CCW_CHAN_GROUP"; then CCW_CHAN_GROUP="$CCW_CHAN_NAME" fi if test -z "$CCW_CHAN_NUM"; then CCW_CHAN_NUM="1" fi if test -z "$CCW_CHAN_IDS"; then CCW_CHAN_IDS="$HWD_BUSID" fi CCW_USE_DIAG=0 if test "$CCW_CHAN_NAME" = "dasd-eckd" -o "$CCW_CHAN_NAME" = "dasd-fba"; then if test "$DASD_USE_DIAG" && test "$DASD_USE_DIAG" -eq 1 ; then CCW_USE_DIAG=1 fi fi # Set sysfs paths _ccw_dir=${SYSFS}/bus/ccw/drivers/${CCW_CHAN_NAME} _ccwgroup_dir=${SYSFS}/bus/ccwgroup/drivers/${CCW_CHAN_GROUP} if [ -z "$CCW_CHAN_IDS" ] ; then message "no channel IDs given" exit 1 fi # Checking channel availability # Check whether we need to configure the channel group if test "$CCW_CHAN_NUM" -gt 1 ; then set -- $CCW_CHAN_IDS CCW_CHAN_GROUPID=$1 if test -d "$_ccwgroup_dir/$CCW_CHAN_GROUPID" ; then # Device group already configured debug "Device group $CCW_CHAN_GROUPID already configured!" else debug "Checking group ${CCW_CHAN_GROUPID}" # Check whether all channels for this device are accessible num=0 for _ccw_file in $CCW_CHAN_IDS; do if test ! -d "${_ccw_dir}/${_ccw_file}" ; then _ccw_group_lst= break; fi _ccw_group_lst="${_ccw_group_lst:-${_ccw_file}}${_ccw_group_lst:+,${_ccw_file}}" num=$(expr $num + 1) done # Configure the channel group # Note that the non-existence of channels is not a failure; # if we were called during start-up it might well be that # not all channels are available yet. if test "$num" -lt "$CCW_CHAN_NUM" ; then if test -z "$_ccw_group_lst" ; then message "Device group ${CCW_CHAN_GROUPID} not (yet) available!" else message "Not enough channels for this device!" fi else message "Configuring group ${CCW_CHAN_GROUPID}" echo $_ccw_group_lst > $_ccwgroup_dir/group fi fi else message_n "Configuring device ${CCW_CHAN_IDS}: " _ccw_status_dir="$_ccw_dir/$CCW_CHAN_IDS" # Set the device online if test -d "$_ccw_status_dir" ; then read _ccw_dev_online < $_ccw_status_dir/online if [ "$_ccw_dev_online" -eq 0 ]; then if [ "$CCW_USE_DIAG" -eq 1 ]; then # DIAG access for DASDs # Need to be done prior to activation debug "Activating DIAG access mode" echo 1 > $_ccw_status_dir/use_diag fi # Set the device online debug "Setting device online" echo "1" > $_ccw_status_dir/online # Re-read device status read _ccw_dev_status < $_ccw_status_dir/online if [ "$CCW_USE_DIAG" -eq 1 ]; then # Special handling for DIAG devices: # The availability of DIAG access can only be # established if the device could be activated. # If this fails, we fall back to normal access # and ignore any DIAG parameter. if [ "$_ccw_dev_status" -eq 0 ]; then # Failed to activate device message_n "(DIAG not available) " echo 0 > $_ccw_status_dir/use_diag # Set the device online debug "Setting device online w/o DIAG access" echo "1" > $_ccw_status_dir/online # Re-read device status read _ccw_dev_status < $_ccw_status_dir/online else message_n "(DIAG) " fi fi # Special handling for zfcp: might be online but # status might indicate that something went wrong if [ -r $_ccw_status_dir/failed ]; then read _ccw_dev_status < $_ccw_status_dir/failed # Invert the sense let _ccw_dev_status^=1 fi # Check for success if [ "$_ccw_dev_status" -eq 0 ]; then # Failed to activate device message "failed." else message "ok." fi else debug "Device already activated" fi else message "not available." fi fi #!/bin/bash # # hwup-ctc # $Id: hwup-ctc 1069 2004-09-02 18:23:18Z zoz $ # # Configuration script for CTC devices # Sets the protocol mode if configured and # sets the adapter online # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config # Check for variables if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi if [ -z "$DEVPATH" ]; then message "no device path given, aborting." exit 1 fi # Read in the configuration file . ./hwcfg-${HWDESC} # Set sysfs paths _ccwgroup_dir=${SYSFS}${DEVPATH} # Check whether the channel group is configured message_n "Configuring device ${_ccwgroup_dir##*/}: " if test -d "$_ccwgroup_dir" ; then read _online < $_ccwgroup_dir/online # We do not check for the value of CCW_CHAN_MODE, since we # might want to switch back and forth between several modes if test "$_online" -eq "0" ; then if [ "$CCW_CHAN_MODE" ]; then message_n "(protocol $CCH_CHAN_MODE) " echo "$CCW_CHAN_MODE" > $_ccwgroup_dir/protocol else CCW_CHAN_MODE=0 fi echo "1" > $_ccwgroup_dir/online message "ok." else message "already online." fi else message "not available." fi #EOF #!/bin/bash # # hwup-lcs # $Id: hwup-lcs 1069 2004-09-02 18:23:18Z zoz $ # # Configuration script for LCS devices # Sets the port number if configured and # sets the adapter online # SCRIPTNAME=${0##*/} HWDESC=$1 # Read in common functions . ./scripts/functions test -r ./config && . ./config # Check for variables if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi if [ -z "$DEVPATH" ]; then message "no device path given, aborting." exit 1 fi # Read in the configuration file . ./hwcfg-${HWDESC} # Set sysfs paths _ccwgroup_dir=${SYSFS}${DEVPATH} # Check whether the channel group is configured message_n "Configuring device ${_ccwgroup_dir##*/}: " if test -d "$_ccwgroup_dir" ; then read _online < $_ccwgroup_dir/online # We do not check for the value of CCW_CHAN_MODE, since we # might want to switch back and forth between several modes if test "$_online" -eq "0" ; then if [ "$CCW_CHAN_MODE" ]; then message_n "(port $CCH_CHAN_MODE) " echo "$CCW_CHAN_MODE" > $_ccwgroup_dir/portno else CCW_CHAN_MODE=0 fi echo "1" > $_ccwgroup_dir/online message "ok." else message "already online." fi else message "not available." fi #EOF #!/bin/bash # # Deconfigures a ccw interface. # $Id: hwdown-ccw 1069 2004-09-02 18:23:18Z zoz $ # # Currently handles ctc, qeth, and dasd devices. # lcs and escon support untested. # SCRIPTNAME=${0##*/} CONFIG=$1 HWDESC=$2 # Read in common functions . ./scripts/functions test -r ./config && . ./config if test -z "$SYSFS"; then message "sysfs not mounted, aborting." exit 1 fi # Set defaults if [ -z "$HWD_DEVICEPATH" ]; then HWD_DEVICEPATH=${SYSFS}/bus/ccwgroup/devices/${HWD_BUSID} fi if [ ! -d "$HWD_DEVICEPATH" ]; then message "No hardware devicepath given, cannot configure" exit 1 fi # Check whether it is a group device if test -d $HWD_DEVICEPATH/group_device; then HWD_DEVICEPATH=$HWD_DEVICEPATH/group_device fi # Deconfigure interface message_n "Deconfigure device $HWD_BUSID: " read _online < $HWD_DEVICEPATH/online # Device configured, set it offline if [ $_online -ne 0 ]; then echo "0" > $HWD_DEVICEPATH/online debug "Setting device $HWD_BUSID offline" fi # The sysfs entry might vanish after a CP DETACH if [ ! -f $HWD_DEVICEPATH ]; then message "ok." else # Re-read for failures read _online < $HWD_DEVICEPATH/online if [ $_online -ne 0 ]; then message "failed." else # Check whether we need to ungroup it if test -w $HWD_DEVICEPATH/ungroup ; then # We cannot use hotplug events here as the # devices are already gone from sysfs echo "1" > $HWD_DEVICEPATH/ungroup debug "Device group $HWD_BUSID deconfigured" fi # Check whether we need to reset DIAG access if test -w $HWD_DEVICEPATH/use_diag ; then echo "0" > $HWD_DEVICEPATH/use_diag debug "Reset DIAG access for $HWD_BUSID" fi message "ok." fi fi # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='piix' MODULE_OPTIONS_0='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='uhci-hcd' MODULE_OPTIONS_0='' ## Path: Network/Hardware/Config ## Description: Set some general network configuration ## Type: string("","-","+") ## Default: "+" ## ServiceRestart: network # ## Type: yesno ## Default: no # Switch on/off debug messages for all network configuration stuff. If set to no # most scripts can enable it locally with "-o debug". DEBUG="no" ## Type: yesno ## Default: yes # Should error messages from network configuration scripts go to syslog, or do # you like them on stderr? USE_SYSLOG="yes" FAILURE_ACTION=off # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' STARTMODE='auto' MODULE='lp' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='ehci-hcd' MODULE_OPTIONS_0='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='uhci-hcd' MODULE_OPTIONS_0='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='e1000' MODULE_OPTIONS_0='' DEVICE='sda' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='uhci-hcd' MODULE_OPTIONS_0='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE_0='hw_random' MODULE_OPTIONS_0='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' # This file is automatically created from hotplug agent and may be # changed when certain packages (hotplug, kernel, etc.) are updated. # If you change things manually here and want this configuration # to persist updates, then remove the following line. # HOTPLUG-FLAG: autocreated # STARTMODE='auto' MODULE='' MODULE_OPTIONS='' 6 . ..7 dhcp8scripts[(ifcfg-eth-id-00:04:23:b7:27:c6\ifcfg.template]config^ifcfg-lo_wireless`if-up.db if-down.dc ifroute-lod$ providers## Path: Network/DHCP/DHCP client ## Description: DHCP configuration tweaking # # Note: # To configure one or more interfaces for DHCP configuration, you have to # change the BOOTPROTO variable in /etc/sysconfig/network/ifcfg- to # 'dhcp' (and possibly set STARTMODE='onboot'). # # Most of these options are used only by dhcpcd, not by the ISC dhclient (which # uses a config file). # # Most of the options can be overridden by setting them in the ifcfg-* files, # too. ## Type: string ## Default: "" ## ServiceRestart: network # # Which DHCP client should be used? # If empty, dhcpcd is tried, then dhclient # Other possible values: # dhcpcd (DHCP client daemon) # dhclient (ISC dhclient) DHCLIENT_BIN="" ## Type: yesno ## Default: no # # Start in debug mode? (yes|no) # (debug info will be logged to /var/log/messages for dhcpcd, or to # /var/log/dhclient-script for ISC dhclient) # DHCLIENT_DEBUG="no" ## Type: yesno ## Default: no # # Should the DHCP client set the hostname? (yes|no) # # When it is likely that this would occur during a running X session, # your DISPLAY variable could be screwed up and you won't be able to open # new windows anymore, then this should be "no". # # If it happens during booting it won't be a problem and you can # safely say "yes" here. For a roaming notebook with X kept running, "no" # makes more sense. # DHCLIENT_SET_HOSTNAME="yes" ## Type: yesno ## Default: yes # # Should the DHCP client modify /etc/resolv.conf at all? # If not, set this to "no". (The default is "yes") # # resolv.conf will also stay untouched when MODIFY_RESOLV_CONF_DYNAMICALLY # in /etc/sysconfig/network/config is set to "no". # DHCLIENT_MODIFY_RESOLV_CONF="yes" ## Type: yesno ## Default: yes # # Should the DHCP client set a default route (default Gateway) (yes|no) # # When multiple copies of dhcpcd run, it would make sense that only one # of them does it. # DHCLIENT_SET_DEFAULT_ROUTE="yes" ## Type: yesno ## Default: no # # Should the DHCP client modify the NTP configuration? (yes|no) # # If set to yes, /etc/ntp.conf is rewritten (and restored upon exit). # If you don't want this, set this variable to "no". (The default is "no") # DHCLIENT_MODIFY_NTP_CONF="yes" ## Type: yesno ## Default: no # # Should the DHCP client modify the NIS configuration? (yes|no) # # If set to yes, /etc/yp.conf is rewritten (and restored upon exit). # If you don't want this, set this variable to "no". (The default is "no") # DHCLIENT_MODIFY_NIS_CONF="yes" ## Type: yesno ## Default: yes # # Should the DHCP client set the NIS domainname? (yes|no) # (if the server supplies the nis-domain option) # DHCLIENT_SET_DOMAINNAME="yes" ## Type: yesno ## Default: yes # # When writing a new /etc/resolv.conf, should the DHCP client take an # existing searchlist and add it to the one derived from the DHCP server? # DHCLIENT_KEEP_SEARCHLIST="yes" ## Type: integer ## Default: "" # # Lease time to request ( -l option) # # Specifies (in seconds) the lease that is suggested to the server. # The default is infinite. For a mobile computer you probably want to # set this to a lower value. # DHCLIENT_LEASE_TIME="" ## Type: integer ## Default: 999999 # # (only dhcpcd does use this setting) # # You can set the timeout (dhcpcd will terminate after this time when it # does not get a reply from the server). # # The default timeout of dhcpcd is 60 seconds. However, we'll set it to a # much longer time. dhcpcd will then run as a daemon in the background and # broadcast a DHCPDISCOVER once in a while, trying to get a lease. # DHCLIENT_TIMEOUT="999999" ## Type: integer ## Default: "" # # (only dhcpcd does use this setting) # # INIT-REBOOT timeout ( -z option) # # This timeout is specifically to control how long dhcpcd tries to reacquire # a previous lease (init-reboot state), before it starts getting a new one. # Default: 10 # DHCLIENT_REBOOT_TIMEOUT="" ## Type: string ## Default: AUTO # # specify a hostname to send ( -h option) # # specifies a string used for the hostname option field when dhcpcd sends DHCP # messages. Some DHCP servers will update nameserver entries (dynamic DNS). # Also, some DHCP servers, notably those used by @Home Networks, require the # hostname option field containing a specific string in the DHCP messages from # clients. # # By default the current hostname is sent ("AUTO"), if one is defined in # /etc/HOSTNAME. # Use this variable to override this with another hostname, or leave empty # to not send a hostname. # DHCLIENT_HOSTNAME_OPTION="AUTO" ## Type: string ## Default: "" # # specify a client ID ( -I option) # # Specifies a client identifier string. By default the hardware address of the # network interface is sent as client identifier string, if none is specified # here. # # Note that dhcpcd will prepend a zero to what it sends to the server. In the # server configuration, you need to write the following to match on it: # option dhcp-client-identifier "\0foo"; # DHCLIENT_CLIENT_ID="" ## Type: string("dhcpcd dhclient") ## Default: "" # # specify a vendor class ID ( -i option) # # Specifies the vendor class identifier string. dhcpcd uses the default vendor # class identifier string (system name, system release, and machine type) if it # is not specified. # DHCLIENT_VENDOR_CLASS_ID="" ## Type: yesno ## Default: no # # Send a DHCPRELEASE to the server (sign off the address)? (yes|no) # This may lead to getting a different address/hostname next time an address # is requested. But some servers require it. # DHCLIENT_RELEASE_BEFORE_QUIT="no" ## Type: string ## Default: "" # # Run this script when the interface is brought up, down, or the IP address # changes ( -c option) # # per default, /etc/sysconfig/network/scripts/dhcpcd-hook is run # DHCLIENT_SCRIPT_EXE="" ## Type: yesno ## Default yes # # Force dhcpcd to calculate UDP checksum on received packets. (yes|no) # This corresponds to dhcpcd's -C option. # DHCLIENT_UDP_CHECKSUM="yes" ## Type: string ## Default: "" # # additional options, e.g. "-B" # DHCLIENT_ADDITIONAL_OPTIONS="" ## Type: integer ## Default: 0 # # Some interfaces need time to initialize. Add the latency time in seconds # so these can be handled properly. Should probably set per interface rather than here. # DHCLIENT_SLEEP="0" ## Type: integer ## Default: 5 # # When the DHCP client is started at boot time, the boot process will stop # until the interface is successfully configured, but at most for # DHCLIENT_WAIT_AT_BOOT seconds. # DHCLIENT_WAIT_AT_BOOT="20" ## Type: yesno ## Default: yes # # Should the DHCP client modify /etc/samba/dhcp.conf? # DHCLIENT_MODIFY_SMB_CONF="yes" 8 .6 ..9 ifup-services: ifup-autoip;functions.common<dhcp-interfaces=ifdown-wireless-wpa> ifdown-ppp? ifdown-autoip@ ifup-skelAifstatus-connectionBifstatus-routeCifdown-servicesD ifstatus-wireless-wpaE dhcpcd-hookF drop-hotplug-symlink.shGifstatus-wirelessH oldnet2new.shI ifdown-routeJifplugd-selectifK ifup-802.1qLifstatus-servicesMifstatus-autoipN convert_for_getconfigO functionsPifdown-connectionQdhcpcd-hook-sambaRcheck_configurationsSifup-wireless-wpaT ifdown-802.1qU ifup-routeV ifstatus-pppWifup-pppX$dhcpcd-hook-samba-functionsYifstatus-802.1qZ ifup-wireless#! /bin/bash # # Copyright (c) 2002-2004 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Christian Zoz # # $Id: ifup-services 1090 2004-09-17 07:44:56Z zoz $ # usage () { echo $@ echo "Usage: if{up,down}-skel [] [-o ]" echo " In most cases config==interface, for details see ifup(8)." echo echo "Options are: option : explanation" echo "All other or wrong options are silently ignored." echo echo " This is just a skeleton." echo " !!! PLEASE MODIFY THESE LINES !!!" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} ACTION=${SCRIPTNAME#if} ACTION=${ACTION%%-services} debug $* case "${SCRIPTNAME}" in ifup-*) true ;; ifdown-*) true ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=auto ;; hotplug) MODE=auto ;; auto) MODE=auto ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug unknown option $1 ;; esac shift done ###################################################################### # get the interface and check if it is available or up # # if ! is_iface_available $INTERFACE ; then # logerror "interface ${INTERFACE} is not available" # exit $R_NODEV # fi # if ! is_iface_up $INTERFACE ; then # logerror "interface ${INTERFACE} is not up" # exit $R_NOTRUNNING # fi ###################################################################### # check presence of configuration file and source it # test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG if [ -d "ifservices-$CONFIG" ] ; then cd ifservices-$CONFIG else debug "No services to handle" exit 0 fi # expand file pattern below to null string if no file matches shopt -s nullglob case $ACTION in up) message "Starting services" for SERVICE in S*; do ./$SERVICE start done ;; status) message "Checking services" for SERVICE in S*; do ./$SERVICE status done ;; down) message "Stopping services" for SERVICE in K*; do ./$SERVICE stop done ;; esac #! /bin/bash # # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved. # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Michael Schroeder , 2004 # usage () { echo $@ echo "usage: if{up,down,status}-autoip [] [-o ]" echo " In most cases config==interface, for details see man 8 ifup" echo "options are: boot : we are currently booting" echo " hotplug : we are handling a hotplug event" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* case "${SCRIPTNAME}" in ifup-*) ACTION=start ;; ifdown-*) ACTION=stop ;; ifstatus-*) ACTION=status ;; *) usage esac DEVICE=$1 case "$DEVICE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$DEVICE DEVICE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual PREPARE= while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; prepare) PREPARE=yes ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; rc) RUN_FROM_RC=yes ;; *) debug unknown option $1 ;; esac shift done test -n "$PREPARE" -a "$ACTION" != start && exit $R_SUCCESS ###################################################################### # check presence of configuration files # test -f ./autoip && . ./autoip test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG ###################################################################### # get the interface and check if it is up # if [ -z "$DEVICE" ] ; then usage "No interface given" fi if ! is_iface_available $DEVICE && [ "$ACTION" = start ] ; then logerror "interface ${DEVICE} is not available" exit $R_NODEV fi case "$ACTION" in start) info=/var/lib/autoip/autoip-$DEVICE.info test -d /var/lib/autoip || mkdir -p /var/lib/autoip # just in case /var is not mounted status=`/sbin/autoip -q $DEVICE` if test -n "$PREPARE" ; then test "$status" = BEATEN -o "$status" = CHOOSING -o "$status" = DEFENDING && exit $R_SUCCESS ip link set $DEVICE up for a in 1 2 3 4 5; do is_iface_up $DEVICE && break; sleep 1; done # three seconds grace period /sbin/autoip -B -g 3 $DEVICE || exit $R_ERROR exit $R_SUCCESS fi ip link set $DEVICE up for a in 1 2 3 4 5; do is_iface_up $DEVICE && break; sleep 1; done if test "$RUN_FROM_RC" = yes; then message_n "(autoip) " else message_n "Starting autoip on $DEVICE... " fi if test "$status" = BEATEN ; then message_n "already configured" test "$RUN_FROM_RC" = yes || message " " exit $R_SUCCESS fi if test "$status" != CHOOSING -a "$status" != DEFENDING ; then /sbin/autoip -B $DEVICE || exit $R_ERROR fi for ((i=0; i<30; i++)); do pid= status= ipaddr= if test -e $info ; then while read l ; do case $l in PID=*) pid="${l#PID=}" ;; STATUS=*) status="${l#STATUS=}" ;; IPADDR=*) ipaddr="${l#IPADDR=}" ;; esac done < $info fi test -n "$status" -a "$status" != CHOOSING && break test -n "$pid" -a ! -d /proc/$pid && { status=FAILED break } message_n .\ ; sleep 1 done if test "$status" = BEATEN ; then message_n "already configured" test "$RUN_FROM_RC" = yes || message " " exit $R_SUCCESS fi if test "$status" != DEFENDING -o ! -n "$ipaddr" ; then message_n failed test "$RUN_FROM_RC" = yes || message " " exit $R_ERROR fi message_n "IP: $ipaddr" test "$RUN_FROM_RC" = yes || message " " ;; stop) debug "Shutting down service autoip on $DEVICE" info=/var/lib/autoip/autoip-$DEVICE.info pid=`sed -ne 's/PID=//p' < $info` test -n "$pid" && kill $pid if [ "$AUTOIP_SET_DOWN_LINK" = yes ] ; then ip link set down dev $DEVICE fi ;; status) if checkproc autoip; then message_if_not_run_from_rc autoip running else message_if_not_run_from_rc autoip not running fi if test -z "`ip -o -f inet addr show $DEVICE`"; then message_if_not_run_from_rc $DEVICE not up exit $R_NOTRUNNING else message_if_not_run_from_rc $DEVICE is up message_if_not_run_from_rc "$(ip addr show $DEVICE)" message_if_not_run_from_rc " " case "$BOOTPROTO" in *autoip*) ;; *) message $DEVICE not configured for autoip in /etc/sysconfig/network/ifcfg-$DEVICE message " " exit $R_NOTCONFIGURED ;; esac fi esac #!/bin/bash # Network interface configuration # # Copyright (c) 2002-2003 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Michal Svec # Mads Martin Joergensen # # $Id: functions.common 1102 2004-09-28 17:37:01Z zoz $ # ##################################################################### # Returnvalues # # I don't know currently, if all this returnvalues are necessary. Probably some # of them will be removed. The values 0-7 should be very similar to the LSB # return values for init scripts R_SUCCESS=0 # interface has been set up R_ERROR=1 # any unspecified error R_USAGE=2 # wrong usage R_NOTIMPL=3 # feature not implemented R_NOTALLOWED=4 # insufficient privilege R_NODEV=7 # the given interface does not exist R_NOTCONFIGURED=5 # the bootmode does not match the current mode R_INACTIVE=5 # the interface is not up and it should not R_NOTRUNNING=7 # the interface is not up but it should be up R_NOCONFIG=9 # we could not find a matching configuration file R_BUSY=10 # the interface is busy and should not be shut down. # It will be used for 'ifstatus ... -o stop' or ifdown ... -o # check' or whatever we use for the check if a interface can # be shut down savely. R_LOCKED=11 # ifup/down is currently running on this hwdesc R_DHCP_BG=12 # dhcp client is running in bg, but no address up to now # or setting up firewall is still in progress R_INTERNAL=$R_ERROR # internal error, e.g. no config or missing scripts R_NOT_UP2DATE=13 # returned from ifprobe if configuration has changed PATH=/sbin:/usr/sbin:/bin:/usr/bin:/etc/sysconfig/network/scripts LOGGER=/bin/logger logerror () { local LINE PREFX="ERROR: " test "$DEBUG" = "yes" && PREFX="`printf "%-20s ERROR: " $SCRIPTNAME`" test "$RUN_FROM_RC" = "yes" && PREFX="`printf " %-9s " $INTERFACE`" while read LINE; do test "$USE_SYSLOG" = "yes" -a -x "$LOGGER" -a "$DEBUG" != "yes" && $LOGGER -p user.err -t "$SCRIPTNAME" "$LINE" test "$BE_QUIET" != "yes" -o "$DEBUG" = "yes" && echo -e "$PREFX$LINE" PREFX=" " test "$DEBUG" = "yes" && PREFX=" " test "$RUN_FROM_RC" = "yes" && PREFX=" " done < <(echo -e "$*") } message () { test "$DEBUG" = "yes" && echo -e "$SCRIPTNAME $*" && return 0 test "$BE_QUIET" = "yes" && return 1 test -z "$*" && return echo -e "$*" } message_n () { test "$DEBUG" = "yes" && echo -en "$SCRIPTNAME $*" && return 0 test "$BE_QUIET" = "yes" && test "$DEBUG" != "yes" && return 1 echo -en "$*" } debug () { test "$DEBUG" = "yes" || return 1 test -z "$*" && return echo -e "$SCRIPTNAME [DEBUG] $*" } message_if_not_run_from_rc () { if [ "$RUN_FROM_RC" = "yes" ]; then debug "$*" else message "$*" fi return 0 } reverse () { local X=$1 test -z "$X" && return shift reverse $* echo $X } #!/bin/bash . /etc/sysconfig/network/dhcp : ${DHCLIENT_BIN:=dhcpcd} if [ -x $DHCLIENT_BIN ]; then : elif [ -x /sbin/$DHCLIENT_BIN ]; then DHCLIENT_BIN=/sbin/$DHCLIENT_BIN; elif [ -x /sbin/dhclient ]; then DHCLIENT_BIN=/sbin/dhclient fi DHCLIENT=${DHCLIENT_BIN##*/} for i in `pidof $DHCLIENT`; do for device in `cat -A /proc/$i/cmdline`; do device=${device%^@} echo -e ${device##*^@} done done exit 0 #! /bin/bash # # Copyright (c) 2002-2003 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Michal Svec # Christian Zoz # # $Id: ifup-skel 1135 2004-12-08 08:50:41Z zoz $ # # # USE THIS AS A SKELETON FOR ADDITIONAL if{up,down,status}-* SCRIPTS # usage () { echo $@ echo "Usage: if{up,down}-skel [] [-o ]" echo " hwdesc may be the interface nmae or any valid descriptions" echo " of the corresponding device, for details see ifup(8)." echo echo "Options are: option : explanation" echo "All other or wrong options are silently ignored." echo echo " This is just a skeleton." echo " !!! PLEASE MODIFY THESE LINES !!!" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* ACTION=${SCRIPTNAME#if} ACTION=${ACTION%%-skel} # <--- adapt it to the scriptname !!!!!!!!!!! case "${ACTION}" in up|status|down|check) ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=auto ;; hotplug) MODE=auto ;; auto) MODE=auto ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug unknown option $1 ;; esac shift done ###################################################################### # get the interface and check if it is available or up # # If your script needs a base interface upon which the new interface resides # (e.g. for tunnels) then pay attention to the following: # Imagine you have a variable BASE_DEVICE in your configuration which you expect # to contain the interface name of the base interface. This variable may contain # any valid description of the base device and need not to be an interface name. # Moreover it is recommended to prefer an device description to the interface # name, because interface names are not always persistent the may change. See # man ifup for valid device descriptions. You will get the current interface # name to this device with /sbin/getcfg-interface: # # BASE_INTERFACE=`/sbin/getcfg-interface -- $BASE_DEVICE` # # if ! is_iface_available $INTERFACE ; then # logerror "interface ${INTERFACE} is not available" # exit $R_NODEV # fi # if ! is_iface_up $INTERFACE ; then # logerror "interface ${INTERFACE} is not up" # exit $R_NOTRUNNING # fi ###################################################################### # check presence of configuration file and source it # if [ -f ifcfg-$CONFIG ] ; then . ifcfg-$CONFIG else message "could not find configuration file ifcfg-$CONFIG" fi ###################################################################### # now do what has to be done # case $ACTION in up) : do ifup job ;; down) : do ifdown job ;; status) : do status job ;; check) : do check job ;; esac #!/bin/bash # # Copyright (c) 2002-2003 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Peter Poeml # # $Id: dhcpcd-hook 1192 2005-04-22 12:53:31Z zoz $ # # Hook script for dhcpcd (the DHCP client) # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # # It is called when an interface is brought "up", "down", or the IP address has # changed ("new"). # # It calls "ifup -o dhcp", which does the following: # # - set up routing according to /etc/sysconfig/network/ifroute-* # (where you can configure routes per interface) # # - execute /etc/sysconfig/network/if-{up,down}.d/* # (where you can place your own scripts) # # - execute POST_UP scripts defined in /etc/sysconfig/network/ifcfg-* # (see "man 8 ifup") # # Thus, those are the hooks where you can add stuff. # The following parameters are passed to this script by dhcpcd: # $1 = HostInfoFilePath, e.g "/var/lib/dhcpcd/dhcpcd-eth0.info" # $2 = "up" if interface has been configured with the same # IP address as before reboot; # $2 = "down" if interface has been shut down; # $2 = "new" if interface has been configured with new IP address; # $3 (optional) = "-d" debug flag passed if dhcpcd daemon has been # invoked with "-d" flag my_name=${0##*/} # log_err="logger -s -t $my_name -p daemon.err" # log_dbg="logger -s -t $my_name -p daemon.debug" log_err="logger -t $my_name -p daemon.err" log_dbg="logger -t $my_name -p daemon.debug" if [ $# -lt 2 ]; then $log_err "wrong usage" exit 1 fi leaseinfo="$1" state="$2" debug="$3" if [ -n "$debug" ]; then $log_dbg "State: $state. Leaseinfo: ${leaseinfo:-}" debug=true else debug=false fi # it is possible that the leaseinfo file does not exist: # - when it has never been written (since a lease was never acquired) # - when deleted manually # in this case, we don't even know which interface is concerned, and # there's nothing to do about it. # (in the 'leaseinfo does not exist case' the interface can still be # guessed from the name, but I doubt it's useful to run ifdown then) if test -z $leaseinfo; then $log_dbg "Skipping 'ifdown \$INTERFACE -o dhcp' call" exit 0 fi if ! test -e $leaseinfo; then $log_dbg "$leaseinfo does not exist. Skipping 'ifdown \$INTERFACE -o dhcp' call" exit 0 fi while read line; do case "$line" in INTERFACE*|IPADDR*) eval $line;; esac done < $leaseinfo case $state in up) $debug && $log_dbg "Running ifup $INTERFACE -o dhcp" ifup $INTERFACE -o dhcp ;; down) # We now call PRE_DOWN_SCRIPT directly from ifdown, because it was called # POST from here (after IP address was removed). Thus we don't need this # $debug && $log_dbg "Running ifdown $INTERFACE -o dhcp" # ifdown $INTERFACE -o dhcp ;; new) $debug && $log_dbg "new IP address: $IPADDR" $debug && $log_dbg "Running ifdown $INTERFACE -o dhcp" ifdown $INTERFACE -o dhcp $debug && $log_dbg "Running ifup $INTERFACE -o dhcp" ifup $INTERFACE -o dhcp ;; esac exit 0 #!/bin/bash # Drop the compatibility symbolic link in /etc/sysconfig/network, # usually as ifcfg-eth-pcmcia -> ifcfg-eth-pcmcia-0, path=${root}/etc/sysconfig/network types="eth-pcmcia eth-usb tr-pcmcia tr-usb" # path=/tmp/n cd "$path" for t in $types; do f="ifcfg-$t" test -L "$f" || continue s="$(readlink "$f")" test -f "$s" || continue echo "$f -> $s" rm -f "$f" mv -f "$s" "$f" done #!/bin/bash # # oldnet2new.sh # # Copyright (c) 2001, 2002 SuSE GmbH Nuernberg, Germany. All rights reserved. # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Mads Martin Jrgensen # Arvin Schnell # # This script generates the new 8.0 style network config files # from the old style in /etc/rc.config and others. # if test -n "$YAST_IS_RUNNING" ; then INSSERV="sbin/insserv -f" else INSSERV="sbin/insserv" fi # source rc.config if it exists if test -f etc/rc.config; then source etc/rc.config else # nothing to do! Feierabend! exit 0 fi test -d etc/sysconfig/network || mkdir -p etc/sysconfig/network CFGFILEPREFIX="etc/sysconfig/network/" # good place to convert obsolete iSeries device names... veth --> eth for i in _0 _1 _2 _3; do eval NETDEV=\$NETDEV$i case "$NETDEV" in veth*) eval NETDEV$i=\${NETDEV#v};; esac done; unset NETDEV # # go through all network devices configured in rc.config: # # NETDEV_0="eth0" # NETDEV_1="eth0:1" # NETDEV_2="eth0:2" # NETDEV_3="eth0:3" # NETDEV_4="eth0:4" # NETDEV_5="eth0:5" # # create the filenames of device configurations # # NETDEV_10=eth0:10 will be converted to CFGFILE_10=etc/sysconfig/network/ifcfg-eth0:10 # for i in ${!NETDEV_*}; do name=CFGFILE_${i#NETDEV_} eval NETDEV=\$$i value=${CFGFILEPREFIX}ifcfg-$NETDEV eval $name=$value done; unset NETDEV # convert all device config names for PCMCIA interfaces: # # etc/sysconfig/network/ifcfg-eth0:1 # would become # etc/sysconfig/network/ifcfg-eth-pcmcia-0:1 # # Note: IP aliases are supported ;-) # for i in ${!CFGFILE_*}; do name=CFGFILE_PCMCIA_${i#CFGFILE_} eval CFGFILE_PCMCIA=\$$i tmp1=${CFGFILE_PCMCIA%%[0-9]*} tmp2=${CFGFILE_PCMCIA##*[^0-9:]} CFGFILE_PCMCIA=$tmp1-pcmcia-$tmp2 eval $name=$CFGFILE_PCMCIA done; unset CFGFILE_PCMCIA # # get NETMASK_xyz and BROADCAST_xyz for all interfaces # # IFCONFIG_16="192.168.5.245 broadcast 192.168.5.255 netmask 255.255.255.0" # function get_ifconfig() { shift # IP address comes first while [ $1 ]; do case $1 in netmask) NETMASK=$2; shift;; broadcast) BROADCAST=$2; shift;; pointopoint) REMOTE_IPADDR=$2; shift;; mtu) MTU=$2; shift;; esac shift done } for i in ${!IFCONFIG_*}; do eval get_ifconfig \$$i eval NETMASK_${i#IFCONFIG_}=$NETMASK; unset NETMASK eval BROADCAST_${i#IFCONFIG_}=$BROADCAST; unset BROADCAST eval REMOTE_IPADDR_${i#IFCONFIG_}=$REMOTE_IPADDR; unset REMOTE_IPADDR eval MTU_${i#IFCONFIG_}=$MTU; unset MTU done # # set default STARTMODE # for i in ${!NETDEV_*}; do eval STARTMODE_${i#NETDEV_}=manual done # Mark them hotplug if PCMCIA for I in $NETCONFIG_PCMCIA ; do eval STARTMODE$I="hotplug"; done # # Check for devices that are "activated" in rc.config and mark them such # # # # # Networking # # # # Number of network cards: "_0" for one, "_0 _1 _2 _3" for four cards # # # NETCONFIG="_0 _1 _2 _3 _4 _5 _6 _7" # for I in $NETCONFIG ; do eval STARTMODE$I="onboot"; done parse_ifconfig () { eval IFCFG=\$IFCONFIG$I DYNAMICIP="no" XXX=0 NETINDEX=$I eval NETMASK$I="" for X in $IFCFG ; do case $XXX in 0) ;; 1) eval NETMASK$I=\$X XXX=0 ;; 2) PTPADDR=$X XXX=0 ;; esac test "$X" = "netmask" && XXX=1 test "$X" = "pointopoint" && XXX=2 test "$X" = "dynamic" && DYNAMICIP="yes" done eval BROADCAST$I="" } for i in ${!NETDEV_*}; do I=_${i#NETDEV_} eval NETDEV=\$NETDEV$I; case "$NETDEV" in ippp*|isdn*) eval CFGFILE$I=$CFGFILEPREFIX"tmpcfg-\$NETDEV" parse_ifconfig;; *) ;; esac eval IPADDR=\$IPADDR$I; eval BROADCAST=\$BROADCAST$I; eval NETMASK=\$NETMASK$I; eval REMOTE_IPADDR=\$REMOTE_IPADDR$I; eval MTU=\$MTU$I; eval LINK_OPTIONS=\$LINK_OPTIONS$I; if [ $NETDEV ] && [ "$BROADCAST" != "netmask" ] ; then eval CFGFILE=\$CFGFILE$I; eval STARTMODE=\$STARTMODE$I; if [ "$STARTMODE" = "hotplug" ]; then eval CFGFILE=\$CFGFILE_PCMCIA$I; fi; # Check if file already exists, if it does then append .rpmnew if [ -f $CFGFILE ] ; then CFGFILE=$CFGFILE".rpmnew"; echo "Config file exists."; echo "Using $CFGFILE"; > $CFGFILE else echo "Creating $CFGFILE"; fi; # Handle the bootprotocol eval IFCONFIG=\$IFCONFIG$I; case "$IFCONFIG" in bootp) echo "BOOTPROTO=dhcp" >> $CFGFILE; ;; dhcpclient) echo "BOOTPROTO=dhcp" >> $CFGFILE; ;; *) echo "BOOTPROTO=none" >> $CFGFILE; ;; esac # The IP address if [ "$IPADDR" ] ; then echo "IPADDR=$IPADDR" >> $CFGFILE; fi # The netmask [ "$NETMASK" ] && echo "NETMASK=$NETMASK" >> $CFGFILE; # The broadcast [ "$BROADCAST" ] && echo "BROADCAST=$BROADCAST" >> $CFGFILE; # The pointopoint address [ "$REMOTE_IPADDR" ] && echo "REMOTE_IPADDR=$REMOTE_IPADDR" >> $CFGFILE; # MTU [ "$MTU" ] && echo "MTU=$MTU" >> $CFGFILE; # The Link options linke media type, tunnel, ... [ "$LINK_OPTIONS" ] && echo "LINK_OPTIONS=$LINK_OPTIONS" >> $CFGFILE; # The boot mode echo "STARTMODE=$STARTMODE" >> $CFGFILE; # We need this for pcmcia if [ "$STARTMODE" = "hotplug" ]; then echo "DHCLIENT_SET_DOWN_LINK=yes" >> $CFGFILE; fi; case "$NETDEV" in ippp*) echo "PROTOCOL=syncppp" >> $CFGFILE; echo "DYNAMICIP=$DYNAMICIP" >> $CFGFILE; echo "PTPADDR=$PTPADDR" >> $CFGFILE; echo "NETINDEX=$NETINDEX" >> $CFGFILE; ;; isdn*) echo "PROTOCOL=rawip" >> $CFGFILE; echo "PTPADDR=$PTPADDR" >> $CFGFILE; echo "NETINDEX=$NETINDEX" >> $CFGFILE; ;; *) ;; esac case "$NETDEV" in ctc*|escon*) echo "WAIT_FOR_CONNECTION=30" >> $CFGFILE;; esac fi done MAINCONFFILE=$CFGFILEPREFIX/config # Handle MODIFY_RESOLV_CONF_DYNAMICALLY if [ "$MODIFY_RESOLV_CONF_DYNAMICALLY" ]; then sed -e \ "s/^MODIFY_RESOLV_CONF_DYNAMICALLY=.*/MODIFY_RESOLV_CONF_DYNAMICALLY=$MODIFY_RESOLV_CONF_DYNAMICALLY/" \ $MAINCONFFILE > "$MAINCONFFILE.new" if [ -s $MAINCONFFILE.new ]; then mv $MAINCONFFILE.new $MAINCONFFILE fi; fi; if [ "$CLOSE_CONNECTIONS" ]; then sed -e \ "s/^CONNECTION_CLOSE_BEFORE_IFDOWN=.*/CONNECTION_CLOSE_BEFORE_IFDOWN=$CLOSE_CONNECTIONS/" \ $MAINCONFFILE > "$MAINCONFFILE.new" if [ -s $MAINCONFFILE.new ]; then mv $MAINCONFFILE.new $MAINCONFFILE fi; fi; # Handle the dummy device--taken from the old /etc/init.d/dummy script if [ "$NETCONFIG" != "YAST_ASK" -a "$SETUPDUMMYDEV" = "yes" ] ; then dummy=dummy0; while read i j ; do test $i = "dummy:" && dummy=dummy; done < /proc/net/dev ethdev="" defdev="" ipdef="" ipaddr="" for dev in $NETCONFIG; do eval ndev=\$NETDEV$dev if test -z "$defdev" ; then eval defdev=\$IPADDR$dev ipdef=$defdev fi case "$ndev" in eth*|tr*) if test -z "$ethdev" ; then eval ethdev=\$IFCONFIG$dev eval ipeth=\$IPADDR$dev fi ;; esac done if test -n "$ethdev" ; then dev=$ethdev ipaddr=$ipeth else dev=$defdev ipaddr=$ipdef fi if [ "$dev" -a "$dev" != "dhcpclient" ] ; then CFGFILE=$CFGFILEPREFIX"ifcfg-$dummy" echo "BOOTPROTO=none" > $CFGFILE echo "IPADR=$ipaddr" > $CFGFILE echo "NETMASK=255.255.255.255" > $CFGFILE echo "BROADCAST=255.255.255.255" > $CFGFILE echo "STARTMODE=onboot" > $CFGFILE fi fi; #Handle the hostname FQHOSTNAME=$FQHOSTNAME"" if [ "$FQHOSTNAME" ] ; then echo "$FQHOSTNAME" > etc/HOSTNAME fi #Move /etc/route.conf and notify root to be aware of it if [ -f etc/route.conf ] ; then mv etc/route.conf etc/sysconfig/network/routes echo "\ Hi, (Deutsche bersetzung siehe unten) As a part of the configuration changes made for 8.0 (/etc/sysconfig) the routing configuration have moved from /etc/route.conf to /etc/sysconfig/network/routes. Since we also now use the 'ip' com- mand to setup the routing options etc. have now changed. So if you en- counter problems with routing please consult the routing documentation by doing 'man route.conf' and the documentation for the iproute2 pack- age which can be found in /usr/share/doc/packages/iproute2. Sorry for any inconvienience. Bedingt durch die Konfigurationsumstellungen fr SuSE Linux 8.0 (/etc/sysconfig) ist die Routing Konfiguration von /etc/route.conf nach /etc/sysconfig/network/routes umgezogen. Da nun fr die Einstellungen das Kommando 'ip' verwendet wird, haben sich auch die Optionen gendert. Sollten also Probleme mit dem Routing auftreten, lesen Sie bitte die Dokumentation per 'man route.conf' und die Dokumentation zum Paket iproute2 die unter /usr/share/doc/packages/iproute2 zu finden ist. " > var/adm/notify/messages/routing_config fi # Put the Unique number in the config file UNIQUEINFFILE="var/lib/YaST/unique.inf" if [ -f $UNIQUEINFFILE ]; then while read inline; do case $inline in \[network\]*) while read netconf; do case $netconf in \[*\]*) break ;; *) UNIQUESTR=`echo $netconf | awk '{print $1}'` CONF=`echo $netconf | awk '{print $2}'` CONFNUMBER=`echo $CONF | awk -F';' '{print $2}'` if [ "$CONFNUMBER" = "" ]; then CONFNUMBER="0"; fi; CONFFILE="etc/sysconfig/network/ifcfg-eth"$CONFNUMBER if [ -f $CONFFILE ]; then . $CONFFILE if [ ! $UNIQUE ]; then echo "UNIQUE='$UNIQUESTR'" >> $CONFFILE fi; fi; ;; esac done ;; esac done < $UNIQUEINFFILE fi; # Remove stuff from rc.config if [ -x bin/fillup ] ; then bin/fillup -q -t -r -i -d "=" etc/rc.config \ var/adm/fillup-templates/remove_old_netconfig /dev/null test -s etc/rc.config.new && mv etc/rc.config.new etc/rc.config fi $INSSERV etc/init.d/network # # now turn attention to the dsl and modem config # function pppoed() { if [ -r etc/pppoed.conf ] ; then sed -n -e "s/^$1[ ]*=[ ]*\(.*\)/\1/p" etc/pppoed.conf | \ sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p" else sed -n -e "s/^$1[ ]*=[ ]*\(.*\)/\1/p" etc/pppoed.conf.rpmsave | \ sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p" fi } function wvdial() { sed -n -e "/\[Dialer $1/ {:x;p;n;/\[Dialer/q;bx}" etc/wvdial.conf | \ sed -n -e "s/^$2[ ]*=[ ]*\(.*\)/\1/p" | \ sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p" } function wvdial_bool() { sed -n -e "/\[Dialer $1/ {:x;p;n;/\[Dialer/q;bx}" etc/wvdial.conf | \ sed -n -e "s/^$2[ ]*=[ ]*\(.*\)/\1/p" | \ sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p" | \ sed -n -e "s/\"\(1\|yes\)\"/\"yes\"/p; t; s/.*/\"no\"/p" } # rc.dialout will be renamed later during the update # since 8.1 this can also happen before this script runs if ( [ -r etc/rc.dialout ] && `grep --quiet "^[^# ]" etc/rc.dialout` ) || ( [ -r etc/rc.dialout.rpmsave ] && `grep --quiet "^[^# ]" etc/rc.dialout.rpmsave` ) ; then if [ -r etc/rc.dialout ] ; then . etc/rc.dialout else . etc/rc.dialout.rpmsave fi $INSSERV etc/init.d/smpppd if [ -n "$ADSL_NAME_0" ] && [ -r etc/pppoed.conf -o -r etc/pppoed.conf.rpmsave ] ; then if [ ! -r etc/sysconfig/network/ifcfg-dsl0 ] && [ ! -r etc/sysconfig/network/providers/dsl-provider0 ] ; then echo "# generated during update" > etc/sysconfig/network/ifcfg-dsl0 echo PROVIDER=\"dsl-provider0\" >> etc/sysconfig/network/ifcfg-dsl0 echo STARTMODE=\"manual\" >> etc/sysconfig/network/ifcfg-dsl0 echo BOOTPROTO=\"none\" >> etc/sysconfig/network/ifcfg-dsl0 echo DEVICE=`pppoed "interface"` >> etc/sysconfig/network/ifcfg-dsl0 echo PPPMODE=\"pppoe\" >> etc/sysconfig/network/ifcfg-dsl0 echo "# generated during update" > etc/sysconfig/network/providers/dsl-provider0 chmod 0600 etc/sysconfig/network/providers/dsl-provider0 echo PROVIDER=\"$ADSL_NAME_0\" >> etc/sysconfig/network/providers/dsl-provider0 echo MODEMSUPPORTED=\"no\" >> etc/sysconfig/network/providers/dsl-provider0 echo ISDNSUPPORTED=\"no\" >> etc/sysconfig/network/providers/dsl-provider0 echo DSLSUPPORTED=\"yes\" >> etc/sysconfig/network/providers/dsl-provider0 echo USERNAME=`pppoed "user"` >> etc/sysconfig/network/providers/dsl-provider0 echo PASSWORD=`pppoed "password"` >> etc/sysconfig/network/providers/dsl-provider0 echo ASKPASSWORD=\"no\" >> etc/sysconfig/network/providers/dsl-provider0 echo DEMAND=`pppoed "demand"` >> etc/sysconfig/network/providers/dsl-provider0 echo IDLETIME=`pppoed "idle"` >> etc/sysconfig/network/providers/dsl-provider0 echo DNS1=`pppoed "dns1"` >> etc/sysconfig/network/providers/dsl-provider0 echo DNS2=`pppoed "dns2"` >> etc/sysconfig/network/providers/dsl-provider0 fi fi if [ -r etc/wvdial.conf ] && `grep --quiet "\[Dialer modem0\]" etc/wvdial.conf` ; then if [ ! -r etc/sysconfig/network/ifcfg-modem0 ] ; then echo "# generated during update" > etc/sysconfig/network/ifcfg-modem0 echo PROVIDER=\"ppp-provider0\" >> etc/sysconfig/network/ifcfg-modem0 echo STARTMODE=\"manual\" >> etc/sysconfig/network/ifcfg-modem0 echo BOOTPROTO=\"none\" >> etc/sysconfig/network/ifcfg-modem0 echo MODEM_DEVICE=`wvdial modem0 "Modem"` >> etc/sysconfig/network/ifcfg-modem0 echo SPEED=`wvdial modem0 "Baud"` >> etc/sysconfig/network/ifcfg-modem0 echo DIALCOMMAND=`wvdial modem0 "Dial Command"` >> etc/sysconfig/network/ifcfg-modem0 echo DIALPREFIX=`wvdial modem0 "Dial Prefix"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT1=`wvdial modem0 "Init1"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT2=`wvdial modem0 "Init2"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT3=`wvdial modem0 "init3"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT4=`wvdial modem0 "Init4"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT5=`wvdial modem0 "Init5"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT6=`wvdial modem0 "Init6"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT7=`wvdial modem0 "Init7"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT8=`wvdial modem0 "Init8"` >> etc/sysconfig/network/ifcfg-modem0 echo INIT9=`wvdial modem0 "Init9"` >> etc/sysconfig/network/ifcfg-modem0 echo PPPD_OPTIONS=`wvdial modem0 "PPPD Option"` >> etc/sysconfig/network/ifcfg-modem0 UNIQUEINFFILE="var/lib/YaST/unique.inf" if [ -f $UNIQUEINFFILE ]; then while read inline; do case $inline in \[Modem\]*) while read netconf; do case $netconf in \[*\]*) break ;; *) UNIQUESTR=`echo $netconf | awk '{print $1}'` CONF=`echo $netconf | awk '{print $2}'` CONFNUMBER=`echo $CONF | awk -F';' '{print $2}'` if [ "$CONFNUMBER" = "" ]; then CONFNUMBER="0"; fi; CONFFILE="etc/sysconfig/network/ifcfg-modem0" if [ -f $CONFFILE ]; then . $CONFFILE if [ ! $UNIQUE ]; then echo "UNIQUE=\"$UNIQUESTR\"" >> $CONFFILE fi; fi; ;; esac done ;; esac done < $UNIQUEINFFILE fi fi fi for i in 0 1 2 3 4 5 6 7 8 9 ; do NAME=DIALER_NAME_$i ENTRY=DIALER_ENTRY_$i if [ -n "${!NAME}" ] && [ -n "${!ENTRY}" ] && [ -r etc/wvdial.conf ] ; then if [ ! -r etc/sysconfig/network/providers/ppp-provider$i ] ; then echo "# generated during update" > etc/sysconfig/network/providers/ppp-provider$i chmod 0600 etc/sysconfig/network/providers/ppp-provider$i echo PROVIDER=\"${!NAME}\" >> etc/sysconfig/network/providers/ppp-provider$i echo MODEMSUPPORTED=\"yes\" >> etc/sysconfig/network/providers/ppp-provider$i echo ISDNSUPPORTED=\"no\" >> etc/sysconfig/network/providers/ppp-provider$i echo DSLSUPPORTED=\"no\" >> etc/sysconfig/network/providers/ppp-provider$i echo PHONE=`wvdial ${!ENTRY} "Phone"` >> etc/sysconfig/network/providers/ppp-provider$i echo USERNAME=`wvdial ${!ENTRY} "Username"` >> etc/sysconfig/network/providers/ppp-provider$i echo PASSWORD=`wvdial ${!ENTRY} "Password"` >> etc/sysconfig/network/providers/ppp-provider$i echo ASKPASSWORD=`wvdial_bool ${!ENTRY} "Ask Password"` >> etc/sysconfig/network/providers/ppp-provider$i echo STUPIDMODE=`wvdial_bool ${!ENTRY} "Stupid Mode"` >> etc/sysconfig/network/providers/ppp-provider$i echo COMPUSERVE=`wvdial_bool ${!ENTRY} "Compuserve"` >> etc/sysconfig/network/providers/ppp-provider$i echo DEMAND=`wvdial_bool ${!ENTRY} "Demand"` >> etc/sysconfig/network/providers/ppp-provider$i echo IDLETIME=`wvdial ${!ENTRY} "Idle Seconds"` >> etc/sysconfig/network/providers/ppp-provider$i echo DNS1=`wvdial ${!ENTRY} "DNS1"` >> etc/sysconfig/network/providers/ppp-provider$i echo DNS2=`wvdial ${!ENTRY} "DNS2"` >> etc/sysconfig/network/providers/ppp-provider$i fi fi done fi #!/bin/bash # $Id: ifplugd-selectif 1090 2004-09-17 07:44:56Z zoz $ # # Priority based interface selector for ifplugd # # If there are multiple interfaces which should be used alternatively depending # on which one actually has a link beat, this script will select the right one, # set this up and all alternatives down. Interfaces are considered to be used # alternatively if they have IFPLUGD_PRIORITY > 0 in their ifcfg-* # configuration file. # # # Copyright (c) 2004 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Christian Zoz cd /etc/sysconfig/network . scripts/functions test -f ./config && . ./config echo $0 $* if [ -z "$1" ] || [ -z "$2" ] ; then echo "Wrong arguments" > /dev/stderr exit 1 fi INTERFACE=$1 ACTION=$2 # Check all available interfaces if they have a ifplugd priority and collect # two ordered lists of interfaces with minor or major priority. unset MINOR MAJOR MINOR_A MAJOR_A PRIORITY=`get_ifplugd_priority $INTERFACE` if [ "$PRIORITY" -gt 0 ] ; then for IF in `ls /sys/class/net`; do test "$IF" = "$INTERFACE" && continue IFPRIO=`get_ifplugd_priority $IF` test "$IFPRIO" -eq 0 && continue if [ "$IFPRIO" -lt "$PRIORITY" ] ; then MINOR_A[$IFPRIO]="${MINOR_A[$IFPRIO]} $IF" else MAJOR_A[$IFPRIO]="${MAJOR_A[$IFPRIO]} $IF" fi done MINOR=${MINOR_A[*]} MAJOR=${MAJOR_A[*]} fi # for a in INTERFACE ACTION MAJOR MINOR FOUND; do # printf "%10s = %s\n" "$a" "${!a}" # done case $ACTION in up) write_cached_config_data link yes $INTERFACE commit_cached_config_data $INTERFACE # if current interface has an ifplugd priority, then shut down # all minor interfaces and set up this interface if no major # interfaces are already connected for IF in $MINOR; do if is_connected $IF; then echo ifdown $IF ifdown $IF fi done for IF in $MAJOR; do if is_connected $IF; then INTERFACE="" fi done if [ -n "$INTERFACE" ] ; then echo ifup $INTERFACE ifup $INTERFACE fi ;; down) write_cached_config_data link no $INTERFACE commit_cached_config_data $INTERFACE # if current interface has an ifplugd priority, then shut down # current interface and if no major interface is actually # connected then set up next minor interface, which actually # has a link. for IF in $MAJOR; do if is_connected $IF; then MINOR="" fi done echo ifdown $INTERFACE ifdown $INTERFACE for IF in `reverse $MINOR`; do if has_link $IF; then echo ifup $IF ifup $IF # Set up only one interface. If ifup returns # without dhcp client looking for a lease in # background, we consider this as success, # because we know that it has a link. case $? in $R_SUCCESS|$R_DHCP_BG) break ;; esac fi done ;; esac exit 0 #!/bin/bash # # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # Author: Olaf Kirch , 2002 # # $Id: ifup-802.1q 1183 2005-04-15 14:10:48Z zoz $ # usage () { echo $@ echo "usage: if{up,down}-802.1q [] [-o ]" echo " In most cases config==interface, for details see ifup(8)." echo "Any options will be ignored." exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* case "${SCRIPTNAME}" in ifup-*) ACTION=start ;; ifdown-*) ACTION=stop ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug unknown option $1 ;; esac shift done ###################################################################### # Check needed tools # if ! [ -x /usr/sbin/vconfig ]; then logerror "VLAN utilities not installed" exit $R_INTERNAL fi ###################################################################### # check presence of configuration file and source it # test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG ###################################################################### # get the base interface and check if it is available or up # # ETHERDEVICE may contain a device description which must first be # converted to the current interface name of that device if [ "$SCRIPTNAME" = ifup ] ; then ETHERDEVICE=`/sbin/getcfg-interface -- $ETHERDEVICE` if ! is_iface_available $ETHERDEVICE ; then logerror "interface ${ETHERDEVICE} is not available" exit $R_NODEV fi if ! is_iface_up $ETHERDEVICE ; then logerror "interface ${ETHERDEVICE} is not up" exit $R_NOTRUNNING fi fi ###################################################################### case $ACTION in start) /sbin/modprobe 8021q # Switches the naming type to vlan # The default is ethN.M but that's hard to reconcile # with the network script framework /usr/sbin/vconfig set_name_type vlan_plus_vid_no_pad >/dev/null #/usr/sbin/vconfig set_bind_type per_kernel # Now create the VLAN interface id=${INTERFACE#vlan} if [ "$INTERFACE" = "$id" ]; then logerror "interface $INTERFACE not named vlanNNN" exit $R_INTERNAL fi /usr/sbin/vconfig add $ETHERDEVICE $id >/dev/null ;; stop) if [ -d /sys/class/net/$INTERFACE ] ; then /usr/sbin/vconfig rem $INTERFACE >/dev/null fi ;; esac #!/bin/bash LC_CTYPE=POSIX dir=${1:?need argument: directory to work on} uuid_keys_dir="../../../var/lib/hardware/unique-keys" updatelog=update-log debuglog=update-log.debug incomplete=false echo echo Updating $dir cd $dir || { echo >&2 could not change into directory $dir. Exiting. exit 1 } test -f $updatelog && old $updatelog test -f $debuglog && old $debuglog echo logging to $dir/$updatelog echo > $updatelog ( date; echo ) > $debuglog echo Updating $dir >> $updatelog chmod 600 $updatelog $debuglog if test -w /var/adm/backup; then backupdir=/var/adm/backup/sysconfig-backup mkdir $backupdir 2>/dev/null || \ backupdir=$(mktemp -q -d /var/adm/backup/sysconfig.XXXXXX) else backupdir=/tmp/sysconfig-update mkdir $backupdir 2>/dev/null || \ backupdir=$(mktemp -q -d /tmp/sysconfig.backup.XXXXXX) fi chmod 700 $backupdir echo Backup copies of the original ifcfg files are saved in $backupdir >> $updatelog if test -w /var/log; then test -f /var/log/$(basename $0).log && old /var/log/$(basename $0).log exec 2>/var/log/$(basename $0).log export PS4="+ \$LINENO: " set -x fi function debuglog () { cat >> $debuglog } function log () { tee -a $updatelog echo >> $updatelog } function my_diff () { if test -x /usr/bin/diff; then /usr/bin/diff $* else echo fi } function get_uuid () { local UNIQUE eval $(grep "^UNIQUE=" $1) echo $UNIQUE } function get_data_from_uuid () { local Bus Slot Function Configured Available # note: Slot in unique file is really bus and slot eval $(grep "^\(Bus\|Slot\|Function\|Configured\|Available\)=" $1) #if test "$Configured" != yes; then # echo unconfigured # return #fi if test "$Available" != yes; then echo unavailable return fi if test -z "$Slot"; then return fi make_up_devpath $Slot $Function } function lookup_id () { local devpath=$1 unset HWD_ID eval $( getcfg -- bus-pci-$devpath 2>&1 ) if test -n "$HWD_ID"; then echo $HWD_ID fi } function get_slot () { local Slot eval $(grep "^Slot=" $1) echo $Slot } function get_function () { local Function eval $(grep "^Function=" $1) echo $Function } function get_bus () { local Bus eval $(grep "^Bus=" $1) echo $Bus } function get_parent_device () { local DEVICE ETHERDEVICE parent_device=$2 # dsl uses "DEVICE", vlan uses "ETHERDEVICE", we get the name as $2 eval $(grep "^$parent_device=" $1) eval echo \$$parent_device } function get_bootproto () { local BOOTPROTO eval $(grep "^BOOTPROTO=" $1) echo $BOOTPROTO } function make_up_devpath () { local devpath slot=$1 function=$2 slot=${slot#0x} while test ${#slot} -lt 4; do slot="0$slot" done function=${function#0x} if test -z "$function"; then function=0; fi # we can only assume a default for the PCI domain, since it doesn't # seem to be in the hardware database. domain=0000 devpath=${domain}":"${slot:0:2}":"${slot:2:2}"."${function} echo $devpath } function find_options () { local modconf=$1 iface=$2 a b rest echo searching module options for $iface | debuglog grep "^options[[:space:]]*$iface" $modconf | debuglog grep "^options[[:space:]]*$iface" $modconf \ | tail -n 1 \ | while read a b rest; do echo $rest; done } function my_cat () { local i for i in $*; do if test -e $i; then echo echo ">>> begin $i" sed 's/^/ /' $i echo "<<<" echo else echo file $i does not exist fi done } function append_hwcfg_info () { ( echo echo "# Note: a fixed alias name association has been found during update in" echo "# your modules.conf file. To make sure that the interface names are" echo "# the same as before the update, a file" echo "# /etc/sysconfig/hardware/hwcfg-static-0" echo "# has been created, which loads the network modules in a fixed order." echo "# It is recommended to use the new ifcfg-eth-id-00:d0:b7:b2:9c:a3 style" echo "# configuration names and remove the file hwcfg-static-0 file." echo ) >> $1 } if test -e do_not_run_convert_for_getconfig; then echo found do_not_run_convert_for_getconfig, exiting. | log exit 0 fi if ! test -d /sys/bus; then trap "umount /sys &>/dev/null" 0 1 2 11 15 mount -t sysfs sysfs /sys 2>&1 | debuglog fi # find files eligible for conversion ( ls -l | grep ifcfg | sort; echo ) | debuglog ifcfg_files=$(find . \ -name "ifcfg-*" \ -type f \ -maxdepth 1 \ '!' -name "ifcfg-lo" \ '!' -name "*~" \ '!' -name "*.rpm*" \ '!' -name "*.swap" \ '!' -name "*.bak" \ '!' -name "*.orig" \ '!' -name "#*" \ '!' -regex ".*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" \ | sed 's_^./__g' \ | sort ) ( echo valid files:; for i in $ifcfg_files; do echo $i; done; echo ) | debuglog if test -z "$ifcfg_files"; then # nothing to do echo "nothing to do." | debuglog exit 0 fi #( my_cat $ifcfg_files; echo) | debuglog cp -p $ifcfg_files $backupdir # same for routing configuration files. For later use. ( ls -l | grep ifroute | sort; echo ) | debuglog ifroute_files=$(find . \ -name "ifroute-*" \ -type f \ -maxdepth 1 \ '!' -name "ifroute-lo" \ '!' -name "*~" \ '!' -name "*.rpm*" \ '!' -name "*.swap" \ '!' -name "*.bak" \ '!' -name "*.orig" \ '!' -name "#*" \ '!' -regex ".*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" \ | sed 's_^./__g' \ | sort ) test -e routes && ifroute_files="routes $ifroute_files" ( echo valid files:; for i in $ifroute_files; do echo $i; done; echo ) | debuglog for i in $ifroute_files; do cp -p $i $backupdir done # set up an array with old interface names, and make a mapping to the new names. # And, count interfaces of particular types (to see whether there is more than one) unset n count_eth=0 for file in $ifcfg_files; do ((n++)) old_names_array[$n]=$file new_names_array[$n]=$file case $file in ifcfg-eth[0-9]*:*) ;; # don't count aliases ifcfg-eth[0-9]*) ((count_eth++)) # try to gather info about it, might make use of it later dev=${file#ifcfg-} ls -l /sys/class/net/$dev/device /sys/class/net/$dev/driver 2>&1 | debuglog ;; esac done ( echo count of plain eth interfaces found: $count_eth; echo ) | debuglog # # convert aliases for network drivers into hwcfg-static-0 file for backwards # compatibility # convert_aliases=false # aaa_base update could have been run already, and converted modules.conf into # modprobe.conf (without aliases for network drivers, though). It leaves # modules.conf.rpmsave where previous updates only left # modules.conf.rpmsave.old # also, it might leave an empty modules.conf, so we use modules.conf.rpmsave as # second choice for modconf in ../../modules.conf ../../modules.conf.rpmsave; do if test -e $modconf; then echo found $modconf | debuglog if test -s $modconf; then convert_aliases=true break else echo $modconf is empty | debuglog fi fi done if ! $convert_aliases; then echo "no modules.conf (or backup file) for conversion found" | debuglog fi #if $convert_aliases && grep -vq "\" $modconf | grep -q "^alias[[:space:]]*\(eth\|tr\)[[:digit:]]"; then # echo modules.conf contains no active aliases | debuglog # convert_aliases=false #fi ifaces_with_aliases= if $convert_aliases; then tmpfile=$(mktemp modconf.XXXXXX) tmpfile2=$(mktemp hwcfg.XXXXXX) grep -v "\" $modconf \ | grep "^alias[[:space:]]*\(eth\|tr\)[[:digit:]]" \ | sort -k 2 > $tmpfile echo configured network driver modules: | debuglog my_cat $tmpfile | debuglog cat <<-EOF > $tmpfile2 # This file has been created during sysconfig update for reasons of backward # compatibility. It is not necessary in the new sysconfig concept, and could # theoretically be deleted. # # It ensures that the drivers below are loaded in the same order as # before the system update, to make sure that the network interface names # are not changed on your system. STARTMODE='auto' EOF mod_count=0 mod_count_eth=0 mod_count_tr=0 while read a iface mod; do ((mod_count++)) case "$iface" in eth*) ((mod_count_eth++));; tr*) ((mod_count_tr++));; esac ifaces_with_aliases="$ifaces_with_aliases $iface" options=$(find_options $modconf $mod) ( echo echo "MODULE_$mod_count='$mod'" echo "MODULE_OPTIONS_$mod_count='$options'" ) >> $tmpfile2 unset iface mod done < $tmpfile my_cat $tmpfile | debuglog echo found $mod_count aliases | debuglog echo found $mod_count_eth ethernet aliases | debuglog echo found $mod_count_tr tr aliases | debuglog # if only one module was configured, or none at all (all off), then # just forget about the hwcfg file. if test $mod_count = 0; then echo no active aliases found | debuglog elif test $mod_count = 1; then ifaces_with_aliases= # no note in ifcfg file needed echo only 1 active alias found. Nothing to do. | debuglog elif test $mod_count_eth -le 1 -a $mod_count_tr -le 1; then ifaces_with_aliases= # no note in ifcfg file needed echo not more than 1 active alias of type ethernet / tr found. | debuglog else printf "%-35s" "processing modules.conf..." | log echo creating /etc/sysconfig/hardware/hwcfg-static-0 | log echo creating /etc/sysconfig/hardware/hwcfg-static-0 | debuglog test -d ../hardware || mkdir ../hardware test -e ../hardware/ test -e ../hardware/hwcfg-static-0 && old ../hardware/hwcfg-static-0 cp $tmpfile2 ../hardware/hwcfg-static-0 my_cat ../hardware/hwcfg-static-0 | debuglog fi #my_cat $tmpfile $tmpfile2 ../hardware/hwcfg-static-0 rm -f $tmpfile $tmpfile2 fi # here we attach a note to all ifcfg files, if a hwcfg-static-0 has been created. if test -n "$ifaces_with_aliases"; then for i in `seq 1 $n`; do file=${old_names_array[$i]} append_hwcfg_info $file done fi # # first, process everything but aliases # for i in `seq 1 $n`; do file=${old_names_array[$i]} # skip aliases case $file in ifcfg-*:*) continue;; esac printf "%-35s" "processing $file..." | log echo processing $file... | debuglog my_cat $file | debuglog case $file in # ifcfg-eth-pcmcia -> ifcfg-eth-bus-pcmcia ifcfg-eth-pcmcia*) if grep -q "^WIRELESS_" $file; then new_file=${file/eth/wlan-bus} else new_file=${file/eth/eth-bus} fi echo renamed to $new_file | log new_names_array[$i]=$new_file mv $file $new_file ;; # ifcfg-wlan-pcmcia -> ifcfg-wlan-bus-pcmcia ifcfg-wlan-pcmcia*) new_file=${file/wlan/wlan-bus} echo renamed to $new_file | log new_names_array[$i]=$new_file mv $file $new_file ;; # ifcfg-ppp -> ifcfg-type-modem etc ifcfg-ppp) new_file=ifcfg-type-modem echo renamed to $new_file | log new_names_array[$i]=$new_file mv $file $new_file ;; # ifcfg-ppp -> ifcfg-modem etc ifcfg-ppp*) new_file=${file/ifcfg-ppp/ifcfg-modem} echo renamed to $new_file | log new_names_array[$i]=$new_file mv $file $new_file ;; # ifcfg-eth -> ifcfg-type-eth etc ifcfg-eth|ifcfg-ippp|ifcfg-isdn|ifcfg-dummy|ifcfg-wlan|ifcfg-plip|ifcfg-slip|ifcfg-tr) new_file=${file/ifcfg/ifcfg-type} echo renamed to $new_file | log new_names_array[$i]=$new_file mv $file $new_file ;; ## process ifcfg-eth* files. they will be renamed to the corresponding bus-location # ifcfg-eth* -> ifcfg-bus-pci-0000:00:00.0 ifcfg-eth[0-9]*|ifcfg-wlan[0-9]*) wireless=false case $file in *wlan*) wireless=true;; esac if grep -q "^WIRELESS_" $file; then wireless=true fi if $wireless; then interface_type=wlan persistent_prefix=wn else interface_type=eth persistent_prefix=en fi echo wireless=$wireless, interface_type=$interface_type | debuglog unset uuid uuid=$(get_uuid $file) # don't change this interface configuration if it the only one of its kind. #if test $count_eth -le 1; then # echo unchanged, since there is no other device of this type | log # continue #fi if test -n "$uuid"; then echo found unique string: $uuid" " | debuglog uuid_file="$uuid_keys_dir/$uuid" #ls -l "$uuid_keys_dir/$uuid" 2>&1 | debuglog my_cat "$uuid_keys_dir/$uuid" 2>&1 | debuglog if test -e $uuid_file; then unset devpath unset new_file devpath=$(get_data_from_uuid $uuid_file) if test "$devpath" = unconfigured; then echo found matching entry in hardware database, but card has not been configured | log continue elif test "$devpath" = unavailable; then echo found matching entry in hardware database, but card is currently unavailable | log continue elif test -n "$devpath"; then echo "resulting devpath for $file: $devpath" | debuglog if ! $wireless; then new_file=ifcfg-bus-pci-$devpath else new_file=ifcfg-wlan-bus-pci-$devpath fi echo will use filename $new_file | debuglog fi if test -n "$devpath" -a -d /sys/bus; then echo sysfs is mounted, trying to look up hardware address... | debuglog id=$(lookup_id $devpath 2>/dev/null) if test -n "$id"; then echo found id: $if | debuglog new_file=ifcfg-$interface_type-id-$id echo will use filename $new_file | debuglog fi else echo sysfs does not seem to be mounted, no look up of hardware address possible... | debuglog fi if test -n "$new_file"; then echo -n converted to $new_file | log ( echo; echo converted to $new_file ) | debuglog echo "# converted during sysconfig update from $file" > $new_file echo "# (which was backed up to $backupdir/$file)" >> $new_file chmod --reference $file $new_file cat $file >> $new_file #bootproto=$(get_bootproto $file) #if test "$bootproto" != dhcp; then iface_number=${file#ifcfg-wlan} # can't use variables in parameter substitution, too bad iface_number=${iface_number#ifcfg-eth} persistent_name="$persistent_prefix$iface_number" ( echo "# You may set an interface name which is independant of the order of driver loading." echo "# Note, though, that the genuine names (e.g. eth*) cannot be used here." echo "#PERSISTENT_NAME='$persistent_name'" ) >> $new_file #fi my_cat $new_file | debuglog ( my_diff -u $file $new_file 2>&1; echo ) | debuglog rm $file new_names_array[$i]=$new_file fi else echo -n no file matching uuid $uuid found | log incomplete=true fi else echo -n not found in hardware database. Probably /etc/init.d/hwscan was disabled. | log incomplete=true fi echo ;; # ifcfg- -> ifcfg-id- ifcfg-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]*) new_file=${file/ifcfg/ifcfg-id} echo renamed to $new_file | log echo $file renamed to $new_file | debuglog mv $file $new_file new_names_array[$i]=$new_file ;; *) echo ;; esac done echo "pass #1 done." | log echo "pass #1 done." | debuglog # looking for wlan interfaces that are not converted yet (no busid found etc) for i in `seq 1 $n`; do file=${old_names_array[$i]} case $file in ifcfg-wlan|ifcfg-wlan0) printf "%-35s" "processing $file..." | log echo processing $file... | debuglog if test ${old_names_array[$i]} = ${new_names_array[$i]}; then # this means, it has not been handled above, and it's probably the only one of it's kind new_file=ifcfg-type-wlan echo renamed to $new_file | log echo $file renamed to $new_file | debuglog mv $file $new_file new_names_array[$i]=$new_file fi ;; esac done echo "pass #2 done." | log echo "pass #2 done." | debuglog # # process files that have been skipped so far: the ip aliases # for i in `seq 1 $n`; do file=${old_names_array[$i]} # files other than aliases have already be processed above case $file in ifcfg-eth-*) continue;; # these ones contain colons but are no aliases ifcfg-*:*) ;; *) continue;; esac printf "%-35s" "processing $file..." | log echo processing $file... | debuglog my_cat $file | debuglog unset base_interface for parent in `seq 1 $n`; do if test ${old_names_array[$parent]} = ${file%:*}; then echo parent interface was ${old_names_array[$parent]}, is now ${new_names_array[$parent]} | debuglog base_interface=${new_names_array[$parent]} break fi done if ! test -f $base_interface; then echo warning: file $file defines an alias to $base_interface, but base interface does not exist | log continue fi label=${file#*:} unset address network netmask broadcast startmode commented_out while read line; do case $line in IPADDR=*) address=${line/IPADDR=} ;; NETWORK=*) network=${line/NETWORK=} ;; NETMASK=*) netmask=${line/NETMASK=} ;; BROADCAST=*) broadcast=${line/BROADCAST=} ;; STARTMODE=*) startmode=${line/STARTMODE=} ;; esac done < $file if test -n "$address"; then ( echo -n "added to $base_interface " if test ${old_names_array[$parent]} != ${new_names_array[$parent]}; then echo -n "(former ${old_names_array[$parent]}) " fi echo "as IPADDR_${label}" ) | log echo >> $base_interface echo "# Added during conversion from former $file file." >> $base_interface case "$startmode" in *off*|*manual*) commented_out="#" echo "# This entry has been added as comment because STARTMODE was off or manual." >> $base_interface esac ( echo ${commented_out}IPADDR_${label}=$address echo ${commented_out}LABEL_${label}=${label} if test -n "$network"; then echo ${commented_out}NETWORK_${label}=${network}; fi if test -n "$netmask"; then echo ${commented_out}NETMASK_${label}=${netmask}; fi if test -n "$broadcast"; then echo ${commented_out}BROADCAST_${label}=${broadcast}; fi ) >> $base_interface my_cat $base_interface | debuglog else echo fi rm $file done echo "pass #3 done." | log echo "pass #3 done." | debuglog # # find new master devices of dsl and vlan # for i in `seq 1 $n`; do file=${old_names_array[$i]} # files other than aliases have already be processed above case $file in ifcfg-*:*) continue;; # skip aliases ifcfg-dsl*) parent_variable=DEVICE;; ifcfg-vlan*) parent_variable=ETHERDEVICE;; *) continue ;; esac printf "%-35s" "processing $file..." | log echo processing $file... | debuglog my_cat $file | debuglog unset device device=$(get_parent_device $file $parent_variable) echo device: $device | debuglog unset base_interface for parent in `seq 1 $n`; do if test ${old_names_array[$parent]} = ifcfg-$device; then echo parent interface was ${old_names_array[$parent]}, is now ${new_names_array[$parent]} | debuglog base_interface=${new_names_array[$parent]} break fi done echo base_interface: $base_interface |debuglog if ! test -f $base_interface; then echo warning: file $file uses $base_interface as parent device, but that does not exist | log continue fi new_device=$base_interface new_device=${new_device#ifcfg-} old_device=$device #echo old_ $old_device new_ $new_device if test "$new_device" != "$old_device"; then echo "$parent_variable='$new_device'" | debuglog tmpfile=$(mktemp ifcfg.XXXXXX) chmod --reference $file $tmpfile sed "s/^$parent_variable=.*/$parent_variable='$new_device'/" \ < $file > $tmpfile mv $tmpfile $file echo "new parent device '$new_device' added to $file" | log else echo unchanged | log fi done echo "pass #4 done." | log echo "pass #4 done." | debuglog for file in routes; do test -e $file || continue echo "processing $file..." | log echo processing $file... | debuglog my_cat $file | debuglog tmpfile=$(mktemp ifcfg.XXXXXX) touch $tmpfile chmod --reference $file $tmpfile while read addr gw mask route_to_iface rest; do route_to_iface_new=$route_to_iface case "$addr" in def*|[0-9]*) # this is a line that contains a route for interface in `seq 1 $n`; do if test ifcfg-$route_to_iface = ${old_names_array[$interface]}; then if test ${old_names_array[$interface]} != ${new_names_array[$interface]}; then route_to_iface_new=${new_names_array[$interface]} route_to_iface_new=${route_to_iface_new#ifcfg-} echo route to $route_to_iface changed to $route_to_iface_new | log fi break fi done ;; esac # special case (bug #38285) -- if there is only one route line, and only # one configured interface _without_ UNIQUE key, we may replace "eth0" by "-": if test $count_eth = 1 \ -a "$addr" = "default" \ -a "$route_to_iface_new" = "eth0" \ -a $(wc -l < $file) = 1 then route_to_iface_new="-" fi echo "$addr $gw $mask $route_to_iface_new $rest" >> $tmpfile done < $file ( my_diff -u $backupdir/$file $tmpfile 2>&1; echo ) | debuglog if cmp -s $file $tmpfile; then rm $tmpfile else rm $file mv $tmpfile $file fi done echo "pass #5 done." | log echo "pass #5 done." | debuglog # # ifroute-* files might need to be renamed. # for file in $ifroute_files; do # case $file in # ifroute-eth*) # # FIXME # # done # echo "pass #6 done." | log # echo "pass #6 done." | debuglog ( if $incomplete; then cat <<-EOF Update is INCOMPLETE The conversion of the network configuration could not completed due to missing data. Please check the log file /etc/sysconfig/network/$updatelog backup files in $backupdir and documentation /usr/share/doc/packages/sysconfig/README. EOF fi ) | log if test -w /var/adm/notify/messages; then ( cat <<-EOF Dear Sysadmin, the network configuration scheme has been changed. Please refer to the release notes and the update log file (/etc/sysconfig/network/$updatelog) to check for any changes that were done on system update. EOF if $incomplete; then echo Warning: the update of network configuration could not be echo completed. Please check /etc/sysconfig/network/$updatelog, echo backup files in $backupdir and echo /usr/share/doc/packages/sysconfig/README echo fi echo " Your SuSE Team" ) > /var/adm/notify/messages/sysconfig-update-notify fi exit 0 #!/bin/bash # Network interface configuration # # Copyright (c) 2002-2003 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Michal Svec # Mads Martin Joergensen # # $Id: functions 1189 2005-04-20 06:26:10Z zoz $ # . /etc/sysconfig/network/scripts/functions.common # RUN_FILES_BASE contains the path to the configuration data cache. # It __must__ __not__ contain a trailing slash. RUN_FILES_BASE=/var/run/sysconfig NETWORK_RUNFILE="$RUN_FILES_BASE/network" # # to test the next two functions: # # for i in $(seq 0 32); do # echo $i: $(pfxlen2mask $i) " ---> " $(mask2pfxlen $(pfxlen2mask $i)) # done mask2pfxlen() { local i octet mask width=0 IFS_SAVE=$IFS; IFS="." mask=($*) IFS=$IFS_SAVE test -n "$mask" || return for octet in 0 1 2 3; do test "${mask[octet]}" -ge 0 -a "${mask[octet]}" -le 255 2>/dev/null \ || return for i in 128 192 224 240 248 252 254 255; do test ${mask[octet]} -ge $i && ((width++)) done done test $width -ge 0 && echo $width } pfxlen2mask() { local i bit n=1 width=$1 test -n "$width" || return 0 for ((i=1; $i<=$width; i++)); do bit[$i]=1 done; echo for o in 1 2 3 4; do octet[$o]=0 for i in 128 64 32 16 8 4 2 1; do test ${bit[$n]:-0} -eq 1 && ((octet[$o] = ${octet[$o]} + $i)) ((n++)) done done echo ${octet[1]}.${octet[2]}.${octet[3]}.${octet[4]} } is_iface_available () { test -z "$1" && return 1 case $1 in ippp*|isdn*) return 0 ;; modem*|dsl*|ppp*) return 0 ;; vlan*) return 0 ;; sit*|gre*|ipip*) return 0 ;; esac test "${SCRIPTNAME%%-*}" = ifdown -a "$MODE" = hotplug && return 0 test "${SCRIPTNAME%%-*}" = ifup -a "$BONDING_MASTER" = yes && return 0 ip link list $1 &>/dev/null } is_iface_up () { test -z "$1" && return 1 case "`LC_ALL=POSIX ip link show $1 2>/dev/null`" in *$1*UP*) ;; *) return 1 ;; esac } get_hwaddress () { test -z "$1" && return 1 local a b="" for a in $(LC_ALL=POSIX ip link show $1 2>/dev/null ); do if [ "$b" = "link/ether" ] ; then echo $a break fi b=$a done } # This will echo the first address listed for the given interface. get_ipv4address () { test -z "$1" && return 1 local a b c while read a b c; do if [ "$a" = inet ] ; then break fi done < <(LC_ALL=POSIX ip -4 address list "$1" 2>/dev/null) test -z "$b" && return 1 echo ${b%%/*} } convert_ipv4address_to_6to4 () { printf "2002:%02x%02x:%02x%02x::1\n" $(IFS=.; echo $1) } convert_6to4_to_ipv4address () { ADDR=$1 PART_1=`expr $ADDR : '2002:\([^:]*\):[^:]*:'` PART_2=`expr $ADDR : '2002:[^:]*:\([^:]*\):'` if [ "$PART_1" = "" -o "$PART_2" = "" ]; then echo $ADDR fi NORM_1=`printf "%04x" 0x$PART_1` NORM_2=`printf "%04x" 0x$PART_2` printf "::%u.%u.%u.%u" \ 0x${NORM_1:0:2} 0x${NORM_1:2:2} \ 0x${NORM_2:0:2} 0x${NORM_2:2:2} } # Loads one instance of the module 'bonding' with the name of the interface. # Usage: load_bond $INTERFACE $BONDING_MODULE_OPTIONS # !!! Don't use module option 'max_bonds'. It will break this code !!! # !!! Use one configuration file per bonding interface !!! load_bond() { local IF BIF NIF OPTS test -z "$1" && return 0 IF=$1 shift OPTS=$* BIF=`cd /sys/class/net; ls -d bond* 2>/dev/null` NIF= if ls /sys/class/net/$IF &>/dev/null; then return 0 else /sbin/modprobe -o $IF bonding $OPTS for a in `seq 100`; do for b in `cd /sys/class/net; ls -d bond* 2>/dev/null`; do for c in $BIF; do test "$b" = "$c" && continue 2 done NIF=$b # "$NIF $b" break done test -n "$NIF" && break usleep 100000 done if [ "$NIF" != "$IF" ] ; then nameif -r $IF $NIF fi fi if ls /sys/class/net/$IF &>/dev/null; then return 0 else return 1 fi } get_startmode () { local STARTMODE eval `grep STARTMODE ifcfg-$1 2>/dev/null` echo "$STARTMODE" } get_ifplugd_priority () { unset HWD_CONFIG_0 eval `getcfg -d . -f ifcfg- "$1"` local IFPLUGD_PRIORITY=0 declare -i IFPLUGD_PRIORITY eval `grep IFPLUGD_PRIORITY ifcfg-$HWD_CONFIG_0 2>/dev/null` echo "$IFPLUGD_PRIORITY" } # We have to write status files per interface or per configuration for at least # these reasons: # 1) remember the used configuration if getcfg cannot get it after the device # has been unplugged # 2) store ifup options while restarting the network (e.g. the choosen provider) # 3) pass status information to smpppd to allow kinternet to show them to the # user. # 4) control running ifup/down processes (ifdown has to stop a running ifup) # To handle this cached information, there are the *_cached_config_data # functions. # write_cached_config_data [PFX=] # needs at least 3 arguments # - the type of data to write: config, options, state, ... # - the data itself # - the configuration or interface name # - the file prefix is optional and must be given in the form PFX= # (default prefix is 'if-' # prints nothing # You have to commit changes after writing with commit_cached_config_data() write_cached_config_data () { touch $RUN_FILES_BASE/tmp/test 2>/dev/null || return 1 local PFX FILE TMPFILE MODFILE test -n "$4" && eval $4 : ${PFX:=if-} FILE=$RUN_FILES_BASE/$PFX$3 MODFILE=$RUN_FILES_BASE/tmp/$PFX$3.$$ # MODFILE TMPFILE=$RUN_FILES_BASE/tmp/$PFX$3.$$.tmp # MODFILE test -f $MODFILE || cp $FILE $MODFILE 2>/dev/null FILE=$MODFILE # MODFILE touch $FILE while IFS== read a b; do case $a in $1) ;; *) echo "$a=$b" ;; esac done < <(cat $FILE) > $TMPFILE if [ -n "$2" ] ; then echo "$1=$2" >> $TMPFILE fi if [ -f $TMPFILE ] ; then mv $TMPFILE $FILE fi } # INTERFACE=`read_cached_config_data [PFX=]` # needs at least 2 arguments # - the type of data to read: config, options, state, ... # - the configuration or interface name # - the file prefix is optional and must be given in the form PFX= # (default prefix is 'if-' # prints the wanted data read_cached_config_data () { touch $RUN_FILES_BASE/tmp/test 2>/dev/null || return 1 local PFX test -n "$3" && eval $3 : ${PFX:=if-} if [ -r "$RUN_FILES_BASE/$PFX$2" ] ; then while IFS== read a b; do case $a in $1) echo "$b" ;; *) ;; esac done < $RUN_FILES_BASE/$PFX$2 fi } # delete_from_cached_config_data [ []] [PFX=] # Deletes an entry "$1=$2" from all config data cache files. # If there is a third argument, we delete it only from this configuration. All # handled files that are empty after modification will be deleted. # If $2 is empty then remove line $1=* from this ($3) or all configuration. # If $1 is '*' it will remove all entries. # # !!! WIP !!! # It currently works only on one file and 2nd and 3rd argument are mandatory # !!! WIP !!! # # needs at least 1 argument # - the type of data to delete: config, options, state, ... # - optional the data itself # - optional the configuration or interface name # - the file prefix is also optional and must be given in the form PFX= # (default prefix is 'if-' # prints nothing # You have to commit changes after deleting with commit_cached_config_data() delete_from_cached_config_data () { touch $RUN_FILES_BASE/tmp/test 2>/dev/null || return 1 local TYPE DATA PFX FILE TMPFILE MODFILE NAME TYPE=$1; shift if [ "$1" = "${1#PFX}" ] ; then DATA=$1; shift fi if [ "$1" = "${1#PFX}" ] ; then NAME=$1; shift fi test -n "$1" && eval $1 : ${PFX:=if-} # for FILE in $RUN_FILES_BASE/$PFX${NAME:-*}; do MODFILE # TMPFILE=${FILE##*/} MODFILE # TMPFILE=${FILE%$TMPFILE}tmp/$TMPFILE MODFILE FILE=$RUN_FILES_BASE/$PFX$NAME # MODFILE MODFILE=$RUN_FILES_BASE/tmp/$PFX$NAME.$$ # MODFILE TMPFILE=$RUN_FILES_BASE/tmp/$PFX$NAME.$$.tmp # MODFILE test -f $MODFILE || cp $FILE $MODFILE 2>/dev/null FILE=$MODFILE # MODFILE touch $FILE if [ -s "$FILE" ] ; then while IFS== read a b; do case $a in $TYPE) if [ "$b" != "$DATA" -a -n "$DATA" ] ; then echo "$a=$b" fi ;; *) echo "$a=$b" ;; esac done < <(cat $FILE) > $TMPFILE fi if [ -f $TMPFILE ] ; then mv $TMPFILE $FILE fi if [ ! -s $FILE ] ; then rm -Rf $FILE fi # done MODFILE } # HWDESC NIX < <(grep_cached_config_data [PFX=]) # needs 2 arguments: # - the type of data to grep for: config, options, state, ... # - the data itself # - the file prefix is optional and must be given in the form PFX= # (default prefix is 'if-' # prints all matching configuration names in a single line grep_cached_config_data () { touch $RUN_FILES_BASE/tmp/test 2>/dev/null || return 1 local PFX test -n "$3" && eval $3 : ${PFX:=if-} local restore_nullglob="$(shopt -p nullglob)" shopt -s nullglob for f in $RUN_FILES_BASE/$PFX*; do while IFS== read a b; do case $a in $1) if [ "$b" = "$2" ] ; then echo -n "${f#$RUN_FILES_BASE/$PFX} " fi ;; esac done < $f done eval $restore_nullglob echo } # Writing and deleting cached config data is always done in temporary files. To # make this changes visible in the right file you must commit the changes. This # helps to make file changes atomic. commit_cached_config_data () { touch $RUN_FILES_BASE/tmp/test 2>/dev/null || return 1 local PFX FILE MODFILE test -n "$2" && eval $2 : ${PFX:=if-} FILE=$RUN_FILES_BASE/$PFX$1 MODFILE=$RUN_FILES_BASE/tmp/$PFX$1.$$ if [ -f $MODFILE ] ; then mv $MODFILE $FILE else rm -f $FILE fi } is_connected () { case `read_cached_config_data status $1` in connected) return 0 ;; connecting) return 0 ;; # might be wrong, test for link to esac return 1 } has_link () { case `read_cached_config_data link $1` in yes) return 0 ;; esac return 1 } # As i'm not completely sure that the following two functions are unused i will # now comment them out. Lets see if somebody complains. c.zoz # # # HWDESC IFACE < <(grep_cached_hwdesc_data ) # # needs one argument: # # - the configuration name # # echos all "HWDESC INTERFACE MODE" triples which could match the given config # grep_cached_hwdesc_data() { # local _HWDESC _IFACE _MODE PFX # : ${PFX:=hwdesc-} # local restore_nullglob="$(shopt -p nullglob)" # shopt -s nullglob # for f in $RUN_FILES_BASE/$PFX*$1*; do # _HWDESC="${f#$RUN_FILES_BASE/$PFX}" # test -z "$_HWDESC" && continue # _IFACE=`read_cached_config_data interface $_HWDESC PFX=$PFX` # test -z "$_IFACE" && continue # _MODE=`read_cached_config_data mode $_HWDESC PFX=$PFX` # echo $_HWDESC $_IFACE $_MODE # done # eval $restore_nullglob # } # # # delete_chached_hwdesc_file # # needs 2 arguments # # - the hardware description # # - the interface # # It will delete all file below $RUN_FILES_BASE that # # - have a filename hwdesc-$HWDESC or # # - contain a line 'interface=$INTERFACE' # delete_cached_hwdesc_file() { # local PFX _LINE _FILE # : ${PFX:=hwdesc-} # local restore_nullglob="$(shopt -p nullglob)" # shopt -s nullglob # for _FILE in $RUN_FILES_BASE/$PFX*; do # if [ "${_FILE#$RUN_FILES_BASE/$PFX}" = "$1" ] ; then # rm -Rf $_FILE # continue # fi # while read _LINE; do # if [ "$_LINE" = "interface=$2" ] ; then # rm -Rf $_FILE # continue 2 # fi # done < $_FILE # done # eval $restore_nullglob # } # This function looks for interfaces which depend on the given interface. It # prints a list with all depending interfaces. It returns 0 if there are # depending interfaces) and !=0 if not. # Currently it checks only for vlan and bonding interfaces. # FIXME: Add other types of interfaces that depend on others. get_depending_ifaces() { local VLAN_PATH BOND_PATH DEP_IFACES DEP_VLANS DEP_BONDS BASE_IFACE VLAN_PATH="/proc/net/vlan" BOND_PATH="/proc/net/bonding" BASE_IFACE="$1" DEP_IFACES="" if [ -z "$BASE_IFACE" ]; then return 1 fi if [ -d "$VLAN_PATH" ]; then DEP_VLANS=`cd "$VLAN_PATH" grep -lw "Device: *$BASE_IFACE" *` DEP_IFACES="$DEP_VLANS" fi if [ -d "$BOND_PATH" ]; then DEP_BONDS=`cd "$BOND_PATH" grep -lw "Slave Interface: *$BASE_IFACE" *` DEP_IFACES="$DEP_IFACES${DEP_BONDS:+ $DEP_BONDS}" fi if [ -z "$DEP_IFACES" ]; then return 1 else echo "$DEP_IFACES" return 0 fi } #! /bin/bash # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved. # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Christian Zoz , 2002 # $Id: ifdown-connection 1090 2004-09-17 07:44:56Z zoz $ # # TODO: # when closing first use -TERM (except if we just try with -0) # for ichecking improve output and remove output from getdests() and nfscheck() usage () { echo $@ echo "usage: if{down,status}-connection [] [-o ]" echo " In most cases config==interface, for details see man 8 ifup" echo "options are: [on]boot : we are currently booting (or shutting down)" echo " hotplug : we are handling a hotplug event" echo " force : use -KILL instead of -TERM" echo " try : don't kill any process" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* case "${SCRIPTNAME}" in ifdown-*) ACTION=close ;; ifstatus-*) ACTION=check ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual FIRST_SIGNAL=-15 SECOND_SIGNAL="" while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; try) FIRST_SIGNAL=-0 ;; force) SECOND_SIGNAL=-9 ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug "unknown option $1 ignored" ;; esac shift done ###################################################################### # get the interface and check if it is available or up # we do this just for fun, because there might be connections of already # unplugged devices which are neither available nor up # if ! is_iface_available ${INTERFACE%:*} ; then debug "interface ${INTERFACE} is not available" # exit $R_NODEV fi if ! is_iface_up ${INTERFACE%:*} ; then debug "interface ${INTERFACE} is not up" # exit $R_NOTRUNNING fi ###################################################################### # check presence of configuration file and source it # test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG nfscheck() { local DEVICE MTP TYPE OPTS REST ALLMTP="" while read DEVICE MTP TYPE OPTS REST; do test "$TYPE" != nfs && continue HOST=${DEVICE%:*} for OPT in `IFS=,; echo $OPTS`; do case $OPT in addr*) HOST_ADDR=${OPT#addr=};; esac done ifuser $INTERFACE $HOST_ADDR || continue ALLMTP="$ALLMTP $MTP" NFS_MESSAGE="$NFS_MESSAGE\n $DEVICE on $MTP (using $INTERFACE)" done < /etc/mtab test -z "`echo $ALLMTP`" || return 1 } getdests() { local PROTO RQ SQ LOCAL FOREIGN STATE REST FHOST FPORT LHOST LPORT N=0 TCP_PORTS="" UDP_PORTS="" while read PROTO RQ SQ LOCAL FOREIGN STATE REST; do N=$((N+1)); test $N -le 2 && continue FHOST=${FOREIGN%:*} FPORT=${FOREIGN##*:} ifuser $INTERFACE $FHOST || continue if [ "$1" != "-a" -a "$2" != "-a" ] ; then case "$STATE" in FIN_WAIT*|CLOSE_WAIT|TIME_WAIT|CLOSE) continue; esac case "$FHOST" in 127.0.0*|0.0.0.0) continue; esac case "$FPORT" in \*|53) continue; esac fi LHOST=${LOCAL%:*} LPORT=${LOCAL##*:} case "$PROTO" in tcp) for p in $TCP_PORTS; do test "$p" = "$LPORT" && continue 2 done TCP_PORTS="$TCP_PORTS $LPORT" ;; udp) for p in $UDP_PORTS; do test "$p" = "$LPORT" && continue 2 done UDP_PORTS="$UDP_PORTS $LPORT" ;; *) OTHER_LINES="$OTHER_LINES $PROTO $RQ $SQ $LOCAL $FOREIGN $STATE $REST" ;; esac done < <(netstat -n -tuw) # Alte Codefragmente: # LHIP=`echo $(sed -n -e 's/[[:space:]]*localhost.*$//p' /etc/hosts) \ # | sed 's/ /\\\\|/g'` # DESTS=`netstat -ntuw | getdests` # DESTS=`echo $DESTS | sort -u | grep -v "$LHIP"` # /sbin/ifuser $INTERFACE $DESTS && exit 1 test -z "`echo $TCP_PORTS$UDP_PORTS`" || return 1 } case $ACTION in close) test "$CONNECTION_CLOSE_BEFORE_IFDOWN" != "yes" && exit $R_SUCCESS test "$CONNECTION_SEND_KILL_SIGNAL" = "yes" \ -a "$FIRST_SIGNAL" = "-15" && SECOND_SIGNAL=-9 debug "Close all net connections" getdests # First send SIGTERM to all processes (or -0 if option try was set) if test -n "${TCP_PORTS}" ; then debug && fuser -auvn tcp ${TCP_PORTS} fuser -n tcp $FIRST_SIGNAL -k ${TCP_PORTS} fi if test -n "${UDP_PORTS}" ; then debug && fuser -auvn udp ${UDP_PORTS} fuser -n udp $FIRST_SIGNAL -k ${UDP_PORTS} fi if [ "$CONNECTION_UMOUNT_NFS_BEFORE_IFDOWN" = "yes" ]; then nfscheck for MTP in $ALLMTP; do debug && fuser -auvm $MTP fuser $FIRST_SIGNAL -k -m $MTP umount -v $MTP done fi # If option force was set we will send SIGKILL to every process that is # still active if [ -n "$SECOND_SIGNAL" ] ; then sleep 3 getdests if test -n "${TCP_PORTS}" ; then debug && fuser -auvn tcp ${TCP_PORTS} fuser -n tcp $SECOND_SIGNAL -k ${TCP_PORTS} fi if test -n "${UDP_PORTS}" ; then debug && fuser -auvn udp ${UDP_PORTS} fuser -n udp $SECOND_SIGNAL -k ${UDP_PORTS} fi if [ "$CONNECTION_UMOUNT_NFS_BEFORE_IFDOWN" = "yes" ]; then nfscheck for MTP in $ALLMTP; do debug && fuser -auvm $MTP fuser $SECOND_SIGNAL -k -m $MTP umount -f -v $MTP done fi fi ;; check) test "$CONNECTION_CHECK_BEFORE_IFDOWN" != yes \ -a "$CONNECTION_SHOW_WHEN_IFSTATUS" != yes && exit $R_SUCCESS RETURN=$R_SUCCESS if ! getdests; then test "$CONNECTION_SHOW_WHEN_IFSTATUS" = yes && message "There are open connections:" \ "${TCP_PORTS:+`fuser -auvn tcp $TCP_PORTS`}" \ "${UDP_PORTS:+\n`fuser -auvn udp $UDP_PORTS`}" RETURN=$R_BUSY fi if ! nfscheck; then test "$CONNECTION_SHOW_WHEN_IFSTATUS" = yes && message "There are nfs mounts:$NFS_MESSAGE" RETURN=$R_BUSY fi test "$CONNECTION_CHECK_BEFORE_IFDOWN" != yes && exit $R_SUCCESS exit $RETURN ;; esac #!/bin/bash # # Copyright (c) 2004 SUSE LINUX AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Lars Mueller # dhcpcd-hook-samba # # Script to update /etc/samba/dhcp.conf if the DHCP client get new settings # for the NetBIOS Name Server or Scope. # # We expact at least two arguments: # $1 The configuration name, e.g. ifcfg-eth-id-00:08:f9:3d:ab:3d. # $2 The interface name, e.g. eth0. # $3 -$n are used as additional options. We only check if it includes debug. unset ${!LC_*} LANGUAGE export LANG="POSIX" export PATH="/sbin:/usr/sbin:/bin/:/usr/bin" numArgs=$# configname="$1" shift interface="$1" shift # And shift away the '-o'. shift options="$@" # Log functions function log_dbg() { case "${options}" in *debug*) logger -t $0 -p daemon.debug "$1" ;; esac } function log_err() { logger -t $0 -p daemon.err "$1" exit 1 } SYSCONFIG_FILE="/etc/sysconfig/network/dhcp" test -f "${SYSCONFIG_FILE}" && \ . "${SYSCONFIG_FILE}" # Exit gracefully if this feature was disabled. test "${DHCLIENT_MODIFY_SMB_CONF}" = "no" && \ exit 0 # Check if this configuration is known and configured for DHCP. INTEFACE_CONFIG_FILE="/etc/sysconfig/network/ifcfg-${configname}" test -f "${INTEFACE_CONFIG_FILE}" && \ . "${INTEFACE_CONFIG_FILE}" || \ log_err "No configuration found for ${configname}." # Exit gracefully if this interface isn't configured for DHCP. test "${BOOTPROTO}" = "dhcp" || \ exit 0 test $numArgs -lt 2 && \ log_err "At least configuration and interface name are needed as arguments." HOOK_FUNCTIONS_FILE="/etc/sysconfig/network/scripts/dhcpcd-hook-samba-functions" test -f "${HOOK_FUNCTIONS_FILE}" || \ log_err "${HOOK_FUNCTIONS_FILE} not found." . "${HOOK_FUNCTIONS_FILE}" # Check for and get the new data. function getNetConfig() { HostInfoFilePath="/var/lib/dhcpcd/dhcpcd-${interface}.info" if [ ! -f "${HostInfoFilePath}" ]; then log_err "No dhcpcd info file found for ${interface}." fi unset new_netbios_name_servers WINSSERVERS NETBIOSSCOPE . "${HostInfoFilePath}" OLD_IFS=${IFS} IFS=',' for server in ${WINSSERVERS}; do new_netbios_name_servers="${new_netbios_name_servers} ${server}" done IFS=${OLD_IFS} export new_netbios_name_servers export new_netbios_scope="${NETBIOSSCOPE}" } # Check for and get the old data. function getOldConfig() { OldHostInfoFilePath="/var/lib/dhcpcd/dhcpcd-${interface}.info.old" unset old_netbios_name_servers old_netbios_scope WINSSERVERS NETBIOSSCOPE if [ ! -f "${OldHostInfoFilePath}" ]; then log_dbg "No old dhcpcd info file found for ${interface}." else . "${OldHostInfoFilePath}" OLD_IFS=${IFS} IFS=',' for server in ${WINSSERVERS}; do old_netbios_name_servers="${old_netbios_name_servers} ${server}" done IFS=${OLD_IFS} export old_netbios_name_servers export old_netbios_scope="${NETBIOSSCOPE}" fi } # Functions called by the main case statement. function ifUp() { export reason="RENEW" export SAMBA_DHCP_CONF_INFO_FILE="/var/adm/fillup-templates/samba-client-dhcp.conf" netbios_setup if [ "${new_netbios_name_servers}" != "${old_netbios_name_servers}" -o \ "${new_netbios_scope}" != "${old_netbios_scope}" ]; then servicesToReload="nmb winbind smb" for service in ${servicesToReload}; do test -x /etc/init.d/${service} && /etc/init.d/${service} force-reload done log_dbg "Got new settings. Services ${servicesToReload} reloaded." fi } #function ifDown() #{ #} # Main case switch case "$0" in *if-up.d*) getNetConfig getOldConfig ifUp ;; *if-down.d*) ;; *) log_err "Don't know what to do. This script used to be called from dir if-{up,down}.d/." ;; esac #! /bin/bash # # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # Author: Christian Zoz , 2004 # # This script checks for all available network interfaces: # - if there is a configuration for them # - if we can get back the interface name from the configuration name # # $Id: check_configurations 1069 2004-09-02 18:23:18Z zoz $ for a in `cd /sys/class/net; ls -A`; do unset ${!HWD_*} eval `getcfg -d /etc/sysconfig/network -f ifcfg- -- $a 2>/dev/null` printf "%-9s %-35s " $a $HWD_CONFIG_0 getcfg-interface -v $HWD_CONFIG_0 2>/dev/null || echo done #! /bin/bash # # Copyright (c) 2004 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Joachim Gleissner , 2004 # # $Id: ifup-wireless-wpa 1196 2005-04-25 07:47:39Z jg $ # usage () { echo $@ echo "usage: if{up,down,status}-wireless-wpa [] [-o ]" echo " In most cases config==interface, for details see man 8 ifup" echo "options are: [on]boot : we are currently booting (or shutting down)" echo " hotplug : we are handling a hotplug event" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* ACTION=${SCRIPTNAME#if} ACTION=${ACTION%%-wireless-wpa} case "${ACTION}" in up|down|status) ;; check) exit $R_SUCCESS ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS=$@ MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug "unknown option $1 ignored" ;; esac shift done ###################################################################### # check presence of global configuration file and source it # test -f ./wireless && . ./wireless # ifcfg-* is more important and fragile then wireless if [ -f ./ifcfg-$CONFIG ] ; then . ./ifcfg-$CONFIG elif [ "$ACTION" != down ] ; then message "could not find configuration file ifcfg-$CONFIG" fi # $WIRELESS=yes/no can be set in a config file if there is no other way to # find out. If it is empty we use the type we got from getcfg (HWD_INTERFACETYPE_0) if [ "$WIRELESS" != yes -a "$HWD_INTERFACETYPE_0" != wlan ]; then debug "$HWD_HWDESC is not wireless, exiting" exit 0 fi RETVAL=$R_SUCCESS kill_wpa_supplicant() { if [ -f /var/run/wpa_supplicant/${INTERFACE}.pid ]; then pid=$( cat /var/run/wpa_supplicant/${INTERFACE}.pid) else pid=$(pgrep -f ".*wpa_supplicant-$INTERFACE.conf.*") fi if [ -z "$pid" ]; then debug "No wpa_supplicant running on interface $INTERFACE" return fi kill $pid rm -f /var/run/wpa_supplicant-$INTERFACE.conf } setup_wpa() { if [ -z "`type -p wpa_supplicant`" ]; then logerror "cannot find 'wpa_supplicant': please install package 'wpa_supplicant'" exit $R_ERROR fi if [ -e /var/run/wpa_supplicant-$INTERFACE.conf ]; then if [ -f /var/run/wpa_supplicant/${INTERFACE}.pid ]; then pid=$( cat /var/run/wpa_supplicant/${INTERFACE}.pid) else pid=$(pgrep -f ".*wpa_supplicant-$INTERFACE.conf.*") fi wpa_dead=y if [ -n "$pid" ]; then kill -0 $pid && wpa_dead=n fi case "$wpa_dead" in y) debug "Stale wpa_supplicant-$INTERFACE.conf found, removing" rm -f /var/run/wpa_supplicant-$INTERFACE.conf ;; n) message "`printf " %-9s warning: wpa_supplicant already running on interface" $INTERFACE`" return ;; esac fi if [ -n "$WIRELESS_WPA_CONF" ]; then if [ -e "$WIRELESS_WPA_CONF" ]; then WPA_SUPP_CONF="$WIRELESS_WPA_CONF" else logerror "Unable to setup wpa (could not open $WIRELESS_WPA_CONF)" exit $R_ERROR fi else WPA_SUPP_CONF="/var/run/wpa_supplicant-$INTERFACE.conf" fi umask 0077 cat > $WPA_SUPP_CONF <, 2002 # Based on rcroute: Burchard Steinbild , 1996 # Werner Fink , 1996-2000 # # $Id: ifup-route 1188 2005-04-20 06:05:10Z zoz $ # usage () { echo $@ echo "usage: if{up,down}-route [] [-o ]" echo " In most cases config==interface, for details see man 8 ifup" echo "options are:" echo " dhcp : we are called from dhcp client (read only ifroute-*)" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* case "$SCRIPTNAME" in ifup-route) ACTION=replace ;; ifdown-route) ACTION=del ;; ifstatus-route) ACTION=status ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=auto ;; hotplug) MODE=auto ;; rc) export RUN_FROM_RC=yes SUPPRESS_ERROR_MESSAGE=yes ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; dhcp) DHCP=yes ;; *) debug "unknown option $1 ignored" ;; esac shift done ###################################################################### # get the interface and check if it is up # There are some exceptions where we do not have an active interface: # - when adding/deleting special routes (INTERFACE == 'noiface') # - when deleting routes of an already unplugged hotplug device: # we have possibly to restore an old default route in this case # if ! is_iface_up $INTERFACE && [ "$INTERFACE" != noiface ] ; then # This is a quick fix, don't know if it has drawbacks # if [ "$ACTION" = del -a "$MODE" = auto ] ; then if [ "$ACTION" = del ] ; then REPLACE_ONLY=yes else logerror "interface $INTERFACE is not up" exit $R_NOTRUNNING fi fi ###################################################################### # check presence of configuration files and source one # test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG # The global route configuration file must not be read if we were called from # dhcp client. In this case we only read the ifroute-* file. if [ "$DHCP" != yes ] ; then ROUTECONF=routes fi test -f $ROUTECONF || ROUTECONF="" EXTRAROUTECONF=ifroute-$CONFIG test -f $EXTRAROUTECONF || EXTRAROUTECONF="" # # add special link local route # can configure only one interface this way at the moment # EXTRALINKLOCAL= islinklocal= if test -n "$LINKLOCAL_INTERFACES" ; then eval "case \$INTERFACE in $LINKLOCAL_INTERFACES) islinklocal=true ;; esac" fi # Don't add this route if interface has no v4 address (Bug 65557) test -z "`ip -4 a l dev $INTERFACE 2>/dev/null`" && islinklocal= if test -n "$islinklocal" ; then current=`ip route show 169.254.0.0/16` if test -z "$current" -o "$current" != "${current/ dev $INTERFACE }" ; then EXTRALINKLOCAL="169.254.0.0 - 255.255.0.0 $INTERFACE" fi fi # Having no routing configuration file is no error test -z "${ROUTECONF}${EXTRAROUTECONF}${EXTRALINKLOCAL}" && exit $R_SUCCESS reverse () { local LINE while read -r LINE ; do case "$LINE" in \#*|"") continue ;; esac test "$ACTION" = "del" && reverse echo "$LINE" done } run_iproute() { test "$REPLACE_ONLY" = yes -a "$1" != replace && return local COMMAND="ip route $@" RETMESSAGE="$($COMMAND 2>&1)" RETVALUE=$? if test $RETVALUE -ne 0 ; then debug "calling: $COMMAND ---> FAILED" case "$RETMESSAGE" in RTNETLINK*answers:*File*exists) return ;; RTNETLINK*answers:*No*such*process) return;; RTNETLINK*answers:*Network*is*unreachable) if [ "$3" = default -a "$7" != "$INTERFACE" ] ; then eval \ logerror "Warning: Could not set up default route via interface" \ "$INTERFACEi\\\n" \ " Command '$COMMAND' returned:\\\n . \"${RETMESSAGE%%Usage:*}\"\\\n"\ " Configuration line: $LINE\\\n" \ " This needs NOT to be AN ERROR if you set up multiple" \ "interfaces.\\\n See 'man 5 routes' how to avoid this warning.\\\n" \ ${SUPPRESS_ERROR_MESSAGE:+>/dev/null} return fi ;; *) esac # logerror "\033[1mError while executing:\n $COMMAND\033[m" logerror "Error while executing:\n" \ " Command '$COMMAND' returned:\n ${RETMESSAGE%%Usage:*}\n"\ " Configuration line: $LINE" else debug "calling: $COMMAND ---> OK" fi } wrong_entry () { logerror "\033[1mWrong entry in $ROUTECONF\033[m" logerror " $@" } ROUTESTACKDIR=/var/run/sysconfig push_route_stack () { pushd $ROUTESTACKDIR &>/dev/null || return if [ "$OLDDEFROUTEIFACE" != "$INTERFACE" ] ; then declare -i i test -r route-stack-number && read i < route-stack-number i=$((i+1)) echo $i > route-stack-number ii=`printf "%.6d\n" $i` echo $OLDDEFROUTEARGS > route-stack-$ii-${OLDDEFROUTEIFACE}-${INTERFACE} fi popd &>/dev/null } pop_route_stack () { # The default route stack consists of files named route-stack---. # If the topmost entry (with highest i) has for Y the current interface, then # the current interface hosts the current default route. We can look for the # current default route interface via 'ip r', but in one case thsi does not # work. # NICs that are handled by '/sbin/hotplug' (cardmgr behaves different) loose # their registered interface immediately when the NIC is ejected. Therefore # we must get the name of the current default route interface from the stack # itself and not via 'ip r'. # At first look for the current default route interface via 'ip r' and store # it in $DR_IFACE. set -- `ip r` while [ "$1" != default -a $# -gt 0 ] ; do shift; done while [ "$1" != dev -a $# -gt 0 ] ; do shift; done DR_IFACE=$2 if [ -z "$DR_IFACE" ] ; then # Get the latest stack entry (with highest number) for f in $ROUTESTACKDIR/route-stack-*-*-* ; do true; done IFS=-; set -- $f; DR_IFACE=$5; unset IFS fi # If $DR_IFACE equals $INTERFACE we have to restore the previous default # route. That means we look for the newest route-stack-X-$INTERFACE (which in # this case should be the newest route-stack-X-*). This file may be deleted # after the default route via dev X was restored. # # Then we look for the newest route-stack-$INTERFACE-X and again for the now # newest route-stack-Y-$INTERFACE. If X==Y these files may just be deleted. # If X!=Y and there is no route-stack-Y-X we have to copy # route-stack-Y-$INTERFACE to route-stack-Y-X and delete the two old files # afterwards. # Repeat that until no more route-stack-*-$INTERFACE exists. # # Finally remove all route-stack-$INTERFACE-*. # if [ "$DR_IFACE" = "$INTERFACE" ] ; then local restore_nullglob="$(shopt -p nullglob)" shopt -s nullglob for f in $ROUTESTACKDIR/route-stack-*-*-${INTERFACE} ; do true; done eval $restore_nullglob IFS=-; set -- $f; OLDDEFROUTEIFACE=$4; unset IFS read OLDDEFROUTEARGS < ${f:-<(echo)} debug `rm -vf $f 2>&1` fi while true ; do for f in $ROUTESTACKDIR/route-stack-*-*-${INTERFACE} ; do true; done for g in $ROUTESTACKDIR/route-stack-*-${INTERFACE}-* ; do true; done test -f "$f" -a -f "$g" || break IFS=- set -- $f ; fi=$4 set -- $g ; gi=$5 unset IFS if [ "$fi" != "$gi" ] ; then declare -i i read i < $ROUTESTACKDIR/route-stack-number i=$((i+1)) echo $i > $ROUTESTACKDIR/route-stack-number ii=`printf "%.6d\n" $i` cp -v $f $ROUTESTACKDIR/route-stack-$ii-${fi}-${gi} fi rm -vf $f $g done debug `rm -vf $ROUTESTACKDIR/route-stack-*-${INTERFACE}-*` debug "PRS: OLDDEFROUTEIFACE=$OLDDEFROUTEIFACE" debug "PRS: OLDDEFROUTEARGS=$OLDDEFROUTEARGS" test -z "$OLDDEFROUTEARGS" && return 1 test -z "$OLDDEFROUTEIFACE" && return is_iface_up $OLDDEFROUTEIFACE && return || return 1 } get_default_route() { local DEST VIA GWAY DEV IFACE IPOPTS while read DEST VIA GWAY DEV IFACE IPOPTS; do # $DEST can be one of unreachable|blackhole|prohibit|throw if [ \( "$DEST" = default -a "$DEV" = dev \) \ -o \( "$VIA" = default -a -z "$GWAY$DEV$IFACE$IPOPTS" \) ] ; then OLDDEFROUTEARGS="$DEST $VIA $GWAY $DEV $IFACE $IPOPTS" OLDDEFROUTEIFACE=$IFACE return fi done < <(ip route show) return 1 } read_routes() { test -r "$1" || return local DEST GWAY MASK IFACE IPOPTS while read DEST GWAY MASK IFACE IPOPTS; do test -z "$GWAY" && GWAY=- test -z "$MASK" && MASK=- test -z "$IFACE" -o "$IFACE" = "-" && IFACE="$INTERFACE" echo $DEST $GWAY $MASK $IFACE $IPOPTS done < $1 } # for status we need to prepare the output of ip route and store it in # ALL_ROUTES. IFACE_ROUTES is needed to list active routes of 'noiface'. if [ "$ACTION" = status ] ; then while read DEST VIA GWAY DEV IFACE IPOPTS; do LINE="$DEST $VIA $GWAY $DEV $IFACE $IPOPTS" # routes to the local net and blocking routes are listed in a different way if [ "$VIA" = dev ] ; then IPOPTS="$DEV $IFACE $IPOPTS" IFACE=$GWAY GWAY="" fi if [ "$INTERFACE" = noiface ] ; then test -z "$IFACE" && IFACE_ROUTES="${IFACE_ROUTES:+$IFACE_ROUTES\n} $LINE" fi case $DEST in unreachable|blackhole|prohibit|throw) ALL_ROUTES="$ALL_ROUTES ${VIA}:::${DEST}" ;; *) ALL_ROUTES="$ALL_ROUTES ${DEST}:${GWAY}:${IFACE}:" ;; esac done < <(ip route show) declare -i n=0 m=0 fi while read DEST GWAY MASK IFACE TYPE IPOPTS ; do # Save the original line for error reporting LINE="$DEST $GWAY $MASK $IFACE $TYPE $IPOPTS" # debug routeconfigline: $LINE test "$GWAY" = "-" && GWAY="" test "$MASK" = "-" && MASK="" test "$IFACE" = "-" && IFACE="" test "$TYPE" = "-" && TYPE="" # If we are setting up a route for 6to4 tunnel we must # differentiate between USAGI and non-USAGI stack as they # accept gateway addresses in different notations. # What is ::192.88.99.1 for non-USAGI kernel must # be written as 2002:c058:6301::1 for USAGI. if [ "$TUNNEL" = "sit" -a "$BOOTPROTO" = "6to4" ]; then if [ ! -f /proc/net/inet6_version ]; then # This is non-USAGI kernel. # If the IPv6 gateway is set to 2002:IPV4:ADDR::1 # we must convert it to ::IP.V4.AD.DR test "x$GWAY" != "x${GWAY#2002:}" && \ GWAY=`convert_6to4_to_ipv4address $GWAY` else # This is a USAGI kernel. # If IPv6 gateway is set as ::IP.V4.AD.DR we must # convert it to 2002:IPV4:ADDR::1 test "x$GWAY" != "x${GWAY#::}" && \ GWAY=`convert_ipv4address_to_6to4 ${GWAY#::}` fi fi # There are routes assigned to a certain interface and general routes. We # only set up routes that match the current interface. General routes are # only set up when we are called with the interface name 'noiface'. # Only exception is the default route, which is set up with the current # interface if no interface was specified in the configuration if [ -n "$IFACE" ] ; then IFACE=`/sbin/getcfg-interface -- $IFACE` test "$INTERFACE" != "$IFACE" && continue else if [ "$DEST" = default ] ; then case $INTERFACE in JKLMN lo*|dummy*|noiface) continue ;; *) test "$ACTION" = del && IFACE=$INTERFACE ;; esac else test "$INTERFACE" != noiface && continue fi fi # Check if $MASK is a netmask or prefixlength and calculate prefixlength if # it is a netmask. Then add the prefixlength to the destination. Finally we # get the prefixlength back from the destination to have always the right # prefixlength in $PFXL. if [ "$MASK" -ge 0 -a "$MASK" -le 32 ] 2>/dev/null; then PFXL=$MASK else PFXL=`mask2pfxlen $MASK` fi test "${DEST%%/*}" = "$DEST" && DEST="$DEST${PFXL:+/$PFXL}" test "${DEST#*/}" != "$DEST" && PFXL=${DEST#*/} # If the first word of the options ($TYPE) is a value that is respected # as an valid type by ip route, then keep it. If $TYPE is anything else # then it must be part of an ordinary option and we prepend it to $IPOPTS. case $TYPE in unicast|local|broadcast|nat|anycast|multicast) ;; unreachable|blackhole|prohibit|throw) IFACE="" ;; *) IPOPTS="$TYPE $IPOPTS" ; TYPE="" ;; esac case "$ACTION" in replace|del) test -n "$IFACE" && IFACE="dev $IFACE" case "$DEST" in \#*|"") ;; 224.0.0.0*|224/4) # We are doing multicast if [ -e /proc/net/igmp -a "$GWAY" = 0.0.0.0 \ -a \( "$PFXL" = 4 -o "$DEST" = 224/4 \) ] ; then run_iproute $ACTION to $TYPE 224/4 $IFACE $IPOPTS else logerror "Skipping multicast route 224/4 for $IFACE" test ! -e /proc/net/igmp && logerror " no /proc/net/igmp available" test "$GWAY" != 0.0.0.0 \ && logerror " wrong dummy gateway entry $GWAY in $ROUTECONF" test "$PFXL" != 4 \ && logerror " wrong netmask/prefixlength entry $MASK in $ROUTECONF" fi ;; default*) if [ "$ACTION" != "del" ] ; then # I cannot remember why we were running run_iproute always after # the possible ip route command. But it hurts if there are two # interfaces in the same subnet which should get the default # route. Therefore we now run run_iproute only if ip route was # not run successfully. (See bug 49123) #get_default_route \ # && ip route $ACTION to $TYPE $DEST via $GWAY \ # ${INTERFACE:+dev $INTERFACE} $IPOPTS &>/dev/null \ # && push_route_stack #run_iproute $ACTION to $TYPE $DEST via $GWAY $IFACE $IPOPTS if get_default_route \ && ip route $ACTION to $TYPE $DEST via $GWAY \ ${INTERFACE:+dev $INTERFACE} $IPOPTS &>/dev/null ; then push_route_stack else run_iproute $ACTION to $TYPE $DEST via $GWAY $IFACE $IPOPTS fi fi if [ "$ACTION" = "del" ] ; then pop_route_stack && run_iproute replace to $OLDDEFROUTEARGS fi ;; *) case "$GWAY" in 0.0.0.0|\*) # Add/Delete a local Network GWAY="" ;; $DEST) test "$PFXL" = 32 && GWAY="" ;; esac run_iproute $ACTION to $TYPE $DEST ${GWAY:+via $GWAY} $IFACE $IPOPTS esac ;; status) # To be able to compare destination later we possibly have to fill up $DEST # with some '.0'. For this we have to seperate DIST and PFXL once again. # Don't do that if $DEST = default ;) if [ "$DEST" != default ] ; then DEST=${DEST%%/*} read D1 D2 D3 D4 < <(IFS=.; echo $DEST) for a in D1 D2 D3 D4; do test -z "${!a}" && eval $a=0; done DEST=$D1.$D2.$D3.$D4${PFXL:+/$PFXL} fi case "$DEST" in \#*|"") continue ;; esac n=$((n + 1)) test $n = 1 && message_if_not_run_from_rc "Configured routes for interface $INTERFACE:" message_if_not_run_from_rc " $LINE" for R in $ALL_ROUTES ; do if test "$R" = "${DEST}:${GWAY}:${IFACE}:${TYPE}" ; then m=$((m + 1)) fi done ;; esac done < <(reverse < <(${ROUTECONF:+cat $ROUTECONF}; \ ${EXTRALINKLOCAL:+echo $EXTRALINKLOCAL} ; \ read_routes $EXTRAROUTECONF) ) # Write a summary for status if [ "$ACTION" = status ] ; then while read LINE; do IFACE_ROUTES="${IFACE_ROUTES:+$IFACE_ROUTES\n} $LINE" done < <(ip route show dev $INTERFACE 2>/dev/null) test -n "$IFACE_ROUTES" && message_if_not_run_from_rc "Active routes for interface $INTERFACE:" message_if_not_run_from_rc "$IFACE_ROUTES" test $n -gt 0 && \ message_if_not_run_from_rc "$m of $n configured routes for interface $INTERFACE up" test $n -ne $m && exit 3 fi exit 0 #!/bin/bash # # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Authors: Arvin Schnell , 2002 # Christian Zoz , 2002 # # $Id: ifup-ppp 1176 2005-03-16 07:54:53Z zoz $ # function usage() { echo "usage: if{up|down|status}-ppp [-o ]" echo echo "options are: prov=name : specify provider (only for ifup)" echo " quiet : supress normal output" echo " debug : be verbose" echo " rc : indicates that we are called from rcnetwork" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* case "${SCRIPTNAME}" in ifup-*) ACTION=up ;; ifdown-*) ACTION=down ;; ifstatus-*) ACTION=status ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS="$@" MODE=manual while [ $# -gt 0 ] ; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; rc) RUN_FROM_RC=yes SMPPPD_OPTIONS="--rc" ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; prov=*) PROVIDER=${1##*=} ;; *) debug "unknown option $1 ignored" ;; esac shift done SMPPPD_OPTIONS="$SMPPPD_OPTIONS -i ifcfg-$CONFIG" case "$ACTION" in up) if [ -n "$PROVIDER" ] ; then SMPPPD_OPTIONS="$SMPPPD_OPTIONS -p $PROVIDER" fi if [ "$DEBUG" == "yes" ] ; then SMPPPD_OPTIONS="$SMPPPD_OPTIONS -d" fi if /usr/sbin/smpppd-ifcfg --up $SMPPPD_OPTIONS ; then message_if_not_run_from_rc "interface $INTERFACE is up" exit $R_SUCCESS fi logerror "failed to bring interface $INTERFACE up" exit $R_ERROR ;; down) if /usr/sbin/smpppd-ifcfg --down $SMPPPD_OPTIONS ; then message_if_not_run_from_rc "interface $INTERFACE is down" exit $R_SUCCESS fi logerror "failed to bring interface $INTERFACE down" exit $R_ERROR ;; status) if /usr/sbin/smpppd-ifcfg --status $SMPPPD_OPTIONS ; then message_if_not_run_from_rc "interface $INTERFACE is up" INFOFILE="/var/lib/smpppd/ifcfg-$CONFIG.info" ( while read a b ; do case $a in status:|provider-file:|demand:) message_if_not_run_from_rc $a $b ;; esac done < $INFOFILE ) 2> /dev/null exit $R_SUCCESS fi message_if_not_run_from_rc "interface $INTERFACE is down" exit $R_INACTIVE ;; esac #!/bin/sh SAMBA_DHCP_CONF=/etc/samba/dhcp.conf SAMBA_DHCP_CONF_INFO_FILE="" netbios_setup() { # No need to continue if we're called with an unsupported option if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \ && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] \ && [ "$reason" != EXPIRE ] && [ "$reason" != FAIL ] then return fi # Nor should we continue if no settings have changed if [ "$new_netbios_name_servers" = "$old_netbios_name_servers" ] \ && [ "$new_netbios_scope" = "$old_netbios_scope" ] \ && [ -f $SAMBA_DHCP_CONF ] then return fi # reparse our own file local other_servers=`sed -n -e"s/[[:space:]]$interface:[^[:space:]]*//g; \ s/^[[:space:]]*wins server[[:space:]]*=[[:space:]]*//pi" \ $SAMBA_DHCP_CONF` umask 022 local serverlist="$other_servers" for server in $new_netbios_name_servers do serverlist="$serverlist $interface:$server" done echo -n > $SAMBA_DHCP_CONF test -n "$SAMBA_DHCP_CONF_INFO_FILE" -a -f "$SAMBA_DHCP_CONF_INFO_FILE" && \ cat "$SAMBA_DHCP_CONF_INFO_FILE" >> $SAMBA_DHCP_CONF # If we're updating on failure/expire, AND there are no WINS # servers for other interfaces, leave the file empty. if [ -z "$other_servers" ] then if [ "$reason" = FAIL ] || [ "$reason" = EXPIRE ] then return fi fi if [ -n "$serverlist" ] then echo " wins server =$serverlist" >> $SAMBA_DHCP_CONF fi if [ -n "$new_netbios_scope" ] then echo " netbios scope = $new_netbios_scope" >> $SAMBA_DHCP_CONF fi } netbios_setup #! /bin/bash # # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Christian Zoz , 2001 # Joachim Gleissner , 2003-2004 # # $Id: ifup-wireless 1164 2005-02-28 16:50:52Z jg $ # usage () { echo $@ echo "usage: if{up,down,status}-wireless [] [-o ]" echo " In most cases config==interface, for details see man 8 ifup" echo "options are: [on]boot : we are currently booting (or shutting down)" echo " hotplug : we are handling a hotplug event" echo "all other or wrong options are silently ignored" exit $R_USAGE } ###################################################################### # change the working direcory and source some common files # R_INTERNAL=1 # internal error, e.g. no config or missing scripts cd /etc/sysconfig/network || exit $R_INTERNAL test -f scripts/functions && . scripts/functions || exit $R_INTERNAL test -f ./config && . ./config ###################################################################### # check arguments and how we are called (in case of links) # SCRIPTNAME=${0##*/} debug $* ACTION=${SCRIPTNAME#if} ACTION=${ACTION%%-wireless} case "${ACTION}" in up|down|status) ;; check) exit $R_SUCCESS ;; *) usage esac INTERFACE=$1 case "$INTERFACE" in ""|-h|*help*) usage; esac shift if [ -n "$1" -a "$1" != "-o" ] ; then CONFIG=$INTERFACE INTERFACE=$1 fi shift test "$1" = "-o" && shift OPTIONS=$@ MODE=manual while [ $# -gt 0 ]; do case $1 in boot|onboot) MODE=onboot ;; hotplug) MODE=hotplug ;; quiet) BE_QUIET=yes ;; debug) BE_QUIET=no DEBUG=yes ;; *) debug "unknown option $1 ignored" ;; esac shift done ###################################################################### # check presence of global configuration file and source it # test -f ./wireless && . ./wireless # ifcfg-* is more important and fragile then wireless if [ -f ./ifcfg-$CONFIG ] ; then . ./ifcfg-$CONFIG elif [ "$ACTION" != down ] ; then message "could not find configuration file ifcfg-$CONFIG" fi ###################################################################### # get the interface and check if it is available and wireless # if ! is_iface_available ${INTERFACE} ; then test "$ACTION" != status && logerror "interface ${INTERFACE} is not available" exit $R_NODEV fi # $WIRELESS=yes/no can be set in a config file if there is no other way to # find out. If it is empty we use the type we got from getcfg (HWD_INTERFACETYPE_0) if [ "$WIRELESS" != yes -a "$HWD_INTERFACETYPE_0" != wlan ]; then debug "$HWD_HWDESC is not wireless, exiting" exit 0 fi ###################################################################### # check for needed tools # if [ -z "`type -p iwconfig`" ] ; then logerror "cannot find 'iwconfig': please install package 'wireless-tools'" exit $R_ERROR fi if [ -z "`type -p wlanctl-ng`" ] ; then logerror "cannot find 'wlanctl-ng': please install package 'wireless-tools°'" exit $R_ERROR fi if [ -z "`type -p hexdump`" ] ; then logerror "cannot find 'hexdump': please install package 'util-linux'" exit $R_ERROR fi if [ -z "`type -p sed`" ] ; then logerror "cannot find 'sed': please install package 'sed'" exit $R_ERROR fi if [ -z "`type -p awk`" ] ; then logerror "cannot find 'awk': please install package 'gawk'" exit $R_ERROR fi run_iw_tool() { local COMMAND MESSAGE RETVAL=$R_SUCCESS test -z "$3" && return debug "run_iw_tool()" "$@" case $1 in config|spy|priv) IWTOOL=iw${1} ;; *) exit $R_INTERNAL ;; esac shift MESSAGE=`$IWTOOL $INTERFACE "$@" 2>&1` || RETVAL=$? test -z "$MESSAGE" && return logerror "command '$IWTOOL $INTERFACE $*' returned\n $MESSAGE" } RETVAL=$R_SUCCESS wlanctl() { local MESSAGE test -z "$1" && return debug "running wlanctl-ng $INTERFACE $@" MESSAGE=`wlanctl-ng $INTERFACE "$@" 2>&1` || RETVAL=$? debug $MESSAGE } ascii_to_hex() { if [ -z "${1:7:1}" ]; then echo -n ${1#s:*} | hexdump -e '5/1 "%2x"' | sed -e 's/ /0/g' else echo -n ${1#s:*} | hexdump -e '13/1 "%2x"' | sed -e 's/ /0/g' fi } generate_keys() { test -z "$WIRELESS_KEY_0" && WIRELESS_KEY_0="$WIRELESS_KEY" if [ -z "$WIRELESS_KEY_0" -a \ -z "$WIRELESS_KEY_1" -a \ -z "$WIRELESS_KEY_2" -a \ -z "$WIRELESS_KEY_3" -a \ "$WIRELESS_AUTH_MODE" != "psk" -a \ "$WIRELESS_AUTH_MODE" != "wpa-psk" ]; then message "`printf " %-9s warning: using NO encryption" $INTERFACE`" # message "warning: using NO encryption" ENCRYPTION=no return fi for i in 0 1 2 3 ; do eval K=\$WIRELESS_KEY_$i if [ -n "$K" ]; then if [ ${K:0:1} = "s" ]; then # we are using ascii key representation (iwconfig method) eval WIRELESS_KEY_$i=$(ascii_to_hex "$K") elif [ ${K:0:1} = "h" ]; then if [ "$WIRELESS_KEY_LENGTH" = "64" -o "$WIRELESS_KEY_LENGTH" = "40" ]; then eval WIRELESS_KEY_$i=$(lwepgen "${K:2}" | head -n 1 | tr -d ':') else eval WIRELESS_KEY_$i=$(lwepgen -s "${K:2}" | head -n 1 | tr -d ':') fi fi fi done ENCRYPTION=yes } format_key() { # key has usually format XXXX-XXXX-XX [...] echo $1 | tr -d '-' | awk '{ KEY=$0 ; if (length()>10) for (i=0;i<26-length();i++) KEY=KEY"0" for (i=1;i/dev/null 2>&1 if [ $? -eq 0 ]; then setup_wlanngdev else setup_iwdev fi ;; status) if is_iface_up $INTERFACE ; then # do not show iwconfig output on boot, this may log # the WEP key in the boot log test "$MODE" = "onboot" || iwconfig $INTERFACE RETVAL=$R_SUCCESS else RETVAL=$R_NOTRUNNING fi ;; esac exit $RETVAL BOOTPROTO='dhcp' MTU='' NAME='Intel 82546EB Gigabit Ethernet Controller (Copper)' REMOTE_IPADDR='' STARTMODE='auto' UNIQUE='rBUF.rkjGJ_7M4FE' USERCONTROL='no' _nm_name='bus-pci-0000:03:0b.0' # This is a template for a network interface configuration file used with ifup. # See 'man 8 ifup' for details. # Additionally to the following variables you can set every variable from the # interface independent configurations files (config, dhcp, wireless) to # overwrite the global settings. # STARTMODE tells ifup when a interface should be set up. Possible values are: # - auto: start it as soon as the interface is available. Either when booting # or when a device is plugged or initialized at runtime # - manual: start it only when ifup is called manually # - off: will not be started at all # - onboot: alias for auto, deprecated, only for backward compliance # - hotplug: alias for auto, only difference is that configurations with that # startmode are not considered to be mandatory if list of mandatory # devices is derived automatically. STARTMODE= # With BOOTPROTO you can choose in which mode the interface will be set up. BOOTPROTO= # If using a static configuration you have to set an IP address and a netmask # or prefix length. The following examples are equivalent: # 1) IPADDR=192.168.1.1 # NETMASK=255.255.255.0 # 2) IPADDR=192.168.1.1 # PREFIXLEN=24 # 3) IPADDR=192.168.1.1/24 IPADDR= NETMASK= PREFIXLEN= # Set the broadcast address of this interface. If you leave it empty a default # will be used. See DEFAULT_BROADCAST in /etc/sysconfig/network/config. BROADCAST= # If you'd like to set up a point to point connection you may specify the # remote IP here. REMOTE_IPADDR= # Set a label for the interface. See 'multiple addresses' below. LABEL= # This options defines whether the script /etc/ppp/poll.tcpip is run after # connecting to the internet via a dialup connection or not. The script # itself calls various jobs like fetchmail, fetchnews and sendmail. # Default to yes RUN_POLL_TCPIP= # Have a look at the iproute2 documentation. SCOPE= # Every other option from "ip address add" can be added here. IP_OPTIONS= # Set a specific Maximum Transmission Unit (MTU) for this interface. MTU= # Set a specific link level address (LLADDR), a.k.a. MAC address or hardware address, # for this interface (if the driver supports it). LLADDR= # Every other option from "ip link set" can be added here. # Example: # LINK_OPTIONS="multicast off" LINK_OPTIONS= # Multiple addresses # You can extend the variable name 'IPADDR' by any string you like (IPADDR_1, # IPADDR_FOO, IPADDRxxx, ...) and use these variables for your IP addresses. # If you need some additional parameters for these addresses, then just add # the same extension to these variable names. # IPADDR_AAA=1.2.3.4 # NETMASK_AAA=255.0.0.0 # BROADCAST_AAA=1.2.3.55 # IPADDR_BBB=10.10.2.3/16 # LABEL_BBB=BBB # an so on ... # # You do not need to set a label for any address. But then you should not use # ifconfig any longer; go and use ip. If you want to use ifconfig then omit the # label for your main address and set a label for every additional address. # Routing: # If you need special routes for a configuration, then use a file named # ifroute- where is the same string as in ifcfg-. # It has the same syntax like routes except one difference: # If you omit the interface name (4th field) in the ifroute file it will be # set to the current interface name when setting up the interface. You need to # do this with hotpluggable devices, where you do not know which interface name # they will get at the time when you plug them. # See man 5 routes. # Multiple DHCP clients: # # With two or more DHCP clients running, they would concurrently try to replace # the default route or rewrite resolv.conf, rewrite ntp.conf etc. There are two # ways of dealing with this conflict (and it is a conflict, because you can # have only one default route even though routes are stackable, and there can # only be one resolv.conf file): # # 1) allow both clients to do that stuff. This would work in many cases if # only one of the interfaces is used at a time. However, it would lead to # undefined behaviour. # # 2) allow only one of the DHCP clients to do that stuff. This implies # that there would be a "primary" interface and a "secondary". This is the # assumption the default configuration is based on. But since the system # can't guess which interface is "more important" and should have the # default route and resolver configuration associated with it, it simply # chooses the first interface that is started with DHCP to be # "authoritative". Which one that is can be influenced by adding # DHCLIENT_PRIMARY_DEVICE=yes to one of the /etc/sysconfig/network/ifcfg-* # files. This can even be added to more than one file, to achieve the # behaviour described in 1). Thus, there is the flexibility to do it # either way. # # Per default, only the DHCP client that is started first will be allowed to # change the default route / resolver configuration etc. All other running # clients will only configure the interface with an address, but not change # "global" configuration. # # Thus, to specifically allow an interface's DHCP client to change "global" # configuration, set the following variable to "yes": DHCLIENT_PRIMARY_DEVICE= # Even more finegrained control can be excerted by setting any of the variables # from /etc/sysconfig/network/dhcp here: DHCLIENT_DEBUG= DHCLIENT_SET_HOSTNAME= DHCLIENT_SET_DOMAINNAME= DHCLIENT_KEEP_SEARCHLIST= DHCLIENT_MODIFY_RESOLV_CONF= DHCLIENT_SET_DEFAULT_ROUTE= DHCLIENT_MODIFY_NTP_CONF= DHCLIENT_MODIFY_NIS_CONF= DHCLIENT_TIMEOUT= DHCLIENT_REBOOT_TIMEOUT= DHCLIENT_CLIENT_ID= DHCLIENT_HOSTNAME_OPTION= DHCLIENT_VENDOR_CLASS_ID= DHCLIENT_LEASE_TIME= DHCLIENT_ADDITIONAL_OPTIONS= ## Path: Network/Hardware/Config ## Description: Set some general network configuration ## Type: string("","-","+") ## Default: "+" ## ServiceRestart: network # # DEFAULT_BROADCAST is used when no individual BROADCAST is set. It can get one # of the following values: # "" : don't set a broadcast address # "-" : use IPADDR with all host bits deleted # "+" : use IPADDR with all host bits set DEFAULT_BROADCAST="+" ## Type: yesno ## Default: yes # sometimes we want some script to be executed after an interface has been # brought up, or before an interface is taken down. # default dir is /etc/sysconfig/network/if-up.d for POST_UP and # /etc/sysconfig/network/if-down.d for PRE_DOWN GLOBAL_POST_UP_EXEC="yes" GLOBAL_PRE_DOWN_EXEC="yes" ## Type: yesno ## Default: no # If ifup should check if an ip address is already in use, set this to yes. # Make sure that packet sockets (CONFIG_PACKET) are supported in the kernel, # since this feature uses arping, which depends on that. # Also be aware that this takes one second per interface; consider that when # setting up a lot of interfaces. CHECK_DUPLICATE_IP="no" ## Type: yesno ## Default: no # Switch on/off debug messages for all network configuration stuff. If set to no # most scripts can enable it locally with "-o debug". DEBUG="no" ## Type: yesno ## Default: yes # Should error messages from network configuration scripts go to syslog, or do # you like them on stderr? USE_SYSLOG="yes" ## Type: yesno ## Default: yes # There are some services (ppp, ippp, dhcp-client, pcmcia, hotplug) that have to # change the /etc/resolv.conf dynamically at certain times. E.g. if ppp/ippp # establishes a connection and is supplied by the peer with a list of # nameservers. Or pcmcia needs to set the correct nameserver for the choosen # configuration scheme. If you don't like these services to change # /etc/resolv.conf at all, then set this variable to "no". # If unsure, leave it at the default (which is "yes"). # MODIFY_RESOLV_CONF_DYNAMICALLY="yes" ## Type: yesno ## Default: no # Like MODIFY_RESOLV_CONF_DYNAMICALLY, except it modifies /etc/named.conf. # If unsure, leave it at the default (which is "no"). # MODIFY_NAMED_CONF_DYNAMICALLY="no" # Handling of network connections # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # These features are designed for the convenience of the experienced # user. If you encounter problems you don't understand then switch # them off. That is the default. # Please do not complain if you get troubles. But if you want help to # make them smarter write to . ## Type: yesno ## Default: no # # If you are interested in the connections and nfs mounts that use a # network interface, you can set CONNECTION_SHOW_WHEN_IFSTATUS="yes". # Then you will see them with 'ifstatus ' (or 'ifstatus # ') # This one _should_ never harm ;) # CONNECTION_SHOW_WHEN_IFSTATUS="no" ## Type: yesno ## Default: no # # If an interface should be set down only if there are no active # connections, then use CONNECTION_CHECK_BEFORE_IFDOWN="yes" # CONNECTION_CHECK_BEFORE_IFDOWN="no" ## Type: yesno ## Default: no # # If these connetions (without the nfs mounts) should be closed when # shutting down an interface, set CONNECTION_CLOSE_BEFORE_IFDOWN="yes". # WARNING: Be aware that this may terminate applications which need # one of these connections! # CONNECTION_CLOSE_BEFORE_IFDOWN="no" ## Type: yesno ## Default: no # # If you are a mobile laptop user and like even nfs mounts to be # closed when you leave your current workplace, then set # CONNECTION_UMOUNT_NFS_BEFORE_IFDOWN="yes". This does only work # if CONNECTION_CLOSE_BEFORE_IFDOWN="yes", too. # WARNING: Be aware that this may terminate applications which use # these nfs mounts as working directory. Be very carefull if your home # is mounted via nfs!!! # WARNING: This may even lead to hanging ifdown processes if there are # processes that could not be terminated. If you are using # hotpluggable devices (pcmcia, usb, firewire), first shut them down # before unplugging! # CONNECTION_UMOUNT_NFS_BEFORE_IFDOWN="no" ## Type: yesno ## Default: no # # If terminating processes that use a connection or nfs mount is not # enough, then they can be killed after an unsuccesfull termination. # If you want that set CONNECTION_SEND_KILL_SIGNAL="yes" # CONNECTION_SEND_KILL_SIGNAL="no" ## Type: string ## Default: "" # # Here you may specify which interfaces have to be up and configured properly # after 'rcnetwork start'. rcconfig will return 'failed' if any of these # interfaces is not up. You may use interface names as well but better use # hardware descriptions of the devices (eth-id- or eth-bus-... See # man ifup for 'hardware description'). The network start script will wait for # these interfaces, but not longer as set in WAIT_FOR_INTERFACES. # You need not to add dialup or tunnel interfaces here, only physical devices. # The interface 'lo' is always considered to be mandatory and can be omitted. # # If this variable is empty, rcnetwork tries to derive the list of mandatory # devices automatically from the list of existing configurations. Configurations # with names bus-pcmcia or bus-usb or with STARTMODE=hotplug are skipped. (try # '/etc/init.d/rc5.d/S*network start -o debug fake | grep MANDAT') MANDATORY_DEVICES="eth-id-00:04:23:b7:27:c6" ## Type: integer ## Default: 20 # # Some interfaces need some time to come up or come asynchronously via hotplug. # WAIT_FOR_INTERFACES is a global wait for all mandatory interfaces in # seconds. If empty no wait occurs. # WAIT_FOR_INTERFACES="20" ## Type: yesno ## Default: yes # # With this variable you can determine if the SuSEfirewall when enabled # should get started when network interfaces are started. FIREWALL="yes" ## Type: string("off","guess","auto-off","auto-manual","manual") ## Default: "off" # # !!!This feature is still not implemented. Leave it to 'off'!!! # What shall we do if there is no valid configuration? # off: do nothing, just fail # guess: try to guess the needed info (zeroconf) # auto-off: trigger automatic creation of a config file; if that fails, do # nothing, just fail # auto-manual: trigger automatic creation of a config file; if that fails, ask # user to provide configuration (via yast) # manual: ask user to provide configuration (via yast) # !!!This feature is still not implemented. Leave it to 'off'!!! FAILURE_ACTION="off" ## Type: string ## Default: "eth*[0-9]|tr*[0-9]|wlan[0-9]|ath[0-9]" # # Automatically add a linklocal route to the matching interfaces. # This string is used in a bash "case" statement, so it may contain # '*', '[', ']' and '|' meta-characters. # LINKLOCAL_INTERFACES="eth*[0-9]|tr*[0-9]|wlan[0-9]|ath[0-9]" ## Type: string ## Default: "-a -f -I -u 0 -d 10" # # Set default options for ifplugd. You may also set them in an ifcfg-* file # individually. Have a look at 'man ifplug' for details. We let ifplugd set the # interface UP when starting, because there are many interfaces where link beat # cannot be detected otherwise. If you want the interface to stay down then add # the option '-a'. # IFPLUGD_OPTIONS="-f -I -u 0 -d 10" ## Type: yesno ## Default yes # # If you don't want to use ipv6 at all, set this to 'no'. Then ifup will always # flush all ipv6 adresses. This might be usefull together with ifplugd, if link # beat detection is only possible with interface UP. # USE_IPV6="yes" # Loopback (lo) configuration IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 BROADCAST=127.255.255.255 STARTMODE=onboot USERCONTROL=no ## Path: Hardware/Wireless ## Description: ## Type: yesno ## Default: "" ## ServiceRestart: network # If you have a wireless NIC and want to set some special wireless parameters # then you can do that here in this file globally for all cards you have. But # you can write each of these variables to the interface specific ifcfg-* files # to handle things per card. # The WIRELESS_* variable names match the option names of iwconfig. Have a look # at 'man iwconfig' for details. Except WIRELESS_NICK the variables do nothing # if empty. # # This variables decides if the special handling for wireless HW is used. If you # have only one network interface card and it is wireless you can set it here to # 'yes'. But it is much better, if you use that variable in the interface # configuration files 'ifcfg-*', which overrides the general settings made here. WIRELESS="" ## Type: string ## Default: "" # Set the operating mode of the device, which depends on the network # topology. The mode can be Ad-hoc (network composed of only one cell and # without Access Point), Managed (network composed of many cells, with # roaming or with an Access Point), Mas ter (the node is the synchronisation # master or act as an Access Point), Repeater (the node forward packets on the # air), Secondary (the node act as a backup master/repeater) or Auto WIRELESS_MODE="" ## Type: string ## Default: "" # Set the ESSID (or Network Name - in some products it may also called Domain # ID). The ESSID is used to identify cells which are part of the same virtual # network. WIRELESS_ESSID="" ## Type: string ## Default: "" # Set the nickname, or the station name. Most 802.11 products do define it, # but this is not used as far as the protocols (MAC, IP, TCP) are concerned # and completely accessory as far as configuration goes. If this variable is # empty we use the hostname WIRELESS_NICK="" ## Type: string ## Default: "" # Set the Network ID (in some products it is also called Domain ID). As all # adjacent wireless net works share the same medium, this parameter is used # to differenciate them (create logical colocated networks) and identify # nodes belonguing to the same cell. WIRELESS_NWID="" ## Type: string ## Default: "" # Set the operating frequency or channel in the device. Value below # 1000 are the channel number, value over this is the frequency in Hz. You # must append the suffix k, M or G to the value (for exam ple, "2.46G" for # 2.46 GHz frequency), or add enough '0'. WIRELESS_FREQ="" ## Type: string ## Default: "" # Channels are usually numbered starting at 1, and you may use iwpriv(8) to # get the total number of channels and list the available frequencies. # Depending on regulations, some frequencies/channels may not be available. WIRELESS_CHANNEL="" ## Type: string ## Default: "" # Set the sensitivity threshold. This is the lowest signal level for which we # attempt a packet recep tion, signal lower than this are not received. This # is used to avoid receiving background noise WIRELESS_SENS="" ## Type: string ## Default: "" # For cards supporting multiple bit rates, set the bit-rate in b/s. The # bit-rate is the speed at which bits are transmitted over the medium, the # user speed of the link is lower due to medium sharing and overhead. WIRELESS_RATE="" ## Type: string ## Default: "" # Used to manipulate encryption or scrambling keys and encryption mode. To # set the current encryption key, just enter the key in hex digits as # XXXX-XXXX-XXXX-XXXX or XXXXXXXX. You can also enter the key as an ASCII # string by using the s: prefix. 'off' disables encryption. Additionally you # may add 'open' or 'restricted' after the key, open set the system in open # mode (accept non-encrypted packets) and restricted discard non-encrypted # packets. # Examples: "0123-4567-89" # "s:password" # "s:password open" # "off" (Don't do that! No! No! No!) WIRELESS_KEY="" ## Type: string ## Default: "" # RTS/CTS adds a handshake before each packet trans mission to make sure # that the channel is clear. This adds overhead, but increase performance # in case of hidden nodes or large number of active nodes. WIRELESS_RTS="" ## Type: string ## Default: "" # Fragmentation allow to split a IP packet in a burst of smaller fragments # transmitted on the medium. In most cases this adds overhead, but in very # noisy environment this reduce the error penalty. WIRELESS_FRAG="" ## Type: string ## Default: "" # If you need other options for iwconfig, then write the complete option string # as you would append it to iwconfig but without the interface name to the # variables below. For multiple options you may (but need not) add linebreaks in # the string. WIRELESS_IWCONFIG_OPTIONS="" ## Type: string ## Default: "" # If you need to set options for iwspy, then write the complete option string as # you would append it to iwspy but without the interface name to the variables # below. For multiple options you may (but need not) add linebreaks in the # string. WIRELESS_IWSPY_OPTIONS="" ## Type: string ## Default: "" # If you need to set options for iwpriv then write the complete option string as # you would append it to iwpriv but without the interface name to the variables # below. For multiple options you may (but need not) add linebreaks in the # string. WIRELESS_IWPRIV_OPTIONS="" ` .6 ..adhcpcd-hook-sambab .6..# Set an explicit route to the localnet, because there was a report (bug 34872) # about performance problems in an oracle installation without that route. # Normally it should not be necessary since kernel 2.4, but it does not harm. 127/8 d .6..## Path: System/Security/Permissions ## Description: Configuration of permissions on the system ## Type: list(set,warn,no) ## Default: set ## Config: permissions # # SuSEconfig can call chkstat to check permissions and ownerships for # files and directories (using /etc/permissions). # Setting to "set" will correct it, "warn" produces warnings, if # something strange is found. Disable this feature with "no". # CHECK_PERMISSIONS="set" ## Type: string ## Default: "easy local" # # SuSE Linux contains two different configurations for # chkstat. The differences can be found in /etc/permissions.secure # and /etc/permissions.easy. If you create your own configuration # (e.g. permissions.foo), you can enter the extension here as well. # # (easy/secure local foo whateveryouwant). # PERMISSION_SECURITY="easy local" ## Path: System/Kernel ## Description: ## Type: string ## Command: /sbin/mkinitrd # # This variable contains the list of modules to be added to the initial # ramdisk by calling the script "mk_initrd" # (like drivers for scsi-controllers, for lvm or reiserfs) # INITRD_MODULES="piix mptbase mptscsih reiserfs" ## Type: string ## ServiceRestart: boot.loadmodules # # This variable contains the list of modules to be loaded # once the main filesystem is active # You will find a few default modules for hardware which # can not be detected automatically. # MODULES_LOADED_ON_BOOT="capability raw1394 video1394" ## Type: string ## Default: "" # # The file name of a binary ACPI Differentiated System Description Table # (DSDT). This table is appended to the initial ram disk (initrd) that # the mkinitrd script creates. If the kernel finds that its initrd # contains a DSDT, this table replaces the DSDT of the bios. If the file # specified in ACPI_DSDT is not found or ACPI_DSDT is empty/not specified, # no DSDT will be appended to the initrd. # Example path /etc/acpi/dsdt # ACPI_DSDT="" ## Type: integer # # Size parameter for mounting the tmpfs/shmfs filesystem. The kernel defaults # to 50% of the available RAM size, but this might not be enough for # some special setups. # SHMFS_SIZE="" ## Type: integer(1000:50000) ## Default: 1000 # # Length of the shortest timeslice a process (with lowest priority / maximum # niceness) will be running on a CPU. Time is given in microseconds (us). # This time should be much shorter than SCHED_MAXTIMESLICE to keep the # nice values meaningful. The values can only be specified up to a accuracy # of 1/HZ s, i.e. 10000us on a HZ=100 system, 1000us if HZ=1000. # Note that the boot script (boot.sched) does scale the values if the # MINTIMESLICE is below the minimum for the timer interrupt frequency (HZ # value) of the booted kernel. # For interactive desktop use, SCHED_MINTIMESLICE/SCHED_MAXTIMESLICE values # of 1000 and 30000 are recommended. For non-interactive use, multiply both # values by 10 or 20. # SCHED_MINTIMESLICE="" ## Type: integer(20000:1000000) ## Default: 40000 # # Length of the longest timeslice a process (with highest priority / minimum # niceness) will be running on a CPU. Time is given in microseconds (us). # This time should be much longer than SCHED_MINTIMESLICE to keep the # nice values meaningful. (The boot.sched script will not accept the value # if there's less than a factor of three in between them, default is 30.) # For interactive desktop use, SCHED_MINTIMESLICE/SCHED_MAXTIMESLICE values # of 1000 and 30000 are recommended. For non-interactive use, multiply both # values by 10 or 20. # SCHED_MAXTIMESLICE="" ## Path: Desktop/Display manager ## Description: ## Type: string(kdm,xdm,gdm,wdm,console) ## Default: "" # # Here you can set the default Display manager (kdm/xdm/gdm/wdm/console). # all changes in this file require a restart of the displaymanager # DISPLAYMANAGER="kdm" ## Type: yesno ## Default: no # # Allow remote access to your display manager (xdm/kdm). Please note # that a modified kdm or xdm configuration, e.g. by KDE control center # will not be changed. # DISPLAYMANAGER_REMOTE_ACCESS="no" ## Type: yesno ## Default: no # # Allow remote access of the user root to your display manager # DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no" ## Type: yesno ## Default: yes # # let the displaymanager start a local Xserver # set to "no" for remote-access only # set to "no" on architectures without any Xserver (e.g. s390/s390x) # DISPLAYMANAGER_STARTS_XSERVER="yes" ## Type: yesno ## Default: no ## Config: xdm # # Tcp port 6000 of Xserver. When set to "no" (default) Xserver is # started with "-nolisten tcp". Only set this to "yes" if you really # need to. Use ssh X11 port forwarding whenever possible. # DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no" ## Path: Desktop/Display manager ## Description: settings to generate a proper displaymanager config ## Type: list(root,all,none,local,auto) ## Default: auto ## Config: kdm3 KDM_SHUTDOWN="root" ## Type: string ## Default: # # space separated list of users for which icons should be shown in KDM # if empty, then take system defaults # KDM_USERS="" ## Type: string ## Default: # # Special greeting words in kdm # KDM_GREETSTRING="" ## Type: string ## Default: # # Define the user whom should get logged in without request # DISPLAYMANAGER_AUTOLOGIN="" ## Type: yesno ## Default: no # # Allow all users to login without password, but ask for the user # DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no" ## Type: string ## Default: SUSE # # Define the theme to be used by kdm. If empty, the traditional login # window is used (which lacks some features) # DISPLAYMANAGER_KDM_THEME="SUSE" RUN_UPDATEDB_AS="nobody" ## Path: System/Powermanagement/acpid ## Description: This section contains options to configure the behaviour \ ## of the acpi daemon. Note that these options do not influence the ACPI \ ## functions of powersaved, these are in System/Powermanagement/Powersave. ## Path: System/Powermanagement/acpid/General ## Description: General options for acpid and the acpid_proxy script ## Type: yesno ## Default: no ## ServiceRestart: # Make the acpid and the acpid_proxy-script more verbose. # Set this variable to "yes" to see when and how apmd_proxy is called. If # you like to see everything that is printed to stdout and stderr within # apmd_proxy you can set it to "error". If you are interested in every # single command within apmd_proxy then set it to "all". # Anything but "no" makes the apmd itself verbose # Default: "no" ACPI_DEBUG=no ## Path: System/Powermanagement/acpid/General ## Type: string(ac,battery,button,fan,processor,thermal,asus_acpi,toshiba_acpi) ## Default: "ac battery button fan processor thermal" ## ServiceRestart: acpid # The acipd startscript will load all necessary modules for acpi. If some of # these modules cause trouble, you may remove it from this variable. You may # add the modules asus_acpi or toshiba_acpi if your computer is an Asus or a # Toshiba. Seperate several modules by space. ACPI_MODULES="ac battery button fan processor thermal" ## Path: System/Powermanagement/acpid/General ## Type: string(ac,battery,button,fan,processor,thermal) ## Default: "" ## ServiceRestart: # The acpid startscript will unload all loaded ACPI modules, when acpid is # stopped. If some modules cause trouble when unloading, you may add them to # this variable. All modules in this list won't be unloaded. Note that some # other of these modules might be unloadable as well, but that should not harm.. ACPI_MODULES_NOT_TO_UNLOAD="ac battery button fan processor thermal" ## Path: System/Powermanagement/acpid/Event Handling ## Description: In these variables you may specify which action to execute \ ## when a certain event occurs. Your system might not generate \ ## all of the events. ## Type: string(shutdown, reboot, kde_term, kde_shutdown, wmaker_term, wmaker_term shutdown, standby, suspend, hibernate, ignore) ## Default: ignore # What to do if power button was pressed? You may select any of the # following actions. Seperate multiple actions by space. # - shutdown : shut down the computer # - reboot : reboot the computer # - kde_term : terminate kde session # - kde_shutdown : terminate kde session and shut down the computer # - wmaker_term : terminate wmaker session # - standby : set to stanby (S1) (THIS MAY CRASH SOME MACHINES) # - suspend : suspend the machine to memory (does almost never work) # - hibernate : suspend the machine to disk (does seldom work) # - ignore : do nothing ACPI_BUTTON_POWER=shutdown ## Path: System/Powermanagement/acpid/Event Handling ## Type: string(standby, suspend, hibernate, throttle, ignore) ## Default: ignore # What to do if sleep button was pressed? You may select any of the # following actions. Seperate multiple actions by space. # - standby : set to stanby (S1) (THIS MAY CRASH SOME MACHINES) # - suspend : suspend the machine to memory (does almost never work) # - hibernate : suspend the machine to disk (does seldom work) # - throttle : throttle system as much as possible (processor, disk) # - ignore : do nothing ACPI_BUTTON_SLEEP=ignore ## Path: System/Powermanagement/acpid/Event Handling ## Type: string(standby, suspend, hibernate, throttle, ignore) ## Default: ignore # What to do if lid was closed? You may select any of the # following actions. Seperate multiple actions by space. # - standby : set to stanby (S1) (THIS MAY CRASH SOME MACHINES) # - suspend : suspend the machine to memory (does almost never work) # - hibernate : suspend the machine to disk (does seldom work) # - throttle : throttle system as much as possible (processor, disk) # - ignore : do nothing ACPI_BUTTON_LID_CLOSE=ignore ## Path: System/Powermanagement/acpid/Event Handling ## Type: string(dethrottle, switch_vt, dethrottle switch_vt, ignore) ## Default: ignore # What to do if lid was opened? You may select any of the # following actions. Seperate multiple actions by space. # - dethrottle : undo system throttling to previous state (processor, disk) # - switch_vt : switch to virtual console 1 and back to 7. This may help if # : your screen is mangled after opening the lid. # - ignore : do nothing ACPI_BUTTON_LID_OPEN=dethrottle ## Path: System/Powermanagement/acpid/Event Handling ## Type: string ## Default: "" # Set the timeout for the disk in the throttled mode. The values are not just # seconds or minutes. It's a bit tricky. # From man hdparm (option -S): # .... The encoding # of the timeout value is somewhat peculiar. A value # of zero means "off". Values from 1 to 240 specify # multiples of 5 seconds, for timeouts from 5 seconds # to 20 minutes. Values from 241 to 251 specify from # 1 to 11 units of 30 minutes, for timeouts from 30 # minutes to 5.5 hours. A value of 252 signifies a # timeout of 21 minutes, 253 sets a vendor-defined # timeout, and 255 is interpreted as 21 minutes plus # 15 seconds. # If you don't want to change the disk timeout at all then leave this variable # empty. ACPI_THROTTLED_DISK_TIMEOUT="" ## Path: System/Powermanagement/acpid/Event Handling ## Type: string ## Default: "" # The update daemon will wake up the disk frequently, because it wants to flush # it's dirty write buffers every 5 seconds. If (and only if) you have a rock # solid system that will not crash or run out of battery then you may set this # variable to an interval you like (in seconds). # USE THIS WITH CARE!!! Leave this variable empty if you are unsure and don't # want to change anything. ACPI_THROTTLED_KUPDATED_INTERVAL="" ## Path: Network/General ## Description: ## Type: yesno ## Default: no ## ServiceRestart: boot.ipconfig # Do you want the "dynamic IP patch" to be enabled at bootup? (yes/no) # IP_DYNIP="no" ## Type: yesno ## Default: yes # # Enable syn flood protection (see /usr/src/linux/Documentation/Configure.help) # (yes/no) # IP_TCP_SYNCOOKIES="yes" ## Type: yesno ## Default: no # # Runtime-configurable parameter: forward IP packets. # Is this host a router? (yes/no) # IP_FORWARD="no" ## Type: yesno ## Default: no # # Runtime-configurable parameter: forward IPv6 packets. # IPV6_FORWARD="no" ## Type: yesno ## Default: no # # Runtime-configurable parameter: use temporary IPv6 addresses # instead of using the EUI-64 interface identifer # IPV6_PRIVACY=no # # Runtime-configurable parameter: send MLD announcements of this # version. # IPV6_MLD_VERSION="" ## Type: yesno ## Default: yes # # DISABLE_ECN # If you have trouble connecting to some machines on the internet, # this may be due to broken firewalls dropping network packets with # the ECN (early congestion notification) flag set. # Set this to yes to have ECN disabled at boot time. # DISABLE_ECN="yes" ## Path: System/Kernel ## Description: ## Type: yesno ## Default: no # # Enable Magic SysRq Keys? # If you say yes here, you will have some control over the system even # if it crashes (e.g. during kernel debugging). # For further information see /usr/src/linux/Documentation/sysrq.txt # ENABLE_SYSRQ="no" ## Path: System/Logging ## Description: System logging ## Type: list(0,1,2,3,4,5,6,7) ## Default: 1 ## Config: "" ## ServiceRestart: syslog # # Default loglevel for klogd # KERNEL_LOGLEVEL=1 ## Type: string ## Default: "" ## Config: "" ## ServiceRestart: syslog # # if not empty: parameters for syslogd # for example SYSLOGD_PARAMS="-r -s my.dom.ain" # SYSLOGD_PARAMS="" ## Type: string ## Default: -x ## Config: "" ## ServiceRestart: syslog # # if not empty: parameters for klogd # for example KLOGD_PARAMS="-x" to avoid (duplicate) symbol resolution # KLOGD_PARAMS="-x" ## Type: list(syslogd,syslog-ng) ## Default: syslogd ## Config: syslog-ng ## Command: /sbin/rcsyslog restart ## PreSaveCommand: /sbin/rcsyslog status && /sbin/rcsyslog stop # # The name of the syslog daemon used as # syslog service: "syslogd", "syslog-ng" # SYSLOG_DAEMON="syslog-ng" ## Type: yesno ## Default: yes ## Config: syslog-ng ## ServiceRestart: syslog # # If you don't want to let SuSEconfig generate your # syslog-ng configuration file, set this to "no". # # SuSEconfig is using a template configuration file # /etc/syslog-ng/syslog-ng.in # you can adopt it to your needs instead... # SYSLOG_NG_CREATE_CONFIG="yes" ## Type: string ## Default: "" ## Config: "" ## ServiceRestart: syslog # # Parameters for Syslog New-Generation - see syslog-ng(8) # SYSLOG_NG_PARAMS="" ## Type: string ## Default: "/var/lib/ntp/dev/log" ## ServiceRestart: syslog ## Config: syslog-ng # # The filename mentioned here will be added with the "-a ..." option as # additional socket via SYSLOGD_PARAMS when syslogd is started. # # This additional socket is needed in case that syslogd is restarted. Otherwise # a chrooted 'ntpd' won't be able to continue logging. # SYSLOGD_ADDITIONAL_SOCKET_NTP="/var/lib/ntp/dev/log" ## Path: System/Yast2/Autoyast ## Description: AutoYaST default repository locations and misc. configuration options ## Type: string ## Default: /var/lib/autoinstall/repository # # Repository with all profiles # REPOSITORY="/var/lib/autoinstall/repository" ## Type: string ## Default: /var/lib/autoinstall/classes # # Classes # CLASS_DIR="/var/lib/autoinstall/repository/classes" ## Type: string ## Default: "addon,conf" # # lists not to be merged, instead they will be "added" # XSLT_DONTMERGE="addon,conf" ## Path: System/Services ## Type: yesno ## Default: no # # Do you want to disable the automatic restart of services when # a new version gets installed? # DISABLE_RESTART_ON_UPDATE="no" ## Type: yesno ## Default: no # # Do you want to disable the automatic shutdown of services when # the corresponding package gets erased? # DISABLE_STOP_ON_REMOVAL="no" ## Path: Network/NIS/NIS client ## Description: Configuration for ypbind ## Type: string ## Default: "" ## ServiceRestart: ypbind # # Extra options for ypbind. Here you can add options like "-ypset", # "-ypsetme", "-p port" or "-no-ping". # YPBIND_OPTIONS="" ## Type: yesno ## Default: no ## ServiceRestart: ypbind # # If this option is set, ypbind will only bind to the loopback # interface and remote hosts cannot query it. (yes|no) # YPBIND_LOCAL_ONLY="no" ## Type: yesno ## Default: no ## ServiceRestart: ypbind # # If this option is set to "yes", ypbind will ignore /etc/yp.conf # and use a broadcast call to find a NIS server in the local subnet. # You should avoid to use this, it is a big security risk. (yes|no) # YPBIND_BROADCAST="no" ## Type: yesno ## Default: no ## ServiceRestart: ypbind # # You should set this to "yes" if you have a NIS server in your network, # which binds only to high ports over 1024. Since this is a security risk, # you should consider to replace the NIS server with another # implementation. (yes|no) # YPBIND_BROKEN_SERVER="no" ## Path: Network/WWW/Apache/SuSEhelp ## Description: SuSE help doc server configuration ## Type: yesno ## Default: no ## Config: apache ## ServiceRestart: apache ## Command: # # Set this to yes on the central documentation server # or to configure apache for local use of susehelp. # Then the online-help-system indices are automatically adjusted # and access to the help-files is allowed as specified in DOC_ALLOW. # To run as a client for the central documentation server who's name # is specified in DOC_HOST, just set DOC_SERVER to no. # The DOC_HOST and DOC_ALLOW variables are in the file /etc/sysconfig/susehelp. # DOC_SERVER="no" ## Path: Network/WWW/Apache2 ## Description: Configuration for Apache 2 ## Type: string ## Default: "" ## ServiceRestart: apache2 # # Here you can name files, separated by spaces, that should be Include'd from # httpd.conf. # # This allows you to add e.g. VirtualHost statements without touching # /etc/httpd/httpd.conf itself, which makes upgrading easier. # APACHE_CONF_INCLUDE_FILES="" ## Type: string ## Default: "" ## ServiceRestart: apache2 # # Here you can name directories, separated by spaces, that should be Include'd # from httpd.conf. # # All files contained in these directories will be recursively included by apache. # If a pattern like *.conf is appended, apache will use it. # # Examples: "/etc/apache2/my_conf/" # "/etc/apache2/virtual_hosts/*.conf" # "local/*.conf /srv/www/virtual/" # APACHE_CONF_INCLUDE_DIRS="" ## Type: string ## Default: "access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php4" ## ServiceRestart: apache2 # # [It might look silly to not simply edit httpd.conf for the LoadModule statements. # However, since the LoadModule statements might need an absolute path to the modules, # switching between MPMs can be quite a hassle. It's easier to just give the names here.] # # * list of all modules shipped with the base distribution: # # access actions alias asis auth auth_anon auth_dbm auth_digest auth_ldap # autoindex cache case_filter case_filter_in cern_meta cgi charset_lite # dav dav_fs deflate dir disk_cache dumpio echo env expires ext_filter # file_cache headers imap include info ldap log_config log_forensic logio # mem_cache mime mime_magic negotiation proxy proxy_connect proxy_ftp # proxy_http rewrite setenvif speling ssl status suexec unique_id userdir # usertrack vhost_alias # # see http://httpd.apache.org/docs-2.0/mod/ ! # # * It pays to use IfDefine statements... like # # .... # # # * In the APACHE_MODULES variable, you can use mod_xyz or just xyz syntax. # You may also name an absolute path if you like. # # * NOTE ON MOD_SSL: before you can enable this module, you need a server certificate. # A test certificate can be created by entering # 'cd /usr/share/doc/packages/apache2; ./certificate.sh' as root. # Also, you need to set the ServerName inside the # block to the fully qualified domain name (see /etc/HOSTNAME). # # * if your server certificate is protected by a passphrase you should increase the # APACHE_START_TIMEOUT (see above) # # * modules listed here will be ignored if they are not installed # # # EXAMPLES: # # fairly minimal # APACHE_MODULES="access alias auth dir log_config mime setenvif" # # apache's default installation # APACHE_MODULES="access actions alias asis auth autoindex cgi dir imap include log_config mime negotiation setenvif status userdir" # your settings APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php4 php5" ## Type: string ## Default: "" ## ServiceRestart: apache2 # # Additional server flags: # # Put here any server flags ("Defines") that you want to hand over to # httpd at start time, or other command line flags. # # Background: Any directives within an ... # section are only processed if the flag is defined. # This allows to write configuration which is active only in a # special cases, like during server maintenance, or for testing # something temporarily. # # Notably, to enable SSL support, 'SSL' needs to be added here. # To enable the server-status, 'STATUS' needs to be added here. # # It does not matter if you write flag1, -D flag1 or -Dflag1. # Multiple flags can be given as "-D flag1 -D flag2" or simply "flag1 flag2". # # Specifying such flags here is equivalent to giving them on the commandline. # (e.g. via rcapache2 start -DReverseProxy) # # Example: # "SSL STATUS AWSTATS SVN_VIEWCVS no_subversion_today" # APACHE_SERVER_FLAGS="" ## Type: string ## Default: "" ## ServiceRestart: apache2 # # Which config file do you want to use? # (if not set, /etc/apache2/httpd.conf is used.) # It is unusual to need to use this setting. # APACHE_HTTPD_CONF="" ## Type: list(prefork,worker,leader,metuxmpm) ## Default: "" ## ServiceRestart: apache2 # # MPM (multi-processing module) to use. # # Needed to determine with which MPM apache will run, as well as # against which header files modules will be built. # # If not set, the system will simply pick one of the installed MPMs. # # The implementation of the logic is in /usr/share/apache2/find_mpm, # a script which can be used standalone as well if needed. # APACHE_MPM="" ## Type: string ## Default: "" ## ServiceReload: apache2 # # email address of the server administrator (ServerAdmin directive) # This address is added to the server's responses if APACHE_SERVERSIGNATURE # is set to "email". # # If empty ("") it defaults to webmaster@$FQHOSTNAME, where FQHOSTNAME is # taken from /etc/HOSTNAME. # # Note that ServerAdmin directives inside VirtualHost statements are not # changed, even not the one in the stock SSL virtual host block. # APACHE_SERVERADMIN="" ## Type: string ## Default: "" ## ServiceReload: apache2 # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If this is not set to valid DNS name for your host, server-generated # redirections will not work. See also the UseCanonicalName directive. # # If your host doesn't have a registered DNS name, enter its IP address here. # You will have to access it by its address anyway, and this will make # redirections work in a sensible way. # APACHE_SERVERNAME="" ## Type: integer ## Default: 2 # # timeout during server startup (seconds) # after this time, the start script decides wether the httpd process started without error. # # Increase it, if you use mod_ssl and your certificate is passphrase protected! # APACHE_START_TIMEOUT="2" ## Type: list(on,off,email) ## Default: "on" ## ServiceReload: apache2 # # Configures the footer on server-generated documents # This correlates to the ServerSignature directive. # APACHE_SERVERSIGNATURE="on" ## Type: list(debug,info,notice,warn,error,crit,alert,emerg) ## Default: "warn" ## ServiceReload: apache2 # # LogLevel: Control the number of messages logged to the error_log. # APACHE_LOGLEVEL="warn" ## Type: string ## Default: "/var/log/apache2/access_log combined" ## ServiceRestart: apache2 # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a # container, they will be logged here. Contrarywise, if you *do* # define per- access logfiles, transactions will be # logged therein and *not* in this file. # # Simply set it to empty, if you configure it yourself somewhere else. # # Examples: # # If you would like to have agent and referer logfiles: # # setting it to "/var/log/apache2/referer_log referer, /var/log/apache2/agent_log agent" # corresponds to # CustomLog /var/log/apache2/referer_log referer # CustomLog /var/log/apache2/agent_log agent # # If you prefer a single logfile with access, agent, and referer information # (Combined Logfile Format): # # setting it to "/var/log/apache2/access_log combined" # corresponds to # CustomLog /var/log/apache2/access_log combined # APACHE_ACCESS_LOG="/var/log/apache2/access_log combined" ## Type: list(On,Off,DNS) ## Default: "Off" ## ServiceReload: apache2 # # UseCanonicalName: Determines how Apache constructs self-referencing # URLs and the SERVER_NAME and SERVER_PORT variables. # When set "Off", Apache will use the Hostname and Port supplied # by the client. When set "On", Apache will use the value of the # ServerName directive. # APACHE_USE_CANONICAL_NAME="off" ## Type: list(Major,Minor,Minimal,ProductOnly,OS,Full) ## Default: "OS" ## ServiceReload: apache2 # # How much information the server response header field contains about the server. # (installed modules, versions, etc.) # see http://httpd.apache.org/docs-2.0/mod/core.html#servertokens # APACHE_SERVERTOKENS="OS" ## Type: list(on,off) ## Default: "off" ## ServiceReload: apache2 # # If mod_status is used, include extended information about the server, like # CPU usage, in the status report. It is a server-wide setting, and it can cost # some performance! # APACHE_EXTENDED_STATUS="off" ## Type: list(on,off) ## Default: "off" ## ServiceRestart: apache2 # # Enable buffered logging # APACHE_BUFFERED_LOGS="off" ## Type: integer ## Default: 300 ## ServiceReload: apache2 # # Timeout: The number of seconds before receives and sends time out. # It is a server wide setting. # APACHE_TIMEOUT="300" ## Path: Hardware/Hotplug ## Description: Common hotplug options ## Type: list(default,off,verbose) ## Default: default ## ServiceRestart: ##################################################################### # Common Hotplug Options # ^^^^^^^^^^^^^^^^^^^^^^ # # This variable controls the amount of output of the hotplug service. With # 'default' (or '' or 'no') it prints only few messages and errors to syslog. # Setting it to 'off' it will be absolutely quiet. With 'verbose' (or 'yes') it # prints some extra debug output. With 'max' it will pollute your sysconfig # with every single detail. # HOTPLUG_DEBUG="no" ## Type: list(syslog,file,console,auto) ## Default: syslog ## ServiceRestart: # # The (debug) output and error messges of all hotplug scripts are written to # syslog by default and will be lost if no syslogd is running. Therefore you # may change that setting. You may choose one of these: # syslog all messages go to syslog (default) # file all messages will be written to /var/log/hotplug.log # console all messages will be written to /dev/console # auto use syslog if syslogd is running and file if not # Any other value is interpreted as syslog. # HOTPLUG_SYSLOG=syslog ## Type: integer(0:) ## Default: 50 # # Sets the maximum number of concurrent hotplug processes. '0' means # unlimited. If you experience memory shortage during booting # you should set this variable to something small, e.g 20. # HOTPLUG_MAX_EVENTS="50" ## Type: yesno ## Default: no # # Select whether a fully dynamic device nodes directory should be used. # If set to yes the device node directory /dev will be mounted on tmpfs. # All manual modification in the directory will be lost on reboot; these # modification should rather be done via custom udev rules. # See man udev for details. # HOTPLUG_DEV_ON_TMPFS="no" ## Type: yesno ## Default: no ## ServiceRestart: # # Sometimes there are multiple modules that match a device, but mostly we need # only one of them. Therefore we stop module loading after the first module of # the list was succesfully loaded. If you want hotplug to always load all # modules it gets then set this variable to 'yes'. # HOTPLUG_LOAD_MULTIPLE_MODULES=no ## Type: string ## Default: "01 02 06 09 0C" ## ServiceRestart: # # PCI agent (/etc/hotplug.d/pci/50-pci.hotplug) can skip devices of certain PCI # classes. If only some classes of PCI devices should be handled, then write # these classes to this variable. This has no effect if there is a valid # hardware configuration (/etc/sysconfig/hardware/hwcfg-*) for this device. # # It must only contain class. Subclass and prog-if may be skipped. That means # the numbers must at least have two digits. Seperate multiple numbers by space. # If this variable is empty, then all classes will be handled. Look at the end # of /usr/share/pci.ids for the right number. # # default: 01 Mass storage controller # 02 Network controller # 06 Bridges # 09 Input device controller # 0C Serial bus controller # HOTPLUG_PCI_CLASSES_WHITELIST="01 02 06 09 0C" ## Type: string ## Default: "" ## ServiceRestart: # # PCI agent (/etc/hotplug.d/pci/50-pci.hotplug) can skip devices of certain PCI # classes. If some classes of PCI devices should be skipped they have to be # listed in this variable. This has no effect if there is a valid hardware # configuration (/etc/sysconfig/hardware/hwcfg-*) for this device. # # It must only contain class, subclass and prog-if may be skipped. That means # the numbers must at least have two digits. Seperate multiple numbers by space. # If this variable is empty, then all classes will be handled. Look at the end # of /usr/share/pci.ids for the right number. # HOTPLUG_PCI_CLASSES_BLACKLIST="" ## Type: string ## Default: "" ## ServiceRestart: # # When hotplug PCI agent looks for a driver it loads any module that advertises # itself for the given device. Sometimes there are optional modules, that are # not at all neccessary for the proper usage of the device or that do not work # properly. # Sometimes you want PCI agent to load only modules that are in certain # subdirectories of /lib/modules//kernel/drivers/. If this # variable is not empty, only modules from the given subdirectories will be # loaded. If it is empty, then there is no limitation. Seperate multiple # subdirectories by space. This has no effect if there is a valid hardware # configuration (/etc/sysconfig/hardware/hwcfg-*) for this device. # # Note, that there is also /etc/hotplug/blacklist, to add single modules. # HOTPLUG_PCI_DRIVERTYPE_WHITELIST="" ## Type: string ## Default: "char/watchdog isdn mtd pci/hotplug video" ## ServiceRestart: # # When hotplug PCI agent looks for a driver it loads any module that advertises # itself for the given device. Sometimes there are optional modules, that are # not at all neccessary for the proper usage of the device or that do not work # properly. # Sometimes you want PCI agent to load only modules that are in certain # subdirectories of /lib/modules//kernel/drivers/. If this # variable is not empty, modules from the given subdirectories will be skipped. # If it is empty, then there is no limitation. Seperate multiple subdirectories # by space. This has no effect if there is a valid hardware # configuration (/etc/sysconfig/hardware/hwcfg-*) for this device. # # Note, that there is also /etc/hotplug/blacklist, to add single modules. # HOTPLUG_PCI_DRIVERTYPE_BLACKLIST="char/watchdog isdn mtd pci/hotplug video" ## Type: list(no,yes,wait) ## Default: yes ## ServiceRestart: # # At boot time there may be several events for network interface cards which are # processed asyncronously. In some cases it might happen that multiple drivers # register their interfaces at nearly the same time. Then it is mostly # unpredictable which interface will become which number, because the kernel # numbers them in order of registration. # Therefore we queue PCI events for NICs, so that only one driver is # initializing at one time. And because the PCI slots are scanned in a fixed # order, the interfaces should be named in the same order at every boot. # If you don't like it, turn it off. (You don't need it, if you use # PERSISTENT_NAME for every network interface.) # # If your interface still change their names with "yes", then try "wait". # HOTPLUG_PCI_QUEUE_NIC_EVENTS=yes ## Type: yesno ## Default: no ## ServiceRestart: coldplug # # If you have a machines that supports real PCI hotplugging (not cardbus), then # we have to load additional modules (cuurently just acpiphp). # HOTPLUG_DO_REAL_PCI_HOTPLUG=no ## Path: Hardware/Joystick ## Description: Joystick cofigurations ## Type: string ## Default: "" ## ServiceRestart: joystick # # Gameport module names # (typically "ns558" for legacy gameport support) # GAMEPORT_MODULE_0="" GAMEPORT_MODULE_1="" GAMEPORT_MODULE_2="" GAMEPORT_MODULE_3="" ## Type: string ## Default: "" # # Joystick module names # (typically "analog") # JOYSTICK_MODULE_0="" JOYSTICK_MODULE_1="" JOYSTICK_MODULE_2="" JOYSTICK_MODULE_3="" ## Type: string ## Default: "" # # Joystick module options # (e.g. "js=gameport" for analog) # JOYSTICK_MODULE_OPTION_0="" JOYSTICK_MODULE_OPTION_1="" JOYSTICK_MODULE_OPTION_2="" JOYSTICK_MODULE_OPTION_3="" ## Type: string ## Default: "" # # Control name of sound driver to activate (via alsactl) # e.g. "yes" (alias "Joystick") or "Joystick Enable" # JOYSTICK_CONTROL_0="" JOYSTICK_CONTROL_1="" JOYSTICK_CONTROL_2="" JOYSTICK_CONTROL_3="" ## Type: string ## Default: "" # # Port to be used (via alsactl) # Some soundcard like ens1371 needs the port address (typically 0x200) # JOYSTICK_CONTROL_PORT_0="" JOYSTICK_CONTROL_PORT_1="" JOYSTICK_CONTROL_PORT_2="" JOYSTICK_CONTROL_PORT_3="" ## Path: System/Environment/Language ## Description: ## Type: string(POSIX,ca_ES.ISO-8859-1,ca_ES.UTF-8,cs_CZ.ISO-8859-2,cs_CZ.UTF-8,da_DE@euro,da_DK.ISO-8859-1,da_DK.UTF-8,de_DE@euro,de_DE.ISO-8859-1,de_DE.UTF-8,el_GR.ISO-8859-7,el_GR.UTF-8,en_GB.ISO-8859-1,en_GB.UTF-8,en_IE@euro,en_IE.ISO-8859-1,en_US.ISO-8859-1,es_ES@euro,es_ES.ISO-8859-1,es_ES.UTF-8,fr_FR@euro,fr_FR.ISO-8859-1,fr_FR.UTF-8,gl_ES@euro,gl_ES.ISO-8859-1,gl_ES.utf-8,hr_HR.ISO-8859-2,hu_HU.ISO-8859-2,hu_HU.UTF-8,it_IT@euro,it_IT.ISO-8859-1,it_IT.UTF-8,ja_JP.eucJP,ja_JP.UTF-8,lt_LT.ISO-8859-13,lt_LT.UTF-8,nl_NL@euro,nl_NL.ISO-8859-1,nl_NL.UTF-8,ru_RU.ISO-8859-5,ru_RU.KOI8R,ru_RU.UTF-8,sk_SK.ISO-8859-2,sk_SK.UTF-8,tr_TR.ISO-8859-9,tr_TR.UTF-8,ko_KR.eucKR,ko_KR.UTF-8,zh_TW.Big5,zh_TW.UTF-8,zh_CN.GB2312,zh_CN.UTF-8) ## Default: "" ## Config: OpenOffice.org,groff,ispell,kde,kdm3,profiles,susehelp,susewm,tetex,wdm # # # Local users will get RC_LANG as their default language, i.e. the # environment variable $LANG . $LANG is the default of all $LC_*-variables, # as long as $LC_ALL is not set, which overrides all $LC_-variables. # Root uses this variable only if ROOT_USES_LANG is set to "yes". # RC_LANG="en_US.UTF-8" ## Type: string ## Default: "" # # This variable will override all LC-variables!! # Again, ROOT_USES_LANG must be set to "yes", if an effect on the superuser # account is desired. # RC_LC_ALL="" ## Type: string ## Default: "" # # This defines the locale in which messages of programs and # libraries with i18n-support should appear if a translated # message catalog for the library or the program is installed. # This also provides localized yes/no answers. # RC_LC_MESSAGES="" ## Type: string ## Default: "" # # This defines the locale for character handling and classification. # The libc uses this value in language dependent function calls, such # as e.g. uppercase/lowercase mapping of foreign characters. # RC_LC_CTYPE="" ## Type: string ## Default: "" # # This defines the locale for sorting strings and characters. # It is used by the libc to obtain the alphabetical order of characters # (e.g. for string comparisons). # RC_LC_COLLATE="" ## Type: string ## Default: "" # # This defines the locale for date and time output formats. # i.e.: 06/09/1999 vs. 09.06.1999 # RC_LC_TIME="" ## Type: string ## Default: "" # # This defines the locale for formatting and reading numbers. # i.e.: 1,234.56 vs. 1.234,56 # RC_LC_NUMERIC="" ## Type: string ## Default: "" # # This defines the locale for formatting and reading money values. # RC_LC_MONETARY="" ## Type: string ## Default: "" # # This defines the locale for format of paper. # RC_LC_PAPER="" ## Type: string(ctype) ## Default: ctype # # This defines if the user "root" should use the locale settings # which are defined here. # Value "ctype" means that root uses just LC_CTYPE. # ROOT_USES_LANG="ctype" ## Type: yesno ## Default: no # # Workaround for missing forward of LANG and LC variables # of e.g. ssh login connections. # AUTO_DETECT_UTF8="no" ## Type: string ## Default: "" # # List of installed language supports, use by YaST2 # INSTALLED_LANGUAGES="" ## Path: Desktop/Window manager ## Description: ## Type: string(kde,fvwm,gnome,windowmaker) ## Default: kde ## Config: profiles,kde,susewm # # Here you can set the default window manager (kde, fvwm, ...) # changes here require at least a re-login DEFAULT_WM="kde" ## Type: yesno ## Default: yes # # install the SuSE extension for new users # (theme and additional functions) # INSTALL_DESKTOP_EXTENSIONS="yes" ## Type: string ## Default: ## Path: Desktop ## Description: default mouse cursor theme # # Name of mouse cursor theme for X11. Possible themes can be found # in /usr/X11R6/lib/X11/icons/ # X_MOUSE_CURSOR="crystalwhite" ## Type: boolean ## Default: true ## Path: Desktop ## Description: create XDG menus for other windowmanagers ## (black, flux, openbox) # # Should SuSEconfig create XDG menus for other windowmanagers # like blackbox, fluxbox, openbox? # Possible values are lowercase "true" or "false". # CREATE_XDG_MENUS="true" ## Path: Desktop ## Description: prepare global sycoca database for faster first startup ## Type: list(yes,initial,no) ## Default: initial # # building a global sycoca database, which can be used at first user # login in KDE # KDE_BUILD_GLOBAL_SYCOCA="initial" ## Type: yesno ## Default: yes # # To disable IPv6 support within KDE. It might solve large timeouts due to # broken servers which claim to have IPv6 support, but do not respond. # KDE_USE_IPV6="yes" ## Type: yesno ## Default: yes # # IDN support can get disabled to avoid DNS phishing for example. # KDE_USE_IDN="yes" ## Path: System/Yast2/OnlineUpdate ## Description: YaST Online Update Configuration ## Type: yesno ## Default: yes # # While starting YOU ( YaST2-Online-Update ) the default server list will be # updated from a "master" server, usually www.suse.de. This list will be stored # under /var/lib/YaST2/you/youservers. User specific servers can be added to # /etc/youservers. # Set YAST2_LOADFTPSERVER to "no", if you do not want to reload the server list. # YAST2_LOADFTPSERVER="yes" ## Type: yesno ## Default: no # # If SLP_ENABLED is set to "yes", YOU will check via SLP (Service Location Protocol) # whether SLP servers, which provide YOU patches, are available. These servers # are added to the server list. # SLP_ENABLED="no" ## Type: string ## Default: # # Command line options which will be appended to the "online_update" command # used by the cron job set up with the "automatic update" option in the YOU GUI. # CMDLINE_OPTIONS="" ## Type: yesno ## Default: yes # # If set to "no" YOU will skip the patch selection page and will automatically # install all security and recommended patches for packages which are installed # on the system. # YOU_MANUAL_SELECTION="yes" ## Type: yesno ## Default: no # # If set to "yes" YOU will delete the downloaded RPM archives after installing # them to the system. # YOU_REMOVE_SOURCE_PACKAGES="yes" ## Type: list(yes,no,filesystem) ## Default: yes # # If set to "yes" YOU will try to download delta packages if # possible. You may need your installation media for this to work. # # If empty or set to 'filesystem' YOU will try to download delta packages that # apply to installed files. You don't need your installation media in this case # but might need to accept larger download sizes. # # If set to 'no' YOU will only use patch rpms and normal rpms. # # Note: you need to have the deltarpm tools installed to actually # make this work. Delta packages are only used via ftp and http. YOU_USE_DELTAS="" ## Path: System/Security/SASL ## Type: list(getpwent,kerberos5,pam,rimap,shadow,ldap) ## Default: pam ## ServiceRestart: saslauthd # # Authentication mechanism to use by saslauthd. # See man 8 saslauthd for available mechanisms. # SASLAUTHD_AUTHMECH=pam ## Path: System/SuSEconfig ## Type: yesno ## Default: yes ## Config: perl # # May SuSEconfig modify your perllocal.pod? (yes/no) # CREATE_PERLLOCAL_POD="yes" ## Path: System/SuSEconfig ## Description: ## Type: yesno ## Default: yes # # Some people don't want SuSEconfig to modify the system. With this # entry you can disable SuSEconfig completely. # Please don't contact our support if you have trouble configuring your # system after having disabled SuSEconfig. (yes/no) # ENABLE_SUSECONFIG="yes" ## Type: string(root,"") ## Default: root # # SuSEconfig can mail reports (created by YaST or included in packages) # to you. Here you can set the address. If you don't want reports to # be sent, then simply set it to "". # MAIL_REPORTS_TO="root" ## Type: list(warn,all,off) ## Default: off # # There are two levels of mailing. If you set MAIL_LEVEL it to "warn" # you will only get the important mails. If you set it to "all", you will # also receive the logs. # MAIL_LEVEL="off" ## Type: yesno ## Default: yes # # We have a small perl script to generate the usr/info/dir file. Do you # want this file to be generated? (yes/no) # CREATE_INFO_DIR="yes" ## Type: yesno ## Default: no # # If SORT_PASSWD_BY_UID is set to yes, SuSEconfig sorts your /etc/passwd # and /etc/group by uid/gid. # SORT_PASSWD_BY_UID="no" ## Type: yesno ## Default: no # # Do you want to have "." in root path? This is not recommended, but # many people do prefer it (yes/no). The setting affects all system # users (with uid < 100) # CWD_IN_ROOT_PATH="no" ## Type: yesno ## Default: yes # # Do you want to have "." in the path for normal users? # Defaults to "yes" since this has been the case for years. # CWD_IN_USER_PATH="no" ## Type: list(no,yes,octave) ## Default: no # # Set to "yes" or "quint" to play a quint tone sequence at system halt or reboot # or set to "octave" to play octave sound at that occasion. # HALT_SOUND="no" ## Path: System/SuSEconfig ## Type: yesno ## Config: groff ## Default: yes # # Update /etc/papersize to get page sizes for groff correct? (yes/no) # UPDATE_GROFF_CONF="yes" ## Type: string(letter,legal,a4,b5) ## Config: groff ## Default: "" # # By default, SuSEconfig tries to get the correct page size # from your system wide locale (i.e. from the system wide value of # LC_PAPER, which is possibly inherited from the system wide value of LANG). # If you want to set a page size for groff different from that, # you can set GROFF_PAGESIZE to the following values # letter, legal, a4, b5 # GROFF_PAGESIZE="" ## Path: System/Bootloader ## Description: Bootloader configuration ## Type: list(grub,lilo,none) ## Default: grub # # Type of bootloader in use. # For making the change effect run bootloader configuration tool # and configure newly selected bootloader # # LOADER_TYPE="grub" ## Path: System/Bootloader ## Description: Bootloader configuration ## Type: list(floppy,mbr,root,boot,custom,none) ## Default: mbr # # Location of boot loader. # For making the change effect run bootloader configuration tool # # LOADER_LOCATION="mbr" START_SERVICES="no" ## Path: Hardware/Keyboard ## Description: Keyboard settings ## Type: string ## Default: "" ## ServiceRestart: kbd # # Keyboard settings for the text console # # Keyboard mapping # (/usr/share/kbd/keymaps/) # e.g. KEYTABLE="de-latin1-nodeadkeys", "us" or empty for US settings # KEYTABLE="de-latin1.map.gz" ## Type: integer ## Default: # # Keyboard delay time in ms (250, 500, 750, 1000) KBD_DELAY="" ## Type: string(2.0,2.1,2.3,2.5,2.7,3.0,3.3,3.7,4.0,4.3,4.6,5.0,5.5,6.0,6.7,7.5,8.0,8.6,9.2,10.0,10.9,12.0,13.3,15.0,16.0,17.1,18.5,20.0,21.8,24.0,26.7,30.0) ## Default: # # Keyboard repeat rate (2.0 - 30.0) KBD_RATE="" ## Type: list(bios,yes,no) ## Default: bios # # NumLock on? ("yes" or "no" or empty or "bios" for BIOS setting) KBD_NUMLOCK="bios" ## Type: yesno ## Default: no # # ScrollLock on? ("yes" or "no") KBD_SCRLOCK="no" ## Type: yesno ## Default: no # # CapsLock on? ("yes" or "no") KBD_CAPSLOCK="no" ## Type: yesno ## Default: no # # Disable CAPS LOCK and make it a normal Shift key? # (Ctrl Caps Lock will still toggle Caps Lock functionality) # Note that you need to tweak the xkb maps or use xmodmap # if you want to do the same under X-Windows. In ~/.Xmodmap: # keycode 0x42 = Shift_L Shift_L # KBD_DISABLE_CAPS_LOCK="no" ## Type: string ## Default: "tty1 tty2 tty3 tty4 tty5 tty6" # # ttys for the above settings # Example: "tty1 tty2" # "" for all tty's # KBD_TTY="tty1 tty2 tty3 tty4 tty5 tty6" # # Compose tables to be loaded. # Compose tables are good for producing characters, which can not # be directly input from your keyboard, such as characters with # accents, currency signs, ... # Please read /usr/share/doc/packages/kbd/README.SuSE for an # explanation. # You may leave this variable empty (default compose table from kernel # or KEYTABLE will be used then -- most keyboard maps don't have a # compose table, though) # More than one compose table can be given. For a selection of possible # tables see /usr/share/kbd/keymaps/include/compose.* # You can give more than one compose table, but only the last one will # determine the compose combinations. # The word "clear" has a special meaning: # Your compose table will be cleared, before more compose symbols are # added. # The files compose.winkeys and shiftctrl may be used to map the # key to the W*n menu key and Shift-Ctrl, respectively, # on a PC keyboard. # A typical setting for Latin1 users (with a PC keyboard) may be # COMPOSETABLE="clear winkeys shiftctrl latin1.add" # For latin2, this would be # COMPOSETABLE="clear winkeys shiftctrl latin2" # A typical setting for sb. with a character set, where a matching # compose table is missing (but with a PC keyboard), would be # COMPOSETABLE="winkeys shiftctrl" # COMPOSETABLE="clear winkeys shiftctrl latin1.add" # The YaST-internal identifier of the attached keyboard. # YAST_KEYBOARD="english-us,pc104" ## Path: Network/Mail/Postfix ## Description: Basic configuration of the postfix MTA ## Type: string ## Default: "" ## Config: postfix # # Should we use a mailrelay? # NOTE: ALL mail that is not considered to be my destination # (POSTFIX_LOCALDOMAINS), will be sent to this host. # If this host is not your MX, then you have to use [square brackets] # around the hostname, e.g. [relay.example.com] # You may also specify an alternate port number, e.g. # relay.example.com:26 or [relay.example.com]:26 to prevent MX lookups. # POSTFIX_RELAYHOST="" ## Type: string ## Default: "" ## Config: postfix # # Comma separated list of domains that must have their subdomain # structure stripped off. # NOTE: If set, FROM_HEADER will also be appended to this list # POSTFIX_MASQUERADE_DOMAIN="" ## Type: string ## Default: "" ## Config: postfix # # Comma separated list of host-/domainnames for which postfix # should accept mail for. # localhost and the own hostname is the default if POSTFIX_LOCALDOMAINS # is set empty. # Examples: # POSTFIX_LOCALDOMAINS="\$myhostname, \$mydomain, localhost.\$mydomain" # if you want to use postfix internal variable substitutes or # POSTFIX_LOCALDOMAINS="example.com, host.example.com, localhost.example.com" # POSTFIX_LOCALDOMAINS="" ## Type: yesno ## Default: no ## Config: postfix ## ServiceRestart: postfix # # A null client is a machine that can only send mail. It receives no # mail from the network, and it does not deliver any mail locally. # A null client typically uses POP or NFS for mailbox access. # NOTE: This overrides the following variable: POSTFIX_LOCALDOMAINS # POSTFIX_NULLCLIENT="no" ## Type: yesno ## Default: no ## Config: postfix # # if set to yes, mail that will be delivered via smtp will stay # in the queue unless someone issues "sendmail -q" or equivalent. # POSTFIX_DIALUP="no" ## Type: yesno ## Default: no ## Config: postfix # # Some people use Postfix to deliver mail across a LAN that is disconnected # most of the time. Under such conditions, mail delivery can suffer from # delays while the Postfix SMTP client performs sender and recipient # domain DNS lookups in order to be standards-compliant. To prevent these # delays, set this to yes. # POSTFIX_NODNS="no" ## Type: yesno ## Default: no ## Config: postfix # # Start postfix services chrooted, that are able to run chrooted? # Note: if you want SuSEconfig to maintain the chroot jail, you # also have to set POSTFIX_UPDATE_CHROOT_JAIL to yes # POSTFIX_CHROOT="no" ## Type: yesno ## Default: no ## Config: postfix # # Set this to yes, if SuSEconfig should setup the chroot jail itself # POSTFIX_UPDATE_CHROOT_JAIL=no ## Type: yesno ## Default: no ## Config: postfix # # Some of the postfix services require a fifo to operate correctly at least # when the system load is high. Recurring fifo access will prevent the # disk to fall asleep, so you might want to use a unix domain socket # instead, if you are using a laptop. # POSTFIX_LAPTOP=no ## Type: yesno ## Default: yes ## Config: postfix # # Should SuSEconfig update the different .db maps in /etc/postfix? # POSTFIX_UPDATE_MAPS=yes ## Type: string ## Default: "virtual transport access canonical sender_canonical relocated sasl_passwd:600 relay_ccerts" ## Config: postfix # # The list of maps, which should be maintained, if # POSTFIX_UPDATE_MAPS=yes. POSTFIX_MAP_LIST must be a space seperated list of # file names without an absolute path. They are all to be exptected # within the directory /etc/postfix. Optionally a file mode can be appended # using a colon as separator # POSTFIX_MAP_LIST="virtual transport access canonical sender_canonical relocated sasl_passwd:600 relay_ccerts" ## Type: string ## Default: "" ## Config: postfix # # A comma seperated list of hosts that blacklist client IP addresses # Note: This only has effect, if POSTFIX_BASIC_SPAM_PREVENTION is set # to either "medium" or "hard". If left empty, no RBL checks will take place. # # Example: POSTFIX_RBL_HOSTS="rbl1.example.com, rbl2.example.com" # POSTFIX_RBL_HOSTS="" ## Type: string(off,medium,hard) ## Default: off ## Config: postfix # # POSTFIX_BASIC_SPAM_PREVENTION possible values: # off : postfix default configuration # medium : medium UCE policy checks # hard : hard UCE policy checks # # Setting this to medium or hard will activate some basic UCE controls # supported by postfix. This may lead to mails which are undeliverable # to your mailserver! USE THAT ON YOUR OWN RISC!!! # See http://www.postfix.org/uce.html for more details ! # POSTFIX_BASIC_SPAM_PREVENTION=off ## Type: list(procmail,cyrus,local) ## Default: local ## Config: postfix # # POSTFIX_MDA possible values: # procmail: use procmail to deliver mail locally # cyrus : use lmtp to deliver to cyrus-imapd # local : use postfix local MDA # POSTFIX_MDA=local ## Type: yesno ## Default: no ## Config: postfix # # Configure postfix to enable users to auth against postfix # to be able to relay mail independent of being within # the local network/domain. # You may want to edit /usr/lib64/sasl2/smtpd.conf to fit # your needs. # See /usr/share/doc/packages/postfix/README_FILES/SASL_README # for more details. # POSTFIX_SMTP_AUTH_SERVER=no ## Type: yesno ## Default: no ## Config: postfix # # Enable SMTP-AUTH for the postfix smtp client # you have to edit /etc/postfix/sasl_passwd and call # SuSEconfig -module postfix afterwards # POSTFIX_SMTP_AUTH=no ## Type: string ## Default: "" ## Config: postfix # # POSTFIX_SMTP_AUTH_OPTIONS possible values: # comma separated list of one or more of # # noplaintext: disallow methods that use plaintext passwords # noactive: disallow methods subject to active (non-dictionary) attack # nodictionary: disallow methods subject to passive (dictionary) attack # noanonymous: disallow methods that allow anonymous authentication # POSTFIX_SMTP_AUTH_OPTIONS="" ## Type: yesno ## Default: no ## Config: postfix # # Do you want to use STARTTLS or SMTP over SSL # POSTFIX_SMTP_TLS_SERVER=no ## Type: yesno ## Default: no ## Config: postfix # # Do you want to enable postfix smtp client to use TLS # POSTFIX_SMTP_TLS_CLIENT="no" ## Type: string ## Default: "/etc/postfix/ssl" ## Config: postfix # # path to the directory where the CA can be found # POSTFIX_SSL_PATH="/etc/postfix/ssl" ## Type: string ## Default: "cacert.pem" ## Config: postfix # # name of the CA file (below POSTFIX_SSL_PATH) # POSTFIX_TLS_CAFILE="cacert.pem" ## Type: string ## Default: "certs/postfixcert.pem" ## Config: postfix # # name of the file containing the certificate (below POSTFIX_SSL_PATH) # POSTFIX_TLS_CERTFILE="certs/postfixcert.pem" ## Type: string ## Default: "certs/postfixkey.pem" ## Config: postfix # # name of the file containing the key (below POSTFIX_SSL_PATH) # POSTFIX_TLS_KEYFILE="certs/postfixkey.pem" # # The following options are used by SuSEconfig.postix and mkpostfixcert # to create a CA and certificates # POSTFIX_SSL_COUNTRY must be a two letter code defined by ISO 3166 # ## Type: string ## Default: "XX" POSTFIX_SSL_COUNTRY="XX" ## Type: string ## Default: "Some state" POSTFIX_SSL_STATE="Some state" ## Type: string ## Default: "Some locality" POSTFIX_SSL_LOCALITY="Some locality" ## Type: string ## Default: "Some Organization" POSTFIX_SSL_ORGANIZATION="Some Organization" ## Type: string ## Default: "Some Organizational Unit" POSTFIX_SSL_ORGANIZATIONAL_UNIT="Some Organizational Unit" ## Type: string ## Default: "A common name" POSTFIX_SSL_COMMON_NAME="A common name" ## Type: string ## Default: "postmaster" POSTFIX_SSL_EMAIL_ADDRESS="postmaster" # # POSTFIX_ADD_* # You may add any existing postfix parameter here. Just execute the # postconf command to get a complete list. You then have to uppercase # the parameter and prepend POSTFIX_ADD_. # Example: # Let's say you want to add the postfix parameter mailbox_size_limit. # Then just add # POSTFIX_ADD_MAILBOX_SIZE_LIMIT=0 # POSTFIX_ADD_MESSAGE_SIZE_LIMIT=30000000 ## Type: string ## Default: 0 POSTFIX_ADD_MAILBOX_SIZE_LIMIT=0 ## Type: string ## Default: 10240000 POSTFIX_ADD_MESSAGE_SIZE_LIMIT=10240000 ## Type: yesno ## Default: yes ## Config: postfix # # Automatically register to slpd, if running? # POSTFIX_REGISTER_SLP="yes" domain sar server 192.168.2.20 | . ..}xntp.reg~ssh.regksysguardd.regvnc.reg samba.reg############################################################################# # # OpenSLP registration file # # register NTP daemon # ############################################################################# service:ntp://$HOSTNAME:123,en,65535 watch-port-udp=123 description=Network Time Protocol [xntp] ############################################################################# # # OpenSLP registration file # # register SSH daemon # ############################################################################# # Register the usual sshd, if it is running service:ssh://$HOSTNAME:22,en,65535 tcp-port=22 description=Secure Shell Daemon # ssh can get used to copy files with konqueror using the fish:/ protocol service:fish://$HOSTNAME:22,en,65535 tcp-port=22 description=KDE file transfer via SSH ############################################################################# # # OpenSLP registration file # # register ksysguard daemon # ############################################################################# service:ksysguardd.kde://$HOSTNAME:3112,en,65535 watch-port-udp=3112 description=KDE ksysguard daemon ############################################################################# # # OpenSLP registration file # # register VNC remote logins via kdm # You need also to allow remote logins # ############################################################################# # Register VNC service for krdc (KDE VNC client in kdenetwork) service:remotedesktop.kde:vnc://$HOSTNAME:5901,en,65535 tcp-port=5901 description=VNC remote login [1024x768] # Register VNC service for krdc (KDE VNC client in kdenetwork) service:remotedesktop.kde:vnc://$HOSTNAME:5902,en,65535 tcp-port=5902 description=VNC remote login [1280x1024] # Register VNC service for krdc (KDE VNC client in kdenetwork) service:remotedesktop.kde:vnc://$HOSTNAME:5903,en,65535 tcp-port=5903 description=VNC remote login [1600x1200] # Register VNC service for Java clients # Can be used with every Web browser with enabled Java service:remotedesktop.java:http://$HOSTNAME:5801,en,65535 tcp-port=5801 description=VNC remote login [1024x768] # Register VNC service for Java clients # Can be used with every Web browser with enabled Java service:remotedesktop.java:http://$HOSTNAME:5802,en,65535 tcp-port=5802 description=VNC remote login [1280x1024] # Register VNC service for Java clients # Can be used with every Web browser with enabled Java service:remotedesktop.java:http://$HOSTNAME:5803,en,65535 tcp-port=5803 description=VNC remote login [1600x1200] ############################################################################# # # OpenSLP registration file # # register Samba and SWAT # ############################################################################# # Register the samba server, if it is running service:smb://$HOSTNAME,en,65535 tcp-port=139 description=Samba file and print server # Register the web administration front-end for samba service:Samba-Swat:http://$HOSTNAME:901,en,65535 tcp-port=901 description=Samba web administration front end [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kerberos.example.com admin_server = kerberos.example.com } [logging] kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.log sar,dc,dc  . .. suse.de-backup-rc.configtetex suse.de-check-batterysuse.de-backup-rpmdb logrotate clean_catmansuse.de-cron-localdo_mandb(suse.de-clean-tmp#!/bin/sh # # # backup_rc.config. # # Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany. # # please send bugfixes or comments to http://www.suse.de/feedback. # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # # get information from /etc/sysconfig # if [ -f /etc/sysconfig/backup ] ; then . /etc/sysconfig/backup fi # # create backups archive of sysconfig files # if test -n "$RCCONFIG_BACKUP_DIR" -a -e /etc/sysconfig ; then mkdir -p $RCCONFIG_BACKUP_DIR OLD_MD5="" ETC_RCCONFIG="" test -f /etc/rc.config && ETC_RCCONFIG="/etc/rc.config" test -e $RCCONFIG_BACKUP_DIR/sysconfig_recent_md5 && \ OLD_MD5="`cat $RCCONFIG_BACKUP_DIR/sysconfig_recent_md5`" NEW_MD5="`find $ETC_RCCONFIG /etc/sysconfig -type f | xargs cat | md5sum`" if test "$OLD_MD5" != "$NEW_MD5" ; then DATESTRING=`date +"%Y%m%d"` NEWNAME=$RCCONFIG_BACKUP_DIR/sysconfig-$DATESTRING.tar.gz NUMBER=2 while [ -e $NEWNAME ] ; do NEWNAME=$RCCONFIG_BACKUP_DIR/sysconfig-$DATESTRING-$NUMBER.tar.gz NUMBER=`expr $NUMBER + 1` done if tar czfp $NEWNAME $ETC_RCCONFIG /etc/sysconfig 2>/dev/null ; then echo "$NEW_MD5" > $RCCONFIG_BACKUP_DIR/sysconfig_recent_md5 test "$MAX_RCCONFIG_BACKUPS" -gt 0 2> /dev/null || MAX_RCCONFIG_BACKUPS=0 NUMBER=1 for BACKUPFILE in `ls -1 -t $RCCONFIG_BACKUP_DIR/sysconfig-*` ; do if test "$NUMBER" -gt "$MAX_RCCONFIG_BACKUPS" ; then rm -f $BACKUPFILE fi NUMBER=`expr $NUMBER + 1` done else echo "ERROR!! can not backup sysconfig files" echo "to $RCCONFIG_BACKUP_DIR." echo "Maybe there is not enough disk space." rm -f $NEWNAME fi fi fi exit 0 #!/bin/bash # # Remove pk files older than 20 days # Remove tfm files older than 60 days # Don't remove source files # Call mktexlsr # test -r /etc/rc.config && . /etc/rc.config test -r /etc/sysconfig/tetex && . /etc/sysconfig/tetex VARTEXFONTS=$(kpsewhich --expand-var '$VARTEXFONTS' 2> /dev/null) if test "$CLEAR_TEXMF_FONTS" = "yes" -a -n "$VARTEXFONTS" -a -x /usr/bin/safe-rm ; then OLDIFS=$IFS; IFS=':;' for p in $VARTEXFONTS ; do test -d $p/pk/ && find $p/pk/ -type f -and -atime +20 -print0 test -d $p/tfm/ && find $p/tfm/ -type f -and -atime +60 -print0 done > >(exec -a xargs xargs -r -l100 -0 -- /usr/bin/safe-rm) IFS=$OLDIFS fi # # Update the ls-R's # mktexlsr > /dev/null # exit 0 #!/bin/sh # # # Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. # # please send bugfixes or comments to http://www.suse.de/feedback. # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # # check CMOS Battery # test -r /proc/driver/rtc && \ BATT_STATUS=$(awk '$1 == "batt_status" { print $3 }' /proc/driver/rtc) test -r /proc/rtc && \ BATT_STATUS=$(awk '$1 == "batt_status" { print $3 }' /proc/rtc) test -n "$BATT_STATUS" -a "$BATT_STATUS" != "okay" && \ echo "CMOS battery empty -- expect problems" exit 0 #!/bin/sh # # # backup_rpmdb. This script was split off cron.daily # Please add your local changes to cron.daily.local # since this file will be overwritten, when updating your system. # # Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany. # # please send bugfixes or comments to http://www.suse.de/feedback. # # Author: Burchard Steinbild, 1996 # Florian La Roche, 1996 # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # # get information from /etc/sysconfig # if [ -f /etc/sysconfig/backup ] ; then . /etc/sysconfig/backup fi # # PACKAGEDBFILE=packages.rpm if test -e /var/lib/rpm/Packages ; then PACKAGEDBFILE=Packages fi # # create backups of rpm data base # if test -n "$RPMDB_BACKUP_DIR" -a -e /var/lib/rpm/$PACKAGEDBFILE ; then mkdir -p $RPMDB_BACKUP_DIR OLD_MD5="" test -e $RPMDB_BACKUP_DIR/rpmdb_recent_md5 && \ OLD_MD5="`cat $RPMDB_BACKUP_DIR/rpmdb_recent_md5`" NEW_MD5="`cat /var/lib/rpm/$PACKAGEDBFILE | md5sum`" if test "$OLD_MD5" != "$NEW_MD5" ; then DATESTRING=`date +"%Y%m%d"` NEWNAME=$RPMDB_BACKUP_DIR/$PACKAGEDBFILE-$DATESTRING NUMBER=2 while [ -e $NEWNAME -o -e $NEWNAME.gz ] ; do NEWNAME=$RPMDB_BACKUP_DIR/$PACKAGEDBFILE-$DATESTRING-$NUMBER NUMBER=`expr $NUMBER + 1` done if gzip -9 < /var/lib/rpm/$PACKAGEDBFILE > $NEWNAME.gz; then echo "$NEW_MD5" > $RPMDB_BACKUP_DIR/rpmdb_recent_md5 test "$MAX_RPMDB_BACKUPS" -gt 0 2> /dev/null || MAX_RPMDB_BACKUPS=0 NUMBER=1 for BACKUPFILE in `ls -1 -t $RPMDB_BACKUP_DIR/$PACKAGEDBFILE-*` ; do if test "$NUMBER" -gt "$MAX_RPMDB_BACKUPS" ; then rm -f $BACKUPFILE fi NUMBER=`expr $NUMBER + 1` done else echo "ERROR!! can not backup RPM Database to $RPMDB_BACKUP_DIR." echo "Maybe there is not enough disk space." rm -f $NEWNAME $NEWNAME.gz fi fi fi exit 0 #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 #!/bin/sh # # # clean_catman. This script was split off cron.daily # Please add your local changes to cron.daily.local # since this file will be overwritten, when updating your system. # # Copyright (c) 1996-2002 SuSE GmbH Nuernberg, Germany. # # please send bugfixes or comments to feedback@suse.de. # # Author: Burchard Steinbild , 1996 # Florian La Roche , 1996 # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH if [ -f /etc/sysconfig/cron ] ; then . /etc/sysconfig/cron fi # # Delete too old preformatted man-pages. # if test "$DELETE_OLD_CATMAN" = yes ; then if test -z "$CATMAN_ATIME" ; then # Default is 7 days CATMAN_ATIME=7 fi test -e /var/cache/man -a -x /usr/bin/safe-rm && \ find /var/cache/man -name '*.gz' -type f -atime +$CATMAN_ATIME -print0 | \ xargs --no-run-if-empty --max-lines=200 --null -- /usr/bin/safe-rm fi exit 0 #!/bin/sh # # # Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. # # please send bugfixes or comments to http://www.suse.de/feedback. # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # now start the local cron.daily file, if it exists. if [ -f /root/bin/cron.daily.local ] ; then . /root/bin/cron.daily.local fi exit 0 #!/bin/sh # # # do_mandb. This script was split off cron.daily. # Please add your local changes to cron.daily.local # since this file will be overwritten, when updating your system. # # Copyright (c) 1996-2002 SuSE GmbH Nuernberg, Germany. # # please send bugfixes or comments to feedback@suse.de. # # Author: Burchard Steinbild , 1996 # Florian La Roche , 1996 # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # # get information from /etc/sysconfig/cron # if test -f /etc/sysconfig/cron ; then . /etc/sysconfig/cron fi # # now we do the man page stuff # if test "$REINIT_MANDB" = yes -o ! -s /var/cache/man/index.db ; then if test -x /usr/bin/mandb ; then test -x /usr/bin/safe-rm -a -e /var/cache/man/index.bt && \ /usr/bin/safe-rm /var/cache/man/index.bt /usr/bin/mandb -q -s 2> /dev/null || { echo There seem to be trouble with mandb. echo echo please run /usr/bin/mandb an check the output... } fi # # some applications need whatis database. If makewhatis exists, call it # if test -x /usr/sbin/makewhatis ; then /usr/sbin/makewhatis fi fi exit 0 #!/bin/sh # # # clean_tmp. This script was split off cron.daily # Please add your local changes to cron.daily.local # since this file will be overwritten, when updating your system. # # Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany. # # please send bugfixes or comments to http://www.suse.de/feedback. # # Author: Burchard Steinbild, 1996 # Florian La Roche, 1996 # # # paranoia settings # umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # # get information from /etc/sysconfig # if [ -f /etc/sysconfig/cron ] ; then . /etc/sysconfig/cron fi # # Delete apropriate files in tmp directories. # OMIT="" for i in $OWNER_TO_KEEP_IN_TMP ; do OMIT="$OMIT ( ! -user $i )" done function cleanup_tmp { MAX_DAYS=$1 shift DIRS_TO_CLEAR="$@" if [ "$MAX_DAYS" -gt 0 ]; then for DIR in $DIRS_TO_CLEAR ; do test -x /usr/bin/safe-rm && { find $DIR/. $OMIT ! -type d ! -type s ! -type p \ -atime +$MAX_DAYS -exec /usr/bin/safe-rm {} \; } || echo "Error: Can not find /usr/bin/safe-rm" find $DIR/. $OMIT -depth -type d -empty -mindepth 1 \ -mtime +$MAX_DAYS -exec /usr/bin/safe-rmdir {} \; done fi } cleanup_tmp ${MAX_DAYS_IN_TMP:-0} ${TMP_DIRS_TO_CLEAR:-/tmp} cleanup_tmp ${MAX_DAYS_IN_LONG_TMP:-0} ${LONG_TMP_DIRS_TO_CLEAR} exit 0 /usr/share/kbd/keymaps/i386/qwertz/de-latin1.map.gz # Add the names of users here you want to allow the execution # of scpm commands switch, list, active, and status. # You need to set the suid bit of /sbin/scpm to enable this feature. # # All local filesystems are mounted (done during boot phase) # $local_fs boot.localfs # # Low level networking (ethernet card) # $network network +pcmcia +hotplug # # Named is operational # $named +named +dnsmasq +lwresd $network # # All remote filesystems are mounted (note in some cases /usr may # be remote. Most applications that care will probably require # both $local_fs and $remote_fs) # $remote_fs $local_fs +nfs # # System logger is operational # $syslog syslog # # All network daemons are running (this entry is OBSOLETE) # $netdaemons portmap inetd # # SunRPC portmapper available # $portmap portmap # # The system time has been set correctly # $time boot.clock +xntpd # # Services which need to be interactive # boot.crypto boot.localfs boot.rootfsck apache apache2 #command \e[A back-line \e[B forw-line \eO5A back-line \eO5B forw-line \eO5C right-scroll \eO5D left-scroll \e[6~ forw-scroll \e[5~ back-scroll \177 back-screen ^H back-screen \e[3~ back-screen \e[3;5~ back-screen \e[2~ visual \e[2;5~ visual \e[1~ goto-line \eOH goto-line \eO5H goto-line \e[4~ goto-end \eOF goto-end \eO5F goto-end \eOM forw-line #line-edit \eO5A up \eO5B down \eO5C right \eO5D left \177 backspace ^H backspace \e[3~ delete \e[3;5~ delete \e[1~ home \eOH home \eO5H home \e[4~ end \eOF end \eO5F end \e[5~ up \e[6~ down \e[5;5~ up \e[6;5~ down \e[2~ insert \e[2;5~ insert \e[E insert \e[G insert \eOE insert \eOo insert : \eOj insert * \eOm insert - \eOk insert + \eOl insert , \eOM insert \eOw insert 7 \eOx insert 8 \eOy insert 9 \eOt insert 4 \eOu insert 5 \eOv insert 6 \eOq insert 1 \eOr insert 2 \eOs insert 3 \eOp insert 0 \eOn insert . #env LESSBINFMT=*s\%o # ------------------------------------------------------------------------- # # MySQLaccess version 2.0p2 # # (c) Yves.Carlier@rug.ac.be, 1997 # # # # *** Configuration file *** # # # # -Default values read by mysqlaccess during initialisation. # # This file is looked for in # # 1) the current directory # # 2) /etc/ # # -Options given on the command-line override the values given in here # # -Given options can't be overruled by empty/blanc options!! # # ------------------------------------------------------------------------- # # ----------------# # Global settings # # --------------- # #$Param{'host'} = ''; $Param{'user'} = 'nobody'; $Param{'db'} = 'test'; $Param{'password'} = 'foobar'; $Param{'debug'} = 0; # --------------------------# # Settings for Command-line # # ------------------------- # if ($CMD) { $Param{'superuser'} = 'root'; $Param{'rhost'} = 'localhost'; $Param{'spassword'} = ''; $Param{'brief'} = 1; } # ---------------------# # Settings for CGI-BIN # # -------------------- # if ($CGI) { $Param{'superuser'} = 'root'; $Param{'rhost'} = 'localhost'; $Param{'spassword'} = ''; $Param{'table'} = 1; } 1; #to make require happy # Defaut configuration file for nss_mdns # Applicable domains domain local domain 0.8.e.f.ip6.int domain 0.8.e.f.ip6.arpa domain 254.169.in-addr.arpa  . ..mcelog#!/bin/bash /usr/sbin/mcelog >> /var/log/mcelog  . .. cvs vnc echo time swatdaytimeservers chargen-udpnetstatsystatvsftpdservices daytime-udptime-udpecho-udp pure-ftpdchargen# CVS pserver (remote acces to your CVS repositories) # Please read the section on security and passwords in the CVS manual, # before you enable this. # default: off service cvspserver { disable = yes socket_type = stream protocol = tcp wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/home/cvsroot pserver } # default: off # description: This serves out a VNC connection which starts at a KDM login \ # prompt. This VNC connection has a resolution of 1024x768, 16bit depth. service vnc1 { type = UNLISTED port = 5901 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/Xvnc server_args = :42 -inetd -once -query localhost -geometry 1024x768 -depth 16 disable = yes } # default: off # description: This serves out a VNC connection which starts at a KDM login \ # prompt. This VNC connection has a resolution of 1280x1024, 16bit depth. service vnc2 { type = UNLISTED port = 5902 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/Xvnc server_args = :42 -inetd -once -query localhost -geometry 1280x1024 -depth 16 disable = yes } # default: off # description: This serves out a VNC connection which starts at a KDM login \ # prompt. This VNC connection has a resolution of 1600x1200, 16bit depth. service vnc3 { type = UNLISTED port = 5903 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/Xvnc server_args = :42 -inetd -once -query localhost -geometry 1600x1200 -depth 16 disable = yes } # default: off # description: This serves out the vncviewer Java applet for the VNC \ # server running on port 5901, (vnc port 1). service vnchttpd1 { type = UNLISTED port = 5801 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/vnc_inetd_httpd server_args = 1024 768 5901 disable = yes } # default: off # description: This serves out the vncviewer Java applet for the VNC \ # server running on port 5902, (vnc port 2). service vnchttpd2 { type = UNLISTED port = 5802 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/vnc_inetd_httpd server_args = 1280 1024 5902 disable = yes } # default: off # description: This serves out the vncviewer Java applet for the VNC \ # server running on port 5902, (vnc port 3). service vnchttpd3 { type = UNLISTED port = 5803 socket_type = stream protocol = tcp wait = no user = nobody server = /usr/X11R6/bin/vnc_inetd_httpd server_args = 1600 1200 5903 disable = yes } # default: off # description: An echo server. This is the tcp version. service echo { type = INTERNAL id = echo-stream socket_type = stream protocol = tcp user = root wait = no disable = yes } # default: off # description: An RFC 868 time server. This is the tcp version, # which is used by rdate. service time { type = INTERNAL id = time-stream socket_type = stream protocol = tcp user = root wait = no disable = yes } # SWAT is the Samba Web Administration Tool. service swat { socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/swat only_from = 127.0.0.1 log_on_failure += USERID disable = yes } # default: off # description: A daytime server. This is the tcp version. service daytime { type = INTERNAL id = daytime-stream socket_type = stream protocol = tcp user = root wait = no disable = yes } # default: off # description: An internal xinetd service, listing active servers. service servers { type = INTERNAL UNLISTED port = 9099 socket_type = stream protocol = tcp wait = no disable = yes only_from = 127.0.0.1 } # default: off # description: A chargen server. This is the udp version. service chargen { type = INTERNAL UNLISTED id = chargen-dgram socket_type = dgram protocol = udp user = root wait = yes disable = yes port = 19 } # netstat (like the services finger and systat) give out user information which # may be valuable to potential "system crackers." Many sites choose to disable # some or all of these services to improve security. Try "telnet localhost # systat" and "telnet localhost netstat" to see that information yourself! # service netstat { disable = yes socket_type = stream protocol = tcp wait = no user = root server = /bin/netstat server_args = -a } # Finger, systat and netstat give out user information which may be # valuable to potential "system crackers." Many sites choose to disable # some or all of these services to improve security. # Try "telnet localhost systat" and "telnet localhost netstat" to see that # information yourself! # service systat { disable = yes socket_type = stream protocol = tcp wait = no user = nobody server = /bin/ps server_args = -auwwx } # default: off # description: # The vsftpd FTP server serves FTP connections. It uses # normal, unencrypted usernames and passwords for authentication. # vsftpd is designed to be secure. service ftp { # server_args = # log_on_success += DURATION USERID # log_on_failure += USERID # nice = 10 socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/vsftpd } # default: off # description: An internal xinetd service, listing active services. service services { type = INTERNAL UNLISTED port = 9098 socket_type = stream protocol = tcp wait = no disable = yes only_from = 127.0.0.1 } # default: off # description: A daytime server. This is the udp version. service daytime { type = INTERNAL UNLISTED id = daytime-dgram socket_type = dgram protocol = udp user = root wait = yes disable = yes port = 13 } # default: off # description: An RFC 868 time server. This is the udp version. service time { type = INTERNAL UNLISTED id = time-dgram socket_type = dgram protocol = udp user = root wait = yes disable = yes port = 37 } # default: off # description: An echo server. This is the udp version. service echo { type = INTERNAL UNLISTED id = echo-dgram socket_type = dgram protocol = udp user = root wait = yes disable = yes port = 7 } # default: off # description: The ftpd server serves FTP connections. It uses normal, \ # unencrypted usernames and passwords for authentication. This ftpd is \ # the pure-ftpd. # ** NOTE ** when using pure-ftpd from xinetd the arguments to control # it's behaviour should be added here in this file in the # "server_args" line since the configuration file # /etc/pure-ftpd.conf is only for standalone pure-ftpd. # The command "/usr/sbin/pure-config-args /etc/pure-ftpd.conf" # will print the arguments needed for behaviour like standalone # pure-ftpd. service ftp { socket_type = stream server = /usr/sbin/pure-ftpd # server_args = protocol = tcp user = root wait = no disable = yes } # default: off # description: A chargen server. This is the tcp version. service chargen { type = INTERNAL id = chargen-stream socket_type = stream protocol = tcp user = root wait = no disable = yes } #!/bin/sh # $Id: auto.net,v 1.5 2003/09/29 08:22:35 raven Exp $ # Look at what a host is exporting to determine what we can mount. # This is very simple, but it appears to work surprisingly well key="$1" # add "nosymlink" here if you want to suppress symlinking local filesystems # add "nonstrict" to make it OK for some filesystems to not mount opts="-fstype=nfs,hard,intr,nodev,nosuid" # Showmount comes in a number of names and varieties. "showmount" is # typically an older version which accepts the '--no-headers' flag # but ignores it. "kshowmount" is the newer version installed with knfsd, # which both accepts and acts on the '--no-headers' flag. #SHOWMOUNT="kshowmount --no-headers -e $key" #SHOWMOUNT="showmount -e $key | tail +2" # Newer distributions get this right SHOWMOUNT="/usr/sbin/showmount --no-headers -e $key" $SHOWMOUNT | sort +0 | \ awk -v key="$key" -v opts="$opts" -- ' BEGIN { ORS=""; first=1 } { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 } END { if (!first) print "\n"; else exit 1 } ' # # /etc/nscd.conf # # An example Name Service Cache config file. This file is needed by nscd. # # Legal entries are: # # logfile # debug-level # threads # max-threads # server-user # server-user is ignored if nscd is started with -S parameters # stat-user # reload-count unlimited| # paranoia # restart-interval