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

Hardware και drivers στο linux


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

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

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

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

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

 

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

 

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

 

  Εμφάνιση κρυμμένου περιεχομένου

 

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

 

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

 

  Εμφάνιση κρυμμένου περιεχομένου

 

που δειχνει πως στις 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 που το συστημα εχει αναθεσει στην καθε συσκευη, πχ

 

  Εμφάνιση κρυμμένου περιεχομένου

 

 

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

 

  Εμφάνιση κρυμμένου περιεχομένου

 

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

 

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

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Αν δειτε προσεκτικα, αθ δειτε τον 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", πχ

 

  Εμφάνιση κρυμμένου περιεχομένου

 

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

 

Το καθε αναγωριστικο (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).

Αρα

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Εδω, καθε γραμμη που ξεκιναει με 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

 

 

  Στις 17/2/2012 στις 9:59 ΠΜ, jim_p είπε

 

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

 

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

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

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