fglrx-9.12 and linux-2.6.32

mitsaras77 | Παρ, 12/18/2009 - 23:55 | 2' | 11

Πως θα κάνετε τον νέο fglrx driver να δουλέψει με το τελευταίο kernel (2.6.32)

***

Προϋπόθεση για να δουλέψουν όλα αυτά: έχετε απεγκαταστήσει πλήρως κάθε άλλη έκδοση του fglrx που έχετε. Φυσικά έχετε εγκαταστήσει τον kernel-2.6.32 και τα headers αυτού από τον διαχειριστή πακέτων της διανομή σας ή ότι άλλο... Και έχετε όλα τα κατάλληλα εργαλεία για την μεταγλώττιση πηγαίου κώδικα, που τα προσφέρουν όλες οι διανομές. Αν έχετε selinux κλπ, ίσως χρειάζεται να το πειράξετε για να δουλέξει το fglrx, αλλά δεν ξέρω πως γίνεται.

***

Kατεβάζουμε το αρχείο από εδώ. Ανοίγουμε την κονσόλα και μπαίνουμε στον κατάλογο όπου κατεβάσαμε το αρχείο. Δίνουμε

chmod +x ati-driver-installer-9-12-x86.x86_64.run (το κάνουμε εκτελέσιμο)
./ati-driver-installer-9-12-x86.x86_64.run --extract ati (αποσυμπιέζουμε το αρχείο στον κατάλογο ati)

Και διορθώνουμε το αρχείο common/lib/modules/fglrx/build_mod/kcl_io.c με τον αγαπημένο μας text editor προσθέτοντας αυτή τη γραμμή

#include <linux/signal.h>

κάπου μεταξύ των άλλων γραμμών #include που θα βρούμε στο αρχείο. Υστερα, από τον κατάλογο ati, δίνουμε με δικαιώματα root ή ως root την παρακάτω εντολή

./ati-installer.sh 9.12 --install

και εγκαθιστούμε τον driver. Κανουμε reboot και...voila, δουλεύει!!! Καλό hacking!

 

Φόρουμ
Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Και τώρα αρχίζουμε τις ερωτήσεις..

Λες να τον περάσω; Μήτσο, δουλεύει καλά; Πως τα πάει στην desktop χρήση o 9.12; Το ίδιο buggy όπως ο 9.11;

Kαι μερικές ακόμα ρητορικές... Tόσο δύσκολο ήταν για την μαμά ΑΤΙ να υπάρχει αυτή η μικρή γραμμούλα; Και τώρα πρέπει να περιμένω ένα μήνα για να δουλέψει χωρίς "hacking"; Τα παράθυρα αλλάζουν γρήγορα μέγεθος; Η επαναφορά ελαχιστοποιημένου παραθύρου σε πόσα δευτερόλεπτα γίνεται; Το βίντεο πόσα δευτερόλεπτα θέλει για να γίνει fullscreen;

Mητσάρα sorry για το ύφος, σε καμία περίπτωση δεν θέλω να υποβαθμίσω το αρχικό σου post, τα γραφόμενά σου ή οτιδήποτε άλλο. Είναι οτι τα έχω πάρει τώρα τελευταία με τον fglrx.

Teddy]

Kαι μερικές ακόμα ρητορικές... Tόσο δύσκολο ήταν για την μαμά ΑΤΙ να υπάρχει αυτή η μικρή γραμμούλα; Και τώρα πρέπει να περιμένω ένα μήνα για να δουλέψει χωρίς "hacking"; Τα παράθυρα αλλάζουν γρήγορα μέγεθος; Η επαναφορά ελαχιστοποιημένου παραθύρου σε πόσα δευτερόλεπτα γίνεται; Το βίντεο πόσα δευτερόλεπτα θέλει για να γίνει fullscreen;

Πολλά ζητάς :P

Teddy]

Mητσάρα sorry για το ύφος, σε καμία περίπτωση δεν θέλω να υποβαθμίσω το αρχικό σου post, τα γραφόμενά σου ή οτιδήποτε άλλο. Είναι οτι τα έχω πάρει τώρα τελευταία με τον fglrx.

Καιρός ήταν :P

Πέραν της πλάκας, ο 9.12 είναι μια από τα ίδια, τουλάχιστον σε μένα. Κάθε φορά που βγαίνει νέα έκδοση fglrx πάω κ κοιτάζω τη λίστα με αλλαγές/προσθήκες/διορθώσεις, κ ποτέ δεν γίνεται κουβέντα για τα βασικά αυτά προβλήματα (πχ γρήγορο (=κανονικό) resize στα παραθύρα). Oύτε στα "known bugs" δεν τα αναφέρουν. Τρέχα γύρευε.

