diff --git a/915resolution-config b/915resolution-config new file mode 100644 index 0000000..6f6efd6 --- /dev/null +++ b/915resolution-config @@ -0,0 +1,2 @@ +# Mode to overwrite +# RESOLUTION="58 1680 1050" diff --git a/915resolution-init b/915resolution-init new file mode 100644 index 0000000..d292866 --- /dev/null +++ b/915resolution-init @@ -0,0 +1,65 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/915resolution +# +# Starts the 915resulution helper +# +# chkconfig: - 65 35 +# description: 915resolution tool +# processname: 915resolution +# Source function library. +. /etc/init.d/functions + +test -x /usr/sbin/915resolution || exit 0 + +RETVAL=0 +prog="915resolution" + +start() { + if [ -r /etc/sysconfig/915resolution ]; then + . /etc/sysconfig/915resolution + fi + if [ -n "$RESOLUTION" ]; then + echo -n $"Starting $prog: " + /usr/sbin/915resolution $RESOLUTION >/dev/null 2>&1 + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/915resolution + echo + fi +} + +stop() { + rm -f /var/lock/subsys/915resolution +} + +# +# See how we were called. +# +case "$1" in + start) + start + ;; + stop) + stop + ;; + reload|restart) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/915resolution ]; then + stop + start + fi + ;; + status) + [ -f /var/lock/subsys/915resolution ] + RETVAL=$? + ;; + *) + echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}" + exit 1 +esac + +exit $RETVAL diff --git a/915resolution-pm-hook b/915resolution-pm-hook new file mode 100644 index 0000000..c6d3fe2 --- /dev/null +++ b/915resolution-pm-hook @@ -0,0 +1,11 @@ +#!/bin/sh + +case "$1" in + thaw|resume) + { /sbin/service 915resolution start ; } 2>/dev/null + ;; + *) + ;; +esac + +exit $? diff --git a/915resolution.spec b/915resolution.spec new file mode 100644 index 0000000..24c21b0 --- /dev/null +++ b/915resolution.spec @@ -0,0 +1,136 @@ +Name: 915resolution +Version: 0.5.3 +Release: 3%{?dist} +Summary: Intel video BIOS hack to support certain resolutions + +Group: User Interface/X Hardware Support +License: Public Domain +URL: http://www.geocities.com/stomljen/ +Source0: http://www.geocities.com/stomljen/%{name}-%{version}.tar.gz +Source1: %{name}-init +Source2: %{name}-config +Source3: %{name}-pm-hook +Patch0: 965GM.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +# this doesn't make much sense on ppc. That, and it fails to build :) +ExcludeArch: ppc ppc64 + +# simple "get it going" instructions +Source100: README.fedora + +# for the add/remove/condrestart service stuff. +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service + + +%description +915resolution is a tool to modify the video BIOS of the 800 and 900 series +Intel graphics chipsets. This includes the 845G, 855G, and 865G chipsets, as +well as 915G, 915GM, and 945G chipsets. This modification is necessary to +allow the display of certain graphics resolutions for an Xorg or XFree86 +graphics server. + +915resolution's modifications of the BIOS are transient. There is no risk of +permanent modification of the BIOS. This also means that 915resolution must be +run every time the computer boots inorder for it's changes to take effect. + +915resolution is derived from the tool 855resolution. However, the code +differs substantially. 915resolution's code base is much simpler. +915resolution also allows the modification of bits per pixel. + +%prep +%setup -q +%patch0 -p1 + +# keep rpmlint from complaining.... +chmod -x dump_bios + +cp %{SOURCE100} . + +%build +make clean +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{_sbindir} +cp %{name} %{buildroot}%{_sbindir} + +# ...and the associated support bits +mkdir -p %{buildroot}%{_sysconfdir}/rc.d/init.d +install -m 0755 -T %{SOURCE1} \ + %{buildroot}%{_sysconfdir}/rc.d/init.d/915resolution +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +install -m 0644 -T %{SOURCE2} \ + %{buildroot}%{_sysconfdir}/sysconfig/915resolution +mkdir -p %{buildroot}%{_sysconfdir}/pm/hooks +install -m 0755 -T %{SOURCE3} \ + %{buildroot}%{_sysconfdir}/pm/hooks/99resolution + + +%clean +rm -rf %{buildroot} + + +%post +# This adds the proper /etc/rc*.d links for the script +/sbin/chkconfig --add 915resolution + + +%preun +if [ $1 = 0 ]; then + /sbin/service 915resolution stop >/dev/null 2>&1 || : + /sbin/chkconfig --del 915resolution +fi + +# no postun scriptlet is provided to "restart" the service on upgrade as this +# doesn't seem entirely appropriate. explanations as to why this is wrong are +# welcome :) + +%files +%defattr(-,root,root,-) +%doc LICENSE.txt README* changes.log chipset_info.txt dump_bios +%{_sbindir}/* +%{_sysconfdir}/rc.d/init.d/* +%{_sysconfdir}/pm/hooks/* +%config(noreplace) %{_sysconfdir}/sysconfig/* + + +%changelog +* Tue Nov 13 2007 Chris Weyl 0.5.3-3 +- incorporate patch from bz #331411 + +* Tue Aug 21 2007 Chris Weyl 0.5.3-2 +- bump + +* Fri May 18 2007 Chris Weyl +- add 'ppc64' to list of arches excluded from builds; no rebuild at this time + +* Mon Apr 30 2007 Chris Weyl 0.5.3-1 +- update to 0.5.3 + +* Thu Mar 01 2007 Chris Weyl 0.5.2-6 +- bump + +* Mon Feb 19 2007 Chris Weyl 0.5.2-5 +- add initscript infrastructure from Bojan Smojver, who kindly did most of the + work to implement it. Thanks Bojan! :) + +* Thu Dec 07 2006 Chris Weyl 0.5.2-4 +- bump + +* Tue Aug 01 2006 Chris Weyl 0.5.2-3 +- excludearch ppc + +* Tue Aug 01 2006 Chris Weyl 0.5.2-2 +- bump for build & release + +* Thu Jul 27 2006 Chris Weyl 0.5.2-1 +- bump release +- add README.fedora + +* Tue Jun 13 2006 Chris Weyl 0.5.2-0 +- Initial spec file for F-E diff --git a/965GM.patch b/965GM.patch new file mode 100644 index 0000000..908ef25 --- /dev/null +++ b/965GM.patch @@ -0,0 +1,54 @@ +--- 915resolution-0.5.3/915resolution.c.lr 2007-10-14 19:35:46.000000000 +0200 ++++ 915resolution-0.5.3/915resolution.c 2007-10-14 19:38:49.000000000 +0200 +@@ -56,12 +56,12 @@ + + typedef enum { + CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, +- CT_946GZ, CT_G965, CT_Q965 ++ CT_946GZ, CT_G965, CT_965GM, CT_Q965 + } chipset_type; + + char * chipset_type_names[] = { + "UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", +- "946GZ", "G965", "Q965" ++ "946GZ", "G965", "965GM", "Q965" + }; + + typedef enum { +@@ -221,6 +221,10 @@ + type = CT_G965; + break; + ++ case 0x2a008086: ++ type = CT_965GM; ++ break; ++ + case 0x29908086: + type = CT_Q965; + break; +@@ -510,6 +514,7 @@ + case CT_945GM: + case CT_946GZ: + case CT_G965: ++ case CT_965GM: + case CT_Q965: + outl(0x80000090, 0xcf8); + map->b1 = inb(0xcfd); +@@ -550,6 +555,7 @@ + case CT_945GM: + case CT_946GZ: + case CT_G965: ++ case CT_965GM: + case CT_Q965: + outl(0x80000090, 0xcf8); + outb(map->b1, 0xcfd); +@@ -809,6 +815,9 @@ + else if (!strcmp(argv[index], "G965")) { + *forced_chipset = CT_G965; + } ++ else if (!strcmp(argv[index], "965GM")) { ++ *forced_chipset = CT_965GM; ++ } + else if (!strcmp(argv[index], "Q965")) { + *forced_chipset = CT_Q965; + } diff --git a/README.fedora b/README.fedora new file mode 100644 index 0000000..94aaba7 --- /dev/null +++ b/README.fedora @@ -0,0 +1,18 @@ +Some simple instructions on getting this going under Fedora Core. + +It's important to note that the invocation of this program needs to be done +at least once, at boot, to install the correct values in the video BIOS's RAM +copy. Executing 915resolution requires root privs. + +Note that the intel xorg drivers are supposed to deal with displaying to +non-bios modes "real soon now"; hence this setup technique. + +Note also the prior method used has changed (but should still work), thanks to +an actual initscript framework :) + +1. Read README.txt, in this directory... Figure out the proper invocation of + the binary for your hardware. +2. Edit /etc/sysconfig/915resolution. Modify "RESOLUTION" to be the proper + modestring to pass 915resolution for your hardware. +3. Enjoy widescreen :) + diff --git a/dead.package b/dead.package index 9efd50a..bdf33bb 100644 --- a/dead.package +++ b/dead.package @@ -1,5 +1 @@ -This package is obsolete past FC5, as the intel xorg driver now deals with -exactly the circumstances this package was designed to work around. - -Chris Weyl -Wed Aug 2 14:20:47 PDT 2006 +i810 driver not present in devel/f9+ :) diff --git a/sources b/sources new file mode 100644 index 0000000..5ca2d60 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +ed287778a53d02c31a7a6a52bc146291 915resolution-0.5.3.tar.gz