Ubuntu 12.04无法升级到内核3.4


8

昨晚我打算将我的内核从3.2 0-24升级到3.4 ...我按照此说明进行操作。是否可以在默认的Ubuntu应用程序中安装Linux内核?

首先,我在此http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4-precise/下载了内核deb文件。

然后在终端上运行第一个命令

sudo dpkg -i linux-headers-3.4.0-030400_3.4.0-030400.201205210521_all.deb

可能成功了,这是输出:

(Reading database ... 402527 files and directories currently installed.)
Preparing to replace linux-headers-3.4.0-030400 3.4.0-030400.201205210521 (using linux-headers-3.4.0-030400_3.4.0-030400.201205210521_all.deb) ...
Unpacking replacement linux-headers-3.4.0-030400 ...
Setting up linux-headers-3.4.0-030400 (3.4.0-030400.201205210521) ...

所以我运行第二个命令

sudo dpkg -i linux-headers-3.4.0-030400-generic-pae_3.4.0-030400.201205210521_i386.deb

和输出在这里:

(Reading database ... 402527 files and directories currently installed.)
Preparing to replace linux-headers-3.4.0-030400-generic-pae 3.4.0-030400.201205210521 (using linux-headers-3.4.0-030400-generic-pae_3.4.0-030400.201205210521_i386.deb) ...
Unpacking replacement linux-headers-3.4.0-030400-generic-pae ...
Setting up linux-headers-3.4.0-030400-generic-pae (3.4.0-030400.201205210521) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.4.0-030400-generic-pae /boot/vmlinuz-3.4.0-030400-generic-pae
ERROR (dkms apport): kernel package linux-headers-3.4.0-030400-generic-pae is not supported
Error! Bad return status for module build on kernel: 3.4.0-030400-generic-pae (i686)
Consult /var/lib/dkms/fglrx-updates/8.960/build/make.log for more information.

看到输出上的错误,我停止了操作...我已经在Google先生,此站点,ubuntu论坛以及与该问题有关的任何博客中进行搜索,但是我没有找到任何解决方案...唯一的线索可能是我的ati fglrx驱动程序不能与内核3.4一起使用

我仍然打算将内核升级到3.4版本,因为即使在Windows 7上使用笔记本电脑模式工具,木星,添加内核启动选项acpi_osi = Linux等进行了一些解决方法后,我仍然感觉笔记本电脑仍在使用内核3.2,我的笔记本电脑的操作系统运行温度要低得多。

有没有人可以建议解决我的问题?如何正确解决这个问题?

供您参考,这是我的笔记本电脑名称:

  • 配备Intel®Core™i3 CPU M 350 @ 2.27GHz×4的ASUS A42JK
  • 2GB内存
  • ATI Mobility Radeon HD 5145

和已安装的fglrx驱动程序版本(如果我运行fglrxinfo)

display: :0.0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Mobility Radeon HD 4500 Series
OpenGL version string: 3.3.11627 Compatibility Profile Context

同样,这是/var/lib/dkms/fglrx-updates/8.960/build/make.log的内容:

