Wed Jun 6 22:19:01 UTC 2018

a/bash-4.4.023-x86_64-1.txz:  Upgraded.
a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz:  Upgraded.
a/kernel-generic-4.14.48-x86_64-1.txz:  Upgraded.
a/kernel-huge-4.14.48-x86_64-1.txz:  Upgraded.
a/kernel-modules-4.14.48-x86_64-1.txz:  Upgraded.
ap/cups-2.2.8-x86_64-1.txz:  Upgraded.
ap/ghostscript-fonts-std-8.11-noarch-3.txz:  Rebuilt.
  Rebuilt this and many other font packages or packages with build scripts
  that call mkfontdir or mkfontscale to suppress any error messages caused
  by collisions if another package installation is writing files to the
  same font directories when those utilities are run. In that case, the
  other package will also be running mkfontdir/mkfontscale after the files
  are installed, so any issues will be cleaned up then. Last one out turn
  off the lights, so to speak.
ap/sqlite-3.24.0-x86_64-1.txz:  Upgraded.
ap/terminus-font-4.40-noarch-3.txz:  Rebuilt.
d/kernel-headers-4.14.48-x86-1.txz:  Upgraded.
d/rust-1.26.2-x86_64-1.txz:  Upgraded.
k/kernel-source-4.14.48-noarch-1.txz:  Upgraded.
l/elfutils-0.171-x86_64-1.txz:  Upgraded.
l/harfbuzz-1.7.7-x86_64-1.txz:  Upgraded.
l/mozilla-nss-3.37.3-x86_64-1.txz:  Upgraded.
l/readline-7.0.005-x86_64-1.txz:  Upgraded.
x/dejavu-fonts-ttf-2.37-noarch-4.txz:  Rebuilt.
x/font-adobe-100dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-adobe-75dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-adobe-utopia-100dpi-1.0.4-noarch-3.txz:  Rebuilt.
x/font-adobe-utopia-75dpi-1.0.4-noarch-3.txz:  Rebuilt.
x/font-adobe-utopia-type1-1.0.4-noarch-3.txz:  Rebuilt.
x/font-arabic-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-100dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-75dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-ttf-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bh-type1-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bitstream-100dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bitstream-75dpi-1.0.3-noarch-3.txz:  Rebuilt.
x/font-bitstream-speedo-1.0.2-noarch-3.txz:  Rebuilt.
x/font-bitstream-type1-1.0.3-noarch-3.txz:  Rebuilt.
x/font-cronyx-cyrillic-1.0.3-noarch-3.txz:  Rebuilt.
x/font-cursor-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-daewoo-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-dec-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-ibm-type1-1.0.3-noarch-3.txz:  Rebuilt.
x/font-isas-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-jis-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-micro-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-misc-cyrillic-1.0.3-noarch-3.txz:  Rebuilt.
x/font-misc-ethiopic-1.0.3-noarch-3.txz:  Rebuilt.
x/font-misc-meltho-1.0.3-noarch-3.txz:  Rebuilt.
x/font-misc-misc-1.1.2-noarch-3.txz:  Rebuilt.
x/font-mutt-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-schumacher-misc-1.1.2-noarch-3.txz:  Rebuilt.
x/font-screen-cyrillic-1.0.4-noarch-3.txz:  Rebuilt.
x/font-sony-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-sun-misc-1.0.3-noarch-3.txz:  Rebuilt.
x/font-winitzki-cyrillic-1.0.3-noarch-3.txz:  Rebuilt.
x/font-xfree86-type1-1.0.4-noarch-3.txz:  Rebuilt.
x/liberation-fonts-ttf-2.00.1-noarch-3.txz:  Rebuilt.
x/libinput-1.11.0-x86_64-1.txz:  Upgraded.
x/sazanami-fonts-ttf-20040629-noarch-3.txz:  Rebuilt.
x/sinhala_lklug-font-ttf-20060929-noarch-3.txz:  Rebuilt.
x/tibmachuni-font-ttf-1.901b-noarch-3.txz:  Rebuilt.
x/ttf-indic-fonts-0.5.14-noarch-3.txz:  Rebuilt.
x/ttf-tlwg-0.6.4-noarch-3.txz:  Rebuilt.
x/urw-core35-fonts-otf-20170801_91edd6e_git-noarch-2.txz:  Rebuilt.
x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz:  Rebuilt.
xap/mozilla-firefox-60.0.2-x86_64-1.txz:  Upgraded.
  This release contains security fixes and improvements.
  For more information, see:
    https://www.mozilla.org/security/known-vulnerabilities/firefox.html
  (* Security fix *)
xap/x3270-3.3.12ga7-x86_64-5.txz:  Rebuilt.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
This commit is contained in:
Patrick J Volkerding 2018-06-06 22:19:01 +00:00 committed by Eric Hameleers
parent ec4fd2d70a
commit 6e00c56127
249 changed files with 21973 additions and 896 deletions

11172
ChangeLog.rss Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,82 @@
Wed Jun 6 22:19:01 UTC 2018
a/bash-4.4.023-x86_64-1.txz: Upgraded.
a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz: Upgraded.
a/kernel-generic-4.14.48-x86_64-1.txz: Upgraded.
a/kernel-huge-4.14.48-x86_64-1.txz: Upgraded.
a/kernel-modules-4.14.48-x86_64-1.txz: Upgraded.
ap/cups-2.2.8-x86_64-1.txz: Upgraded.
ap/ghostscript-fonts-std-8.11-noarch-3.txz: Rebuilt.
Rebuilt this and many other font packages or packages with build scripts
that call mkfontdir or mkfontscale to suppress any error messages caused
by collisions if another package installation is writing files to the
same font directories when those utilities are run. In that case, the
other package will also be running mkfontdir/mkfontscale after the files
are installed, so any issues will be cleaned up then. Last one out turn
off the lights, so to speak.
ap/sqlite-3.24.0-x86_64-1.txz: Upgraded.
ap/terminus-font-4.40-noarch-3.txz: Rebuilt.
d/kernel-headers-4.14.48-x86-1.txz: Upgraded.
d/rust-1.26.2-x86_64-1.txz: Upgraded.
k/kernel-source-4.14.48-noarch-1.txz: Upgraded.
l/elfutils-0.171-x86_64-1.txz: Upgraded.
l/harfbuzz-1.7.7-x86_64-1.txz: Upgraded.
l/mozilla-nss-3.37.3-x86_64-1.txz: Upgraded.
l/readline-7.0.005-x86_64-1.txz: Upgraded.
x/dejavu-fonts-ttf-2.37-noarch-4.txz: Rebuilt.
x/font-adobe-100dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-adobe-75dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-adobe-utopia-100dpi-1.0.4-noarch-3.txz: Rebuilt.
x/font-adobe-utopia-75dpi-1.0.4-noarch-3.txz: Rebuilt.
x/font-adobe-utopia-type1-1.0.4-noarch-3.txz: Rebuilt.
x/font-arabic-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-100dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-75dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-ttf-1.0.3-noarch-3.txz: Rebuilt.
x/font-bh-type1-1.0.3-noarch-3.txz: Rebuilt.
x/font-bitstream-100dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bitstream-75dpi-1.0.3-noarch-3.txz: Rebuilt.
x/font-bitstream-speedo-1.0.2-noarch-3.txz: Rebuilt.
x/font-bitstream-type1-1.0.3-noarch-3.txz: Rebuilt.
x/font-cronyx-cyrillic-1.0.3-noarch-3.txz: Rebuilt.
x/font-cursor-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-daewoo-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-dec-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-ibm-type1-1.0.3-noarch-3.txz: Rebuilt.
x/font-isas-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-jis-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-micro-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-misc-cyrillic-1.0.3-noarch-3.txz: Rebuilt.
x/font-misc-ethiopic-1.0.3-noarch-3.txz: Rebuilt.
x/font-misc-meltho-1.0.3-noarch-3.txz: Rebuilt.
x/font-misc-misc-1.1.2-noarch-3.txz: Rebuilt.
x/font-mutt-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-schumacher-misc-1.1.2-noarch-3.txz: Rebuilt.
x/font-screen-cyrillic-1.0.4-noarch-3.txz: Rebuilt.
x/font-sony-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-sun-misc-1.0.3-noarch-3.txz: Rebuilt.
x/font-winitzki-cyrillic-1.0.3-noarch-3.txz: Rebuilt.
x/font-xfree86-type1-1.0.4-noarch-3.txz: Rebuilt.
x/liberation-fonts-ttf-2.00.1-noarch-3.txz: Rebuilt.
x/libinput-1.11.0-x86_64-1.txz: Upgraded.
x/sazanami-fonts-ttf-20040629-noarch-3.txz: Rebuilt.
x/sinhala_lklug-font-ttf-20060929-noarch-3.txz: Rebuilt.
x/tibmachuni-font-ttf-1.901b-noarch-3.txz: Rebuilt.
x/ttf-indic-fonts-0.5.14-noarch-3.txz: Rebuilt.
x/ttf-tlwg-0.6.4-noarch-3.txz: Rebuilt.
x/urw-core35-fonts-otf-20170801_91edd6e_git-noarch-2.txz: Rebuilt.
x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz: Rebuilt.
xap/mozilla-firefox-60.0.2-x86_64-1.txz: Upgraded.
This release contains security fixes and improvements.
For more information, see:
https://www.mozilla.org/security/known-vulnerabilities/firefox.html
(* Security fix *)
xap/x3270-3.3.12ga7-x86_64-5.txz: Rebuilt.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
+--------------------------+
Tue Jun 5 05:24:22 UTC 2018
ap/mc-4.8.21-x86_64-1.txz: Upgraded.
ap/soma-3.0.4-noarch-1.txz: Upgraded.

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
Slackware initrd mini HOWTO
by Patrick Volkerding, volkerdi@slackware.com
Thu May 31 03:30:41 UTC 2018
Wed Jun 6 20:17:46 UTC 2018
This document describes how to create and install an initrd, which may be
required to use the 4.x kernel. Also see "man mkinitrd".
@ -33,16 +33,16 @@ flexible to ship a generic kernel and a set of kernel modules for it.
The easiest way to make the initrd is to use the mkinitrd script included
in Slackware's mkinitrd package. We'll walk through the process of
upgrading to the generic 4.14.47 Linux kernel using the packages
upgrading to the generic 4.14.48 Linux kernel using the packages
found in Slackware's slackware/a/ directory.
First, make sure the kernel, kernel modules, and mkinitrd package are
installed (the current version numbers might be a little different, so
this is just an example):
installpkg kernel-generic-4.14.47-x86_64-1.txz
installpkg kernel-modules-4.14.47-x86_64-1.txz
installpkg mkinitrd-1.4.11-x86_64-6.txz
installpkg kernel-generic-4.14.48-x86_64-1.txz
installpkg kernel-modules-4.14.48-x86_64-1.txz
installpkg mkinitrd-1.4.11-x86_64-7.txz
Change into the /boot directory:
@ -52,7 +52,7 @@ Now you'll want to run "mkinitrd". I'm using ext4 for my root filesystem,
and since the disk controller requires no special support the ext4 module
will be the only one I need to load:
mkinitrd -c -k 4.14.47 -m ext4
mkinitrd -c -k 4.14.48 -m ext4
This should do two things. First, it will create a directory
/boot/initrd-tree containing the initrd's filesystem. Then it will
@ -61,10 +61,10 @@ you could make some additional changes in /boot/initrd-tree/ and
then run mkinitrd again without options to rebuild the image. That's
optional, though, and only advanced users will need to think about that.
Here's another example: Build an initrd image using Linux 4.14.47
Here's another example: Build an initrd image using Linux 4.14.48
kernel modules for a system with an ext4 root partition on /dev/sdb3:
mkinitrd -c -k 4.14.47 -m ext4 -f ext4 -r /dev/sdb3
mkinitrd -c -k 4.14.48 -m ext4 -f ext4 -r /dev/sdb3
4. Now that I've built an initrd, how do I use it?

View file

@ -1,5 +1,5 @@
Welcome to 09Slackware6407 version 15.0 (Linux kernel 4.14.47)!
Welcome to 09Slackware6407 version 15.0 (Linux kernel 4.14.48)!
If you need to pass extra parameters to the kernel, enter them at the prompt
below after the name of the kernel to boot (e.g., huge.s).

View file

@ -1,3 +1,3 @@
These kernels are version 4.14.47.
These kernels are version 4.14.48.

View file

@ -946,6 +946,7 @@ gzip ./source/a/os-prober/os-prober.reiserfs.diff
gzip ./source/a/libcgroup/doinst.sh
gzip ./source/a/libcgroup/libcgroup.conf.diff
gzip ./source/a/libcgroup/libcgroup.init.diff
gzip ./source/installer/sources/initrd/etc/keymaps.tar
gzip ./source/ap/ghostscript-fonts-std/doinst.sh
gzip ./source/ap/jove/jove.makefile.diff
gzip ./source/ap/nano/doinst.sh
@ -1051,7 +1052,6 @@ gzip ./source/ap/ispell/local.h.linux.diff
gzip ./source/ap/dash/doinst.sh
gzip ./source/ap/dash/dash-0.5.7-format-security.patch
gzip ./source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch
gzip ./source/ap/cups/3cd7b5e053f8100da1ca8d8daf93976cca3516ef.patch
gzip ./source/ap/cups/doinst.sh
gzip ./source/ap/linuxdoc-tools/doinst.sh
gzip ./source/t/texlive/doinst.sh

View file

@ -59,9 +59,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
"kernel-generic" "Generic 4.14.47 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 4.14.47 Linux kernel" "on" \
"kernel-modules" "Linux 4.14.47 kernel modules -- REQUIRED" "on" \
"kernel-generic" "Generic 4.14.48 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 4.14.48 Linux kernel" "on" \
"kernel-modules" "Linux 4.14.48 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \

View file

@ -59,9 +59,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
"kernel-generic" "Generic 4.14.47 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 4.14.47 Linux kernel" "on" \
"kernel-modules" "Linux 4.14.47 kernel modules -- REQUIRED" "on" \
"kernel-generic" "Generic 4.14.48 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 4.14.48 Linux kernel" "on" \
"kernel-modules" "Linux 4.14.48 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \

View file

@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
"kernel-source" "Linux 4.14.47 kernel source" "on" \
"kernel-source" "Linux 4.14.48 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs

View file

@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
"kernel-source" "Linux 4.14.47 kernel source" "on" \
"kernel-source" "Linux 4.14.48 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs

View file

@ -0,0 +1,177 @@
BASH PATCH REPORT
=================
Bash-Release: 4.4
Patch-ID: bash44-020
Bug-Reported-by: Graham Northup <northug@clarkson.edu>
Bug-Reference-ID: <537530c3-61f0-349b-9de6-fa4e2487f428@clarkson.edu>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-02/msg00025.html
Bug-Description:
In circumstances involving long-running scripts that create and reap many
processes, it is possible for the hash table bash uses to store exit
statuses from asynchronous processes to develop loops. This patch fixes
the loop causes and adds code to detect any future loops.
Patch (apply with `patch -p0'):
*** ../bash-4.4-patched/jobs.c 2016-11-11 13:42:55.000000000 -0500
--- jobs.c 2017-02-22 15:16:28.000000000 -0500
***************
*** 813,818 ****
struct pidstat *ps;
! bucket = pshash_getbucket (pid);
! psi = bgp_getindex ();
ps = &bgpids.storage[psi];
--- 796,815 ----
struct pidstat *ps;
! /* bucket == existing chain of pids hashing to same value
! psi = where were going to put this pid/status */
!
! bucket = pshash_getbucket (pid); /* index into pidstat_table */
! psi = bgp_getindex (); /* bgpids.head, index into storage */
!
! /* XXX - what if psi == *bucket? */
! if (psi == *bucket)
! {
! #ifdef DEBUG
! internal_warning ("hashed pid %d (pid %d) collides with bgpids.head, skipping", psi, pid);
! #endif
! bgpids.storage[psi].pid = NO_PID; /* make sure */
! psi = bgp_getindex (); /* skip to next one */
! }
!
ps = &bgpids.storage[psi];
***************
*** 842,845 ****
--- 839,843 ----
{
struct pidstat *ps;
+ ps_index_t *bucket;
ps = &bgpids.storage[psi];
***************
*** 847,856 ****
return;
! if (ps->bucket_next != NO_PID)
bgpids.storage[ps->bucket_next].bucket_prev = ps->bucket_prev;
! if (ps->bucket_prev != NO_PID)
bgpids.storage[ps->bucket_prev].bucket_next = ps->bucket_next;
else
! *(pshash_getbucket (ps->pid)) = ps->bucket_next;
}
--- 845,861 ----
return;
! if (ps->bucket_next != NO_PIDSTAT)
bgpids.storage[ps->bucket_next].bucket_prev = ps->bucket_prev;
! if (ps->bucket_prev != NO_PIDSTAT)
bgpids.storage[ps->bucket_prev].bucket_next = ps->bucket_next;
else
! {
! bucket = pshash_getbucket (ps->pid);
! *bucket = ps->bucket_next; /* deleting chain head in hash table */
! }
!
! /* clear out this cell, just in case */
! ps->pid = NO_PID;
! ps->bucket_next = ps->bucket_prev = NO_PIDSTAT;
}
***************
*** 859,863 ****
pid_t pid;
{
! ps_index_t psi;
if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0)
--- 864,868 ----
pid_t pid;
{
! ps_index_t psi, orig_psi;
if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0)
***************
*** 865,871 ****
/* Search chain using hash to find bucket in pidstat_table */
! for (psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next)
! if (bgpids.storage[psi].pid == pid)
! break;
if (psi == NO_PIDSTAT)
--- 870,883 ----
/* Search chain using hash to find bucket in pidstat_table */
! for (orig_psi = psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next)
! {
! if (bgpids.storage[psi].pid == pid)
! break;
! if (orig_psi == bgpids.storage[psi].bucket_next) /* catch reported bug */
! {
! internal_warning ("bgp_delete: LOOP: psi (%d) == storage[psi].bucket_next", psi);
! return 0;
! }
! }
if (psi == NO_PIDSTAT)
***************
*** 905,909 ****
pid_t pid;
{
! ps_index_t psi;
if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0)
--- 917,921 ----
pid_t pid;
{
! ps_index_t psi, orig_psi;
if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0)
***************
*** 911,917 ****
/* Search chain using hash to find bucket in pidstat_table */
! for (psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next)
! if (bgpids.storage[psi].pid == pid)
! return (bgpids.storage[psi].status);
return -1;
--- 923,936 ----
/* Search chain using hash to find bucket in pidstat_table */
! for (orig_psi = psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next)
! {
! if (bgpids.storage[psi].pid == pid)
! return (bgpids.storage[psi].status);
! if (orig_psi == bgpids.storage[psi].bucket_next) /* catch reported bug */
! {
! internal_warning ("bgp_search: LOOP: psi (%d) == storage[psi].bucket_next", psi);
! return -1;
! }
! }
return -1;
*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 19
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 20
#endif /* _PATCHLEVEL_H_ */

View file

@ -0,0 +1,57 @@
BASH PATCH REPORT
=================
Bash-Release: 4.4
Patch-ID: bash44-021
Bug-Reported-by: werner@suse.de
Bug-Reference-ID: <201803281402.w2SE2VOa000476@noether.suse.de>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2018-03/msg00196.html
Bug-Description:
A SIGINT received inside a SIGINT trap handler can possibly cause the
shell to loop.
Patch (apply with `patch -p0'):
*** ../bash-20180329/jobs.c 2018-02-11 18:07:22.000000000 -0500
--- jobs.c 2018-04-02 14:24:21.000000000 -0400
***************
*** 2690,2694 ****
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
--- 2690,2704 ----
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
! SigHandler *temp_sigint_handler;
!
! temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
! if (temp_sigint_handler == wait_sigint_handler)
! {
! #if defined (DEBUG)
! internal_warning ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap);
! #endif
! }
! else
! old_sigint_handler = temp_sigint_handler;
waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 20
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 21
#endif /* _PATCHLEVEL_H_ */

View file

