Làm cách nào để cài đặt AMD Crimson trên Arch Linux 64 bit?


1

Tôi đã cố gắng cài đặt trình điều khiển AMD mới nhất trên máy Linux của mình, nhưng sau khi biên dịch nó, tôi nhận được thông báo này:

modprobe: ERROR: không thể chèn 'fglrx': Biểu tượng không xác định trong mô-đun hoặc tham số không xác định (xem dmesg) không thành công.

Xin lưu ý rằng tôi không quá giỏi về điều Linux này, vì tôi là người bản địa BSD nhiều hơn.

Chi tiết tình huống

  • Arch Linux, x86_64, phát hành 2016.01.01
  • Phiên bản hạt nhân: 4.3.3-2
  • AMD Radeon R9 290x
  • Màu đỏ thẫm, fglrx 15.302

Thực hiện cho đến nay

Ban đầu, tập lệnh cài đặt thậm chí không đến phần EULA, vì tôi phải cài đặt kernel-headersgói. Tại thời điểm này tôi thực sự có thể bắt đầu cố gắng cài đặt nó.

Chỉ cần chạy tập lệnh đã cho tôi một lỗi:

/usr/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:634:9: error: void value not ignored as it ought to be   
    len = seq_printf(m, "%d\n", major);
        ^

Sau một vài lần googling nhỏ, tôi tìm thấy giải pháp này và thực hiện thủ công/usr/lib/modules/fglrx/build_mod/make.sh

Nhưng quá trình biên dịch kết thúc với những thông điệp sau:

WARNING: "mtrr_add" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
WARNING: "mtrr_del" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!

Tất nhiên, bạn phải bỏ qua cảnh báo và vì vậy tôi đã tiến hành chỉ cài đặt các mô-đun đã biên dịch ... dẫn đến thông báo:

modprobe: ERROR: không thể chèn 'fglrx': Biểu tượng không xác định trong mô-đun hoặc tham số không xác định (xem dmesg) không thành công.

Sau khi xem dmesg, tôi thấy các dòng sau:

[ 2848.332722] fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[ 2848.332725] Disabling lock debugging due to kernel taint
[ 2848.343063] fglrx: Unknown symbol mtrr_del (err 0)
[ 2848.343114] fglrx: Unknown symbol mtrr_add (err 0)

Một số googling dẫn tôi đến tin nhắn danh sách thư này: https://patchwork.ozlabs.org/patch/510277/ trong đó đề cập đến việc loại bỏ mtrr_add()trên cơ sở của nó là một cách xấu:

Cuộc thập tự chinh để thay thế mtrr_add () bằng kiến ​​trúc agninto arch_phys_wc_add () đã hoàn tất, điều này sẽ đảm bảo việc triển khai kết hợp ghi (PAT trên x86) được tận dụng thay vì sử dụng MTRR. Với cuộc thập tự chinh được thực hiện ngay bây giờ, ẩn truy cập MTRR trực tiếp cho trình điều khiển.

Vậy tôi nên làm gì bây giờ?

Tôi không biết làm thế nào để tiến hành vào thời điểm này? Tôi có nên khác biệt tại nguồn, tìm kiếm các chức năng sử dụng mtrr_addmtrr_del? Có một số bản vá tôi nên áp dụng? Có phải tất cả chỉ là một thất bại lớn và tôi nên từ bỏ?


/ chỉnh sửa: Chỉnh sửa nhỏ: Trình điều khiển này tương thích (tốt, seq_printfdù sao thì cuộc gọi) lên tới Linux 4.2. AMD cho biết nó tương thích tới 3.19. Vì vậy, bạn sẽ phải sử dụng một nhánh kernel cũ hơn.
Daniel B

@DanielB hmm .. vì tôi không thực sự giỏi về vấn đề này, tôi sẽ thử cài đặt lại bản phát hành 2015.12.01 (với kernel 4.2.5), bởi vì dựa trên những gì tôi đã làm việc, việc hạ cấp một hệ thống mới được cài đặt có thể là cách quá phức tạp đối với tôi
teresko

Điều đó sẽ không hoạt động, nó sẽ lại bị hỏng trong lần cập nhật đầu tiên. Bạn cần sử dụng một gói kernel khác hoặc một bản phân phối khác hoàn toàn vì Arch luôn được cập nhật mọi lúc. Các phiên bản gói cũ hơn được gỡ bỏ nhanh chóng.
Daniel B

Câu trả lời:


1

Nhờ những bình luận của @DanielB mà tôi đã làm cho nó hoạt động .

Vì vậy, ... những gì tôi phải làm là hạ xuống kernel cũ / xorg phiên bản và chắc chắn rằng nó dính (mặc dù Arch Linux đang được thiết kế để ở trên cắt cạnh). Nhưng đó là một chút khó khăn.linux-4.2.5-1

Vì tôi bị kẹt trong bảng điều khiển, tôi đã tải xuống các gói cũ hơn từ kho lưu trữ (cụ thể: linux-4.2.5-1, linux-headers-4.2.5-1 và xorg-server-1.17.4-2). Tôi cũng phải có phiên bản cũ hơn của nhóm gói xorg-driver . Tôi đặt các gói đó vào /var/cache/pacman/pkg/và sau đó hạ cấp chúng bằng lệnh pacman -U /path/to/package-file.pkg.tar.xz.

Và sau đó cài đặt lại trình điều khiển Crimson và chạy aticonfig --initialđể tạo xorg.conf.

Để ngăn cập nhật hệ thống khỏi giả mạo tất cả, tôi đã thêm hai dòng này vào /etc/pacman.config:

IgnorePkg   = linux linux-headers xorg-server
IgnoreGroup = xorg-drivers

Những dòng này sẽ tạo ra các cảnh báo, khi chạy pacman -Syu... vì vậy bạn sẽ không thể quên nó. Khi trình điều khiển AMD Crimson mới xuất hiện, tôi sẽ có thể tạm thời vô hiệu hóa tạm thời này.

Và rồi nó nổ tung ...

Sau khi chạy pacman -Syuvà khởi động lại, có lỗi xảy ra (khi khởi động lại, quá trình khởi tạo bị kẹt). Tôi không hoàn toàn chắc chắn những gì đã xảy ra, nhưng những gì tôi đã làm là:

  • khởi động từ cài đặt-usb
  • làm một arch-chroottrong phân vùng chính của tôi
  • vô hiệu hóa sddm
  • khởi động lại
  • cài đặt lại Crimson và tạo lại xorg.conf
  • kích hoạt sddm

Điều này đã sửa nó. Những gì tôi thu thập được từ việc đọc các bản ghi khác nhau là: sau khi fglrxmô-đun cập nhật làm mờ hạt nhân một lần nữa, điều này khiến Xorg bị lỗi, điều này khiến cho systemd-logind không thể đạt được SDDM. Và như bất kỳ một phần hợp lý của hệ điều hành, systemd chỉ đi tits-up khóa tất cả mọi thứ (bàn phím không được đáp ứng).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.