DKMS make.log for fglrx-updates-8.960 for kernel 3.4.0-030400-generic-pae (i686)
Kam Jun  7 17:04:31 WIT 2012
/usr/sbin/dkms: line 73: cd: /var/lib/dkms/fglrx/8.960/build: No such file or directory
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.4.0-030400-generic-pae/build SUBDIRS=/var/lib/dkms/fglrx-updates/8.960/build/2.6.x modules
make[1]: Entering directory `/usr/src/linux-headers-3.4.0-030400-generic-pae'
  CC [M]  /var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.o
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c: In function ‘kasInitExecutionLevels’:
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c:4184:5: error: ‘cpu_possible_map’ undeclared (first use in this function)
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c:4184:5: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c:4184:5: warning: left-hand operand of comma expression has no effect [-Wunused-value]
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c: In function ‘KCL_fpu_begin’:
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c:5839:5: error: implicit declaration of function ‘__thread_has_fpu’ [-Werror=implicit-function-declaration]
/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.c:5840:9: error: implicit declaration of function ‘__save_init_fpu’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/var/lib/dkms/fglrx-updates/8.960/build/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/var/lib/dkms/fglrx-updates/8.960/build/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.4.0-030400-generic-pae'
make: *** [kmod_build] Error 2
build failed with return value 2

谢谢= D

更新

@John S Gruber:约翰,您好,昨晚我尝试了您的建议,我先删除了fglrx驱动程序,然后成功升级到3.4,但是后来我的ati图形卡出现了另一个问题。.在重新启动之前,我尝试安装免费的开源驱动程序从使用骑师gtk的回购中,首先我尝试安装发布后的更新,但失败了,然后我尝试了第二次更新,并且似乎成功并且没有错误,因此我重新启动了。重新启动后,普利茅斯没有出现,并且登录后在我的桌面上更改为unity 2D,所以我检查了fglrx

fglrxinfo
X Error of failed request:  BadRequest (invalid request code or no such operation)
Major opcode of failed request:  138 (ATIFGLEXTENSION)
Minor opcode of failed request:  66 ()
Serial number of failed request:  13
Current serial number in output stream:  13

所以看来我的ati驱动程序没有正确安装,并且我的笔记本电脑变得非常热,如70摄氏度,并且继续变得越来越热...然后,我尝试从AMD网站安装ATI驱动程序,但失败了,最终就像我尝试安装3.4内核,该内核无法使用二进制驱动程序。然后,我从这里http://wiki.cchtml.com/index.php/Ubuntu_Oneiric_Installation_Guide#Removing_Catalyst.2Ffglrx使用指南中删除fglrx 并运行这些命令

sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
sudo apt-get install xserver-xorg-video-ati
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo rm -rf /etc/ati

重新启动和我的3D再次,但得到的工作没有fglrx驱动只是用台面驱动我的笔记本电脑保持升温......我搜索谷歌和来到这个链接http://ubuntuforums.org/showthread.php?t=1988444是说,是一个可以使fglrx在内核3.4上运行的补丁,我尝试了解决方案,但是即使使用此链接http://ati.cchtml.com/attachment.cgi?id的补丁,内核仍然拒绝安装fglrx驱动程序。= 464 同样,我尝试几次清除驱动程序并多次重新启动,仍然安装驱动程序,总是在/var/lib/dkms/fglrx/8.961/build/make.log上出现此错误。

DKMS make.log for fglrx-8.961 for kernel 3.4.0-030400-generic-pae (i686)
Sab Jun 16 07:21:16 WIT 2012
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.4.0-030400-generic-pae/build SUBDIRS=/var/lib/dkms/fglrx/8.961/build/2.6.x modules
make[1]: Entering directory `/usr/src/linux-headers-3.4.0-030400-generic-pae'
  CC [M]  /var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.o
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c: In function ‘kasInitExecutionLevels’:
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c:4157:5: error: ‘cpu_possible_map’ undeclared (first use in this function)
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c:4157:5: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c:4157:5: warning: left-hand operand of comma expression has no effect [-Wunused-value]
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c: In function ‘KCL_fpu_begin’:
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c:5812:5: error: implicit declaration of function ‘__thread_has_fpu’ [-Werror=implicit-function-declaration]
/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.c:5813:9: error: implicit declaration of function ‘__save_init_fpu’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/var/lib/dkms/fglrx/8.961/build/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/var/lib/dkms/fglrx/8.961/build/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.4.0-030400-generic-pae'
make: *** [kmod_build] Error 2
build failed with return value 2

在那漫长的夜晚之后,没有解决方案,我切换回了内核3.2。。。没有人可以为我提供内核3.4的解决方案吗?对不起,带有*的链接的不便,我仅限于仅发布2个超链接。.感谢您的关注,我非常感谢。