@ -0,0 +1,61 @@
BASH PATCH REPORT
=================
Bash-Release: 4.4
Patch-ID: bash44-022
Bug-Reported-by: Nuzhna Pomoshch <nuzhna_pomoshch@yahoo.com>
Bug-Reference-ID: <1317167476.1492079.1495999776464@mail.yahoo.com>
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2017-05/msg00005.html
Bug-Description:
There are cases where a failing readline command (e.g., delete-char at the end
of a line) can cause a multi-character key sequence to `back up' and attempt
to re-read some of the characters in the sequence.
Patch (apply with `patch -p0'):
*** ../bash-4.4-patched/lib/readline/readline.c 2016-04-20 15:53:52.000000000 -0400
--- lib/readline/readline.c 2018-05-26 17:19:00.000000000 -0400
***************
*** 1058,1062 ****
r = _rl_dispatch (ANYOTHERKEY, m);
}
! else if (r && map[ANYOTHERKEY].function)
{
/* We didn't match (r is probably -1), so return something to
--- 1056,1060 ----
r = _rl_dispatch (ANYOTHERKEY, m);
}
! else if (r < 0 && map[ANYOTHERKEY].function)
{
/* We didn't match (r is probably -1), so return something to
***************
*** 1070,1074 ****
return -2;
}
! else if (r && got_subseq)
{
/* OK, back up the chain. */
--- 1068,1072 ----
return -2;
}
! else if (r < 0 && got_subseq) /* XXX */
{
/* OK, back up the chain. */
*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 21
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 22
#endif /* _PATCHLEVEL_H_ */

View file

@ -0,0 +1,52 @@
BASH PATCH REPORT
=================
Bash-Release: 4.4
Patch-ID: bash44-023
Bug-Reported-by: Martijn Dekker <martijn@inlv.org>
Bug-Reference-ID: <5326d6b9-2625-1d32-3e6e-ad1d15462c09@inlv.org>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00041.html
Bug-Description:
When sourcing a file from an interactive shell, setting the SIGINT handler
to the default and typing ^C will cause the shell to exit.
Patch (apply with `patch -p0'):
*** ../bash-4.4-patched/builtins/trap.def 2016-01-25 13:32:38.000000000 -0500
--- builtins/trap.def 2016-11-06 12:04:35.000000000 -0500
***************
*** 99,102 ****
--- 99,103 ----
extern int posixly_correct, subshell_environment;
+ extern int sourcelevel, running_trap;
int
***************
*** 213,216 ****
--- 214,220 ----
if (interactive)
set_signal_handler (SIGINT, sigint_sighandler);
+ /* special cases for interactive == 0 */
+ else if (interactive_shell && (sourcelevel||running_trap))
+ set_signal_handler (SIGINT, sigint_sighandler);
else
set_signal_handler (SIGINT, termsig_sighandler);
*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 22
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 23
#endif /* _PATCHLEVEL_H_ */

View file

@ -31,7 +31,7 @@ PKG=$TMP/package-bash
PKGNAM=bash
VERSION=${VERSION:-$(echo bash-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-3}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )

View file

@ -1,159 +0,0 @@
--- ./scheduler/auth.c.orig 2018-03-22 22:48:36.000000000 -0500
+++ ./scheduler/auth.c 2018-03-28 23:26:32.100862569 -0500
@@ -71,9 +71,6 @@
static int compare_locations(cupsd_location_t *a,
cupsd_location_t *b);
static cupsd_authmask_t *copy_authmask(cupsd_authmask_t *am, void *data);
-#if !HAVE_LIBPAM
-static char *cups_crypt(const char *pw, const char *salt);
-#endif /* !HAVE_LIBPAM */
static void free_authmask(cupsd_authmask_t *am, void *data);
#if HAVE_LIBPAM
static int pam_func(int, const struct pam_message **,
@@ -694,14 +691,14 @@
* client...
*/
- pass = cups_crypt(password, pw->pw_passwd);
+ pass = crypt(password, pw->pw_passwd);
if (!pass || strcmp(pw->pw_passwd, pass))
{
# ifdef HAVE_SHADOW_H
if (spw)
{
- pass = cups_crypt(password, spw->sp_pwdp);
+ pass = crypt(password, spw->sp_pwdp);
if (pass == NULL || strcmp(spw->sp_pwdp, pass))
{
@@ -1995,129 +1992,6 @@
}
-#if !HAVE_LIBPAM
-/*
- * 'cups_crypt()' - Encrypt the password using the DES or MD5 algorithms,
- * as needed.
- */
-
-static char * /* O - Encrypted password */
-cups_crypt(const char *pw, /* I - Password string */
- const char *salt) /* I - Salt (key) string */
-{
- if (!strncmp(salt, "$1$", 3))
- {
- /*
- * Use MD5 passwords without the benefit of PAM; this is for
- * Slackware Linux, and the algorithm was taken from the
- * old shadow-19990827/lib/md5crypt.c source code... :(
- */
-
- int i; /* Looping var */
- unsigned long n; /* Output number */
- int pwlen; /* Length of password string */
- const char *salt_end; /* End of "salt" data for MD5 */
- char *ptr; /* Pointer into result string */
- _cups_md5_state_t state; /* Primary MD5 state info */
- _cups_md5_state_t state2; /* Secondary MD5 state info */
- unsigned char digest[16]; /* MD5 digest result */
- static char result[120]; /* Final password string */
-
-
- /*
- * Get the salt data between dollar signs, e.g. $1$saltdata$md5.
- * Get a maximum of 8 characters of salt data after $1$...
- */
-
- for (salt_end = salt + 3; *salt_end && (salt_end - salt) < 11; salt_end ++)
- if (*salt_end == '$')
- break;
-
- /*
- * Compute the MD5 sum we need...
- */
-
- pwlen = strlen(pw);
-
- _cupsMD5Init(&state);
- _cupsMD5Append(&state, (unsigned char *)pw, pwlen);
- _cupsMD5Append(&state, (unsigned char *)salt, salt_end - salt);
-
- _cupsMD5Init(&state2);
- _cupsMD5Append(&state2, (unsigned char *)pw, pwlen);
- _cupsMD5Append(&state2, (unsigned char *)salt + 3, salt_end - salt - 3);
- _cupsMD5Append(&state2, (unsigned char *)pw, pwlen);
- _cupsMD5Finish(&state2, digest);
-
- for (i = pwlen; i > 0; i -= 16)
- _cupsMD5Append(&state, digest, i > 16 ? 16 : i);
-
- for (i = pwlen; i > 0; i >>= 1)
- _cupsMD5Append(&state, (unsigned char *)((i & 1) ? "" : pw), 1);
-
- _cupsMD5Finish(&state, digest);
-
- for (i = 0; i < 1000; i ++)
- {
- _cupsMD5Init(&state);
-
- if (i & 1)
- _cupsMD5Append(&state, (unsigned char *)pw, pwlen);
- else
- _cupsMD5Append(&state, digest, 16);
-
- if (i % 3)
- _cupsMD5Append(&state, (unsigned char *)salt + 3, salt_end - salt - 3);
-
- if (i % 7)
- _cupsMD5Append(&state, (unsigned char *)pw, pwlen);
-
- if (i & 1)
- _cupsMD5Append(&state, digest, 16);
- else
- _cupsMD5Append(&state, (unsigned char *)pw, pwlen);
-
- _cupsMD5Finish(&state, digest);
- }
-
- /*
- * Copy the final sum to the result string and return...
- */
-
- memcpy(result, salt, (size_t)(salt_end - salt));
- ptr = result + (salt_end - salt);
- *ptr++ = '$';
-
- for (i = 0; i < 5; i ++, ptr += 4)
- {
- n = ((((unsigned)digest[i] << 8) | (unsigned)digest[i + 6]) << 8);
-
- if (i < 4)
- n |= (unsigned)digest[i + 12];
- else
- n |= (unsigned)digest[5];
-
- to64(ptr, n, 4);
- }
-
- to64(ptr, (unsigned)digest[11], 2);
- ptr += 2;
- *ptr = '\0';
-
- return (result);
- }
- else
- {
- /*
- * Use the standard crypt() function...
- */
-
- return (crypt(pw, salt));
- }
-}
-#endif /* !HAVE_LIBPAM */
-
-
/*
* 'free_authmask()' - Free function for auth masks.
*/

View file

@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=cups
VERSION=${VERSION:-$(echo $PKGNAM-*-source.tar.?z | cut -f 2 -d -)}
BUILD=${BUILD:-2}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@ -79,9 +79,6 @@ rm -rf cups-$VERSION
tar xvf $CWD/cups-$VERSION-source.tar.?z || exit 1
cd cups-$VERSION || exit 1
# Fix building without PAM:
zcat $CWD/3cd7b5e053f8100da1ca8d8daf93976cca3516ef.patch.gz | patch -p1 --verbose || exit 1
sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure
CFLAGS="$SLKCFLAGS" \

View file

@ -1 +1 @@
https://github.com/apple/cups/releases/download/v2.2.7/cups-2.2.7-source.tar.gz
https://github.com/apple/cups/releases/download/v2.2.8/cups-2.2.8-source.tar.gz

View file

@ -1,11 +1,9 @@
#!/bin/sh
# Update the X font indexes:
if [ -x /usr/bin/fc-cache ]; then
/usr/bin/fc-cache -f
fi
if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then
( cd /usr/share/fonts/Type1
mkfontdir .
mkfontscale .
)
mkfontdir usr/share/fonts/Type1 2> /dev/null
mkfontscale usr/share/fonts/Type1 2> /dev/null
fi
if [ -x /usr/bin/fc-cache ]; then
/usr/bin/fc-cache -f 2> /dev/null
fi

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ghostscript-fonts-std
VERSION=${VERSION:-8.11}
ARCH=${ARCH:-noarch}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information

View file

@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=sqlite
BUILD=${BUILD:-2}
BUILD=${BUILD:-1}
# First, convert the .zip file if needed:
if ls *.zip 1> /dev/null 2> /dev/null ; then

View file

@ -1,10 +1,8 @@
#!/bin/sh
# Update the X font indexes:
if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then
( cd /usr/share/fonts/misc
mkfontdir .
)
mkfontdir usr/share/fonts/misc 2> /dev/null
fi
if [ -x /usr/bin/fc-cache ]; then
/usr/bin/fc-cache -f
/usr/bin/fc-cache -f 2> /dev/null
fi

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=terminus-font
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=rust
SRCNAM="${PKGNAM}c"
VERSION=${VERSION:-1.26.1}
VERSION=${VERSION:-1.26.2}
BUILD=${BUILD:-1}
# Set this to YES to build with the system LLVM, or NO to use the bundled LLVM.

View file

@ -1,5 +1,5 @@
# Source code (repacked to .tar.xz):
lftpget https://static.rust-lang.org/dist/rustc-1.26.1-src.tar.gz
lftpget https://static.rust-lang.org/dist/rustc-1.26.2-src.tar.gz
gzip -d rustc-*tar.gz
plzip -n 6 -9 -v rustc-*tar

View file

@ -1,3 +1,7 @@
Wed Jun 6 20:31:26 UTC 2018
Fix finding some DOS/Win partition types. Thanks to Stuart Winter.
Wipe the probe md5sum to force rescanning partitions if setup is restarted.
+--------------------------+
Sat Apr 28 20:04:23 UTC 2018
Reduce sleep times in the installer. You'll just have to read faster. ;-)
+--------------------------+

View file

@ -0,0 +1,2 @@
#!/bin/ash
exec /bin/ash $*

View file

@ -0,0 +1 @@
/usr/bin/compress

View file

@ -0,0 +1 @@
grep.bin

View file

@ -0,0 +1 @@
grep.bin

View file

@ -0,0 +1,6 @@
#!/bin/sh
#
# Print the size of a file, in bytes.
#
SIZE=`ls -l -d -G $1 | cut -b23-32`
echo -n $SIZE

View file

@ -0,0 +1 @@
grep.bin

View file

@ -0,0 +1,41 @@
#!/bin/sh
# This script configures support for ethernet cards needed during
# installation for an NFS install.
#
# Normally this automatically loads an image from the ISO, and if
# it cannot be found tries to load a floppy disk.
#
# You may also give a path to the network.dsk image, like this:
# network /some/exact/path/network.dsk
#
TMP=/var/log/setup/tmp
mkdir -p $TMP/dhcpc
echo
echo "Network support for NFS install, 2006-09-20 volkerdi@slackware.com"
echo "Network support for FTP/HTTP install, 26-Jan-2008 alien@slackware.com"
echo
# Now, let's call the network.sh script to actually do most of the work:
if [ -r /scripts/network.sh ]; then
sh /scripts/network.sh
fi
# If we can get information from a local DHCP server, we store that for later:
if ! grep -wq nodhcp /proc/cmdline ; then
for EDEV in $(cat /proc/net/dev | grep ':' | sed -e "s/^ *//" | cut -f1 -d: | grep -v lo) ; do
if grep -q `echo ${EDEV}: | cut -f 1 -d :`: /proc/net/wireless ; then
continue # skip wireless interfaces
fi
/sbin/dhcpcd -t 10 -T $EDEV 1>$TMP/dhcpc/dhcpcd-${EDEV}.info 2>/dev/null &
done
fi
echo
echo "The next step in your installation may be partitioning your hard drive"
echo "(if you're installing to a Linux partition) with 'fdisk' or 'cfdisk'"
echo "(the menu-driven version of fdisk). If you already have a partition"
echo "prepared for Linux, run 'setup' to start the installer program."
echo

View file

@ -0,0 +1,29 @@
#!/bin/sh
# This script configures support for PCMCIA and/or Cardbus cards needed during
# installation, such as a CD-ROM drive or an ethernet card used for an NFS
# install.
echo
echo "PCMCIA/Cardbus support script, 2003-02-18 volkerdi@slackware.com"
echo " 2007-05-09 alien@slackware.com"
echo
# OK, here goes nothing:
/etc/rc.d/rc.pcmcia start
echo
echo
echo "The PCMCIA/Cardbus subsystem is now installed. Please make sure that"
echo "all of the cards you'll need for the installation are in the machine."
echo "If you still need to insert any PCMCIA/Cardbus cards, do that now. Once"
echo "the drive stops (indicating that all needed modules have been"
echo -n "loaded), then press [enter] to continue."
read inputjunk
echo
echo
echo "The next step in your installation may be partitioning your hard drive"
echo "(if you're installing to a Linux partition) with 'fdisk' or 'cfdisk'"
echo "(the menu-driven version of fdisk). If you already have a partition"
echo "prepared for Linux, run 'setup' to start the installer program."
echo

View file

@ -0,0 +1,56 @@
#!/bin/sh
# Uncompress files to standard output.
# Copyright (C) 2007 Free Software Foundation
# 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 3 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.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bindir='/bin'
case $1 in
--__bindir) bindir=${2?}; shift; shift;;
esac
PATH=$bindir:$PATH
version="zcat (gzip) 1.4
Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Eggert."
usage="Usage: $0 [OPTION]... [FILE]...
Uncompress FILEs to standard output.
-f, --force force; read compressed data even from a terminal
-l, --list list compressed file contents
-q, --quiet suppress all warnings
-r, --recursive operate recursively on directories
-S, --suffix=SUF use suffix SUF on compressed files
-t, --test test compressed file integrity
-v, --verbose verbose mode
--help display this help and exit
--version display version information and exit
With no FILE, or when FILE is -, read standard input.
Report bugs to <bug-gzip@gnu.org>."
case $1 in
--help) exec echo "$usage";;
--version) exec echo "$version";;
esac
exec gzip -cd "$@"

View file

@ -0,0 +1 @@
/mnt/boot

View file

@ -0,0 +1 @@
/var/log/mount

View file

@ -0,0 +1,260 @@
#!/bin/sh
# This script makes /dev entries for hard drives listed in /proc/partitions.
# Written by Patrick Volkerding, licensed under the GPL (any version).
# Copyright 2001, 2002 Slackware Linux, Inc., Concord, CA
# Many thanks to Vincent Rivellino for contributing the patches to support
# Mylex and Compaq RAID controllers.
# Devfs enabled kernels don't use the old familiar device names in
# /proc/partitions, so we need to be able to figure them out on the
# basis of only the major/minor numbers. This will require some
# maintainance for a while, but we expect to require devfs soon enough,
# and that will help generalize the installation to new types of
# devices without requiring fixes from us.
# Also, we're not yet ready to install with devfs _mounted_, so don't
# try that. :)
# Main loop:
# First, determine if we are using old or new device names. The old format
# will never contain a '/' (Well, some RAID controllers could have them,
# but luckily we can handle those in the same way)
# Make a device:
makedev() {
if [ ! -b $1 ]; then
mknod $1 b $2 $3
chown root.disk $1
chmod 640 $1
fi
}
# Make ide device
# makeide major minor hd1 hd2 (2 base devs for major)
make_ide() {
# Handle base devices:
if [ "$2" = "0" ]; then
makedev /dev/$3 $1 $2
return 0
elif [ "$2" = "64" ]; then
makedev /dev/$4 $1 $2
return 0
fi
# Must be a partition:
if [ "`expr $2 / 64`" = "0" ]; then
DEV=$3
NUM=$2
else
DEV=$4
NUM=`expr $2 - 64`
fi
makedev /dev/$DEV$NUM $1 $2
}
# Make SCSI device
make_scsi() {
# find drive # 0 - 15
DRV=`expr $1 / 16`
NUM=`expr $1 % 16`
if [ "$NUM" = "0" ]; then
NUM=""
fi
if [ "$DRV" = "0" ]; then
makedev /dev/sda$NUM 8 $1
elif [ "$DRV" = "1" ]; then
makedev /dev/sdb$NUM 8 $1
elif [ "$DRV" = "2" ]; then
makedev /dev/sdc$NUM 8 $1
elif [ "$DRV" = "3" ]; then
makedev /dev/sdd$NUM 8 $1
elif [ "$DRV" = "4" ]; then
makedev /dev/sde$NUM 8 $1
elif [ "$DRV" = "5" ]; then
makedev /dev/sdf$NUM 8 $1
elif [ "$DRV" = "6" ]; then
makedev /dev/sdg$NUM 8 $1
elif [ "$DRV" = "7" ]; then
makedev /dev/sdh$NUM 8 $1
elif [ "$DRV" = "8" ]; then
makedev /dev/sdi$NUM 8 $1
elif [ "$DRV" = "9" ]; then
makedev /dev/sdj$NUM 8 $1
elif [ "$DRV" = "10" ]; then
makedev /dev/sdk$NUM 8 $1
elif [ "$DRV" = "11" ]; then
makedev /dev/sdl$NUM 8 $1
elif [ "$DRV" = "12" ]; then
makedev /dev/sdm$NUM 8 $1
elif [ "$DRV" = "13" ]; then
makedev /dev/sdn$NUM 8 $1
elif [ "$DRV" = "14" ]; then
makedev /dev/sdo$NUM 8 $1
elif [ "$DRV" = "15" ]; then
makedev /dev/sdp$NUM 8 $1
fi
}
# Make Mylex RAID device
make_rd() {
if [ ! -d /dev/rd ]; then
mkdir /dev/rd
fi
# find drive
DRV=`expr $3 / 8`
NUM="p`expr $3 % 8`"
if [ "$NUM" = "p0" ]; then
NUM=""
fi
makedev /dev/rd/c$1d$DRV$NUM $2 $3
}
# Make Cpq SMART/2 RAID device
make_ida() {
if [ ! -d /dev/ida ]; then
mkdir /dev/ida
fi
# find drive
DRV=`expr $3 / 16`
NUM="p`expr $3 % 16`"
if [ "$NUM" = "p0" ]; then
NUM=""
fi
makedev /dev/ida/c$1d$DRV$NUM $2 $3
}
# Make Compaq Next Generation RAID device
make_cciss() {
if [ ! -d /dev/cciss ]; then
mkdir /dev/cciss
fi
# find drive
DRV=`expr $3 / 16`
NUM="p`expr $3 % 16`"
if [ "$NUM" = "p0" ]; then
NUM=""
fi
makedev /dev/cciss/c$1d$DRV$NUM $2 $3
}
# Make ATA RAID device
make_ataraid() {
if [ ! -d /dev/ataraid ]; then
mkdir /dev/ataraid
fi
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ "$NUM" = "0" ]; then
makedev /dev/ataraid/d$DRV $1 $2
else
makedev /dev/ataraid/d${DRV}p$NUM $1 $2
fi
}
# Make AMI HyperRAID device:
make_amiraid() {
if [ ! -d /dev/amiraid ]; then
mkdir /dev/amiraid
fi
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ "$NUM" = "0" ]; then
makedev /dev/amiraid/ar$DRV $1 $2
else
makedev /dev/amiraid/ar${DRV}p$NUM $1 $2
fi
}
if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new
cat /proc/partitions | grep / | while read line ; do
SMASHED_LINE=$line
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
if [ "$MAJOR" = "3" ]; then
make_ide $MAJOR $MINOR hda hdb
elif [ "$MAJOR" = "8" ]; then
make_scsi $MINOR
elif [ "$MAJOR" = "22" ]; then
make_ide $MAJOR $MINOR hdc hdd
elif [ "$MAJOR" = "33" ]; then
make_ide $MAJOR $MINOR hde hdf
elif [ "$MAJOR" = "34" ]; then
make_ide $MAJOR $MINOR hdg hdh
elif [ "$MAJOR" = "48" ]; then
make_rd 0 $MAJOR $MINOR
elif [ "$MAJOR" = "49" ]; then
make_rd 1 $MAJOR $MINOR
elif [ "$MAJOR" = "50" ]; then
make_rd 2 $MAJOR $MINOR
elif [ "$MAJOR" = "51" ]; then
make_rd 3 $MAJOR $MINOR
elif [ "$MAJOR" = "52" ]; then
make_rd 4 $MAJOR $MINOR
elif [ "$MAJOR" = "53" ]; then
make_rd 5 $MAJOR $MINOR
elif [ "$MAJOR" = "54" ]; then
make_rd 6 $MAJOR $MINOR
elif [ "$MAJOR" = "55" ]; then
make_rd 7 $MAJOR $MINOR
elif [ "$MAJOR" = "56" ]; then
make_ide $MAJOR $MINOR hdi hdj
elif [ "$MAJOR" = "57" ]; then
make_ide $MAJOR $MINOR hdk hdl
elif [ "$MAJOR" = "72" ]; then
make_ida 0 $MAJOR $MINOR
elif [ "$MAJOR" = "73" ]; then
make_ida 1 $MAJOR $MINOR
elif [ "$MAJOR" = "74" ]; then
make_ida 2 $MAJOR $MINOR
elif [ "$MAJOR" = "75" ]; then
make_ida 3 $MAJOR $MINOR
elif [ "$MAJOR" = "76" ]; then
make_ida 4 $MAJOR $MINOR
elif [ "$MAJOR" = "77" ]; then
make_ida 5 $MAJOR $MINOR
elif [ "$MAJOR" = "78" ]; then
make_ida 6 $MAJOR $MINOR
elif [ "$MAJOR" = "79" ]; then
make_ida 7 $MAJOR $MINOR
elif [ "$MAJOR" = "88" ]; then
make_ide $MAJOR $MINOR hdm hdn
elif [ "$MAJOR" = "89" ]; then
make_ide $MAJOR $MINOR hdo hdp
elif [ "$MAJOR" = "90" ]; then
make_ide $MAJOR $MINOR hdq hdr
elif [ "$MAJOR" = "91" ]; then
make_ide $MAJOR $MINOR hds hdt
elif [ "$MAJOR" = "101" ]; then
make_amiraid $MAJOR $MINOR
elif [ "$MAJOR" = "104" ]; then
make_cciss 0 $MAJOR $MINOR
elif [ "$MAJOR" = "105" ]; then
make_cciss 1 $MAJOR $MINOR
elif [ "$MAJOR" = "106" ]; then
make_cciss 2 $MAJOR $MINOR
elif [ "$MAJOR" = "107" ]; then
make_cciss 3 $MAJOR $MINOR
elif [ "$MAJOR" = "108" ]; then
make_cciss 4 $MAJOR $MINOR
elif [ "$MAJOR" = "109" ]; then
make_cciss 5 $MAJOR $MINOR
elif [ "$MAJOR" = "110" ]; then
make_cciss 6 $MAJOR $MINOR
elif [ "$MAJOR" = "111" ]; then
make_cciss 7 $MAJOR $MINOR
elif [ "$MAJOR" = "114" ]; then
make_ataraid $MAJOR $MINOR
fi
done
else # old format
cat /proc/partitions | grep d | while read line ; do
SMASHED_LINE=$line
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '`
makedev /dev/$DEVNAME $MAJOR $MINOR
done
fi

View file

@ -0,0 +1,416 @@
# Run this script in the root of the skeleton tree
# to re-create the required device nodes
mkdir -p dev
mknod -m 600 dev/tty3 c 4 3
mkdir -p dev
mknod -m 660 dev/hdj b 56 64
mkdir -p dev
mknod -m 660 dev/hdt b 91 64
mkdir -p dev
mknod -m 660 dev/md15 b 9 15
mkdir -p dev
mknod -m 640 dev/sr4 b 11 4
mkdir -p dev
mknod -m 644 dev/ptyp2 c 2 2
mkdir -p dev
mknod -m 640 dev/cdu535 b 24 0
mkdir -p dev
mknod -m 600 dev/tcp c 18 3
mkdir -p dev
mknod -m 644 dev/psaux c 10 1
mkdir -p dev
mknod -m 640 dev/sjcd b 18 0
mkdir -p dev
mknod -m 644 dev/tty9 c 4 9
mkdir -p dev
mknod -m 640 dev/fd1h1200 b 2 9
mkdir -p dev
mknod -m 600 dev/sgb c 21 1
mkdir -p dev
mknod -m 640 dev/rmt16 c 12 8
mkdir -p dev
mknod -m 640 dev/ttyS0 c 4 64
mkdir -p dev
mknod -m 660 dev/hdn b 88 64
mkdir -p dev
mknod -m 640 dev/fd0h1200 b 2 8
mkdir -p dev
mknod -m 600 dev/ip c 18 1
mkdir -p dev
mknod -m 640 dev/fd1h1440 b 2 41
mkdir -p dev
mknod -m 700 dev/tty1 c 4 1
mkdir -p dev
mknod -m 640 dev/tape-reset c 12 255
mkdir -p dev
mknod -m 640 dev/eda1 b 36 1
mkdir -p dev
mknod -m 640 dev/cm206cd b 32 0
mkdir -p dev
mknod -m 660 dev/parport3 c 99 3
mkdir -p dev
mknod -m 640 dev/sr1 b 11 1
mkdir -p dev
mknod -m 660 dev/hdo b 89 0
mkdir -p dev
mknod -m 640 dev/tape-d c 12 136
mkdir -p dev
mknod -m 660 dev/hdq b 90 0
mkdir -p dev
mknod -m 640 dev/st1 c 9 1
mkdir -p dev
mknod -m 640 dev/optcd0 b 17 0
mkdir -p dev
mknod -m 640 dev/sr3 b 11 3
mkdir -p dev
mknod -m 640 dev/cua0 c 5 64
mkdir -p dev
mknod -m 644 dev/urandom c 1 9
mkdir -p dev
mknod -m 644 dev/tty c 5 0
mkdir -p dev
mknod -m 640 dev/fd0 b 2 0
mkdir -p dev
mknod -m 640 dev/eda b 36 0
mkdir -p dev
mknod -m 640 dev/eda5 b 36 5
mkdir -p dev
mknod -m 660 dev/md2 b 9 2
mkdir -p dev
mknod -m 600 dev/tty2 c 4 2
mkdir -p dev
mknod -m 644 dev/ptyp4 c 2 4
mkdir -p dev
mknod -m 600 dev/console c 5 1
mkdir -p dev
mknod -m 660 dev/md1 b 9 1
mkdir -p dev
mknod -m 640 dev/par0 c 6 0
mkdir -p dev
mknod -m 644 dev/tty7 c 4 7
mkdir -p dev
mknod -m 644 dev/random c 1 8
mkdir -p dev
mknod -m 640 dev/par2 c 6 2
mkdir -p dev
mknod -m 640 dev/lmscd b 24 0
mkdir -p dev
mknod -m 640 dev/sr0 b 11 0
mkdir -p dev
mknod -m 640 dev/eda8 b 36 8
mkdir -p dev
mknod -m 660 dev/hdh b 34 64
mkdir -p dev
mknod -m 640 dev/sbpcd0 b 25 0
mkdir -p dev
mknod -m 660 dev/hdm b 88 0
mkdir -p dev
mknod -m 640 dev/pf2 b 47 2
mkdir -p dev
mknod -m 640 dev/cua2 c 5 66
mkdir -p dev
mknod -m 600 dev/sga c 21 0
mkdir -p dev
mknod -m 640 dev/pda5 b 45 5
mkdir -p dev
mknod -m 640 dev/ttyS2 c 4 66
mkdir -p dev
mknod -m 640 dev/mcdx1 b 20 1
mkdir -p dev
mknod -m 644 dev/ttyp4 c 3 4
mkdir -p dev
mknod -m 640 dev/kmem c 1 2
mkdir -p dev
mknod -m 640 dev/eda2 b 36 2
mkdir -p dev
mknod -m 644 dev/ttyp8 c 3 8
mkdir -p dev
mknod -m 600 dev/icmp c 18 2
mkdir -p dev
mknod -m 640 dev/scd4 b 11 4
mkdir -p dev
mknod -m 660 dev/md13 b 9 13
mkdir -p dev
mknod -m 640 dev/sbpcd1 b 25 1
mkdir -p dev
mknod -m 640 dev/pcd0 b 46 0
mkdir -p dev
mknod -m 640 dev/rmt8 c 12 6
mkdir -p dev
mknod -m 660 dev/hdc b 22 0
mkdir -p dev
mknod -m 644 dev/logibm c 10 0
mkdir -p dev
mknod -m 640 dev/scd1 b 11 1
mkdir -p dev
mknod -m 660 dev/md10 b 9 10
mkdir -p dev
mknod -m 660 dev/hds b 91 0
mkdir -p dev
mknod -m 660 dev/hdl b 57 64
mkdir -p dev
mknod -m 644 dev/socksys c 30 0
mkdir -p dev
mknod -m 600 dev/tty6 c 4 6
mkdir -p dev
mknod -m 660 dev/loop1 b 7 1
mkdir -p dev
mknod -m 640 dev/bpcd b 41 0
mkdir -p dev
mknod -m 660 dev/md3 b 9 3
mkdir -p dev
mknod -m 640 dev/scd0 b 11 0
mkdir -p dev
mknod -m 644 dev/ptyp3 c 2 3
mkdir -p dev
mknod -m 640 dev/pf0 b 47 0
mkdir -p dev
mknod -m 640 dev/gscd0 b 16 0
mkdir -p dev
mknod -m 640 dev/fd0h1440 b 2 40
mkdir -p dev
mknod -m 660 dev/hdi b 56 0
mkdir -p dev
mknod -m 640 dev/cua4 c 5 68
mkdir -p dev
mknod -m 660 dev/md12 b 9 12
mkdir -p dev
mknod -m 660 dev/md8 b 9 8
mkdir -p dev
mknod -m 640 dev/scd2 b 11 2
mkdir -p dev
mknod -m 640 dev/mcdx0 b 20 0
mkdir -p dev
mknod -m 640 dev/sbpcd b 25 0
mkdir -p dev
mknod -m 660 dev/md5 b 9 5
mkdir -p dev
mknod -m 600 dev/sgd c 21 3
mkdir -p dev
mknod -m 644 dev/atibm c 10 3
mkdir -p dev
mknod -m 644 dev/ptyp6 c 2 6
mkdir -p dev
mknod -m 644 dev/null c 1 3
mkdir -p dev
mknod -m 600 dev/udp c 18 4
mkdir -p dev
mknod -m 660 dev/md9 b 9 9
mkdir -p dev
mknod -m 660 dev/fd0u1680 b 2 44
mkdir -p dev
mknod -m 640 dev/port c 1 4
mkdir -p dev
mknod -m 640 dev/rft0 c 27 0
mkdir -p dev
mknod -m 640 dev/st0 c 9 0
mkdir -p dev
mknod -m 640 dev/ram1 b 1 1
mkdir -p dev/input
mknod -m 644 dev/input/mice c 13 63
mkdir -p dev/input
mknod -m 660 dev/input/keyboard c 10 150
mkdir -p dev/input
mknod -m 644 dev/input/event0 c 13 64
mkdir -p dev/input
mknod -m 660 dev/input/mouse c 10 149
mkdir -p dev/input
mknod -m 644 dev/input/js0 c 13 0
mkdir -p dev/input
mknod -m 644 dev/input/mouse0 c 13 32
mkdir -p dev
mknod -m 640 dev/eda6 b 36 6
mkdir -p dev
mknod -m 640 dev/pcd3 b 46 3
mkdir -p dev
mknod -m 640 dev/pf3 b 47 3
mkdir -p dev
mknod -m 640 dev/pcd2 b 46 2
mkdir -p dev
mknod -m 640 dev/cua1 c 5 65
mkdir -p dev
mknod -m 644 dev/zero c 1 5
mkdir -p dev
mknod -m 660 dev/parport2 c 99 2
mkdir -p dev
mknod -m 644 dev/inportbm c 10 2
mkdir -p dev
mknod -m 644 dev/tty8 c 4 8
mkdir -p dev
mknod -m 640 dev/sonycd b 15 0
mkdir -p dev
mknod -m 600 dev/arp c 16 1
mkdir -p dev
mknod -m 600 dev/sgf c 21 5
mkdir -p dev
mknod -m 644 dev/full c 1 7
mkdir -p dev
mknod -m 600 dev/sge c 21 4
mkdir -p dev
mknod -m 644 dev/ptyp7 c 2 7
mkdir -p dev
mknod -m 660 dev/loop3 b 7 3
mkdir -p dev
mknod -m 640 dev/cua3 c 5 67
mkdir -p dev
mknod -m 644 dev/ptyp0 c 2 0
mkdir -p dev
mknod -m 600 dev/socket c 16 0
mkdir -p dev
mknod -m 640 dev/par1 c 6 1
mkdir -p dev
mknod -m 640 dev/nst0 c 9 128
mkdir -p dev
mknod -m 640 dev/pcd1 b 46 1
mkdir -p dev
mknod -m 700 dev/ttyp1 c 3 1
mkdir -p dev
mknod -m 600 dev/tty4 c 4 4
mkdir -p dev
mknod -m 640 dev/eda7 b 36 7
mkdir -p dev
mknod -m 660 dev/parport1 c 99 1
mkdir -p dev
mknod -m 600 dev/ttyp3 c 3 3
mkdir -p dev
mknod -m 640 dev/nrft0 c 27 4
mkdir -p dev
mknod -m 640 dev/ttyS4 c 4 68
mkdir -p dev
mknod -m 640 dev/ram0 b 1 0
mkdir -p dev
mknod -m 640 dev/nst1 c 9 129
mkdir -p dev
mknod -m 644 dev/audio c 14 4
mkdir -p dev
mknod -m 644 dev/ptyp8 c 2 8
mkdir -p dev
mknod -m 660 dev/loop4 b 7 4
mkdir -p dev
mknod -m 600 dev/tty5 c 4 5
mkdir -p dev
mknod -m 660 dev/md6 b 9 6
mkdir -p dev
mknod -m 640 dev/scd3 b 11 3
mkdir -p dev
mknod -m 640 dev/pda b 45 0
mkdir -p dev
mknod -m 644 dev/ptyp1 c 2 1
mkdir -p dev
mknod -m 640 dev/fd1u1440 b 2 29
mkdir -p dev
mknod -m 640 dev/eda4 b 36 4
mkdir -p dev
mknod -m 600 dev/sgc c 21 2
mkdir -p dev
mknod -m 640 dev/pda3 b 45 3
mkdir -p dev
mknod -m 660 dev/hdf b 33 64
mkdir -p dev
mknod -m 640 dev/ttyS1 c 4 65
mkdir -p dev
mknod -m 640 dev/pda6 b 45 6
mkdir -p dev
mknod -m 660 dev/md7 b 9 7
mkdir -p dev
mknod -m 640 dev/lp0 c 6 0
mkdir -p dev
mknod -m 640 dev/eda9 b 36 9
mkdir -p dev
mknod -m 660 dev/hde b 33 0
mkdir -p dev
mknod -m 660 dev/md4 b 9 4
mkdir -p dev
mknod -m 640 dev/mem c 1 1
mkdir -p dev
mknod -m 640 dev/fd1 b 2 1
mkdir -p dev
mknod -m 644 dev/ttyp7 c 3 7
mkdir -p dev
mknod -m 700 dev/ttyp2 c 3 2
mkdir -p dev
mknod -m 660 dev/hdg b 34 0
mkdir -p dev
mknod -m 660 dev/hdk b 57 0
mkdir -p dev
mknod -m 644 dev/spx c 30 1
mkdir -p dev
mknod -m 660 dev/md14 b 9 14
mkdir -p dev
mknod -m 600 dev/sgg c 21 6
mkdir -p dev
mknod -m 660 dev/hda b 3 0
mkdir -p dev
mknod -m 640 dev/mcd b 23 0
mkdir -p dev
mknod -m 640 dev/pda4 b 45 4
mkdir -p dev/inet
mknod -m 644 dev/inet/tcp c 30 36
mkdir -p dev/inet
mknod -m 644 dev/inet/ip c 30 32
mkdir -p dev/inet
mknod -m 644 dev/inet/icmp c 30 33
mkdir -p dev/inet
mknod -m 644 dev/inet/egp c 30 37
mkdir -p dev/inet
mknod -m 644 dev/inet/idp c 30 40
mkdir -p dev/inet
mknod -m 644 dev/inet/udp c 30 39
mkdir -p dev/inet
mknod -m 644 dev/inet/pup c 30 38
mkdir -p dev/inet
mknod -m 644 dev/inet/rawip c 30 41
mkdir -p dev/inet
mknod -m 644 dev/inet/ggp c 30 34
mkdir -p dev/inet
mknod -m 644 dev/inet/ipip c 30 35
mkdir -p dev
mknod -m 644 dev/ptyp5 c 2 5
mkdir -p dev
mknod -m 660 dev/hdb b 3 64
mkdir -p dev
mknod -m 660 dev/hdr b 90 64
mkdir -p dev
mknod -m 660 dev/hdd b 22 64
mkdir -p dev
mknod -m 640 dev/pda1 b 45 1
mkdir -p dev
mknod -m 640 dev/fd0u1440 b 2 28
mkdir -p dev
mknod -m 640 dev/eda3 b 36 3
mkdir -p dev
mknod -m 660 dev/fd0u1722 b 2 60
mkdir -p dev
mknod -m 600 dev/unix c 17 0
mkdir -p dev
mknod -m 640 dev/pf1 b 47 1
mkdir -p dev
mknod -m 640 dev/sr2 b 11 2
mkdir -p dev
mknod -m 660 dev/md0 b 9 0
mkdir -p dev
mknod -m 640 dev/aztcd b 29 0
mkdir -p dev
mknod -m 640 dev/pda2 b 45 2
mkdir -p dev
mknod -m 660 dev/parport0 c 99 0
mkdir -p dev
mknod -m 660 dev/loop0 b 7 0
mkdir -p dev
mknod -m 660 dev/md11 b 9 11
mkdir -p dev
mknod -m 640 dev/ttyS3 c 4 67
mkdir -p dev
mknod -m 644 dev/ttyp6 c 3 6
mkdir -p dev
mknod -m 600 dev/sgh c 21 7
mkdir -p dev
mknod -m 644 dev/audio1 c 14 20
mkdir -p dev
mknod -m 660 dev/hdp b 89 64
mkdir -p dev
mknod -m 644 dev/ttyp0 c 3 0
mkdir -p dev
mknod -m 600 dev/tty0 c 4 0
mkdir -p dev
mknod -m 644 dev/ttyp5 c 3 5

View file

@ -0,0 +1,166 @@
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# (see the scripts in /etc/profile.d/coreutils-dircolors.* to change default
# options in the Slackware aliases)
# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM linux-c
TERM mach-color
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cygwin
TERM dtterm
TERM putty
TERM xterm
TERM xterm-color
TERM xterm-debian
TERM rxvt
TERM screen
TERM screen-bce
TERM screen-w
TERM vt100
TERM Eterm
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00 # global default, although everything should be something.
FILE 00 # normal file
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
EXEC 01;32 # This is for files with execute permission:
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# DOS-style executables (bright green)
.bat 01;32
.BAT 01;32
.btm 01;32
.BTM 01;32
.cmd 01;32
.CMD 01;32
.com 01;32
.COM 01;32
.dll 01;32
.DLL 01;32
.exe 01;32
.EXE 01;32
# archives or compressed (bright red)
.arj 01;31
.bz2 01;31
.deb 01;31
.gz 01;31
.lzh 01;31
.rar 01;31
.RAR 01;31
.rpm 01;31
.tar 01;31
.taz 01;31
.tb2 01;31
.tbz2 01;31
.tbz 01;31
.tgz 01;31
.tz2 01;31
.z 01;31
.Z 01;31
.zip 01;31
.ZIP 01;31
.zoo 01;31
# multimedia (video/image/sound) file formats
.asf 01;35
.ASF 01;35
.avi 01;35
.AVI 01;35
.bmp 01;35
.BMP 01;35
.flac 01;35
.FLAC 01;35
.gif 01;35
.GIF 01;35
.jpg 01;35
.JPG 01;35
.jpeg 01;35
.JPEG 01;35
.m2a 01;35
.M2A 01;35
.m2v 01;35
.M2V 01;35
.m4a 01;35
.M4A 01;35
.m4p 01;35
.M4P 01;35
.m4v 01;35
.M4V 01;35
.mov 01;35
.MOV 01;35
.mp3 01;35
.MP3 01;35
.mpc 01;35
.MPC 01;35
.mpeg 01;35
.MPEG 01;35
.mpg 01;35
.MPG 01;35
.ogg 01;35
.OGG 01;35
.pbm 01;35
.pgm 01;35
.png 01;35
.PNG 01;35
.ppm 01;35
.ram 01;35
.RAM 01;35
.rm 01;35
.RM 01;35
.tga 01;35
.TGA 01;35
.tif 01;35
.TIF 01;35
.tiff 01;35
.TIFF 01;35
.wav 01;35
.WAV 01;35
.wma 01;35
.WMA 01;35
.wmv 01;35
.WMV 01;35
.xbm 01;35
.xcf 01;35
.xpm 01;35
.xwd 01;35
.XWD 01;35

View file

@ -0,0 +1 @@
slackware.example.net

View file

@ -0,0 +1,49 @@
#!/bin/sh
#
# This is a sample /etc/dhcpc/dhcpcd.exe script.
# /etc/dhcpc/dhcpcd.exe script is executed by dhcpcd daemon
# any time it configures or shuts down interface.
# The following parameters are passed to dhcpcd.exe script:
# $1 = HostInfoFilePath, e.g "/etc/dhcpc/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
#
# Sanity checks
if [ $# -lt 2 ]; then
logger -s -p local0.err -t dhcpcd.exe "wrong usage"
exit 1
fi
hostinfo="$1"
state="$2"
debug="$3"
# Reading HostInfo file for configuration parameters
. "${hostinfo}"
case "${state}" in
up)
logger -s -p local0.info -t dhcpcd.exe \
"interface ${INTERFACE} has been configured with old IP=${IPADDR}"
# Put your code here for when the interface has been brought up with an
# old IP address here
;;
new)
logger -s -p local0.info -t dhcpcd.exe \
"interface ${INTERFACE} has been configured with new IP=${IPADDR}"
# Put your code here for when the interface has been brought up with a
# new IP address
;;
down) logger -s -p local0.info -t dhcpcd.exe \
"interface ${INTERFACE} has been brought down"
# Put your code here for the when the interface has been shut down
;;
esac
exit 0

View file

@ -0,0 +1,7 @@
Hi there. :-)
This file is used to determine if the second install "disk"
is already loaded or not... if it's not found in /etc, then
the boot scripts will ask you to insert the second install
floppy.

View file

@ -0,0 +1,3 @@
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0

View file

@ -0,0 +1,44 @@
root:x:0:root
bin:x:1:root,bin
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root,adm
lp:x:7:lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
floppy:x:11:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
dialout:x:16:uucp
audio:x:17:root
video:x:18:root
cdrom:x:19:root
games:x:20:
slocate:x:21:
utmp:x:22:
smmsp:x:25:smmsp
tape:x:26:root
mysql:x:27:
rpc:x:32:
sshd:x:33:sshd
gdm:x:42:
shadow:x:43:
ftp:x:50:
oprofile:x:51:
apache:x:80:
messagebus:x:81:
haldaemon:x:82:
plugdev:x:83:root
power:x:84:
netdev:x:86:
pop:x:90:pop
scanner:x:93:
nobody:x:98:nobody
nogroup:x:99:
users:x:100:
console:x:101:

View file

@ -0,0 +1,2 @@
order hosts, bind
multi on

View file

@ -0,0 +1,21 @@
#
# 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. Just add the names, addresses
# and any aliases to this file...
#
# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1
# should NEVER be named with the name of the machine. It causes problems
# for some (stupid) programs, irc and reputedly talk. :^)
#
# For loopbacking.
127.0.0.1 localhost
# This next entry is technically wrong, but good enough to get TCP/IP apps
# to quit complaining that they can't verify the hostname on a loopback-only
# Linux box.
127.0.0.1 slackware.example.net slackware
# End of hosts.

View file

@ -0,0 +1,40 @@
# /etc/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
::sysinit:/etc/rc.d/rc.S
# Login /bin/sh invocations on selected ttys.
#
# Start a shell on the console
::respawn:-/bin/sh
# Start an "askfirst" shell on tty2 and tty3
tty2::askfirst:-/bin/sh
tty3::askfirst:-/bin/sh
# /sbin/getty invocations for selected ttys.
#
#tty1::respawn:/sbin/getty 38400 tty1
#tty2::respawn:/sbin/getty 38400 tty2
# Example of how to put a getty on a serial line (for a terminal)
#
#ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
#ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
#
# Example how to put a getty on a modem line.
#ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
# Reboot when ctrl-alt-del keys are pressed.
::ctrlaltdel:/sbin/reboot
#::ctrlaltdel:/sbin/brc
# Stuff to do before halting or rebooting.
# Hopefully it does these things in order, so that we can fake the
# system date one last time before umounting:
::shutdown:/bin/sh /sbin/fakedate
::shutdown:/sbin/swapoff -a >/dev/null 2>&1
::shutdown:/bin/umount -a -r >/dev/null 2>&1
::shutdown:/sbin/vgchange -an --ignorelockingfailure >/dev/null 2>&1
# Otherwise SSH logins are left lingering:
::shutdown:/bin/killall dropbear > /dev/null 2>&1
::shutdown:/bin/sh /sbin/fixdate

View file

@ -0,0 +1 @@
If /etc/installer exists, it's a cue to scripts that we're on the installer.

View file

@ -0,0 +1,25 @@
Welcome to the Slackware Linux installation disk! (version 12.2)
###### IMPORTANT! READ THE INFORMATION BELOW CAREFULLY. ######
- You will need one or more partitions of type 'Linux' prepared. It is also
recommended that you create a swap partition (type 'Linux swap') prior
to installation. For more information, run 'setup' and read the help file.
- If you're having problems that you think might be related to low memory, you
can try activating a swap partition before you run setup. After making a
swap partition (type 82) with cfdisk or fdisk, activate it like this:
mkswap /dev/<partition> ; swapon /dev/<partition>
- Once you have prepared the disk partitions for Linux, type 'setup' to begin
the installation process.
- If you do not have a color monitor, type: TERM=vt100
before you start 'setup'.
You may now login as 'root'.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,2 @@
/lib
/usr/lib

Binary file not shown.

View file

