슬랙웨어(64) 14.2 + chroot + xfce4-session + 오디오 + (NV-)GLX?

슬랙웨어(64) 14.2 + chroot + xfce4-session + 오디오 + (NV-)GLX?

Slackware 14.2 설치를 더 쉽게 마운트하기 위해 다른 파티션에 설치했습니다(32비트 100% 기본 파티션입니다).

xfce4-session을 루트로 시작할 수 있습니다(그러나 이것이 필요한 것은 아닙니다):

ch "루트"

다음 문제에 대해 도움을 줄 수 있는 사람이 있는지 알고 싶습니다.

1 - 오디오를 호스트로 리디렉션합니다.

chroot에서 아무 소리도 들리지 않습니다

2 - Nvidia에서 3D, DRI를 사용할 수 있나요? 젠투 포럼에서 뭔가를 봤는데 이해가 안 돼요)

엔비디아, 2D/3D 가능?

3 - 스크립트에서 일부 명령 및/또는 출력을 숨깁니다. 다음 줄은 다음과 같습니다.

local being added to access control list

export DISPLAY=localhost:1 2>/dev/null

exit

Xepyr 창을 닫으면 다음이 표시됩니다.

-su: línea 3: $'\E[01mHP': no se encontró la orden

chroot와 제퍼

내 스크립트 "slack32-chroot"의 내용:

#!/usr/bin/env bash

echo '
Autor ----------------> Inukaze ( Venezuela )
Sitio ----------------> https://goo.gl/ij6WqW
Correo-E -------------> [email protected]
Licencia -------------> GPL 2
'
#Establecer mediante la variable "$OBJETIVO" 
#La particion con una distribucion a la cual se accedera mediante chroot
export OBJETIVO="/media/Slack32"

#Prevenir que se autoejecuten las funciones que se definiran despues
unset montar
unset desmontar
unset MensajeBase

#Establecer y definir funciones :
function MensajeBase()
{
echo -e "\nLa forma correcta de utilizar este guion es :\n$0 «montar» , «montar_xephyr» ó «desmontar», Por ejemplo : \n"
echo -e "$0 montar"
echo -e "$0 montar_xephyr"
echo -e "$0 desmontar\n"
}

function montar(){
#Preparar acceso para programas de entorno grafico :
export DISPLAY=:0.0 2>/dev/null
xhost + local 2>/dev/null

#Montar todo de una vez para una distro de 32 Bits (En este caso Slackware32 14.2) : 
mount --rbind /proc                         "$OBJETIVO/proc"                        ; \
mount --make-rslave                         "$OBJETIVO/proc"                        ; \
mount --rbind /sys                              "$OBJETIVO/sys"                         ; \
mount --make-rslave                         "$OBJETIVO/sys"                         ; \
mount --rbind /dev                          "$OBJETIVO/dev"                         ; \
mount --make-rslave                         "$OBJETIVO/dev"                         ; \
mount --rbind /run                              "$OBJETIVO/run"                         ; \
mount --make-rslave                         "$OBJETIVO/run"                         ; \
mount --rbind /tmp                          "$OBJETIVO/tmp"                         ; \
mount --make-rslave                         "$OBJETIVO/tmp"                         ; \
mount --bind /etc/fstab                     "$OBJETIVO/etc/fstab"                   ; \
mount --bind /etc/hostname          "$OBJETIVO/etc/hostname"        ; \
mount --bind /etc/hosts                     "$OBJETIVO/etc/hosts"               ; \
mount --bind /etc/resolv.conf           "$OBJETIVO/etc/resolv.conf"     ; \

cat << EOF | linux32 chroot "$OBJETIVO"
export DISPLAY=localhost:1 2>/dev/null
EOF

linux32 chroot                                  "$OBJETIVO" /bin/bash -l                ; \
umount -l                                           "$OBJETIVO"                                 ; \
mount -a 2>/dev/null
}