我很高兴您能够安装并尝试使用它。对不起3.4不能解决您的热量问题。恐怕我的AMD / ATI笔记本电脑(东芝)也运行得很热,特别是当我正在做全屏视频(有时约为80C)时。不过,我希望您的新产品会更酷。我建议您开始一个有关散热问题的新问题,而不再涉及测试内核。浏览标有ACPI的文章可能会很有用。从您的问题中我看到您已经尝试过了。ACPI是一种机制,计算机可以通过该机制告知OS的温度以及风扇的运行方式。
John S Gruber 2012年

不幸的是,运行3.4的最佳方法(也是唯一受支持的方法)是等待Quantal(12.10),但我意识到那不是您想要的。
John S Gruber 2012年

我只是使用Linux内核中安装的ATI驱动程序,没有其他要安装的东西。我认为您收到的X消息是关于执行一些3D操作(字符串的GLEXTENSION部分)。这可能意味着驱动程序安装正确,但对硬件的了解还不够,还不知道如何通过它运行3D。这些只是猜测,因此不要依赖它们。
John S Gruber 2012年

谢谢John,我将接受您的建议,并且由于问题标题是有关升级到内核3.4的问题,因此我做到了,所以我接受了您的回答,谢谢= D
udin.elovers

Answers:


6

在我看来,它是fglrx(一种专有的ATI二进制驱动程序),它与3.4内核不兼容。dkms尝试处理与之连接的标头。我假设它试图编译一个接口模块。

这在某种意义上是有意义的,因为Ubuntu在新版本的开发周期中的某个时候获得了新的供应商驱动程序,而3.4不在生产Ubuntu版本中。我相信Ubuntu内核团队的网站提到仅二进制驱动程序可能与这些软件包不兼容。

由于正在试验,因此建议您删除fglrx驱动程序,并在当前系统中使用默认的radeon 1,然后再次尝试升级。如果未安装fglrx,则不应有dkms挂钩来重建任何与fglrx相关的内容。

完成后,您可能会希望查看量化档案,以获取与3.4内核兼容的最新fglrx软件包。然后,您将真正处于最前沿(或者实际上处于四肢)。

您还可能会看到Nvidia驱动程序无法与主线内核一起使用,因为某些人使用了Nvidia专有驱动程序。

如果有什么鼓励的话,上周我可以升级到3.5一段时间,但是我没有运行fglrx。我确实必须重新安装libllvm软件包才能保持unity-3d的正常运行,但从未找到原因。


在您的情况下,似乎3D渲染是通过llvmpipe(因此libllvm)在软件中完成的
ish

1

据我所知,AMD最近发布了催化剂驱动程序版本12.6(3-4天前),该版本与3.4内核兼容。因此,我建议您尝试卸载当前的“ fglrx”驱动程序,升级内核,然后安装最新的内核。请发布您的发现,因为我也在寻找过热的解决方案。听说内核3.4具有一些自动cpu缩放功能


-2
ERROR (dkms apport): kernel package linux-headers-3.4.0-030400-generic-pae is not supported
Error! Bad return status for module build on kernel: 3.4.0-030400-generic-pae (i686)

我似乎您的计算机与PAE不兼容,因此您需要自己编译Linux内核。该链接可能会对您有所帮助:http : //verahill.blogspot.com.es/2012/05/compiling-kernel-34-on-debian.html


但是,如果我的笔记本电脑与PAE不兼容,为什么安装的内核已经是PAE?当我使用命令“ uname -r”时,输出显示->“ 3.2.0-24-generic-pae” <-这是我当前的内核版本。
udin.elovers 2012年

然后,我不知道发生了什么……无论如何,尝试编译自己的内核版本。
Xerz 2012年

-2

您在这里有答案: kernel package linux-headers-3.4.0-030400-generic-pae is not supported


所以这意味着我不能在笔记本电脑上安装内核3.4?为什么?
udin.elovers 2012年

但是OP已经在运行Ubuntu 12.04,这意味着它们必须与PAE兼容。
John S Gruber 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.