Skip to content

Ubuntu 24.04 LTS Linux kernel 6.8 patch for UsbHasp / Решение проблемы установки usbhasp на Ubuntu 24.04 (ядро 6.8) #8

Description

@OlleVi

Решение проблемы установки usbhasp на Ubuntu 24.04 (ядро 6.8)

Проблема

При установке возникает ошибка компиляции модуля usb-vhci-hcd:

/var/lib/dkms/usb-vhci-hcd/1.15.1/build/usb-vhci-iocifc.c:1096:10: error: ‘struct class’ has no member named ‘owner’
 1096 |         .owner = THIS_MODULE,
      |          ^~~~~

Причина

В ядре Linux 6.8 из структуры class удалено поле owner, а драйвер версии 1.15.1 пытается его инициализировать.

Решение

Патч

  1. Создайте файл first_patch.sh рядом с install.sh:
    nano first_patch.sh
    Вставьте текст патча (см. ниже), сохраните.
  2. Запустите
    chmod +x first_patch.sh
    sudo first_patch.sh
  3. Запустите оригинальный install.sh

Содержимое first_patch.sh

#!/bin/bash
# first_patch.sh — удаляет .owner = THIS_MODULE только из структуры class
# Запускать из корня распакованного архива usbhasp (там где лежит install.sh)

set -e

SDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TARGET_FILE="$SDIR/src/usb-vhci-hcd-1.15.1/usb-vhci-iocifc.c"

if [ ! -f "$TARGET_FILE" ]; then
    echo "Ошибка: не найден $TARGET_FILE"
    echo "Убедитесь, что скрипт запускается из корня распакованного архива"
    exit 1
fi

# Создаём резервную копию
cp "$TARGET_FILE" "$TARGET_FILE.bak"
echo "✅ Создана резервная копия: $TARGET_FILE.bak"

# Удаляем строку с .owner = THIS_MODULE только внутри блока static struct class vhci_iocifc_class
sed -i '/static struct class vhci_iocifc_class = {/,/^};/ { /\.owner = THIS_MODULE/d }' "$TARGET_FILE"

echo "✅ Патч применён: удалена строка '.owner = THIS_MODULE' из структуры class"
echo "Теперь можно запускать ./install.sh"

Проверено на:

  • Ubuntu 24.04 LTS
  • Ядро 6.8.0-101-generic

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions