0

نخستین تجربیات با هسته 2.6

 
hojatpoor
hojatpoor
کاربر برنزی
تاریخ عضویت : دی 1387 
تعداد پست ها : 661
محل سکونت : اصفهان

نخستین تجربیات با هسته 2.6

نخستین تجربیات با هسته 2.6

خوب پس از مدتها انتظار هسته 2.6 هم منتشر شد . این هسته دارای قابلیت‌های جدید بسیار زیادی است که من در این مقاله نمی‌خواهم زیاد وارد آن شوم ! به طور عمده می‌توان به قابلیت پیاده سازی لینوکس روی سخت‌افزارهایی که تا کنون از آنها پشتیبانی نمیشد ( مانند دستگاه‌های PDA و ...) ، مدیریت بهینه سازی شده حافظه ( روی آن خیلی کار شده است ) ، پشتیبانی بهتر از سخت‌افزارهای جدید ( مانند USB و ...) اشاره نمود .
به محض اطلاع از انتشار هسته 2.6.0 ، مشغول به کار شده و با استفاده از برنامه دانلود کننده محبوبم، wget شروع به دانلود هسته کردم . خوب با یک اتصال تلفنی – هرچقدر هم خوب – باید مدت زیادی برای دریافت کامل فایل صرف کنید . من مدتی از این وقت را با خوابیدن (!) ، مطالعه مستندات و راهنماهای هسته 2.6.0 و بروز کردن سایت گذراندم . اکنون دانلود تقریبا در حال اتمام است و مشتاقانه منتظرم تا هسته جدید را کامپایل و نصب کنم . پردازنده تاندربرد من نیز مشتاقانه منتظر یک قدرت‌نمایی است ! روشی که من برای کامپایل کردن هسته بکار می‌برم، نهایتا به یک بسته دبیان حاوی image هسته ختم می‌شود . بهتر است این روش را یاد بگیرید چون خیلی آسان و راحت است و بدون دردسر قادر به نصب هسته خواهید بود . اینطور که برنامه wget نشان می‌دهد، اگر دانلود با همین سرعت (3.12KB/s) ادامه پیدا کند، بسته bz2 هسته تا کمتر از ۷ دقیقه دیگر به طور کامل دریافت خواهد شد . خیلی هیجان انگیز است !
برای اینکه هسته جدید بطور صحیح کامپایل شود، باید یک توزیع تقریبا جدید داشته باشید . نرم‌افزارها و تجهیزات لازم برای هسته 2.6.0 عبارتند از :

      
        Name:              Minimum version:    How to find version:
      
      
        
          Gnu C Compiler
        
      
      
             2.95.3              gcc --version
      
      
        
          Gnu Make
        
      
      
                   3.78                make --version
      
      
        
          binutils
        
      
      
                   2.12                ld -v
      
      
        
          util-linux
        
      
      
                 2.10o               fdformat --version
      
      
        
          module-init-tools
        
      
      
          0.9.9               depmod -V
      
      
        procps             2.0.9               ps --version
      
      
        [
      
      
        
          procps 2.x
        
      
      
        ] [
      
      
        
          procps 3.x
        
      
      
        ]
      
    

برای سیستم فایل‌ها :

      
        Name:              Minimum version:    How to find version:
      
      
        
          e2fsprogs
        
      
      
                  1.29                tune2fs
      
      
        
          jfsutils
        
      
      
                   1.0.14              fsck.jfs -V
      
      
        
          reiserfsprogs
        
      
      
              3.6.3               reiserfsck -V 2>&1 | grep reiserfsprogs
      
      
        
          xfsprogs
        
      
      
                   2.1.0               xfs_db -V
      
      
        
          nfs-utils
        
      
      
                  1.0.5               showmount --version
      
    

و سایر ابزارهایی که ممکن است به آنها نیاز داشته باشید :

      
        Name:              Minimum version:    How to find version:
      
      
        
          pcmcia-cs
        
      
      
                  3.1.21              cardmgr -V
      
      
        
          quota-tools
        
      
      
                3.09                quota -V
      
      
        
          PPP
        
      
      
                        2.4.0               pppd --version
      
      
        
          isdn4k-utils
        
      
      
               3.1pre1             isdnctrl 2>&1 | grep version
      
      
        
          oprofile
        
      
      
                   0.5.3               oprofiled --version     
      
    

