কোন ড্রাইভার আমার টাচপ্যাড পরিচালনা করছে?


22

আমি জানতে চাই যে কীভাবে ড্রাইভার (নীচে তাদের মধ্যে) আমার টাচপ্যাড পরিচালনা করছে:

appletouch.ko.gz, cyapa.ko.gz, sermouse.ko.gz, synaptics_usb.ko.gz, bcm5974.ko.gz, psmouse.ko.gz, synaptics_i2c.ko.gz, vsxxxaa.ko.gz


1
একটি করুন lsmodএবং দেখুন যে কোনও ড্রাইভারটি লোড হয়েছে। আপনি আপনার পড়তে চাইবেন /var/log/Xorg.0.log
উইজেডসবারমারিনার

এই প্রশ্নগুলি আমার আগেরটির একটি ফলোআপ ছিল । সত্যি বলতে কী দেখে মনে হচ্ছে কোনওটি বোঝাই হয়নি।
বনু

উত্তর:


34

সম্ভবতঃ তাদের কেউই এটি করছে না। আমার সিস্টেমে উদাহরণস্বরূপ যেখানে আমি ফেডোরা 19 এবং একটি স্নেপটিক টাচপ্যাড সহ একটি থিঙ্কপ্যাড 410 ব্যবহার করছি আমার পাশাপাশি কার্নেল ড্রাইভার নেই।

$ lsmod|grep -iE "apple|cyapa|sermouse|synap|psmouse|vsxx|bcm"

তাহলে কি এই ডিভাইস যত্ন নিচ্ছে? আসলে এটি আসলে এই কার্নেল মডিউল:

$ lsmod|grep -iE "input"
uinput                 17672  0 

আপনি যদি এই মডিউলটি সম্পর্কে আরও দেখতে চান তবে আপনি এটি ব্যবহার করতে পারেন modinfo uinput:

$ modinfo uinput
filename:       /lib/modules/3.13.11-100.fc19.x86_64/kernel/drivers/input/misc/uinput.ko
version:        0.3
license:        GPL
description:    User level driver support for input subsystem
author:         Aristeu Sergio Rozanski Filho
alias:          devname:uinput
alias:          char-major-10-223
...

যেহেতু এটি ইনপুট ডিভাইসগুলি ঘুরে দেখা যায় যেমন উচ্চতর স্তরে প্রায়শই ডিল করা হয়, এক্ষেত্রে প্রকৃত ড্রাইভারগুলি এক্স 11 স্তরে বাস্তবায়ন করা হয়।

uinput একটি লিনাক্স কার্নেল মডিউল যা ব্যবহারকারীর জমি থেকে ইনপুট সাবসিস্টেম পরিচালনা করতে দেয়। এটি কোনও অ্যাপ্লিকেশন থেকে ইনপুট ডিভাইসগুলি তৈরি এবং পরিচালনা করতে ব্যবহৃত হতে পারে। এটি / dev / ইনপুট ডিরেক্টরিতে একটি অক্ষর ডিভাইস তৈরি করে। ডিভাইসটি ভার্চুয়াল ইন্টারফেস, এটি কোনও দৈহিক ডিভাইসের সাথে সম্পর্কিত নয়।

উৎস: uinput দিয়ে শুরু করা: ব্যবহারকারীর স্তরে ইনপুট সাব-সিস্টেম

তাহলে আমার টাচপ্যাড ড্রাইভাররা কোথায়?

তারা এক্স 11 এর সাব সিস্টেমে রয়েছে। xinput --listকমান্ডটি ব্যবহার করে আপনি ডিভাইসটি দেখতে পাচ্ছেন । উদাহরণস্বরূপ, আমার থিঙ্কপ্যাড ল্যাপটপের ডিভাইসগুলি এখানে:

$ xinput --list 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=9    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=14   [slave  keyboard (3)]

লক্ষ্য করুন যে আমার টাচপ্যাডটি এই তালিকায় প্রদর্শিত হয়েছে। /procউদাহরণস্বরূপ: আপনি এই ডিভাইসগুলি সম্পর্কে অতিরিক্ত তথ্য সন্ধান করতে পারেন

$ cat /proc/bus/input/devices 
...
I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input5
U: Uniq=
H: Handlers=mouse0 event4 
B: PROP=9
B: EV=b
B: KEY=6420 30000 0 0 0 0
B: ABS=260800011000003
...

ঠিক আছে তবে ড্রাইভার কোথায়?

আপনার সিস্টেমে যদি সিন্যাপটিক টাচপ্যাড ব্যবহার করা হয় (যা আমি বিশ্বাস করি যে তারা সমস্ত টাচপ্যাডের 90% ডলার করে) তবে আপনি আরও একটি কাজ করতে পারেন locate synaptics | grep xorgযা নিম্নলিখিত ফাইলগুলি প্রকাশ করতে পারে:

$ locate synaptics | grep xorg
/usr/lib64/xorg/modules/input/synaptics_drv.so
/usr/share/X11/xorg.conf.d/50-synaptics.conf
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1/COPYING
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1/README

প্রথম ফলাফলগুলি হ'ল প্রকৃত ড্রাইভার যা আপনি জিজ্ঞাসা করছেন। এটি এখানে দ্বিতীয় ফাইলের মাধ্যমে X.org এ লোড করা হবে:

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
EndSection

এবং এই লাইন:

        MatchDevicePath "/dev/input/event*"

যা এই ড্রাইভারটির সাথে শারীরিক ডিভাইসগুলি যুক্ত করে। এবং আপনি সম্ভবত নিজেকে জিজ্ঞাসা করছেন, এই লোকটি এতটা নিশ্চিত কিভাবে হতে পারে? এই কমান্ড দেখায় আমার দেওয়া Synaptic টাচপ্যাড ব্যবহার সঙ্গে যুক্ত ডিভাইসটি ব্যবহার করছেন id=12থেকে xinput --listআউটপুট আমি আগেও দেখিয়েছে:

$ xinput --list-props 12 | grep "Device Node"
    Device Node (251):  "/dev/input/event4"

অনেক আগ্রহব্যাঞ্জক! যেমন আমি সিনট্যাপিকসের পরিবর্তে এমট্র্যাক এক্সর্গ ড্রাইভার ব্যবহার করেছি, এমট্র্যাক পৃষ্ঠায় আপনি যা বলেছেন তার থেকে আমি কিছু আলাদা পেয়েছি : "যে কোনও ট্র্যাকপ্যাড সমর্থন করে যার কার্নেল ড্রাইভার স্লটেড মাল্টিটচ প্রোটোকল ব্যবহার করে।" দেখে মনে হচ্ছে xorg ড্রাইভারটি আসলে হার্ডওয়ারের সাথে সরাসরি স্পর্শ পায় না, তবে আপনার উত্তরটি এই বিবৃতিটির সাথে সাংঘর্ষিক বলে মনে হচ্ছে ...
xuhdev

আমি মনে করি xorg ইনপুট ড্রাইভারটি ডিভাইস ড্রাইভারের চেয়ে আলাদা। আমি দৌড়ে গিয়ে journalctl -b 0অনুসন্ধান touchpadকরেছি এবং আমার এই লাইন আছে (**) bcm5974: Applying InputClass "evdev touchpad catchall"। সুতরাং আমি জানি bcm5974যে ডিভাইস ড্রাইভার
xuhdev

@ এক্সুহদেব - xorg ড্রাইভার uinputকার্নেল মডিউল (ড্রাইভার) এর মাধ্যমে গতির ডেটা পাচ্ছে । এই বিবৃতি সম্পর্কে কি পরিষ্কার নয়?
slm

@ এসএলএম আমার মনে হয় ওপি ডিভাইস ড্রাইভার সম্পর্কে জিজ্ঞাসা করছে, xorg ড্রাইভারকে নয়। আপনি যা প্রদর্শন করেছেন তা হ'ল xorg ড্রাইভার, যা আমার বুদ্ধি অনুযায়ী ডিভাইস ড্রাইভারের থেকে সম্পূর্ণ আলাদা। uinputমডিউলটি হার্ডওয়্যার ডিভাইসের সাথে সম্পর্কিত নয়; এটি সঠিক তথ্য সরবরাহ করতে হার্ডওয়্যার ড্রাইভারের উপর নির্ভর করে এবং তারপরে ইউনপুট ইউজারল্যান্ডে একটি ইউনিফাইড ইনপুট ইন্টারফেস সরবরাহ করে। ইউজারল্যান্ড সফ্টওয়্যার, এক্ষেত্রে সিনপ্যাটিক্স xorg ড্রাইভার, ইউনপুট ব্যবহার করে xorg কে কার্নেলের (এবং অপ্রত্যক্ষভাবে ব্যবহারকারী ইনপুট) সাথে সংযুক্ত করতে পারে। আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন, কারণ আমি এই ক্ষেত্রের বিশেষজ্ঞ নই ..
xuhdev

hid_multitouchআপনার তালিকায় অন্তর্ভুক্ত করা উচিত । আমি মনে করি এটিই আমার ডেল প্রিসিজে টাচপ্যাডটি পরিচালনা করছে এবং আমার uinputমডিউলটি লোড হয়নি।
সেরিন

2
$ cat /var/log/Xorg.0.log | grep "input driver"

আমার ল্যাপটপে এটি দেখায়:

...
[     9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...

2
cat | grep আপনি সরাসরি কমান্ড grepএড়ানো ফাইলগুলিতে ব্যবহার করতে পারেন হিসাবে ব্যবহার করবেন না cat
থমাস

grep -e "input driver" /var/log/Xorg.0.log
মাস্টারওয়াক

journalctl -u display-manager | grep "input driver"এবং xinput --listকার্নেলটি পুনরায় সংশোধন করার সময় আমাকে "এলানটেক" কার্নেল বিকল্পটি সক্ষম করতে হবে তা নির্ধারণ করতে আমাকে সহায়তা করেছিল।
ব্যবহারকারী 7610
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.