هر نفر یک کرنل

این نظریه زیاد انجام دادنش کار سختی نسیت. ینی شما می تونید کرنل شخصی خودتون رو داشته باشید. داشتن کرنل شخصی چند تا مزیت داره! اولیش اینه که سرعت بوت بدون شک زیاد می شه. دومیش در صورتی هست که کرنل رو به صورت درستی کانفیگ کرده باشید و نتیجه کانفیگ درست هم بالا رفتن راندمان سیستم هست. یه جورایی لینوکس می تونه از تمام قدرت سیستم شما استفاده کنه که در حالت عادی نمی تونست! سومین مزیت اینه که چیزای زیادی دستگیرتون می شه و به قدرت و عظمت لینوکس هم تا حدودی پی خواهید برد:دی

کرنل در تمام توزیع‌هایی که وجود داره  تقریبا یکسان هست . یعنی همه توزیع‌هایی که شما می‌بینید از یک سورس کرنل استفاده می‌کنند.  تفاوت اینها در دو چیز هست. یک در نحوه کانفیگ یا همون تنظیم کردن کرنل هست. و دوم در بعضی از توزیع‌های معروف مثل فدورا و سوزه، خود سازندگان پچ‌های زیادی رو برای کرنل آماده می‌کنند . کرنل لینوکس رو   قلب تمام توزیع‌های لینوکس/گنو باید حساب کرد و علت این موضوع هنگام تنظیم دقیق کرنل براتون مشخص می‌شه.

کامپایل کرنل خیلی خیلی عملیات آسونیه. و تنها مرحله‌ای که نیاز به صبر و حوصله بیشتری داره ، تنظیم درست و صحیح فایل کانفیگ کرنل هست که ما به اون کانفیگ کردن می‌گیم.  کرنل در تمام توزیع‌ها(یا اکثرشون) طوری کانفیگ و تنظیم می شوند، که بر روی طیف وسیعی از سخت‌افزارها نصب و اجرا بشوند. منظور از طیف وسیع این هست که اوبونتو یا فدورا یا سوزه و یا هر توزیع دیگر، هم  از پردازشگر اینتل و هم ای‌ام‌دی باید پشتیبانی به عمل بیاورد. هم روی پنتیوم ۴ کار کند و هم پنتیوم تری! هم کیبرد من در لینوکس کار کند و هم کیبرد شما. قرار است صدا از تمام اسپیکرها به گوش رسد.فرقی نمی‌کند  مادربورد ایسوس است و فلان چیپست را دارد یا مادربورد گیگا است و چیپست دیگر را !  برای همین در کرنل یک سری تنظیمات خاص داریم و یک سری تنظیمات عمومی! تنظیمات عمومی همین چیزی هست که در تمام توزیع‌ها وجود دارد و با این تنظیمات کرنل روی هر سخت افزاری نصب می شود. اما کارایی تا حدود زیادی لطمه می‌بیند. بنابراین  اگر  کرنل  منطبق با سخت‌افزار هر فرد کانفیگ شود، به شدت در افزایش سرعت بوت و مهمتر از آن افزیش کارایی سیستم تاثیر زیادی دارد.

مراحل کلی کار اینا هست.

۱- دانلود سورس کرنل به حجم ۶۰ مگ از سایت رسمی

۲- تنظیم و کانفیگ کردن کرنل

۳- کامپایل کرنل

۴- کامپایل ماژول‌های کرنل

۵- نصب ماژول های کرنل

۶- نصب خود کرنل

۷- ساخت رم دیسک

۸- قرار دادن کرنل و رم دیسک در گراب

باور کنید این مراحل یکی از یکی آسون تره! و همونطور که گفتم، طولانی ترین  مرحله کانفیگ کرنل هست. که اونم با ترفند و روشی که در نسخه جدید کرنل (۲.۶.۳۲) به وجود اومده، تبدیل به کار آسونی خواهیم کرد:دی  ینی اینطور بگم! منی که یک عمر از کامپایل کرنل می‌ترسیدم. الان روزی ده بار کرنل رو کامپایل می‌کنم.

۱- مورد اول که خیلی سادست! به سایت کرنل می رید و هر نسخه‌ای که دوست دارید رو دانلود می‌کنید:دی در ضمن هیچ خطری هم دانلود کرنل ناپایدار و در حال توسعه نداره. چون کرنل اصلی سیستم عامل همیشه سر جاش می‌مونه. نهایت امر اینه که می‌بینید کرنل جدیدی که کامپایل کردید، به دلتون نمی شینه. خیلی راحت از داخل گراب وارد کرنل سابق می شید.

۲- تنظیم و کانفیگ کردن کرنل

حالا فایل فشرده‌ای رو که گرفتید  باید از حالت فشرده در بیارید. و با ترمینال  وارد پوشه‌ای که سورس کرنل اونجاست بشید. اسم پوشه حاوی سورس چیزی شبیه linux-2.6.32 خواهد بودکه بسته به نسخه کرنل ، اون اعداد می تونه متفاوت باشه.

حالا نوبت به تنظیم کردن کرنل می‌ٰ رسه. برای تنظیم کردن کرنل، ما انتخابای مختلفی رو داریم. شاید یکی محیط گنوم باشه و کتابخانه‌های GTK رو داشته باشه، پس از دستور make gconfig برای تنظیم کرنل استفاده می‌کنه. شایدم یکی کی‌دی‌ای باشه دستور  make xconfig رو می‌زنه و یکی هم مث من محیط گرافیکی ترمینال رو دوست داره ، دستور make menuconfig می‌زنه و یکی هم زده به سیم آخر و می‌خواد به تک تک سوالات فایل کانفیگ جواب بده!! دستور make config رو می‌زنه. چیزی که مهمه این هست که هیچ کدوم از اینا فرقی با هم ندارند و تمام اینها تغییراتی رو در فایل مخفی کانفیگ موجود در سورس کرنل لینوکس ( config) ایجاد می‌کنند. تمام تنظیمات کانفیگ در این فایل ذخیره خواهد شد. فایلی که اولشم یک نقطه داره(چون مخفیه) ! این فایل هست که می‌گه چه چیزی باید کامپایل بشه و چه چیزی نشه:دی شما از چه فایل سیستمی استفاده می‌کنید؟ ext3 ؟ خوب در تنظیمات کرنل می‌تونید بقیه فایل سیستم‌ها رو غیر فعال کنید. پردازشگر اینتل دارید!؟ در قسمت تنظیمات یا همون کانفیگ کرنل باید ، تا چشتون به کلمه AMD، افتاد غیر فعالشون کنید و بالعکس

با دستور make menuconfig  وارد  تنظیمات کانفیگ می‌شیم. و صرفا قصدمون اینه که با هم قسمتای مختلف آشنایی پیدا کنیم. به محض اجرای این دستور اگر وارد محیطی همانند تصویر زیر نشدید! نهراسید! حتما نیاز به یک برنامه دیگر برای اجرای محیط گرافیکی زیر دارید:دی پیغام خطا حتما مشخص می‌کنه چه برنامه‌ای رو لازم دارید. نصب بسته هم مثل هر بسته دیگه در لینوکس. از توزیع تا توزیع فرق می‌کنه:دی (توی سیناپتیک سرچ یادتون نره)

