Решение проблемы установки 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 пытается его инициализировать.
Решение
Патч
- Создайте файл first_patch.sh рядом с install.sh:
nano first_patch.sh
Вставьте текст патча (см. ниже), сохраните.
- Запустите
chmod +x first_patch.sh
sudo first_patch.sh
- Запустите оригинальный 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
Решение проблемы установки usbhasp на Ubuntu 24.04 (ядро 6.8)
Проблема
При установке возникает ошибка компиляции модуля usb-vhci-hcd:
Причина
В ядре Linux 6.8 из структуры
classудалено полеowner, а драйвер версии 1.15.1 пытается его инициализировать.Решение
Патч
nano first_patch.shВставьте текст патча (см. ниже), сохраните.
chmod +x first_patch.shsudo first_patch.shСодержимое first_patch.sh
Проверено на: