OS : Ubuntu, Centos, BackTrack Linux
Masalah: Tidak mendeteksi keberadaan battery sehingga statusnya tidak ada, walau ditambah beberpa package atau software tambahan, yang namanya juga dianggap ngak ada batre, :),,,
mengapa bisa begitu?
Penyebab masalah adalah karena Toshiba termasuk dua set data boot yang memberitahu OS hardware apa yang ada dalam mesin. Windows membaca dengan benar sedangkan Linux tidak. Kita akan perlu untuk membangun kernel kita sendiri (compile sendiri) untuk membuat hal ini terjadi. Kita akan perlu untuk mengambil DSDT (Sistem Tabel Deskripsi Differentiated) dari mesin, dimodifikasi ASL, dan baru AML DSDT dapat dikompilasi. Bagian di bawah ini menunjukkan cara untuk memberitahu Linux untuk menggunakan ini DSDT dimodifikasi bukan versi yang datang dengan BIOS.
Ok, ini dia langkah-langkahnya,,,,!!!
buka terminal, dan jalankan perintah
Code:
sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.dat
Kutip:
sudo apt-get install iasl
kita bongkar filenya agar bisa diedit
Kutip:
iasl -d DSDT.dat
setelah menjalankan perintah diatas, maka akan membuat file DSDT.dsl
dan buka dengan gedit, letaknya di Home Directory anda
cari line OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
dan ganti menjadi OperationRegion (EMEM, EmbeddedControl, 0×00, 0xFF)
ingat menggantinya jangan copy paste, harus diketik sendiri
kita build deh pake perintah:
Code:
iasl -tc DSDT.dsl
lalu lahirlah file bernama DSDT.hex (nah ini yg bakal jadi bumbu utama)
mungkin nanti akan menemukan 2 buah error saat bulild file DSDT.dsl, tapi jangan khawatir, bisa diakalin kok
caranya:
baca keterangan errornya, disitu ada petunjuk di line keberapa letak masalahnya
misalnya seperti ini :
Code:
DSDT.dsl [COLOR="Red"]2662[/COLOR]: 0x00000000, // Length
Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
DSDT.dsl [COLOR="Red"]2669[/COLOR]: 0x00000000, // Length
Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
ubah menjadi :
Code:
0×00000000, // Granularity
0×00000000, // Range Minimum
0xFEAFFFFF, // Range Maximum
0×00000000, // Translation Offset
0x[B]FEB[/B]00000, // Length
Line 2663 changed to
0×00000000, // Granularity
0xFED40000, // Range Minimum
0xFED44FFF, // Range Maximum
0×00000000, // Translation Offset
0×0000[B]5[/B]000, // Length
build/compile ulang, tapi hapus dulu file DSDT.aml dan DSDT.hex di Home
selanjutnya kita download beberapa bumbu pelengkap yg nanti berguna buat menggoreng kernelnya, bumbunya adalah:
Code:
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
jika sudah, baru kita download bahan bakunya:
Code:
apt-get build-dep --no-install-recommends linux-image-$(uname -r)
lumayan lama, sekitar 90'an MB (tergantung koneksi)
kalo sudah selesai, kita bikin perapiannya (baca: folder/directory)
Code:
sudo mkdir /root/source
Code:
su
Code:
cd /root/source
Code:
apt-get source linux-image-$(uname -r)
NB: kalo tidak bisa masuk ke root pake perintah "su", karena password salah, maka bikin dulu passwordnya:
Code:
sudo passwd
masih di terminal yg sama dan masih di super user, masuk ke directory kernelnya
Code:
cd linux-2.6.38
itu directory kernel dengan versi yg terbaru, dan berlaku saat ini (nanti sesuaikan dengan versi yg anda dapatkan saat mengikuti tutorial ini)
cara liatnya:
Code:
gksudo nautilus
terus ke directory Root/Source/
terus yg perlu kita lakuin skarang adalah copy file .config ke folder tersebut, gunanya undah mempermudah kita nanti setting kernelnya
masih sebagai SUper User (su), dan di directory kernelnya)
Code:
cp -vi /boot/config-`uname -r` .config
lalu copy bumbu utama (DSDT.hex)
Code:
cp DSDT.hex /root/source/linux-2.6.38/include
skarang kita setting dulu file .config
buka terminal baru (terminal sebelumnya jangan ditutup)
Code:
gedit /root/source/linux-2.6.38/.config
cari dan lakukan perubahan pada settingan berikut:
Code:
CONFIG_STANDALONE=n
CONFIG_ACPI_CUSTOM_DSDT=y
CONFIG_ACPI_CUSTOM_DSDT_FILE="[COLOR="Blue"]DSDT.hex[/COLOR]"
save lalu tutup
lalu di terminal sebelumnya jalankan perintah:
Code:
make menuconfig
nanti keluar menu config dan kita load aja langsung file .config yg tadi kita setting.
caranya tekan tombol panah kebawah di keyboad, hingga nanti ada pilihan load configuration...
klik enter, dan pilih save configuration
lalu tekan tombol panah di keyboard ke kanan (untuk memilih Exit), dan tekan enter
nah,, kata yg punya tutorial, kita bisa mempercepat proses kompilasi dengan trik khusus berikut ini:
buka terminal baru, dan jalankan perintah:
Code:
cat /proc/cpuinfo | grep -i processor
Code:
export CONCURRENCY_LEVEL=5
Proses dimulai
ini dia saatnya, hehehe,,,,
buka terminal sebelumnya, lalu
Code:
make-kpkg clean
Code:
fakeroot make-kpkg --initrd --append-to-version=-luxm4n kernel-image kernel-headers
ini bakalan lama sekali prosesnya, bisa berjam-jam, tergantung prosesor anda, jadi tunggu aja sampe selesai, lebih baik start waktu mau tidur, jadi ketika bangun udah finish
kalo sudah selesai, kita instal deh kernel racikan kita tadi
buka terminal baru
Code:
su
Code:
cd /root/source
Code:
dpkg -i linux-image-2.6.38.8-luxm4n_2.6.38.8-luxm4n-10.00.Custom_amd64.deb
Code:
dpkg -i linux-headers-2.6.38.8-luxm4n_2.6.38.8-luxm4n-10.00.Custom_amd64.deb
lalu kita buat initramfs
Code:
update-initramfs -c -k 2.6.38-luxm4n
terakhir, kita update grub
Code:
sudo update-grub
dan restart
selesai deh,,
o ya sampai lupa, nama krnelnya bisa anda sesuaikan sendiri, sesuai keinginan anda,,, pada proses compile...
ok, semoga bemanfaat
Scren Shoot nya :