Автор Гілка: Збірка пакунка драйвера для Fedora 21  (Прочитано 10423 раз)

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Є китайське USB Wi-Fi щось там.. ну важко чимось путнім назвати, але достатнім для різних дрібничок.
До нього дають драйвер під лінукс, та є патч для Fedora.. одним словом процес встановлення виглядає так:
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
patch -p0 < ./rt2870-mt7601Usta-kuid_t-kgid_t.patch
make
mkdir -p /etc/Wireless/RT2870STA
cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat
/sbin/insmod os/linux/mt7601Usta.ko
make install
Патч виглядає так:
--- include/os/rt_linux.h      2013-09-12 13:27:14.000000000 +0800
+++ include/os/rt_linux.h      2014-03-23 11:45:03.907628847 +0800
@@ -279,8 +279,8 @@ typedef struct file* RTMP_OS_FD;
 
 typedef struct _OS_FS_INFO_
 {
-      int                        fsuid;
-      int                        fsgid;
+      kuid_t                        fsuid;
+      kgid_t                        fsgid;
       mm_segment_t      fs;
 } OS_FS_INFO;
 
--- sta/sta_cfg.c      2013-09-12 13:27:14.000000000 +0800
+++ sta/sta_cfg.c      2014-12-15 11:49:50.747843025 +0800
@@ -5763,7 +5763,10 @@
             wrq->u.data.length = strlen(extra) + 1; /* 1: size of '\0' */
             break;
         case SHOW_DRVIER_VERION:
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdate-time"
             snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
+#pragma GCC diagnostic pop
             wrq->u.data.length = strlen(extra) + 1; /* 1: size of '\0' */
             break;
 #ifdef DOT11_N_SUPPORT
Все працює.. ну поки ядро не оновиш.. трохи помізкувавши вирішив що треба пакунок зібрати.. зважаючи що це драйвер і косяк може коштувати чимало вирішив спитати детальну покрокову інструкцію як це зробити, якщо опишете на прикладі цього драйвера буду дуже вдячний..
Ось сам драйвер з файлом патча всередині.
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній ysenko

  • Новачок
  • *
  • дописів: 35
  • Карма: +1/-0
  • Python developer
Re: Збірка пакунка драйвера для Fedora 21
« Відповідей #1 : 2015-03-19 13:19:20 »
Якщо чесно, то ніколи не доводилося збирати свій пакунок. Але тут, здається, описано все дуже детально: https://fedoraproject.org/wiki/How_to_create_an_RPM_package

Хоча, наскільки я розумію, то модуль ядра (драйвер вашого пристрою) потрібно перезбирати для нового ядра заново і інсталяція того самого пакунка, мабуть, не допоможе. Можливо варто дивитися в сторону dkms: http://wiki.centos.org/HowTos/BuildingKernelModules#head-d313bd351f90d4f25a2143b7bbcff73f927731f0
« Змінено: 2015-03-19 13:25:52 від ysenko »
import antigravity

Відсутній anatolijd

  • Графоман
  • ****
  • дописів: 325
  • Карма: +0/-0
Re: Збірка пакунка драйвера для Fedora 21
« Відповідей #2 : 2015-03-20 16:02:26 »
+1 DKMS.

Була колись схожа проблема, CentOS-5.1 не мав драйверів для мережевої картки RTL, але був доступний патч.
Вирішилось збиранням dkms-пакету.

В двох словах,
вам потрібно спочатку встановити сам dkms в системі. Його задача - при апдейті ядра автоматично перезібрати всі dkms-залежні модулі.

І крок 2 - зібрати і всановити свій спеціальний dkms-rt2870sta-xxx.rpm пакет.
  Цей спеціальний пакет повинен вміти зареєструвати залежний модуль в dkms і знати як перезібрати і підключити новий модуль в ядро при потребі.