显卡配置工具
利用了Xorg提供的parser库,配置文件的写入和读出绝对准确,不会出错。显示器名称的probe利用的是ddc,可能在一小部分显示器上不稳定,可以通过
export
NXC_DISABLE_PROBE_MONITOR=1来disable.
显卡probe走的是xinf机制,在Magic上可能probe不出来,有兴趣的同志自己改一下吧。
关键是utils.cpp和nxc.cpp,他们不依赖任何东西,是配置文件和几个特殊功能的抽象,可复用。里面抽象了一对get set接口。utils提供了显卡probe以及modeline计算的函数。
本程序不是为了拿大家当白老鼠,是因为我们都还没有一个好用的配置工具。
redhat的system-config-display用的是pyxf86config,调用的也是Xorg的parser库。
yast的配置工具也是。
所以,我们需要一个KDE的。
愿用就用,愿意怎么改就怎么改吧。 :-D:-D:-D cjacker出品必属精品
Re: 显卡配置工具
利用了Xorg提供的parser库,配置文件的写入和读出绝对准确,不会出错。显示器名称的probe利用的是ddc,可能在一小部分显示器上不稳定,可以通过
export
NXC_DISABLE_PROBE_MONITOR=1来disable.
显卡probe走的是xinf机制,在Magic上可能probe不出来,有兴趣的同志自己改一下吧。(我会在有机会的时候push一下xorg,显卡驱动明明知道自己支持的硬件列表,为什么没有个接口直接告诉我们,这样probe就更加准确了)
关键是utils.cpp和nxc.cpp,他们不依赖任何东西,是配置文件和几个特殊功能的抽象,可复用。里面抽象了一对get set接口。utils提供了显卡probe以及modeline计算的函数。
本程序不是为了拿大家当白老鼠,是因为我们都还没有一个好用的配置工具。
redhat的system-config-display用的是pyxf86config,调用的也是Xorg的parser库。
yast的配置工具也是。
所以,我们需要一个KDE的。
愿用就用,愿意怎么改就怎么改吧。 我也来顶一下。
不过现在的ml2.0开发组好像不怎么在意这个东西。 :cry: 在ml上编译需要改几处,而且无法正常运行.可能还有需要修改的地方.
等等看吧. 很好,还没细看,因为打不开rpm的包,等会装个,rpm解包的工具。不知版权和使用上有什么要求。 希望各位大大能在除虫后发布到仓库,方便大家! To cjacker,
请教一下:
我编译的时候
utils.cpp的121行和192行有错误:
utils.cpp:121: 错误:‘PCI_FILL_CLASS’ 在此作用域中尚未声明
utils.cpp:192: 错误:‘struct pci_dev’ 没有名为 ‘device_class’ 的成员
我估计是include的pci.h有问题,我系统里的和你的不一样。
现在发现系统里有很多个pci.h,不知道你想引用的应该是哪个
我知道应该是Makefile.in里定义的
includedir = @includedir@
制定的@includedir@所具体表示的目录里面的pci.h
但我如何确定@includedir@应该取什么样的值?
象这种情况,我的编译器会用哪一个呢?
# locate pci.h | grep /pci.h
/usr/include/linux/pci.h
/usr/include/sys/pci.h
/usr/include/pci/pci.h
/usr/lib/klibc/include/linux/pci.h
/usr/lib/klibc/include/asm-i386/pci.h
/usr/lib/klibc/include/asm-generic/pci.h
/usr/src/linux-2.6.17-ARCH/include/linux/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/blk/dev/idedma/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/net/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/hisax/hfc/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/hisax/enternow/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/pci.h
/usr/src/linux-2.6.17-ARCH/include/config/serial/8250/pci.h
/usr/src/linux-2.6.17-ARCH/include/asm-i386/pci.h
/usr/src/linux-2.6.17-ARCH/include/asm-generic/pci.h 我从手册查看到,PCI_LIB里有定义:
int pci_fill_info(struct pci_dev *, int flags);
但没有常量 PCI_FILL_CLASS 的值
PCI_FILL_IDENT | PCI_FILL_CLASS | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES
其实就是个常数,这个常数如何确定? 我的pci_dev的数据结构
struct pci_dev {
struct pci_dev *next; /* Next device in the chain */
u16 domain; /* PCI domain (host bridge) */
u8 bus, dev, func; /* Bus inside domain, device and function */
/* These fields are set by pci_fill_info() */
int known_fields; /* Set of info fields already known */
u16 vendor_id, device_id; /* Identity of the device */
int irq; /* IRQ number */
pciaddr_t base_addr; /* Base addresses */
pciaddr_t size; /* Region sizes */
pciaddr_t rom_base_addr; /* Expansion ROM base address */
pciaddr_t rom_size; /* Expansion ROM size */
/* Fields used internally: */
struct pci_access *access;
struct pci_methods *methods;
u8 *cache; /* Cached config registers */
int cache_len;
int hdrtype; /* Cached low 7 bits of header type, -1 if unknown */
void *aux; /* Auxillary data */
};
你的 p->device_class
应该相当于我这里的
p->vendor_id, p->device_id(都是u16的数据类型)
的某种组合
但我不知道你那里device_class的长度和数据类型。 下面是修改过的utils.cpp
页:
[1]