@ -0,0 +1,68 @@
#
# /etc/login.defs - Configuration control definitions for the login package.
#
# $Id: login.defs.linux,v 1.10 1999/03/07 19:14:33 marekm Exp $
FAIL_DELAY 3
DIALUPS_CHECK_ENAB yes
FAILLOG_ENAB yes
LOG_UNKFAIL_ENAB no
LOG_OK_LOGINS no
LASTLOG_ENAB yes
MAIL_CHECK_ENAB no
OBSCURE_CHECKS_ENAB yes
PORTTIME_CHECKS_ENAB yes
QUOTAS_ENAB yes
SYSLOG_SU_ENAB yes
SYSLOG_SG_ENAB yes
CONSOLE /etc/securetty
#CONSOLE console:tty01:tty02:tty03:tty04
#SULOG_FILE /var/log/sulog
MOTD_FILE /etc/motd
#MOTD_FILE /etc/motd:/usr/lib/news/news-motd
#ISSUE_FILE /etc/issue
#TTYTYPE_FILE /etc/ttytype
FTMP_FILE /var/log/btmp
NOLOGINS_FILE /etc/nologin
SU_NAME su
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
HUSHLOGIN_FILE .hushlogin
#HUSHLOGIN_FILE /etc/hushlogins
NOLOGIN_STR NOLOGIN
#ENV_TZ TZ=CST6CDT
#ENV_TZ /etc/tzname
ENV_HZ HZ=100
#ENV_HZ HZ=1024
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
ENV_PATH PATH=/usr/local/bin:/bin:/usr/bin
TTYGROUP tty
TTYPERM 0620
ERASECHAR 0177
KILLCHAR 025
UMASK 022
#ULIMIT 2097152
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
SU_WHEEL_ONLY no
#CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict
UID_MIN 1000
UID_MAX 60000
GID_MIN 100
GID_MAX 60000
LOGIN_RETRIES 5
LOGIN_TIMEOUT 60
PASS_CHANGE_TRIES 5
PASS_ALWAYS_WARN yes
#PASS_MAX_LEN 8
CHFN_AUTH yes
CHFN_RESTRICT frwh
#LOGIN_STRING "%s's Password: "
MD5_CRYPT_ENAB yes
#CONSOLE_GROUPS floppy:audio:cdrom
DEFAULT_HOME yes
ENVIRON_FILE /etc/environment
#USERDEL_CMD /usr/sbin/userdel_local
#NO_PASSWORD_CONSOLE tty1:tty2:tty3:tty4:tty5:tty6

View file

@ -0,0 +1,411 @@
# This is an example configuration file for the LVM2 system.
# It contains the default settings that would be used if there was no
# /etc/lvm/lvm.conf file.
#
# Refer to 'man lvm.conf' for further information including the file layout.
#
# To put this file in a different directory and override /etc/lvm set
# the environment variable LVM_SYSTEM_DIR before running the tools.
# This section allows you to configure which block devices should
# be used by the LVM system.
devices {
# Where do you want your volume groups to appear ?
dir = "/dev"
# An array of directories that contain the device nodes you wish
# to use with LVM2.
scan = [ "/dev" ]
# If several entries in the scanned directories correspond to the
# same block device and the tools need to display a name for device,
# all the pathnames are matched against each item in the following
# list of regular expressions in turn and the first match is used.
preferred_names = [ ]
# Try to avoid using undescriptive /dev/dm-N names, if present.
# preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
# A filter that tells LVM2 to only use a restricted set of devices.
# The filter consists of an array of regular expressions. These
# expressions can be delimited by a character of your choice, and
# prefixed with either an 'a' (for accept) or 'r' (for reject).
# The first expression found to match a device name determines if
# the device will be accepted or rejected (ignored). Devices that
# don't match any patterns are accepted.
# Be careful if there there are symbolic links or multiple filesystem
# entries for the same device as each name is checked separately against
# the list of patterns. The effect is that if any name matches any 'a'
# pattern, the device is accepted; otherwise if any name matches any 'r'
# pattern it is rejected; otherwise it is accepted.
# Don't have more than one filter line active at once: only one gets used.
# Run vgscan after you change this parameter to ensure that
# the cache file gets regenerated (see below).
# If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
# By default we accept every block device:
filter = [ "a/.*/" ]
# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]
# When testing I like to work with just loopback devices:
# filter = [ "a/loop/", "r/.*/" ]
# Or maybe all loops and ide drives except hdc:
# filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
# Use anchors if you want to be really specific
# filter = [ "a|^/dev/hda8$|", "r/.*/" ]
# The results of the filtering are cached on disk to avoid
# rescanning dud devices (which can take a very long time).
# By default this cache is stored in the /etc/lvm/cache directory
# in a file called '.cache'.
# It is safe to delete the contents: the tools regenerate it.
# (The old setting 'cache' is still respected if neither of
# these new ones is present.)
cache_dir = "/etc/lvm/cache"
cache_file_prefix = ""
# You can turn off writing this cache file by setting this to 0.
write_cache_state = 1
# Advanced settings.
# List of pairs of additional acceptable block device types found
# in /proc/devices with maximum (non-zero) number of partitions.
# types = [ "fd", 16 ]
# If sysfs is mounted (2.6 kernels) restrict device scanning to
# the block devices it believes are valid.
# 1 enables; 0 disables.
sysfs_scan = 1
# By default, LVM2 will ignore devices used as components of
# software RAID (md) devices by looking for md superblocks.
# 1 enables; 0 disables.
md_component_detection = 1
# By default, if a PV is placed directly upon an md device, LVM2
# will align its data blocks with the the chunk_size exposed in sysfs.
# 1 enables; 0 disables.
md_chunk_alignment = 1
# If, while scanning the system for PVs, LVM2 encounters a device-mapper
# device that has its I/O suspended, it waits for it to become accessible.
# Set this to 1 to skip such devices. This should only be needed
# in recovery situations.
ignore_suspended_devices = 0
}
# This section that allows you to configure the nature of the
# information that LVM2 reports.
log {
# Controls the messages sent to stdout or stderr.
# There are three levels of verbosity, 3 being the most verbose.
verbose = 0
# Should we send log messages through syslog?
# 1 is yes; 0 is no.
syslog = 1
# Should we log error and debug messages to a file?
# By default there is no log file.
#file = "/var/log/lvm2.log"
# Should we overwrite the log file each time the program is run?
# By default we append.
overwrite = 0
# What level of log messages should we send to the log file and/or syslog?
# There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
# 7 is the most verbose (LOG_DEBUG).
level = 0
# Format of output messages
# Whether or not (1 or 0) to indent messages according to their severity
indent = 1
# Whether or not (1 or 0) to display the command name on each line output
command_names = 0
# A prefix to use before the message text (but after the command name,
# if selected). Default is two spaces, so you can see/grep the severity
# of each message.
prefix = " "
# To make the messages look similar to the original LVM tools use:
# indent = 0
# command_names = 1
# prefix = " -- "
# Set this if you want log messages during activation.
# Don't use this in low memory situations (can deadlock).
# activation = 0
}
# Configuration of metadata backups and archiving. In LVM2 when we
# talk about a 'backup' we mean making a copy of the metadata for the
# *current* system. The 'archive' contains old metadata configurations.
# Backups are stored in a human readeable text format.
backup {
# Should we maintain a backup of the current metadata configuration ?
# Use 1 for Yes; 0 for No.
# Think very hard before turning this off!
backup = 1
# Where shall we keep it ?
# Remember to back up this directory regularly!
backup_dir = "/etc/lvm/backup"
# Should we maintain an archive of old metadata configurations.
# Use 1 for Yes; 0 for No.
# On by default. Think very hard before turning this off.
archive = 1
# Where should archived files go ?
# Remember to back up this directory regularly!
archive_dir = "/etc/lvm/archive"
# What is the minimum number of archive files you wish to keep ?
retain_min = 10
# What is the minimum time you wish to keep an archive file for ?
retain_days = 30
}
# Settings for the running LVM2 in shell (readline) mode.
shell {
# Number of lines of history to store in ~/.lvm_history
history_size = 100
}
# Miscellaneous global LVM2 settings
global {
# The file creation mask for any files and directories created.
# Interpreted as octal if the first digit is zero.
umask = 077
# Allow other users to read the files
#umask = 022
# Enabling test mode means that no changes to the on disk metadata
# will be made. Equivalent to having the -t option on every
# command. Defaults to off.
test = 0
# Default value for --units argument
units = "h"
# Whether or not to communicate with the kernel device-mapper.
# Set to 0 if you want to use the tools to manipulate LVM metadata
# without activating any logical volumes.
# If the device-mapper kernel driver is not present in your kernel
# setting this to 0 should suppress the error messages.
activation = 1
# If we can't communicate with device-mapper, should we try running
# the LVM1 tools?
# This option only applies to 2.4 kernels and is provided to help you
# switch between device-mapper kernels and LVM1 kernels.
# The LVM1 tools need to be installed with .lvm1 suffices
# e.g. vgscan.lvm1 and they will stop working after you start using
# the new lvm2 on-disk metadata format.
# The default value is set when the tools are built.
# fallback_to_lvm1 = 0
# The default metadata format that commands should use - "lvm1" or "lvm2".
# The command line override is -M1 or -M2.
# Defaults to "lvm1" if compiled in, else "lvm2".
# format = "lvm1"
# Location of proc filesystem
proc = "/proc"
# Type of locking to use. Defaults to local file-based locking (1).
# Turn locking off by setting to 0 (dangerous: risks metadata corruption
# if LVM2 commands get run concurrently).
# Type 2 uses the external shared library locking_library.
# Type 3 uses built-in clustered locking.
locking_type = 1
# If using external locking (type 2) and initialisation fails,
# with this set to 1 an attempt will be made to use the built-in
# clustered locking.
# If you are using a customised locking_library you should set this to 0.
fallback_to_clustered_locking = 1
# If an attempt to initialise type 2 or type 3 locking failed, perhaps
# because cluster components such as clvmd are not running, with this set
# to 1 an attempt will be made to use local file-based locking (type 1).
# If this succeeds, only commands against local volume groups will proceed.
# Volume Groups marked as clustered will be ignored.
fallback_to_local_locking = 1
# Local non-LV directory that holds file-based locks while commands are
# in progress. A directory like /tmp that may get wiped on reboot is OK.
locking_dir = "/var/lock/lvm"
# Other entries can go here to allow you to load shared libraries
# e.g. if support for LVM1 metadata was compiled as a shared library use
# format_libraries = "liblvm2format1.so"
# Full pathnames can be given.
# Search this directory first for shared libraries.
# library_dir = "/lib"
# The external locking library to load if locking_type is set to 2.
# locking_library = "liblvm2clusterlock.so"
}
activation {
# How to fill in missing stripes if activating an incomplete volume.
# Using "error" will make inaccessible parts of the device return
# I/O errors on access. You can instead use a device path, in which
# case, that device will be used to in place of missing stripes.
# But note that using anything other than "error" with mirrored
# or snapshotted volumes is likely to result in data corruption.
missing_stripe_filler = "error"
# How much stack (in KB) to reserve for use while devices suspended
reserved_stack = 256
# How much memory (in KB) to reserve for use while devices suspended
reserved_memory = 8192
# Nice value used while devices suspended
process_priority = -18
# If volume_list is defined, each LV is only activated if there is a
# match against the list.
# "vgname" and "vgname/lvname" are matched exactly.
# "@tag" matches any tag set in the LV or VG.
# "@*" matches if any tag defined on the host is also set in the LV or VG
#
# volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
# Size (in KB) of each copy operation when mirroring
mirror_region_size = 512
# Setting to use when there is no readahead value stored in the metadata.
#
# "none" - Disable readahead.
# "auto" - Use default value chosen by kernel.
readahead = "auto"
# 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define
# how a device failure affecting a mirror is handled.
# A mirror is composed of mirror images (copies) and a log.
# A disk log ensures that a mirror does not need to be re-synced
# (all copies made the same) every time a machine reboots or crashes.
#
# In the event of a failure, the specified policy will be used to
# determine what happens:
#
# "remove" - Simply remove the faulty device and run without it. If
# the log device fails, the mirror would convert to using
# an in-memory log. This means the mirror will not
# remember its sync status across crashes/reboots and
# the entire mirror will be re-synced. If a
# mirror image fails, the mirror will convert to a
# non-mirrored device if there is only one remaining good
# copy.
#
# "allocate" - Remove the faulty device and try to allocate space on
# a new device to be a replacement for the failed device.
# Using this policy for the log is fast and maintains the
# ability to remember sync state through crashes/reboots.
# Using this policy for a mirror device is slow, as it
# requires the mirror to resynchronize the devices, but it
# will preserve the mirror characteristic of the device.
# This policy acts like "remove" if no suitable device and
# space can be allocated for the replacement.
# Currently this is not implemented properly and behaves
# similarly to:
#
# "allocate_anywhere" - Operates like "allocate", but it does not
# require that the new space being allocated be on a
# device is not part of the mirror. For a log device
# failure, this could mean that the log is allocated on
# the same device as a mirror device. For a mirror
# device, this could mean that the mirror device is
# allocated on the same device as another mirror device.
# This policy would not be wise for mirror devices
# because it would break the redundant nature of the
# mirror. This policy acts like "remove" if no suitable
# device and space can be allocated for the replacement.
mirror_log_fault_policy = "allocate"
mirror_device_fault_policy = "remove"
}
####################
# Advanced section #
####################
# Metadata settings
#
# metadata {
# Default number of copies of metadata to hold on each PV. 0, 1 or 2.
# You might want to override it from the command line with 0
# when running pvcreate on new PVs which are to be added to large VGs.
# pvmetadatacopies = 1
# Approximate default size of on-disk metadata areas in sectors.
# You should increase this if you have large volume groups or
# you want to retain a large on-disk history of your metadata changes.
# pvmetadatasize = 255
# List of directories holding live copies of text format metadata.
# These directories must not be on logical volumes!
# It's possible to use LVM2 with a couple of directories here,
# preferably on different (non-LV) filesystems, and with no other
# on-disk metadata (pvmetadatacopies = 0). Or this can be in
# addition to on-disk metadata areas.
# The feature was originally added to simplify testing and is not
# supported under low memory situations - the machine could lock up.
#
# Never edit any files in these directories by hand unless you
# you are absolutely sure you know what you are doing! Use
# the supplied toolset to make changes (e.g. vgcfgrestore).
# dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
#}
# Event daemon
#
# dmeventd {
# mirror_library is the library used when monitoring a mirror device.
#
# "libdevmapper-event-lvm2mirror.so" attempts to recover from
# failures. It removes failed devices from a volume group and
# reconfigures a mirror as necessary. If no mirror library is
# provided, mirrors are not monitored through dmeventd.
# mirror_library = "libdevmapper-event-lvm2mirror.so"
# snapshot_library is the library used when monitoring a snapshot device.
#
# "libdevmapper-event-lvm2snapshot.so" monitors the filling of
# snapshots and emits a warning through syslog, when the use of
# snapshot exceedes 80%. The warning is repeated when 85%, 90% and
# 95% of the snapshot are filled.
# snapshot_library = "libdevmapper-event-lvm2snapshot.so"
#}

View file

@ -0,0 +1,44 @@
[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
}
ext4dev = {
features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
}
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
floppy = {
blocksize = 1024
inode_size = 128
inode_ratio = 8192
}
news = {
inode_ratio = 4096
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
largefile4 = {
inode_ratio = 4194304
blocksize = -1
}
hurd = {
blocksize = 4096
inode_size = 128
}

View file

View file

View file

@ -0,0 +1,64 @@
# Example mtools.conf files. Uncomment the lines which correspond to
# your architecture and comment out the "SAMPLE FILE" line below
#SAMPLE FILE
# # Linux floppy drives
drive a: file="/dev/fd0" exclusive
drive b: file="/dev/fd1" exclusive
# # First SCSI hard disk partition
# drive c: file="/dev/sda1"
# # First IDE hard disk partition
# drive c: file="/dev/hda1"
# # dosemu floppy image
# drive m: file="/var/lib/dosemu/diskimage"
# # dosemu hdimage
# drive n: file="/var/lib/dosemu/diskimage" offset=3840
# # Atari ramdisk image
# drive o: file="/tmp/atari_rd" offset=136
# # ZIP disk for Solaris:
# Drive X is ZIP-100 at target 5
# drive X: file="/dev/rdsk/c0t5d0s2" partition=4 scsi=1 nodelay
# # ZIP disk for SunOS:
# # Zip drive is at target 5, which default kernel calls tape st1 !!
# drive Y: file="/dev/rsd5c" partition=4 scsi=1 nodelay
# # autoselect zip drive/floppy on HP-UX 9/10
# drive a: file="/dev/rdsk/c201d5" exclusive partition=4
# drive a: file="/dev/rdsk/c201d5s0" exclusive partition=4
# drive a: file="/dev/rfloppy/c201d0s0" exclusive
# A/UX target 5 on 1st scsi bus jaz or zip
# drive X: file="/dev/rdsk/c105d0s31" partition=4
# Some examples for BeOS.
# floppy drive. hardcoded in devices.c, so no real need to define it here
#drive a: file="/dev/floppy_disk" exclusive
# ZIP drive on SCSI ID 6
#drive z: file="/dev/scsi_disk_060" offset=16384 fat_bits=16
# SCO Unix 3.2v4
# # Floppy disk drives
#
# drive a: file="/dev/install" exclusive
# drive b: file="/dev/install1" exclusive
#
# # SCSI hard disk partitions
#
# drive c: file="/dev/dsk/0sC"
# drive d: file="/dev/dsk/0sD"
# drive e: file="/dev/dsk/0sE"
# drive f: file="/dev/dsk/0sF"
# drive g: file="/dev/dsk/0sG"
# drive h: file="/dev/dsk/0sH"
# # uncomment the following line to display all file names in lower
# # case by default
# mtools_lower_case=1

View file

@ -0,0 +1,10 @@
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
localnet 127.0.0.0
# End of networks.

View file

@ -0,0 +1,42 @@
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# [NOTFOUND=return] Stop searching if not found so far
#
passwd: files
shadow: files
group: files
hosts: files dns
services: [NOTFOUND=return] files
networks: [NOTFOUND=return] files
protocols: [NOTFOUND=return] files
rpc: [NOTFOUND=return] files
ethers: [NOTFOUND=return] files
netmasks: [NOTFOUND=return] files
bootparams: [NOTFOUND=return] files
netgroup:
publickey:
automount: files
aliases: files

View file

@ -0,0 +1,21 @@
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/log:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:
ftp:x:14:50::/home/ftp:
smmsp:x:25:25:smmsp:/var/spool/clientmqueue:
mysql:x:27:27:MySQL:/var/lib/mysql:/bin/bash
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:

View file

@ -0,0 +1,71 @@
#
# Local PCMCIA Configuration File
#
#----------------------------------------------------------------------
#
# System resources available for PCMCIA cards
#
# NOTE: these settings have no effect on resources assigned to a
# CardBus bridge device itself; this file only affects resources
# assigned to cards. Also, interrupt settings here will only affect
# ISA bus interrupts assigned to 16-bit cards. PCI interrupts
# generally can't be reconfigured.
#
# With the kernel PCMCIA subsystem, these settings also have no effect
# at all on resources used for 32-bit CardBus cards. Those are set by
# the PCI hotplug subsystem.
#
# These are the official ports to use from pcmcia-cs:
#include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
# However, ports 0x810-0x81f hurt on some DELL machines and
# ports 0x3b0-0x3df hurt on some FSC machines, so we use this port
# list instead:
include port 0x100-0x3af, port 0x3e0-0x4ff, port 0xc00-0xcff
include memory 0xc0000-0xfffff
include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
# High port numbers do not always work...
# include port 0x1000-0x17ff
# Extra port range for IBM Token Ring
include port 0xa00-0xaff
# Resources we should not use, even if they appear to be available
# First built-in serial port
exclude irq 4
# Second built-in serial port
#exclude irq 3
# First built-in parallel port
exclude irq 7
#----------------------------------------------------------------------
# Examples of options for loadable modules
# To fix sluggish network with IBM ethernet adapter...
#module "pcnet_cs" opts "mem_speed=600"
# Options for IBM Token Ring adapters
#module "ibmtr_cs" opts "mmiobase=0xd0000 srambase=0xd4000"
# Options for Raylink/WebGear driver: uncomment only one line...
# These are the default settings for use with the WebGear Windows driver:
#module "ray_cs" opts "essid=NETWORK_NAME hop_dwell=128 beacon_period=256 translate=0"
# Generic ad-hoc network
#module "ray_cs" opts "essid=ADHOC_ESSID hop_dwell=128 beacon_period=256 translate=1"
# Infrastructure network for older cards
#module "ray_cs" opts "net_type=1 essid=ESSID1"
# Infrastructure network for WebGear
#module "ray_cs" opts "net_type=1 essid=ESSID1 translate=1 hop_dwell=128 beacon_period=256"
# Options for WaveLAN/IEEE driver (AccessPoint mode)...
#module "wvlan_cs" opts "station_name=MY_PC"
# Options for WaveLAN/IEEE driver (ad-hoc mode)...
#module "wvlan_cs" opts "port_type=3 channel=1 station_name=MY_PC"
# Options for Xircom Netwave driver...
#module "netwave_cs" opts "domain=0x100 scramble_key=0x0"

View file

@ -0,0 +1,35 @@
# commands common to all logins
PATH="$PATH:/bin:/sbin:/usr/bin:/usr/lib/setup"
PATH="$PATH:/mnt/usr/local/bin:/mnt/usr/bin:/mnt/bin"
PATH="$PATH:/mnt/usr/local/sbin:/mnt/usr/sbin:/mnt/sbin"
PATH="$PATH:/mnt/linux/usr/local/bin:/mnt/linux/usr/bin:/mnt/linux/bin"
PATH="$PATH:/mnt/linux/usr/local/sbin:/mnt/linux/usr/sbin:/mnt/linux/sbin"
# Allow a user to set the default TERM entry by specifying TERM=<name>
# as a kernel command line parameter:
if cat /proc/cmdline | grep "TERM=[a-zA-Z0-9]" 1> /dev/null 2> /dev/null ; then
export TERM=$( sed 's/.*TERM=\([^ ]*\).*/\1/' < /proc/cmdline )
elif cat /proc/cmdline | grep console=ttyS 1> /dev/null 2> /dev/null ; then
export TERM=vt100
else
export TERM=linux
fi
HOME=/root
LESS=-MM
# Set command line prompt:
PS1='\u@\h:\w# '
PS2='> '
ignoreeof=10
export HOME PATH DISPLAY LESS TERM PS1 PS2 ignoreeof
umask 022
# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
if [ -x $profile_script ]; then
. $profile_script
fi
done
unset profile_script

View file

@ -0,0 +1,55 @@
# Slackware color ls profile script for /bin/sh-like shells.
# Set up LS_OPTIONS environment variable.
# This contains extra command line options to use with ls.
# The default ones are:
# -F = show '/' for dirs, '*' for executables, etc.
# -T 0 = don't trust tab spacing when formatting ls output.
# -b = better support for special characters
OPTIONS="-F -b -T 0"
# COLOR needs one of these arguments:
# 'auto' colorizes output to ttys, but not pipes.
# 'always' adds color characters to all output.
# 'never' shuts colorization off.
COLOR=auto
# This section shouldn't require any user adjustment since it is
# simply setting the LS_OPTIONS variable using the information
# already given above:
LS_OPTIONS=" $OPTIONS --color=$COLOR ";
export LS_OPTIONS;
unset COLOR
unset OPTIONS
# Set up aliases to use color ls by default. A few additional
# aliases like 'dir', 'vdir', etc, are some ancient artifacts
# from 1992 or so... possibly they should be disabled, but maybe
# someone out there is actually using them? :-)
# Assume shell aliases are supported. Ash is going to freak out
# when it sees zsh syntax anyway, so whatever.
alias ls='/bin/ls $LS_OPTIONS';
alias dir='/bin/ls $LS_OPTIONS --format=vertical';
alias vdir='/bin/ls $LS_OPTIONS --format=long';
alias d=dir;
alias v=vdir;
# Just for fun, here are the old sh/ash style shell functions.
# this script isn't currently working with ash (and makes some noisy
# error messages), but perhaps these will still be of use to
# someone...
#ls () { /bin/ls $LS_OPTIONS "$@" ; };
#dir () { /bin/ls $LS_OPTIONS --format=vertical "$@" ; };
#vdir () { /bin/ls $LS_OPTIONS --format=long "$@" ; };
#d () { dir "$@" ; };
#v () { vdir "$@" ; };
# Set up the LS_COLORS environment:
if [ -f $HOME/.dir_colors ]; then
eval `/bin/dircolors -b $HOME/.dir_colors`
elif [ -f /etc/DIR_COLORS ]; then
eval `/bin/dircolors -b /etc/DIR_COLORS`
else
eval `/bin/dircolors -b`
fi

View file

@ -0,0 +1,8 @@
#!/bin/sh
# Set more relaxed (glibc-2.3.5 like) malloc() checking.
#
# This relaxes the default paranoia level so that it reports
# bugs, but does not kill the questionable process. You can
# get away with running broken programs with this setting,
# but at a possible performance and security cost.
#export MALLOC_CHECK_=1

View file

@ -0,0 +1,146 @@
#
# Internet protocols
#
# $FreeBSD: src/etc/protocols,v 1.16 2002/02/10 08:19:58 dd Exp $
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
#
# See also http://www.iana.org/assignments/protocol-numbers
#
ip 0 IP # internet protocol, pseudo protocol number
#hopopt 0 HOPOPT # hop-by-hop options for ipv6
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group management protocol
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st2 5 ST2 # ST2 datagram mode (RFC 1819)
tcp 6 TCP # transmission control protocol
cbt 7 CBT # CBT, Tony Ballardie <A.Ballardie@cs.ucl.ac.uk>
egp 8 EGP # exterior gateway protocol
igp 9 IGP # any private interior gateway (Cisco: for IGRP)
bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring
nvp 11 NVP-II # Network Voice Protocol
pup 12 PUP # PARC universal packet protocol
argus 13 ARGUS # ARGUS
emcon 14 EMCON # EMCON
xnet 15 XNET # Cross Net Debugger
chaos 16 CHAOS # Chaos
udp 17 UDP # user datagram protocol
mux 18 MUX # Multiplexing protocol
dcn 19 DCN-MEAS # DCN Measurement Subsystems
hmp 20 HMP # host monitoring protocol
prm 21 PRM # packet radio measurement protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
trunk-1 23 TRUNK-1 # Trunk-1
trunk-2 24 TRUNK-2 # Trunk-2
leaf-1 25 LEAF-1 # Leaf-1
leaf-2 26 LEAF-2 # Leaf-2
rdp 27 RDP # "reliable datagram" protocol
irtp 28 IRTP # Internet Reliable Transaction Protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4
netblt 30 NETBLT # Bulk Data Transfer Protocol
mfe-nsp 31 MFE-NSP # MFE Network Services Protocol
merit-inp 32 MERIT-INP # MERIT Internodal Protocol
sep 33 SEP # Sequential Exchange Protocol
3pc 34 3PC # Third Party Connect Protocol
idpr 35 IDPR # Inter-Domain Policy Routing Protocol
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto
tp++ 39 TP++ # TP++ Transport Protocol
il 40 IL # IL Transport Protocol
ipv6 41 IPV6 # ipv6
sdrp 42 SDRP # Source Demand Routing Protocol
ipv6-route 43 IPV6-ROUTE # routing header for ipv6
ipv6-frag 44 IPV6-FRAG # fragment header for ipv6
idrp 45 IDRP # Inter-Domain Routing Protocol
rsvp 46 RSVP # Resource ReSerVation Protocol
gre 47 GRE # Generic Routing Encapsulation
mhrp 48 MHRP # Mobile Host Routing Protocol
bna 49 BNA # BNA
esp 50 ESP # encapsulating security payload
ah 51 AH # authentication header
i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA
swipe 53 SWIPE # IP with Encryption
narp 54 NARP # NBMA Address Resolution Protocol
mobile 55 MOBILE # IP Mobility
tlsp 56 TLSP # Transport Layer Security Protocol
skip 57 SKIP # SKIP
ipv6-icmp 58 IPV6-ICMP # ICMP for IPv6
ipv6-nonxt 59 IPV6-NONXT # no next header for ipv6
ipv6-opts 60 IPV6-OPTS # destination options for ipv6
# 61 # any host internal protocol
cftp 62 CFTP # CFTP
# 63 # any local network
sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK
kryptolan 65 KRYPTOLAN # Kryptolan
rvd 66 RVD # MIT Remote Virtual Disk Protocol
ippc 67 IPPC # Internet Pluribus Packet Core
# 68 # any distributed file system
sat-mon 69 SAT-MON # SATNET Monitoring
visa 70 VISA # VISA Protocol
ipcv 71 IPCV # Internet Packet Core Utility
cpnx 72 CPNX # Computer Protocol Network Executive
cphb 73 CPHB # Computer Protocol Heart Beat
wsn 74 WSN # Wang Span Network
pvp 75 PVP # Packet Video Protocol
br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring
sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary
wb-mon 78 WB-MON # WIDEBAND Monitoring
wb-expak 79 WB-EXPAK # WIDEBAND EXPAK
iso-ip 80 ISO-IP # ISO Internet Protocol
vmtp 81 VMTP # Versatile Message Transport
secure-vmtp 82 SECURE-VMTP # SECURE-VMTP
vines 83 VINES # VINES
ttp 84 TTP # TTP
nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP
dgp 86 DGP # Dissimilar Gateway Protocol
tcf 87 TCF # TCF
eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco)
ospf 89 OSPFIGP # Open Shortest Path First IGP
sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol
larp 91 LARP # Locus Address Resolution Protocol
mtp 92 MTP # Multicast Transport Protocol
ax.25 93 AX.25 # AX.25 Frames
ipip 94 IPIP # Yet Another IP encapsulation
micp 95 MICP # Mobile Internetworking Control Pro.
scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro.
etherip 97 ETHERIP # Ethernet-within-IP Encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
# 99 # any private encryption scheme
gmtp 100 GMTP # GMTP
ifmp 101 IFMP # Ipsilon Flow Management Protocol
pnni 102 PNNI # PNNI over IP
pim 103 PIM # Protocol Independent Multicast
aris 104 ARIS # ARIS
scps 105 SCPS # SCPS
qnx 106 QNX # QNX
a/n 107 A/N # Active Networks
ipcomp 108 IPComp # IP Payload Compression Protocol
snp 109 SNP # Sitara Networks Protocol
compaq-peer 110 Compaq-Peer # Compaq Peer Protocol
ipx-in-ip 111 IPX-in-IP # IPX in IP
vrrp 112 VRRP # Virtual Router Redundancy Protocol
pgm 113 PGM # PGM Reliable Transport Protocol
# 114 # any 0-hop protocol
l2tp 115 L2TP # Layer Two Tunneling Protocol
ddx 116 DDX # D-II Data Exchange
iatp 117 IATP # Interactive Agent Transfer Protocol
st 118 ST # Schedule Transfer
srp 119 SRP # SpectraLink Radio Protocol
uti 120 UTI # UTI
smp 121 SMP # Simple Message Protocol
sm 122 SM # SM
ptp 123 PTP # Performance Transparency Protocol
isis 124 ISIS # ISIS over IPv4
fire 125 FIRE
crtp 126 CRTP # Combat Radio Transport Protocol
crudp 127 CRUDP # Combat Radio User Datagram
sscopmce 128 SSCOPMCE
iplt 129 IPLT
sps 130 SPS # Secure Packet Shield
pipe 131 PIPE # Private IP Encapsulation within IP
sctp 132 SCTP # Stream Control Transmission Protocol
fc 133 FC # Fibre Channel
# 134-254 # Unassigned
divert 254 DIVERT # Divert pseudo-protocol [non IANA]
# 255 # Reserved

