Ralink RT2870 için sürücüler derleme hatası


14

Kali Linux'ta rosewill RNX-N600UBE kablosuz kartı (Ralink RT2870 yonga seti) için sürücüleri yüklemeye çalışıyorum. Ben sürücüleri kendi web sitesi form indirilen ve paketinden / unzipped, ama şimdi 'make' komutunu çalıştırmaya çalıştığınızda bu hatayı alıyorum.

/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1156:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1157:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
make[4]: *** [/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.o] Error 1
make[3]: *** [_module_/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2

Sanırım bir şeyin farklı bir versiyonuna ihtiyacınız olabilir, belki derleyici?
Plazma Güç

Bir yan not olarak, Linux'ta yeni biri neden Kali ile uğraşsın ki? Bu, düşük seviye araçlarla dolu güvenlik testleri ve saldırıları için bir dağıtımdır. Kesinlikle tecrübesiz bir linux kullanıcısı için değil
MestreLion

Yanıtlar:


19

Sorun, çekirdek başlıklarından / arabirimlerinden birinin son 3.x çekirdeğinde değişmesidir. Bir UID / GID değerlerinin başlangıçta normal tamsayılar olarak adlandırıldığı yerlerde, bunlar artık tek bir öğeye sahip yapılardır. Eski tanıma dayanan herhangi bir kod, yeni çekirdek üstbilgileriyle eşleşecek şekilde güncellenene kadar derlenemez.

Şu anda benim Ubuntu yüklemesi için virtualbox-guest-utils benzer bir hata yama ile deneme; teori bulma ve örneklerini değiştirilmesinde ->i_uid =ile ->i_uid.val =veya ->i_gid =birlikte ->i_gid.val =hat numaraları sorunu çözmek gerekir yanlışlıkla bildirilen (ama bu şimdi benim için farklı, ilgisiz, hata durumunda başarısız derleme olarak şu anda garanti olamaz).

En iyi seçeneğiniz, daha yeni çekirdeklerle çalışan kaynağın güncellenmiş bir sürümü için kodunuzun orijinal yazarıyla bağlantı kurmaktır.


7
Test! Bu işe yarıyor! Değiştim current_fsuid()içincurrent_fsuid().val
Jonathan

1
Benim için, ben de değişime vardı current_fsgid()içincurrent_fsgid().val
kod ister

@JonathanLeaders touché Teşekkürler. Ancak, dönüştürme yama intiçin kuid_tde hileye neden olabilir.
enthusiasticgeek

10

Bu web sitesindeki başka bir sürücüde derleme hataları için bir düzeltme buldum: http://www.arnelborja.com/compiling-rt2870-wifi-driver-in-fedora/

yama içeriği aşağıdadır:

--- include/os/rt_linux.h   2013-09-12 13:27:14.000000000 +0800
+++ include/os/rt_linux.h.patched   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;

1
Bu, Mediatek / Ralink 148F: 7601 yongaseti için de kullanılan MT7601U sürücüsü için iyi, çalışan bir çözümdür. (Evet, bu anahtar kelimeleri SEO nedeniyle ekliyorum.)
billyjmc

Fedora 27'deki 4.13.16-302.fc27.x86_64 çekirdeğim için bu artık çalışmıyor. Derleme hatası başarısız.
kmonsoor

@billyjmc: Sadece olduğu gibi, bu çözüm çekirdekleri için çalışmalarını <3.5 olmuyorsa, dikkat kuid_tve kgid_ttanıtıldı. Bunlar için, kolduğu gibi bırakılmalıdır uid_t fsuid;vegid_t fsgid;
MestreLion

2

make yalnızca hataları rapor eder, ancak aslında derleyicinizden gelen hatalardır (muhtemelen gcc):

error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’ 

Temel olarak, kodunuz platformunuz için hatalı veya uygunsuzdur, ancak makedüzgün çalışır.


1

Bu çözüm benim için çalıştı. Takip ettiğim prosedür şuydu:

  1. Buradan dağıtımım için adımları takip ettim (Debian Jessie) .

  2. Üreticinin Linux için de sürücüsünü (CDROM'daki ekipmanla birlikte gelir) kurtardım ve bir klasöre çıkarttım.

  3. Klasöre make(as root) yazdım ve bir hata aldım. Yani, yukarıdaki değişikliği yaptım ve işe yaradı.

  4. Ben daktilo make install(aynı rootben bilgisayarı yeniden) ve kablosuz arayüz tanındı. Ben yapılandırdım ve işe yaradı. ;)

Sistemim: Debian Jessie, çekirdek 3.16.0-4-amd64, gnome kullanıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.