[SOLVED]Errori di compilazione VirtualBox su Current

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
gian_d
Linux 0.x
Linux 0.x
Messaggi: 82
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

[SOLVED]Errori di compilazione VirtualBox su Current

Messaggioda gian_d » mer ago 28, 2019 16:15

Da diversi giorni non riuscivo più a installare le nuove versioni di VBox a causa di un errore durante la compilazione. Non so se altri hanno avuto lo stesso problema o potrebbero eventualmente incontrarlo. L'errore è generato da un formato errato di 32 variabili integer che invece sono richiamate come stringhe in uno dei file sorgenti.

Non riuscendo a risolvere mi sono rivolto ieri al forum ufficiale di VirtualBox e in tempi rapidissimi un utente dello staff di Oracle (gentilissimo!), mi ha dato oggi la soluzione al problema; per chi fosse interessato l'indirizzo è questo: https://forums.virtualbox.org/viewtopic ... 10&t=94467

Per chi usasse lo slackbuild del repository di Ponce faccio presente che lo Slackbuild è pienamente compatibile con le versioni più recenti (attualmente la 6.0.10) con i seguenti adattamenti:

1) il testo della patch vboxdrv.sh-setup.diff va adattato sostituendolo con il seguente:

Codice: Seleziona tutto

--- "VirtualBox-6 1.0.10-orig/src/VBox/Installer/linux/vboxdrv.sh"   2019-07-12 10:38:23.000000000 +0200
+++ "VirtualBox-6 1.0.10/src/VBox/Installer/linux/vboxdrv.sh"   2019-08-27 09:27:29.062734204 +0200
@@ -61,23 +61,8 @@ export BUILD_TYPE
 export USERNAME
 export USER=$USERNAME
 
-if test -n "${INSTALL_DIR}" && test -x "${INSTALL_DIR}/VirtualBox"; then
-    MODULE_SRC="${INSTALL_DIR}/src/vboxhost"
-elif test -x /usr/lib/virtualbox/VirtualBox; then
-    INSTALL_DIR=/usr/lib/virtualbox
-    MODULE_SRC="/usr/share/virtualbox/src/vboxhost"
-elif test -x "${SCRIPT_DIR}/VirtualBox"; then
-    # Executing from the build directory
-    INSTALL_DIR="${SCRIPT_DIR}"
-    MODULE_SRC="${INSTALL_DIR}/src"
-else
-    # Silently exit if the package was uninstalled but not purged.
-    # Applies to Debian packages only (but shouldn't hurt elsewhere)
-    exit 0
-fi
 VIRTUALBOX="${INSTALL_DIR}/VirtualBox"
 VBOXMANAGE="${INSTALL_DIR}/VBoxManage"
-BUILDINTMP="${MODULE_SRC}/build_in_tmp"
 if test -u "${VIRTUALBOX}"; then
     GROUP=root
     DEVICE_MODE=0600
@@ -152,117 +137,6 @@ module_build_log()
         >> "${LOG}"
 }
 