وقتی وارد تنظیمات کرنل در ترمینال بشیم، تصویر زیر رو خواهیم داشت.

یک  سری سرفصل کلی داریم، که از روی اسم می‌شه تا حدودی به کار اونها پی برد! ما تاجایی که ممکنه باید این کرنل رو لخت کنیم! هر گزینه‌ سه حالت داره. یا هست، یا نیست و یا اینکه به صورت ماژول وجود داره:دی وقتی چیزی به صورت ماژول وجود داره، یعنی قرار نیست ما در حالت پیشفرض از اون قابلیت استفاده کنیم. هر موقع نیاز شد،  می تونیم ماژول رو بارگذاری کینم. مثل کاری که خیلیا باید برای نصب درایور کارت تی‌وی‌ انجام بدن! اما وقتی که کرنل رو داریم برای خودمون کامپایل می کنیم، استفاده از ماژول مفهوم چندانی نداره:دی  چون ما تکلیفمون با خودمون روشنه.  یا از یک چیز می‌خوایم استفاده کینم و یا نمی‌خواهیم!  من اول از سر فصلایی شروع می کنم که شما راحت می‌تونید لختش کنید و کرنل رو سبک کنید.

اولی Virtualization یا همون مجازی سازیه! پردازشگر  یا مجازی سازی رو ساپورت می‌کنه یا خیر! فرض می کنیم ساپورت می کنه. اما شما اصلا استفاده‌ای ازش ندارید:) پس سریع ستاره رو از جلوی مجازی سازی بردارید(با زدن اسپیس) .
حالا  فرض می کنیم پردازشگر شما ساپورت می کنه و مجازی سازی هم باب میل طبع شماست. اینتر می‌زنید تا وارد زیر فصلاش شید. اگه اولین گزینه رو که kvm داره رو ستاره دار کنید، دو تا گزینه دیگه هم فعال می شه:) متناسب با پردازشگر خودتون، مجازی سازی رو انتخاب کنید. دو قابلیت دیگه هم به صورت مجازی وجود داره. می تونید راهنما مربوط به اونا رو بخونید و در صورتی که باب میلتون بود اونا رو فعال کنید. من هنوز رابطه بین این گزینه‌های داخل کرنل با اون برنامه‌های ویرچال باکس و وی‌ام‌ویر رو متوجه نشدم:دی وقتی روشن می‌کنم، ویرچال باکس مشکل پیدا می‌کنه. بهتره این قابلیت رو  به صورت m یعنی ماژول فعال ‌کنیم تا فقط در صورت نیاز ماژول رو  بشه بارگزاری کرد.

سر فصل دیگه file system هست که به راحتی  مورد نظر رو می‌شه تشخیص داد و بقیه رو خاموش کرد. این زیر فصل دو تا چیز مهم هم داره!
یکی فایل سیستم ویندوز! اگه می خواید به پارتیشنای ویندوز از داخل لینوکس دسترسی داشته باشید، باید محتویات (DOS/FAT/NT Filesystems) را فعال کنید. همینطور خوندن سی‌دی‌و دی‌وی‌دی(CD-ROM/DVD Filesystems) . گزینه CD-ROM/DVD Filesystems هم برای سامبا و nfs هست. نوعی سیستم اشتراک فایل و تجهیزات مختلف بین ویندوز و لینوکس که در صورتی که استفاده‌ای ندارید، می‌شه غیر فعالش کرد.
در زیر مجموعه Partition Types هم می‌تونید دو گزینه PC BIOS و Windows Logical Disk Manager رو تیکش رو بزنید. در صورتی هم که از جداول پارتیشن بندی دیگه استفاده می کنید‌، باید مراقب باشید:دی در ضمن در مورد فایل سیستم‌ها مورد مربوط به دیباگ(Debuge)  رو بهشون نیازی نداریم:دی

برای برگشتن به صفحه اصلی هم از Esc استفاده کنید.

خوب یکی از سرفصلای کلیدی Device Drivers  هستش. تقریبا تمام قطعات سخت‌افزاری سیستم در این قسمت اگه درست انتخاب شه کار می کنن!  در اینجا اگه زیادی گزینه‌ها رو خاموش کنید، احتمال اینکه قطعه ای از سیستم کار نکنه بالاست.

مهمترینای بخش دیوایس:

Generic Driver Options که در داخلش یکی از مهمترین بخش‌های کرنل نسخه جدید (۲.۶.۳۲) وجود داره! که باعث افزایش سرعت بوت می شه . منظور گزینه Create a kernel maintained /dev tmpfs هستش که تاثیر زیادی در افزایش سرعت بوت بر عهده داره.

گزینه دیگر ATA/ATAPI/MFM/RLL support  هست که مربوط به هاردای IDE هستند و من به کل این بخش رو غیر فعال کردم:دی چون فقط ساتا دارم. دوستان باید دقت کنند که حتی هاردای ساتا نیز می توانند عملکردی مشابه آی‌دی‌ای داشته باشند.

و اما در صورت داشتن هارد ساتا. وارد زیر بخش Serial ATA (prod) and Parallel ATA (experimental) drivers می‌شید و گزینه‌های AHCI SATA support  و ATA SFF support  رو می زنید. اگه دقت کنید گزینه Marvell SATA support  رو هم خواهید دید. این تکنولوزي هست که در مادربوردای تمام ساتا به کار می ره . وقتی می‌خوان یک هارد IDE داشته باشن از این روش استفاده می کنن. در ضمن یادتون نره از داخل بایوس نحوه عملکرد هاردای ساتا رو AHCI تنظیم کنید تا ساتای واقعی بشن.

قسمت مربوط به اسکازی از موارد مهم  برای آدمای خاص هست(در صورتی که وسایل  اسکازی   دارید!!) . منظور گزینه SCSI device support هست که در زیر قسمت آن بخش‌های مهمی داریم. SCSI CDROM support  برای کار کردن سی دی رام اسکازی مورد نیاز است. SCSI generic support نیز برای رایتر و اسکنرهایی که اسکازی هستند مورد نیاز می شه. گزینه پشتیبانی از هاردای اسکازی هم SCSI disk support هست.

دوستان من تاکید می‌کنم! این گزینه‌هایی هست که من زدم و برای سخت‌افزار خودم بوده. من باگفتن این موارد فقط قصد دارم جای حدودی هر گزینه رو بهتون بگم و بقیه کار تلاش خودتون هست:دی

قسمتای مهم دیگه Network device support هست. در این بخش هست که کارت شبکه (ADSL)  و همه این چیزا تعیین می‌شه. پس این بخش رو باید دقت کنید:دی من این زیر بخش رو توضیحی نمی‌دم چون موارد متنوع هست. اما در ادامه روشی رو می بینیم که تمام این تنظیمات به صورت خودکار توسط چند خط کد اضافه انجام می‌شه (انقلاب در کانفیگ کرنل)

