Solved linuxulator switching to non root user in the chroot to run davinci resolve

downloading update which will take about an hour
then the next step is using makeresolvedeb to create the deb from the resolve zip will take another hour

time to stare at the screen for a while
 
you are going too fast. I suggest to upgrade even lunar to mantic and then to install the nvidia drivers following "my" method,checking if they are installed correctly issuing the command "nvidia-smi" ;
 
i want to check if the drivers match in lunar

rather than downloading the drivers and manually installing them

its always best to use the drivers in the repo to avoid issues updating,
not knocking your method but if you can use the version in the repo that would be one less step you have to do

also if look at the man page for debootstrap it explains you can use a url

Code:
debootstrap stretch ./stretch-chroot http://deb.debian.org/debian

what im wondering is if you can point to a url for lunar or manic
rather than installing jammy and upgrading

just thinking about making the steps easy to follow for other users
 
i want to check if the drivers match in lunar

rather than downloading the drivers and manually installing them

its always best to use the drivers in the repo to avoid issues updating,
not knocking your method but if you can use the version in the repo that would be one less step you have to do

also if look at the man page for debootstrap it explains you can use a url

Code:
debootstrap stretch ./stretch-chroot http://deb.debian.org/debian

what im wondering is if you can point to a url for lunar or manic
rather than installing jammy and upgrading

just thinking about making the steps easy to follow for other users

I disagree. I tell you from my experience : its hard that on the repo of Ubuntu you find the exact version of the drivers installed on FreeBSD.
 
I disagree. I tell you from my experience : its hard that on the repo of Ubuntu you find the exact version of the drivers installed on FreeBSD.
jammy had the right version of the nvidia driver,
just want to check if the point release is the same on lunar
 
looking at debootstrap and using ubuntu urls


if you at this url in the dist directory you will see lunar and manic


which is a similar to the debian page


wonder if you could do something like this

Code:
sudo mkdir -p /compat/ubuntu

and then use debootstrap with the url to install lunar or manic

Code:
sudo debootstrap --arch=amd64 --no-check-gpg lunar /compat/ubuntu http://archive.ubuntu.com/ubuntu/

only one way to find out give it a go and see if it works
 
that fails no script in /usr/local/share/debootstrap/scripts/

so what if we take the jammy script and add lunar and mantic to it
rename it it mantic and stick the script in the debootstrap scripts directory

lets find out
 
my hunch was right

you can install lunar and mantic without installing jammy and upgrading

i copied the jammy script added lunar and mantic to it
and saved to 2 files lunar and mantic

make the scripts executable

Code:
chmod +x lunar mantic

copy them to /usr/local/share/debootstrap/scripts

sudo cp lunar mantic /usr/local/share/debootstrap/scripts

install mantic

Code:
sudo debootstrap --arch=amd64 --no-check-gpg mantic /compat/ubuntu http://archive.ubuntu.com/ubuntu/

the url may not be needed as thats in the script
so you could just do this

Code:
sudo debootstrap --arch=amd64 --no-check-gpg mantic /compat/ubuntu

heres the updated script for lunar and mantic


Code:
case $ARCH in
  amd64|i386)
    case $SUITE in
      gutsy|hardy|intrepid|jaunty|karmic|lucid|lunar|mantic|maverick|natty|oneiric|precise|quantal|raring|saucy|utopic|vivid|wily|yakkety|zesty)
    default_mirror http://old-releases.ubuntu.com/ubuntu
      ;;
      *)
    default_mirror http://archive.ubuntu.com/ubuntu
    ;;
    esac
    ;;
  sparc)
    case $SUITE in
      gutsy)
    default_mirror http://old-releases.ubuntu.com/ubuntu
    ;;
      *)
    default_mirror http://ports.ubuntu.com/ubuntu-ports
    ;;
    esac
    ;;
  *)
    default_mirror http://ports.ubuntu.com/ubuntu-ports
    ;;
esac
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/local/share/keyrings/ubuntu-archive-keyring.gpg

if doing_variant fakechroot; then
    test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi

case $ARCH in
    alpha|ia64) LIBC="libc6.1" ;;
    kfreebsd-*) LIBC="libc0.1" ;;
    hurd-*)     LIBC="libc0.3" ;;
    *)          LIBC="libc6" ;;
esac

