LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1288|回复: 11

我认为的一个gentoo的缺点,也请大家帮忙提供解决方法

[复制链接]
发表于 2011-3-3 22:06:22 | 显示全部楼层 |阅读模式
我觉得gentoo的USE flag应该分成2类,硬件类、功能类。

3dnow代表cpu是否支持3dnow指令集,这就是硬件类的USE
quicktime代表是否打开quicktime支持,这就是功能类的USE

我希望能有一个工具,通过探测系统硬件配置,然后自动生成硬件类USE旗标列表。
要不然我还得自己了解我的cpu是否支持3dnow、3dnowext、sse、sse2等。

功能类USE旗标应该只能由人来手工指定,因为每个人需要的系统特性不一样。

也看大家知不知道现成的方法能方便这种gentoo的这种配置。
发表于 2011-3-3 23:05:14 | 显示全部楼层
楼主的建议很有新意,不过其实硬件类的USE flag数量很少,而且很少修改,安装一次Gentoo只需设定一次。(而就Gentoo如此痛苦的安装过程来看,很少有人会喜欢每天安装Gentoo一次。 )默认设置一般就很契合现代硬件系统的特征,所需修改的不过一两个USE flag而已,例如我的make.conf中,关于硬件的USE flag除了预置的"mmx sse sse2"之外,只有"smp"和"nvidia"两个。专门写出一个script来自动生成也未尝不可,只是未免有三分小题大作。
此外,个别硬件类USE flag自动生成时也可能造成麻烦,比如libsdl的joystick这个USE flag,即便系统没有joystick也必须启用。

关于指令集的几个USE flag,主流的CPU一般是支持"mmx sse sse2"的,只有"sse3"、"3dnow"、"3dnowext"、"smp"等很少的USE flag需要检查,不过也只是一个less /proc/cpuinfo的问题而已。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 01:40:27 | 显示全部楼层
受用。还从没注意过profile里的“硬件USE”。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 11:24:44 | 显示全部楼层
Post by fpemud;2129785
我觉得gentoo的USE flag应该分成2类,硬件类、功能类。

3dnow代表cpu是否支持3dnow指令集,这就是硬件类的USE
quicktime代表是否打开quicktime支持,这就是功能类的USE

我希望能有一个工具,通过探测系统硬件配置,然后自动生成硬件类USE旗标列表。
要不然我还得自己了解我的cpu是否支持3dnow、3dnowext、sse、sse2等。

功能类USE旗标应该只能由人来手工指定,因为每个人需要的系统特性不一样。

也看大家知不知道现成的方法能方便这种gentoo的这种配置。
前段时间gentoo-dev讨论过类似的事情,大家都是比较认同的,不过目前我还没看到下文
回复 支持 反对

使用道具 举报

发表于 2011-3-4 12:00:26 | 显示全部楼层
As of version 4.3.0, the gcc compiler offers the -march-native switch that enables CPU auto-detection and automatically selects optimizations supported by the local machine at gcc runtime.

不是很熟悉gentoo, 这样直接改cflags, 不动use flag是不是就达到效果了?
回复 支持 反对

使用道具 举报

发表于 2011-3-4 16:59:21 | 显示全部楼层
Post by adam8157;2129851
As of version 4.3.0, the gcc compiler offers the -march-native switch that enables CPU auto-detection and automatically selects optimizations supported by the local machine at gcc runtime.

不是很熟悉gentoo, 这样直接改cflags, 不动use flag是不是就达到效果了?


应该不行,

use是编译过程中打开或者关闭某个选项,比如说打开或关闭对python的支持。

cflag是编译时的参数,不负责打开或关闭某个选项,只负责生成和cpu相互符合的机器码。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 17:00:32 | 显示全部楼层
Post by fpemud;2129785
我觉得gentoo的USE flag应该分成2类,硬件类、功能类。

3dnow代表cpu是否支持3dnow指令集,这就是硬件类的USE
quicktime代表是否打开quicktime支持,这就是功能类的USE

我希望能有一个工具,通过探测系统硬件配置,然后自动生成硬件类USE旗标列表。
要不然我还得自己了解我的cpu是否支持3dnow、3dnowext、sse、sse2等。

功能类USE旗标应该只能由人来手工指定,因为每个人需要的系统特性不一样。

也看大家知不知道现成的方法能方便这种gentoo的这种配置。


gentoo的基本思想在于选择,让用户选择,

你想选择就首先需要知道什么意思。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 17:39:50 | 显示全部楼层
【網路不好重覆發了...】
回复 支持 反对

使用道具 举报

发表于 2011-3-4 17:44:40 | 显示全部楼层
安装時看看/proc/cpuinfo不就可以了嗎:
  1. $ grep flags /proc/cpuinfo
  2. flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid
复制代码

你要看看那些有相對的USE flag可以:
  1. euse -i `grep -m 1 flags /proc/cpuinfo | cut -d: -f2`
复制代码


另外我自己也覺得USE flags太多不好管理所以我自己寫了一個use.conf再在make.conf裡面source:
  1. source use.conf
复制代码

然後use.conf自己小心分類、例如
  1. USE_AUDIO="alsa -oss gstreamer pulseaudio"
  2. USE_BASE="posix threads caps pch mime mpi ccache"
  3. USE_CPU="mmxext sse3 3dnow 3dnowext pae"
  4. ......
  5. USE="${USE_AUDIO} ${USE_BASE}..."
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-7 22:14:31 | 显示全部楼层
多谢大家

学习mathfeel的方法了,我也自己弄一套:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表