শেল কমান্ড ডিভাইস রেজিস্টার পড়তে?


18

লিনাক্স চালিত একটি একক বোর্ডের কম্পিউটারে, ডিভাইস কনফিগারেশনগুলির সামগ্রীগুলি পড়ার কোনও উপায় আছে যা হার্ডওয়্যার নিয়ন্ত্রণ করে? আমি মনে করি এটি একটি মোড়ক হবে inw()

আমি mdড্রাইভার-ডিবাগিংয়ের প্রসঙ্গে ইউ-বুট মেমরি ডাম্প ( ) কমান্ডের সমতুল্য কিছু খুঁজছি ।


2
এটি সাহায্য করতে পারে, তবে পুরো থ্রেডটি পড়তে ভুলবেন না: list.arm.linux.org.uk/lurker/message/…
অশুভ হওয়া বন্ধ করুন '

এ সম্পর্কে কোন আপডেট ??
সেন

@ সেন: নেতিবাচক। আমি এখনও স্টাম্পড। আমি সংযুক্ত থ্রেডটি পড়েছি, যা সূচিত করে যে ইনব () আমার যা মনে হয়েছিল তা করে না: "ইনব () এবং বন্ধুরা কেবলমাত্র পিসিআই এবং আইএসএ আইও অ্যাড্রেস স্পেসের অনুকরণের জন্য" " আমি একটি অসিলোস্কোপ ব্যবহার করেছি এবং আমার পরবর্তী সেরা বিকল্প হিসাবে প্রচুর কার্নেল ড্রাইভার কোড পড়ছি।
পিংসওয়েপ

উত্তর:


14

আপনি যদি ডিভাইসের শারীরিক ঠিকানা জানেন তবে আপনি ডিমেমে 2 ব্যবহার করতে পারেন।

devmem2 <physical address> <size (b/h/w)> [value]

3

আপনি সরাসরি কোনও ভ্যানিলা কার্নেল দিয়ে এটি করতে পারবেন কিনা তা আমি জানি না।

তবে আপনি দেখতে চান এমন মেমরির সামগ্রী রফতানি করতে / চালিত একটি "ফাইল" ব্যবহার করে এমন একটি সহজ ড্রাইভার লিখতে এটি বেশ স্ট্রেইট হওয়া উচিত।

তারপরে আপনি একটি সাধারণ স্ক্রিপ্ট সহ আপনার "ফাইল" পড়তে পারেন এবং সেই মেমরিটিতে অ্যাক্সেস পেতে পারেন।


1

আমি এ সম্পর্কে পুরোপুরি এবং সম্পূর্ণ ভুল হতে পারি, এবং আমি থাকলে আমাকে ক্ষমা করতে পারি, তবে যদি ইউবুটের এমডি কমান্ডটি কেবল ডিভাইস রেজিস্টারগুলিতে ম্যাপ করা মেমরি ঠিকানাগুলি পড়ছে এবং সামগ্রীগুলি আপনাকে ফিরিয়ে দিচ্ছে, আপনি সেই একই মেমরির অবস্থানগুলি চতুর ব্যবহারের সাথে পড়তে পারবেন না এর dd if=/dev/mem ...?


আমি মনে করি এই রুটে সম্ভাবনা রয়েছে তবে মনে হচ্ছে কোনও সমস্যা আছে। এই কমান্ডটি মূল হিসাবে কার্যকর: "ডিডি if = / dev / میم বিএস = 1 এড়িয়ে যান = 10000 গণনা = 512" এই ত্রুটিটি দেয়: "ডিডি: / দেব / মেম: খারাপ ঠিকানা" এর অর্থ কী তা আমি নিশ্চিত নই। গুগল আমাকে বলেছে যে এটি ২.6 কার্নেলের মধ্যে প্রবর্তিত পরিবর্তনগুলির সাথে করণীয়, তবে আমি এখনও এ সম্পর্কে কাজ করতে পারিনি বলে যথেষ্ট জানিনা।
3'11

1
হয়তো এমটিডব্লক ড্রাইভারটি ব্যবহার করার চেষ্টা করুন। এটি দেখুন: en.gentoo-wiki.com/wiki/Using_Graphics_Card_Memory_as_Swap তবে এটি আপনার গ্রাফিক্স কার্ড র‍্যামের দিকে ইঙ্গিত করার পরিবর্তে, সম্ভবত এটি ডিভাইস রেজিস্টারগুলিতে দেখানোর চেষ্টা করুন।
LawrenceC

0

পিসিআই ডিভাইস কনফিগারেশন / sys / বাস / pci / ডিভাইস / * / কোন সাহায্যের কনফিগারেশন?


2
এটি সত্যই একটি মন্তব্য, প্রশ্নের উত্তর নয়। লেখকের প্রতিক্রিয়া জানাতে দয়া করে "মন্তব্য যুক্ত করুন" ব্যবহার করুন।
রেনান

@ রেনান "এটি সত্যিই একটি মন্তব্য" সম্ভবত অজান্তেই, তবে মজার, নির্বিশেষে। টোটোলজি দিয়ে আমার দিনকে আলোকিত করার জন্য +1। সম্পাদনা: আমি ঠিক বুঝতে পেরেছি এটি ব্যঙ্গাত্মক হিসাবে আসতে পারে। আমি এটাকে বোঝাতে চাই না।
মূল

0

busybox devmem

busybox devmemযা আমার পছন্দের সংস্করণ devmem2যা এখানে উল্লেখ করা হয়েছিল: /unix//a/134661/32558

devmem2বেশ কয়েকটি প্রবাহ থেকে বিভিন্ন সংস্করণে এসেছিল, উল্লেখযোগ্যভাবে বিল্ড্রুট http://free-electrons.com/pub/mirror/devmem2.c

তবে একটি ব্যস্তবক্স ইউটিলিটি আরও প্রচলিত, ব্যাপকভাবে উপলব্ধ এবং রক্ষণাবেক্ষণযোগ্য।

উদাহরণস্বরূপ, devmem2ডেবিয়ান থেকে প্রত্যাখ্যান করা হয়েছিল: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (তবে একটি উবুন্টু প্যাকেজটি তবুও তৈরি হয়েছিল)।

আপনি এটি দিয়ে উবুন্টুতে পেতে পারেন:

sudo apt-get install busybox

ব্যবহার: শারীরিক ঠিকানা থেকে 4 বাইট পড়ুন 0x12345678:

sudo busybox devmem 0x12345678

0x9abcdef0ঠিকানায় লিখুন :

sudo busybox devmem 0x12345678 w 0x9abcdef0

এখানে পরীক্ষার কয়েকটি দুর্দান্ত উপায় রয়েছে devmem: /programming/12040303/accessing-physical-address-from-user-space/45127890#45127890


0

পিসিমিম নামে একটি ইউটিলিটি রয়েছে ( https://github.com/billfarrow/pcimem )

আপনি এটি পিসি ডিভাইসগুলি থেকে / পড়তে এবং লেখার জন্য ব্যবহার করতে পারেন।

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