ظاهرا هسته جدید با ردهت ۹ سازگار نمی‌باشد . خبر خوب اینکه با لیبرانت ۲ . ۸ . ۱ مشکلی نخواهید داشت . در صورتی که در مورد توزیعی که اکنون در حال استفاده از آن هستید شک دارید، دستوراتی را که در بالا ذکر شد آزمایش کنید تا مطمئن شوید تمام ابزارهای لازم نسخه‌های اشاره شده باشند .
در صورتی که تاکنون هیچ هسته‌ای را کامپایل و نصب نکرده‌اید، بهتر است این راهنما را مطالعه کنید . همچنین مطالب خوبی در مورد ویژگی‌ها و جزئیات هسته 2.6 را اینجا پیدا خواهید کرد .
قبل از اینکه هرکاری را شروع کنید، توصیه می‌کنم که یک نسخه پشتیبان از اطلاعات خود تهیه کنید . برای دانلود کردن بسته هسته 2.6.0 به سایت http://kernel.org مراجعه کنید .

برای پیکربندی هسته جدید، ابزارهای جدیدی آماده شده است . مانند xconfig ، gconfig که کاملا بازبینی و بهینه سازی شده‌است و gconfig نیز کاملا جدید است . برای استفاده از xconfig باید کتابخانه‌های QT را داشته باشید و برای استفاده از gconfig کتابخانه‌های GTK مورد نیاز است . تصویر گزینه xconfig جدید را نمایش می‌دهد .




یک نکته مهم اینکه ممکن است شنیده باشید که سیستم صوتی هسته جدید از OSS به ALSA تغییر پیدا کرده‌است . بنابراین قبل از شروع به کار، alsa-lib و alsa-utils را دانلود و نصب کنید . برای این کار کافی است این دو بسته را که دو فایل ۳۰۰ و ۵۰۰ کیلوبایتی هستند را دریافت و بسته‌های آنرا با دستور bzip2 -d باز کرده و سپس configure/. و make install را برای هر دو آنها اجرا کنید تا کامپایل و نصب شوند . نصب این دو بسته به راحتی انجام می‌گیرد . در صورتی که با اجرای دستور make install به اشکال بر خوردید، ابتدا دستور make و سپس make install را اجرا کنید .

ممنون wget عزیز ! دریافت هسته تمام شد . آماده باشید برای کامپایل و نصب هسته جدید . شروع می‌کنیم . ابتدا در ترمینال فایل را به مسیر usr/src منتقل می‌کنم و سپس فایل را از حالت فشرده در می‌آورم :

# mv linux-2.6.0.tar.bz2 /usr/src
# bzip2 -d linux-2.6.0.tar.bz2
# tar -xf linux-2.6.0.tar

اکنون یک دایرکتوری با نام linux-2.6.0 در مسیر usr/src ایجاد شده است . یک لینک symbolic با نام linux به آن می‌سازم :

# ln -s linux-2.6.0/ linux

خوب اکنون آماده برای پیکربندی هسته هستیم . دستور make xconfig را در خط فرمان تایپ می‌کنم . خوب محیط پیکربندی جدید، پس از چند ثانیه اجرا می‌شود . محیط کاملا تغییر کرده و جالب‌تر و راحت‌تر شده است . جالب اینکه در صورتی که قبلا هسته‌ای را کامپایل و نصب کرده باشید، فایل پیکربندی آن بطور خودکار بارگزاری شده و شما مجبور نیستید تا تمام پیکربندی را از اول انجام دهید . در مورد من، پیکربندی هسته 2.4.23 موجود بارگزاری شد . فقط پس از چند تغییر کوچک در بخش صدا، (ALSA) تغییرات را ذخیره کرده و خارج می‌شوم . همانطور که در بالا هم اشاره کردم، یکی از تفاوت‌های هسته‌های سری 2.6 با نسخه‌های 2.4 ، جایگزینی سیستم صوتی ALSA به جای OSS می‌باشد . البته شما می‌توانید همچنان OSS را فعال کرده و از ALSA صرف نظر کنید، ولی OSS بزودی حذف خواهد شد و شما بالاخره مجبور به استفاده از آن خواهید بود . فراموش نکنید در صورتی که می‌خواهید از ALSA استفاده کنید، OSS Emulation را فعال کرده و کارت صوتی خود را از بخش PCI Devices یا ISA Devices انتخاب نمایید .
اکنون آماده کامپایل کردن هسته جدید هستم :

# make-kpkg clean
# make-kpkg --revision=100:kernel2.6.0 kernel_image

عملیات کامپایل شروع شد . بر خلاف هسته 2.4 ، خروجی روی صفحه بسیار محدودتر و تنها محصولات کامپایل نمایش داده می‌شوند . خوب دقیقا پس از حدود ۱۰ دقیقه، هسته بطور کامل کامپایل و تبدیل به یک بسته دبیان شد . پردازنده دستگاه من یک اتلون تاندربرد 1.33GHz است . البته مدت زمان کامپایل با توجه به گزینه‌هایی که انتخاب می‌کنید، بسیار متنوع خواهد بود . اکنون بسته هسته را نصب می‌کنم :

# dpkg -i kernel-image-2.6.0_kernel2.6.0_i386.deb

در صورتی که از دایرکتوری boot لیست گرفته شود، فایل‌های مربوط به هسته 2.6 در آن مشاهده می‌شوند . اکنون گراب را پیکربندی می‌کنم . البته در صورتی که از لیلو استفاده می‌کنید، هنگام نصب بسته، لیلو بطور خودکار پیکربندی می‌شود . برای پیکربندی گراب، فایل آنرا در vi باز می‌کنم :

# vi /boot/grub/menu.lst

و خطوط مربوط به هسته جدید را اضافه می‌کنم :

title Libranet GNU/Linux, kernel 2.6.0
root (hd0,1)
kernel /vmlinuz-2.6.0 root=/dev/hda3 ro hdb=scsi vga=791
savedefault
boot

اکنون برای بوت شدن آماده هستم ! با استفاده از دستور reboot سیستم را بوت می‌کنم .
خوب ! مانیتور من پیغام خطای Out of Frequency داد . ظاهرا سیستم Frame Buffrer نسبت به نسخه 2.4 تغییر کرده است . ولی سیستم بوت شد و با شروع Xfree86 تصویر مانیتور به حالت عادی بازگشت . کارت گرافیک من از نوع Geforce2 64MB-DDR می‌باشد و من قبلا از درایورهای Nvidia برای آن استفاده می‌کردم و چون کد منبع آن در دسترس بود، برای هر هسته جدید درایور را کامپایل و نصب می‌کردم . متاسفانه هنوز خود nVidia هیچ درایوری را برای 2.6 ارائه نکرده است و با وجودی که patch هایی ارائه شده، من موفق به بکار انداختن آنها نشدم ( وصله‌ها متعلق به 2.6test9 هستند ). فکر می‌کنم تغییراتی صورت گرفته باشد . فعلا با همین درایور دو بعدی nv می‌سازیم تا بعد ! ( مدتی باید بازی BillardGL را فراموش کنم !) باید زمان بیشتری برای حل این مشکل صرف کنم . البته فکر می‌کنم nVidia بزودی راه‌اندازهای هسته 2.6 را ارائه کند . خوشبختانه پشتیبانی nVidia از لینوکس خیلی بهتر از رقیبش ATI است .
خوشبختانه مراحل بوت بجز قسمت Frame Buffre بخوبی انجام شد . چیزی که احساس می‌شود، سبک تر شدن سیستم است . سرعت اجرای برنامه‌ها بهبود یافته است . خوشحال کننده است . با دستور free مقدار منابع را بررسی می‌کنم، میزان حافظه مصرفی نیز کاهش نشان می‌دهد .
مسئله بعدی همانطور که در بالا نیز اشاره کردم، کارت صوتی است . من ابتدا یک هسته با OSS فعال ساختم . کارت صوتی کار می‌کند، ولی وقتی که مودم در حال دریافت داده است صدا قطع و وصل می‌شود . من مجددا دست به کار شده و یک هسته دیگر با ALSA می‌سازم .
در صورتی که alsa-libs و alsa-utils در سیستم نصب شده باشد، بدون هیچ مشکلی کارت صوتی کار خواهد کرد . برای اینکه اطمینان حاصل کنید که کارت صوتی توسط ALSA شناخته شده است، پس از نصب هسته جدید و بوت سیستم، دستور زیر را تایپ کنید :

# cat /proc/asound/cards
0 [Live ]: EMU10K1 - Sound Blaster Live!
Sound Blaster Live! (rev.7) at 0xd000, irq 19

همانطور که در خروجی فرمان مشاهده می‌کنید، کارت صوتی من که یک Creative Live است نصب شده است . در صورتی که با وجود شناسایی صدا وجود نداشت، یا ابزارهای alsa صحیح نصب نشده است ( مجددا نصب کنید ) و یا میسکر صوتی در حالت خاموش است . با دستور alsamixer آن را تصحیح کنید .
با وجود تغییر سیستم صوتی، باز هم مشکل قطع و وصل شدن صدا وجود دارد . Wget را برای دانلود یک فایل راه‌اندازی می‌کنم . صدا قطع و وصل نمی‌شود . به فایربرد شک می‌کنم . کانکرر را اجرا کرده و چند سایت را با آن مرور می‌کنم . مشکلی وجود ندارد ! بیچاره هسته 2.6! مشکل از فایربرد است ! احتمالا چیزی با هسته 2.6 سازگاری ندارد .
می‌رسیم به مشکل Frame Buffer. من در هسته جدیدی که با صدای ALSA کامپایل کردم، در بخش Frame Buffer ، بجای حالت Vesa گزینه Riva را انتخاب کردم که مخصوص کارت‌های nVidia است . اکنون باید سیستم را برای آزمایش حالت‌های مختلف راه‌اندازی کنم . با قرار دادن گزینه زیر، Frame Buffer نیز صحیح کار می‌کند :

kernel /vmlinuz-2.6.0 root=/dev/hda3 ro hdb=scsi video=rivafb: 1024x768@85

البته هنوز یک اشکال وجود دارد . هنگام فعال شدن Frame Buffer ، در کنار لوگوی تاکس، یک مستطیل سفید رنگ ایجاد می‌شود که معلوم نیست به چه علت است . البته پس از چند ثانیه از میان می‌رود .
به فکر افتادم تا دستگاه CD نویس خود را نیز آزمایش کنم . بنابراین K3B را راه‌اندازی کرده و یک CD در درایو قرار دادم . بسته هسته 2.6 را برای نوشته شدن انتخاب کردم تا فردا آنرا در کامپیوتر محل کارم نیز نصب کنم . عملیات بدون مشکل انجام شد و به اتمام رسید . عالی است .

نتیجه‌گیری
مستندات و عملکرد هسته 2.6 ، پیشرفت قابل توجهی را نشان می‌دهد . ولی این هسته به این زودی‌ها توسط توزیع کنندگان عمده لینوکس مانند ردهت یا SuSE بکار گرفته نخواهد شد . قطعا هسته جدید بدون اشکال نیست و بزودی اشکالاتی از آن پدیدار خواهد شد . مثلا هنوز برخی از وصله‌های امنیتی هسته 2.4 در آن پیاده سازی نشده‌است . انتظار ۶ ماه تا یکسال این توزیع کنندگان نیز به همین علت است . تا آن هنگام، هسته جدید کاملا قابلیت اجرا در محیط‌های عملیاتی را خواهد داشت . ردهت تا ابتدای سال ۲۰۰۵ و SuSE تا تابستان ۲۰۰۴ این هسته را در تولیدات خود بکار نخواهند گرفت . ولی این مانع از آن نمی‌شود که افراد علاقه‌مند آنرا در سیستم‌های خود بکار نگیرند ! البته عملیات تبدیل را باید با احتیاط انجام دهید . بهتر است هسته جدید ابتدا یک یا دو ماه روی یک سیستم نصب شده و سپس به سایر سیستم‌ها منتقل شود . البته فعلا به هیچ وجه آنرا در سرویس‌دهنده‌ها بکار نگیرید تا کاملا اشکال‌یابی شود .

سه شنبه 3 آذر 1388  9:10 AM
تشکرات از این پست
دسترسی سریع به انجمن ها