NVIDIA driver upgrade failed

18,835

I have worked out this problem by the following steps. I am on Ubuntu 14.04.

  1. Download your specific Nviadia drivers from here. The driver name looks like NVIDIA-LINUX-X86_64-340.58.run.

  2. # service lightdm stop, Ctrl+Alt+F1 switch to tty1, excute the command to stop X server with root priviledge.

  3. # bash NVIDIA-LINUX-X86_64-340.58.run --kernel-source-path=/usr/src/linux-headers-3.14.21,then just following the UI directions, remember not to say YES with DKMS(have strange troubles for me).

  4. it is better to do this step sudo apt-get install linux-image-extra-virtual,referenc link.
  5. # service lightdm start and # reboot, everything is ok!
Share:
18,835

Related videos on Youtube

stdcerr
Author by

stdcerr

Coding mostly on embedded systems (24/7/365 uptime) to make a living at daytime, coding on a variety of systems (x86, arm) for fun at nighttime, preferences: Linux, C & C++. Always interested in learning other ways/better ways to solve problems!

Updated on September 18, 2022

Comments

  • stdcerr
    stdcerr over 1 year

    I downloaded the latest(331.49), tried to install, but failed. I compiled the kernel module and at the end of the installation it said that it went successful. But on bootup it said: version mismatch, it still finds the old version—so I tried to revert back to 304.88 (previous driver that worked fine) but that failed as well, it can't build the kernel module. I'm left on the console now.

    When trying 331.49 again: LICENSE question - Accept
    There appears to already be a driver (304.88), overwrite & continue? - Yes The distribution-provided pre-install script failed! Continue? - Yes
    Would you like to register DKMS? - Yes (also tried No here, no difference in the end) Install 32-bit compatible libraries? - No (had selected Yes previously)
    now it's downloading and installing DKMS
    Run xxvidia-xconfig ? - Yes
    Your X config file has been updated successfully! Installation of 331.49 is now complete - OK
    back to shell:
    # service lightdm start
    Just shows a black screen with a blinking cursor in the top left.

    How do I go about fixing this?

    Oh yeah, here's a copy of the nvidia-installer.log:

    nvidia-installer log file '/var/log/nvidia-installer.log'
    creation time: Wed Mar 12 04:55:01 2014
    installer version: 331.49
    
    PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/reg/android-sdk-linux/tools:/home/reg/android-sdk-linux/platform-tools
    
    nvidia-installer command line:
        ./nvidia-installer
    
    Using: nvidia-installer ncurses user interface
    -> License accepted.
    -> Installing NVIDIA driver version 331.49.
    -> There appears to already be a driver installed on your system (version: 304.88).  As part of installing this driver (version: 331.49), the existing driver will be uninstalled.  Are you sure you want to continue? ('no' will abort installation) (Answer: Yes)
    -> Running distribution scripts
       executing: '/usr/lib/nvidia/pre-install'...
    -> done.
    -> The distribution-provided pre-install script failed!  Continue installation anyway? (Answer: Yes)
    -> Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later. (Answer: Yes)
    -> Installing both new and classic TLS OpenGL libraries.
    -> Installing both new and classic TLS 32bit OpenGL libraries.
    -> Install NVIDIA's 32-bit compatibility libraries? (Answer: No)
    -> Parsing log file:
    -> done.
    -> Validating previous installation:
    -> done.
    -> Uninstalling NVIDIA Accelerated Graphics Driver for Linux-x86_64 (1.0-30488 (304.88)):
    -> DKMS module detected; removing...
    -> done.
    -> Uninstallation of existing driver: NVIDIA Accelerated Graphics Driver for Linux-x86_64 (304.88) is complete.
    -> Skipping installation of the libvdpau wrapper library.
    -> Searching for conflicting X files:
    -> done.
    -> Searching for conflicting OpenGL files:
    -> done.
    -> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (331.49):
       executing: '/sbin/ldconfig'...
       executing: '/sbin/depmod -aq'...
       ignored deprecated option -q
    -> done.
    -> Driver file installation is complete.
    -> Installing DKMS kernel module:
    -> done.
    -> Running post-install sanity check:
    -> done.
    -> Post-install sanity check passed.
    -> Shared memory test passed.
    -> Running runtime sanity check:
    -> done.
    -> Runtime sanity check passed.
    -> Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X?  Any pre-existing X configuration file will be backed up. (Answer: Yes)
    -> Your X configuration file has been successfully updated.  Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 331.49) is now complete.
    

    /var/log/Xorg.0.log:

    [ 32031.608] 
    X.Org X Server 1.14.5
    Release Date: 2013-12-12
    [ 32031.609] X Protocol Version 11, Revision 0
    [ 32031.609] Build Operating System: Linux 3.2.0-37-generic x86_64 Ubuntu
    [ 32031.609] Current Operating System: Linux regDesktopHome 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64
    [ 32031.610] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.11.0-18-generic root=UUID=b0488ebc-79a6-49dc-b86f-fd3d9b1d746a ro quiet splash
    [ 32031.610] Build Date: 17 December 2013  10:06:15AM
    [ 32031.610] xorg-server 2:1.14.5-1ubuntu2~saucy1 (For technical support please see http://www.ubuntu.com/support) 
    [ 32031.611] Current version of pixman: 0.30.2
    [ 32031.611]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
    [ 32031.611] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [ 32031.613] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Mar 12 13:14:48 2014
    [ 32031.613] (==) Using config file: "/etc/X11/xorg.conf"
    [ 32031.613] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    [ 32031.614] (==) ServerLayout "Layout0"
    [ 32031.614] (**) |-->Screen "Screen0" (0)
    [ 32031.614] (**) |   |-->Monitor "Monitor0"
    [ 32031.614] (**) |   |-->Device "Device0"
    [ 32031.614] (**) |-->Screen "Screen1" (1)
    [ 32031.614] (**) |   |-->Monitor "Monitor1"
    [ 32031.614] (**) |   |-->Device "Device1"
    [ 32031.614] (**) |-->Input Device "Keyboard0"
    [ 32031.614] (**) |-->Input Device "Mouse0"
    [ 32031.614] (**) Option "Xinerama" "1"
    [ 32031.614] (==) Automatically adding devices
    [ 32031.614] (==) Automatically enabling devices
    [ 32031.614] (==) Automatically adding GPU devices
    [ 32031.614] (**) Xinerama: enabled
    [ 32031.614] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
    [ 32031.614]    Entry deleted from font path.
    [ 32031.614] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
    [ 32031.614]    Entry deleted from font path.
    [ 32031.614] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
    [ 32031.614]    Entry deleted from font path.
    [ 32031.614] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
    [ 32031.614]    Entry deleted from font path.
    [ 32031.614] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
    [ 32031.614]    Entry deleted from font path.
    [ 32031.614] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/Type1,
        built-ins
    [ 32031.614] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
    [ 32031.614] (**) Extension "Composite" is disabled
    [ 32031.614] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
    [ 32031.615] (WW) Disabling Keyboard0
    [ 32031.615] (WW) Disabling Mouse0
    [ 32031.615] (II) Loader magic: 0x7f1f5aa92d20
    [ 32031.615] (II) Module ABI versions:
    [ 32031.615]    X.Org ANSI C Emulation: 0.4
    [ 32031.615]    X.Org Video Driver: 14.1
    [ 32031.615]    X.Org XInput driver : 19.1
    [ 32031.615]    X.Org Server Extension : 7.0
    [ 32031.616] (--) PCI:*(0:1:0:0) 10de:1040:1043:83c6 rev 161, Mem @ 0xfa000000/16777216, 0xe8000000/134217728, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
    [ 32031.616] (II) Open ACPI successful (/var/run/acpid.socket)
    [ 32031.616] Initializing built-in extension Generic Event Extension
    [ 32031.616] Initializing built-in extension SHAPE
    [ 32031.616] Initializing built-in extension MIT-SHM
    [ 32031.617] Initializing built-in extension XInputExtension
    [ 32031.617] Initializing built-in extension XTEST
    [ 32031.617] Initializing built-in extension BIG-REQUESTS
    [ 32031.617] Initializing built-in extension SYNC
    [ 32031.617] Initializing built-in extension XKEYBOARD
    [ 32031.618] Initializing built-in extension XC-MISC
    [ 32031.618] Initializing built-in extension SECURITY
    [ 32031.618] Initializing built-in extension XINERAMA
    [ 32031.618] Initializing built-in extension XFIXES
    [ 32031.618] Initializing built-in extension RENDER
    [ 32031.619] Initializing built-in extension RANDR
    [ 32031.619] Initializing built-in extension COMPOSITE
    [ 32031.619] Initializing built-in extension DAMAGE
    [ 32031.619] Initializing built-in extension MIT-SCREEN-SAVER
    [ 32031.619] Initializing built-in extension DOUBLE-BUFFER
    [ 32031.619] Initializing built-in extension RECORD
    [ 32031.620] Initializing built-in extension DPMS
    [ 32031.620] Initializing built-in extension X-Resource
    [ 32031.620] Initializing built-in extension XVideo
    [ 32031.620] Initializing built-in extension XVideo-MotionCompensation
    [ 32031.620] Initializing built-in extension SELinux
    [ 32031.621] Initializing built-in extension XFree86-VidModeExtension
    [ 32031.621] Initializing built-in extension XFree86-DGA
    [ 32031.621] Initializing built-in extension XFree86-DRI
    [ 32031.621] Initializing built-in extension DRI2
    [ 32031.621] (II) "glx" will be loaded by default.
    [ 32031.621] (WW) "xmir" is not to be loaded by default. Skipping.
    [ 32031.621] (II) LoadModule: "dri2"
    [ 32031.621] (II) Module "dri2" already built-in
    [ 32031.621] (II) LoadModule: "glamoregl"
    [ 32031.621] (WW) Warning, couldn't open module glamoregl
    [ 32031.621] (II) UnloadModule: "glamoregl"
    [ 32031.621] (II) Unloading glamoregl
    [ 32031.621] (EE) Failed to load module "glamoregl" (module does not exist, 0)
    [ 32031.621] (II) LoadModule: "glx"
    [ 32031.622] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    [ 32031.628] (II) Module glx: vendor="NVIDIA Corporation"
    [ 32031.628]    compiled for 4.0.2, module version = 1.0.0
    [ 32031.628]    Module class: X.Org Server Extension
    [ 32031.628] (II) NVIDIA GLX Module  331.49  Wed Feb 12 20:17:10 PST 2014
    [ 32031.628] Loading extension GLX
    [ 32031.628] (II) LoadModule: "nvidia"
    [ 32031.628] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
    [ 32031.628] (II) Module nvidia: vendor="NVIDIA Corporation"
    [ 32031.628]    compiled for 4.0.2, module version = 1.0.0
    [ 32031.628]    Module class: X.Org Video Driver
    [ 32031.628] (II) NVIDIA dlloader X Driver  331.49  Wed Feb 12 19:57:36 PST 2014
    [ 32031.628] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
    [ 32031.628] (--) using VT number 7
    
    [ 32031.632] (II) Loading sub module "fb"
    [ 32031.632] (II) LoadModule: "fb"
    [ 32031.633] (II) Loading /usr/lib/xorg/modules/libfb.so
    [ 32031.633] (II) Module fb: vendor="X.Org Foundation"
    [ 32031.633]    compiled for 1.14.5, module version = 1.0.0
    [ 32031.633]    ABI class: X.Org ANSI C Emulation, version 0.4
    [ 32031.633] (WW) Unresolved symbol: fbGetGCPrivateKey
    [ 32031.633] (II) Loading sub module "wfb"
    [ 32031.633] (II) LoadModule: "wfb"
    [ 32031.633] (II) Loading /usr/lib/xorg/modules/libwfb.so
    [ 32031.633] (II) Module wfb: vendor="X.Org Foundation"
    [ 32031.633]    compiled for 1.14.5, module version = 1.0.0
    [ 32031.633]    ABI class: X.Org ANSI C Emulation, version 0.4
    [ 32031.633] (II) Loading sub module "ramdac"
    [ 32031.633] (II) LoadModule: "ramdac"
    [ 32031.633] (II) Module "ramdac" already built-in
    [ 32031.633] (WW) NVIDIA: Xinerama is enabled, so RandR has likely been disabled by the
    [ 32031.633] (WW) NVIDIA:     X server.
    [ 32031.634] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
    [ 32031.634] (==) NVIDIA(0): RGB weight 888
    [ 32031.634] (==) NVIDIA(0): Default visual is TrueColor
    [ 32031.634] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
    [ 32031.634] (**) NVIDIA(0): Option "TwinViewXineramaInfoOrder" "DFP-0"
    [ 32031.634] (**) NVIDIA(0): Option "MetaModes" "DFP: nvidia-auto-select +0+0"
    [ 32031.634] (**) NVIDIA(1): Option "MetaModes" "CRT: nvidia-auto-select +0+0"
    [ 32031.634] (**) NVIDIA(0): Enabling 2D acceleration
    [ 32031.634] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
    [ 32031.634] (EE) NVIDIA(0):     system's kernel log for additional error messages and
    [ 32031.634] (EE) NVIDIA(0):     consult the NVIDIA README for details.
    [ 32031.634] (EE) NVIDIA(0):  *** Aborting ***
    [ 32031.634] (EE) NVIDIA(0): Failing initialization of X screen 0
    [ 32031.634] (**) NVIDIA(1): Depth 24, (--) framebuffer bpp 32
    [ 32031.634] (==) NVIDIA(1): RGB weight 888
    [ 32031.634] (==) NVIDIA(1): Default visual is TrueColor
    [ 32031.635] (==) NVIDIA(1): Using gamma correction (1.0, 1.0, 1.0)
    [ 32031.635] (**) NVIDIA(1): Option "TwinViewXineramaInfoOrder" "CRT-1"
    [ 32031.635] (EE) NVIDIA(1): Failed to initialize the NVIDIA kernel module. Please see the
    [ 32031.635] (EE) NVIDIA(1):     system's kernel log for additional error messages and
    [ 32031.635] (EE) NVIDIA(1):     consult the NVIDIA README for details.
    [ 32031.635] (EE) NVIDIA(1):  *** Aborting ***
    [ 32031.635] (EE) NVIDIA(1): Failing initialization of X screen 1
    [ 32031.635] (II) UnloadModule: "nvidia"
    [ 32031.635] (II) UnloadSubModule: "wfb"
    [ 32031.635] (II) UnloadSubModule: "fb"
    [ 32031.635] (II) UnloadModule: "nvidia"
    [ 32031.635] (II) UnloadSubModule: "wfb"
    [ 32031.635] (II) UnloadSubModule: "fb"
    [ 32031.635] (EE) Screen(s) found, but none have a usable configuration.
    [ 32031.635] (EE) 
    Fatal server error:
    [ 32031.635] (EE) no screens found(EE) 
    [ 32031.635] (EE) 
    Please consult the The X.Org Foundation support 
         at http://wiki.x.org
     for help. 
    [ 32031.635] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
    [ 32031.635] (EE) 
    [ 32031.639] (EE) Server terminated with error (1). Closing log file
    

    and my /etc/X11/xorg.conf:

    # nvidia-xconfig: X configuration file generated by nvidia-xconfig
    # nvidia-xconfig:  version 331.49  (buildmeister@swio-display-x86-rhel47-10)  Wed Feb 12 21:00:07 PST 2014
    
    # nvidia-settings: X configuration file generated by nvidia-settings
    # nvidia-settings:  version 295.40  ([email protected])  Thu Apr  5 22:40:34 PDT 2012
    # commented out by ubuntu-release-upgrader, HAL is now used and auto-detects devices
    # Keyboard settings are now read from /etc/default/console-setup
    #Section "InputDevice"
    #
    #    # generated from default
    #    Identifier     "Mouse0"
    #    Driver         "mouse"
    #    Option         "Protocol" "auto"
    #    Option         "Device" "/dev/psaux"
    #    Option         "Emulate3Buttons" "no"
    #    Option         "ZAxisMapping" "4 5"
    #EndSection
    # commented out by ubuntu-release-upgrader, HAL is now used and auto-detects devices
    # Keyboard settings are now read from /etc/default/console-setup
    #Section "InputDevice"
    #
    #    # generated from default
    #    Identifier     "Keyboard0"
    #    Driver         "kbd"
    #EndSection
    
    Section "ServerLayout"
    
    # Removed Option "Xinerama" "0"
    # commented out by ubuntu-release-upgrader, HAL is now used and auto-detects devices
    # Keyboard settings are now read from /etc/default/console-setup
    #    InputDevice    "Keyboard0" "CoreKeyboard"
    # commented out by ubuntu-release-upgrader, HAL is now used and auto-detects devices
    # Keyboard settings are now read from /etc/default/console-setup
    #    InputDevice    "Mouse0" "CorePointer"
        Identifier     "Layout0"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0" "CorePointer"
        Option         "Xinerama" "1"
    EndSection
    
    Section "Files"
    EndSection
    
    Section "InputDevice"
    
        # generated from default
        Identifier     "Keyboard0"
        Driver         "keyboard"
    EndSection
    
    Section "InputDevice"
    
        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "Unknown"
        ModelName      "HP 2511"
        HorizSync       24.0 - 94.0
        VertRefresh     50.0 - 76.0
        Option         "DPMS"
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor1"
        VendorName     "Unknown"
        ModelName      "Acer AL2216W"
        HorizSync       30.0 - 82.0
        VertRefresh     56.0 - 76.0
    EndSection
    
    Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "GeForce GT 520"
        BusID          "PCI:1:0:0"
        Screen          0
    EndSection
    
    Section "Device"
        Identifier     "Device1"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "GeForce GT 520"
        BusID          "PCI:1:0:0"
        Screen          1
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        Option         "TwinView" "0"
        Option         "TwinViewXineramaInfoOrder" "DFP-0"
        Option         "metamodes" "DFP: nvidia-auto-select +0+0"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier     "Screen1"
        Device         "Device1"
        Monitor        "Monitor1"
        DefaultDepth    24
        Option         "TwinView" "0"
        Option         "TwinViewXineramaInfoOrder" "CRT-1"
        Option         "metamodes" "CRT: nvidia-auto-select +0+0"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
    Section "Extensions"
        Option         "Composite" "Disable"
    EndSection
    

    edit 1

    /var/log/kern.log:

    Mar 13 03:02:27 regDesktopHome kernel: [   38.472421] NVRM: API mismatch: the client has the version 331.49, but
    Mar 13 03:02:27 regDesktopHome kernel: [   38.472421] NVRM: this kernel module has the version 304.88.  Please
    Mar 13 03:02:27 regDesktopHome kernel: [   38.472421] NVRM: make sure that this kernel module and all NVIDIA driver
    Mar 13 03:02:27 regDesktopHome kernel: [   38.472421] NVRM: components have the same version.
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254399] NVRM: API mismatch: the client has the version 331.49, but
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254399] NVRM: this kernel module has the version 304.88.  Please
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254399] NVRM: make sure that this kernel module and all NVIDIA driver
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254399] NVRM: components have the same version.
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254656] NVRM: API mismatch: the client has the version 331.49, but
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254656] NVRM: this kernel module has the version 304.88.  Please
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254656] NVRM: make sure that this kernel module and all NVIDIA driver
    Mar 13 03:03:27 regDesktopHome kernel: [   99.254656] NVRM: components have the same version.
    Mar 13 03:04:17 regDesktopHome kernel: [  149.314821] NVRM: API mismatch: the client has the version 331.49, but
    Mar 13 03:04:17 regDesktopHome kernel: [  149.314821] NVRM: this kernel module has the version 304.88.  Please
    Mar 13 03:04:17 regDesktopHome kernel: [  149.314821] NVRM: make sure that this kernel module and all NVIDIA driver
    Mar 13 03:04:17 regDesktopHome kernel: [  149.314821] NVRM: components have the same version.
    

    edit 2

    Okay,

    I did a dpkg-reconfigure xserver-xorg, then rebooted and now, I at least get a graphical login window but KDE never starts, entering my password just throws me ack to the login age... how can I proceed from here? I'm sure I'm entering the right password!

    • enedil
      enedil about 10 years
      Which distro are using?
    • vonbrand
      vonbrand about 10 years
      Kernel is (yet again) miles ahead of nVidia's binary driver. Chuck it, by now nouveau works well enough.
    • stdcerr
      stdcerr about 10 years
      @enedil I'm using Kubuntu
    • stdcerr
      stdcerr about 10 years
      @vonbrand nouveau..? nmever heard, I'll give it a shot i guess, can't hurt... is this what the Ubuntu drivers are built with?
    • vonbrand
      vonbrand about 10 years
      @cerr, it is the open source driver, shipped with the kernel.
    • Alen Milakovic
      Alen Milakovic about 8 years
      On Debian/Ubuntu, it's customary to compile a binary Nvidia kernel module using the Debian nvidia module sources.
    • einpoklum
      einpoklum over 7 years
      @vonbrand: Nouveau doesn't do CUDA, so that's not always an option.
  • einpoklum
    einpoklum over 7 years
    Why is step 4 useful?
  • einpoklum
    einpoklum over 7 years
    But how do you "make sure" of that?