View file

@ -0,0 +1,250 @@
#!/bin/sh
# rc.S: Basic system initialization.
# Any /etc/mtab that exists here is old, so we start with a new one:
/bin/rm -f /etc/mtab{,~,.tmp} && /bin/touch /etc/mtab
# Add (fake) entry for / to /etc/mtab:
/sbin/mount -f -w /dev/initramfs / -t tmpfs 1> /dev/null
# Mount /proc:
/sbin/mount -v proc /proc -t proc 1> /dev/null
# Mount sysfs next:
/sbin/mount -v sysfs /sys -t sysfs 1> /dev/null
# Activate swap:
/sbin/swapon -a 1> /dev/null
if [ -x /sbin/ldconfig ]; then
/sbin/ldconfig 1> /dev/null
fi
## Detect serial console from kernel command line:
#if cat /proc/cmdline | grep console=ttyS 1> /dev/null 2> /dev/null ; then
# SERIAL_CONSOLE="true"
#fi
# System logger (mostly to eat annoying messages):
/sbin/syslogd 2> /dev/null
sleep 1
/sbin/klogd -c 3 1> /dev/null
# Try to load the loop module:
modprobe loop 1> /dev/null 2> /dev/null
# Run udev:
if ! grep -wq noudev /proc/cmdline ; then
/bin/bash /etc/rc.d/rc.udev start
# Re-assemble RAID volumes:
/sbin/mdadm -E -s > /etc/mdadm.conf
/sbin/mdadm -S -s
/sbin/mdadm -A -s
# This seems to make the kernel see partitions more reliably:
fdisk -l /dev/md* 1> /dev/null 2> /dev/null
else
# Run our old detection routines:
# Look for USB keyboard or storage:
/etc/rc.d/rc.usb start
sleep 3
# Look for IEEE1394 devices:
if grep 1394 /proc/pci 1> /dev/null 2> /dev/null ; then
/etc/rc.d/rc.ieee1394 start
#sleep 3
fi
# Load additional install floppies:
for NEWDISK in 2 ; do
if [ ! -r /etc/disk${NEWDISK} ]; then
while [ 0 ]; do
echo
echo -n "Insert install.${NEWDISK} floppy disk to be loaded into RAM disk and press ENTER"
read readfoo;
if [ "$readfoo" = "Q" -o "$readfoo" = "q" ]; then
break;
fi
echo -n "Loading install.${NEWDISK} floppy into RAM disk... "
( cd / ; cat /dev/fd0 | zcat 2> /dev/null | tar xf - )
if [ -r /etc/disk${NEWDISK} ]; then
echo "done."
echo
break;
else
echo "Error. (reload or enter Q)"
echo
continue;
fi
done
fi
done
### PROBABLY USELESS WITHOUT SOME TIMED DELAY ABOVE
## Start USB again (in case we missed a USB keyboard)
#/etc/rc.d/rc.usb start
# Make detected partitions:
/dev/makedevs.sh
## Not needed with CONFIG_SCSI_MULTI_LUN=y
#unset SCAN
## Now we should rescan the "SCSI" bus to look for new USB or firewire devices
## that look like SCSI devices:
#if [ -r /proc/bus/usb/devices ]; then
# if cat /proc/bus/usb/devices | grep -w usb-storage 1> /dev/null 2> /dev/null ; then
# SCAN="true"
# fi
#fi
#if [ -r /proc/bus/ieee1394/devices ]; then
# if cat /proc/bus/ieee1394/devices | grep -w SBP2 1> /dev/null 2> /dev/null ; then
# SCAN="true"
# fi
#fi
#if [ "$SCAN" = "true" ]; then
# if ! cat /proc/cmdline | grep -q noscanluns 2> /dev/null ; then
# echo "Detected new USB/IEEE1394 storage devices... scanning all LUNs."
# echo "(to skip, give a 'noscanluns' kernel option at boot)"
# #sleep 5
# sh /sbin/rescan-scsi-bus -l
# #sleep 1
# fi
#fi
#unset SCAN
# Re-assemble RAID volumes:
/sbin/mdadm -E -s > /etc/mdadm.conf
/sbin/mdadm -S -s
/sbin/mdadm -A -s
# This seems to make the kernel see partitions more reliably:
fdisk -l /dev/md* 1> /dev/null 2> /dev/null
# Check /proc/partitions again:
/dev/makedevs.sh
# Create LVM nodes:
/dev/devmap_mknod.sh
fi # End Run udev:
# Here's the situation. Because of the practice of keeping the local
# time (rather than UTC) in the system's clock, at any given time half
# of the people doing an install will be creating files that upon
# reboot will appear to have been created in the future.
#
# There are a lot of things that aren't happy when that happens. The
# one that screams the most loudly is e2fsck, and we don't want to
# anger that! Sometimes it even proceeds to check the partitions just
# to be sure the user is fully punished.
#
# But, there's a simple solution. If we set the (temporary) Linux clock
# to yesterday (-24h), then there's no way that could occur. Everything
# on the system will be in the past (but not too far in the past).
# Since files will quickly be put into use and given the correct after
# reboot, this really shouldn't have a negative impact. Plus, it affects
# only newly created files during installation -- any file shipped in a
# package will have an accurate time of creation. (for its timezone ;-)
#
# Update: We have to use 2 days ago, or chroot()+timezone offset might
# still be in the future... <sigh>
#
touch /.today
/bin/sh /sbin/fakedate
if [ -x /etc/rc.d/rc.inet1 ]; then
/bin/sh /etc/rc.d/rc.inet1
fi
# pcmciautils is installing rc.pcmcia as chmod 644, so we'll change that.
# It won't be run at boot time, but it'll make it easy for the pcmcia script
# or to run it from the command line.
chmod 755 /etc/rc.d/rc.pcmcia
# Scan for existing LVM partitions:
# We will run 'vgscan -ay' in the setup to prevent a 10 second sleep;
vgscan --mknodes 2> /tmp/foo
cat /tmp/foo | uniq
rm -f /tmp/foo
if [ -x /etc/rc.d/rc.font ]; then
/bin/sh /etc/rc.d/rc.font
fi
# Don't automatically blank the screen, or it will go black during the install
# process when stray keystrokes might be dangerous:
/bin/setterm -blank 0
echo > /etc/motd
echo "`/bin/uname -a | /bin/cut -d\ -f1,3`." >> /etc/motd
echo >> /etc/motd
cat << EOF >> /etc/motd
If you're upgrading an existing Slackware system, you might want to
remove old packages before you run 'setup' to install the new ones. If
you don't, your system will still work but there might be some old files
left laying around on your drive.
Just mount your Linux partitions under /mnt and type 'pkgtool'. If you
don't know how to mount your partitions, type 'pkgtool' and it will tell
you how it's done.
To partition your hard drive(s), use 'cfdisk' or 'fdisk'.
To start the main installation (after partitioning), type 'setup'.
EOF
# Dropbear seems to handle the $PATH correctly now...
#echo > /etc/motd.net
#echo "First command to run is 'source /etc/profile'." >> /etc/motd.net
#echo "This will setup the PATH for you." >> /etc/motd.net
#echo >> /etc/motd.net
# If possible, figure out what kernel we just booted with:
unset SLACK_KERNEL
for ARG in `cat /proc/cmdline` ; do
if [ "`echo $ARG | cut -f 1 -d =`" = "SLACK_KERNEL" ]; then
IMAGE="`echo $ARG | cut -f 2 -d =`"
SLACK_KERNEL=$IMAGE
fi
done
export SLACK_KERNEL
. /etc/profile
clear
if ! cat /proc/cmdline | grep -q 'kbd=' 2> /dev/null ; then
echo
echo
echo "<OPTION TO LOAD SUPPORT FOR NON-US KEYBOARD>"
echo
echo "If you are not using a US keyboard, you may now load a different"
echo "keyboard map. To select a different keyboard map, please enter 1"
echo "now. To continue using the US map, just hit enter."
echo
echo -n "Enter 1 to select a keyboard map: "
read ONE
if [ "$ONE" = "1" ]; then
/usr/lib/setup/SeTkeymap
fi
else
for ARG in `cat /proc/cmdline` ; do
if [ "`echo $ARG | cut -f1 -d=`" = "kbd" ]; then
BMAP="`echo $ARG | cut -f2 -d=`.bmap"
fi
done
tar xzOf /etc/keymaps.tar.gz $BMAP | loadkmap
unset BMAP
fi
clear
# Provision for unattended network configuration:
/usr/lib/setup/SeTnet boot
# Start dropbear ssh server (only if a configured interface is present):
/etc/rc.d/rc.dropbear start
# Fake login: (fooled ya! ;^)
cat /etc/issue
echo -n "slackware login: "
read BOGUS_LOGIN
cat /etc/motd

View file

@ -0,0 +1,58 @@
#!/bin/sh
# Start/stop/restart the dropbear secure shell server:
# Terminate the script now if we have no interface with an IP address:
if ! `ip -f inet -o addr show | grep -v " lo " 1>/dev/null 2>/dev/null` ; then
exit 1
fi
dropbear_start() {
# Create host keys if needed.
if [ ! -f /etc/dropbear/dropbear_rsa_host_key ]; then
/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
fi
if [ ! -f /etc/dropbear/dropbear_dss_host_key ]; then
/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
fi
touch /var/log/lastlog # The file is missing in the installer
/sbin/dropbear 2>> /var/log/dropbear.log
}
dropbear_stop() {
killall dropbear
}
dropbear_restart() {
if [ -r /var/run/dropbear.pid ]; then
echo "WARNING: killing listener process only. To kill every dropbear process, you "
echo " must use 'rc.dropbear stop'. 'rc.dropbear restart' kills only the "
echo " parent dropbear to allow an admin logged in through dropbear to use "
echo " 'rc.dropbear restart' without being cut off. If dropbear has been "
echo " upgraded, new connections will now use the new version, which should "
echo " be a safe enough approach."
kill `cat /var/run/dropbear.pid`
else
echo "WARNING: There does not appear to be a parent instance of dropbear running."
echo " If you really want to kill all running instances of dropbear "
echo " (including any sessions currently in use), run "
echo " '/etc/rc.d/rc.dropbear stop' instead."
exit 1
fi
sleep 1
dropbear_start
}
case "$1" in
'start')
dropbear_start
;;
'stop')
dropbear_stop
;;
'restart')
dropbear_restart
;;
*)
echo "usage $0 start|stop|restart"
esac

View file

@ -0,0 +1,45 @@
#!/bin/sh
# Load terminus font. This is either to resize the terminal to be close to default,
# or to simply load a better looking font for the installer.
# In case udev has not yet prepared the tty devices, create them:
create_tty() {
if [ ! -r /dev/tty1 ]; then
mknod /dev/tty1 c 4 1
chown root:tty /dev/tty1
chmod 620 /dev/tty1
fi
if [ ! -r /dev/tty2 ]; then
mknod /dev/tty2 c 4 2
chown root:tty /dev/tty2
chmod 620 /dev/tty2
fi
if [ ! -r /dev/tty3 ]; then
mknod /dev/tty3 c 4 3
chown root:tty /dev/tty3
chmod 620 /dev/tty3
fi
if [ ! -r /dev/tty4 ]; then
mknod /dev/tty4 c 4 4
chown root:tty /dev/tty4
chmod 620 /dev/tty4
fi
}
if ! grep -wq nofont /proc/cmdline ; then
if [ ! "$(cat /proc/fb)" = "" ] ; then
if [ -r /usr/share/kbd/consolefonts/ter-120b.psf.gz ]; then
create_tty
for tty in /dev/tty{1,2,3,4} ; do
setfont -C $tty /usr/share/kbd/consolefonts/ter-120b.psf.gz
done
fi
else
if [ -r /usr/share/kbd/consolefonts/ter-c14v.psf.gz ]; then
create_tty
for tty in /dev/tty{1,2,3,4} ; do
setfont -C $tty /usr/share/kbd/consolefonts/ter-c14v.psf.gz
done
fi
fi
fi

View file

@ -0,0 +1,48 @@
#!/bin/sh
# rc.ieee1394: search for IEEE1394 (firewire) devices needed for installation.
# This is a function to unload the IEEE1394 (firewire) modules:
ieee1394_stop() {
modprobe -r sbp2 ohci1394
modprobe -r ieee1394
}
# This is a function to attempt to enable a IEEE1394 storage device.
# If this causes problems for you, use "noieee1394" as a kernel
# command line option at boot time.
ieee1394_start() {
# If noieee1394 was given at boot, skip.
if ! cat /proc/cmdline | grep noieee1394 1> /dev/null 2> /dev/null ; then
# If there aren't even any modules for this kernel, skip.
if [ -d /lib/modules/`uname -r` ]; then
# If ieee1394 is already loaded, skip.
if ! grep ieee1394 /proc/modules 1> /dev/null 2> /dev/null ; then
echo "Probing for IEEE1394 (Firewire) controllers."
echo "(to skip, give a 'noieee1394' kernel option at boot)"
#sleep 5
modprobe -q ieee1394 >/dev/null 2>&1
# Try to load hub module:
modprobe -q ohci1394 >/dev/null 2>&1
# Attempt to load storage support.
modprobe -q sbp2 >/dev/null 2>&1
fi
fi
fi
}
case "$1" in
'start')
ieee1394_start
;;
'stop')
ieee1394_stop
;;
'restart')
ieee1394_stop
sleep 5
ieee1394_start
;;
*)
echo "usage $0 start|stop|restart"
esac

View file

@ -0,0 +1,28 @@
#! /bin/sh
#
# rc.inet1 This shell script boots up the base INET system.
#
# Version: @(#)/etc/rc.d/rc.inet1 1.01 05/27/93
#
TMP=/var/log/setup/tmp
mkdir -p $TMP/dhcpc
HOSTNAME=`cat /etc/HOSTNAME`
/bin/hostname `cat /etc/HOSTNAME | cut -f1 -d .`
# Attach the loopback device.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# In case we use udev -
# Try to get information from a local DHCP server and store that for later:
if ! grep -wq nodhcp /proc/cmdline ; then
for EDEV in $(cat /proc/net/dev | grep ':' | sed -e "s/^ *//" | cut -f1 -d: | grep -v lo) ; do
if grep -q $(echo ${EDEV}: | cut -f 1 -d :): /proc/net/wireless ; then
continue # skip wireless interfaces
fi
/sbin/dhcpcd -t 35 -L -T $EDEV 1>/etc/dhcpc/dhcpcd-${EDEV}.info 2>/dev/null &
done
fi

View file

