在 Saucy(13.10)上安装 3.13 内核-可能吗?

在 Saucy(13.10)上安装 3.13 内核-可能吗?

我想从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 图形加速。内核仍应安装正常。

相关内容