26 Jan 2012

Kompil Kernel Linux-3.2.2 dalam Slackware 13.37

Bismillahirrahmanirrahim.

  Segala puji-pujian hanyalah padaMu Ya Rahman Ya Rahim. Sesungguhnya segala kebaikan daripadaMu, segala keindahan daripadaMu, segala ketenangan, kesenangan, rezeki, ilmu, usaha, daya dan apa sahaja yang ada padaku ini adalah daripada Mu Ya Allah.
 Ampunilah dosa dan ketelanjuranku, sesungguhnya tiada Tuhan melainkanMu Ya Allah, segala puji hanyalah padaMu dan sesungguhnya aku adalah orang-orang yang zalim.

Assalamualaikum WBT

Jika diimbas kembali, bagaimana caranya daripada tujuan membina kelompok pelayan, timbul pula isu kompil kernel.


Imbas sejenak   


Mulanya instal corosync, setelah belajar sikit demi sedikit pasal corosync, timbul keperluan untuk instal drbd ( keseragaman data segerak ). Kemudian untuk menjadikan DRBD satu yang ampuh, perlu pula install OCFS2.

Dari situ, DRBD dapat berfungsi dengan baik dan percubaan untuk keseragaman data memang berjaya. Alhamdulillah. DRBD berfungsi dengan baik menggunakan OCFS2 sebagai sistem fail.

Setelah itu, timbul pula masalah ( tidak cukup ilmu sebenarnya ) dalam corosync & pacemaker, yang mana, pakej inilah yang akan memantau perkhidmatan yang dilarikan dalam kelompok pelayan ini.

Namun, setelah memastikan yang setiap fail pustaka (library) telah sempurna diinstal, masih ada lagi masalah dengan pemantauan ocfs2. Bila diamati fail di script ( /usr/lib/ocf/resource.d/ocfs2/o2cb) terdapat arahan yang menggunakan modprobe -s ocfs2_stackglue.

Bila dilarikan secara manual di konsol, sistem mengeluarkan error "Invalid module format". Ini menjelaskan kepada kita bahawa, module itu tidak serasi dengan kernel yang sedang dilarikan oleh sistem.

Maka pakcik google pun kenalkanla kepada beberapa forum yang aktif membincangkan pasal ini. Dan kebanyakkan penyelesaian mereka ialah dengan melakukan kompil semula kernel yang bertujuan untuk kompil modul ocfs2 bagi membolehkan kita melakukan modprobe ocfs2. Dan dengan itu, skrip o2cb boleh dilarikan dengan baik.

Sebab itulah tutorial [ Membina Komputer Pelayan Capaian Tinggi ] ini menjurus ke arah ini, kompil kernel..



Tutorial Kompil Semula Kernel linux-3.2.2 ke dalam slackware 13.37


-tukar ke direktori 
#:cd /usr/src

-download kernel ke direktori
#:wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.2.tar.bz2

-bukak pakej 
#:tar jxvf linux-3.2.2.tar.bz2

-buang link linux dari direktori
#:rm linux

-bina link linux ~> linux-3.2.2
#:ln -s /usr/src/linux-3.2.2 /usr/src/linux

-pindah ke folder linux-3.2.2
#:cd /usr/src/linux-3.2.2/


-salin fail config
#:zcat /proc/config.gz > .config

-bina make oldnoconfig
#:make oldnoconfig

-bina make menuconfig
#:make menuconfig

 
   Di sini, satu tetingkap menu config akan kelihatan.

   Untuk keselamatan, adalah lebih baik kita sediakan 2 kernel semasa boot nanti. Dan jika sudah berjaya, bolehlah kita buang tetapan untuk kernel lama. Oleh itu, jika anda rasa nak namakan dengan nama pilihan sendiri bolehlah ke


General setup  ---> (tekan enter)
() Local Version (tekan enter )
Masukkan nama pilihan anda. Contoh : serverCluster1


 Pilih Exit untuk ke menu utama. Di sini, kita perlu pilih modul OCFS2 diinstal sebagai modul ( dengan simbol M) dan bukannya built-in ( tetapan lalai )


pilih File systems --->
Tekan bawah hingga ke OCFS2 file system support
Tekan huruf 'm' di papan kekunci
pilih exit
pilih exit sekali lagi.


Setup akan mengeluarkan dialog untuk kita simpan atau tidak tetapan yang baru sahaja kita lakukan.


---> Pilih yes.

