Προς το περιεχόμενο

Hardware και drivers στο linux


Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Ξεκιναω αυτο το θεμα με σκοπο να μειωθουν τα θεματα του στυλ "Γιατι δεν παιζει το hardware μου στο linux, ενω παιζει κανονικα στα windows?", καθως και οι σχετικες και ασχετες απαντησεις σε αυτα.

Ενα συχνο λαθος που κανουν οι περισσοτεροι αρχαριοι στο linux ειναι, λογω συνηθειας απο τα windows, να ψαχνουν για drivers, και μαλιστα στο λαθος μερος, πχ στο site του κατασκευαστη.

Στην πραγματικοτητα ο σωστος driver ειναι λιγο πιο κοντα και ταυτοχρονα λιγο πιο μακρια απο εκει που φανταζεται ο μεσος χρηστης. Αλλα πριν φτασει καποιος στο σωστο driver, πρεπει να ξερει το hardware που εχει, και το linux μπορει να τον πληροφορησει για αυτο με απιστευτη ακριβεια. Μονη προυποθεση για να μας το πει ειναι ο χρηστης να μην φοβαται να ανοιξει το τερματικο.

 

Οι εντολες που δινουν ολες τις πληροφοριες ειναι 3, αν και η τελευταια δεν χρησιμοποιειται αρκετα τελευταια, μιας και σημερα τα λαπτοπ βγαινουν και χωρις pcmicia υποδοχες.

 

α) Για οποιαδηποτε κομματι hardware βρισκεται εντος του υπολογιστη μας, πχ καρτα ηχου, καρτα γραφικων, ασυρματο (οχι usb), καρτα τηλεορασης (οχι usb) κλπ, υπαρχει η εντολη lspci. Εστω το lspci μου

 

>$ lspci 
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 02)
00:01.0 PCI bridge: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port (rev 02)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [iDE mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [iDE mode] (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7800 GTX] (rev a1)
03:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)
03:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)

 

Με μια πιο κοντινη ματια φαινονται ανετα η καρτα γραφικων, η καρτα ηχου, η καρτα δικτυου κλπ, αρα με το παραπανω εχω μια πληρη εικονα για το τι υπαρχει μεσα στο pc μου.

 

β) Για οτιδηποτε ειναι συνδεδεμενο σε θυρα usb (ασυρματα και bluetooth στικακια, καρτες τηλεορασης, κινητα, κλπ) υπαρχει το lsusb. Εστω το δικο μου lsusb

 

>$ lsusb 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
Bus 004 Device 003: ID 046d:c21a Logitech, Inc. Precision Gamepad

 

που δειχνει πως στις usb μου εχω συνδεδεμενα ενα ποντικι και ενα χειριστηριο.

 

γ) Για οτιδηποτε μπορει να μπει σε μια θυρα pcmcia υπαρχει η εντολη lspcmcia. Δυστυχως δεν εχω τετοιου τυπου hardware προκειμενου να δωσω ενα παραδειγμα.

 

Και αφου μαθαμε το hardware, η διαδικασια ευρεσης driver εγινε πιο ευκολη. Στο 90% των περιπτωσεων ο σωστος driver περιλαμβανεται στον πυρηνα και δεν χρειαζεται να κανουμε κατι παραπανω. Το υπολοιπο 10% ειναι

- ειτε drivers κλειστου κωδικα, πχ απο ati και nvidia, που γινονται εγκατασταση μετα την εγκατασταση του λειτουργικου και ΜΟΝΟ απο τον package manager

- ειτε drivers που περιλαμβανονται ή θα περιληφθουν σε νεοτερη εκδοση του πυρηνα απο αυτη που εχουμε

- ειτε drivers που δεν υπαρχουν και δεν θα υπαρξουν συντομα.

 

Αυτα τα λιγα για αρχη. Για πιο ψαγμενες αναζητησεις συνεχιστε στο 1ο ποστ :P

 

Καλο ειναι να βαζουμε τα μεγαλα outputs των εντολων σε spoiler tags για να μην μακραινει το ποστ ασκοπα και καταληξουμε με 3 ποστς ανα σελιδα :P

Επεξ/σία από jim_p
  • Like 6
  • Απαντ. 39
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ. (επεξεργασμένο)

Το dmidecode είναι ένα command line utility που μας αναφέρει πληροφορίες για το hardware του συστήματός μας, όπως αυτές βρίσκονται αποθηκευμένες στο BIOS και σύμφωνα με τα SMBIOS/DMI standard.

