====== poulsboドライバ関連 ====== * xf86-video-psb-0.32-p1をxorg-server 1.7上で動かすためのパッチ置き場。 * 参考ページ: * [[http://blino.org/blog/mandriva/poulsbo-xserver1.7.html|Poulsbo on Mandriva with X server 1.7]] by blino * 実際参考にしたページは他にあったんですが、失念・・・。いずれにせよ上と同じような情報が結構で回っています * とりあえずblino氏ほか情報を出してくれている方に感謝 * Gentoo用だけど多分汎用 * ということで、とりあえず動くってレベルです ===== 使いかた ===== * がんばって使う。 * ebuildのepatchで追加したりするといいかも * CFLAGS="-fvisibility=default"をしてからドライバをビルドすること * ほんとはebuildをいじるのがいいんだろうけど、よーわからん ===== 問題点 ===== * なんだか動画がうまく再生されないんだ・・・。関係ないかもしれないけど。 ===== パッチ ===== * ダウンロード→{{:software:snge-psb-0.32.patch|}} * 修正点は: * xf86LoaderReqSymListsを使っているところを全部コメントアウト * LoaderRefSymListsを使っているところを(ry * xf86AddModuleInfoのシンボルを追加。中身は何もしない。 diff -Naur xserver-xorg-video-psb-0.32.0/src/psb_dri.c xserver-xorg-video-psb-0.32.0.new/src/psb_dri.c --- xserver-xorg-video-psb-0.32.0/src/psb_dri.c 2009-05-12 10:37:53.000000000 +0900 +++ xserver-xorg-video-psb-0.32.0.new/src/psb_dri.c 2010-09-07 18:23:59.000000000 +0900 @@ -548,7 +548,7 @@ PSB_DEBUG(pScrn->scrnIndex, 3, "psbDRIScreenInit\n"); - xf86LoaderReqSymLists(driReqSymbols, NULL); + // xf86LoaderReqSymLists(driReqSymbols, NULL); pPsb->pDRIInfo = NULL; diff -Naur xserver-xorg-video-psb-0.32.0/src/psb_driver.c xserver-xorg-video-psb-0.32.0.new/src/psb_driver.c --- xserver-xorg-video-psb-0.32.0/src/psb_driver.c 2010-09-05 23:52:36.000000000 +0900 +++ xserver-xorg-video-psb-0.32.0.new/src/psb_driver.c 2010-09-07 09:15:03.000000000 +0900 @@ -301,6 +301,8 @@ {0, 0, 0, 0} }; +// _X_EXPORT void xf86AddModuleInfo(pointer info, pointer module); + /* * This data is accessed by the loader. The name must be the module name * followed by "ModuleData". @@ -311,18 +313,21 @@ psbSetup(pointer Module, pointer Options, int *ErrorMajor, int *ErrorMinor) { static Bool Initialised = FALSE; - + + xf86AddModuleInfo(NULL, NULL); PSB_DEBUG(-1, 3, "psbSetup\n"); if (!Initialised) { Initialised = TRUE; xf86AddDriver(&psb, Module, 0); +#if 0 LoaderRefSymLists(fbSymbols, ddcSymbols, shadowSymbols, psbvgahwSymbols, #ifdef XF86DRI psbDRMSymbols, psbDRISymbols, #endif NULL); +#endif return (pointer) TRUE; } @@ -626,8 +631,7 @@ if (!xf86LoadSubModule(pScrn, "dri")) return FALSE; - - xf86LoaderReqSymLists(psbDRISymbols, psbDRMSymbols, NULL); + // xf86LoaderReqSymLists(psbDRISymbols, psbDRMSymbols, NULL); return TRUE; } @@ -648,11 +652,19 @@ pPsb->xpsb = TRUE; - xf86LoaderReqSymLists(psbXpsbSymbols, NULL); + // xf86LoaderReqSymLists(psbXpsbSymbols, NULL); return TRUE; } #endif +// remove in Xserver 1.7, add it again! +_X_EXPORT void +xf86AddModuleInfo(pointer into, pointer module) +{ +} + + + static Bool psbPreInitAccel(ScrnInfoPtr pScrn) { @@ -668,7 +680,7 @@ if (!xf86LoadSubModule(pScrn, "exa")) return FALSE; - xf86LoaderReqSymLists(exaSymbols, NULL); + // xf86LoaderReqSymLists(exaSymbols, NULL); } xf86DrvMsg(pScrn->scrnIndex, from, "Acceleration %sabled\n", @@ -708,7 +720,7 @@ if (!xf86LoadSubModule(pScrn, "shadow")) return FALSE; - xf86LoaderReqSymLists(shadowSymbols, NULL); + // xf86LoaderReqSymLists(shadowSymbols, NULL); } xf86DrvMsg(pScrn->scrnIndex, from, "Shadow framebuffer %sabled\n", @@ -842,7 +854,7 @@ if (!xf86LoadSubModule(pScrn, "vbe")) return FALSE; - xf86LoaderReqSymLists(vbeSymbols, NULL); + // xf86LoaderReqSymLists(vbeSymbols, NULL); /* * Parse options and load required modules here. @@ -862,7 +874,7 @@ if (!xf86LoadSubModule(pScrn, "fb")) return (FALSE); - xf86LoaderReqSymLists(fbSymbols, NULL); + // xf86LoaderReqSymLists(fbSymbols, NULL); pScrn->chipset = "Intel GMA500"; pScrn->monitor = pScrn->confScreen->monitor; @@ -1021,7 +1033,7 @@ if (!xf86LoadSubModule(pDevice->pScrns[0], "vgahw")) return FALSE; - xf86LoaderReqSymLists(psbvgahwSymbols, NULL); + // xf86LoaderReqSymLists(psbvgahwSymbols, NULL); if (!vgaHWGetHWRec(pDevice->pScrns[0])) return FALSE;