یکی از مهمترین بخش‌ها Graphics support هست . دقت کنید دوستان! من خودم شخصا تمام این گزینه‌های رو غیر فعال کردم. اما نتیجه این شده که از زمان گراب تا بالا اومدن لینوکس شاهد یک ترمینال زشت و زمخت هستم! همون اول بعد از گراب، هر بار سر تعیین  رزولیشن ترمینال زمانی رو از دست می‌دم! و سر همین موضوع زمان بوتم پایین می یاد:دی

از طرفی وقتی گزینه‌های زیادی رو فعال می کنم!! درایور رسمی شرکت انودیا رو نمی تونم نصب کنم! و علت تداخل با این کارت‌ها میباشد. پس تا زمانی که بتونیم اطلاعات دقیقی رو در این مورد بدست بیاریم:)) پیشنهاد من غیر فعال کردن همه موارد هست:دی

موارد پشتیبانی از USB و همینطور مانیتورای LED  نیز از این بخش قابل تنظیم هست. تکنولوژی DMA Engine support  نیز نباید فراموش شه. این تکنولوژی متعلق به اینتل هست و باعث می شه اطلاعات بدون اینکه پردازشگر کار بکنه ، در حالت رید بر روی هارد نوشته شه و البته زمانی به درد می خوره که سخت افزار هم پشتیبانی کنه:دی

زیر بخش مربوط به Multimedia support هم بخش‌های مهمی برای کسایی که وب کم و یا کارت تی‌وی یا DVB  دارن حساب می شه و باید سرکی بهش بکشن.

اگر از پارتیشن بندی به روش LVM یا Raid استفاده نمی‌کنید، نیز با خیال راحت گزینه Multiple devices driver support (RAID and LVM) رو خاموش کنید.

با زدن Esc وارد  بخش اصلی  می‌شیم. یکی از سر فصل‌های اصلی که من همه رو خاموش کردم، سرفصل Networking support هست که به جز گزینه اول، بقیه موارد داخل این سرفصل رو خاموش کردم:دی . چون نه وایرلسی دارم  و نه وایمکس و نه بلوتوثی

یکی از بخش‌های مستعد Power management and ACPI options  هست . این قسمت همونجایی هست که مسئول عملیات ساسپند و خواب زمستانی هست. پیشنهاد من اینه که اگه پی‌سی دارید، این گزینه رو غیر فعال کنید. اگرم که لب تاب دارید، می تونید گزینه های مطلوب رو روشن کنید.

یکی از زیر بخش‌های مهم ACPI ، گزینه های مربوط به   CPU Frequency scaling هستند . عموما در لب‌تابها و حتی پی‌سی ها برای صرفه جویی در مصرف برق و در نتیجه دیر تمام شدن باتری، در زمانی که سیستم غیرفعال است، پردازشگر در فرکانس کمتری کار می کند. در صورتی که بخواهید کرنل به صورت خودکار فرکانس را تغییر دهد، باید به این گزینه‌ها یک نگاهی بیندازید.

اما یکی از سرفصل‌های اصلی و بسیار مهم که تاثیر به سزایی در بالا رفتن کارایی لینوکس روی سخت‌افزار شما دارد، Processor type and features می باشد.

در زیر مجموعه این بخش مهم به  Configure Maximum number of SMP Processors and NUMA Nodes بر می‌خوریم که حداکثر تعداد پردازشگر را مشخص می کند .  اگر شما پردازشگر تک هسته‌ای دارید با خیال راحت این بخش رو غیر فعال کنید و اگر مثل من ۴ هسته‌ای دارید، آن را روی عدد ۴ بگذارید. نیازی نیست روی ۵۱۲ این عدد بماند!

SMT (Hyperthreading) scheduler support    یک تکنولوژی هست که  در پردازشگرهای پنتیوم ۴ اینتل به کار رفته. کارش این بوده که پردازشگر تک هسته‌ای شما رو با روشای مهندسی و تمام نرم‌افزاری! تبدیل به دو هسته می کنند:دی البته الان هم اینتل در پردازشگرای جدید خود core i7 نیز از این فناوری استفاده کرده! و برای همینه که می گن پردازشگرای ۴ هسته ای جدید اینتل، داری ۸ هسته هست:دی و اون ۴ هسته اضافی توسط همین فناوری درست می شه:دی اگر پردازشگرای دو هسته و یا ۴ هسته ای معمولی اینتل رو دارید نیازی به روشن کردن این گزنیه ندارید.

یکی از بخش‌های خیلی خیلی مهم Processor family  هست که نوع پردازشگرتون رو مشخص می کنه! اینجاست که شما باید تعیین کنید که آیا مثل من اینتل ۴ هسته ای یا دو هسته ای یا زئون دارید( Core 2/newer Xeon) و یا اینکه پردازشگر اتم اینتل دارید استفاده می‌کنید. AMD هم که گزینش مشخصه! توجه کنید که حالت Generic-x86-64  همونی هست که در تمام توزیعا روشنه و برای تمام پردازشگرها عمومیت داره! ینی درسته همه پردازشگرا رو پشتیبانی می‌کنه اما در عوض کارایی رو پایین می‌یاره.

در همین جا اگر لب تاب شرکت دل دارید، گزینه Dell laptop support رو باید روشن کنید.

دوستان این بخش موارد پیشرفته دیگه‌ای هم داره! که من هنوز به صورت کامل و درست از اونا سر در نیوردم:دی. هر موقع فهمیدم چی به چیه:دی (با کمک شما دوستان) مطلب رو در پستای بعدی می شکافیم:دی


انقلاب در کانفیگ کرنل

روشی جدید برای ساده سازی کانفیگ کرنل از شماره ۲.۶.۳۲ به کار گرفته شده، که کار افرادی مثل من و شما رو خیلی خیلی ساده می کنه. در مرحله قبل ما مجبور بودیم درکی از ریزترین جزئیات کرنل داشته باشیم که حقیقتا کاری سخت و طاقت فرسا هست. البته در گذشته( و همین الان) دستور make oldconfig مورد استفاده بوده. هنگامی که شما این دستور را می‌زنید. فایل کانفیگ مقادیر پیشفرض کرنل جاری سیستم عامل رو به خود می‌گیرد. و در ادامه در ترمینال فقط سوال‌هایی به شما نشان داده خواهد شد، که که کاملا جدید هستند و به این ترتیب فردی که می‌خواهد عمل کانفیگ کرنل را انجام دهد، کار کمتری را باید انجام دهد.(به جای اینکه به تک تک سوالات جواب دهد به ۵۰ تا جواب می‌ده)