Μας δίνει πληροφορίες που αφορούν τον κατασκευαστή του συστήματος, ονόματα μοντέλων, σειριακούς αριθμούς, έκδοση BIOS και ένα πλήθος ακόμα χαρακτηριστικών. Η αξιοπιστία και το σύνολο των πληροφοριών που μπορούμε να πάρουμε, εξαρτάται από το τι έχει επιλέξει να κάνει διαθέσιμο ο κατασκευαστής.

>[root@localhost xxxxx]# dmidecode
# dmidecode 2.11
SMBIOS 2.6 present.
37 structures occupying 1630 bytes.
Table at 0x000EA000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
       Vendor: Hewlett-Packard
       Version: F.07
       Release Date: 02/10/2010
       ROM Size: 1536 kB
       Characteristics:
               PCI is supported
               BIOS is upgradeable
               BIOS shadowing is allowed
               Boot from CD is supported
               Selectable boot is supported
               EDD is supported
               Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
               Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
               5.25"/360 kB floppy services are supported (int 13h)
               5.25"/1.2 MB floppy services are supported (int 13h)
               3.5"/720 kB floppy services are supported (int 13h)
               3.5"/2.88 MB floppy services are supported (int 13h)
               8042 keyboard services are supported (int 9h)
               CGA/mono video services are supported (int 10h)
               ACPI is supported
               USB legacy is supported
               BIOS boot specification is supported
               Targeted content distribution is supported
       BIOS Revision: 15.7
       Firmware Revision: 84.19

Handle 0x0001, DMI type 1, 27 bytes
System Information
       Manufacturer: Hewlett-Packard
       Product Name: HP G72 Notebook PC
       Version: xxxxxxx....                                                                                                                                    
       Serial Number: xxxxxxxx.....                                                                                                                                             
       UUID: xxxxx....
       Wake-up Type: Power Switch
       SKU Number: xxxx...
       Family: 103C_5335KV

Handle 0x0002, DMI type 2, 16 bytes
Base Board Information
       Manufacturer: Hewlett-Packard
       Product Name: 1425
       Version: 54.13
       Serial Number: xxxxx
       Asset Tag: Base Board Asset Tag
       Features:
               Board is a hosting board
               Board is replaceable
       Location In Chassis: Base Board Chassis Location
       Chassis Handle: 0x0003
       Type: Motherboard
       Contained Object Handles: 0

Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
       Manufacturer: Hewlett-Packard
       Type: Notebook
       Lock: Not Present
       Version: N/A
       Serial Number: None
       Asset Tag:                     
       Boot-up State: Safe
       Power Supply State: Safe
       Thermal State: Safe
       Security Status: None
       OEM Information: 0x00000127
       Height: Unspecified
       Number Of Power Cords: 1
       Contained Elements: 0
       SKU Number: Not Specified

Handle 0x0004, DMI type 9, 17 bytes
System Slot Information
       Designation: J5C1
       Type: x16 PCI Express x16
       Current Usage: Available
       Length: Other
       ID: 0
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x0005, DMI type 9, 17 bytes
System Slot Information
       Designation: J6C1
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 0
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x0006, DMI type 9, 17 bytes
System Slot Information
       Designation: J6C2
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 1
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x0007, DMI type 9, 17 bytes
System Slot Information
       Designation: J6D2
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 2
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x0008, DMI type 9, 17 bytes
System Slot Information
       Designation: J7C1
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 3
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x0009, DMI type 9, 17 bytes
System Slot Information
       Designation: J7D2
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 4
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x000A, DMI type 9, 17 bytes
System Slot Information
       Designation: J8C2
       Type: x16 PCI Express x16
       Current Usage: Available
       Length: Other
       ID: 1
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x000B, DMI type 9, 17 bytes
System Slot Information
       Designation: J8C1
       Type: x1 PCI Express x1
       Current Usage: Available
       Length: Other
       ID: 5
       Characteristics:
               PME signal is supported
               Hot-plug devices are supported
       Bus Address: 0000:00:1f.7

Handle 0x000C, DMI type 10, 6 bytes
On Board Device Information
       Type: Video
       Status: Enabled
       Description: Video Graphics Controller

Handle 0x000D, DMI type 10, 6 bytes
On Board Device Information
       Type: Ethernet
       Status: Enabled
       Description: Realtek Lan Controller

Handle 0x000E, DMI type 11, 5 bytes
OEM Strings
       String 1: $HP$
       String 2: LOC#B1A
       String 3: ABS 70/71 79 7A 7B 7C
       String 4: CNB1 049D100000202710000020000

