Batarya Durum Göstergesi Fujitsu_AH532_G21/GFX

Fujitsu_AH532_G21/GFX notebook için batarya durumu yaması hazırladım. Rehabman deposuna göndermeden önce ilk defa burada yayınlıyorum
Benzer laptopu olanlar dsdt lerine yama atabilir. Uyumsuz laptopu olanlarda kodlarımı incelesinler kendi yamalarını hazırlamak isterlerse vaktim olduğu zamanlar takıldıkları yerde yardımcı olabilirim.


Sisteminiz Orjinal Mac değilsse Sisteminizde bulunan AppleSmartBatteryManager.kext muhtemelen çalışmayacaktır pil durumunu şarj edip etmediğini göremiyeceksiniz bu durumda dsdt.aml dosyası açılıp embeddedcontrol kısmında düzenleme yapmalısınız mantık basit biraz programcılığınız c , c++ veya assembly merağınız varsa, dsdt içinde embeddedcontrol altındaki 8 den büyük olan register lar , bütün bu sayılar 8 in katıdır aslında, 8 lik hale dönüştürülmelidir. Maciasl kullanmak büyük kolaylık sağlıyor ve anında derleme yapıyor. Bu işlemden sonra hatasız derleniyorsa

MavericksACPIBatteryManager.kext dosyası internetten indirilip yüklenmelidir.
Sistem bilgilerinizde güç kısmını seçince tüm bilgiler ortaya çıkacaktır ilaveten araç çubuğunda şarj ve güç bilgileri görünecektir.

battery_patch_Fujitsu_AH532_G21.txt - Google Dokümanlar
 
Son düzenleyen: Moderatör:
Optimus konusunda yardımın için teşekkür ederim.Bu konuyu da zahmet olmazsa biraz daha detaylandırabilir misin ?
 
En kısa sürede bu her türlü sayıya uyumlu olması sebebiyle BUFFER yöntemiyle örneklerle izah etmeye çalışacağım.
 
Son düzenleyen: Moderatör:
falacal rica etsem batarya için DSDT düzenlemesinde yardım eder misin ?

ACPIBatteryManager.kext yükledim.Üst barda batarya simgesi içinde X işareti çıkıyor.DSDT üzerinden bazı denemelerim oldu fakat bataryayı tam olarak okutamadım.Rehabman tarafından yayınlanan batarya yamalarını inceledim.Şu işin mantığını anlayamadım.

VoodoBattery ve SmartBattery uygulamalarının bağımlılığı olan AppleACPIPlatform kurmam gerekiyor.Asıl sorunu AppleACPIPlatform değiştiğinde Apple Store girerken kimlik hatası veriyor.Kimlik hatasının forumda çözümü var ama problemi çözmüyor.Forumdaki çözüme benzer internette birkaç çözümü uyguladım.Onlarda olmayınca DSDT üzerinden yapmak kaldı.

DSDT düzenlemesini biraz daha öğrenirsem ileride iyi olur diye düşünüyorum.Yosemite duyuruldu ki.

DSDT.aml — Yandex.Disk
 
Son düzenleme:
**********************
FSPD YOK DSDT.aml - Google Drive

FSPD HARİÇ DİĞERLERİNİ DÜZENLEDİM. Batarya göstergesi normal çalışmalı. Kendin derlemek istersen altta yama kodlarını görürsün
yamaları tek tek kopyala yapıştır altta değişiklik olmassa deyimleri birleştir sonra aralarını birer boşluk vererek aç. Ufak hatalar çıkarsa deneme yap. dsdt.aml yi gereken yere yapıştır.
aç kapa gösterge çalışmalı çalışmazsa
sonra terminalden
ioreg -rn AppleSmartBattery
komutu ver hata sebebine bak.



SİZİN DSDT İÇİN
**********************genel görünüm

Name (BATO, Zero)

Name (BATF, 0xC0)

OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)

Field (ERAM, ByteAcc, NoLock, Preserve)

{


FSPD, 16, (ÇOK SORUNLU KISIM)



DSCP, 16,

LACP, 16,

DSVG, 16,



MCUR, 16,

MBRM, 16,

MBCV, 16,



BANA, 64,



VERN, 32


}








DEĞİŞKEN ADI
DEĞER
KULLANIMI
SATIR NO
FSPD
16
CreateWordField (BUFF, 0x14, FSPD)
2477
DSCP
16
3251
Store (^^PCI0.LPCB.EC0.DSCP, Index (PBIF, One))
668
Store (Divide (^^PCI0.LPCB.EC0.DSCP, 0x0A, ), Index (PBIF, 0x05))
675
Store (Divide (^^PCI0.LPCB.EC0.DSCP, 0x64, ), Index (PBIF, 0x06))
676
If (LLess (^^PCI0.LPCB.EC0.DSCP, 0x1770))
678
If (LLess (^^PCI0.LPCB.EC0.DSCP, 0x0BB8))
683
Add (Divide (^^PCI0.LPCB.EC0.DSCP, 0x32, ), ^^PCI0.LPCB.EC0.MBRM, Local5)

712
LACP
16
3252
Store (^^PCI0.LPCB.EC0.LACP, Index (PBIF, 0x02))
669
Store (^^PCI0.LPCB.EC0.LACP, Local5)
671
DSVG
16
3253
Store (^^PCI0.LPCB.EC0.DSVG, Index (PBIF, 0x04))
670
MCUR
16
3265
Store (^^PCI0.LPCB.EC0.MCUR, Local5)
707
MBRM
16
3266
If (LEqual (^^PCI0.LPCB.EC0.MBRM, Zero))
693
Store (^^PCI0.LPCB.EC0.MBRM, Local5)
709
Add (Divide (^^PCI0.LPCB.EC0.DSCP, 0x32, ), ^^PCI0.LPCB.EC0.MBRM, Local5)
712
MBCV
16
3267
Store (^^PCI0.LPCB.EC0.MBCV, Index (PBST, 0x03))
725
BANA
64
3313
Store (^^PCI0.LPCB.EC0.BANA, Index (PBIF, 0x0C))
688
Store (Zero, ^^PCI0.LPCB.EC0.BANA)
738
VERN
32
3337
Store (^^EC0.VERN, Local0)
5026
Store (^^EC0.VERN, Local1)
5575
[TBODY] [/TBODY]


YAMALARI MACIASL DEN KULLANIN

#######################################################

# 16 bitlik Basit dönüşümler için B1B2 METODU kullanılacak

into method label B1B2 remove_entry;

into definitionblock code_regex . insert

begin

Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n

end;

#######################################################
FSPD Yİ yamalamadım

#######################################################


//DSCP

into device label EC0 code_regex DSCP,\s+16, replace_matched begin SCP0,8,SCP1,8, end;





into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.DSCP, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1), end;



into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.DSCP, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1), end;


//LACP

into device label EC0 code_regex LACP,\s+16, replace_matched begin ACP0,8,ACP1,8, end;


into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.LACP, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.ACP0, ^^PCI0.LPCB.EC0.ACP1), end;



//DSVG

into device label EC0 code_regex DSVG,\s+16, replace_matched begin SVG0,8, SVG1,8, end;


into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.DSVG, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SVG0, ^^PCI0.LPCB.EC0.SVG1), end;


//MCUR

into device label EC0 code_regex MCUR,\s+16, replace_matched begin CUR0,8, CUR1,8, end;


into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MCUR, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SVG0, ^^PCI0.LPCB.EC0.SVG1), end;


//MBRM

into device label EC0 code_regex MBRM,\s+16, replace_matched begin BRM0,8, BRM1,8, end;


into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MBRM, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.BRM0, ^^PCI0.LPCB.EC0.BRM1), end;


//MBCV 16 BIT


into device label EC0 code_regex MBCV,\s+16, replace_matched begin BCV0,8, BCV1,8, end;


into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MBCV, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.BCV0, ^^PCI0.LPCB.EC0.BCV1), end;


//BANA 64 bit


####################################################### BANA

# EC0 register deklerasyonlarını 64-bit den 8-bit e çevirelim

# 264 de fazla büyük oldu bu 8x8= 64 YANİ 8 tane yeni isim

# oluşturalım

into device label EC0 code_regex BANA,\s+(64), replace_matched begin AN00,8,AN01,8, AN02,8, AN03,8,AN04,8, AN05,8, AN06,8, AN07,8,

end;


####################################################### BANA


####################################################### BANA

# BUFFER YÖNTEMİ

# 64=8x8

# 8 onluk sayısı = 08 —> 16 lık sayı sisteminde

# yani 8 yer için Buffer(0x08) yapmalıyız

into device label EC0 insert

begin

Method (ANAX, 0, Serialized)\n

{\n

Name (TEMP, Buffer(0x08) { })\n

Store (AN00, Index(TEMP, 0x00))\n

Store (AN01, Index(TEMP, 0x01))\n

Store (AN02, Index(TEMP, 0x02))\n

Store (AN03, Index(TEMP, 0x03))\n

Store (AN04, Index(TEMP, 0x04))\n

Store (AN05, Index(TEMP, 0x05))\n

Store (AN06, Index(TEMP, 0x06))\n

Store (AN07, Index(TEMP, 0x07))\n

Return (TEMP)\n

}\n

end;

#######################################################

#Method (UPBI, 0, NotSerialized)

#............

#Store (^^PCI0.LPCB.EC0.BANA, Index (PBIF, 0x0C))

#

####################################################### BANA

#

into method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.BANA, replaceall_matched begin ^^PCI0.LPCB.EC0.ANAX(), end;


####################################################### BANA


####################################################### BANA