اما روش جدیدی که در  نسخه جدید برای آسان سازی کامپایل مورد استفاده قرار می گیرد استفاده از دستور خوشدست make localyesconfig هست.
به صورت خودمانی این دستور می‌ياد فایل کانفیگ شما رو بر اساس ماژولایی که فعال هستن، ست می کنه! یعنی اینکه وقتی شما این دستور رو می‌زنید یه چیزی در حدود ۲۰ تا سوال از شما می شه. اکثر سوالات حالات پیشفرض NO رو دارن و با زدن اینتر بازم غیر فعال می مومونند. یه سری هم Y دارن شما می‌تونید با نوشتن حرف n اونا ر و غیر فعال کنید. اما نکته اینجاست! که شما یه سوال رو جواب می‌دید ، ۵۰ تا رو خود دستور تنظیم می کنه! چطوری؟ بر اساس ماژولایی که همین الان رو سیستم شما دارن کار می‌کنن:دی وقتی بعد این مرحله برید و فایل کانفیگ رو ببینید!! می‌بینید تمام قسمت‌های سخت و نفس گیر ، خودشون بر اساس سخت‌افزار و شرایطی که شما داشتید روشن می شند:O یعنی دیگه وقتی به قست کیبردا برید، همه گزینه‌ها روشن نیست. وقتی به قسمت شبکه برید ۹۵ درصد موارد نا مربوط به سخت افزار  خاموش هستند:دی

خلاصه اینکه شما اول باید این دستور make localyesconfig رو اجرا کنید. از اسم دستور هم مشخصه که چیکار داره می‌کنه! localy با استفاده از ماژولای فعال هر فرد (سیستم با سیستم فرق می‌کنه)‌ easy  کار رو آسون می‌کنه! کدوم کار رو!؟ کار کانفیگ کرنل رو :دی بعد از اجرای دستور هم گفتم که باید به ۲۰ تا سوال جواب بدید.  این سوالات همونایی هست که در منوهای بالا قبلا دیده بودید
جلوی هر سوال نگاه کنید! سه حالات داره! N و y  و m که بیشتر اونها حرف N بزرگ هست. اونی که حرف بزرگ هست حالت پیشفرض هست! بدین معنی که اگر در جواب به این سوالات اینتر رو بزنید، اون حرف بزرگه به صورت خودکار در فایل کانفیگ تنظیم می‌شه:دی من با اطمینان می‌گم شما می‌تونید همه اون سوالاتی که دیفالتشون حرف N هست رو اینتر بزنید:)) و اما! اونایی که با حرف Y بزرگ هستند! رو بخونید ببینید چی می گه:دی اگه دوست نداشتید جیزی فعال شه کافیه n رو تایپ کنید و بعد هم اینتر رو بزنید.

و بعد اجرای این دستور برید و دستور make menuconfig رو اجرا کنید! و لذت ببرید! از قدرت هکرای کرنل:)) فایل کانفیگ ۸۰ درصد خالی شده. کافیه یه گشت تو تنظیمات بزنید. حالا می‌تونید مدل دقیق کیبرد و موستون رو پیدا کنید. حالاست که می‌تونید مدل دقیق کارت شبکتون رو ببینید چیه! و پی ببرید که کدوم قسمت از کرنل هست که مسول به کار انداختن کارت شبکه و یا usb های شما هست! انتخاب بسیار محدود شده!

من فقط شما رو به قسمت فایل سیستم‌ها مجددا ارجاع می‌دم.  و یکی هم اون قسمت کارت گرافیکی! که هر چی در این دو بخش دیدید رو خاموش کنید.

در ضمن همچنان باید نوع معماری پردازشگر و تعدادشون رو هم انتخاب کنید:دی

۳- فرض رو بر این می‌گذاریم که شما کرنل رو کانفیگ کردید! فایل کانفیگ رو ذخیره کردید و از محیط برنامه خارج شدید. تمام تغییرات در فایل مخفی کانفیگ (config. ) نوشته شده. شما می‌تونید این فایل رو برای استفاده در آینده در محل دیگری نگهداری کنید:دی

حالا نوبت کامپایل هسته می‌ٰسه. برای اینکار از دستور make استفاده می‌کنیم. اگر پردازشگر دو هسته ای دارید برای سریعتر شدن کار از دستور make -j 2 و اگر هم ۴ هسته‌ دارید، make -j 4 رو وارد کنید. افرادی که پردازشگرای تک هسته‌ای دارن باید  ۱۵ دقیقه ای رو تحمل کنن و به کارای دیگشون برسن:دی . افرادی مث من هم، بعد ۴ دقیقه کرنل کامپایل شده رو خواهند دید:دی

۴- حالا نوبت کامپایل ماژولای کرنل فرا می‌رسه.  برای اینکار کافیه دستور make modules رو وارد کنید. حالا کرنل و ماژولا رو کامپایل شده داریم. باید با یه دستوری اینا رو به سر جاشون منتقل کنیم:دی و چون سر جاشون، تو فولدر ریشه و جایی هست که باید دسترسی ریشه داشته باشیم، از دستور sudo استفاده می‌کنیم.
۵- اول از همه ماژولا رو با دستور sudo make modules_install به سر جاشون می‌بریم. ۶- و بعد خود کرنل کامپایل شده رو با دستور sudo make install به مکانی که باید، بره می‌بریم(boot/ ) .
توجه کنید که با زدن این دستور آخر در اپن سوزه سه تا اتفاق دیگه به صورت خودکار می‌یوفته:دی اول ساخته شدن رم دیسک هست! و دومی انتقال اون به محلی که باید باشه و سومی هم معرفی رم دیسک و کرنل به گراب:دی

و چون شما احتمالا اوبونتو دارید. اون سه تا کار آخر رو هم باید دستی انجام بدید.( اپن سوزه = اژدهای خاموش)

۷- رم دیسک چیست!؟ و چگونه آن را ایجاد کنیم

قبلش بگم منظور از اون initrd چی هست! نگین طرف ماسمالی کرد و رفتش:)) این کلمه مخفف initial ramdisk هست و همانند قضیه مرغ و تخم مرغ هست:دی :)))

وقتی شما کامپیوتر رو روشن می‌کنید و بایوس کامپیوتر قصد داره، کار رو به هارد بکشونه! و کرنل رو از رو هارد بخونه! چطوری باید اینکارو بکنه!؟ وقتی درایور خود هارد رو نداره، چیکار کنه!!؟ ببینین ما داریم تو خود کرنل، درایورای مربوط به هارد رو تیک می‌زنیم که آره آقای کرنل شما  بیا مدل هارد ما رو که Raid و یا LVM هست ساپورت کن! بعد موقعی که سیستم رو روشن می‌کنید که کرنلی در کار نیست:دی چون کرنل رو هارده و همینوطور درایورا و اگه با فرض اینکه هارد معمولی هست، اطلاعات رو بخونه می تونه منجر به اشتباهات بدی بشه!!  پس اینجا اومدن initial ramdisk رو ایجاد کردن . ینی اول می یان روی رم یه چیزی رو می‌سازن و از اون به صورت یک فایل سیستم استفاده می‌کنند. کما اینکه بعدا خودتون می‌تونید اینکار رو بکنید! یعنی شما می‌تونید یه تیکه از رم رو کاری کنید انگار جزئی از هارد شما هست! و بعد به عنوان مثال کش فایرفاکستون روی اون ذخیره کنید:دی و اون موقع از لذت بالای وبگردی لذت ببرید!! خلاصه سرتون رو درنیارم! رم دیسک در حکم نمی‌دونم مرغه هست و  یا شایدم تخم مرغه و چیزی که مهمه خیلی خیلی مهمه اینه که حتی وظیفه بارگذاری ماژولا در کرنل رو هم انجام می‌ده.

حالا  ببینیم شما در اوبونتو باید با زدن چه دستوری این رم دیسک رو بسازید!؟

mkinitramfs -o /boot/initrd.img-2.6.32

همونطور که می‌بینید این دستور برای ساخت رم دیسک مورد استفاده قرار می‌گیره! و محل ذخیره شدنشم معلومه! دقیقا در فولدر boot کنار دست کرنل. هیچ چیز خاصی نیست و فقط درشروع مورد استفاده قرار می‌گیره تا سیستم بالا بیاد. چون محتویات حافظه رو برخلاف هارد می‌شه به راحتی خوند! و دیگه درایور برای رم نداریم:)))

حالا مرحله آخر ویرایش فایل گراب هست! که راهنماش ریخته!!‌ من فقط این نکته رو بگم که شما کافیه خطوط مربوط به کرنلی که الان باهاش توی لینوکس هستید! رو کپی پیست کنید و اونا رو یه تغییرات کوچیک بدید:دی ( منطور اینه که آدرس دقیق کرنل و رم دیسک رو باید بدید! )

و نکته آخر اگه همه چی با موفقیت باشه! شما باید وارد ترمینال بشید! وارد ترمینال که شدید باید برید با دستور ساده sudo sh Nvidia*.run درایور کارت گرافیکی رو نصب کنید:دی تا با ریست بعدی وارد محیط دسکتاب بشید.

دوستان ،،،،،،         همیشه آزاد باشید ,,,, مجوز  مطلبم GPL هست:دی

دیدگاه‌ها