Handle 0x000F, DMI type 12, 5 bytes
System Configuration Options
       Option 1: String1 for Type12 Equipment Manufacturer
       Option 2: String2 for Type12 Equipment Manufacturer
       Option 3: String3 for Type12 Equipment Manufacturer
       Option 4: String4 for Type12 Equipment Manufacturer

Handle 0x0010, DMI type 15, 29 bytes
System Event Log
       Area Length: 0 bytes
       Header Start Offset: 0x0000
       Data Start Offset: 0x0000
       Access Method: General-purpose non-volatile data functions
       Access Address: 0x0000
       Status: Valid, Not Full
       Change Token: 0x12345678
       Header Format: OEM-specific
       Supported Log Type Descriptors: 3
       Descriptor 1: POST memory resize
       Data Format 1: None
       Descriptor 2: POST error
       Data Format 2: POST results bitmap
       Descriptor 3: Log area reset/cleared
       Data Format 3: None

Handle 0x0011, DMI type 21, 7 bytes
Built-in Pointing Device
       Type: Touch Pad
       Interface: PS/2
       Buttons: 4

Handle 0x0012, DMI type 22, 26 bytes
Portable Battery
       Location: Primary
       Manufacturer: 11-85
       Name: MU06047
       Chemistry: Lithium Ion
       Design Capacity: 4400 mWh
       Design Voltage: 10800 mV
       SBDS Version: 2.1
       Maximum Error: 0%
       SBDS Serial Number: 00DB
       SBDS Manufacture Date: 2010-08-16
       OEM-specific Information: 0xFFFFFFFF

Handle 0x0013, DMI type 32, 20 bytes
System Boot Information
       Status: No errors detected

Handle 0x0014, DMI type 41, 11 bytes
Onboard Device
       Reference Designation: Video Graphics Controller
       Type: Video
       Status: Enabled
       Type Instance: 1
       Bus Address: 0000:00:02.0

Handle 0x0015, DMI type 41, 11 bytes
Onboard Device
       Reference Designation: AR5007 802.11b/g WiFi Adapter
       Type: Other
       Status: Enabled
       Type Instance: 1
       Bus Address: 0000:02:00.0

Handle 0x0016, DMI type 4, 42 bytes
Processor Information
       Socket Designation: CPU
       Type: Central Processor
       Family: Core 2 Duo
       Manufacturer: Intel(R) Corporation
       ID: 52 06 02 00 FF FB EB BF
       Signature: Type 0, Family 6, Model 37, Stepping 2
       Flags:
               FPU (Floating-point unit on-chip)
               VME (Virtual mode extension)
               DE (Debugging extension)
               PSE (Page size extension)
               TSC (Time stamp counter)
               MSR (Model specific registers)
               PAE (Physical address extension)
               MCE (Machine check exception)
               CX8 (CMPXCHG8 instruction supported)
               APIC (On-chip APIC hardware supported)
               SEP (Fast system call)
               MTRR (Memory type range registers)
               PGE (Page global enable)
               MCA (Machine check architecture)
               CMOV (Conditional move instruction supported)
               PAT (Page attribute table)
               PSE-36 (36-bit page size extension)
               CLFSH (CLFLUSH instruction supported)
               DS (Debug store)
               ACPI (ACPI supported)
               MMX (MMX technology supported)
               FXSR (FXSAVE and FXSTOR instructions supported)
               SSE (Streaming SIMD extensions)
               SSE2 (Streaming SIMD extensions 2)
               SS (Self-snoop)
               HTT (Multi-threading)
               TM (Thermal monitor supported)
               PBE (Pending break enabled)
       Version: Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
       Voltage: 0.0 V
       External Clock: 1066 MHz
       Max Speed: 2133 MHz
       Current Speed: 2133 MHz
       Status: Populated, Enabled
       Upgrade: ZIF Socket
       L1 Cache Handle: 0x001A
       L2 Cache Handle: 0x0019
       L3 Cache Handle: 0x0017
       Serial Number: Not Specified
       Asset Tag: FFFF
       Part Number: Not Specified
       Core Count: 2
       Core Enabled: 2
       Thread Count: 4
       Characteristics:
               64-bit capable

Handle 0x0017, DMI type 7, 19 bytes
Cache Information
       Socket Designation: L3 Cache
       Configuration: Enabled, Not Socketed, Level 3
       Operational Mode: Write Through
       Location: Internal
       Installed Size: 3072 kB
       Maximum Size: 3072 kB
       Supported SRAM Types:
               Synchronous
       Installed SRAM Type: Synchronous
       Speed: Unknown
       Error Correction Type: Single-bit ECC
       System Type: Unified
       Associativity: Other

Handle 0x0018, DMI type 7, 19 bytes
Cache Information
       Socket Designation: L1 Cache
       Configuration: Enabled, Not Socketed, Level 1
       Operational Mode: Write Through
       Location: Internal
       Installed Size: 32 kB
       Maximum Size: 32 kB
       Supported SRAM Types:
               Synchronous
       Installed SRAM Type: Synchronous
       Speed: Unknown
       Error Correction Type: Single-bit ECC
       System Type: Data
       Associativity: 8-way Set-associative

Handle 0x0019, DMI type 7, 19 bytes
Cache Information
       Socket Designation: L2 Cache
       Configuration: Enabled, Not Socketed, Level 2
       Operational Mode: Write Through
       Location: Internal
       Installed Size: 256 kB
       Maximum Size: 256 kB
       Supported SRAM Types:
               Synchronous
       Installed SRAM Type: Synchronous
       Speed: Unknown
       Error Correction Type: Single-bit ECC
       System Type: Unified
       Associativity: 8-way Set-associative

Handle 0x001A, DMI type 7, 19 bytes
Cache Information
       Socket Designation: L1 Cache
       Configuration: Enabled, Not Socketed, Level 1
       Operational Mode: Write Through
       Location: Internal
       Installed Size: 32 kB
       Maximum Size: 32 kB
       Supported SRAM Types:
               Synchronous
       Installed SRAM Type: Synchronous
       Speed: Unknown
       Error Correction Type: Single-bit ECC
       System Type: Instruction
       Associativity: 4-way Set-associative

Handle 0x001B, DMI type 16, 15 bytes
Physical Memory Array
       Location: System Board Or Motherboard
       Use: System Memory
       Error Correction Type: None
       Maximum Capacity: 8 GB
       Error Information Handle: No Error
       Number Of Devices: 2

Handle 0x001C, DMI type 17, 28 bytes
Memory Device
       Array Handle: 0x001B
       Error Information Handle: 0x001D
       Total Width: 64 bits
       Data Width: 64 bits
       Size: 1024 MB
       Form Factor: SODIMM
       Set: None
       Locator: Bottom - Slot 1
       Bank Locator: BANK 0
       Type: DDR3
       Type Detail: Synchronous
       Speed: 1067 MHz
       Manufacturer: Hynix
       Serial Number: 0554C573
       Asset Tag: Unknown
       Part Number: HMT112S6BFR6C-H9  
       Rank: Unknown

Handle 0x001D, DMI type 18, 23 bytes
32-bit Memory Error Information
       Type: OK
       Granularity: Unknown
       Operation: Unknown
       Vendor Syndrome: Unknown
       Memory Array Address: Unknown
       Device Address: Unknown
       Resolution: Unknown

Handle 0x001E, DMI type 20, 19 bytes
Memory Device Mapped Address
       Starting Address: 0x00000000000
       Ending Address: 0x0003FFFFFFF
       Range Size: 1 GB
       Physical Device Handle: 0x001C
       Memory Array Mapped Address Handle: 0x0023
       Partition Row Position: 2
       Interleave Position: 1
       Interleaved Data Depth: 1

Handle 0x001F, DMI type 17, 28 bytes
Memory Device
       Array Handle: 0x001B
       Error Information Handle: 0x0020
       Total Width: 64 bits
       Data Width: 64 bits
       Size: 2048 MB
       Form Factor: SODIMM
       Set: None
       Locator: Bottom - Slot 2
       Bank Locator: BANK 1
       Type: DDR3
       Type Detail: Synchronous
       Speed: 1067 MHz
       Manufacturer: Micron
       Serial Number: FB2889E5
       Asset Tag: Unknown
       Part Number: 16JSF25664HZ-1G4F1
       Rank: Unknown

Handle 0x0020, DMI type 18, 23 bytes
32-bit Memory Error Information
       Type: OK
       Granularity: Unknown
       Operation: Unknown
       Vendor Syndrome: Unknown
       Memory Array Address: Unknown
       Device Address: Unknown
       Resolution: Unknown

Handle 0x0021, DMI type 20, 19 bytes
Memory Device Mapped Address
       Starting Address: 0x00000000000
       Ending Address: 0x0007FFFFFFF
       Range Size: 2 GB
       Physical Device Handle: 0x001F
       Memory Array Mapped Address Handle: 0x0023
       Partition Row Position: 2
       Interleave Position: 2
       Interleaved Data Depth: 1

Handle 0x0022, DMI type 18, 23 bytes
32-bit Memory Error Information
       Type: OK
       Granularity: Unknown
       Operation: Unknown
       Vendor Syndrome: Unknown
       Memory Array Address: Unknown
       Device Address: Unknown
       Resolution: Unknown

Handle 0x0023, DMI type 19, 15 bytes
Memory Array Mapped Address
       Starting Address: 0x00000000000
       Ending Address: 0x000BFFFFFFF
       Range Size: 3 GB
       Physical Array Handle: 0x001B
       Partition Width: 2

Handle 0x0024, DMI type 127, 4 bytes

Επεξ/σία από sergyma
Δημοσ.

Επεισοδιο 2

 

Και αφου βρηκαμε το hardware, να βρουμε αν το χειριζεται ηδη καποιος driver.

 

α) Για οτι φαινεται στο lspci, υπαρχει το "lspci -k" που μας πληροφορει για τον driver που το συστημα εχει αναθεσει στην καθε συσκευη, πχ

 

>04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
Subsystem: Giga-byte Technology GA-EP45-DS5 Motherboard
Kernel driver in use: r8169

ή

>01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7800 GTX] (rev a1)
Subsystem: XFX Pine Group Inc. Device 2180
Kernel driver in use: nvidia

ή

>00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
Subsystem: Giga-byte Technology Device a002
Kernel driver in use: snd_hda_intel

 

 

β) Για οτι φαινεται στο lsusb, υπαρχει το lsusb -t για την ιδια λειτουργια, πχ για το χειριστήριο μου

 

>/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
   |__ Port 1: Dev 4, If 0, Class=HID, Driver=usbhid, 1.5M

 

Οκ, δεν ειναι και τοσο προφανες οτι εκει ειναι βαλμενο το χειριστηριο, αλλα αυτο ειναι το αντιστοιχο του lspci -k :(

 

Τελος, οταν ενας driver ειναι φορτωμενος, φαινεται στη λιστα των... φορτωμενων drivers, στο lsmod, πχ

 

>$ lsmod 
Module                  Size  Used by
joydev                 17010  0 
usbhid                 31523  0 
hid                    60120  1 usbhid
acpi_cpufreq           12807  1 
mperf                  12421  1 acpi_cpufreq
cpufreq_stats          12762  0 
cpufreq_userspace      12520  0 
cpufreq_powersave      12422  0 
cpufreq_conservative    12987  0 
nfsd                  173714  2 
nfs                   261507  0 
lockd                  57255  2 nfsd,nfs
fscache                31978  1 nfs
auth_rpcgss            32143  2 nfsd,nfs
nfs_acl                12463  2 nfsd,nfs
sunrpc                143853  6 nfsd,nfs,lockd,auth_rpcgss,nfs_acl
fuse                   52153  5 
sg                     21476  0 
coretemp               12770  0 
it87                   17958  0 
hwmon_vid              12398  1 it87
loop                   17810  0 
nvidia              10725349  30 
snd_hda_codec_realtek   142055  1 
snd_hda_intel          21856  0 
snd_hda_codec          63448  2 snd_hda_codec_realtek,snd_hda_intel
i2c_i801               12670  0 
psmouse                54927  0 
snd_hwdep              12943  1 snd_hda_codec
snd_pcm_oss            36181  0 
snd_mixer_oss          17668  1 snd_pcm_oss
snd_pcm                53390  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_midi           12744  0 
snd_rawmidi            18376  1 snd_seq_midi
snd_seq_midi_event     13124  1 snd_seq_midi
snd_seq                39487  2 snd_seq_midi,snd_seq_midi_event
snd_timer              22356  2 snd_pcm,snd_seq
snd_seq_device         13016  3 snd_seq_midi,snd_rawmidi,snd_seq
processor              27483  1 acpi_cpufreq
snd                    42691  11 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore              12921  1 snd
snd_page_alloc         12867  2 snd_hda_intel,snd_pcm
thermal_sys            17752  1 processor
i2c_core               19116  2 i2c_i801,nvidia
iTCO_wdt               16945  0 
iTCO_vendor_support    12632  1 iTCO_wdt
evdev                  17225  7 
pcspkr                 12515  0 
serio_raw              12803  0 
button                 12817  0 
ext3                  138190  1 
jbd                    51377  1 ext3
mbcache                12897  1 ext3
sd_mod                 35425  4 
sr_mod                 17468  0 
cdrom                  34813  1 sr_mod
crc_t10dif             12332  1 sd_mod
ahci                   20821  0 
ata_generic            12439  0 
pata_jmicron           12432  0 
ehci_hcd               35509  0 
libahci                18308  1 ahci
ata_piix               21175  4 
libata                124981  5 ahci,ata_generic,pata_jmicron,libahci,ata_piix
uhci_hcd               22337  0 
scsi_mod              135161  4 sg,sd_mod,sr_mod,libata
r8169                  41810  0 
mii                    12595  1 r8169
usbcore               104352  4 usbhid,ehci_hcd,uhci_hcd
usb_common             12338  1 usbcore

 

Αν δειτε προσεκτικα, αθ δειτε τον nvidia της καρτας γραφικων, τον sda_hda_intel της καρτας ηχου, τον r8169 της καρτας δικτυου και ολη τους την "παρεα", πχ τον i2c_i801 που παιρνει τη θερμοκρασια της καρτας μου απο τον nvidia.

 

Και τωρα που τελειωσαμε με τα απλα, ας παμε στα δυσκολα :P

Δημοσ. (επεξεργασμένο)

Επεισοδιο 3

 

Προειδοποιηση. Για οσα γραφω απο εκει που μιλαω για τα modules και κατω εχω μια μικρη αμφιβολια για την εγκυροτητα τους, μιας και ειναι κατι το οποιο ανακαλυψα τις τελευταιες μερες.

Επισης, ειναι για αυτους που το ψαχνουν πολυ και με προχωρημενες μεθοδους, οπως ο υποφαινομενος :P

 

Πιο πανω, αριστερα απο καθε συσκευη στο lsusb υπαρχει και ενα αναγνωριστικο, πχ στο

>Bus 004 Device 002: ID 045e:0039 Microsoft Corp. IntelliMouse Optical

το 045e:0039 ειναι το αναγνωριστικο. Ενδιαφερον, αλλα γιατι δεν λεει και στο lspci κατι αντιστοιχο?

 

Για να το πει στο lspci πρεπει να προσθεθει και η παραμετρος "nn", πχ

 

>$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller [8086:29c0] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port [8086:29c1] (rev 02)
00:1a.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 02)
00:1a.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 02)
00:1a.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 02)
00:1a.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 02)
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 02)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 02)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 [8086:2946] (rev 02)
00:1c.4 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 [8086:2948] (rev 02)
00:1d.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 02)
00:1d.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 02)
00:1d.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 02)
00:1d.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 02)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev 92)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801IR (ICH9R) LPC Interface Controller [8086:2916] (rev 02)
00:1f.2 IDE interface [0101]: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [iDE mode] [8086:2920] (rev 02)
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 02)
00:1f.5 IDE interface [0101]: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [iDE mode] [8086:2926] (rev 02)
01:00.0 VGA compatible controller [0300]: nVidia Corporation G70 [GeForce 7800 GTX] [10de:0091] (rev a1)
03:00.0 SATA controller [0106]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 02)
03:00.1 IDE interface [0101]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 02)
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 01)

 

Καθολου ασχημο, αλλα... τι ειναι αυτο το αναγνωριστικο και που χρησιμευει?

 

Το καθε αναγωριστικο (id απο εδω και κατω) αποτελειται απο 2 τετραψηφιους κωδικους, χωρισμενους απο μια ανω-κατω τελεια. Το πρωτο κομματι δειχνει τον κατασκευαστη (vendor id) και το δευτερο κομματι το hardware που προερχεται απο τον κατασκευαστη (product id). Πχ το 8086 ειναι παντα intel, το 10ec παντα realtek, το 10de παντα nvidia κλπ

Εννοειται το καθε ζευγαρακι id (vendor id + product id) παει σετ, πχ το 10de ή το 0091 σκετα δεν ειναι τιποτα, αλλα και τα 2 μαζι ειναι το id μιας nvidia (10de) 7800gtx (0091) και δεν αλλαζει ποτε. Ακομα και στον device manager των windows ιδιο φαινεται!

 

Πριν λιγες μερες, φτανοντας εδω θα ελεγα οτι αυτα αρκουν για να βρει καποιος τι ακριβως του χρειαζεται απο drivers. Και οντως αρκουν αλλα...

 

---

