我想从http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.5-trusty/。我知道文件夹的名称trusty
,但我可以在 13.10 上安装它们吗?绑定dpkg -i
软件包后,我得到以下内容:
$ sudo dpkg -i linux-headers-3.13.5-031305_3.13.5-031305.201402221823_all.deb linux-headers-3.13.5-031305-generic_3.13.5-031305.201402221823_i386.deb linux-image-3.13.5-031305-gene
ric_3.13.5-031305.201402221823_i386.deb.1
[sudo] password for XXX:
Selecting previously unselected package linux-headers-3.13.5-031305.
(Reading database ... 174675 files and directories currently installed.)
Unpacking linux-headers-3.13.5-031305 (from linux-headers-3.13.5-031305_3.13.5-031305.201402221823_all.deb) ...
Selecting previously unselected package linux-headers-3.13.5-031305-generic.
Unpacking linux-headers-3.13.5-031305-generic (from linux-headers-3.13.5-031305-generic_3.13.5-031305.201402221823_i386.deb) ...
Selecting previously unselected package linux-image-3.13.5-031305-generic.
Unpacking linux-image-3.13.5-031305-generic (from linux-image-3.13.5-031305-generic_3.13.5-031305.201402221823_i386.deb.1) ...
Done.
Setting up linux-headers-3.13.5-031305 (3.13.5-031305.201402221823) ...
Setting up linux-headers-3.13.5-031305-generic (3.13.5-031305.201402221823) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
Error! Bad return status for module build on kernel: 3.13.5-031305-generic (i686)
Consult /var/lib/dkms/fglrx/13.251/build/make.log for more information.
Setting up linux-image-3.13.5-031305-generic (3.13.5-031305.201402221823) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
run-parts: executing /etc/kernel/postinst.d/dkms 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
Error! Bad return status for module build on kernel: 3.13.5-031305-generic (i686)
Consult /var/lib/dkms/fglrx/13.251/build/make.log for more information.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
update-initramfs: Generating /boot/initrd.img-3.13.5-031305-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.5-031305-generic /boot/vmlinuz-3.13.5-031305-generic
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.13.5-031305-generic
Found initrd image: /boot/initrd.img-3.13.5-031305-generic
Found linux image: /boot/vmlinuz-3.11.0-17-generic
Found initrd image: /boot/initrd.img-3.11.0-17-generic
Found memtest86+ image: /boot/memtest86+.bin
done
编辑
那是我的/var/lib/dkms/fglrx/13.251/build/make.log
DKMS make.log for fglrx-13.251 for kernel 3.13.5-031305-generic (i686)
pon, 3 mar 2014, 21:41:07 CET
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make -C /lib/modules/3.13.5-031305-generic/build SUBDIRS=/var/lib/dkms/fglrx/13.251/build/2.6.x modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.5-031305-generic'
CC [M] /var/lib/dkms/fglrx/13.251/build/2.6.x/firegl_public.o
/var/lib/dkms/fglrx/13.251/build/2.6.x/firegl_public.c: In function ‘KCL_GetEffectiveUid’:
/var/lib/dkms/fglrx/13.251/build/2.6.x/firegl_public.c:1758:5: error: incompatible types when returning type ‘kuid_t’ but ‘KCL_TYPE_Uid’ was expected
return current_euid();
^
/var/lib/dkms/fglrx/13.251/build/2.6.x/firegl_public.c:1762:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [/var/lib/dkms/fglrx/13.251/build/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/var/lib/dkms/fglrx/13.251/build/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.5-031305-generic'
make: *** [kmod_build] Error 2
build failed with return value 2
答案1
我找到了一个解决方案:
我已经应用了以下补丁(可以在http://forums.opensuse.org/showthread.php/493913-ATI-Proprietary-driver-13-12-installation-fails-in-openSUSE-13-1)
diff -rup fglrx.orig/firegl_public.c fglrx/firegl_public.c
--- fglrx.orig/firegl_public.c 2013-12-20 01:37:15.155648294 +0100
+++ fglrx/firegl_public.c 2013-12-21 01:02:47.201517242 +0100
@@ -1754,11 +1754,17 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(vo
*/
KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
{
+#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
+ return __kuid_val(current_euid());
+#else
+
#ifdef current_euid
return current_euid();
#else
return current->euid;
#endif
+
+#endif
}
/** /brief Delay execution for the specified number of microseconds
diff -rup fglrx.orig/kcl_acpi.c fglrx/kcl_acpi.c
--- fglrx.orig/kcl_acpi.c 2013-12-20 01:13:55.000000000 +0100
+++ fglrx/kcl_acpi.c 2013-12-21 01:06:00.158734992 +0100
@@ -792,7 +792,9 @@ static unsigned int KCL_ACPI_SearchHandl
unsigned int ATI_API_CALL KCL_ACPI_GetHandles(kcl_match_info_t *pInfo)
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,12)
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)
+ pInfo->video_handle = pInfo->pcidev->dev.acpi_node.companion;
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
pInfo->video_handle = pInfo->pcidev->dev.acpi_node.handle;
#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)
pInfo->video_handle = pInfo->pcidev->dev.archdata.acpi_handle;
@@ -996,6 +998,10 @@ int ATI_API_CALL KCL_ACPI_ParseTable(cha
{
return KCL_ACPI_ERROR;
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,1)
+ ((acpi_tbl_table_handler)handler)(hdr);
+#else
((acpi_table_handler)handler)(hdr);
+#endif
return KCL_ACPI_OK;
}
现在可以正常工作了:)
答案2
这仅意味着您将无法fglrx
在启动时加载模块,该模块为 AMD GPU 提供 3D 图形加速。内核仍应安装正常。