HowTo : OpenChrome Driver For Via S3 Video Card

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة
  • Xero
    :: مشرف سابق ::
    • Sep 2006
    • 512

    HowTo : OpenChrome Driver For Via S3 Video Card

    السلام عليكم ورحمة الله وبركاته

    اليوم موضوعنا سوف نتحدث فيه عن كيفية تثبيت ال driver الخاص بكارت الشاشة من نوع Via S3 Unichrome pro وهو كارت يأتى أحيانا بصورة مدعمة فى اللوحة الأم سواء كانت MSI أو Asrock ونظرا لقلة هذه الكروت فى الإستعمال ونظرا لكونى واجهت هذه المشكلة فى البحث عن ال Driver الخاص بهذا الكارت قررت وضع هذا الموضوع بين أيديكم لعله يفيد أى شخص يواجه هذه المشكلة مثلى

    ونبدأ على بركة الله :

    ال Driver الخاص بهذه الكروت فى مجتمعات المصادر المفتوحة تحت اسم OpenChrome وهذا الDriver موجه لمجموعة من ال chips الخاصة ببعض اللوحات الأم منها على سبيل المثال :

    CLE266, KN400, KM400, K8M800, PM800, CN400, CN700, VN800, K8M890, P4VM800

    وسنتمكن فى هذا الموضوع من تثبيت وعمل compile لحزمة ال OpenChrome المفتوحة المصدر لهذه النوعية من الكروت ، وسيكون الشرح موجه بالدرجة الأولى لتوزيعة Ubuntu والتوزيعات المبنية عليها ، وأيضا يصلح للعمل على توزيعة Debian والتوزيعات الأخرى المبنية عليها .

    متطلبات قبل البدء والشروع فى العمل :

    1- ﻻبد من الحصول على صلاحيات الروت عند كتابة الأوامر الموجودة بالموضوع .

    2- ﻻبد من دعم السيرفرات الخاصة بالتوزيعة فى ملف ال sources.list وذلك بتحرير الملف وإزالة العلامة # قبل كل سطر يبدأ بكلمة deb ثم بعد ذلك تقوم بعمل update للتوزيعة حتى تُدْخٍل السيرفرات الجديدة ضمن المصادر التى تعتمد عليها فى تحميل الحزم من خلال الأمر التالى :

    كود:
    sudo apt-get update
    3- وجود بعض الحزم الأخرى على التوزيعة مثل حزمة build-essential والتى تحتوى على ال compiler وهو Gnu Gcc وتستطيع تثبيت الحزمة من خلال الأمر التالى :

    كود:
    sudo apt-get install build-essential
    4 - عمل backup لملف ال xorg.conf تحسبا لأى إجراء خاطىء من قبل المستخدم كالتالى :

    كود:
    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
    نبدأ أوﻻ مع عمل compilation لحزمة OpenChrome لدعم ال 2D :

    فى البداية نقوم بتثبيت الحزم المطلوبة بالشكل التالى :

    كود:
    sudo apt-get build-dep xserver-xorg-video-via
    كود:
    sudo apt-get install subversion autoconf automake1.9 libtool
    الآن سوف نقوم بتحميل ال source code الخاص بالحزمة OpenChrome ودعم ال 2D مع عمل Compilation لها كالتالى :

    أوﻻ : إذا كانت ال chip الخاصة باللوحة الأم تختلف عن ال Chip K8M890 سنعمل التالى :

    كود:
    svn checkout http://svn.openchrome.org/svn/trunk openchrome
    ثانيا : أما إذا كانت ال chip الخاصة باللوحة الأم من نوع K8M890 سنعمل التالى :

    كود:
    svn co http://svn.openchrome.org/svn/branches/experimental_branch openchrome-vt3336
    بعد الإنتهاء من تحميل ال source code الخاص بال driver سيكون لدينا مجلد تحت إسم openchrome داخل ال home directory وكل ما علينا فعله التالى :

    كود:
    cd openchrome*
    بعد ذلك سنكون داخل المجلد openchrome وسنقوم بتنفيذ السكريبت التالى :

    كود:
    ./autogen.sh --prefix=/usr
    لاحظ النقطة التى قبل العلامة / ، وقمنا أيضا باضافة الخيار prefix-- لتحديد المسار الصحيح الذى سوف نقوم بتثبيت ال driver فيه .

    بعد ذلك سنقوم بعمل compile للحزمة من خلال الأمر :

    كود:
    make
    ثم بعد ذلك نقوم بتنفيذ الأمر :

    كود:
    sudo make install
    بعد ذلك سنقوم بالتعديل على ملف ال xorg وتغير خصائص القسم Device وتغيير ال Driver من vesa إلى via كالتالى :

    مستخدمى Gnome عليهم عمل التالى :

    كود:
    gksudo gedit /etc/X11/xorg.conf
    مستخدمى الواجهة KDE عليهم عمل التالى :

    كود:
    kdesu kate /etx/X11/xorg.conf
    أو أى محرر نصوص آخر يحلو لك سواء كان nano أو vi إلخ ....

    الآن سننتقل إلى القسم Device ونحرر ال Driver ونقوم بتغييره من vesa إلى via كالتالى :

    كود:
    Section "Device"
            Identifier      "Generic Video Card"
            Driver          "vesa"
            BusID           "PCI:1:0:0"
    ليصبح :

    كود:
    Section "Device"
            Identifier      "Generic Video Card"
            Driver          "via"
            BusID           "PCI:1:0:0"
    بعد ذلك سنقوم بعمل restart لل x-server وذلك بعمل logout أو الضغط على ctrl+alt+backspace من خلال لوحة المفاتيح .

    الشق الثانى من الموضوع : دعم ال 3D :

    نقوم أوﻻ بتثبيت الحزم المطلوبة كالتالى :

    كود:
    sudo apt-get install git-core linux-headers-generic
    بعد ذلك نقوم بالحصول على ال source code من خلال الأمر التالى :

    كود:
    git clone git://anongit.freedesktop.org/git/mesa/drm
    الآن سوف يكون لدينا مجلد تحت إسم drm وسنقوم بعمل compile للمكتبة libdrm ولل drm kernel modules كالتالى :

    أوﻻ المكتبة libdrm كالتالى :

    كود:
    cd drm
    
    ./autogen.sh --prefix=/usr
    بعد ذلك تأتى عملية ال compilation كالتالى :

    كود:
    make
    
    sudo make install

    ثانيا : drm kernel modules :

    كود:
    cd linux-core
    بعد ذلك نقوم بعمل التالى :

    كود:
    make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
    بعد ذلك نقوم بعمل نسخ لل kernel modules للمكان الصحيح كالتالى :

    كود:
    sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/
    ثم بعد ذلك :

    كود:
    sudo depmod -ae
    ثم :

    كود:
    sudo modprobe drm 
    sudo modprobe via
    بعد ذلك سنقوم باختبار ال 3D عن طريق الأمر التالى :

    كود:
    glxinfo | grep render
    إذا كانت النتيجة كالتالى :

    كود:
    direct rendering: Yes
    فهنيئا لك فقد تمت المهمة بنجاح أما إذا حدث logout للتوزيعة بشكل تلقائى كما حدث معى فقم بعمل الخطوات مرة أخرى من البداية وفى النهاية سوف تحصل على النتيجة المطلوبة إن شاء الله .

    ما تبقى الآن هو وضع ال modules الخاصة بال Driver لكى تعمل بشكل تلقائى عند إعادة التشغيل عن طريق التالى :

    كود:
    echo "drm" | sudo tee -a /etc/modules 
    echo "via" | sudo tee -a /etc/modules
    ملحوظة : عند تنفيذ الأمر


    كود:
    glxinfo | grep render
    قد تجد هذه الرسالة :

    كود:
    libGL warning: 3D driver claims to not support visual 0x46
    ﻻ تقلق فهى ليست ذات أهمية ولن تعوق عمل ال driver ، لأنه بحثت كثيرا بخصوص هذه الرسالة وكانت النتيحة Just Ignore iT

    ملحوظة أخرى : هذه الفئة من الكروت للأسف لن تتكمن من تثبيت أى من ال 3D Desktop Environment عليها ﻷنه حتى الآن لا يوجد لها دعم من قبل اى 3D window manager سواء كانت beryl Or Compiz

    الموضوع مقتبس من الرابط التالى مع وضع بعض التعديلات عليه :



    تم الإنتهاء وأرجو أن تفيد هذه المشاركة البسيطة أحد الأعضاء لعلى أفوز بدعوة بظاهر الغيب

    السلام عليكم
    التعديل الأخير تم بواسطة Xero; الساعة 24-06-2007, 04:59 AM.
    شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
    | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |
  • abo.saud
    .: مشرف سابق :.
    • Nov 2006
    • 386

    #2
    جزاك الله خير على هالشرح الاكثر من رائع وسهل
    ملاحظه:-
    اصحاب اليوبنتو 7.04 قد تطلع لهم رسالة خطا بعد تنفيذ هذه الخطوه :-
    make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
    والرساله هي :-
    /home/shad/stuff/drm/linux-core/drm_compat.c:190: error: static declaration of ‘vm_insert_pfn’ follows non-static declaration
    include/linux/mm.h:1126: error: previous declaration of ‘vm_insert_pfn’ was here
    make[2]: *** [/home/shad/stuff/drm/linux-core/drm_compat.o] Error 1
    make[1]: *** [_module_/home/shad/stuff/drm/linux-core] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic'
    make: *** [modules] Error 2
    ولحل هذه المشكله نكتب :-
    gedit drm_compat.c
    ثم نذهب للسطر 188 وهو هكذا
    static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
    unsigned long pfn)
    {
    int ret;
    if (!drm_pte_is_clear(vma, addr))
    return -EBUSY;

    ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot);
    return ret;
    }
    نجعله هكذا (نزيد /*) :-
    /*
    static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
    unsigned long pfn)
    {
    int ret;
    if (!drm_pte_is_clear(vma, addr))
    return -EBUSY;

    ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot);
    return ret;
    }
    */
    لاحظ اننا وضعنا /* في البدايه والنهاية كما هو موضح
    ثم نحفظ الملف ثم نكتب الأمر :-
    make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
    ونكمل باقي الخطوات...
    سبحان الله وبحمده سبحان الله العظيم

    تعليق

    • fakir
      .: إداري سابق :.
      • Sep 2006
      • 1274

      #3
      السلام عليكم
      بارك الله فيك اخي اباعبدالرحمن،
      اشتقنا الى نكهة مواضيعك العطرة ^_^.
      الف شكر كذلك لاخي ابي السعود.

      تعليق

      • AmiZya
        .: مراقب عام سابق :.
        • Sep 2006
        • 1098

        #4
        الله يعافيكم يا إخوان,

        مشكورين جزيل الشكر

        La vie est complexe car nous avons tous une partie réelle et une partie imaginaire....

        تعليق

        • Xero
          :: مشرف سابق ::
          • Sep 2006
          • 512

          #5
          السلام عليكم

          جزاك الله خيرا أبا سعود ومشكور أخى الفاضل على الإضافة

          مشرفى الغالى أخى عبدالكريم الموضوع ما ازداد شرفا إﻻ بمرورك

          ومشكور أخى AmyZia على المرور وأتمنى أكون أفدت ولو بشكل بسيط

          دمتم بود



          السلام عليكم
          شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
          | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

          تعليق

          • abo.saud
            .: مشرف سابق :.
            • Nov 2006
            • 386

            #6
            العفو إخواني الأعزاء
            سبحان الله وبحمده سبحان الله العظيم

            تعليق

            • CPU
              مشرف سابق
              • Sep 2006
              • 1093

              #7
              بارك الله فيك .. شرح مميز

              ^_^
              GCS

              تعليق

              • Mohammed AL Jeaid
                .: مُراقب عآم :.
                .: أبـو عبد العزيز :.
                • Sep 2006
                • 5386

                #8
                ابو عبد الرحمن مميز .. يابطل الف شكر ..


                ابو سعود رجل المواقف الصعبه كانك حاس ان فى بعض الشباب بتخنبق ^_+

                bad3r
                :argeeleh:
                Twitter
                : @Linux4SA

                تعليق

                • أبوبراء1
                  Banned
                  • Jul 2007
                  • 155

                  #9
                  اخى ابو عبد الرحمن موصوع هايل وجهد حلو_ولكن عندى مشكلة انا عندى كارت شاشة في البوردة نفسها اعنى pilt inونوع البوردةgigabyteوالرامةddr1وانا متوقف عن تركيب اللينكس بسبب ان احد الاخوة قال لى ان كارت الشاشة ليس لة تعريف ولازم اجيب كارت pilt outارجو يأخ ابو عبد الرحمن المساعدة والاهتمام؟واااااسف علي الازعاج

                  تعليق

                  • أبوبراء1
                    Banned
                    • Jul 2007
                    • 155

                    #10
                    المشاركة الأصلية بواسطة أبوبراء1 مشاهدة المشاركة
                    اخى ابو عبد الرحمن موصوع هايل وجهد حلو_ولكن عندى مشكلة انا عندى كارت شاشة في البوردة نفسها اعنى pilt inونوع البوردةgigabyteوالرامةddr1وانا متوقف عن تركيب اللينكس بسبب ان احد الاخوة قال لى ان كارت الشاشة ليس لة تعريف ولازم اجيب كارت pilt outارجو يأخ ابو عبد الرحمن المساعدة والاهتمام؟واااااسف علي الازعاج
                    اخى أبوعبد الرحمن نوع كارت الشاشة اللى عندى هوintel(R)extrem graphics 2 DRIVER

                    تعليق

                    • abo khear
                      لينكساوي
                      • Aug 2009
                      • 7

                      #11
                      والله جزاك الله الف الف الف خير وجعله في ميزان حسناتك
                      صراحة شرحك وفى وكفي

                      تعليق

                      • tarek ragab
                        لينكساوي
                        • Apr 2008
                        • 682

                        #12
                        ممكن شرح للفيدورا
                        تم تعديل التوقيع من قبل الإدارة

                        تعليق

                        • هشام زيتون
                          لينكساوي
                          • Feb 2009
                          • 458

                          #13
                          جزاك الله الف خير ياخى

                          تعليق

                          يعمل...
                          X