#

into method label IVBI code_regex \^\^PCI0\.LPCB\.EC0\.BANA replaceall_matched

begin

^^PCI0.LPCB.EC0.ANAX() end;

####################################################### BANA








//B1B4 METOT

into method label B1B4 remove_entry; into definitionblock code_regex . insert begin Method (B1B4, 4, NotSerialized)\n {\n Store(Arg3, Local0)\n Or(Arg2, ShiftLeft(Local0, 8), Local0)\n Or(Arg1, ShiftLeft(Local0, 8), Local0)\n Or(Arg0, ShiftLeft(Local0, 8), Local0)\n Return(Local0)\n }\n end;

//VERN 32 bit
# 32-bit registers
into device label EC0 code_regex VERN,\s+32 replace_matched begin ERN0,8, ERN1,8, ERN2,8, ERN3,8 end;


# fix 32-bit methods
into_all method label WMAB code_regex \^\^EC0\.VERN, replaceall_matched begin B1B4(^^EC0.ERN0, ^^EC0.ERN1, ^^EC0.ERN2, ^^EC0.ERN3), end;

# fix 32-bit methods

into_all method label WMBB code_regex \^\^EC0\.VERN, replaceall_matched begin B1B4(^^EC0.ERN0, ^^EC0.ERN1, ^^EC0.ERN2, ^^EC0.ERN3), end;
 
Son düzenleme:
Falacal yardımın için teşekkür ederim.Bütün hataları düzeltmişsin.Hatta ses kartı yamasını bile yamışsın.İnsanın senin gibi arkadaşı olsun ister. :)

Ancak batarya yüzdesi kararlı değil.Mesela simge içinde batarya %15 seviyesindeymiş gibi ama batarya %86 oranında dolu.
Batarya yüzdesinde anlık düşmeler oluyor.%90 iken birden %85'e düşebiliyor.Doldurma ve boşaltma şüreleri yanlış hesaplıyor ya da hesaplamıyor.

Yeni bir AppleAcpıPlatform buldum.Şu an batarya ve Apple Store ile ilgili bir sorunum yok.Ama batarya yamasının nasıl yapıldığını veya yapılacağını kesinlikle öğrenmek istiyorum.
 
FSPD 16,
kullanıldığı yer --> CreateWordField (BUFF, 0x14, FSPD)
Bu deyimi dönüştüremedim. Hafta sonu bir aksilik olmassa uğraşabilirim
Hatalı göstermesi bu FSPD=16 dan kaynaklanıyor olmalı.

ses kartına müdahale etmedim ama değiştirdiğimiz değerler belki etkilemiş olabilir

*********************************************************
SÜRÜCÜ için
RehabMan / OS-X-ACPI-Battery-Driver / Downloads — Bitbucket
en yeni kext altta var
https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads/RehabMan-Battery-2014-0207.zip
 
FSPD 16,
kullanıldığı yer --> CreateWordField (BUFF, 0x14, FSPD)
Bu deyimi dönüştüremedim. Hafta sonu bir aksilik olmassa uğraşabilirim
Hatalı göstermesi bu FSPD=16 dan kaynaklanıyor olmalı.

ses kartına müdahale etmedim ama değiştirdiğimiz değerler belki etkilemiş olabilir
Batarya ve optimus düzeltmeleri haricinde bir düzeltme yapmış mıydınız ?

Batarya yamasını hafta sonunda tamamlarsanız dosya olarak ekleyebilirmisiniz.
 
Son düzenleme:
Merhaba shadow
Hobi olarak yazdığım kodlar Rehabman a görede hata vermemesi lazım onada danışdım ama FSPD 16, --> CreateWordField (BUFF, 0x14, FSPD) buraya buffer attım ama anlıycan buffer içinde buffer yönteminde bile hata veriyor. Oysa vermemesi lazım.Veya benim bilgisayarda denediğim için hata veriyor olabilir veya Bilgisayarınız için bios güncellemesi gerekebilir veya geriye doğru downgrade bios yapmanız gerekebilir buda riskli iş. Bios değişikliği yaparsanız ham bios için dsdt.bin veya dsdt.aml yi bana yollayın tekrar uğraşırım sizin için.
 
Falacal yardım ve çabalarından ötürü teşekkür ederim.
Bios düşürmeyi veya yükseltmeyi denedim. Optimus kapaması sonucunda yapay doku falan oluşuyor. Denediğim bazı yamalar ile de düzeltme sağlayamadım. Yalnız windows tarafında herhangi bir sorun olmaksızın sistem çaılışıyor. Anlaşılan odur ki testler sadece Windows ile yapılıyor. İstediğiniz bios dosyalarını da ekledim.

Düzeltme: dsdt dosyalarını da ekledim.
BİOS Dosyaları.zip — Yandex.Disk
 
Son düzenleme:
Uyarı! Bu konu 10 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı