انجمنهای فارسی اوبونتو
کمک و پشتیبانی => سختافزار => نویسنده: { AliReaza } در 29 امرداد 1394، 02:44 بظ
-
سلام دوستان
می خوام یک مقدار برم تو کار برنامه نویسی سخت افزار. ( برای تفریح و کسب مهارت )
زبان برنامه نویسی برام فرقی ندار، اما در الویت Python هست.
یک HP ProBook 4540S دارم.
از وقتی روش GNU/Linux استفاده میکنم، تا حالا دکمه میانبر فعال و غیر فعال Touchpad کار نکرده.
در آدرس زیر می تونید هم دکمه را ببینید و هم روش استفاده و...
https://www.youtube.com/watch?v=fj1Yf4ASag0
همانطور که دید این دکمه دارای یک چراغ هم هست.
اول می خواستم بدونم به غیر از lspci و lsusb دیگه چطوری می تونم بفهمم:
۱− چه قطعاتی موجود هستند؟
۲− چه قطعاتی هستند، اما کار نمی کنند؟ ( مثل حالتی که Driver نصب نشده باشه و اون قطع کار نمی کنه )
مثلا الان من باید چطوری بررسی کنم که این دکمه میانبر اصلا Driver نصب شده یا نه؟
چطوری میتونم چراغشو روشن و خاموش کنم؟
از دستورات xset و setleds هم استفاده کردم. اما کلا نتیجه ای نداشت. مشکل کجاست؟
$ setleds +caps
KDGKBLED: Inappropriate ioctl for device
Error reading current flags setting. Maybe you are not on the console?
نکته: در قسمت Additional Driver به غیر از Graphic هیچی دیگه نیست.
خروجی lspci:
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4)
00:1c.3 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 4 (rev c4)
00:1c.5 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 6 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7550M/7570M/7650M] (rev ff)
03:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller (rev 30)
03:00.2 SD Host controller: JMicron Technology Corp. Standard SD Host Controller (rev 30)
03:00.3 System peripheral: JMicron Technology Corp. MS Host Controller (rev 30)
04:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
خروجی lsusb:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 1bcf:2c03 Sunplus Innovation Technology Inc.
Bus 001 Device 003: ID 138a:003d Validity Sensors, Inc.
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 174c:55aa ASMedia Technology Inc. ASMedia 2105 SATA bridge
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
-
این دکمهها باید به صورت یک ماژول مخصوص اون دستگاه توی acpi لینوکس تعریف شده باشه که با بالا اومدن سیستمعامل بشه باهاشون کار کرد. مثلاً برای لپتاپ من توی ماژول thinkpad_acpi هستند که موقع راهاندازی سیستمعامل بار میشه تا سیستم بتونه بشناسه اونها رو. در غیر این صورت موقع بالا بودن سیستمعامل نمی شه باهاشون کار کرد، مگر این که مدار سختافزاری براش گذاشته باشن.
-
این دکمهها باید به صورت یک ماژول مخصوص اون دستگاه توی acpi لینوکس تعریف شده باشه که با بالا اومدن سیستمعامل بشه باهاشون کار کرد. مثلاً برای لپتاپ من توی ماژول thinkpad_acpi هستند که موقع راهاندازی سیستمعامل بار میشه تا سیستم بتونه بشناسه اونها رو. در غیر این صورت موقع بالا بودن سیستمعامل نمی شه باهاشون کار کرد، مگر این که مدار سختافزاری براش گذاشته باشن.
خیلی ممنون
از اونجایی که تاره می خوام شروع کنم، نمی دونم باید چکار کنم؟
می تونید یک مثال ساده قرار دهید؟ مثلا با Python؟؟؟
-
اینها رو گفتم برای این که توضیح بدم با پایتون نمیشه. باید با سی کار کنی و اون موارد رو به ماژول acpi مربوط بهش اضافه کنی.
-
اینها رو گفتم برای این که توضیح بدم با پایتون نمیشه. باید با سی کار کنی و اون موارد رو به ماژول acpi مربوط بهش اضافه کنی.
خیلی ممنون
یک مقدار جستجو کردم به آدرس زیر رسیدم:
https://wiki.ubuntu.com/Kernel/Debugging/Backlight
طبق توضیحات کار کردم و دستور زیر را زدم:
lsmod | grep thinkpad_acpi
اما هیچی خروجی نمیده.
مشکل از کجاست؟
خروجی /proc/acpi
$ grep -r . /proc/acpi
/proc/acpi/battery/BAT0/alarm:alarm: unsupported
/proc/acpi/battery/BAT0/state:present: yes
/proc/acpi/battery/BAT0/state:capacity state: ok
/proc/acpi/battery/BAT0/state:charging state: charging
/proc/acpi/battery/BAT0/state:present rate: 450 mA
/proc/acpi/battery/BAT0/state:remaining capacity: 2918 mAh
/proc/acpi/battery/BAT0/state:present voltage: 12548 mV
/proc/acpi/battery/BAT0/info:present: yes
/proc/acpi/battery/BAT0/info:design capacity: 3170 mAh
/proc/acpi/battery/BAT0/info:last full capacity: 3170 mAh
/proc/acpi/battery/BAT0/info:battery technology: rechargeable
/proc/acpi/battery/BAT0/info:design voltage: 10800 mV
/proc/acpi/battery/BAT0/info:design capacity warning: 200 mAh
/proc/acpi/battery/BAT0/info:design capacity low: 100 mAh
/proc/acpi/battery/BAT0/info:cycle count: 0
/proc/acpi/battery/BAT0/info:capacity granularity 1: 100 mAh
/proc/acpi/battery/BAT0/info:capacity granularity 2: 100 mAh
/proc/acpi/battery/BAT0/info:model number: Primary
/proc/acpi/battery/BAT0/info:serial number: 12331 2012/06/14
/proc/acpi/battery/BAT0/info:battery type: LIon
/proc/acpi/battery/BAT0/info:OEM info: Hewlett-Packard
/proc/acpi/button/lid/LID/state:state: open
/proc/acpi/ac_adapter/AC/state:state: on-line
/proc/acpi/wakeup:Device S-state Status Sysfs node
/proc/acpi/wakeup:LANC S5 *disabled
/proc/acpi/wakeup:EHC1 S3 *enabled pci:0000:00:1d.0
/proc/acpi/wakeup:EHC2 S3 *enabled pci:0000:00:1a.0
/proc/acpi/wakeup:XHC S3 *enabled pci:0000:00:14.0
/proc/acpi/wakeup:PCIB S5 *disabled
/proc/acpi/wakeup:RP03 S4 *disabled pci:0000:00:1c.2
/proc/acpi/wakeup:RP04 S5 *disabled pci:0000:00:1c.3
/proc/acpi/wakeup:WNIC S5 *disabled pci:0000:04:00.0
/proc/acpi/wakeup:RP06 S5 *disabled pci:0000:00:1c.5
/proc/acpi/wakeup:NIC S5 *enabled pci:0000:05:00.0
در مورد acpid هم مطالعه کردم:
http://manpages.ubuntu.com/manpages/trusty/man8/acpid.8.html
خیلی خوب توضیح داده که میشه یک file ساخت و...
اما اصلا نفهمدیم چطوری باید event ها را پیدا کنم؟