case $SUITE in
    gutsy|hardy|intrepid|jaunty|karmic|lucid|lunar|mantic|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco|eoan|focal|groovy|hirsute) ;;
    *)
        # impish+ will use zstd compression, check if supported
        dpkg_zstd="$(dpkg-deb --help 2>/dev/null | grep ' zstd,' || :)"
        if [ -z "$EXTRACTOR_OVERRIDE" ] && [ -z "$dpkg_zstd" ]; then
            info CHOSENEXTRACTOR "%s uses zstd compression, setting --extractor=ar option" "$SUITE"
            export EXTRACTOR_OVERRIDE=ar
        fi
    ;;
esac

work_out_debs () {
    required="$(get_debs Priority: required)"

    if doing_variant - || doing_variant fakechroot; then
        #required="$required $(get_debs Priority: important)"
        #  ^^ should be getting debconf here somehow maybe
        base="$(get_debs Priority: important)"
    elif doing_variant buildd; then
        base="apt build-essential"
    elif doing_variant minbase; then
        base="apt"
    fi

    if doing_variant fakechroot; then
        # ldd.fake needs binutils
        required="$required binutils"
    fi

    case $MIRRORS in
        https://*)
        case "$CODENAME" in
            gutsy|hardy|intrepid|jaunty|karmic|lucid|lunar|mantic|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid|wily|xenial|yakkety|zesty)
            base="$base apt-transport-https ca-certificates"
            ;;
            *)
            base="$base ca-certificates"
            ;;
        esac
        ;;
    esac

    # do not install usrmerge in fresh bootstraps
    # but do print it for germinate to accept it into minimal
    if [ "$WHAT_TO_DO" = "finddebs printdebs kill_target" ]; then
        case "$CODENAME" in
            # "merged-usr" blacklist for past releases
            gutsy|hardy|intrepid|jaunty|karmic|lucid|lunar|mantic|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco|eoan|focal|groovy)
            ;;
            hirsute)
                # keep hirsute buildd chroots split-usr to allow for escape hatch
                if ! doing_variant buildd; then
                    if [ -z "$MERGED_USR" ] || [ "$MERGED_USR" = "yes" ]; then
                        base="$base usrmerge"
                    fi
                fi
                ;;
            *)
                # all future series post hirsute use merged-usr in buildd chroots too
                if [ -z "$MERGED_USR" ] || [ "$MERGED_USR" = "yes" ]; then
                    base="$base usrmerge"
                fi
                ;;
        esac
    fi
}

first_stage_install () {
    case "$CODENAME" in
        # "merged-usr" blacklist for past releases
        gutsy|hardy|intrepid|jaunty|karmic|lucid|lunar|mantic|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic)
            [ -z "$MERGED_USR" ] && MERGED_USR="no"
            ;;
        disco|eoan|focal|groovy)
            # see https://bugs.debian.org/838388
            EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
            ;;
        hirsute)
            # keep hirsute buildd chroots split-usr to allow for escape hatch
            if [ -z "$MERGED_USR" ]; then
                if doing_variant buildd; then
                    MERGED_USR="no"
                else
                    MERGED_USR="yes"
                fi
            fi
            # see https://bugs.debian.org/838388
            EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
            ;;
        *)
            # all future series post hirsute use merged-usr in buildd chroots too
            [ -z "$MERGED_USR" ] && MERGED_USR="yes"
            # see https://bugs.debian.org/838388
            EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
            ;;
    esac

    setup_merged_usr
    extract $required

    mkdir -p "$TARGET/var/lib/dpkg"
    : >"$TARGET/var/lib/dpkg/status"
    : >"$TARGET/var/lib/dpkg/available"

    setup_etc
    if [ ! -e "$TARGET/etc/fstab" ]; then
        echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
        chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
    fi

    setup_devices

        if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
        setup_proc_symlink
    fi
}

second_stage_install () {
    in_target /bin/true

    setup_dynamic_devices

    x_feign_install () {
        local pkg="$1"
        local deb="$(debfor $pkg)"
        local ver="$(in_target dpkg-deb -f "$deb" Version)"

        mkdir -p "$TARGET/var/lib/dpkg/info"

        echo \
"Package: $pkg
Version: $ver
Maintainer: unknown
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"

        touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
    }

    x_feign_install dpkg

    x_core_install () {
        smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
    }

    p () {
        baseprog="$(($baseprog + ${1:-1}))"
    }

    if ! doing_variant fakechroot; then
        setup_proc
        in_target /sbin/ldconfig
    fi

    DEBIAN_FRONTEND=noninteractive
    DEBCONF_NONINTERACTIVE_SEEN=true
    export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN

    baseprog=0
    bases=7

    p; progress $baseprog $bases INSTCORE "Installing core packages" #1
    info INSTCORE "Installing core packages..."

    p; progress $baseprog $bases INSTCORE "Installing core packages" #2
    ln -sf mawk "$TARGET/usr/bin/awk"
    x_core_install base-passwd
    x_core_install base-files
    p; progress $baseprog $bases INSTCORE "Installing core packages" #3
    x_core_install dpkg

    if [ ! -e "$TARGET/etc/localtime" ]; then
        ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
    fi

    if doing_variant fakechroot; then
        install_fakechroot_tools
    fi

    p; progress $baseprog $bases INSTCORE "Installing core packages" #4
    x_core_install $LIBC

    p; progress $baseprog $bases INSTCORE "Installing core packages" #5
    x_core_install perl-base

    p; progress $baseprog $bases INSTCORE "Installing core packages" #6
    rm "$TARGET/usr/bin/awk"
    x_core_install mawk

    p; progress $baseprog $bases INSTCORE "Installing core packages" #7
    if doing_variant -; then
        x_core_install debconf
    fi

    baseprog=0
    bases=$(set -- $required; echo $#)

    info UNPACKREQ "Unpacking required packages..."

    exec 7>&1

    smallyes '' |
        (repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages.  This will be attempted up to five times." "" \
        dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 || echo EXITCODE $?) |
        dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING

    info CONFREQ "Configuring required packages..."

    if doing_variant fakechroot && [ -e "$TARGET/var/lib/dpkg/info/initscripts.postinst" ]
    then
        # fix initscripts postinst (no mounting possible, and wrong if condition)
        sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
    fi

    echo \
"#!/bin/sh
exit 101" > "$TARGET/usr/sbin/policy-rc.d"
    chmod 755 "$TARGET/usr/sbin/policy-rc.d"

    mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
    echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
    chmod 755 "$TARGET/sbin/start-stop-daemon"

    if [ -x "$TARGET/sbin/initctl" ]; then
      mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
      echo \
"#!/bin/sh
if [ \"\$1\" = version ]; then exec /sbin/initctl.REAL \"\$@\"; fi
echo
echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl"
      chmod 755 "$TARGET/sbin/initctl"
    fi

    setup_dselect_method apt

    smallyes '' |
        (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
        dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 || echo EXITCODE $?) |
        dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING

    baseprog=0
    bases="$(set -- $base; echo $#)"

    info UNPACKBASE "Unpacking the base system..."

    setup_available $required $base
    done_predeps=
    while predep=$(get_next_predep); do
        # We have to resolve dependencies of pre-dependencies manually because
        # dpkg --predep-package doesn't handle this.
        predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
        # XXX: progress is tricky due to how dpkg_progress works
        # -- cjwatson 2009-07-29
        # This step sometimes fails due to some missing functionality in Linuxulator.  Just ignore it.
        set +e
        p; smallyes '' |
        in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
        rc=$?
        base=$(without "$base" "$predep")
        done_predeps="$done_predeps $predep"

        if [ $rc != 0 ]; then
            warning FREEBSD_00 "Applying FreeBSD-specific workaround..."
            # ... for "Failed to mount /etc/machine-id: Bad address" with Focal.
            in_target truncate -s0 /var/lib/dpkg/info/systemd.postinst
            in_target dpkg --configure systemd
        fi
        set -e
    done

    if [ -n "$base" ]; then
        smallyes '' |
            (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages.  This will be re-attempted up to five times." "" \
            dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 || echo EXITCODE $?) |
            dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING

        info CONFBASE "Configuring the base system..."

        # This step sometimes fails due to some missing functionality in Linuxulator.  Just ignore it.
        set +e
        smallyes '' |
            (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages.  This will be re-attempted up to five times." "" \
            dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 || echo EXITCODE $?) |
            dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING
        set -e
    fi

    if [ -x "$TARGET/sbin/initctl.REAL" ]; then
        mv "$TARGET/sbin/initctl.REAL" "$TARGET/sbin/initctl"
    fi
    mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
    rm -f "$TARGET/usr/sbin/policy-rc.d"

    echo \
"# Workaround for Linuxulator missing mremap(2) support; without it,
# apt(8) fails like this:
# E: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Start.
APT::Cache-Start 251658240;" >> "$TARGET/etc/apt/apt.conf.d/00freebsd"

    progress $bases $bases CONFBASE "Configuring base system"
    info BASESUCCESS "Base system installed successfully."
}

check the release

Code:
lsb_release -a

version

Distributor ID: Ubuntu
Description: Ubuntu 23.10
Release: 23.10
Codename: mantic
 
there is a driver mismatch on ubuntu mantic

freebsd nvidia version

535.146.02

ubuntu nvidia version

535.154.05

so looks like you have to manually download and install the nvidia drivers so they match

ziomario code

Code:
TMPDIR=/home/user/TMP ./NVIDIA-Linux-x86_64-535.146.02.run \
    --install-compat32-libs \
    --no-nvidia-modprobe --no-backup --no-kernel-module \
    --no-x-check --no-nouveau-check \
    --no-cc-version-check --no-kernel-module-source \
    --no-check-for-alternate-installs \
    --install-libglvnd --skip-depmod --no-systemd


ziomario what are the steps you took to install the drivers
so i can document them in a how to guide for other people to follow

i have a fresh mantic install

added new repos to /etc/apt/sources.list

Code:
deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ mantic main restricted universe multiverse
deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ mantic-updates main restricted universe multiverse
deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ mantic-security main restricted universe multiverse

then updated and upgraded

Code:
sudo apt update
sudo apt upgrade

added my user and added them to needed groups
user set up in sudoers file so they can use sudo

did you install the drivers straight after a clean install
or did you install any packages before install the driver

this is linux and sometime the order you install packages matters
otherwise you get dependencies issues
 
the nvidia installer will tell you what's missing

gotcha
so after installing the drivers install the missing packages

whats the url you downloaded the drivers from

whats with this code below

why are you setting TMPDIR=/home/user/TMP
obviously that path doesnt exist

and shouldnt you use sudo to run the nvidia run script

Code:
TMPDIR=/home/user/TMP ./NVIDIA-Linux-x86_64-535.146.02.run \
    --install-compat32-libs \
    --no-nvidia-modprobe --no-backup --no-kernel-module \
    --no-x-check --no-nouveau-check \
    --no-cc-version-check --no-kernel-module-source \
    --no-check-for-alternate-installs \
    --install-libglvnd --skip-depmod --no-systemd

you know what the steps are
but its not going to be obvious to other people

we need to outline the exact steps so its easy to follow along for other people

1 - url to download the driver from

2 - running the nvidia run script

whats the TMPDIR for
shouldnt the nvidia run script be run with sudo

3 - installing the missing packages

then make a list of the missing packages that need to be installed
 
ziomario looking at this page on the nvidia site


mentions this

Before installing the NVIDIA driver on Linux,
some pre-installation steps are recommended to:

Verify the system has a CUDA-capable GPU
Verify the system is running a supported version of Linux
Verify the system has build tools such as make, gcc installed
Verify the system has correct Linux kernel headers

so you need to make sure build tools like make and gcc are installed
did you install linux kernel headers

do you remember what packages you installed

at this stage in the how to guide



did you use page to install cuda afterwards


installed gcc with

Code:
sudo apt install build-essential

re linux header files

running uname -r in the chroot

Code:
uname -r

outputs

5.15.0

if you run

Code:
apt search linux-headers

youll see the header files are for linux kernel 6

linux-headers-6.5.0-14/mantic-updates,mantic-security 6.5.0-14.14 all
Header files related to Linux kernel version 6.5.0
 
The nvidia drivers won't install if they miss something. And it reccomends also to install some components if it is important but not mandatory.
 
hi mate, can you confirm the steps

1 - nvidia install

i have the copied the NVIDIA-Linux-x86_64-535.146.02.run
into /comat/ubuntu/home/djwilcox

and chrooted into ubuntu

Code:
sudo chroot /compat/ubuntu /bin/bash

then switched to my user

Code:
su - djwilcox

would this be the correct command to run
from your post but without the TMPDIR=/home/user/TMP

Code:
sudo ./NVIDIA-Linux-x86_64-535.146.02.run \
--install-compat32-libs \
--no-nvidia-modprobe --no-backup --no-kernel-module \
--no-x-check --no-nouveau-check \
--no-cc-version-check --no-kernel-module-source \
--no-check-for-alternate-installs \
--install-libglvnd --skip-depmod --no-systemd

then install any missing packages

2 - cuda

how did you install cuda

using this page


or install cuda from the ubuntu repo
 
This thread is a must for installing the CUDA libraries :

 
Back
Top