Πριν λιγες μερες λοιπον, καποιος ρωτησε για τον driver μιας ασυρματης καρτας με ενα rt3572 (id 1737:0079) και εγω απαντησα οτι θελει τον rt2800usb. Η διανομη του ειχε τον συγκεκριμενο driver αλλα μαλλον δεν εκανε δουλεια. Και αυτο γιατι ηταν οσο παλιος χρειαζεται ωστε να μην υποστηριζει τη συγκεκριμενη καρτα.

Αρα, καπου "πανω" στον driver θα "γραφει" πως υποστηριζει το ταδε τσιπακι με την ταδε id. Που ακριβως? Στο modinfo (modinfo — program to show information about a Linux Kernel module).

Αρα

 

>$ sudo modinfo rt2800usb
[sudo] password for jim: 
filename:       /lib/modules/3.2.0-1-686-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
license:        GPL
firmware:       rt2870.bin
description:    Ralink RT2800 USB Wireless LAN driver.
version:        2.3.0
author:         http://rt2x00.serialmonkey.com
srcversion:     BADDA828CDBD18C8C8EB2EB
alias:          usb:v148Fp5372d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp5370d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3365d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3329d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0284d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0930p0A07d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0062d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0041d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3572d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1737p0079d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13B1p002Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0944d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9801d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v167Bp4001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1690p0744d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p3572d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0050d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp8070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3370d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp945Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p343Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p341Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p3418d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p3416d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p5257d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0283d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0282d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0280d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CDEp0025d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CDEp0022d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v157Ep3013d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v157Ep300Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v177Fp0302d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A9p0006d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApB522d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA703d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA702d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA701d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA618d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap8522d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap7522d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap7512d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap7511d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap6618d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0060d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p005Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0051d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0048d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0047d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0042d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0040d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p003Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p003Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p003Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p003Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0039d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p002Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p002Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p002Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0017d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v129Bp1828d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04E8p2018d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3072d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp2870d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp2770d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp2070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1A32p0304d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2019pED06d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2019pAB25d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0471p200Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp0011d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp000Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp000Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v20B8p8888d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p899Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p870Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p821Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p6899d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3871d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3870d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3822d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3821d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3820d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v100Dp9031d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0789p0166d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0789p0164d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0789p0163d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0789p0162d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1737p0077d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1737p0071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1737p0070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13B1p0031d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0948d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0947d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0945d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0018d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0017d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0013d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p000Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0009d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E66p0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1044p800Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1044p800Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A9p0012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9709d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9708d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9707d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9706d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9705d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9703d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9702d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9701d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v203Dp14A9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v203Dp1480d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v7392p7718d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v7392p7717d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v7392p7711d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0FE9pB307d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07FAp7712d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C16d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C11d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C09d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v18C5p0012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07AAp003Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07AAp003Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07AAp002Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0411p01A2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0411p016Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0411p0158d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0411p00E8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp935Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp935Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp825Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp815Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp805Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v050Dp8053d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3321d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3307d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3305d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3273d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3247d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1761p0B05d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p1784d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p1742d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p1732d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p1731d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1690p0740d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15C5p0008d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C2Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C28d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C27d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C25d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C23d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C12d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C09d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C07d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C06d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p3072d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p3071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p3070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p2870d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p2770d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v8516p2070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1EDAp2310d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1EDAp2012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1482p3C09d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3072d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p2770d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p2870d*dc*dsc*dp*ic*isc*ip*
depends:        rt2x00lib,rt2800lib,rt2x00usb,usbcore
intree:         Y
vermagic:       3.2.0-1-686-pae SMP mod_unload modversions 686 
parm:           nohwcrypt:Disable hardware encryption. (bool)

 

Εδω, καθε γραμμη που ξεκιναει με alias δειχνει και ενα ζευγαρακι id σε στυλ "v1234p5678". Οτι ακολουθει το "v" ειναι το vendor id και οτι ακολουθει το "p" ειναι product id! :|

Αρα ειναι... supported hardware list απο τον εκαστοτε driver που εγκατεστημενος! Οποτε, μιας και σε καποια γραμμη εκει μεσα λεει καθαρα

> alias:          usb:v1737p0079d*dc*dsc*dp*ic*isc*ip*

ειανι 100% σιγουρο πως ο συγκεκριμενος driver, στη συγκεκριμενη εκδοση του, υποστηριζει την παραπανω καρτα!

 

Και για να δειξω οτι δεν ειναι τυχαια ανακαλυψη, το ιδιο με τον r8169 για την καρτα δικτυου μου (10ec:8168)

>alias:          pci:v000010ECd00008168sv*sd*bc*sc*i*

και την καρτα ηχου (8086:293e) και τον snd_hda_intel

>alias:          pci:v00008086d0000293Esv*sd*bc*sc*i*

αλλα με την nvidia δεν εβγαλα ακρη :P

>alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*

 

(η συνεχεια το μεσημερι)

Επεξ/σία από jim_p
  • Like 1
Δημοσ.

Επιστρέψτε μου να βοηθήσω λίγο στο τελευταίο post και ίσως να λύσω τις απορίες και του jim_p για το περίεργο alias στο alias της NVIDIA.

DISCLAIMER: το παρακάτω post έχει πολύ μικρά κομμάτια από τον kernel source code αλλά δέν είναι απαραίτητη η γνώση C. Προϋποθέτει όμως οτι ενδιαφέρεται ο αναγνώστης να μάθει επακριβώς τί είναι όλα αυτά που δείχνει ο jim_p στο προηγούμενο post.

 

Για να μπορεί να φορτώνει το λειτουργικό αυτόματα τον απαραίτητο driver για την κάθε συσκευή, πρέπει να ξέρει ποιό module (*.ko αρχείο) χρειάζεται για κάθε συσκευή. Όπως σωστά ανέφερε ο jim_p η κάθε συσκευή έχει το unique ζεύγος vendor_id:product_id. Αυτό το ζεύγος είναι διαφορετικό για PCI και διαφορετικό για USB, δηλαδή το 0100:0100 είναι εντελώς διαφορετική USB από PCI συσκευή. Αυτόν τον διαχωρισμό τον κάνει το αναγνωριστικό pci: ή usb: στην αρχή της γραμμής alias.

Τα επόμενα hex με τα γράμματα v, d, sv, sd, bc, sc και i ανάμεσα σημαίνουν πολύ συγκεκριμένα πράγματα.

Από το αρχείο include/linux/pci.h στο source tree του kernel μπορούμε να δούμε οτι υπάρχει το struct pci_device_id το οποίο (άν απλοποιήσουμε λίγο τα macros που υπάρχουν σε αυτό το αρχέιο) καταλήγει να δέχεται τα εξής members:

vendor, device, subverndor, subdevice, device class, device class mask και driver data.

Αυτά είναι και όλα τα στοιχεία που χρειάζεται ο kernel για να καταχωρήσει την ταυτότητα ενός device. Αυτά τα στοιχεία λοιπόν, πρέπει να αποκτήσουν τις σωστές τιμές (σε hex) για να γίνεται reference στην σωστή συσκευή ο driver αλλά επιτρέπονται και wild characters ακριβώς όπως και στο terminal όταν γράφεις rm -f *.avi π.χ.

Δηλαδή, στο παράδειγμα του jim_p παραπάνω η γραμμή

>pci:v000010DEd*sv*sd*bc03sc00i00*

περιγράφει τη συσκευή με:

vendor id: 000010DEd (NVIDIA)

device id: * (οποιαδήποτε)

subvendor id: * (οποιοσδήποτε)

subdevice id: * (οποιαδήποτε)

device class [bc03sc00]: αυτός ο κωδικός ανήκει στην κατηγορία συσκευών PCI DISPLAY 3D adapters.

Άρα η παραπάνω γραμμή σημαίνει για τον kernel οτι αν βρεθεί στο σύστημα συσκευή NVIDIA που ανήκει στην κατηγορία συσκευών με 3D δυνατότητες, αυτός είναι ο driver που ξέρει να την χειριστεί.

 

Άν υπάρχει παραπάνω ενδιαφέρον μπορώ να εξηγήσω αναλυτικότερα τί ακριβώς συμβαίνει με όλες αυτές τις κατηγορίες και υποκατηγορίες και πώς τα χειρίζεται ο kernel. Warning, μπορεί να χρειαστεί και λίγος κώδικας παραπάνω σε αυτή τη περίπτωση :P

  • Like 1
Δημοσ.

Πολύ ωραίο thread, πρέπει να γίνει sticky

 

 

 

- ειτε drivers κλειστου κωδικα, πχ απο ati και nvidia, που γινονται εγκατασταση μετα την εγκατασταση του λειτουργικου και ΜΟΝΟ απο τον package manager

 

Στην περίπτωση που θες να παίξει με τον τελευταίο κλειστό της ΑΤΙ το gnome shell/MGSE/Cinnamon τι κάνεις? (μιας και λύθηκε το πρόβλημα του gnome shell με τον κλειστό της ΑΤΙ, με τον 12.1, ο οποίος δεν είναι διαθέσιμος στο Πρόσθετοι οδηγοί υλικού σε ubuntu/mint)

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...