当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : repoline的问题:insmod一个简单ko,出现错误
帖子发表于 : 2018-04-11 15:54 

注册: 2014-10-16 15:11
帖子: 22
系统: Ubuntu
送出感谢: 0 次
接收感谢: 1
Ubuntu 16.04.2 (64位)内核4.4.0-116-generic
制作一个最简单的hello.ko,执行insmod hello.ko时出错,日志显示错误是:
version magic '4.4.0-116-generic SMP mod_unload modversions'
should be '4.4.0-116-generic SMP mod_unload modversions retpoline'


Ubuntu说retpoline是为了解决安全问题引入的编译选项,貌似需要用支持retpoline选项的编译器(gcc 7.3)重新编译软件:
https://wiki.ubuntu.com/SecurityTeam/Kn ... ndMeltdown
https://wiki.ubuntu.com/SecurityTeam/Kn ... #Retpoline
https://lwn.net/Articles/745385/

我安装了gcc-7,可是7.2版本。
我也不清楚如何编译ko,使之支持retpoline,能运行在此内核中。

有人知道吗?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: repoline的问题:insmod一个简单ko,出现错误
帖子发表于 : 2018-04-13 16:15 

注册: 2014-10-16 15:11
帖子: 22
系统: Ubuntu
送出感谢: 0 次
接收感谢: 1
目前已知这三个内核都有这个问题:
3.13.0-143-generic
4.4.0-116-generic
4.4.0-119-generic

如何解决?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: repoline的问题:insmod一个简单ko,出现错误
帖子发表于 : 2018-04-13 19:02 

注册: 2009-08-04 16:33
帖子: 17484
送出感谢: 21
接收感谢: 1883
引用:
Ubuntu 16.04.2 (64位)内核4.4.0-116-generic

引用:
貌似需要用支持retpoline选项的编译器

引用:
目前已知这三个内核都有这个问题:
3.13.0-143-generic
4.4.0-116-generic
4.4.0-119-generic

升級到 Ubuntu 18.04 / 目前預裝 内核 4.15.0-13-generic
預設 支援 retpoline

參閱
https://www.phoronix.com/scan.php?page= ... -Retpoline
Linux 4.15 has Retpoline support as of a few days ago.


页首
 用户资料  
 
4 楼 
 文章标题 : Re: repoline的问题:insmod一个简单ko,出现错误
帖子发表于 : 2018-04-16 9:54 

注册: 2014-10-16 15:11
帖子: 22
系统: Ubuntu
送出感谢: 0 次
接收感谢: 1
升級到 Ubuntu 18.04 / 目前預裝 内核 4.15.0-13-generic
預設 支援 retpoline

參閱
https://www.phoronix.com/scan.php?page= ... -Retpoline
Linux 4.15 has Retpoline support as of a few days ago.[/quote]

*********************************************************************************

我使用Ubuntu 18.04(内核4.15.0-15-generic),用modinfo查看显示如下:

ddk@ddk:/lib/modules/4.15.0-15-generic/kernel/net/x25$ modinfo x25.ko
filename: /lib/modules/4.15.0-15-generic/kernel/net/x25/x25.ko
alias: net-pf-9
license: GPL
description: The X.25 Packet Layer network layer protocol
author: Jonathan Naylor <g4klx@g4klx.demon.co.uk>
srcversion: 56421E42FEC48B08980FFFE
depends:
retpoline: Y
intree: Y
name: x25
vermagic: 4.15.0-15-generic SMP mod_unload
signat: PKCS#7
signer:
sig_key:
sig_hashalgo: md4

而在Ubuntu 16.04.2(内核4.4.0-119-generic)上,用modinfo查看显示如下:

ddk@ddk:/lib/modules/4.4.0-119-generic/kernel/net/x25$ modinfo x25.ko
filename: /lib/modules/4.4.0-119-generic/kernel/net/x25/x25.ko
alias: net-pf-9
license: GPL
description: The X.25 Packet Layer network layer protocol
author: Jonathan Naylor <g4klx@g4klx.demon.co.uk>
srcversion: 1C330644067B6F5B4EA0703
depends:
intree: Y
vermagic: 4.4.0-119-generic SMP mod_unload modversions retpoline


在 4.15.0-15-generic 上,编译和执行ko,都没有问题。
现在的问题是: 在 4.4.0-119-generic上,因为vermagic多了retpoline,导致编译后的ko无法执行。这个怎么解决?


页首
 用户资料  
 
5 楼 
 文章标题 : Re: repoline的问题:insmod一个简单ko,出现错误
帖子发表于 : 2018-04-23 15:48 

注册: 2014-10-16 15:11
帖子: 22
系统: Ubuntu
送出感谢: 0 次
接收感谢: 1
找到了一种解决方法:https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1756506

修改头文件,增加 RETPOLINE 定义:
echo "#define RETPOLINE 1" >> /usr/src/linux-headers-3.13.0-143-generic/include/generated/utsrelease.h

编译内核模块ko,执行insmod成功。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译