Page 2 of 2

Posted: Fri Mar 11, 2005 1:39 pm
by cyberia46
我找到了一個xorg的patch
https://bugs.freedesktop.org/show_bug.cgi?id=591
不過要怎麼樣做patch??
我將他存成vaioc1vsbw.patch然後emerge xorg-x11
在他解開套件後CTRL+Z
然後把vaioc1vsbw.patch搬到
/var/tmp/portage/xorg-x11/work/patch/
底下
將這個檔名加入到一個DE...忘了叫什麼
然後#fg 1 可是emerge在做patch時只有看到其他的patch檔
就是沒看到我的vaioc1vsbw.patch
因為第一次做patch實在不知從何下手

diff -acENRr -x CVS -x test cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c devel/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
*** cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c Tue Mar 9 15:48:20 2004
--- devel/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c Tue May 11 07:49:30 2004
***************
*** 1918,1928 ****
VBlankEnd += 0x0100U;

pATI->LCDHBlankWidth = HBlankEnd - HBlankStart;
! pATI->LCDHSyncStart = HSyncStart - HBlankStart - 1;
pATI->LCDHSyncWidth = HSyncEnd - HSyncStart;

pATI->LCDVBlankWidth = VBlankEnd - VBlankStart;
! pATI->LCDVSyncStart = VSyncStart - VBlankStart - 1;
pATI->LCDVSyncWidth = VSyncEnd - VSyncStart;

HDisplay = HTotal + 5 - pATI->LCDHBlankWidth;
--- 1918,1928 ----
VBlankEnd += 0x0100U;

pATI->LCDHBlankWidth = HBlankEnd - HBlankStart;
! pATI->LCDHSyncStart = HSyncStart - HBlankStart;
pATI->LCDHSyncWidth = HSyncEnd - HSyncStart;

pATI->LCDVBlankWidth = VBlankEnd - VBlankStart;
! pATI->LCDVSyncStart = VSyncStart - VBlankStart;
pATI->LCDVSyncWidth = VSyncEnd - VSyncStart;

HDisplay = HTotal + 5 - pATI->LCDHBlankWidth;
diff -acENRr -x CVS -x test cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c devel/xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c
*** cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c Tue Mar 9 15:48:22 2004
--- devel/xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c Tue May 11 07:54:27 2004
***************
*** 185,191 ****
--- 185,195 ----
(pATI->Chip >= ATI_CHIP_264CT))
pMode->CrtcHBlankStart--;
pMode->CrtcHSyncStart = pMode->HSyncStart >> 3;
+ if (pATI->LCDPanelID >= 0)
+ pMode->CrtcHSyncStart--;
pMode->CrtcHSyncEnd = pMode->HSyncEnd >> 3;
+ if (pATI->LCDPanelID >= 0)
+ pMode->CrtcHSyncEnd--;
pMode->CrtcHBlankEnd = (pMode->HTotal >> 3) - 1;
pMode->CrtcHTotal = (pMode->HTotal >> 3) - 5;
pMode->CrtcHSkew = pMode->HSkew;
***************
*** 327,332 ****
--- 331,341 ----
pMode->CrtcVBlankStart++;
else
pMode->CrtcVBlankStart--;
+ if (pATI->LCDPanelID >= 0)
+ {
+ pMode->CrtcVSyncStart--;
+ pMode->CrtcVSyncEnd--;
+ }
pMode->CrtcVBlankEnd--;
if (pATI->Chip < ATI_CHIP_264CT)
pMode->CrtcVBlankEnd--;

Posted: Fri Mar 11, 2005 2:35 pm
by Jim
edit /usr/portage/x11-base/xorg-x11/xorg-x11-6.8.2-r1.ebuild
將 patch 放在
src_unpack() {
...
epatch ${FILESDIR}/vaioc1vsbw.patch
}

vaioc1vsbw.patch 置放於 /usr/portage/x11-base/xorg-x11/files
目錄下,然後 emerge xorg-x11 即可。

你所編輯的 .ebuild 將於下次 emerge sync 時會恢復原狀,
所以最好另外置放於另一目錄,建立目錄
# mkdir -p /usr/local/myebuild/x11-base/xorg-x11
copy 你的 .ebuild 於此目錄下,再建立 digest
# cd /usr/local/myebuild/x11-base/xorg-x11
# ebuild xxx.ebuild digest
然後編輯 /etc/make.conf 加上
PORTDIR_OVERLAY="/usr/local/myebuild"

Posted: Sat Mar 12, 2005 2:06 am
by cyberia46
謝謝各位前輩的幫忙不過我還是搞不出來

很冒昧的請各位前輩幫我看看到底我哪邊做錯了
我是依據下面的訊息去做的

http://forums.gentoo.org/viewtopic-t-21 ... 4x480.html

https://bugs.freedesktop.org/show_bug.cgi?id=591