Setelah tetingkap dialog tertutup, maka tetapan untuk kernel sudahpun siap. Sekarang kita akan bina modul dan kemudian lakukan instalasi kernel


#:make all
#:make modules_install
#:make install


Biasanya masa yang diambil untuk kompil setiap modul agak lama. Jom la kita minum kejap. Takpe, lambat lagi ni dalam 20-30 minit.


Alhamdulillah...

Bila dah siap, langkah seterusnya adalah untuk 'memberitahu' sistem kita supaya menggunakan kernel baru apabila reboot nanti.

Yang ni agak keliru sikit2 bagi aku.


- salin fail kernel baru ke /boot
#:cp arch/x86/boot/bzImage /boot/vmlinuz-custom-3.2.2

- salin System.map ke boot
#:cp System.map /boot/System.map-custom-3.2.2          

- salin fail tetapan
#:cp .config /boot/config-custom-3.2.2                

- buang link lama dalam /boot
#:cd /boot
#:rm System.map                                          

- bina link baru
#:ln -s System.map-custom-3.3.2 System.map              


Alhamdulillah...

Kita telahpun berjaya kompil kernel baru, letak di tempat yang sesuai untuk system boot. Dan yang terakhir, kita perlu tetapan untuk linux loader (lilo) atau dalam bahaha melayu gemilangnya pemuat linux.


#:nano /etc/lilo.conf

Baiklah, pada tahap ini, kita perlu putuskan samaada sistem ini perlu untuk terus load ke kernel baru atau tidak. Dalam tutorial ini aku letakkan dulu tetapan untuk pemuat linux supaya kita dapat memilih kernel mana yang nak kita boot.

beginilah rupa dalam fail lilo.conf di bahagian bawah sekali (lebih kurang)


image = /boot/vmlinuz
root = /dev/sda1
label = linux
read-only 


di bahagian bawah daripada tetapan di atas, kita masukkan pula tetapan tambahan


image = /boot/vmlinuz-custom-3.2.2
root = /dev/sda1
label = kernel-3.2.2
read-only 


Dengan ini, anda telahpun menambah satu lagi kernel untuk sistem ini.

Simpan fail /etc/lilo.conf di atas ( ctrl-o ) dan kemudian, larikan lilo.


#:lilo


*tambahan*

setelah anda larikan lilo, dan ada keluar warning message :


#:lilo

Warning: LBA32 addressing assumed
Added ......
Added ......
One warning was issued




Buka semula fail /etc/lilo.conf anda, tambah kod dibawah ini dalam satu baris.


#:lba32


simpan dan larikan semula lilo

Alhamdulillah, sampai peringkat ini, kita telahpun berjaya kompil kernel, letak kernel ditempat yang betul dalam /boot dan buat tetapan untuk sistem boot pada linux baru dalam pemuat linux.

Sekarang apa lagi, reboot PC anda.



Sistem anda boleh boot dengan kernel baru?


root@serverCluster1#:/usr/src/inux# uname -a
Linux serverCluster1 3.2.2-serverCluster1 #1 SMP Thu Jan 26 11:51:43 MYT 2012 x86_64 Pentium(R) Dual-Core  CPU      E5500  @ 2.80GHz GenuineIntel GNU/Linux


1. Jika boleh, edit fail /etc/lilo.conf dan tambah kod berikut dalam baris baru


default = kernel-3.2.2





2. Jika tidak, anda perlu pastikan apakah mesej ralat yang keluar dan perlu cari penyelesaian. Biasanya kita google je mesej ralat tu. InsyAllah adalah insan2 yang berbincang pasal ralat tersebut.

satu lagi, edit fail /etc/lilo.conf jadi gini jika anda mahu terus boot ke kernel asal/lama


default = linux


Berjaya Kompil? Tahniah dan syukur kepada Allah kerana telah memudahkan urusan kita dan memberi kita sedikit ilmu di dunia.


Sekiranya kita ikut turutan biasa untuk menyiapkan pelayan kadar capaian tinggi, mungkin tutorial ini adalah langkah terakhir. Akan tetapi, untuk memudahkan pengguna lain dan diri sendiri selepas ini, adalah lebih baik kita kompil dulu kernel sebelum kita membuat instalasi perisian kelompok pelayan yang lain-lain. Supaya nanti memudahkan dalam tetapan, skrip dan sebagainya.


Yang baik itu segalanya daripada Allah SWT. yang tidak baik dan lemah itu adalah di atas kelemahan dan kekurangan diri ini. Maafkan yang terkurang dan tercela.

Jazakallahu Khairun..

wassalam

25 Jan 2012

Jauh Perjalanan, Luas Pandangan

Bismillahir Rahmanir Rahim...
Assalamualaikum Warah Matullahi Taala Wabarokatuh



 Dengan sejunjung puji dan syukur ke hadrat Ilahi, Tuhan sekalian alam. Yang Maha Berdiri sendiri dan Maha Kuasa. Dengan RahmatNya, dengan RahmanNya kita masih lagi melata di bumiNya mencari sesuap rezeki yang ditentukanNya..
Semoga usaha mencari rezeki dan nafkah kita adalah ikhlas keranaNya, dan moga Allah merahmati hati kita supaya cekal, cekap dan tabah untuk terus usaha dan tidak akan putus asa.



Pepatah melayu yang menjadi tajuk penulisan hari ini ada pula kiasannya. Pencarian untuk menjayakan kelompok komputer pelayan menemukan satu jalan kearah pembelajaran tentang kernel linux itu sendiri.

Kes nya apabila salah satu skrip untuk mengesan perkhidmatan ocfs2 menggunakan kata arahan modprobe :


 #modprobe -s ocfs2_stackglue

yang akan mengeluarkan ralat " Invalid module format" atau format modul adalah tidak sesuai dengan kernel yang sedang digunakan. Ini memerlukan kernel dikompil semula.


" Selamat Datang ke Slackware!
Sila Kompil Semula Kernel Anda... "

Satu kata yang aku terbaca di forum slackware dari salah seorang user otai. Senyum sorang-sorang je aku bila baca kerana sebelum ini aku tak nampak pun kompil semula kernel ni satu yang penting. Dah tu bertambah2 lagi dengan perasaan malas nak explore.

Malas.. Ya  Allah.. jauhilah aku dari perasaan malas, riak, takbur dan meminta-minta.

Jadi, hari ini aku mula cuba2 untuk kompil kernel linux. Slackware aku sedang guna ni menggunakan kernel linux-2.6.37, manakala kernel yang terbaru adalah linux-3.2.1. Aku muat turun linux-3.2.1 di kernel.org.

#wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.1.tar.bz2

Step2 dia agak mengelirukan bagi yang baru mula2 nak belajar sebab ada banyak benda yang perlu tahu, faham dan mampu guna. Contohnya arahan 'make', biasanya yang aku guna hanyalah make dan make install. Tapi hari ni, terjumpa pula make menuconfig, make modules, make clean, make all, make dep dll. Alkisahnya begitulah, tapi mujurlah razumicham sudi menurunkan ilmunya pada aku yang tak tau apa apa ni. InsyaAllah diberkati dunia akhirat ilmu yang diberikannya ni.

Maka sekarang ni aku tengah cuba2 dulu kompil kernel linux-3.2.1 (stable) yang baru panas-panas di muat turun dari kernel.org. Nampaknya arahan 'make modules' memang mengambil masa yang lama sebabnya aku larikan arahan tu tadi lama sebelum aku start tulis di blog ni. Sekarang, dah nak abih tulis pun, takde gaya lagi dia nak abeh sebabnya dari tadi lagi duk kompil module untuk pemacu (driver).

Sebelum aku tamatkan tulisan ini, aku berkira-kira tentang linux yang aku rasa seolah-olah 'berkenalan semula' dengannya. Patutla ramai orang guna untuk projek-projek besar dan canggih sebabnya kita bebas untuk tentukan peranti apa yang dipakai dan modul mana yang diperlukan. Dan beribu-ribu orang di dunia ini telahpun menyumbangkan tenaga dan kepakaran untuk membina kernel ini.

Dan yang paling hebat, ia percuma dan hanya perlukan beberapa minit untuk di muat turun.

MasyaAllah... Dari satu ilmu Mu ya Alim, kau cambahkan beberapa lagi jalan-jalan ilmu Mu yang lain.. ya Azim ya Karim , Ya Alim, ya Hakim...

Syukur dan segala puji bagimu ya Allah. Muhammad adalah pesuruh Mu. Kurniakanlah RahmatMu ke atas baginda SAW..

Benarlah kata-kata pendita bani Jawi, jauh perjalanan luas pandangan. Makin jauh kita meneroka, makin berat ilmu dan makin luaslah pandangan kita..

InsyaAllah.



Assalamualaikum