পিসিআই কিরক কি?


10

লিনাক্স কার্নেলটি পড়ার সময় আমি পিসিআই কিরক সম্পর্কে প্রচুর শুনতে পাই, তবে কোনও ওয়েবসাইটই পিসিআই কোয়ার্কের ব্যাখ্যা বা সংজ্ঞা দেয় না। পিসিআই কিরক কি?


1
একটি তাত্ক্ষণিক হ'ল একটি স্ব-স্বজ্ঞাত অসঙ্গতি। এটি কোনও প্রযুক্তিগত শব্দ নয়। তারা যা বলছে তা বিশদ করার জন্য আমাদের সম্ভবত আপনি যে পাঠ্যটি উল্লেখ করছেন সেটি দেখতে হবে। যদিও এমন একটি ফাইল রয়েছে যা রুটিনগুলি সরবরাহ করে যা চালকরা বছরের পর বছর ধরে চালিয়ে যাওয়া বিভিন্ন বিড়ম্বনায় কাজ করতে ব্যবহার করতে পারেন। তবে শেষ পর্যন্ত, এটি নিয়মিত ইংরেজি ভাষার শব্দ হিসাবে একই অর্থে ব্যবহৃত একটি অনানুষ্ঠানিক শব্দ।
ব্র্যাচলে

1
আপনি যদি সত্যিই কৌতূহলী হন তবে সেই ফাইলটি প্রতিটি রুটিন কী করে তা ব্যাখ্যা করার জন্য বেশ ভাল মন্তব্য করেছে।
ব্র্যাচলে

উত্তর:


14

"কুইর্কস" এমন কোনও ডিভাইসের বৈশিষ্ট্য যা প্রত্যাশিত ক্রিয়াকলাপের সাথে সম্মতিহীন বলে বিবেচিত হয়।

এখানে থেকে একটি উদাহরণ এখানে quirks.c:

/* The Mellanox Tavor device gives false positive parity errors
 * Mark this device with a broken_parity_status, to allow
 * PCI scanning code to "skip" this now blacklisted device.
 */
static void quirk_mellanox_tavor(struct pci_dev *dev)
{
        dev->broken_parity_status = 1;  /* This device gives false positives */
}

এটি একটি "কৌতুক" কারণ ডিভাইসটি উত্সাহজনক ত্রুটিগুলি রিপোর্ট করে। যখন এই ডিভাইসটি সচল থাকে, তত্ক্ষণাত্ নির্দিষ্ট কিছু বৈশিষ্ট্য নির্ধারণ করে যা কার্নেলের অন্যান্য অংশগুলি আলাদাভাবে কাজ করে (সম্ভবত উদ্দীপিত ত্রুটি উপেক্ষা করে বা কোনও পরিচিত সমস্যা সমাধান করে)।

যদিও লিনাক্স কার্নেলের সমস্ত quirks এর মতো হয় না। প্রভাবিত বৈশিষ্ট্যটি কেবল অক্ষম করার পরিবর্তে কেউ কেউ এটিকে ঘিরে কাজ করার চেষ্টা করেন, উদাহরণস্বরূপ:

/*
 * Some CS5536 BIOSes (for example, the Soekris NET5501 board w/ comBIOS
 * ver. 1.33  20070103) don't set the correct ISA PCI region header info.
 * BAR0 should be 8 bytes; instead, it may be set to something like 8k
 * (which conflicts w/ BAR1's memory range).
 */
static void quirk_cs5536_vsa(struct pci_dev *dev)
{
        if (pci_resource_len(dev, 0) != 8) {
                struct resource *res = &dev->resource[0];
                res->end = res->start + 8 - 1;
                dev_info(&dev->dev, "CS5536 ISA bridge bug detected "
                                "(incorrect header); workaround applied.\n");
        }
}

@ ক্রিস ডাউন - আমি কীভাবে খেয়াল করব যে আমার ডিভাইসটিতে পিসিআই কিরক আছে? এবং কি ঘটবে, যদি আমি PCI quirk workaroundsকার্নেলটি অক্ষম করি ?
মার্টিন ভেজিটার

এটি আপনার কোনও ডিভাইস রয়েছে তা সম্পূর্ণরূপে নির্ভর করে। ডিভাইসের উপর নির্ভর করে, কার্নেল লগের মধ্যে একটি বার্তা থাকতে পারে যা উল্লেখ করেছে যে একটি তুচ্ছ কাজ প্রয়োগ করা হয়েছে (উপরের দ্বিতীয় উদাহরণের মতো), বা এটি নাও থাকতে পারে। একমাত্র নিশ্চিত উপায় হ'ল quirks.cবিক্রেতা এবং / অথবা ডিভাইসটি অনুসন্ধান করা। কর্মক্ষেত্রটি কতটা গুরুতর তার উপর নির্ভর করে কিরকগুলি অক্ষম করা একটি বৈচিত্র্যময় প্রভাব ফেলতে পারে; এর কোনও লক্ষণীয় পার্শ্ব প্রতিক্রিয়া থাকতে পারে না বা এটি ডিভাইসটি সঠিকভাবে কাজ না করার কারণ হতে পারে।
রসিকুর

"কী হবে" এর একটি উদাহরণ হতে পারে, উদাহরণস্বরূপ, ভিডিও কার্ড কার্ড চালক ভিডিয়োকার্ড বিআইওএস পড়তে অক্ষম এবং শেষ পর্যন্ত এটি সঠিকভাবে কনফিগার করতে অক্ষম। CONFIG_PCI_QUIRKSকার্নেলের সাথে ফিরে আসার বিষয়টি সমস্যার সমাধান করে।
পিএফ

কি ঘটবে তা স্নিগ্ধের সাথে নির্দিষ্ট। এটি মেশিনটিকে ঝুলিয়ে / ক্র্যাশ করে এমন কিছুই ঘটতে পারে না এমন কারণ হতে পারে। প্রযুক্তিগতভাবে কিছু ধোঁয়া কিছু উপাদান থেকে খুব বেরিয়ে যেতে পারে যা একটি স্তব্ধের চেয়ে খারাপ। প্রতিটি এন্ট্রি তার নিজস্ব নির্দিষ্ট সমস্যা অন্য ব্র্যান্ড বা মডেল ইস্যুগুলির সাথে কোনওভাবেই সম্পর্কিত বলে ধরে নেওয়া যায় না।
old_timer
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.