很努力的看了(我的英文實在不好)但是移除"+1"是啥意思???

我也試了Jim前輩說的方法

edit /usr/portage/x11-base/xorg-x11/xorg-x11-6.8.2-r1.ebuild
將 patch 放在
src_unpack() {
...
epatch ${FILESDIR}/vaioc1vsbw.patch
}

vaioc1vsbw.patch 置放於 /usr/portage/x11-base/xorg-x11/files
目錄下,然後 emerge xorg-x11 即可。


不過系統說找不到在/var/tmp/portage/xorg-x11-6.8.0-r4/work/patch/下的
vaioc1vsbw.patch

後來我又用了emerge xorg-x11(不過xorg-x11-6.8.2-r1.ebuild已經照jim前輩的方法修改過了)
後CTRL+Z
然後把vaioc1vsbw.patch搬到
/var/tmp/portage/xorg-x11/work/patch/
底下的方法系統有找到patch不過卻跟我說code有問題在" --- 1918,1928 ---- "地方
請各位前輩指點一下

Posted: Sat Mar 12, 2005 6:46 am
by wishy-washy
Can you modify the first hunk of the patch to something like this?

Code: Select all

*** 1918,1928 ****
--- 1918,1928 ----
                     VBlankEnd += 0x0100U;
  
                  pATI->LCDHBlankWidth = HBlankEnd - HBlankStart;
-                 pATI->LCDHSyncStart = HSyncStart - HBlankStart - 1;
+                 pATI->LCDHSyncStart = HSyncStart - HBlankStart;
                  pATI->LCDHSyncWidth = HSyncEnd - HSyncStart;
  
                  pATI->LCDVBlankWidth = VBlankEnd - VBlankStart;
-                 pATI->LCDVSyncStart = VSyncStart - VBlankStart - 1;
+                 pATI->LCDVSyncStart = VSyncStart - VBlankStart;
                  pATI->LCDVSyncWidth = VSyncEnd - VSyncStart;
  
                  HDisplay = HTotal + 5 - pATI->LCDHBlankWidth;
[/code]

Posted: Sun Mar 13, 2005 1:04 am
by cyberia46
我修改了patch不過還是不行

emerge後出現錯誤要我到/var/portage/x11-base/xorg-x11/xorg-x11-6.8.0-r5/temp/下看錯誤訊息

以下是錯誤訊息
***** vaioc1vsbw.patch *****


============================


PATCH COMMAND: patch -p0 -g0 <
/var/tmp/portage/xorg-x11-6.8.0-r5/work/patch/vaioc1vsbw.patch
============================

patch: **** replacement text or line numbers mangled in hunk at line 6

============================


PATCH COMMAND: patch -p1 -g0 <
/var/tmp/portage/xorg-x11-6.8.0-r5/work/patch/vaioc1vsbw.patch

============================

patch: **** replacement text or line numbers mangled in hunk at line 6

============================


PATCH COMMAND: patch -p2 -g0 <
/var/tmp/portage/xorg-x11-6.8.0-r5/work/patch/vaioc1vsbw.patch

============================

patch: **** replacement text or line numbers mangled in hunk at line 6

============================


PATCH COMMAND: patch -p3 -g0 <
/var/tmp/portage/xorg-x11-6.8.0-r5/work/patch/vaioc1vsbw.patch

============================

patch: **** replacement text or line numbers mangled in hunk at line 6

============================


PATCH COMMAND: patch -p4 -g0 <
/var/tmp/portage/xorg-x11-6.8.0-r5/work/patch/vaioc1vsbw.patch

Posted: Sun Mar 13, 2005 4:41 am
by wishy-washy
That patch is already applied in 6.8.2.

Code: Select all

$ patch -p2 --dry-run <../vaioc1vsbw.patch 
patching file programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
Reversed (or previously applied) patch detected!  Assume -R? [n] 
Apply anyway? [n] 
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c.rej
patching file programs/Xserver/hw/xfree86/drivers/ati/ativga.c
Reversed (or previously applied) patch detected!  Assume -R? [n] 
Apply anyway? [n] 
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file programs/Xserver/hw/xfree86/drivers/ati/ativga.c.rej
But not in 6.8.0

Code: Select all

$ patch -p2 --dry-run <../vaioc1vsbw.patch 
patching file programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
patching file programs/Xserver/hw/xfree86/drivers/ati/ativga.c
So either the patch is already in gentoo's patchset (it seems not) or you screwed up downloading that vaioc1vsbw.patch. Those whitespaces in the patch are "VERY" important. Don't strip them.

Posted: Sun Mar 13, 2005 3:47 pm
by cyberia46
thank you wishy-washy
I try to unmask xorg-x11-6.8.2-r1 and emerge it
than xorg work!!
but now I have new problem my eterm can't work
XCIN can't work
anyway now I wall try to fix thouse problem
and thank's everyone