46 پاسخ به “هر نفر یک کرنل”

  1. حسن حبیبی نیم‌رخ
    حسن حبیبی

    بسیار عالی فوق العاده جامع و کامله ۱۰۰۰+

    1. erghezi نیم‌رخ

      رکورد بالاترین شکسته شد:دی
      ممنون حسن به خاطر دادن امید!

  2. mohammaddesign نیم‌رخ
    mohammaddesign

    دست مریضاد : موفق باشید و آزاد

    1. erghezi نیم‌رخ

      خیلی ممنون. دیگه خجالت زده نفرمایید:دی

  3. LinuxRevolution نیم‌رخ

    ای ولا دمت گرم خیلی خوب بود کلی چیز یاد گرفتیم

  4. همایون نیم‌رخ
    همایون

    سپاس! بسیار عالی بود.

    کاش توضیحی اضافه کنید به مطلب که بگه با کرنل اختصاصی چقدر سرعت بیشتر میشه. آیا محسوسه؟

  5. khajavi نیم‌رخ

    پسر ترکوندییییی!! اگه اینقدر آسونه که گفتی به زودی می‌رم تو نخش. :دی

    1. erghezi نیم‌رخ

      ممنون.

      چرا کافه رو دیگه تعطیل کردی؟

      خیلی وقته پشت درش موندیما! :دی

  6. رضا خانی‌پور نیم‌رخ

    ممنون ممنون‌، مطلبی فوق‌العاده حرفه‌ای و کامل و طبق معمول وبلاگت کاربردی‌، دستت درد نکنه‌.

    1. erghezi نیم‌رخ

      نظر لطف شماست.

  7. ANNAMAZ نیم‌رخ

    یه کار دیگه هم میشه کرد … بریم یه دی وی دی ویندوز 7 بگیریم بریزیم رو هاردمون سینگل بوت بیادد بالا :-)

  8. افشین نیم‌رخ

    عالی بود.

    ممنون.

    1. erghezi نیم‌رخ

      ممنون . دادا.

      آدم می مونه اینا رو چطوری می‌نویسن!

  9. Bardia نیم‌رخ
    Bardia

    خیلی خوب بود . بهتر از این نمیشد
    ممنون
    ;)

    1. erghezi نیم‌رخ

      هر چی هست از برکت لینوسه:دی

  10. پویان نیم‌رخ

    بایک خورده تغییر و اضافه کردن تجربه شخصی در وبلاگ قرار خواهم داد.واقعا جالب بود

    1. erghezi نیم‌رخ

      بسیار عالی. خدا خیرتان دهد:دی

  11. مهدی نیم‌رخ

    معرکه بود پسر، خیلی باهاش حال کردم. اخه چند وقتی بود قصد همچین کاری رو داشتم. اینجوری که شما نوشتی ارادم قوی‌تر شد!
    راجع به اژدهای خاموش هم شدیداً باهات موافقم. بهترین تفسیر بود اینی که گفتی!

  12. narcislinux نیم‌رخ

    عالی :D هنوز قصد دارم امتحان کنم دیگه باید عملیش کنم

  13. علی نیم‌رخ
    علی

    عالی بود :)
    حالا اگه بخوایم اون کرنل کامپایل شده رو پاک کنیم چطوری باید این کارو انجام بدیم ؟‌‌ اوپن سوزه دارم …

  14. samira-t نیم‌رخ
    samira-t

    ممنون خوب بود ( همون عالی )

  15. پیام نیم‌رخ

    بهترین بود… همیشه از کامپایل کرنل می ترسیدم… اما با این توضیح عالی آسون به نظرم رسید… حتما امتحانش می کنم!

  16. saeedgnu نیم‌رخ
    saeedgnu

    http://ilinux.wordpress.com/2009/12/07/each-a-kernel/

    مطلبت خیلی عالی و کامل بود.
    فقط چند تا اشکال داشت
    اول اینکه
    localyesconfig = local-yes-config
    مثل
    allyesconfig = all-yes-config
    allnoconfig = all-no-config
    allmodconfig = all-module-config
    و…
    مخفف
    localy easy config

    نیست. چون کلمه‌ای به اسم localy نداریم. easy هم فقط حرف اول و سومش اومده؟!

    دم اینکه: initrd بخاطر این نیست که هارد رو بشناسه!! چون فایل initrd خودش روی هارد هست! بلکه خود بوت‌لودر گراب، هارد رو می‌شناسه و فایل ایمیج کرنل و initrd رو روی هارد تشخیص میده(و این جزو تنظیمات خود گراب هست) و بعد کرنل رو بوت میکنه و کرنل هم initrd رو توی رم کپی می‌کنه و سیستم بوت میشه… چون به هر حال باید از رم استفاده بشه دیگه…

    سوم اینکه:
    پسر چرا توی وبلاگم برف میاد آخه؟!! cpu م رو خورد!! مجبور شدم جاوااسکریپت رو غیرفعال کنم…

    1. erghezi نیم‌رخ

      ممنون.

      قبلش بگم کلا هر چی نوشتم، با کمک شما بود:دی

      اما در مورد initird نگفتم به خاطر اینه که هارد رو بشناسه:دی

      وقتی که شما کامپیوتر رو روشن می کنید.

      از اونجایی که هیچی وجود نداره.

      کرنل که روی هارده.

      اگر قرار بود ماژولای کرنل رو بارگذاری کنن توی کرنل از رو هارد

      خوب چطوری باید اینکار رو انجام می دادن!؟

      ما می خوایم ماژول پشتیبانی از LVM رو بارگذاری کنیم.

      هارد LVM هست . طبیعیه که نمی شه هیچ نوع ارتباطی باهاش داشت ،چون هنوز درایور لازم برای خوندن LVM رو نداریم. چون نمی دونه اصلا lvm چی چی هست. )زمانی که سیستم روشن می شه(
      یا مثلا raid . همین وضعیت رو داره.
      اما در مورد رم که LVM نداریم! یا رید! خوندن اطلاعات از هر رمی به یه شکله.
      دیگه مشکل قرائت از حافظه که وجود نداره:دی

      برای چی می گن برای ساخت LVM پارتیشن بوت باید جدا باشه!؟ (یا مثلا نمی دونم چرا از هر فایل سیستمی نمی‌شه برای boot استفاده کرد؟) 
      در مورد رم نحوه خوندن اطلاعات از DDR2 با DDR3 اصلا فرقی با هم نداره:دی

      کلا تا جایی که من دستگیرم شد میان اطلاعات مهم و کلیدی رو برای بارگذاری ماژولا می ذارن توی initird که هم برای سرعت بیشتر و هم اینکه معایب هارد رو دیگه نداره! همون اول کار بتونه کارایی که باید بشه رو انجام بده:دی

      در مورد اینکه گراب هارد رو می‌شناسه، اون فقط یه تیکه از فضای معمولی هارد رو می شناسه:دی علت جدا بودن پارتیشن بوت از LVM همینه و اگه قرار باشه با پارتیشن LVM شده به صورت یه تیکه از فضای معمولی رفتار کنه! پروسه با شکست رو به رو می شه.
      The initial ramdisk, or initrd is a temporary file system commonly used in the boot process of the Linux kernel. It is typically used for making preparations before the real root file system can be mounted.

      این یک خطم از ویکیه:دی

      اینم مطلب کامل و جامع در موردش
      http://www.ibm.com/developerworks/linux/library/l-initrd.html

      که باز می گه قبل از اینکه پارتیشن اصلی روت مانت شه، برای اینکه این عملیات موفق باشه و در همه حالات بشه پارتیشن اصلی رو بالا اورد اومدن initird رو ساختن. چرا نمی شه پارتیشن اصلی رو مستقیم مانت کنن؟ به خاطر همون مشکلاتی که هارد داره:دی

      The initrd contains a minimal set of directories and executables to achieve this, such as the insmod tool to install kernel modules into the kernel.

      در مورد اون دستور خیلی جالب هم من کاملاً حسی به چنین نتیجه‌ای رسیدم:دی بعد صحبتای اون شب با هم و آرزوی شما برای اینکه یه چی بسازن که کار رو راحت کنه:)))
      که فرداشم به صورت تصادقی چشم به این مطلب خورد:دی
      http://www.h-online.com/open/news/item/Kernel-Log-Coming-in-2-6-32-Part-6-Infrastructure-869973.html

      کار دقیقش هم اینه

      می یاد فایل کانفیگ کرنل جاری رو از آدرس /proc/config.gz می گیره که این می شه همون فلسفه لوکال و محلی بودنش:دی
      بعد می ره دایرکتوری بوت رو می گرده. دنبال چی؟ دنبال چیزایی که با کرنل محلیمون جور در بیاد uname -r و اگه اونجا چیز درست و حسابی برای کانفیگ کرنل پیدا نکرد می ره یه راست سراغ
      (vmlinux, /lib/modules.., kernel/configs.ko, etc)

      به محض اینکه یه فایل کانفیگ پیدا می کنه (که حالا بخواد از روش کرنل رو کانفیگ کنه) ، می‌یاد و Kconfigs و makefiles رو می‌خونه برای اینکه ببینه اول به چه چیزایی وجود داره و بعد می‌یاد می بینه توی اون فایلی که پیدا کرده چه ماژولایی فعال هستن( با دستور lsmod) . بعد می یاد کانفیگ کرنل همون موارد رو به همراه پیشنیازای اون مورد رو روشن می‌کنه:دی بقیه رو هم غیر فعال می کنه.

      پس فقط مواردی که فعال نیستند( در فایلی که گیر اورده) غیر فعال می‌شن.

      حالا همه اینایی که گفتیم مربوط بوده به دستور قدیمی localmodconfig و که معلومه مخفف چیه:دی
      اون کلمه وسط مخفف ماژول می‌شه

      دستور جدید localyesconfig پایش همونه اما بعد از اینکه همه اون کارا رو کرد آخر سر می یاد مواردی رو که احتیاج نیست رو پاک می کنه :   sed -i s/=m/=y/ . پس اگه درستش رو بخوایم همون yes هست و فقط همون mod رو طرف تبدیل به yes کرده:دی شاید می‌خواسته بگه خیالتون راحت. این دستور خودش همه چی رو اوکی می کنه:دی که با همون تعیبر آسون هم جور در می یاد=))))))

  17. saeedgnu نیم‌رخ
    saeedgnu

    (ببخشید اون لینک رو برای خودم گذاشته بودم بعد اینجا کپی کردم…:D)

    تو رو خدا این برف رو غیرفعال کن!

  18. حامد نیم‌رخ
    حامد

    خیلی عالی بود .

  19. محمد حسین ربیعی نیم‌رخ
    محمد حسین ربیعی

    این مطلب را چند وقت پیش خوندم اما الان دلم نیامد کامنت نذارم
    جامع و عالی بود
    موفق و پیروز باشید

  20. […] هر توزیع، میشه کرنل لینوکس. توی پستی به نحوه کامپایل کرنل لینوکس تا حدودی اشاره کرده بودم. از اون موقع تا حالا تجربه […]

  21. مهدی نیم‌رخ
    مهدی

    erghezi :
    ممنون.
    قبلش بگم کلا هر چی نوشتم، با کمک شما بود:دی
    اما در مورد initird نگفتم به خاطر اینه که هارد رو بشناسه:دی
    وقتی که شما کامپیوتر رو روشن می کنید.
    از اونجایی که هیچی وجود نداره.
    کرنل که روی هارده.
    اگر قرار بود ماژولای کرنل رو بارگذاری کنن توی کرنل از رو هارد
    خوب چطوری باید اینکار رو انجام می دادن!؟
    ما می خوایم ماژول پشتیبانی از LVM رو بارگذاری کنیم.
    هارد LVM هست . طبیعیه که نمی شه هیچ نوع ارتباطی باهاش داشت ،چون هنوز درایور لازم برای خوندن LVM رو نداریم. چون نمی دونه اصلا lvm چی چی هست. )زمانی که سیستم روشن می شه(
    یا مثلا raid . همین وضعیت رو داره.
    اما در مورد رم که LVM نداریم! یا رید! خوندن اطلاعات از هر رمی به یه شکله.
    دیگه مشکل قرائت از حافظه که وجود نداره:دی
    برای چی می گن برای ساخت LVM پارتیشن بوت باید جدا باشه!؟ (یا مثلا نمی دونم چرا از هر فایل سیستمی نمی‌شه برای boot استفاده کرد؟) 
    در مورد رم نحوه خوندن اطلاعات از DDR2 با DDR3 اصلا فرقی با هم نداره:دی
    کلا تا جایی که من دستگیرم شد میان اطلاعات مهم و کلیدی رو برای بارگذاری ماژولا می ذارن توی initird که هم برای سرعت بیشتر و هم اینکه معایب هارد رو دیگه نداره! همون اول کار بتونه کارایی که باید بشه رو انجام بده:دی
    در مورد اینکه گراب هارد رو می‌شناسه، اون فقط یه تیکه از فضای معمولی هارد رو می شناسه:دی علت جدا بودن پارتیشن بوت از LVM همینه و اگه قرار باشه با پارتیشن LVM شده به صورت یه تیکه از فضای معمولی رفتار کنه! پروسه با شکست رو به رو می شه.
    The initial ramdisk, or initrd is a temporary file system commonly used in the boot process of the Linux kernel. It is typically used for making preparations before the real root file system can be mounted.
    این یک خطم از ویکیه:دی
    اینم مطلب کامل و جامع در موردش
    http://www.ibm.com/developerworks/linux/library/l-initrd.html
    که باز می گه قبل از اینکه پارتیشن اصلی روت مانت شه، برای اینکه این عملیات موفق باشه و در همه حالات بشه پارتیشن اصلی رو بالا اورد اومدن initird رو ساختن. چرا نمی شه پارتیشن اصلی رو مستقیم مانت کنن؟ به خاطر همون مشکلاتی که هارد داره:دی
    The initrd contains a minimal set of directories and executables to achieve this, such as the insmod tool to install kernel modules into the kernel.
    در مورد اون دستور خیلی جالب هم من کاملاً حسی به چنین نتیجه‌ای رسیدم:دی بعد صحبتای اون شب با هم و آرزوی شما برای اینکه یه چی بسازن که کار رو راحت کنه:)))
    که فرداشم به صورت تصادقی چشم به این مطلب خورد:دی
    http://www.h-online.com/open/news/item/Kernel-Log-Coming-in-2-6-32-Part-6-Infrastructure-869973.html
    کار دقیقش هم اینه
    می یاد فایل کانفیگ کرنل جاری رو از آدرس /proc/config.gz می گیره که این می شه همون فلسفه لوکال و محلی بودنش:دی
    بعد می ره دایرکتوری بوت رو می گرده. دنبال چی؟ دنبال چیزایی که با کرنل محلیمون جور در بیاد uname -r و اگه اونجا چیز درست و حسابی برای کانفیگ کرنل پیدا نکرد می ره یه راست سراغ
    (vmlinux, /lib/modules.., kernel/configs.ko, etc)
    به محض اینکه یه فایل کانفیگ پیدا می کنه (که حالا بخواد از روش کرنل رو کانفیگ کنه) ، می‌یاد و Kconfigs و makefiles رو می‌خونه برای اینکه ببینه اول به چه چیزایی وجود داره و بعد می‌یاد می بینه توی اون فایلی که پیدا کرده چه ماژولایی فعال هستن( با دستور lsmod) . بعد می یاد کانفیگ کرنل همون موارد رو به همراه پیشنیازای اون مورد رو روشن می‌کنه:دی بقیه رو هم غیر فعال می کنه.
    پس فقط مواردی که فعال نیستند( در فایلی که گیر اورده) غیر فعال می‌شن.
    حالا همه اینایی که گفتیم مربوط بوده به دستور قدیمی localmodconfig و که معلومه مخفف چیه:دی
    اون کلمه وسط مخفف ماژول می‌شه
    دستور جدید localyesconfig پایش همونه اما بعد از اینکه همه اون کارا رو کرد آخر سر می یاد مواردی رو که احتیاج نیست رو پاک می کنه :   sed -i s/=m/=y/ . پس اگه درستش رو بخوایم همون yes هست و فقط همون mod رو طرف تبدیل به yes کرده:دی شاید می‌خواسته بگه خیالتون راحت. این دستور خودش همه چی رو اوکی می کنه:دی که با همون تعیبر آسون هم جور در می یاد=))))))

    من این مورد initird رو سئوال داشتم و همین رو متوجه نمیشدم که اگه بایوس هارد رو نمیشناسه چجوری این فایل رو از روی هارد برمیداره! که الان با این کامنت کامل فهمیدم! خیلی جالب و مفید بود

  22. نیشگون نیم‌رخ
    نیشگون

    من هنوز این رو نفهمیدم: آیا من کاربر تازه‌کار بعد از این که اوبونتو نصب کردم، می‌تونم کرنل رو دستکاری کنم تا مثلاً سرعت بوت رو بالا ببرم؟ آیا لازمه که تمام پچ‌هایی که در اون نسخه اوبونتو به کار رفته رو پیدا کنم و بگیرم و نصب کنم؟ آیا راهی نیست که دقیقاً همون سورسی که اوبونتو استفاده می‌کنه رو بگیرم، دستکاری کنم و بعد دوباره کامپایل کنم؟

    کاش می‌شد ویدئو هم از مراحل کامپایل کردن می‌گذاشتی.

    1. erghezi نیم‌رخ

      چرا نشه؟ شما می تونید حتی سورس کرنلی که برای اوبونتو هست رو بگیرید. که من تا به حال امتحان نکردم‌! نباید فرق آنچنانی داشته باشه:دی سورس داخل مخزن باید باشه:) یا مثل من می تونید سورس رو از سایت اصلی کرنل دانلود کنید. نیازی هم نیست دنبال پچ‌هایی بگردید که اوبونتو استفاده کرده:) بدون اون پچ‌ها هم سیستم کار می‌کنه.
      در ضمن یادتون نره شما همزمان می تونید هر چند تا کرنل که بخواید داشته باشید. یعنی وقتی شما کرنل دستی کامپایل می کنید، کرنل اصلی اوبونتو دست نمی‌خوره. در صورت مشکل با کرنل دستی (مثلا کارنکردن پارتیشن های ویندوز یا کار نکردن فلش) می تونید به راحتی از منوی بوت وارد کرنل اصلی بشید.

      سورس اوبونتو رو هم که گفتم باید درون مخزن باشه.

      فیلم هم خودم یه فکرایی براش کردم:دی

  23. […] خوبم نوید اشاراتی به چگونگی درست کردن کرنل شخصی کرده اند.ما هم […]

  24. mech نیم‌رخ
    mech

    خیلی خیلی ممنون. حتما میرم سراغش. فقط به عنوان تازه کار یه سوال داشتم:
    بااین هسته ای که خودمون کانفیگ کردیم، ممکن نیست که امنیت سیستم نسبت به پیش فرض اوبونتو بیاد پایین تر؟ آخه اوبونتو یه سری تنظیمات مربوط به iptable و apparmor و … داره که ظاهرا مربوط به هسته هم میشه و با دستکاری کرنل، اینها به هم نمی ریزه؟

  25. erghezi نیم‌رخ

    نه. اصلا خطری نداره. البته ممکنه کرنلی که شما می گیرید مشکل امنیتی داشته باشه که خوب مطمئنا پچ جدید هم براش خواهد اومد:) دیگه پچ رو باید دستی وصله پینه کرد و از اوبونتو توقع نباید داشت:دی در ضمن کرنل اصلی اوبونتو هم سرجاش هست . شما حق انتخاب دارید. اگه به هر دلیلی احساس مشکل داشتید، می‌شه سریع به کرنل اصلی سويیچ کنید.
    در مورد آی‌پی تیبل من به شخصه تا الان به گزینه‌ای در کرنل بر نخوردم که مربوط به فایروال باشه:) حالا اینبار دقت می کنم نتیجه رو می‌گم. ولی قسمتی مربوط به موارد امنیتی وجود داره

  26. mrmrn نیم‌رخ
    mrmrn

    سلام.
    عالی بود.من آخرین نسخه کرنلو بعد از هزار مکافات کامپایل کردمو به گراب اضافه کردم.2.6.34 رو میگم،ولی برای نصب کارت گرافیک انویدیام موندم.فکر میکنم یه جایی خوندم که باید پچ شه ولی نمیدونم کجا بود.میشه راهنمایی کنین؟

    1. erghezi نیم‌رخ

      می‌تونی همون خود کرنل، درایور اپن سورس انویدیا رو استفاده کنی.

      پچ کردن رو هم خود وبلاگ من خوندی.

      باید بری انجمن سایت انویدیا و بگردی ببینی پچ ارائه دادن یا نه…

      درایور انویدیا رو که داری. پچ رو هم که باید مخصوص همین کرنلی که شما داری بگیری رو کنارش می ذاری. با یه دستور به درایور اصلی انویدیا پچ می‌کنی..

      منتها باید پچ رو ببینی اصلا هست!

      وگرنه تنها راه همون استفاده از درایور اپن سورس انویدیا هست.

    2. mrmrn نیم‌رخ
      mrmrn

      ببین ergheziجون.خوندمش تو بلاگت.من الان 2.6.34 رو کامپایل کردم.شما میتونی یه پچ برا یه درایور 64 بیتیش ارائه بدی بهم؟من میرم همون درایورشو دانلود میکنم.اصلا نمیدونم تو فرومش باید دنبال چی بگردم؟

    3. navid نیم‌رخ

      انویدیا یه درایور جدید داره. نسخه کاندیدش هست. با نسخه‌های قبلی کلا فرق میکنه. ببین شاید راحت نصب شد:) http://www.nvnews.net/vbulletin/showthread.php?p=2273450

  27. erghezi نیم‌رخ

    پچ رو که اگه من ارائه می‌دادم الان تو شرکت انویدیا استخدام شده بودم:دی

    ببین گوگل سرچ کن patch + nvidia + 2.6.34

    1. mrmrn نیم‌رخ
      mrmrn

      منم که مگفتم از خودتون ارائه بدین.
      میشه به این 2 آدرسی که میدم سر بزنین.فکر میکنم که راه حل توشونه ولی من زیاد ازش سر در نمیارم؟؟
      http://bbs.archlinux.org/viewtopic.php?id=83334
      http://www.linuxforums.org/forum/debian-linux-help/114068-nvidia-graphics-card-2-6-24-kernel.html

  28. erghezi نیم‌رخ

    mrmrn :

    منم که مگفتم از خودتون ارائه بدین.
    میشه به این 2 آدرسی که میدم سر بزنین.فکر میکنم که راه حل توشونه ولی من زیاد ازش سر در نمیارم؟؟
    http://bbs.archlinux.org/viewtopic.php?id=83334
    http://www.linuxforums.org/forum/debian-linux-help/114068-nvidia-graphics-card-2-6-24-kernel.html

    ببین انجمن رسمی انویدیا اینه:

    http://www.nvnews.net/vbulletin/showthread.php?t=151032

    بقیه هم ظاهرا مشکل دارن . اما کسی هم بوده که روی جنتو کامپایل کرده و مشکل نداشته.

    اما نکته مهم اینه که یکی از توسعه دهنده های انویدیا جواب داده و گفته که مشکل وجود داره! و تقاضا کرده صبر پیشه کنیم تا نسخه‌های جدید بیرون بیاد:)
    We’re aware of the problem reported by erusul and adilsond. It has been root caused and should be fixed in a future driver release.
    مشکلات هم گفته ریشه‌ای هست!

    حالا راهی که من پیشنهاد می‌دم یکی اینه که کلا بخش مربوط به درایورای گرافیکی رو تو کرنل کامل خالیش کن. یه بار تست بزن.
    اگه بازم نتیجه نداد بهترین راه استفاده از درایور اپن سورس انویدیا هست:)

    حتی من شنیدم این درایور اپن سورس تو نسخه جدید فدورا قابلیت سه بعدی هم داره(در ابعاد ضعیف تر) حالا ببین میتونی این سه بعدیش رو فعال کنی! خیلی زیبا میشه:)

  29. Alinn نیم‌رخ

    اوه! مغزم سوت کشید! ممنون معلومه زحمت زیادی برا این مطلب کشیدی :) کسی که می خواد این کرنل رو کامپایل کنه باید حرفه ای سخت افزار باشه! من که نمی دونم چی کار کردم! خدا به خیر کنه!

  30. Hamid Haseli نیم‌رخ
    Hamid Haseli

    با سلام
    اگه ما بخوایم این کرنل جدیدو تبدیل به یک سی دی لایو کنیم و دست به ترکیب اوبونتوی خودمون نزنیم باید چیکار کنیم؟
    اصلا امکانش وجود داره یا نه؟

    1. navid نیم‌رخ

      سلام
      آره امکانش هست :) کافیه از کرنل جدیدی که کامپایل میکنی، پکیج دبیان بسازی … بعد هم با با برنامه ریمستر، در حالی که تو کرنل جدیدت هستی، سی‌دی لایوو بسازی…

  31. […] بخش‌ها، کافیه راهنمای هر بخش رو بخونید و بعد هم به این پست مراجعه […]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *