এডিম্যাক্স ওয়্যারলেস ইউএসবি: EW-7811UN এর জন্য ওয়্যারলেস ড্রাইভার তৈরি করছে


33

আমি আমার ইউএসবি ওয়্যারলেস ডিভাইসটির জন্য মডিউলটি তৈরি করতে কয়েকদিন চেষ্টা চালিয়ে যাচ্ছি।

এটি একটি এডিম্যাক্স EW-7811UN

আমি দেবিয়ানের জন্য মডিউল তৈরির বিভিন্ন সংস্থান পেয়েছি, তবে আর্কের জন্য কিছুই নেই। বর্তমানে আমি রাস্পবেরি পাই গিটহাবের মধ্যে পাওয়া টুলচেইনটি ব্যবহার করে ক্রস-সংকলনের চেষ্টা করছি । এই পদক্ষেপগুলি আমি গ্রহণ করেছি:

  • এডিম্যাক্স ওয়েবসাইট থেকে ড্রাইভার উত্স ডাউনলোড করেছেন ।
  • গিটহাব থেকে কার্নেল উত্স ডাউনলোড করেছেন ।
  • এডিম্যাক্স মেকফাইলে একটি নির্দিষ্ট মেক বিধি তৈরি করেছেন (এডিম্যাক্স ডকুমেন্টেশন অনুযায়ী):

ifeq ($(CONFIG_PLATFORM_PI), y)
  EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
  ARCH := arm
  CROSS_COMPILE := arm-bcm2708-linux-gnueabi-
  KVER  := 3.1.9-30-ARCH+
  KSRC := /pi-sources/lib/modules/3.1.9-30-ARCH+/build 
  MODDESTDIR := /pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/
  INSTALL_PREFIX :=
endif
  • KSRC কার্নেল উত্স সম্বলিত ডিরেক্টরি।
  • MODDESTDIR ডিরেক্টরিটি আপনি মডিউলটি শেষ করতে চান।
  • CROSS_COMPILEআমার সরঞ্জামচেন (যা যোগ করা হয়েছে PATH)

প্রথম প্রচেষ্টাটি makeএই ত্রুটিটি দেয়:

fatal error: linux/smp_lock.h: No such file or directory

আমি দেখতে পেয়েছি যে এটি একটি পুরানো শিরোলেখ, এবং এটির smp.hসমস্যা সমাধানের জন্য এটি সিমেন্টিং করা । যাইহোক, বিল্ডটি এখনও উত্স ত্রুটিগুলির সাথে ব্যর্থ হয়, যা দেখতে এটির মতো দেখাচ্ছে:

error: field 'recv_tasklet' has incomplete type

আমি এই চেহারাগুলি জানার জন্য যথেষ্ট সংকলন করেছি যাতে বিল্ডটি সর্বশেষতম কার্নেল সংস্করণটিকে সমর্থন করে না, তবে এটি যদি তাই হয় তবে এটি ডেবিয়ানের জন্য কীভাবে তৈরি করা হয়েছে?


অতিরিক্ত তথ্য:


আমার কাছে একই অ্যাডাপ্টার রয়েছে, যদিও এখনও চেষ্টা করে দেখতে পেলাম না!
শেন হডসন

আপনি কীভাবে এটি চালিয়ে যান তা দয়া করে আমাকে জানান এবং তা পরে আপনার অভিজ্ঞতা যুক্ত করুন, এমনকি যদি এটি নেতিবাচক হয় তবে।
জিভিংস

টমাস, আরও অনুগ্রহ! নিশ্চিত করুন যে অ্যালেক্স এবার এটি পাবে না :)
জিভিংস

উত্তর:


12

ক্রস সংকলনের জন্য নির্দেশাবলী

  1. এডিম্যাক্স ওয়েবসাইট থেকে ড্রাইভার উত্স ডাউনলোড করেছেন ।

  2. গিটহাব থেকে কার্নেল উত্সগুলি ক্লোন করুন ।

  3. cdআপনার কার্নেল উত্স এবং cdমধ্যে include/linux। চালান

    ln -s smp.h smp_lock.h`.
    
  4. unzipএডিম্যাক্স ডাউনলোড এবং tar -xzfড্রাইভার প্যাকেজ। উপ cd- driver/rtl...ডিরেক্টরিতে।

  5. সম্পাদনা করুন include/rtw_xmit.hএবং #include <linux/interrupt.h>অন্যান্য অন্তর্ভুক্ত অন্তর্ভুক্ত।

  6. সম্পাদনা করুন os_dep/osdep_service.cএবং যুক্ত করুন

    #include <linux/semaphore.h>
    #define init_MUTEX(sem)         sema_init(sem, 1)
    

    অন্য অধীনে অন্তর্ভুক্ত।

  7. সম্পাদনা Makefileযোগ

    ifeq ($(CONFIG_PLATFORM_PI), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-bcm2708-linux-gnueabi-
    KVER  := 3.1.9-30-ARCH+
    KSRC := ~/pi-sources
    MODDESTDIR := ~/pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/
    INSTALL_PREFIX :=
    endif
    

একই বিভাগে।

  1. ধরে arm-bcm2708-linux-gnueabi-{gcc|ld}নেওয়া আপনার পথে আছে, চালান make CONFIG_PLATFORM_PI=y modules

মডিউলটি এখন সংকলন করা উচিত।


বিল্ড সফল! তবে মডিউলটি কোথায় তৈরি হবে? তাই আমি এটি পাইতে অনুলিপি করতে পারি।
জিভিংস

ড্রাইভার প্যাকেজের মূলটি আমার মনে হয়।
অ্যালেক্স চেম্বারলাইন

1
এইচএম, মনে হয় আছে। রহস্যময়। তখন কী লাভ MODDESTDIR?
জিভিংস

কোন ধারনা নাই!!!!!!!!!
অ্যালেক্স চেম্বারলাইন

এটি রাস্পবেরি পাইতে তৈরি করার জন্য আমাকেও /lib/modules/3.1.9-30-ARCH+/buildকার্নেল উত্সগুলিতে ডিরেক্টরিটি সিমলিংক করতে হয়েছিল।
জিভিংস

-1

আপনার আরপিআইতে /proc/config.gz থেকে কনফিগারেশনটি অনুলিপি করার চেষ্টা করুন। তারপরে এটি গানজিপ করুন এবং এর নাম পরিবর্তন করুন। কনফিগ এবং উপরের মতো করুন।


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