আর্মভ 7 এ এক্স 86 বাইনারি চালানো হচ্ছে


11

আমি রাস্পবেরি পাই 2 এ একটি এসএনবিসি ইউএসবি প্রিন্টার চালানোর চেষ্টা করছি।

তার জন্য আমাকে এসএনবিসি ইউএসবি প্রিন্টারের ফিল্টার বাইনারি অনুলিপি করতে হবে /usr/lib/cups/filter। তবে ফিল্টার বাইনারিটি একটি x86 প্রসেসর (প্রস্তুতকারকের হাত সাপোর্ট করার আগ্রহ নেই) ব্যবহার করে সংকলিত হয়েছে যেখানে আমি ব্যবহার করি armv7। আমি জানি এটা কাজ করবে না কিন্তু একটি কৌতূহল জন্য আমি চেষ্টা এবং কাপ বলছেন /usr/lib/cups/filter/rasterorp3150 failed

আমি ইন্টারনেটে সমাধানগুলি সন্ধান করেছি এবং লোকেরা কিমু ব্যবহার করার পরামর্শ দেয়। তবে এটি পুরো এক্স x86 এর জন্য আর্ম প্ল্যাটফর্মের জন্য। X86 বাইনারি আর্ম বাইনারি একটি সহজ জটিল পদ্ধতিতে রূপান্তর করার কোন উপায় আছে?

যাইহোক, x86 বাইনারি একটি hexeditসরঞ্জাম ব্যবহার করে একটি সমমান armv7বাইনারি একটি ভাল ধারণা রূপান্তর করা হয় ? ( opcodeরূপান্তর)

যদি তা হয় তবে কেউ কীভাবে এটি করবেন সে সম্পর্কে কিছু ধারণা দিতে পারেন?


যদি আপনার কাছে উত্স থাকে তবে আপনি একটি পৃথক "লক্ষ্য" খিলানের জন্য "ক্রস সংকলন" করতে পারেন।
বিএসডি

উত্তর:


14

আপনি সহজেই কোনও x86 বাইনারি এআরএম তে রূপান্তর করতে পারবেন না । যদি আপনি উত্স কোড, বা প্রস্তুতকারকের কাছ থেকে কোনও এআরএম বাইনারি পেতে না পারেন এবং আপনি সত্যই আপনার পাই 2 দিয়ে প্রিন্টারটি ব্যবহার করতে চান তবে কিউমু পদ্ধতির ক্ষেত্রে এই ক্ষেত্রে সঠিক পদ্ধতি রয়েছে, যদিও এটি সম্ভবত খুব ধীর হবে although । কিমু সম্পূর্ণ সিস্টেম এমুলেশন করে তবে এটি একক প্রক্রিয়া এমুলেশন জন্য খুব ভাল কাজ করে।

আমি ধরে নিচ্ছি আপনার পাই 2 এর উপর আপনার কিছু ধরণের ডেবিয়ান ডেরিভেটিভ রয়েছে (আমি নিশ্চিত না যে এটি রাস্পবিয়ানর সাথে যদিও কাজ করবে), এবং আপনার যে বাইনারি রয়েছে তা i386(যদি এটি 64-বিট হয় তবে amd64পরিবর্তে ব্যবহার করুন)। i386একটি বিদেশী আর্কিটেকচার হিসাবে যুক্ত করে শুরু করুন :

sudo dpkg --add-architecture i386
sudo apt-get update

তারপরে lddবাইনারি চালান এবং প্রয়োজনীয় লাইব্রেরি যুক্ত করুন; সাধারণত

sudo apt-get install libc6:i386

এবং :i386প্রত্যয় যুক্ত অন্য কিছু । নিশ্চিত হয়ে নিন যে এটি কোনও ইনস্টল করা প্যাকেজ অপসারণ করছে না; আশা করি আপনার যা যা প্রয়োজন তা হ'ল মাল্টিার্ক-সক্ষম enabled (অন্যথায় বাকী কাজ করবে না।)

একবার আপনি এটি সম্পন্ন করার পরে, qemu-user-staticএটি ইতিমধ্যে ইনস্টল না করা থাকলে ইনস্টল করুন (এর binfmt-supportপ্রস্তাবনা সহ ); তারপরে আপনি qemu-i386-staticআপনার প্রোগ্রামটি চালাতে ব্যবহার করতে পারেন :

qemu-i386-static /usr/lib/cups/filter/rasterorp3150

আসলে binfmt-supportএটির জন্য ধন্যবাদ সরাসরি চালানো উচিত ( টবি স্পিড দ্বারা চিহ্নিত হিসাবে ):

/usr/lib/cups/filter/rasterorp3150

( binfmt-supportএই কাজটি স্বচ্ছতার জন্য করতে কেমু ব্যবহার করবে))

আপনি যদি ব্যবহার করতে না চান তবে binfmt-supportসরে rasterorp3150যান:

sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86

এবং সমন্বিত স্ক্রিপ্ট ইনস্টল করুন

#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"

যেমন /usr/lib/cups/filter/rasterorp3150

আপনি যদি না বরং এই সমস্তটির জন্য একটি ক্রুট সেট আপ করতে পারেন; দেখুন debootstrapএবং এর --foreignবিকল্প (ক্রুট স্বয়ংক্রিয়ভাবে কেমু ব্যবহারের জন্য সেট আপ করা যেতে পারে)।


আপাতত এই সমাধানটি কাজ করে না, আমি সর্বদা আই apt update383 খিলান যুক্ত করার পরে 404 ত্রুটি পাই ।
মোহাম্মদ নুরাল্ডিন

@ মোহাম্মদ আপনি কোন বিতরণ ব্যবহার করছেন?
স্টিফেন কিট

রাস্পবিয়ান, 11.2016 প্রকাশ। এবং আমি i386 অনুকরণ করতে চেয়েছিলাম
মোহাম্মদ নুরাল্ডিন

ঠিক আছে, সুতরাং আপনি যে ত্রুটিটি পাচ্ছেন তা স্বাভাবিক, রাস্পবিয়ান i386বাইনারি সরবরাহ করে না । এটি কেবল এমন আর্কিটেকচারের সাথেই কাজ করে যা আপনি ব্যবহার করছেন ডিস্ট্রোতে সমর্থিত।
স্টিফেন কিট

আমার উল্লেখ করতে হবে যে আমি রাসবিয়ান এবং উবুন্টু উভয়ের সাথেই চেষ্টা করেছিলাম। কোনও ভাল ডিগো সুগারেশন যেখানে আমি আর্মহেফ হোস্টে i386 অনুকরণ করতে পারি?
মোহাম্মদ নুরাল্ডিন

1

আপনার বিস্তারিত রিপ্লে জন্য ধন্যবাদ।

আমি রাসবিয়ান ওএস ব্যবহার করি এবং সুডো এপটি-আপডেট আপডেটের সময় i386 আর্কিটেকচার যুক্ত করা রাস্পবিয়ানে ব্যর্থ হয়। আমি কি রাস্পবিয়ান এবং ইনস্টলের জন্য i386 প্যাকেজটি আলাদাভাবে ডাউনলোড করতে পারি? যদি তা করতে পারেন তবে ডাউনলোডের জন্য যে কোনও লিঙ্ক শেয়ার করতে পারেন।

আমি কি i386 (x86 এ চলমান লিনাক্স পুদিনা) থেকে ফিল্টার নির্ভর নির্ভর। তাই ফাইলগুলি অনুলিপি করতে পারি এবং রাস্পবাইনে উপযুক্ত পাথগুলিতে পেস্ট করতে পারি এবং ফিল্টারটি চালানোর জন্য কিমু ব্যবহার করতে পারি?

ফিল্টারটির এলডিডি প্রতিধ্বনি নিম্নলিখিত:

linux-gate.so.1 =>  (0xb779c000)
libcups.so.2 => /usr/lib/i386-linux-gnu/libcups.so.2 (0xb7716000)
libcupsimage.so.2 => /usr/lib/i386-linux-gnu/libcupsimage.so.2 (0xb770d000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb755c000)
libgssapi_krb5.so.2 => /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2 (0xb7517000)
libgnutls.so.26 => /usr/lib/i386-linux-gnu/libgnutls.so.26 (0xb7451000)
libavahi-common.so.3 => /usr/lib/i386-linux-gnu/libavahi-common.so.3 (0xb7443000)
libavahi-client.so.3 => /usr/lib/i386-linux-gnu/libavahi-client.so.3 (0xb7431000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7414000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73fa000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb73b4000)
/lib/ld-linux.so.2 (0xb779d000)
libkrb5.so.3 => /usr/lib/i386-linux-gnu/libkrb5.so.3 (0xb72f6000)
libk5crypto.so.3 => /usr/lib/i386-linux-gnu/libk5crypto.so.3 (0xb72c6000)
libcom_err.so.2 => /lib/i386-linux-gnu/libcom_err.so.2 (0xb72c0000)
libkrb5support.so.0 => /usr/lib/i386-linux-gnu/libkrb5support.so.0 (0xb72b4000)
libgcrypt.so.11 => /lib/i386-linux-gnu/libgcrypt.so.11 (0xb722d000)
libtasn1.so.6 => /usr/lib/i386-linux-gnu/libtasn1.so.6 (0xb7219000)
libp11-kit.so.0 => /usr/lib/i386-linux-gnu/libp11-kit.so.0 (0xb71dd000)
libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xb7191000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb718c000)
libkeyutils.so.1 => /lib/i386-linux-gnu/libkeyutils.so.1 (0xb7188000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb7170000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb716b000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb7163000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb715a000)

শুভেচ্ছা, ন্যাশ

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