@ -0,0 +1,65 @@
#!/bin/sh
#
# rc.pcmcia: Script to initialize PCMCIA subsystem.
# Based in an example found in cardmgr-to-pcmciautils.txt
# and in Slackware rc.pcmcia found in pcmcia-cs package.
#
# Set this to the driver to use, one of:
# probe, yenta_socket, i82365, i82092, pd6729, tcic, etc.
#
DRIVER=probe
DRIVER_OPTS=
case "$1" in
start)
echo "Starting PCMCIA services:"
fgrep -q pcmcia /proc/devices
if [ $? -ne 0 ] ; then
if [ "$DRIVER" = "probe" ]; then
echo " <Probing for PCIC: edit /etc/rc.d/rc.pcmcia>"
for DRV in yenta_socket i82365 tcic ; do
/sbin/modprobe $DRV > /dev/null 2>&1
/sbin/pccardctl status | grep -q Socket && break
/sbin/modprobe -r $DRV > /dev/null 2>&1
done
else
echo " <Loading PCIC: $DRIVER>"
/sbin/modprobe $DRIVER $DRIVER_OPTS > /dev/null 2>&1
fi
/sbin/modprobe pcmcia > /dev/null 2>&1 # just in case it's not auto-loaded
else
echo " <PCIC already loaded>"
fi
;;
stop)
echo -n "Shutting down PCMCIA services: "
echo -n "cards "
/sbin/pccardctl eject
MODULES=`/sbin/lsmod | grep "pcmcia " | awk '{print $4}' | tr , ' '`
for i in $MODULES ; do
echo -n "$i "
/sbin/modprobe -r $i > /dev/null 2>&1
done
echo -n "pcmcia "
/sbin/modprobe -r pcmcia > /dev/null 2>&1
if [ "$DRIVER" = "probe" ]; then
for DRV in yenta_socket i82365 tcic ; do
grep -qw $DRV /proc/modules && modprobe -r $DRV && \
echo -n "$DRV " && break
done
else
/sbin/modprobe -r $DRIVER > /dev/null 2>&1
fi
echo -n "rsrc_nonstatic "
/sbin/modprobe -r rsrc_nonstatic > /dev/null 2>&1
echo "pcmcia_core"
/sbin/modprobe -r pcmcia_core > /dev/null 2>&1
;;
restart)
$0 stop
$0 start
;;
esac

View file

@ -0,0 +1,133 @@
#!/bin/sh
# This is a script to initialize udev, which populates the /dev
# directory with device nodes, scans for devices, loads the
# appropriate kernel modules, and configures the devices.
PATH="/sbin:/bin"
OPT=""
. /etc/udev/udev.conf
# remove trailing slash from udev_root
UDEV_ROOT=$(echo "${udev_root}" |sed 's/\/*$//')
case "$1" in
start)
# Sanity check #1, udev requires that the kernel support tmpfs:
if ! grep -wq tmpfs /proc/filesystems ; then
echo "Sorry, but you need tmpfs support in the kernel to use udev."
echo
echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
exit 1
fi
# Sanity check #2, make sure that a 2.6.x kernel is new enough:
if [ "$(uname -r | cut -f 1,2 -d .)" = "2.6" ]; then
if [ "$(uname -r | cut -f 3 -d . | sed 's/[^[:digit:]].*//')" -lt "15" ]; then
echo "Sorry, but you need a 2.6.15+ kernel to use udev."
echo "Your kernel version is only $(uname -r)."
echo
echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
exit 1
fi
fi
# Sanity check #3, make sure the udev package was not removed. If udevd
# is not there, this will also shut off this script to prevent further
# problems:
if [ ! -x /sbin/udevd ]; then
chmod 644 /etc/rc.d/rc.udev
echo "No udevd daemon found."
echo "Turning off udev: chmod 644 /etc/rc.d/rc.udev"
echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
exit 1
fi
# Disable hotplug helper since udevd listens to netlink:
if [ -e /proc/sys/kernel/hotplug ]; then
echo "" > /proc/sys/kernel/hotplug
fi
# if udevd is already running, rc.udev start will try to re-run
# failed events. Else, it will start udevd.
if ps axc | grep -q udevd ; then
OPT="--type=failed $OPT"
( cd ${UDEV_ROOT}/.udev
for TMPFILE in tmp-rules-*.rules ; do
mv $TMPFILE /etc/udev/rules.d/${TMPFILE/tmp-rules--/} 2>/dev/null
done
)
else
# Mount tmpfs on $UDEV_ROOT:
if ! grep -E -q "^[^[:space:]]+ $UDEV_ROOT tmpfs" /proc/mounts; then
# umount shm if needed
if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/shm tmpfs" /proc/mounts; then
umount -l $UDEV_ROOT/shm
fi
# Umount pts if needed, we will remount it later:
if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/pts devpts" /proc/mounts; then
umount -l $UDEV_ROOT/pts
fi
# Mount tmpfs on $UDEV_ROOT:
# the -n is because we don't want $UDEV_ROOT umounted when
# someone (rc.[06]) calls umount -a
mount -n -o mode=0755 -t tmpfs tmpfs $UDEV_ROOT
# Remount pts:
mkdir $UDEV_ROOT/pts 2> /dev/null
mount -n -o mode=0620,gid=5 -t devpts devpts $UDEV_ROOT/pts
fi
# Add the static nodes to $UDEV_ROOT:
cp --preserve=all --recursive --remove-destination /lib/udev/devices/* $UDEV_ROOT
# Start udevd:
echo "Starting udevd: /sbin/udevd --daemon"
/sbin/udevd --daemon
# Create rootdev rules
DEVICENUMBER=$( /bin/stat -c %d / )
MAJORNUMBER=$(($DEVICENUMBER / 256))
MINORNUMBER=$(($DEVICENUMBER % 256))
echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules
fi
echo "Triggering udev events: /sbin/udevadm trigger $OPT"
# Call udevtrigger and udevsettle to do the device configuration:
/sbin/udevadm trigger $OPT && /sbin/udevadm settle --timeout=120
;;
stop)
echo "Stopping udevd"
if [ -e /proc/sys/kernel/hotplug ]; then
echo /sbin/hotplug > /proc/sys/kernel/hotplug
fi
killall udevd
;;
restart)
echo "Restarting udevd"
killall udevd
sleep 5
udevd --daemon
;;
reload)
echo "Reloading udev rules"
udevadm control --reload-rules
cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT
;;
force-reload)
echo "Updating all available device nodes in $UDEV_ROOT"
udevadm control --reload-rules
rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk
cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
;;
esac

View file

@ -0,0 +1,71 @@
#!/bin/sh
# rc.usb: search for USB devices needed for installation.
# This is a function to unload the USB modules:
usb_stop() {
modprobe -r usb-storage keybdev mousedev usbmouse hid usbkbd \
input uhci usb-uhci usb-ohci uhci-hcd ohci-hcd ehci-hcd 2> /dev/null
umount usbfs 2> /dev/null
modprobe -r usbcore 2> /dev/null
}
# This is a function to attempt to enable a USB keyboard,
# mouse, and storage (CD or hard drive).
# If this causes problems for you, use "nousb" as a kernel
# command line option at boot time.
usb_start() {
# If nousb was given at boot, skip.
if ! cat /proc/cmdline | grep nousb 1> /dev/null 2> /dev/null ; then
# If there aren't even any modules for this kernel, skip.
if [ -d /lib/modules/`uname -r` ]; then
# If usbcore is already loaded, skip.
if ! grep usbcore /proc/modules 1> /dev/null 2> /dev/null ; then
echo "Probing for USB controllers."
echo "(to skip, give a 'nousb' kernel option at boot)"
#sleep 5
modprobe -q usbcore >/dev/null 2>&1
# Try to mount usbfs:
if [ -d /proc/bus/usb -a ! -f /proc/bus/usb/devices ]; then
mount -t usbfs usbfs /proc/bus/usb
fi
# Try to load all the hub modules:
modprobe -q ehci-hcd >/dev/null 2>&1
modprobe -q ohci-hcd >/dev/null 2>&1
modprobe -q uhci-hcd >/dev/null 2>&1
modprobe -q usb-ohci >/dev/null 2>&1
# NOTE: this prefers "uhci"; you may prefer "usb-uhci".
#modprobe -q usb-uhci >/dev/null 2>&1 || modprobe -q uhci >/dev/null 2>&1
modprobe -q uhci >/dev/null 2>&1 || modprobe -q usb-uhci >/dev/null 2>&1
# Load input core:
modprobe -q input >/dev/null 2>&1
# Load USB keyboard:
modprobe -q usbkbd >/dev/null 2>&1
# Load Human Interface Device (HID) USB module:
modprobe -q hid >/dev/null 2>&1
# Load mouse (just in case (TM)) and keyboard USB input modules:
modprobe -q mousedev >/dev/null 2>&1
modprobe -q keybdev >/dev/null 2>&1
# Attempt to load storage support. Some funny USB ports (non-0 LUN) might not work
# so well, but most are well-behaved.
modprobe -q usb-storage >/dev/null 2>&1
fi
fi
fi
}
case "$1" in
'start')
usb_start
;;
'stop')
usb_stop
;;
'restart')
usb_stop
sleep 5
usb_start
;;
*)
echo "usage $0 start|stop|restart"
esac

View file

@ -0,0 +1,17 @@
#
# scsi_id configuration
#
# lower or upper case has no effect on the left side. Quotes (") are
# required for spaces in values. Model is the same as the SCSI
# INQUIRY product identification field. Per the SCSI INQUIRY, the vendor
# is limited to 8 bytes, model to 16 bytes.
#
# The first matching line found is used. Short matches match longer ones,
# if you do not want such a match space fill the extra bytes. If no model
# is specified, only the vendor string need match.
#
# options=<any scsi_id command line options>
# vendor=string[,model=string],options=<per-device scsi_id options>
# some libata drives require vpd page 0x80
vendor="ATA",options=-p 0x80

View file

@ -0,0 +1,20 @@
# This file defines which devices root can log in on.
# These are the ttys on the physical console:
console
tty1
tty2
tty3
tty4
tty5
tty6
# These are remote ttys, and uncommenting them might be less than fully secure:
ttyS0
ttyS1
ttyS2
ttyS3
#ttyp0
#ttyp1
#ttyp2
#ttyp3

View file

@ -0,0 +1,17 @@
root:joFWnPF2bJhPc:9797:0:::::
halt:*:9797:0:::::
operator:*:9797:0:::::
shutdown:*:9797:0:::::
sync:*:9797:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
man:*:9797:0:::::
games:*:9797:0:::::
guest:*:9797:0:::::
nobody:*:9797:0:::::

View file

@ -0,0 +1,2 @@
/bin/sh
/bin/bash

View file

@ -0,0 +1,4 @@
# Write any informational messages on virtual console 4:
*.=info;*.=notice /dev/tty4
*.=debug /dev/tty4
*.warn;*.err /dev/tty4

View file

@ -0,0 +1,238 @@
# [Slackware note: If you're looking for a big, full-featured termcap,
# use /etc/termcap-BSD instead ]
#
# From: miquels@drinkel.ow.org (Miquel van Smoorenburg)
#
# Okay guys, here is a shorter termcap that does have most
# capabilities and is ncurses compatible. If it works for you
# I'd like to hear about it.
#
# Some entries in termcap 2.0.7 are too long and your programs
# may complain "tgetent: warning: termcap entry too long". Here is
# a smaller termcap. But it may not cover as many terminals as the one
# in termcap 2.0.7. You can install it as /etc/termcap.
#
# termcap Termcap entries for the VT family.
# All termcap entries have been freed of the 'ks' and
# 'ke' entries, that put the keypad into applications
# mode. This is a generally misused entry, not ment
# for the vt100 "applications" mode. Now cursor and
# function keys will work in all programs.
#
# Also, there is a "generic" vt entry with common
# entries for all terminals, on which all other entries
# are built.
#
# Version: @(#) vt-termcap 1.37 12-Mar-1996 MvS
#
# Generic VT entry.
vg|vt-generic|Generic VT entries:\
:bs:mi:ms:pt:xn:xo:it#8:\
:RA=\E[?7l:SA=\E?7h:\
:bl=^G:cr=^M:ta=^I:\
:cm=\E[%i%d;%dH:\
:le=^H:up=\E[A:do=\E[B:nd=\E[C:\
:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:DO=\E[%dB:\
:ho=\E[H:cl=\E[H\E[2J:ce=\E[K:cb=\E[1K:cd=\E[J:sf=\ED:sr=\EM:\
:ct=\E[3g:st=\EH:\
:cs=\E[%i%d;%dr:sc=\E7:rc=\E8:\
:ei=\E[4l:ic=\E[@:IC=\E[%d@:al=\E[L:AL=\E[%dL:\
:dc=\E[P:DC=\E[%dP:dl=\E[M:DL=\E[%dM:\
:so=\E[7m:se=\E[m:us=\E[4m:ue=\E[m:\
:mb=\E[5m:mh=\E[2m:md=\E[1m:mr=\E[7m:me=\E[m:\
:sc=\E7:rc=\E8:kb=\177:\
:ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:
## Linux console. One should really set TERM=linux instead of TERM=console.
#lx|linux|console|con80x25|LINUX System Console:\
# :co#80:li#25:am:\
# :is=\E[m\E[?1l\E>\E[10m:\
# :rs=\E[m\E[?1l\E>\E[10m:\
# :ch=\E[%i%dG:cv=\E[%i%dd:\
# :eA=\E)0:as=^N:ae=^O:ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:\
# :ve=\E[?25h:vi=\E[?25l:\
# :se=\E[27m:ue=\E[24m:mh=\E[2m:\
# :ks=:ke=:\
# :kh=\E[1~:kH=\E[4~:kI=\E[2~:kD=\E[3~:kP=\E[5~:kN=\E[6~:\
# :k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:\
# :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:\
# :F1=\E[23~:F2=\E[24~:\
# :tc=vt-generic:
# Slackware 3.1 linux termcap entry (Sat Apr 27 23:03:58 CDT 1996):
lx|linux|console|con80x25|LINUX System Console:\
:do=^J:co#80:li#25:cl=\E[H\E[J:sf=\ED:sb=\EM:\
:le=^H:bs:am:cm=\E[%i%d;%dH:nd=\E[C:up=\E[A:\
:ce=\E[K:cd=\E[J:so=\E[7m:se=\E[27m:us=\E[36m:ue=\E[m:\
:md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:is=\E[1;25r\E[25;1H:\
:ll=\E[1;25r\E[25;1H:al=\E[L:dc=\E[P:dl=\E[M:\
:it#8:ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:kb=^H:ti=\E[r\E[H:\
:ho=\E[H:kP=\E[5~:kN=\E[6~:kH=\E[4~:kh=\E[1~:kD=\E[3~:kI=\E[2~:\
:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:\
:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:K1=\E[1~:K2=\E[5~:\
:K4=\E[4~:K5=\E[6~:\
:pt:sr=\EM:vt#3:xn:km:bl=^G:vi=\E[?25l:ve=\E[?25h:vs=\E[?25h:\
:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:\
:r1=\Ec:r2=\Ec:r3=\Ec:
# Some other, commonly used linux console entries.
lx|con80x28:co#80:li#28:tc=linux:
lx|con80x43:co#80:li#43:tc=linux:
lx|con80x50:co#80:li#50:tc=linux:
lx|con100x37:co#100:li#37:tc=linux:
lx|con100x40:co#100:li#40:tc=linux:
lx|con132x43:co#132:li#43:tc=linux:
# vt102 - vt100 + insert line etc. VT102 does not have insert character.
v2|vt102|DEC vt102 compatible:\
:co#80:li#24:\
:ic@:IC@:\
:is=\E[m\E[?1l\E>:\
:rs=\E[m\E[?1l\E>:\
:eA=\E)0:as=^N:ae=^O:ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:\
:ks=:ke=:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
:tc=vt-generic:
# vt100 - really vt102 without insert line, insert char etc.
vt|vt100|DEC vt100 compatible:\
:im@:mi@:al@:dl@:ic@:dc@:AL@:DL@:IC@:DC@:\
:tc=vt102:
# Standard vt320 (based on my own digital vt320)
v3|vt320|DEC vt320:\
:co#80:li#24:hs:es:\
:is=\E[m\E[2$~\E[?1l\E>:\
:rs=\E[m\E[?1l\E>:\
:ve=\E[?25h:vi=\E[?25l:\
:se=\E[27m:ue=\E[24m:mh=\E[2m:\
:eA=\E)0:as=^N:ae=^O:ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:\
:ts=\E[1$}\E[1;%i%dH:fs=\E[0$}:ds=\E[1$}\r\E[m\E[K\E[0$}:\
:ks=:ke=:\
:kI=\E[2~:kD=\E[3~:kP=\E[5~:kN=\E[6~:\
:@4=\E[29~:@0=\E[1~:*6=\E[4~:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[16~\
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:\
:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
:F6=\E[29~:F7=\E[31~:F8=\E[32~:\
:tc=vt-generic:
v8|vt320-8|DEC vt320 in 8-bit mode:\
:kI=\2332~:kD=\2333~:kP=\2335~:kN=\2336~:\
:@4=\23329~:@0=\2331~:*6=\2334~:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\23316~\
:k6=\23317~:k7=\23318~:k8=\23319~:k9=\23320~:k0=\23321~:\
:F1=\23323~:F2=\23324~:F3=\23325~:F4=\23326~:F5=\23328~:\
:F6=\23329~:F7=\23331~:F8=\23332~:\
:ku=\233A:kd=\233B:kr=\233C:kl=\233D:\
:tc=vt320:
# Entry for minicom so it uses the PC (IBM) character set.
# If this doesn't work for kernels between 1.1.18 and 1.1.80,
# change \E(U -> \E[11m (enter ANSI mode)
# and \E(B -> \E[10m (leave ANSI mode)
mc|minicom|ansi-mc|termcap entry for minicom on the console:\
:is=\E[m\E>\E(U:\
:rs=\E[m\E>\E(B:\
:as@:ae@:eA@:ac@:\
:bl=\E(B\007\E(U:\
:vb=\E(B\007\E(U:\
:tc=linux:
# Entry for an xterm. Insert mode has been disabled.
vs|xterm|xterm-color|vs100|xterm terminal emulator (X Window System):\
:am:bs:mi@:km:co#80:li#55:\
:im@:ei@:\
:ct=\E[3k:ue=\E[m:\
:is=\E[m\E[?1l\E>:\
:rs=\E[m\E[?1l\E>:\
:eA=\E)0:as=^N:ae=^O:ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:\
:kI=\E[2~:kD=\177:kP=\E[5~:kN=\E[6~:\
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:\
:F1=\E[23~:F2=\E[24~:\
:kh=\E[H:kH=\EOw:\
:ks=:ke=:\
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\
:tc=vt-generic:
# Some other entries for the same xterm.
v2|xterms|vs100s|xterm small window:\
:co#80:li#24:tc=xterm:
vb|xterm-bold|xterm with bold instead of underline:\
:us=\E[1m:tc=xterm:
vi|xterm-ins|xterm with insert mode:\
:mi:im=\E[4h:ei=\E[4l:tc=xterm:
Eterm|Eterm Terminal Emulator (X11 Window System):\
:am:bw:eo:km:mi:ms:xn:xo:\
:co#80:it#8:li#24:lm#0:pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39m\E[49m:\
:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
:K1=\E[7~:K2=\EOu:K3=\E[5~:K4=\E[8~:K5=\E[6~:LE=\E[%dD:\
:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
:ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E>\E[?1l:ic=\E[@:\
:im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=:kh=\E[7~:\
:kl=\E[D:kr=\E[C:ks=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:\
:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
:ac=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:
# DOS terminal emulator such as Telix or TeleMate.
# This probably also works for the SCO console, though it's incomplete.
an|ansi|ansi-bbs|ANSI terminals (emulators):\
:co#80:li#24:am:\
:is=:rs=\Ec:kb=^H:\
:as=\E[m:ae=:eA=:\
:ac=0\333+\257,\256.\031-\030a\261f\370g\361j\331k\277l\332m\300n\305q\304t\264u\303v\301w\302x\263~\025:\
:kD=\177:kH=\E[Y:kN=\E[U:kP=\E[V:kh=\E[H:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\
:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k0=\EOY:\
:tc=vt-generic:
# This seems to be an entry for other x86 based unices.
at|at386-m|386AT-M|386at-m|at/386 console:\
:am:bw:eo:xt:co#80:li#25:\
:ae=\E[10m:as=\E[12m:\
:is=\E[0;10;38m:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\
:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
:kh=\E[H:us=\E[4m:vb=^G:nl=\E[B:kb=^H:\
:tc=vt-generic:
# Yeah - Minix still lives :)
ma|minix|minix-am|minix-vcam|MINIX 1.5 Virtual Console:\
:am:bs:co#80:li#25:km:ms:\
:is=\E[0m\EPlinewrap.on\E\\:\
:rs=\Ec\EPlinewrap.on\E\\:\
:as=:ae=:eA=:\
:ac=0\333+\257,\256.\031-\030a\261f\370g\361j\331k\277l\332m\300n\305q\304t\264u\303v\301w\302x\263~\025:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\
:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k0=\EOY:\
:kD=\177:kH=\E[Y:kN=\E[U:kP=\E[V:kh=\E[H:kb=^H:\
:ve=\EPcursor.on\E\\:vi=\EPcursor.off\E\\:\
:tc=vt-generic:
# Some obligatory historic entries.
sa|network|ethernet|arpanet:co#80:os:am:
su|dumb|un|unknown:co#80:os:am:
sd|du|dialup:co#80:os:am:
t7|37|tty37|model 37 teletype:\
:cr=^M:do=^J:nl=^J:bl=^G:le=^H:bs:hc:hu=\E8:hd=\E9:up=\E7:os:
# Yes, there really are people that login from a Sun Console.
mu|sun|Sun Microsystems Workstation console:\
:am:bs:km:mi:ms:pt:\
:li#34:co#80:cl=^L:cm=\E[%i%d;%dH:nd=\E[C:up=\E[A:\
:ce=\E[K:cd=\E[J:so=\E[7m:se=\E[m:\
:kd=\E[B:kl=\E[D:ku=\E[A:kr=\E[C:kh=\E[H:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
:al=\E[L:dl=\E[M:im=:ei=:ic=\E[@:dc=\E[P:\
:rs=\E[s:

View file

@ -0,0 +1 @@
sbin/init

View file

@ -0,0 +1,5 @@
...don't go mounting your source partition(s) here. This directory is used
by 'setup' to mount your target partition(s). If you need to mount something,
make your own directory.

View file

@ -0,0 +1 @@
/var/log/mount

View file

@ -0,0 +1 @@
/etc/motd

View file

@ -0,0 +1,19 @@
#!/bin/sh
#
# /sbin/brc (whatever that means ;)
# This script gets run just before the system is down.
#
cat << EOF
The system is rebooting NOW!
Syncing disks...
EOF
/bin/sync
echo
echo "Unmounting file systems... "
/bin/umount -a 1> /dev/null 2> /dev/null
echo
sleep 2
/sbin/reboot -f

View file

@ -0,0 +1,5 @@
#!/bin/sh
cfdisk.bin $*
if [ -x /dev/makedevs.sh ]; then
/dev/makedevs.sh
fi

View file

@ -0,0 +1,4 @@
if [ -r /.today ]; then
date -s yesterday 1> /dev/null 2> /dev/null
rm -f /.today
fi

View file

@ -0,0 +1,5 @@
#!/bin/sh
fdisk.bin $*
if [ -x /dev/makedevs.sh ]; then
/dev/makedevs.sh
fi

View file

@ -0,0 +1,4 @@
if [ ! -r /.today ]; then
date -s tomorrow 1> /dev/null 2> /dev/null
touch /.today
fi

View file

@ -0,0 +1,438 @@
#!/bin/sh
# This is 'probe', a wrapper for using fdisk to gather drive info for
# the Slackware setup scripts. I hate to bounce this much garbage through
# a tmpdir, but it looks like large variables can make ash crash...
# Many thanks to Vincent Rivellino for contributing the patches to support
# Mylex and Compaq RAID controllers.
# Regularize output that will be parsed:
unset LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
LC_IDENTIFICATION LC_ALL
LANG=C
export LANG
TMP=/var/log/setup/tmp
# Use cached results if they exist and /proc/partitions has not changed:
if [ -r $TMP/SeTpartition.md5 -a -r $TMP/SeTfdisk ]; then
if [ "$(cat $TMP/SeTpartition.md5)" = "$(md5sum /proc/partitions)" ]; then
cat $TMP/SeTfdisk
exit 0
fi
fi
# First run, or /proc/partitions has changed.
# Make a checksum for later comparison:
md5sum /proc/partitions > $TMP/SeTpartition.md5
# Wipe any previously existing results:
rm -f $TMP/SeTfdisk
# listide major minor hd1 hd2 (2 base devs for major)
list_ide() {
if [ "$2" = "0" ]; then
fdisk -l /dev/$3 >> $TMP/SeTfdisk
elif [ "$2" = "64" ]; then
fdisk -l /dev/$4 >> $TMP/SeTfdisk
fi
}
list_scsi() {
# find drive # 0 - 15
DRV=`expr $1 / 16`
NUM=`expr $1 % 16`
if [ ! "$NUM" = "0" ]; then
return
fi
if [ "$DRV" = "0" ]; then
fdisk -l /dev/sda >> $TMP/SeTfdisk
elif [ "$DRV" = "1" ]; then
fdisk -l /dev/sdb >> $TMP/SeTfdisk
elif [ "$DRV" = "2" ]; then
fdisk -l /dev/sdc >> $TMP/SeTfdisk
elif [ "$DRV" = "3" ]; then
fdisk -l /dev/sdd >> $TMP/SeTfdisk
elif [ "$DRV" = "4" ]; then
fdisk -l /dev/sde >> $TMP/SeTfdisk
elif [ "$DRV" = "5" ]; then
fdisk -l /dev/sdf >> $TMP/SeTfdisk
elif [ "$DRV" = "6" ]; then
fdisk -l /dev/sdg >> $TMP/SeTfdisk
elif [ "$DRV" = "7" ]; then
fdisk -l /dev/sdh >> $TMP/SeTfdisk
elif [ "$DRV" = "8" ]; then
fdisk -l /dev/sdi >> $TMP/SeTfdisk
elif [ "$DRV" = "9" ]; then
fdisk -l /dev/sdj >> $TMP/SeTfdisk
elif [ "$DRV" = "10" ]; then
fdisk -l /dev/sdk >> $TMP/SeTfdisk
elif [ "$DRV" = "11" ]; then
fdisk -l /dev/sdl >> $TMP/SeTfdisk
elif [ "$DRV" = "12" ]; then
fdisk -l /dev/sdm >> $TMP/SeTfdisk
elif [ "$DRV" = "13" ]; then
fdisk -l /dev/sdn >> $TMP/SeTfdisk
elif [ "$DRV" = "14" ]; then
fdisk -l /dev/sdo >> $TMP/SeTfdisk
elif [ "$DRV" = "15" ]; then
fdisk -l /dev/sdp >> $TMP/SeTfdisk
fi
}
# List Mylex RAID device
list_rd() {
# find drive
DRV=`expr $2 / 8`
NUM=`expr $2 % 8`
if [ ! "$NUM" = "0" ]; then
return
fi
fdisk -l /dev/rd/c$1d$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/rd/c$1d$DRV >> $TMP/SeTfdisk
}
# List Cpq SMART/2 RAID device
list_ida() {
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ ! "$NUM" = "0" ]; then
return
fi
fdisk -l /dev/ida/c$1d$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/ida/c$1d$DRV >> $TMP/SeTfdisk
}
list_cciss() {
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ ! "$NUM" = "0" ]; then
return
fi
fdisk -l /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk
}
list_ataraid() {
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ "$NUM" = "0" ]; then
fdisk -l /dev/ataraid/d$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/ataraid/d$DRV >> $TMP/SeTfdisk
else
return
fi
}
list_amiraid() {
# find drive
DRV=`expr $2 / 16`
NUM=`expr $2 % 16`
if [ "$NUM" = "0" ]; then
fdisk -l /dev/amiraid/ar$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/amiraid/ar$DRV >> $TMP/SeTfdisk
else
return
fi
}
list_mmc() {
# find drive
DRV=`expr $2 / 8`
NUM=`expr $2 % 8`
if [ "$NUM" = "0" ]; then
fdisk -l /dev/mmcblk$DRV >> $TMP/SeTfdisk
#output_gpt_partitions /dev/mmcblk$DRV >> $TMP/SeTfdisk
else
return
fi
}
list_nvme() {
fdisk -l | grep $1 >> $TMP/SeTfdisk 2> /dev/null
}
is_swap() {
HEADER=$(dd if="$1" bs=1 skip=4086 count=10 2>/dev/null | strings)
if [ "$HEADER" = "SWAPSPACE2" -o "$HEADER" = "SWAP_SPACE" ]; then
return 0
else
return 1
fi
}
list_md() {
if ( is_swap "/dev/$2" ); then TYPE="Linux swap"; else TYPE="Linux"; fi
echo "/dev/$2 1 2 $1 kk $TYPE" >> $TMP/SeTfdisk
}
list_lvm() {
lvscan 2>/dev/null | grep "ACTIVE" | while read line ; do
SMASHED_LINE=$line
if [ "$SMASHED_LINE" = "" ]; then
break;
fi
DEV=`echo $SMASHED_LINE | cut -f2 -d"'"`
SIZE=`lvdisplay $DEV -C --units k --noheadings --separator : | cut -f4 -d':' | sed -e 's/^\([0-9]*\)[^0-9].*/\1/'`
TYPE="Linux"
if ( is_swap "$DEV" ); then TYPE="Linux swap"; fi
echo "$DEV 0 0 $SIZE lv $TYPE" >> $TMP/SeTfdisk
done
}
# List any volumes created by cryptsetup
list_crypt() {
for i in $(ls /dev/mapper/); do
if cryptsetup status $i 2>/dev/null | grep "is active" 1>/dev/null ; then
DEV=$(cryptsetup status $i 2>/dev/null | grep "is active" | cut -f1 -d' ')
SIZE=$(fdisk -s $(cryptsetup status $i 2>/dev/null | grep "device:" | cut -f2 -d: | tr -d ' '))
echo "$DEV 0 0 $SIZE lc Linux" >> $TMP/SeTfdisk
fi
done
}
# List virtual partitions
list_virt() {
fdisk -l /dev/$1 >> $TMP/SeTfdisk
#output_gpt_partitions /dev/$1 >> $TMP/SeTfdisk
}
output_gpt_partitions() {
# First, make sure the device is GPT:
if fdisk -l $1 2> /dev/null | grep -wq -e "GPT" -e "Disklabel type: gpt" ; then
unset output
# In the case of some RAID device like Mylex we will need to delimit the
# partition number. We will set a partition delimiter variable P set
# either to an empty string (default) or the needed delimiter.
TESTRAID="$(echo $1 | cut -f 2 -d /)"
case "$TESTRAID" in
'amiraid' )
P="p"
;;
'ataraid' )
P="p"
;;
'cciss' )
P="p"
;;
'ida' )
P="p"
;;
'rd' )
P="p"
;;
*)
P=""
;;
esac
gdisk -l $1 | tr -d '*' | while read parse ; do
if [ ! -z $output ]; then
line=$parse
if [ ! "$(echo $line | cut -b1)" = "" ]; then
gptpartition=${1}${P}$(echo $line | cut -f 1 -d ' ')
gpttype="$(echo $line | cut -f 6 -d ' ')"
if [ "$gpttype" = "8200" ]; then
fdisktype="Linux swap"
elif [ "$gpttype" = "0700" ]; then
if dd if=$gptpartition bs=1K count=1 2> /dev/null | grep -wq NTFS ; then
fdisktype="HPFS/NTFS"
elif dd if=$gptpartition bs=1K count=1 2> /dev/null | grep -wq EXFAT ; then
fdisktype="exFAT"
else
fdisktype="W95 FAT32"
fi
elif [ "$gpttype" = "AF00" ]; then
fdisktype="HFS+"
elif [ "$gpttype" = "EF00" ]; then
fdisktype="EFI System Partition"
elif [ "$gpttype" = "8300" ]; then
fdisktype=Linux
else
fdisktype="Unknown hex code $gpttype"
fi
sectorsize="$(gdisk -l $1 | tr -d '*' | grep "Logical sector size" | cut -f 2 -d : | cut -f 2 -d ' ')"
gptstart="$(expr $(echo $line | cut -f 2 -d ' ') \* $sectorsize / 1024)"
gptend="$(expr $(echo $line | cut -f 3 -d ' ') \* $sectorsize / 1024)"
gptsize="$(expr $gptend - $gptstart)"
echo $gptpartition $gptstart $gptend $gptsize $gpttype $fdisktype
fi
fi
if echo $parse | grep -q "^Number" ; then
output=true
fi
done
fi
}
list_scsi_gpt() {
# find drive # 0 - 15
DRV=`expr $1 / 16`
NUM=`expr $1 % 16`
if [ ! "$NUM" = "0" ]; then
return
fi
if [ "$DRV" = "0" ]; then
output_gpt_partitions /dev/sda
elif [ "$DRV" = "1" ]; then
output_gpt_partitions /dev/sdb
elif [ "$DRV" = "2" ]; then
output_gpt_partitions /dev/sdc
elif [ "$DRV" = "3" ]; then
output_gpt_partitions /dev/sdd
elif [ "$DRV" = "4" ]; then
output_gpt_partitions /dev/sde
elif [ "$DRV" = "5" ]; then
output_gpt_partitions /dev/sdf
elif [ "$DRV" = "6" ]; then
output_gpt_partitions /dev/sdg
elif [ "$DRV" = "7" ]; then
output_gpt_partitions /dev/sdh
elif [ "$DRV" = "8" ]; then
output_gpt_partitions /dev/sdi
elif [ "$DRV" = "9" ]; then
output_gpt_partitions /dev/sdj
elif [ "$DRV" = "10" ]; then
output_gpt_partitions /dev/sdk
elif [ "$DRV" = "11" ]; then
output_gpt_partitions /dev/sdl
elif [ "$DRV" = "12" ]; then
output_gpt_partitions /dev/sdm
elif [ "$DRV" = "13" ]; then
output_gpt_partitions /dev/sdn
elif [ "$DRV" = "14" ]; then
output_gpt_partitions /dev/sdo
elif [ "$DRV" = "15" ]; then
output_gpt_partitions /dev/sdp
fi
}
# List the LVM volumes:
list_lvm
# List CRYPT volumes:
list_crypt
## This is obsolete, since fdisk handles GPT now.
## List GPT partitions:
#cat /proc/partitions | while read line ; do
# SMASHED_LINE=$line
# MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
# MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
# if [ "$MAJOR" = "8" ]; then
# list_scsi_gpt $MINOR
# fi
#done
# Other partitions:
if cat /proc/partitions | grep -E '/|[0-9]' 1>/dev/null 2>/dev/null ; then # new
cat /proc/partitions | grep -E '/|[0-9]' | while read line ; do
SMASHED_LINE=$line
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '`
if [ "$MAJOR" = "3" ]; then
list_ide $MAJOR $MINOR hda hdb
elif [ "$MAJOR" = "8" ]; then
list_scsi $MINOR
elif [ "$MAJOR" = "9" ]; then
list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
`echo $SMASHED_LINE | cut -f 4 -d ' '`
elif [ "$MAJOR" = "22" ]; then
list_ide $MAJOR $MINOR hdc hdd
elif [ "$MAJOR" = "33" ]; then
list_ide $MAJOR $MINOR hde hdf
elif [ "$MAJOR" = "34" ]; then
list_ide $MAJOR $MINOR hdg hdh
elif [ "$MAJOR" = "48" ]; then
list_rd 0 $MINOR
elif [ "$MAJOR" = "49" ]; then
list_rd 1 $MINOR
elif [ "$MAJOR" = "50" ]; then
list_rd 2 $MINOR
elif [ "$MAJOR" = "51" ]; then
list_rd 3 $MINOR
elif [ "$MAJOR" = "52" ]; then
list_rd 4 $MINOR
elif [ "$MAJOR" = "53" ]; then
list_rd 5 $MINOR
elif [ "$MAJOR" = "54" ]; then
list_rd 6 $MINOR
elif [ "$MAJOR" = "55" ]; then
list_rd 7 $MINOR
elif [ "$MAJOR" = "56" ]; then
list_ide $MAJOR $MINOR hdi hdj
elif [ "$MAJOR" = "57" ]; then
list_ide $MAJOR $MINOR hdk hdl
elif [ "$MAJOR" = "72" ]; then
list_ida 0 $MINOR
elif [ "$MAJOR" = "73" ]; then
list_ida 1 $MINOR
elif [ "$MAJOR" = "74" ]; then
list_ida 2 $MINOR
elif [ "$MAJOR" = "75" ]; then
list_ida 3 $MINOR
elif [ "$MAJOR" = "76" ]; then
list_ida 4 $MINOR
elif [ "$MAJOR" = "77" ]; then
list_ida 5 $MINOR
elif [ "$MAJOR" = "78" ]; then
list_ida 6 $MINOR
elif [ "$MAJOR" = "79" ]; then
list_ida 7 $MINOR
elif [ "$MAJOR" = "80" ]; then
list_ide $MAJOR $MINOR hdm hdn
elif [ "$MAJOR" = "89" ]; then
list_ide $MAJOR $MINOR hdo hdp
elif [ "$MAJOR" = "90" ]; then
list_ide $MAJOR $MINOR hdq hdr
elif [ "$MAJOR" = "91" ]; then
list_ide $MAJOR $MINOR hds hdt
elif [ "$MAJOR" = "101" ]; then
list_amiraid $MAJOR $MINOR
elif [ "$MAJOR" = "104" \
-o "$MAJOR" = "105" \
-o "$MAJOR" = "106" \
-o "$MAJOR" = "107" \
-o "$MAJOR" = "108" \
-o "$MAJOR" = "109" \
-o "$MAJOR" = "110" \
-o "$MAJOR" = "111" ]; then
list_cciss $(( $MAJOR - 104 )) $MINOR
elif [ "$MAJOR" = "114" ]; then
list_ataraid $MAJOR $MINOR
elif [ "$MAJOR" = "179" ]; then
list_mmc $MAJOR $MINOR
elif [ "$MAJOR" = "259" ]; then
if echo $line | grep -q p; then
list_nvme $DEVNAME
fi
elif [ $(expr $DEVNAME : 'x\?vd[^0-9]*$') -ne 0 ]; then
# The virtio devices have no set major dev number, so we have to search
# by name. Matches full drive names for KVM/lguest (vda) and Xen (xvda).
list_virt $DEVNAME
fi
done
else # old format and no RAID:
if cat /proc/partitions | grep md 1> /dev/null 2> /dev/null ; then
cat /proc/partitions | grep md | while read line ; do
SMASHED_LINE=$line
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
if [ "$MAJOR" = "9" ]; then
list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
`echo $SMASHED_LINE | cut -f 4 -d ' '`
fi
done
fi
fdisk -l 2> /dev/null >> $TMP/SeTfdisk
fi
# Change the names to be the same as what the old fdisk used:
sed -i -e "s/Linux filesystem/Linux/g" $TMP/SeTfdisk
sed -i -e "s/EFI System/EFI System Partition/g" $TMP/SeTfdisk
sed -i -e "s,EFI (FAT-12/16/32),EFI System Partition,g" $TMP/SeTfdisk
cat $TMP/SeTfdisk