-## Output the vboxdrv part of our udev rule.  This is redirected to the right file.
-udev_write_vboxdrv() {
-    VBOXDRV_GRP="$1"
-    VBOXDRV_MODE="$2"
-
-    echo "KERNEL==\"vboxdrv\", NAME=\"vboxdrv\", OWNER=\"root\", GROUP=\"$VBOXDRV_GRP\", MODE=\"$VBOXDRV_MODE\""
-    echo "KERNEL==\"vboxdrvu\", NAME=\"vboxdrvu\", OWNER=\"root\", GROUP=\"root\", MODE=\"0666\""
-    echo "KERNEL==\"vboxnetctl\", NAME=\"vboxnetctl\", OWNER=\"root\", GROUP=\"$VBOXDRV_GRP\", MODE=\"$VBOXDRV_MODE\""
-}
-
-## Output the USB part of our udev rule.  This is redirected to the right file.
-udev_write_usb() {
-    INSTALLATION_DIR="$1"
-    USB_GROUP="$2"
-
-    echo "SUBSYSTEM==\"usb_device\", ACTION==\"add\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}${USB_GROUP}\""
-    echo "SUBSYSTEM==\"usb\", ACTION==\"add\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}${USB_GROUP}\""
-    echo "SUBSYSTEM==\"usb_device\", ACTION==\"remove\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh --remove \$major \$minor\""
-    echo "SUBSYSTEM==\"usb\", ACTION==\"remove\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh --remove \$major \$minor\""
-}
-
-## Generate our udev rule file.  This takes a change in udev rule syntax in
-## version 55 into account.  It only creates rules for USB for udev versions
-## recent enough to support USB device nodes.
-generate_udev_rule() {
-    VBOXDRV_GRP="$1"      # The group owning the vboxdrv device
-    VBOXDRV_MODE="$2"     # The access mode for the vboxdrv device
-    INSTALLATION_DIR="$3" # The directory VirtualBox is installed in
-    USB_GROUP="$4"        # The group that has permission to access USB devices
-    NO_INSTALL="$5"       # Set this to "1" to remove but not re-install rules
-
-    # Extra space!
-    case "$USB_GROUP" in ?*) USB_GROUP=" $USB_GROUP" ;; esac
-    case "$NO_INSTALL" in "1") return ;; esac
-    udev_write_vboxdrv "$VBOXDRV_GRP" "$VBOXDRV_MODE"
-    udev_write_usb "$INSTALLATION_DIR" "$USB_GROUP"
-}
-
-## Install udev rule (disable with INSTALL_NO_UDEV=1 in
-## /etc/default/virtualbox).
-install_udev() {
-    VBOXDRV_GRP="$1"      # The group owning the vboxdrv device
-    VBOXDRV_MODE="$2"     # The access mode for the vboxdrv device
-    INSTALLATION_DIR="$3" # The directory VirtualBox is installed in
-    USB_GROUP="$4"        # The group that has permission to access USB devices
-    NO_INSTALL="$5"       # Set this to "1" to remove but not re-install rules
-
-    if test -d /etc/udev/rules.d; then
-        generate_udev_rule "$VBOXDRV_GRP" "$VBOXDRV_MODE" "$INSTALLATION_DIR" \
-                           "$USB_GROUP" "$NO_INSTALL"
-    fi
-    # Remove old udev description file
-    rm -f /etc/udev/rules.d/10-vboxdrv.rules 2> /dev/null
-}
-
-## Create a usb device node for a given sysfs path to a USB device.
-install_create_usb_node_for_sysfs() {
-    path="$1"           # sysfs path for the device
-    usb_createnode="$2" # Path to the USB device node creation script
-    usb_group="$3"      # The group to give ownership of the node to
-    if test -r "${path}/dev"; then
-        dev="`cat "${path}/dev" 2> /dev/null`"
-        major="`expr "$dev" : '\(.*\):' 2> /dev/null`"
-        minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null`"
-        class="`cat ${path}/bDeviceClass 2> /dev/null`"
-        sh "${usb_createnode}" "$major" "$minor" "$class" \
-              "${usb_group}" 2>/dev/null
-    fi
-}
-
-udev_rule_file=/etc/udev/rules.d/60-vboxdrv.rules
-sysfs_usb_devices="/sys/bus/usb/devices/*"
-
-## Install udev rules and create device nodes for usb access
-setup_usb() {
-    VBOXDRV_GRP="$1"      # The group that should own /dev/vboxdrv
-    VBOXDRV_MODE="$2"     # The mode to be used for /dev/vboxdrv
-    INSTALLATION_DIR="$3" # The directory VirtualBox is installed in
-    USB_GROUP="$4"        # The group that should own the /dev/vboxusb device
-                          # nodes unless INSTALL_NO_GROUP=1 in
-                          # /etc/default/virtualbox.  Optional.
-    usb_createnode="$INSTALLATION_DIR/VBoxCreateUSBNode.sh"
-    # install udev rule (disable with INSTALL_NO_UDEV=1 in
-    # /etc/default/virtualbox)
-    if [ "$INSTALL_NO_GROUP" != "1" ]; then
-        usb_group=$USB_GROUP
-        vboxdrv_group=$VBOXDRV_GRP
-    else
-        usb_group=root
-        vboxdrv_group=root
-    fi
-    install_udev "${vboxdrv_group}" "$VBOXDRV_MODE" \
-                 "$INSTALLATION_DIR" "${usb_group}" \
-                 "$INSTALL_NO_UDEV" > ${udev_rule_file}
-    # Build our device tree
-    for i in ${sysfs_usb_devices}; do  # This line intentionally without quotes.
-        install_create_usb_node_for_sysfs "$i" "${usb_createnode}" \
-                                          "${usb_group}"
-    done
-}
-
-cleanup_usb()
-{
-    # Remove udev description file
-    rm -f /etc/udev/rules.d/60-vboxdrv.rules
-    rm -f /etc/udev/rules.d/10-vboxdrv.rules
-
-    # Remove our USB device tree
-    rm -rf /dev/vboxusb
-}
-
 start()
 {
     begin_msg "Starting VirtualBox services" console
@@ -334,8 +208,6 @@ See the documenatation for your Linux di
         mkdir -p -m 0750 /dev/vboxusb 2>/dev/null
         chown root:vboxusers /dev/vboxusb 2>/dev/null
     fi
-    # Remove any kernel modules left over from previously installed kernels.
-    cleanup only_old
     succ_msg "VirtualBox services started"
 }
 
@@ -416,80 +288,9 @@ stop_vms()
     fi
 }
 
-cleanup()
-{
-    # If this is set, only remove kernel modules for no longer installed
-    # kernels.  Note that only generated kernel modules should be placed
-    # in /lib/modules/*/misc.  Anything that we should not remove automatically
-    # should go elsewhere.
-    only_old="${1}"
-    for i in /lib/modules/*; do
-        # Check whether we are only cleaning up for uninstalled kernels.
-        test -n "${only_old}" && test -e "${i}/kernel/drivers" && continue
-        # We could just do "rm -f", but we only want to try deleting folders if
-        # we are sure they were ours, i.e. they had our modules in beforehand.
-        if    test -e "${i}/misc/vboxdrv.ko" \
-           || test -e "${i}/misc/vboxnetadp.ko" \
-           || test -e "${i}/misc/vboxnetflt.ko" \
-           || test -e "${i}/misc/vboxpci.ko"; then
-            rm -f "${i}/misc/vboxdrv.ko" "${i}/misc/vboxnetadp.ko" \
-                  "${i}/misc/vboxnetflt.ko" "${i}/misc/vboxpci.ko"
-            version=`expr "${i}" : "/lib/modules/\(.*\)"`
-            depmod -a "${version}"
-            sync
-        fi
-        # Remove the kernel version folder if it was empty except for us.
-        test   "`echo ${i}/misc/* ${i}/misc/.?* ${i}/* ${i}/.?*`" \
-             = "${i}/misc/* ${i}/misc/.. ${i}/misc ${i}/.." &&
-            rmdir "${i}/misc" "${i}"  # We used to leave empty folders.
-    done
-}
-
 # setup_script
 setup()
 {
-    begin_msg "Building VirtualBox kernel modules" console
-    log "Building the main VirtualBox module."
-    if ! myerr=`$BUILDINTMP \
-        --save-module-symvers /tmp/vboxdrv-Module.symvers \
-        --module-source "$MODULE_SRC/vboxdrv" \
-        --no-print-directory install 2>&1`; then
-        "${INSTALL_DIR}/check_module_dependencies.sh" || exit 1
-        log "Error building the module:"
-        module_build_log "$myerr"
-        failure "Look at $LOG to find out what went wrong"
-    fi
-    log "Building the net filter module."
-    if ! myerr=`$BUILDINTMP \
-        --use-module-symvers /tmp/vboxdrv-Module.symvers \
-        --module-source "$MODULE_SRC/vboxnetflt" \
-        --no-print-directory install 2>&1`; then
-        log "Error building the module:"
-        module_build_log "$myerr"
-        failure "Look at $LOG to find out what went wrong"
-    fi
-    log "Building the net adaptor module."
-    if ! myerr=`$BUILDINTMP \
-        --use-module-symvers /tmp/vboxdrv-Module.symvers \
-        --module-source "$MODULE_SRC/vboxnetadp" \
-        --no-print-directory install 2>&1`; then
-        log "Error building the module:"
-        module_build_log "$myerr"
-        failure "Look at $LOG to find out what went wrong"
-    fi
-    log "Building the PCI pass-through module."
-    if ! myerr=`$BUILDINTMP \
-        --use-module-symvers /tmp/vboxdrv-Module.symvers \
-        --module-source "$MODULE_SRC/vboxpci" \
-        --no-print-directory install 2>&1`; then
-        log "Error building the module:"
-        module_build_log "$myerr"
-        failure "Look at $LOG to find out what went wrong"
-    fi
-    rm -f /etc/vbox/module_not_compiled
-    depmod -a
-    sync
-    succ_msg "VirtualBox kernel modules built"
     # Secure boot on Ubuntu and Debian.
     if test -n "$HAVE_SEC_BOOT" &&
         type update-secureboot-policy >/dev/null 2>&1; then
@@ -510,6 +311,7 @@ setup()
             begin_msg "Failed to enroll secure boot key." console
         rmdir -p /var/lib/dkms/vbox-temp 2>/dev/null
     fi
+    echo "Not implemented! Please use the virtualbox-kernel.SlackBuild available at SlackBuilds.org instead."
 }
 
 dmnstatus()
@@ -566,13 +368,7 @@ setup)
     ## todo Do we need a udev rule to create /dev/vboxdrv[u] at all?  We have
     ## working fall-back code here anyway, and the "right" code is more complex
     ## than the fall-back.  Unnecessary duplication?
-    stop && cleanup
-    setup_usb "$GROUP" "$DEVICE_MODE" "$INSTALL_DIR"
-    start
-    ;;
-cleanup)
-    stop && cleanup
-    cleanup_usb
+setup
     ;;
 force-reload)
     stop


2) Il testo della patch 006-rdesktop-vrdp-keymap-path.patch va adattato sostituendo il seguente:

Codice: Seleziona tutto

--- "VirtualBox-6 1.0.10-orig/src/VBox/RDP/client-1.8.4/Makefile.kmk"   2019-07-12 10:38:36.000000000 +0200
+++ "VirtualBox-6 1.0.10/src/VBox/RDP/client-1.8.4/Makefile.kmk"   2019-08-27 09:36:24.194721175 +0200
@@ -41,7 +41,7 @@ rdesktop-vrdp_DEFS = \
    EGD_SOCKET=\"/var/run/egd-pool\" WITH_RDPSND=1 HAVE_DIRENT_H=1 \
    HAVE_ICONV=1 HAVE_SYS_STATVFS_H=1 \
    HAVE_SYS_PARAM_H=1 HAVE_SYS_MOUNT_H=1 HAVE_STRUCT_STATVFS_F_NAMEMAX=1 \
-   KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/opt/VirtualBox\")\"/rdesktop-vrdp-keymaps\" \
+   KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/usr/share/virtualbox\")\"/rdesktop-vrdp-keymaps\" \
    RDESKTOP=1
 ifdef WITH_BIRD_VD_HACKS
  rdesktop-vrdp_DEFS += WITH_BIRD_VD_HACKS

(in sostanza non cambia nulla, semplicemente nei nuovi sorgenti il file Makefile.kmk da patchare si trova nella directory client-1.8.4 invece della directory client-1.8.3 com'era riportato nei sorgenti delle vecchie release)

3) la patch python_3.7.patch non va più applicata (il codice nelle nuove versioni è già patchato)

4) va aggiunta la patch di cui dicevo, questo è il testo:

Codice: Seleziona tutto

--- "VirtualBox-6 1.0.10-orig/src/VBox/Devices/PC/vbox-cpuhotplug.dsl"   2019-08-28 14:37:51.872756997 +0200
+++ "VirtualBox-6 1.0.10/src/VBox/Devices/PC/vbox-cpuhotplug.dsl"   2019-08-28 14:38:58.122755384 +0200
@@ -95,38 +95,38 @@ DefinitionBlock ("SSDT-cpuhotplug.aml",
         }                                                                  \
     }                                                                      \
 
-        GENERATE_CPU_OBJECT(0x00, SCK0, "SCKCPU0", CPU0, "SCK0-CPU0")
-        GENERATE_CPU_OBJECT(0x01, SCK1, "SCKCPU1", CPU1, "SCK1-CPU0")
-        GENERATE_CPU_OBJECT(0x02, SCK2, "SCKCPU2", CPU2, "SCK2-CPU0")
-        GENERATE_CPU_OBJECT(0x03, SCK3, "SCKCPU3", CPU3, "SCK3-CPU0")
-        GENERATE_CPU_OBJECT(0x04, SCK4, "SCKCPU4", CPU4, "SCK4-CPU0")
-        GENERATE_CPU_OBJECT(0x05, SCK5, "SCKCPU5", CPU5, "SCK5-CPU0")
-        GENERATE_CPU_OBJECT(0x06, SCK6, "SCKCPU6", CPU6, "SCK6-CPU0")
-        GENERATE_CPU_OBJECT(0x07, SCK7, "SCKCPU7", CPU7, "SCK7-CPU0")
-        GENERATE_CPU_OBJECT(0x08, SCK8, "SCKCPU8", CPU8, "SCK8-CPU0")
-        GENERATE_CPU_OBJECT(0x09, SCK9, "SCKCPU9", CPU9, "SCK9-CPU0")
-        GENERATE_CPU_OBJECT(0x0a, SCKA, "SCKCPUA", CPUA, "SCKA-CPU0")
-        GENERATE_CPU_OBJECT(0x0b, SCKB, "SCKCPUB", CPUB, "SCKB-CPU0")
-        GENERATE_CPU_OBJECT(0x0c, SCKC, "SCKCPUC", CPUC, "SCKC-CPU0")
-        GENERATE_CPU_OBJECT(0x0d, SCKD, "SCKCPUD", CPUD, "SCKD-CPU0")
-        GENERATE_CPU_OBJECT(0x0e, SCKE, "SCKCPUE", CPUE, "SCKE-CPU0")
-        GENERATE_CPU_OBJECT(0x0f, SCKF, "SCKCPUF", CPUF, "SCKF-CPU0")
-        GENERATE_CPU_OBJECT(0x10, SCKG, "SCKCPUG", CPUG, "SCKG-CPU0")
-        GENERATE_CPU_OBJECT(0x11, SCKH, "SCKCPUH", CPUH, "SCKH-CPU0")
-        GENERATE_CPU_OBJECT(0x12, SCKI, "SCKCPUI", CPUI, "SCKI-CPU0")
-        GENERATE_CPU_OBJECT(0x13, SCKJ, "SCKCPUJ", CPUJ, "SCKJ-CPU0")
-        GENERATE_CPU_OBJECT(0x14, SCKK, "SCKCPUK", CPUK, "SCKK-CPU0")
-        GENERATE_CPU_OBJECT(0x15, SCKL, "SCKCPUL", CPUL, "SCKL-CPU0")
-        GENERATE_CPU_OBJECT(0x16, SCKM, "SCKCPUM", CPUM, "SCKM-CPU0")
-        GENERATE_CPU_OBJECT(0x17, SCKN, "SCKCPUN", CPUN, "SCKN-CPU0")
-        GENERATE_CPU_OBJECT(0x18, SCKO, "SCKCPUO", CPUO, "SCKO-CPU0")
-        GENERATE_CPU_OBJECT(0x19, SCKP, "SCKCPUP", CPUP, "SCKP-CPU0")
-        GENERATE_CPU_OBJECT(0x1a, SCKQ, "SCKCPUQ", CPUQ, "SCKQ-CPU0")
-        GENERATE_CPU_OBJECT(0x1b, SCKR, "SCKCPUR", CPUR, "SCKR-CPU0")
-        GENERATE_CPU_OBJECT(0x1c, SCKS, "SCKCPUS", CPUS, "SCKS-CPU0")
-        GENERATE_CPU_OBJECT(0x1d, SCKT, "SCKCPUT", CPUT, "SCKT-CPU0")
-        GENERATE_CPU_OBJECT(0x1e, SCKU, "SCKCPUU", CPUU, "SCKU-CPU0")
-        GENERATE_CPU_OBJECT(0x1f, SCKV, "SCKCPUV", CPUV, "SCKV-CPU0")
+        GENERATE_CPU_OBJECT(0x00, SCK0, "SCKCPU0", CPU0, 0)
+        GENERATE_CPU_OBJECT(0x01, SCK1, "SCKCPU1", CPU1, 1)
+        GENERATE_CPU_OBJECT(0x02, SCK2, "SCKCPU2", CPU2, 2)
+        GENERATE_CPU_OBJECT(0x03, SCK3, "SCKCPU3", CPU3, 3)
+        GENERATE_CPU_OBJECT(0x04, SCK4, "SCKCPU4", CPU4, 4)
+        GENERATE_CPU_OBJECT(0x05, SCK5, "SCKCPU5", CPU5, 5)
+        GENERATE_CPU_OBJECT(0x06, SCK6, "SCKCPU6", CPU6, 6)
+        GENERATE_CPU_OBJECT(0x07, SCK7, "SCKCPU7", CPU7, 7)
+        GENERATE_CPU_OBJECT(0x08, SCK8, "SCKCPU8", CPU8, 8)
+        GENERATE_CPU_OBJECT(0x09, SCK9, "SCKCPU9", CPU9, 9)
+        GENERATE_CPU_OBJECT(0x0a, SCKA, "SCKCPUA", CPUA, 10)
+        GENERATE_CPU_OBJECT(0x0b, SCKB, "SCKCPUB", CPUB, 11)
+        GENERATE_CPU_OBJECT(0x0c, SCKC, "SCKCPUC", CPUC, 12)
+        GENERATE_CPU_OBJECT(0x0d, SCKD, "SCKCPUD", CPUD, 13)
+        GENERATE_CPU_OBJECT(0x0e, SCKE, "SCKCPUE", CPUE, 14)
+        GENERATE_CPU_OBJECT(0x0f, SCKF, "SCKCPUF", CPUF, 15)
+        GENERATE_CPU_OBJECT(0x10, SCKG, "SCKCPUG", CPUG, 16)
+        GENERATE_CPU_OBJECT(0x11, SCKH, "SCKCPUH", CPUH, 17)
+        GENERATE_CPU_OBJECT(0x12, SCKI, "SCKCPUI", CPUI, 18)
+        GENERATE_CPU_OBJECT(0x13, SCKJ, "SCKCPUJ", CPUJ, 19)
+        GENERATE_CPU_OBJECT(0x14, SCKK, "SCKCPUK", CPUK, 20)
+        GENERATE_CPU_OBJECT(0x15, SCKL, "SCKCPUL", CPUL, 21)
+        GENERATE_CPU_OBJECT(0x16, SCKM, "SCKCPUM", CPUM, 22)
+        GENERATE_CPU_OBJECT(0x17, SCKN, "SCKCPUN", CPUN, 23)
+        GENERATE_CPU_OBJECT(0x18, SCKO, "SCKCPUO", CPUO, 24)
+        GENERATE_CPU_OBJECT(0x19, SCKP, "SCKCPUP", CPUP, 25)
+        GENERATE_CPU_OBJECT(0x1a, SCKQ, "SCKCPUQ", CPUQ, 26)
+        GENERATE_CPU_OBJECT(0x1b, SCKR, "SCKCPUR", CPUR, 27)
+        GENERATE_CPU_OBJECT(0x1c, SCKS, "SCKCPUS", CPUS, 28)
+        GENERATE_CPU_OBJECT(0x1d, SCKT, "SCKCPUT", CPUT, 29)
+        GENERATE_CPU_OBJECT(0x1e, SCKU, "SCKCPUU", CPUU, 30)
+        GENERATE_CPU_OBJECT(0x1f, SCKV, "SCKCPUV", CPUV, 31)
 
 #undef GENERATE_CPU_OBJECT
     }


Nello slackbuild si può inserire la seguente riga:

Codice: Seleziona tutto

# Fix wrong variable formats in vbox-cpuhotplug.dsl
 patch -p1 < $CWD/vbox-cpuhotplug.dsl.patch

dove ovviamente vbox-cpuhoplug.dsl.patch è il nome che ho dato al file della patch

Questo è quanto
Ultima modifica di gian_d il mer ago 28, 2019 19:28, modificato 1 volta in totale.

gian_d
Linux 0.x
Linux 0.x
Messaggi: 82
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

Re: Errori di compilazione VirtualBox su Current [Risolto]

Messaggioda gian_d » mer ago 28, 2019 18:11

A integrazione del post precedente metto un rapporto sull'installazione di virtualbox-kernel, richiesto per avviare il modulo specifico del kernel. Anche in questo caso lo slackbuild va adattato come segue:

1) l'archivio compresso virtualbox-kernel-5.2.8.tar.xz va sostituito con uno corrispondente alla versione di virtualbox installata (nella fattispecie la 6.0.10). Questo archivio non si trova in rete ma può essere generato lanciando lo script virtualbox-kernel-mksrctarball.sh (allegato nel repository al pacchetto dello slackbuild). Lo script crea l'archivio virtualbox-kernel-6.0.10.tar.xz estraendo i file necessari dall'installazione di virtualbox. È implicito pertanto che prima di aggiornare virtualbox-kernel si deve aggiornare l'installazione di Virtualbox.

2) nello slackbuild è prevista l'applicazione della patch kernel_4.17.patch. La riga va rimossa o commentata perché le modifiche previste dalla patch sono già presenti nel file da patchare.

Alla fine ho fatto l'installazione e riavviato il computer.
Non so perché, ma dopo una serie di aggiornamenti del sistema avevo scoperto che l'installazione di Virtualbox che avevo sulla current non funzionava più: il programma si avviava ma non era possibile fare il boot di un qualsiasi sistema Guest.
Ora invece è tutto OK.