function xephyr(){
#Copiar archivo de autorizacion X.Org :
rm -f "$OBJETIVO/home/inukaze/.Xauthority"
rm -f "$OBJETIVO/root/.Xauthority"
cp -f "/home/inukaze/.Xauthority" "$OBJETIVO/root/.Xauthority"
cp -f "/home/inukaze/.Xauthority" "$OBJETIVO/home/inukaze/.Xauthority"
chown inukaze:users "$OBJETIVO/home/inukaze/.Xauthority"

if [ ! -f "$OBJETIVO/etc/X11/Xwrapper.config" ] ; then
# Prevenir el error « /usr/libexec/Xorg.wrap: Only console users are allowed to run the X server »
echo '# Xwrapper.config (Debian X Window System server wrapper configuration file)
#
# This file was generated by the post-installation script of the x11-common
# package using values from the debconf database.
#
# See the Xwrapper.config(5) manual page for more information.
#
# This file is automatically updated on upgrades of the x11-common package
# *only* if it has not been modified since the last upgrade of that package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command as root:
#   dpkg-reconfigure x11-common
#allowed_users=console
allowed_users=anybody' | tee "$OBJETIVO/etc/X11/Xwrapper.config"
fi

#Preparar acceso para programas de entorno grafico :
export DISPLAY=:0.0 2>/dev/null
xhost + local 2>/dev/null

#Montar todo de una vez para una distro de 32 Bits (En este caso Slackware32 14.2) : 
mount --rbind /proc                         "$OBJETIVO/proc"                        ; \
mount --make-rslave                         "$OBJETIVO/proc"                        ; \
mount --rbind /sys                              "$OBJETIVO/sys"                         ; \
mount --make-rslave                         "$OBJETIVO/sys"                         ; \
mount --rbind /dev                          "$OBJETIVO/dev"                         ; \
mount --make-rslave                         "$OBJETIVO/dev"                         ; \
mount --rbind /run                              "$OBJETIVO/run"                         ; \
mount --make-rslave                         "$OBJETIVO/run"                         ; \
mount --rbind /tmp                          "$OBJETIVO/tmp"                         ; \
mount --make-rslave                         "$OBJETIVO/tmp"                         ; \
mount --bind /etc/fstab                     "$OBJETIVO/etc/fstab"                   ; \
mount --bind /etc/hostname          "$OBJETIVO/etc/hostname"        ; \
mount --bind /etc/hosts                     "$OBJETIVO/etc/hosts"               ; \
mount --bind /etc/resolv.conf           "$OBJETIVO/etc/resolv.conf"     ; \

cat << EOF | linux32 chroot "$OBJETIVO"
export DISPLAY=localhost:1 2>/dev/null
EOF

linux32 chroot                                  "$OBJETIVO" /bin/bash -l        <<"EOT"
#Primero Detectar Particiones, Crear Directorios dentro de /media y finalmente montarlas
#Nombre De Particion :
#   NPD1="1SlackIni"    # Esta es la particion /boot de la particion que estoy usando en chroot
    NPD2="72GB"
    NPD3="Compartido"
    NPD4="2SlackIni"
#   NPD5="Slack64"  #Esta es la particion Anfrition, asi que realmente no la necesito para esto.
#   NPD6="Slack32"  #Esta es la que estoy usando en chroot
    NPD7="2Compartir"
#Parte de la Particion
#   PPD1=$(blkid | grep "$NPD1" | cut -c01-09)
    PPD2=$(blkid | grep "$NPD2" | cut -c01-09)
    PPD3=$(blkid | grep "$NPD3" | cut -c01-09)
    PPD4=$(blkid | grep "$NPD4" | cut -c01-09)
#   PPD5=$(blkid | grep "$NPD5" | cut -c01-09)
#   PPD6=$(blkid | grep "$NPD6" | cut -c01-09)
    PPD7=$(blkid | grep "$NPD7" | cut -c01-09)
$(mkdir -p /media/"$NPD2" ; mount "$PPD2" /media/"$NPD2" )
$(mkdir -p /media/"$NPD3" ; mount "$PPD3" /media/"$NPD3" )
$(mkdir -p /media/"$NPD4" ; mount "$PPD4" /media/"$NPD4" )
$(mkdir -p /media/"$NPD7" ; mount "$PPD7" /media/"$NPD7" )
$(su - inukaze)
$(Xephyr -ac -screen 1070x888 -br -reset -terminate :1.0 2>/dev/null &)
$(export DISPLAY=:1.0)
$(DISPLAY=:1 /usr/bin/xfce4-session -- :1 2>/dev/null)
EOT

umount -l                                           "$OBJETIVO"                                 ; \
mount -a 2>/dev/null
}