View file

@ -0,0 +1,755 @@
#!/bin/bash
# Skript to rescan SCSI bus, using the
# scsi add-single-device mechanism
# (c) 1998--2010 Kurt Garloff <kurt@garloff.de>, GNU GPL v2 or v3
# (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later
# $Id: rescan-scsi-bus.sh,v 1.56 2012/01/14 22:23:53 garloff Exp $
SCAN_WILD_CARD=4294967295
setcolor ()
{
red="\e[0;31m"
green="\e[0;32m"
yellow="\e[0;33m"
bold="\e[0;1m"
norm="\e[0;0m"
}
unsetcolor ()
{
red=""; green=""
yellow=""; norm=""
}
# Output some text and return cursor to previous position
# (only works for simple strings)
# Stores length of string in LN and returns it
print_and_scroll_back ()
{
STRG="$1"
LN=${#STRG}
BK=""
declare -i cntr=0
while test $cntr -lt $LN; do BK="$BK\e[D"; let cntr+=1; done
echo -en "$STRG$BK"
return $LN
}
# Overwrite a text of length $1 (fallback to $LN) with whitespace
white_out ()
{
BK=""; WH=""
if test -n "$1"; then LN=$1; fi
declare -i cntr=0
while test $cntr -lt $LN; do BK="$BK\e[D"; WH="$WH "; let cntr+=1; done
echo -en "$WH$BK"
}
# Return hosts. sysfs must be mounted
findhosts_26 ()
{
hosts=`find /sys/class/scsi_host/host* -maxdepth 4 -type d -o -type l 2> /dev/null | awk -F'/' '{print $5}' | sed -e 's~host~~' | sort -nu`
scsi_host_data=`echo "$hosts" | sed -e 's~^~/sys/class/scsi_host/host~'`
for hostdir in $scsi_host_data; do
hostno=${hostdir#/sys/class/scsi_host/host}
if [ -f $hostdir/isp_name ] ; then
hostname="qla2xxx"
elif [ -f $hostdir/lpfc_drvr_version ] ; then
hostname="lpfc"
else
hostname=`cat $hostdir/proc_name`
fi
#hosts="$hosts $hostno"
echo "Host adapter $hostno ($hostname) found."
done
if [ -z "$hosts" ] ; then
echo "No SCSI host adapters found in sysfs"
exit 1;
fi
# Not necessary just use double quotes around variable to preserve new lines
#hosts=`echo $hosts | tr ' ' '\n'`
}
# Return hosts. /proc/scsi/HOSTADAPTER/? must exist
findhosts ()
{
hosts=
for driverdir in /proc/scsi/*; do
driver=${driverdir#/proc/scsi/}
if test $driver = scsi -o $driver = sg -o $driver = dummy -o $driver = device_info; then continue; fi
for hostdir in $driverdir/*; do
name=${hostdir#/proc/scsi/*/}
if test $name = add_map -o $name = map -o $name = mod_parm; then continue; fi
num=$name
driverinfo=$driver
if test -r $hostdir/status; then
num=$(printf '%d\n' `sed -n 's/SCSI host number://p' $hostdir/status`)
driverinfo="$driver:$name"
fi
hosts="$hosts $num"
echo "Host adapter $num ($driverinfo) found."
done
done
}
printtype ()
{
local type=$1
case "$type" in
0) echo "Direct-Access " ;;
1) echo "Sequential-Access" ;;
2) echo "Printer " ;;
3) echo "Processor " ;;
4) echo "WORM " ;;
5) echo "CD-ROM " ;;
6) echo "Scanner " ;;
7) echo "Optical Device " ;;
8) echo "Medium Changer " ;;
9) echo "Communications " ;;
10) echo "Unknown " ;;
11) echo "Unknown " ;;
12) echo "RAID " ;;
13) echo "Enclosure " ;;
14) echo "Direct-Access-RBC" ;;
*) echo "Unknown " ;;
esac
}
print02i()
{
if [ "$1" = "*" ] ; then
echo "00"
else
printf "%02i" "$1"
fi
}
# Get /proc/scsi/scsi info for device $host:$channel:$id:$lun
# Optional parameter: Number of lines after first (default = 2),
# result in SCSISTR, return code 1 means empty.
procscsiscsi ()
{
if test -z "$1"; then LN=2; else LN=$1; fi
CHANNEL=`print02i "$channel"`
ID=`print02i "$id"`
LUN=`print02i "$lun"`
if [ -d /sys/class/scsi_device ]; then
SCSIPATH="/sys/class/scsi_device/${host}:${channel}:${id}:${lun}"
if [ -d "$SCSIPATH" ] ; then
SCSISTR="Host: scsi${host} Channel: $CHANNEL Id: $ID Lun: $LUN"
if [ "$LN" -gt 0 ] ; then
IVEND=$(cat ${SCSIPATH}/device/vendor)
IPROD=$(cat ${SCSIPATH}/device/model)
IPREV=$(cat ${SCSIPATH}/device/rev)
SCSIDEV=$(printf ' Vendor: %-08s Model: %-16s Rev: %-4s' "$IVEND" "$IPROD" "$IPREV")
SCSISTR="$SCSISTR
$SCSIDEV"
fi
if [ "$LN" -gt 1 ] ; then
ILVL=$(cat ${SCSIPATH}/device/scsi_level)
type=$(cat ${SCSIPATH}/device/type)
ITYPE=$(printtype $type)
SCSITMP=$(printf ' Type: %-16s ANSI SCSI revision: %02d' "$ITYPE" "$((ILVL - 1))")
SCSISTR="$SCSISTR
$SCSITMP"
fi
else
return 1
fi
else
grepstr="scsi$host Channel: $CHANNEL Id: $ID Lun: $LUN"
SCSISTR=`cat /proc/scsi/scsi | grep -A$LN -e"$grepstr"`
fi
if test -z "$SCSISTR"; then return 1; else return 0; fi
}
# Find sg device with 2.6 sysfs support
sgdevice26 ()
{
if test -e /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic; then
SGDEV=`readlink /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic`
SGDEV=`basename $SGDEV`
else
for SGDEV in /sys/class/scsi_generic/sg*; do
DEV=`readlink $SGDEV/device`
if test "${DEV##*/}" = "$host:$channel:$id:$lun"; then
SGDEV=`basename $SGDEV`; return
fi
done
SGDEV=""
fi
}
# Find sg device with 2.4 report-devs extensions
sgdevice24 ()
{
if procscsiscsi 3; then
SGDEV=`echo "$SCSISTR" | grep 'Attached drivers:' | sed 's/^ *Attached drivers: \(sg[0-9]*\).*/\1/'`
fi
}
# Find sg device that belongs to SCSI device $host $channel $id $lun
# and return in SGDEV
sgdevice ()
{
SGDEV=
if test -d /sys/class/scsi_device; then
sgdevice26
else
DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
repdevstat=$((1-$?))
if [ $repdevstat = 0 ]; then
echo "scsi report-devs 1" >/proc/scsi/scsi
DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
if [ $? = 1 ]; then return; fi
fi
if ! `echo $DRV | grep 'drivers: sg' >/dev/null`; then
modprobe sg
fi
sgdevice24
if [ $repdevstat = 0 ]; then
echo "scsi report-devs 0" >/proc/scsi/scsi
fi
fi
}
# Test if SCSI device is still responding to commands
testonline ()
{
: testonline
RC=0
if test ! -x /usr/bin/sg_turs; then return 0; fi
sgdevice
if test -z "$SGDEV"; then return 0; fi
sg_turs /dev/$SGDEV >/dev/null 2>&1
RC=$?
# Handle in progress of becoming ready and unit attention -- wait at max 11s
declare -i ctr=0
if test $RC = 2 -o $RC = 6; then
RMB=`sg_inq /dev/$SGDEV | grep 'RMB=' | sed 's/^.*RMB=\(.\).*$/\1/'`
print_and_scroll_back "$host:$channel:$id:$lun $SGDEV ($RMB) "
fi
while test $RC = 2 -o $RC = 6 && test $ctr -le 8; do
if test $RC = 2 -a "$RMB" != "1"; then echo -n "."; let $LN+=1; sleep 1
else usleep 20000; fi
let ctr+=1
sg_turs /dev/$SGDEV >/dev/null 2>&1
RC=$?
done
if test $ctr != 0; then white_out; fi
# echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n"
if test $RC = 1; then return $RC; fi
# Reset RC (might be !=0 for passive paths)
RC=0
# OK, device online, compare INQUIRY string
INQ=`sg_inq $sg_len_arg /dev/$SGDEV 2>/dev/null`
IVEND=`echo "$INQ" | grep 'Vendor identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
IPROD=`echo "$INQ" | grep 'Product identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
IPREV=`echo "$INQ" | grep 'Product revision level:' | sed 's/^[^:]*: \(.*\)$/\1/'`
STR=`printf " Vendor: %-08s Model: %-16s Rev: %-4s" "$IVEND" "$IPROD" "$IPREV"`
IPTYPE=`echo "$INQ" | sed -n 's/.* Device_type=\([0-9]*\) .*/\1/p'`
IPQUAL=`echo "$INQ" | sed -n 's/ *PQual=\([0-9]*\) Device.*/\1/p'`
if [ "$IPQUAL" != 0 ] ; then
echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}LU not available (PQual $IPQUAL)${norm} \n\n\n"
return 2
fi
TYPE=$(printtype $IPTYPE)
procscsiscsi
TMPSTR=`echo "$SCSISTR" | grep 'Vendor:'`
if [ "$TMPSTR" != "$STR" ]; then
echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${SCSISTR#* } \nto: $STR ${norm} \n\n\n"
return 1
fi
TMPSTR=`echo "$SCSISTR" | sed -n 's/.*Type: *\(.*\) *ANSI.*/\1/p'`
if [ $TMPSTR != $TYPE ] ; then
echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR} \nto: $TYPE ${norm} \n\n\n"
return 1
fi
return $RC
}
# Test if SCSI device $host $channen $id $lun exists
# Outputs description from /proc/scsi/scsi (unless arg passed)
# Returns SCSISTR (empty if no dev)
testexist ()
{
: testexist
SCSISTR=
if procscsiscsi && test -z "$1"; then
echo "$SCSISTR" | head -n1
echo "$SCSISTR" | tail -n2 | pr -o4 -l1
fi
}
# Returns the list of existing channels per host
chanlist ()
{
local hcil
local cil
local chan
local tmpchan
for dev in /sys/class/scsi_device/${host}:* ; do
[ -d $dev ] || continue;
hcil=${dev##*/}
cil=${hcil#*:}
chan=${cil%%:*}
for tmpchan in $channelsearch ; do
if test "$chan" -eq $tmpchan ; then
chan=
fi
done
if test -n "$chan" ; then
channelsearch="$channelsearch $chan"
fi
done
if test -z "$channelsearch"; then channelsearch="0"; fi
}
# Returns the list of existing targets per host
idlist ()
{
local hcil
local cil
local il
local target
local tmpid
for dev in /sys/class/scsi_device/${host}:${channel}:* ; do
[ -d $dev ] || continue;
hcil=${dev##*/}
cil=${hcil#*:}
il=${cil#*:}
target=${il%%:*}
for tmpid in $idsearch ; do
if test "$target" -eq $tmpid ; then
target=
break
fi
done
if test -n "$target" ; then
idsearch="$idsearch $target"
fi
done
}
# Returns the list of existing LUNs from device $host $channel $id $lun
# and returns list to stdout
getluns()
{
sgdevice
if test -z "$SGDEV"; then return 1; fi
if test ! -x /usr/bin/sg_luns; then echo 0; return 1; fi
LLUN=`sg_luns /dev/$SGDEV 2>/dev/null | sed -n 's/ \(.*\)/\1/p'`
if test $? != 0; then echo 0; return 1; fi
#echo "$LLUN" | sed -n 's/.*lun=\(.*\)/\1/p'
for lun in $LLUN ; do
# Swap LUN number
l0=$(printf '%u' 0x$lun)
l1=$(( ($l0 >> 48) & 0xffff ))
l2=$(( ($l0 >> 32) & 0xffff ))
l3=$(( ($l0 >> 16) & 0xffff ))
l4=$(( $l0 & 0xffff ))
l0=$(( ( ( ($l4 * 0xffff) + $l3 ) * 0xffff + $l2 ) * 0xffff + $l1 ))
printf "%u\n" $l0
done
return 0
}
# Wait for udev to settle (create device nodes etc.)
udevadm_settle()
{
if test -x /sbin/udevadm; then
print_and_scroll_back " Calling udevadm settle (can take a while) "
/sbin/udevadm settle
white_out
elif test -x /sbin/udevsettle; then
print_and_scroll_back " Calling udevsettle (can take a while) "
/sbin/udevsettle
white_out
else
usleep 20000
fi
}
# Perform scan on a single lun $host $channel $id $lun
dolunscan()
{
SCSISTR=
devnr="$host $channel $id $lun"
echo -e " Scanning for device $devnr ... "
printf "${yellow}OLD: $norm"
testexist
# Special case: lun 0 just got added (for reportlunscan),
# so make sure we correctly treat it as new
if test "$lun" = "0" -a "$1"; then
SCSISTR=""
printf "\r\e[A\e[A\e[A"
fi
: f $remove s $SCSISTR
if test "$remove" -a "$SCSISTR"; then
# Device exists: Test whether it's still online
# (testonline returns 1 if it's gone or has changed)
testonline
RC=$?
if test $RC != 0 -o ! -z "$forceremove"; then
echo -en "\r\e[A\e[A\e[A${red}REM: "
echo "$SCSISTR" | head -n1
echo -e "${norm}\e[B\e[B"
if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/delete
# FIXME: Can we skip udevadm settle for removal?
#udevadm_settle
usleep 20000
else
echo "scsi remove-single-device $devnr" > /proc/scsi/scsi
if test $RC -eq 1 -o $lun -eq 0 ; then
# Try readding, should fail if device is gone
echo "scsi add-single-device $devnr" > /proc/scsi/scsi
fi
fi
fi
if test $RC = 0 -o "$forcerescan" ; then
if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/rescan
udevadm_settle
fi
fi
printf "\r\e[A\e[A\e[A${yellow}OLD: $norm"
testexist
if test -z "$SCSISTR"; then
printf "\r${red}DEL: $norm\r\n\n"
let rmvd+=1;
return 1
fi
fi
if test -z "$SCSISTR"; then
# Device does not exist, try to add
printf "\r${green}NEW: $norm"
if test -e /sys/class/scsi_host/host${host}/scan; then
echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
udevadm_settle
else
echo "scsi add-single-device $devnr" > /proc/scsi/scsi
fi
testexist
if test -z "$SCSISTR"; then
# Device not present
printf "\r\e[A";
# Optimization: if lun==0, stop here (only if in non-remove mode)
if test $lun = 0 -a -z "$remove" -a $optscan = 1; then
break;
fi
else
let found+=1;
fi
fi
}
# Perform report lun scan on $host $channel $id using REPORT_LUNS
doreportlun()
{
lun=0
SCSISTR=
devnr="$host $channel $id $lun"
echo -en " Scanning for device $devnr ...\r"
lun0added=
#printf "${yellow}OLD: $norm"
# Phase one: If LUN0 does not exist, try to add
testexist -q
if test -z "$SCSISTR"; then
# Device does not exist, try to add
#printf "\r${green}NEW: $norm"
if test -e /sys/class/scsi_host/host${host}/scan; then
echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
udevadm_settle
else
echo "scsi add-single-device $devnr" > /proc/scsi/scsi
fi
testexist -q
if test -n "$SCSISTR"; then
lun0added=1
#testonline
else
# Device not present
# return
# Find alternative LUN to send getluns to
for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
[ -d "$dev" ] || continue
lun=${dev##*:}
break
done
fi
fi
targetluns=`getluns`
REPLUNSTAT=$?
lunremove=
#echo "getluns reports " $targetluns
olddev=`find /sys/class/scsi_device/ -name $host:$channel:$id:* 2>/dev/null`
oldluns=`echo "$olddev" | awk -F'/' '{print $5}' | awk -F':' '{print $4}'`
oldtargets="$targetluns"
# OK -- if we don't have a LUN to send a REPORT_LUNS to, we could
# fall back to wildcard scanning. Same thing if the device does not
# support REPORT_LUNS
# TODO: We might be better off to ALWAYS use wildcard scanning if
# it works
if test "$REPLUNSTAT" = "1"; then
if test -e /sys/class/scsi_host/host${host}/scan; then
echo "$channel $id -" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
udevadm_settle
else
echo "scsi add-single-device $host $channel $id $SCAN_WILD_CARD" > /proc/scsi/scsi
fi
targetluns=`find /sys/class/scsi_device/ -name $host:$channel:$id:* 2>/dev/null | awk -F'/' '{print $5}' | awk -F':' '{print $4}' | sort -n`
let found+=`echo "$targetluns" | wc -l`
let found-=`echo "$olddev" | wc -l`
fi
if test -z "$targetluns"; then targetluns="$oldtargets"; fi
# Check existing luns
for dev in $olddev; do
[ -d "$dev" ] || continue
lun=${dev##*:}
newsearch=
inlist=
# OK, is existing $lun (still) in reported list
for tmplun in $targetluns; do
if test $tmplun -eq $lun ; then
inlist=1
dolunscan $lun0added
else
newsearch="$newsearch $tmplun"
fi
done
# OK, we have now done a lunscan on $lun and
# $newsearch is the old $targetluns without $lun
if [ -z "$inlist" ]; then
# Stale lun
lunremove="$lunremove $lun"
fi
# $lun removed from $lunsearch (echo for whitespace cleanup)
targetluns=`echo $newsearch`
done
# Add new ones and check stale ones
for lun in $targetluns $lunremove; do
dolunscan $lun0added
done
}
# Perform search (scan $host)
dosearch ()
{
if test -z "$channelsearch" ; then
chanlist
fi
for channel in $channelsearch; do
if test -z "$idsearch" ; then
idlist
fi
for id in $idsearch; do
if test -z "$lunsearch" ; then
doreportlun
else
for lun in $lunsearch; do
dolunscan
done
fi
done
done
}
expandlist ()
{
list=$1
result=""
first=${list%%,*}
rest=${list#*,}
while test ! -z "$first"; do
beg=${first%%-*};
if test "$beg" = "$first"; then
result="$result $beg";
else
end=${first#*-}
result="$result `seq $beg $end`"
fi
test "$rest" = "$first" && rest=""
first=${rest%%,*}
rest=${rest#*,}
done
echo $result
}
# main
if test @$1 = @--help -o @$1 = @-h -o @$1 = @-?; then
echo "Usage: rescan-scsi-bus.sh [options] [host [host ...]]"
echo "Options:"
echo " -l activates scanning for LUNs 0--7 [default: 0]"
echo " -L NUM activates scanning for LUNs 0--NUM [default: 0]"
echo " -w scan for target device IDs 0--15 [default: 0--7]"
echo " -c enables scanning of channels 0 1 [default: 0 / all detected ones]"
echo " -r enables removing of devices [default: disabled]"
echo " -i issue a FibreChannel LIP reset [default: disabled]"
echo "--remove: same as -r"
echo "--issue-lip: same as -i"
echo "--forcerescan: Rescan existing devices"
echo "--forceremove: Remove and readd every device (DANGEROUS)"
echo "--nooptscan: don't stop looking for LUNs is 0 is not found"
echo "--color: use coloured prefixes OLD/NEW/DEL"
echo "--hosts=LIST: Scan only host(s) in LIST"
echo "--channels=LIST: Scan only channel(s) in LIST"
echo "--ids=LIST: Scan only target ID(s) in LIST"
echo "--luns=LIST: Scan only lun(s) in LIST"
echo "--sync/nosync: Issue a sync / no sync [default: sync if remove]"
echo "--attachpq3: Tell kernel to attach sg to LUN 0 that reports PQ=3"
echo "--reportlun2: Tell kernel to try REPORT_LUN even on SCSI2 devices"
echo "--largelun: Tell kernel to support LUNs > 7 even on SCSI2 devs"
echo "--sparselun: Tell kernel to support sparse LUN numbering"
echo " Host numbers may thus be specified either directly on cmd line (deprecated) or"
echo " or with the --hosts=LIST parameter (recommended)."
echo "LIST: A[-B][,C[-D]]... is a comma separated list of single values and ranges"
echo " (No spaces allowed.)"
exit 0
fi
if test ! -d /sys/class/scsi_host/ -a ! -d /proc/scsi/; then
echo "Error: SCSI subsystem not active"
exit 1
fi
# Make sure sg is there
modprobe sg >/dev/null 2>&1
if test -x /usr/bin/sg_inq; then
sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3)
sg_version=${sg_version##0.}
#echo "\"$sg_version\""
#if [ -z "$sg_version" -o "$sg_version" -lt 70 ] ; then
#sg_len_arg="-36"
#else
sg_len_arg="--len=36"
#fi
else
echo "WARN: /usr/bin/sg_inq not present -- please install sg3_utils"
echo " or rescan-scsi-bus.sh might not fully work."
fi
# defaults
unsetcolor
lunsearch=
opt_idsearch=`seq 0 7`
opt_channelsearch=
remove=
forceremove=
optscan=1
sync=1
declare -i scan_flags=0
if test -d /sys/class/scsi_host; then
findhosts_26
else
findhosts
fi
# Scan options
opt="$1"
while test ! -z "$opt" -a -z "${opt##-*}"; do
opt=${opt#-}
case "$opt" in
l) lunsearch=`seq 0 7` ;;
L) lunsearch=`seq 0 $2`; shift ;;
w) opt_idsearch=`seq 0 15` ;;
c) opt_channelsearch="0 1" ;;
r) remove=1 ;;
i) lipreset=1 ;;
-remove) remove=1 ;;
-forcerescan) remove=1; forcerescan=1 ;;
-forceremove) remove=1; forceremove=1 ;;
-hosts=*) arg=${opt#-hosts=}; hosts=`expandlist $arg` ;;
-channels=*) arg=${opt#-channels=};opt_channelsearch=`expandlist $arg` ;;
-ids=*) arg=${opt#-ids=}; opt_idsearch=`expandlist $arg` ;;
-luns=*) arg=${opt#-luns=}; lunsearch=`expandlist $arg` ;;
-color) setcolor ;;
-nooptscan) optscan=0 ;;
-issue-lip) lipreset=1 ;;
-sync) sync=2 ;;
-nosync) sync=0 ;;
-attachpq3) scan_flags=$(($scan_flags|0x1000000)) ;;
-reportlun2) scan_flags=$(($scan_flags|0x20000)) ;;
-largelun) scan_flags=$(($scan_flags|0x200)) ;;
-sparselun) scan_flags=$((scan_flags|0x40)) ;;
*) echo "Unknown option -$opt !" ;;
esac
shift
opt="$1"
done
# Hosts given ?
if test "@$1" != "@"; then
hosts=$*
fi
if [ -d /sys/class/scsi_host -a ! -w /sys/class/scsi_host ]; then
echo "You need to run scsi-rescan-bus.sh as root"
exit 2
fi
if test "$sync" = 1 -a "$remove" = 1; then sync=2; fi
if test "$sync" = 2; then echo "Syncing file systems"; sync; fi
if test -w /sys/module/scsi_mod/parameters/default_dev_flags -a $scan_flags != 0; then
OLD_SCANFLAGS=`cat /sys/module/scsi_mod/parameters/default_dev_flags`
NEW_SCANFLAGS=$(($OLD_SCANFLAGS|$scan_flags))
if test "$OLD_SCANFLAGS" != "$NEW_SCANFLAGS"; then
echo -n "Temporarily setting kernel scanning flags from "
printf "0x%08x to 0x%08x\n" $OLD_SCANFLAGS $NEW_SCANFLAGS
echo $NEW_SCANFLAGS > /sys/module/scsi_mod/parameters/default_dev_flags
else
unset OLD_SCANFLAGS
fi
fi
echo "Scanning SCSI subsystem for new devices"
test -z "$remove" || echo " and remove devices that have disappeared"
declare -i found=0
declare -i rmvd=0
for host in $hosts; do
echo -n "Scanning host $host "
if test -e /sys/class/fc_host/host$host ; then
# It's pointless to do a target scan on FC
if test -n "$lipreset" ; then
echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
udevadm_settle
fi
# We used to always trigger a rescan for FC to update channels and targets
# Commented out -- as discussed with Hannes we should rely
# on the main loop doing the scan, no need to do it here.
#echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
#udevadm_settle
channelsearch=
idsearch=
else
channelsearch=$opt_channelsearch
idsearch=$opt_idsearch
fi
[ -n "$channelsearch" ] && echo -n "channels $channelsearch "
echo -n "for "
if [ -n "$idsearch" ] ; then
echo -n " SCSI target IDs " $idsearch
else
echo -n " all SCSI target IDs"
fi
if [ -n "$lunsearch" ] ; then
echo ", LUNs " $lunsearch
else
echo ", all LUNs"
fi
dosearch
done
if test -n "$OLD_SCANFLAGS"; then
echo $OLD_SCANFLAGS > /sys/module/scsi_mod/parameters/default_dev_flags
fi
echo "$found new device(s) found. "
echo "$rmvd device(s) removed. "
# Local Variables:
# sh-basic-offset: 2
# End:

View file

@ -0,0 +1,155 @@
#!/bin/sh
# Remove extra whitespace
crunch() {
while read line ; do
echo $line
done
}
echo
echo "******* Welcome to the network supplemental disk! *******"
echo
# main loop:
while [ 0 ]; do
echo "-- Press [enter] to automatically probe for all network cards, or switch"
echo " to a different console and use 'modprobe' to load the modules manually."
echo "-- To skip probing some modules (in case of hangs), enter them after an S:"
echo " S eepro100 ne2k-pci"
echo "-- To probe only certain modules, enter them after a P like this:"
echo " P 3c503 3c505 3c507"
echo "-- To get a list of network modules, enter an L."
echo "-- To skip the automatic probe entirely, enter a Q now."
echo
# Clear "card found" flag:
rm -f /cardfound
echo -n "network> "
read INPUT;
echo
if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "L" \
-o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "l" ]; then
echo "Available network modules:"
for file in /lib/modules/`uname -r`/kernel/drivers/net/* /lib/modules/`uname -r`/kernel/arch/i386/kernel/* /lib/modules/`uname -r`/kernel/drivers/pnp/* ; do
if [ -r $file ]; then
OUTPUT=`basename $file .gz`
OUTPUT=`basename $OUTPUT .o`
echo -n "$OUTPUT "
fi
done
echo
echo
continue
fi
if [ ! "$INPUT" = "q" -a ! "$INPUT" = "Q" \
-a ! "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "P" \
-a ! "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "p" ]; then
echo "Probing for PCI/EISA network cards:"
for card in \
3c59x acenic de4x5 dgrs eepro100 e1000 e1000e e100 epic100 hp100 ne2k-pci olympic pcnet32 rcpci 8139too 8139cp tulip via-rhine r8169 atl1e sktr yellowfin tg3 dl2k ns83820 \
; do
SKIP=""
if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "S" \
-o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "s" ]; then
for nogood in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do
if [ "$card" = "$nogood" ]; then
SKIP=$card
fi
done
fi
if [ "$SKIP" = "" ]; then
echo "Probing for card using the $card module..."
modprobe $card 2> /dev/null
grep -q eth0 /proc/net/dev
if [ $? = 0 ]; then
echo
echo "SUCCESS: found card using $card protocol -- modules loaded."
echo "$card" > /cardfound
echo
break
else
modprobe -r $card 2> /dev/null
fi
else
echo "Skipping module $card..."
fi
done
echo
if [ ! -r /cardfound ]; then
# Don't probe for com20020... it loads on any machine with or without the card.
echo "Probing for MCA, ISA, and other PCI network cards:"
# removed because it needs an irq parameter: arlan
# tainted, no autoprobe: (arcnet) com90io com90xx
for card in depca ibmtr 3c501 3c503 3c505 3c507 3c509 3c515 ac3200 \
acenic at1700 cosa cs89x0 de4x5 de600 \
de620 e2100 eepro eexpress es3210 eth16i ewrk3 fmv18x forcedeth hostess_sv11 \
hp-plus hp lne390 ne3210 ni5010 ni52 ni65 sb1000 sealevel smc-ultra \
sis900 smc-ultra32 smc9194 wd ; do
SKIP=""
if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "S" \
-o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "s" ]; then
for nogood in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do
if [ "$card" = "$nogood" ]; then
SKIP=$card
fi
done
fi
if [ "$SKIP" = "" ]; then
echo "Probing for card using the $card module..."
modprobe $card 2> /dev/null
grep -q eth0 /proc/net/dev
if [ $? = 0 ]; then
echo
echo "SUCCESS: found card using $card protocol -- modules loaded."
echo "$card" > /cardfound
echo
break
else
modprobe -r $card 2> /dev/null
fi
else
echo "Skipping module $card..."
fi
done
echo
fi
if [ ! -r /cardfound ]; then
echo "Sorry, but no network card was detected. Some cards (like non-PCI"
echo "NE2000s) must be supplied with the I/O address to use. If you have"
echo "an NE2000, you can switch to another console (Alt-F2), log in, and"
echo "load it with a command like this:"
echo
echo " modprobe ne io=0x360"
echo
fi
elif [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "P" \
-o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "p" ]; then
echo "Probing for a custom list of modules:"
for card in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do
echo "Probing for card using the $card module..."
modprobe $card 2> /dev/null
grep -q eth0 /proc/net/dev
if [ $? = 0 ]; then
echo
echo "SUCCESS: found card using $card protocol -- modules loaded."
echo "$card" > /cardfound
echo
break
else
modprobe -r $card 2> /dev/null
fi
done
echo
else
echo "Skipping automatic module probe."
echo
fi
# end main loop
break
done

View file

@ -0,0 +1,5 @@
This used to be a place to make custom tagfiles, but now it's just here as a
"non-standard directory" so that we have a good way to probe if we're running
off the rootdisk and not an installed system. We need to know this within
pkgtool when it's started up at a prompt so we know to emit some mounting
instructions.

View file

@ -0,0 +1,6 @@
#!/bin/bash
# os-prober fails if it can't call /usr/bin/logger, which we don't have on
# the installer since we don't keep logs there. Instead we'll just call
# /bin/true as a workaround.
/bin/true

View file

@ -0,0 +1 @@
../../bin/man

Some files were not shown because too many files have changed in this diff Show more