রালিংক আরটি 2870 এর জন্য ড্রাইভারগুলি সংকলন করার সময় ত্রুটি


14

আমি কালী লিনাক্সে গোলাপউইল আরএনএক্স-এন 60000 ওয়্যারলেস কার্ড (রালিংক আরটি 2870 চিপসেট) জন্য ড্রাইভার ইনস্টল করার চেষ্টা করছি। আমি ড্রাইভারগুলি তাদের ওয়েবসাইট গঠন করেছি এবং তাদের আনপ্যাকড / আনজিপড করেছি, তবে এখন যখন আমি 'মেক' কমান্ড চালানোর চেষ্টা করি তখন আমি এই ত্রুটিটি পাই।

/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

আমার মনে হয় আপনার কোনও কিছুর আলাদা সংস্করণ দরকার হতে পারে, সংকলক হতে পারে?
প্লাজমাপাওয়ার

পার্শ্ব-নোট হিসাবে, কেন কেউ কলির সাথে লিনাক্স ফিডলে নতুন করে যাবেন? নিম্ন স্তরের সরঞ্জামগুলি সহ সুরক্ষা পরীক্ষা এবং আক্রমণগুলির জন্য একটি ডিসট্রো তৈরি করে। অবশ্যই কোনও অনভিজ্ঞ লিনাক্স ব্যবহারকারীর জন্য নয়
MestreLion

উত্তর:


19

সমস্যাটি হ'ল সাম্প্রতিক 3.x কার্নেলের মধ্যে কার্নেল শিরোনাম / ইন্টারফেসগুলির মধ্যে একটি পরিবর্তন হয়েছে। যেখানে কোনও ইউআইডি / জিআইডি মানগুলি প্রথমে নিয়মিত পূর্ণসংখ্যা হিসাবে উল্লেখ করা হত, সেগুলি এখন একক উপাদান সহ স্ট্রাক্ট। পুরানো সংজ্ঞাটির উপর নির্ভর করে যে কোনও কোড নতুন কার্নেল শিরোনামের সাথে মিলিয়ে আপডেট না হওয়া পর্যন্ত সংকলন করতে ব্যর্থ হবে।

আমি বর্তমানে আমার উবুন্টু ইনস্টলের জন্য ভার্চুয়ালবক্স-অতিথি-ব্যবহারগুলিতে অনুরূপ ত্রুটির প্যাচিং নিয়ে পরীক্ষা করছি; তত্ত্ব লোকেটিং এবং দৃষ্টান্ত প্রতিস্থাপন মধ্যে ->i_uid =দিয়ে ->i_uid.val =বা ->i_gid =সঙ্গে ->i_gid.val =লাইন সংখ্যা থাকা ত্রুটির সমস্যা ঠিক করা উচিত রিপোর্ট (কিন্তু আমি গ্যারান্টি এই সময় সংকলন যেমন এখন আমার জন্য একটি ভিন্ন, সম্পর্কহীন, ত্রুটি উপর ব্যর্থ হচ্ছে না পারে)।

আপনার সেরা বাজিটি নতুন কার্নেলগুলির সাথে কাজ করে এমন উত্সের আপডেট হওয়া সংস্করণের জন্য আপনার কোডের মূল লেখকের সাথে যোগাযোগ করা।


7
পরিক্ষিত! এটি কাজ করে! আমি পরিবর্তিত current_fsuid()হয়েছিলcurrent_fsuid().val
জোনাথন

1
আমার জন্য, আমাকেও বদলাতে current_fsgid()হয়েছিলcurrent_fsgid().val
আমি

@ জোনাথনলিডার্স স্পর্শ é ধন্যবাদ যাইহোক, প্যাচ রূপান্তর intকরার kuid_tএছাড়াও কৌতুক করতে বলে মনে হয়।
উত্সাহী

10

আমি এই ওয়েবসাইটে অন্য ড্রাইভারের মধ্যে সংকলনের ত্রুটিগুলির সমাধান পেয়েছি: http://www.arnelborja.com/compiling-rt2870-wifi-driver-in-fedora/

নীচে প্যাচ সামগ্রী:

--- 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
এটি মিডিটেক / রালিংক 148F: 7601 চিপসেটের জন্যও ব্যবহৃত এমটি 7601 ইউ ড্রাইভারের জন্য একটি কার্যকর, কার্যক্ষম সমাধান। (হ্যাঁ, আমি এসইও কারণে এই কীওয়ার্ডগুলি যুক্ত করছি))
বিলিজম্যাক

ফেডোরা 27-তে আমার কার্নেল 4.13.16-302.fc27.x86_64 এর জন্য, এটি আর কাজ করবে না। সংকলন ত্রুটি ব্যর্থ।
kmonsoor

@ বিলিজেএমসি: কেবলমাত্র নোট করুন যে, যেমন এই সমাধানটি কার্নেল <3.5 এর জন্য কাজ করে না, যেখানে kuid_tএবং kgid_tসেখানে প্রবর্তিত হয়েছিল। তাদের জন্য kঅবশ্যই বাদ uid_t fsuid;gid_t fsgid;
পড়তে হবে

2

make কেবল ত্রুটিগুলি প্রতিবেদন করে তবে সেগুলি আসলে আপনার সংকলক (সম্ভবত জিসিসি) এর ত্রুটি:

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

মূলত, আপনার কোডটি আপনার প্ল্যাটফর্মের জন্য বগী বা অনুপযুক্ত তবে makeসঠিকভাবে কাজ করে।


1

এই সমাধানটি আমার পক্ষে কাজ করেছিল। আমি অনুসরণ করা পদ্ধতিটি ছিল:

  1. আমি এখান থেকে আমার বিতরণ (ডেবিয়ান জেসি) পদক্ষেপগুলি অনুসরণ করেছি ।

  2. আমি প্রস্তুতকারকের লিনাক্সের জন্য ডি ড্রাইভার চালিয়েছি (যা সিডিরোমে সরঞ্জামগুলি নিয়ে আসে) এবং আমি এটি একটি ফোল্ডারে আনজিপ করেছিলাম।

  3. ফোল্ডারে, আমি টাইপ করেছি make(হিসাবে root), এবং আমি একটি ত্রুটি পেয়েছি। সুতরাং, আমি উপরের পরিবর্তনটি করেছি এবং এটি কার্যকর হয়েছে।

  4. আমি টাইপ make install(হিসাবে root) করেছি, কম্পিউটারটি রিবুট করেছি এবং ওয়্যারলেস ইন্টারফেসটি স্বীকৃত। আমি এটি কনফিগার করেছি এবং এটি কাজ করেছে। ;)

আমার সিস্টেমটি হ'ল ডিবান জেসি, কার্নেল 3.16.0-4-amd64, জিনোম ব্যবহার করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.