function desmontar(){
# Desmontar
umount -l           "$OBJETIVO"                         ; \
mount -a 2>/dev/null
}


#Este guión necesita ser ejecutado como SuperUsuario
#o en su defecto con permisos administrativos suficientes
#Para montar / desmontar particiones.
if [ "$(whoami)" != root ]; then

    echo
    echo
    echo 'Por favor ejecuta este guion como SuperUsuario (root)'
    echo
    echo 'Utilize este guión bajo su Propio Riesgro'
    echo 'El Autor , o sea yo , no me hago responsable'
    echo 'de las consecuencias imprevistas que puedan'
    echo 'acontecer en tu sistema operativo'
    echo
else
# Proceder en caso de tener los permisos suficientes para montar/desmontar particiones :

#Si el usuario no pasa ningun parametro indicar como se usa este guion
            if [ -z "$1" ]; then
                    MensajeBase
            fi

#Guion : Aqui se ha definido como se utilizara este guion correctamente para montar o desmontar la particion Objetivo
#Entrada : Cualquier palabra pasada por el parametro $1 sera convertida en minusculas
Entrada=$(echo "$1" | tr -s  '[:upper:]'  '[:lower:]')

            if [ "$Entrada" == "montar" ]; then
                    montar
            fi

            if [ "$Entrada" == "xephyr" ]; then
                    xephyr
            fi

            if [ "$Entrada" == "desmontar" ]; then
                    desmontar
            fi

#Finalizar la condicion globar de requerir usar el SuperUsuario o en su defectos persmisos administrativos
#Para poder (des)montar particiones :
fi

#Finalizar este guion sin problemas :
exit 0 2>/dev/null

이것은 다음의 사본입니다.LinuxQuestions.org

답변1

  1. chroot에서 pulseaudio를 사용하지 않기 때문에 오디오 솔루션 수정은 파일을 삭제하는 것뿐입니다./etc/asound.conf

    rm -rf /usr/asound.conf
    
  2. 3D/DRI에 접근하려면 두 가지가 필요합니다. 첫 번째는 파일을 편집 /etc/X11/xorg.conf하고 추가하는 것 입니다.

    Section "Files"
    #    ModulePath "/usr/lib64/nvidia-304.137/xorg"
         ModulePath "/usr/lib/xorg/modules"
    EndSection
    

    먼저 X.Org의 "모듈 및 확장" 파일 경로를 확인해야 합니다. +iglxglx에 액세스할 수 있도록 일부 확장 및 매개변수를 추가한 후 이제 xephyr 명령은 다음과 같습니다.

    $(Xephyr -ac -screen 1070x888 -br -reset -terminate -render :1.0 \
    +extension Composite \
    +extension DAMAGE \
    +extension DOUBLE-BUFFER \
    +extension DPMS \
    +extension GLX \
    +extension NV-GLX \
    +extension RANDR \
    +extension RENDER \
    +extension X-Resource \
    +extension XFIXES \
    +xinerama \
    +iglx \
    2>/dev/null &)
    

이것이 Slackware64 14.2의 실제 설치에서 오디오 및 3D/DRI가 있는 다른 파티션에 있는 Slackware32 14.2의 실제 설치까지 액세스하는 데 필요한 전부입니다.

내 전체 스크립트는 이제 다음과 같습니다.

#!/usr/bin/env bash

echo '
Autor ----------------> Inukaze ( Venezuela )
Sitio ----------------> https://goo.gl/ij6WqW
Correo-E -------------> [email protected]
Licencia -------------> GPL 2
'
#Establecer mediante la variable "$OBJETIVO" 
#La particion con una distribucion a la cual se accedera mediante chroot
export OBJETIVO="/media/Slack32"

#Prevenir que se autoejecuten las funciones que se definiran despues
unset montar
unset desmontar
unset MensajeBase

#Establecer y definir funciones :
function MensajeBase()
{
echo -e "\nLa forma correcta de utilizar este guion es :\n$0 «montar» , «montar_xephyr» ó «desmontar», Por ejemplo : \n"
echo -e "$0 montar"
echo -e "$0 montar_xephyr"
echo -e "$0 desmontar\n"
}

function montar(){
#Preparar acceso para programas de entorno grafico :
export DISPLAY=:0.0 2>/dev/null
xhost + local 2>/dev/null

#Montar todo de una vez para una distro de 32 Bits (En este caso Slackware32 14.2) : 
mount --rbind /proc                         "$OBJETIVO/proc"                        ; \
mount --make-rslave                         "$OBJETIVO/proc"                        ; \
mount --rbind /sys                              "$OBJETIVO/sys"                         ; \
mount --make-rslave                         "$OBJETIVO/sys"                         ; \
mount --rbind /dev                          "$OBJETIVO/dev"                         ; \
mount --make-rslave                         "$OBJETIVO/dev"                         ; \
mount --rbind /run                              "$OBJETIVO/run"                         ; \
mount --make-rslave                         "$OBJETIVO/run"                         ; \
mount --rbind /tmp                          "$OBJETIVO/tmp"                         ; \
mount --make-rslave                         "$OBJETIVO/tmp"                         ; \
mount --bind /etc/fstab                     "$OBJETIVO/etc/fstab"                   ; \
mount --bind /etc/hostname          "$OBJETIVO/etc/hostname"        ; \
mount --bind /etc/hosts                     "$OBJETIVO/etc/hosts"               ; \
mount --bind /etc/resolv.conf           "$OBJETIVO/etc/resolv.conf"     ; \

cat << EOF | linux32 chroot "$OBJETIVO"
export DISPLAY=localhost:1 2>/dev/null
EOF

linux32 chroot                                  "$OBJETIVO" /bin/bash -l                ; \
umount -l                                           "$OBJETIVO"                                 ; \
mount -a 2>/dev/null
}