ΥΓ: Ωραίος ο mitsaras που εντόπισε την αλλαγή στα headers του πυρήνα.

-- gnu_labis

Το Linux ΔΕΝ είναι Windows!!!

Σε περιβάλλον gnome που δουλεύω εγώ δεν αντιμετωπίζω ιδιαίτερα προβλήματα. Η καθηστέρηση στην επαναφορά παραθύρων ή στο βίντεο για να γίνει fullscreen δεν υπάρχει, όσο δεν ενεργοποιώ το compiz!! Με το compiz, πρέπει να περιμένω κανένα δευτερόλεπτο... Υστερα, το ξεθώριασμα των χρωμάτων σε ταινίες υπάρχει σε xv, εγώ βέβαια παίζω όλες τις ταινίες σε gl και έλυσα το πρόβλημα. To xvba δεν δουλεύει (τελευταία είχα πρόβλημα με τα patches κατά την μεταγλώττιση του mplayer και ούτως ή άλλως δεν είχα. Τα patch για xvba είναι πολύ κακογραμμένα, αλλά αυτό είναι άλλη ιστορία...) Βέβαια, εγώ χρησιμοποιώ τον fglrx γιατί μου δίνει άλλα πλεονεκτήματα. Εχω opengl 3.2(πολύ βασικό για μένα που χρησιμοποιώ wine για παιχνιδάκια..), power management (δεν δουλεύει σαν τρελό το ανεμιστηράκι στο laptop όλη την ώρα), στο desktop σύστημα έχω κάρτα AGP και με τον radeon από git είχα ουκ ολίγα προβλήματα. Με τον fglrx, όλα ρολόι. Επίσης, ο radeon από τo git για να δουλέψει χρειάζεται xserver-1.7 και στο sid δεν υπάρχει ακόμα. Αυτά.

Υ.Σ Δεν το βρήκα εγώ το κόλπο, αλλά με ελάχιστο googling η πληροφορία είναι άμεσα διαθέσιμη.

Και να το πρώτο bug, κατά την αναστολή του laptop όταν κλείνω το καπάκι, στο resume έχω μαύρη εικόνα. Τα log μου βγάζουν αυτό

[ 69.352642] Freezing user space processes ... (elapsed 0.00 seconds) done.
[ 69.353082] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
[ 69.353116] Suspending console(s) (use no_console_suspend to debug)
[ 69.378619] btusb_intr_complete: hci0 urb f647fc00 failed to resubmit (1)
[ 69.379620] btusb_bulk_complete: hci0 urb f647f400 failed to resubmit (1)
[ 69.380618] btusb_bulk_complete: hci0 urb f647ff00 failed to resubmit (1)
[ 69.412129] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 69.618728] sd 0:0:0:0: [sda] Stopping disk
[ 71.060437] ACPI handle has no context!
[ 71.060444] sdhci-pci 0000:04:06.1: PCI INT B disabled
[ 71.060450] ACPI handle has no context!
[ 71.080133] ACPI handle has no context!
[ 71.112171] iwlagn 0000:03:00.0: power state changed by ACPI to D3
[ 71.216151] HDA Intel 0000:01:00.1: PCI INT B disabled
[ 71.216217] ACPI handle has no context!
[ 71.232098] [fglrx] Power down the ASIC .
[ 71.232125] [fglrx] Preparing suspend fglrx in kernel.
[ 71.232130] ------------[ cut here ]------------
[ 71.232138] WARNING: at /tmp/buildd/linux-2.6-2.6.32/debian/build/source_i386_none/mm/page_alloc.c: \
1805 __alloc_pages_nodemask+0x149/0x4e0()
[ 71.232141] Hardware name: Satellite A300
[ 71.232143] Modules linked in: aes_i586 aes_generic fglrx(P) ppdev lp parport \
sco bridge stp bnep rfcomm l2cap crc16 binfmt_misc uinput fuse loop firewire_sbp2
snd_hda_codec_atihdmi snd_hda_codec_realtek uvcvideo videodev snd_hda_intel btusb
v4l1_compat snd_hda_codec bluetooth snd_hwdep arc4 snd_pcm_oss snd_mixer_oss \
snd_pcm ecb snd_seq_midi snd_rawmidi snd_seq_midi_event joydev iwlagn snd_seq
snd_timer iwlcore snd_seq_device mac80211 snd i2c_i801 soundcore snd_page_alloc \
cfg80211 i2c_core processor pcspkr psmouse ac battery serio_raw rfkill evdev ext3 \
jbd mbcache sg sr_mod cdrom sd_mod crc_t10dif uhci_hcd sdhci_pci sdhci ahci mmc_core libata \
video output firewire_ohci led_class firewire_core crc_itu_t r8169 mii
intel_agp agpgart ehci_hcd scsi_mod button usbcore nls_base thermal \
fan thermal_sys [last unloaded: scsi_wait_scan]
[ 71.232209] Pid: 2426, comm: pm-suspend Tainted: P 2.6.32-trunk-686 #1
[ 71.232212] Call Trace:
[ 71.232218] [<c1030a5d>] ? warn_slowpath_common+0x5e/0x8a
[ 71.232227] [<c1030a93>] ? warn_slowpath_null+0xa/0xc
 [ 71.232229] [<c108b992>] ? __alloc_pages_nodemask+0x149/0x4e0
[ 71.232232] [<c1007fc1>] ? sched_clock+0x5/0x7
[ 71.232235] [<c108bd35>] ? __get_free_pages+0xc/0x17
[ 71.232238] [<c10adc6d>] ? __kmalloc+0x30/0x128
[ 71.232277] [<f8b695fb>] ? firegl_save_fb+0x3b/0x1a0 [fglrx]
[ 71.232314] [<f8b686c6>] ? firegl_pm_save_framebuffer+0x246/0x2d0 [fglrx]
[ 71.232355] [<f8b8b264>] ? firegl_cmmqs_recoverable_surface_info+0xc4/0xd0 [fglrx]
[ 71.232391] [<f8b6b871>] ? firegl_cail_powerdown+0xd1/0x240 [fglrx]
[ 71.232422] [<f8b557f8>] ? fglrx_pci_suspend+0x54/0xbe [fglrx]
[ 71.232453] [<f8b5580c>] ? fglrx_pci_suspend+0x68/0xbe [fglrx]
[ 71.232457] [<c113f957>] ? pci_legacy_suspend+0x1c/0x8c
[ 71.232460] [<c11a3bd9>] ? pm_op+0x42/0xb8
[ 71.232463] [<c11a4000>] ? dpm_suspend_start+0x247/0x31e
[ 71.232466] [<c105863b>] ? suspend_devices_and_enter+0x35/0x139
[ 71.232468] [<c10587e5>] ? enter_state+0xa6/0xd5
[ 71.232470] [<c1058179>] ? state_store+0x91/0xa5
[ 71.232472] [<c10580e8>] ? state_store+0x0/0xa5
[ 71.232475] [<c112f57b>] ? kobj_attr_store+0x18/0x1c
[ 71.232478] [<c10f0ea8>] ? sysfs_write_file+0xb0/0xdd
[ 71.232481] [<c10f0df8>] ? sysfs_write_file+0x0/0xdd
[ 71.232483] [<c10b210e>] ? vfs_write+0x7e/0xd6
[ 71.232485] [<c10b21fe>] ? sys_write+0x3c/0x63
[ 71.232488] [<c10030fb>] ? sysenter_do_call+0x12/0x28
[ 71.232490] ---[ end trace 07d06bbee99c33fb ]---
[ 73.353797] [fglrx] Suspending fglrx in kernel completed.
[ 73.432142] ehci_hcd 0000:00:1d.7: PCI INT A disabled
[ 73.432152] uhci_hcd 0000:00:1d.3: PCI INT C disabled
[ 73.432160] uhci_hcd 0000:00:1d.2: PCI INT D disabled
[ 73.432168] uhci_hcd 0000:00:1d.1: PCI INT B disabled
[ 73.432176] uhci_hcd 0000:00:1d.0: PCI INT A disabled
[ 73.640168] HDA Intel 0000:00:1b.0: PCI INT A disabled
[ 73.656094] ehci_hcd 0000:00:1a.7: PCI INT D disabled
[ 73.656103] uhci_hcd 0000:00:1a.1: PCI INT B disabled
[ 73.656111] uhci_hcd 0000:00:1a.0: PCI INT A disabled
[ 73.697529] ACPI: Preparing to enter system sleep state S3
[ 73.702375] Disabling non-boot CPUs ...
[ 73.704651] CPU 1 is now offline
[ 73.704653] SMP alternatives: switching to UP code
[ 73.708844] CPU0 attaching NULL sched-domain.
[ 73.708846] CPU1 attaching NULL sched-domain.
[ 73.708851] CPU0 attaching NULL sched-domain.
[ 73.708986] CPU1 is down

Βέβαια, μπορεί να φταίει και κάτι άλλο, δηλαδή ότι έχω απενεργοποιήσει τα acpi services του fglrx με την εντολή

aticonfig --acpi-services=off

Αλλιώτικα κατά την εκκίνηση του xserver παίρνω πάντα μαύρη οθόνη.

Τι να κάνουμε... Εγώ χρησιμοποιώ hibernate και στο desktop τώρα τελευταία. Αφού δουλεύει καλά.

Μήτσο, δεν ξέρω καθόλου τι παίζει με το suspend στον fglrx, δεν μπορώ να σου πώ κάτι.  Μου φαίνεται δύσκολο να κάνει επαναφορά χωρίς acpi. Ίσως αν προσπαθούσες να πάρεις τα logs με aticonfig --acpi-services=on θα βλέπαμε τι φταίει. (Boot σε κονσόλα, σύνδεση με ssh ή με άλλο τρόπο απο άλλο pc, startx και ο θεός βοηθός.)

Tο πρόβλημα με το resize/restore/fullscreen υπάρχει μόνο σε compοsiting περιβάλλον (ή Compiz ή KWin), το ξέρουμε. Αλλά είναι κατάντια να δουλεύει στους ανοιχτούς και να μην δουλεύει στους κλειστούς σωστά το Compiz/Kwin.

Επίσης απο πλευράς ανοιχτών drivers έχει σχεδόν ολοκληρωθεί η υποστήριξη για OpenGL 2.0 με GLSL. Πλέον είναι on απο προεπιλογή. Σύντομα θα περάσει και στα διάφορα repo.

@gnu_labis. Δεν έχω καταλάβει γιατί περιμένεις να αλλάξει κάτι. Είμαι απο τους ελάχιστους που λέει εδώ και χρόνια ότι ο fglrx κάνει μια χαρά την δουλειά του. Η οποία όμως δεν είναι ούτε να παίζει βίντεο ούτε να τρέχει Compiz, ούτε να σούρνεις παραθύρια απο εδώ και απο εκεί και να τους αλλάζεις μέγεθος. Άμα δεν παίζεις παιχνίδια απλά βγάλτον και βάλε τους ανοιχτούς drivers. Η διαδικασία για να βάλεις 3D έιναι πολύ εύκολη, και πλεον υπάρχουν οδηγοί και στα ελληνικά για πολλές διανομές.

 

Λοιπόν, σε kernel-2.6.31, με acpi-services=off για το fglrx και χωρίς να πειράξω τον κώδικα, όλα ρολόι. Αναστολή, αδρανοποίηση κλπ, όλα ok. Τα γνωστά προβλήματα βέβαια παραμένουν και αναφέρθηκαν πιό πριν. Μάλλον θα περιμένω και τα πακέτα που θα βγάλουν τα παιδιά του debian, γιατί υποψιάζομαι ότι χρειάζεται κάτι παραπάνω από μια γραμμή σε ένα αρχείο για να δουλέψει σωστά ο fglrx με τον 2.6.32.. Οσο για τους ανοιχτούς drivers, αυτό που περιμένω είναι το xserver-1.7 να μπει στο sid. Είναι βασικό για να δουλέψουν όλα όσα πολύ σωστά αναφέρεις Teddy. 

Μήτσο, δεν χρειάζεται να έχεις τον 1.7 για να έχεις 3D. Tώρα είμαι με τον 1.6.5 (εκτός και αν αυτό πιάνεται σαν pre-release του 1.7). Απο οτι έχω καταλάβει δεν σου έχουν κάτσει οι ανοιχτοί..

Πάντως, και αυτοί του debian με την ίδια γραμμή που είχα υπόψιν και γω έχουν patchαρει τα πακέτα 9.12 για συμβατότητα με τον 2.6.32 και τίποτα παραπάνω. Χμμ

Μήπως θέλει το πλήρες patch αυτών του Gentoo; Συνήθως αυτοί βγάζουν τα "σωστά" patches για να τρέχει ο fglrx σε νέους kernels. Αν είναι περίμενε να βγάλουν καινούργιο ή πάρε το παλιό του 2.6.31.

 

Και μιας και σε βρήκαμε πρόθυμο δες και αυτό http://www.phoronix.com/forums/showthread.php?t=21057

Ή direct link εδώ: https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/hotfix/Catalyst_9.12_Hotfix_Linux_8.682.2RC1_Dec15.zip

Είναι η πρώτη "beta" που βγαίνει "επίσημα" για linux.

 Το δοκίμασα το hotfix του 9.12. Δεν βλέπει καμιά κάρτα μου (HD2600xt AGP, Mobility 3400 series pcie). 

Το είδα και στα release notes, είναι για r700-r800. Mου φαίνεται οτι οι r600 πάνε για φούντο σύντομα.