function xephyr(){
#Copiar archivo de autorizacion X.Org :
rm -f "$OBJETIVO/home/inukaze/.Xauthority"
rm -f "$OBJETIVO/root/.Xauthority"
cp -f "/home/inukaze/.Xauthority" "$OBJETIVO/root/.Xauthority"
cp -f "/home/inukaze/.Xauthority" "$OBJETIVO/home/inukaze/.Xauthority"

#Audio :
#rm -rf                                                 "$OBJETIVO/etc/asound.conf"
#cp -f "/etc/asound.state"                      "$OBJETIVO/etc/asound.state"

#Video :
#cp -f /usr/lib/libGL.so.304.137-nvidia "$OBJETIVO/usr/lib/libGL.so.304.137-nvidia"
#cp -f /usr/lib/libGL.so.304.137-nvidia "$OBJETIVO/usr/lib/libGL.so.304.137"
#cp -f /usr/lib/libGL.so.1.2.0                  "$OBJETIVO/usr/lib/libGL.so.1.2.0"
#cp -f /usr/lib/libGL.so                                "$OBJETIVO/usr/lib/libGL.so"
#cp -f /usr/lib/libGL.la-nvidia                 "$OBJETIVO/usr/lib/libGL.la-nvidia"

chown inukaze:users "$OBJETIVO/home/inukaze/.Xauthority"

if [ ! -f "$OBJETIVO/etc/X11/Xwrapper.config" ] ; then
# Prevenir el error « /usr/libexec/Xorg.wrap: Only console users are allowed to run the X server »
echo '# Xwrapper.config (Debian X Window System server wrapper configuration file)
#
# This file was generated by the post-installation script of the x11-common
# package using values from the debconf database.
#
# See the Xwrapper.config(5) manual page for more information.
#
# This file is automatically updated on upgrades of the x11-common package
# *only* if it has not been modified since the last upgrade of that package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command as root:
#   dpkg-reconfigure x11-common
#allowed_users=console
allowed_users=anybody' | tee "$OBJETIVO/etc/X11/Xwrapper.config"
fi

#Preparar acceso para programas de entorno grafico :
$(export DISPLAY=:1.0)
$(xhost + local 2>/dev/null)

#Montar todo de una vez para una distro de 32 Bits (En este caso Slackware32 14.2) : 
mount --rbind /proc                                                 "$OBJETIVO/proc"                                                    ; \
mount --make-rslave                                                 "$OBJETIVO/proc"                                                    ; \
mount --rbind /sys                                                      "$OBJETIVO/sys"                                                     ; \
mount --make-rslave                                                 "$OBJETIVO/sys"                                                     ; \
mount --rbind /dev                                                  "$OBJETIVO/dev"                                                     ; \
mount --make-rslave                                                 "$OBJETIVO/dev"                                                     ; \
mount --rbind /run                                                      "$OBJETIVO/run"                                                     ; \
mount --make-rslave                                                 "$OBJETIVO/run"                                                     ; \
mount --rbind /tmp                                                  "$OBJETIVO/tmp"                                                     ; \
mount --make-rslave                                                 "$OBJETIVO/tmp"                                                     ; \
mount --rbind /var/run/dbus                                     "$OBJETIVO/var/run/dbus"                                        ; \
mount --make-rslave                                                 "$OBJETIVO/var/run/dbus"                                        ; \
mount --rbind /var/lib/dbus                                     "$OBJETIVO/var/lib/dbus"                                        ; \
mount --make-rslave                                                 "$OBJETIVO/var/lib/dbus"                                        ; \
mount --rbind /etc/X11                                              "$OBJETIVO/etc/X11"                                             ; \
mount --make-rslave                                                 "$OBJETIVO/etc/X11"                                             ; \
mount --rbind /usr/X11R6                                        "$OBJETIVO/usr/X11R6"                                           ; \
mount --make-rslave                                                 "$OBJETIVO/usr/X11R6"                                           ; \
mount --rbind /lib/modules                                      "$OBJETIVO/lib/modules"                                     ; \
mount --make-rslave                                                 "$OBJETIVO/lib/modules"                                     ; \
mount --bind /etc/fstab                                             "$OBJETIVO/etc/fstab"                                               ; \
mount --bind /etc/hostname                                  "$OBJETIVO/etc/hostname"                                    ; \
mount --bind /etc/hosts                                             "$OBJETIVO/etc/hosts"                                           ; \
mount --bind /etc/resolv.conf                                   "$OBJETIVO/etc/resolv.conf"                                 ; \
#NV_GLX#mount --bind /usr/lib/libnvidia-glcore.so.304.137   "$OBJETIVO/usr/lib/libnvidia-glcore.so.304.137" ; \
#NV_GLX#mount --bind /usr/lib/tls/libnvidia-tls.so.304.137  "$OBJETIVO/usr/lib/tls/libnvidia-tls.so.304.137"    ; \
#NV_GLX#mount --bind /usr/lib/libGLEW.so.1.13.0                 "$OBJETIVO/usr/lib/libGLEW.so.1.13.0"                   ; \
#NV_GLX#mount --bind /usr/lib/libGLEW.so.1.13                       "$OBJETIVO/usr/lib/libGLEW.so.1.13"                     ; \
#NV_GLX#mount --bind /usr/lib/libGLEW.so                                "$OBJETIVO/usr/lib/libGLEW.so"                              ; \
#NV_GLX#mount --bind /usr/lib/libGLU.so.1.3.1                       "$OBJETIVO/usr/lib/libGLU.so.1.3.1"                     ; \
#NV_GLX#mount --bind /usr/lib/libGLU.so.1                               "$OBJETIVO/usr/lib/libGLU.so.1"                             ; \
#NV_GLX#mount --bind /usr/lib/libGLU.so                                 "$OBJETIVO/usr/lib/libGLU.so"                               ; \
#NV_GLX#mount --bind /usr/lib/libGLU.la                                 "$OBJETIVO/usr/lib/libGLU.la"                                   ; \
#NV_GLX#mount --bind /usr/lib/libGL.so.304.137-nvidia           "$OBJETIVO/usr/lib/libGL.so.304.137-nvidia"     ; \
#NV_GLX#mount --bind /usr/lib/libGL.so.1.2.0                            "$OBJETIVO/usr/lib/libGL.so.1.2.0"                          ; \
#NV_GLX#mount --bind /usr/lib/libGL.so.1                                "$OBJETIVO/usr/lib/libGL.so.1"                              ; \
#NV_GLX#mount --bind /usr/lib/libGL.so                                  "$OBJETIVO/usr/lib/libGL.so"                                    ; \
#NV_GLX#mount --bind /usr/lib/libGL.la-nvidia                       "$OBJETIVO/usr/lib/libGL.la-nvidia"                     ; \
#NV_GLX#mount --bind /usr/lib/libGL.la                                  "$OBJETIVO/usr/lib/libGL.la"                                    ; \
#AUDIO#mount --bind /usr/lib/libasound.so.2.0.0                 "$OBJETIVO/usr/lib/libasound.so.2.0.0"                  ; \
#AUDIO#mount --bind /usr/lib/libasound.so.2                     "$OBJETIVO/usr/lib/libasound.so.2"                      ; \
#AUDIO#mount --bind /usr/lib/libasound.so                           "$OBJETIVO/usr/lib/libasound.so"                            ; \
#AUDIO#mount --bind /usr/lib/libasound.la                           "$OBJETIVO/usr/lib/libasound.la"                            ; \


cat << EOF | linux32 chroot "$OBJETIVO"
$(export DISPLAY=:1.0 2>/dev/null) 
EOF

linux32 chroot                                  "$OBJETIVO" /bin/bash -l        <<"EOT"
#Primero Detectar Particiones, Crear Directorios dentro de /media y finalmente montarlas
#Nombre De Particion :
#   NPD1="1SlackIni"    # Esta es la particion /boot de la particion que estoy usando en chroot
    NPD2="72GB"
    NPD3="Compartido"
    NPD4="2SlackIni"
#   NPD5="Slack64"  #Esta es la particion Anfrition, asi que realmente no la necesito para esto.
#   NPD6="Slack32"  #Esta es la que estoy usando en chroot
    NPD7="2Compartir"
#Parte de la Particion
#   PPD1=$(blkid | grep "$NPD1" | cut -c01-09)
    PPD2=$(blkid | grep "$NPD2" | cut -c01-09)
    PPD3=$(blkid | grep "$NPD3" | cut -c01-09)
    PPD4=$(blkid | grep "$NPD4" | cut -c01-09)
#   PPD5=$(blkid | grep "$NPD5" | cut -c01-09)
#   PPD6=$(blkid | grep "$NPD6" | cut -c01-09)
    PPD7=$(blkid | grep "$NPD7" | cut -c01-09)
$(mkdir -p /media/"$NPD2" ; mount "$PPD2" /media/"$NPD2" )
$(mkdir -p /media/"$NPD3" ; mount "$PPD3" /media/"$NPD3" )
$(mkdir -p /media/"$NPD4" ; mount "$PPD4" /media/"$NPD4" )
$(mkdir -p /media/"$NPD7" ; mount "$PPD7" /media/"$NPD7" )
$(su - inukaze)

$(Xephyr -ac -screen 1070x888 -br -reset -terminate -render :1.0 \
+extension Composite \
+extension DAMAGE \
+extension DOUBLE-BUFFER \
+extension DPMS \
+extension GLX \
+extension NV-GLX \
+extension RANDR \
+extension RENDER \
+extension X-Resource \
+extension XFIXES \
+xinerama \
+iglx \
2>/dev/null &)

$(export DISPLAY=:1.0)
$(DISPLAY=:1 /usr/bin/xfce4-session -- :1 2>/dev/null) 

##DESACTIVADO##$(DISPLAY=:1 /usr/bin/startx -- :1 2>/dev/null)  #Inicia en otra tty con (NV-)GLX a pantalla completa
EOT

umount -l                                           "$OBJETIVO"                                 ; \
mount -a 2>/dev/null
}

function desmontar(){

# Desmontar

umount -l           "$OBJETIVO"                         ; \
mount -a 2>/dev/null

}


#Este guión necesita ser ejecutado como SuperUsuario
#o en su defecto con permisos administrativos suficientes
#Para montar / desmontar particiones.

if [ "$(whoami)" != root ]; then

    echo
    echo
    echo 'Por favor ejecuta este guion como SuperUsuario (root)'
    echo
    echo 'Utilice este guión bajo su Propio Riesgo'
    echo 'El Autor , o sea yo , no me hago responsable'
    echo 'de las consecuencias imprevistas que puedan'
    echo 'acontecer en tu sistema operativo'
    echo
else

# Proceder en caso de tener los permisos suficientes para montar/desmontar particiones :

#Si el usuario no pasa ningún parámetro indicar como se usa este guion

            if [ -z "$1" ]; then
                    MensajeBase
            fi

#Guion : Aquí se ha definido como se utilizara este guion correctamente para montar o desmontar la partición Objetivo
#Entrada : Cualquier palabra pasada por el parámetro $1 sera convertida en minúsculas

Entrada=$(echo "$1" | tr -s  '[:upper:]'  '[:lower:]')

            if [ "$Entrada" == "montar" ]; then
                    montar
            fi

            if [ "$Entrada" == "xephyr" ]; then
                    xephyr
            fi

            if [ "$Entrada" == "desmontar" ]; then
                    desmontar
            fi

#Finalizar la condición global de requerir usar el SuperUsuario o en su defectos permisos administrativos
#Para poder (des)montar particiones :

fi

#Finalizar este guion sin problemas :

$(exit 0)

지침:

ㅏ. #AUDIO 및 #NV-GLX 부분에는 실제로 필요하지 않습니다.

b. 테스트 중이었기 때문에 chroot에서 직접 nvidia-legacy304 드라이버를 컴파일하려고 했는데 결과가 매우 나빴습니다. 이제 "nvidia-legacy304-kernel을 컴파일할 수 없기 때문에 Slackware64 14.2에 3D/DRI가 없습니다. " 다음과 같은 오류가 발생합니다.

Creating directory NVIDIA-Linux-x86_64-304.137
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 


304.137................................................................................................................................................................
If you are using a Linux 2.4 kernel, please make sure
you either have configured kernel sources matching your
kernel or the correct set of kernel headers installed
on your system.

If you are using a Linux 2.6 kernel, please make sure
you have configured kernel sources matching your kernel
installed on your system. If you specified a separate
output directory using either the "KBUILD_OUTPUT" or
the "O" KBUILD parameter, make sure to specify this
directory with the SYSOUT environment variable or with
the equivalent nvidia-installer command line option.

Depending on where and how the kernel sources (or the
kernel headers) were installed, you may need to specify
their location with the SYSSRC environment variable or
the equivalent nvidia-installer command line option.

*** Unable to determine the target kernel version. ***

makefile:53: fallo en las instrucciones para el objetivo 'select_makefile'

관련 정보