poro
Yetkin
- Katılım
- 6 Mart 2024
- Mesajlar
- 193
- Makaleler
- 2
- Çözümler
- 4
- Beğeniler
- 207
Selamlar,
Birkaç gündür Victus laptopumda fanları dilediğim gibi kontrol edebileceğim bir araç arayışındaydım. Mevcut çözümler ya kararsız çalışıyordu ya da özellik bakımından çok yetersizdi. Bu noktada iş başa düştü diyerek kolları sıvadım.
Sürücü Tarafındaki Teknik Sorunlar ve Çözüm Süreci
Linux çekirdeğindeki mevcut
Uygulamayı geliştirirken ilk aşamada, kullanıcı seviyesinde (user-space) bir sayaç oluşturarak BIOS'a sürekli sinyal gönderdim ve "Max Mode"da kalmasını sağladım. v0.2.0 sürümü bu haliyle yük altında başarılı olsa da, asıl hedefim olan Manuel Fan Kontrolü ve kişisel fan profilleri için yeterli değildi.
Linux Çekirdeği (Mainline) Gelişmeleri ve Özelleştirilmiş Yama
Araştırmalarım sonucunda, Linux çekirdeğinin for-next dalında 5 commitlik yeni bir yama seti buldum. Bu yama,
Manuel Mod Desteği: Fan hızlarının tamamen kullanıcı tarafından belirlenmesine olanak tanıyor.
Kernel-Level Watchdog: Kullanıcı seviyesinde yaptığımız "BIOS'u uyarma" işlemi artık sürücü seviyesine inmiş durumda. Sürücü, manuel veya maksimum modda olunduğunda her 90 saniyede bir BIOS'a sinyal göndererek modun korunmasını sağlıyor.
Bu güncellemeler muhtemelen Kernel 7.0 veya bir sonraki sürümle ana dağıtımlara dahil edilecektir. Ancak mevcut yamada önemli bir eksiklik vardı: Manuel kontrol sadece CPU fanı üzerinden yapılıyordu ve GPU fanı zorunlu olarak CPU ile senkronize çalışıyordu.
Kendi Çözümüm ve Geliştirdiğim Uygulama
Yamayı yerel olarak fork'layıp üzerinde modifikasyonlar yaptım. CPU ve GPU fan kontrolünü birbirinden tamamen bağımsız hale getirdim. Yazdığım uygulamayı da bu iki ayrı fan profilini destekleyecek şekilde güncelledim.
Çekirdek güncellemesinin resmiyete dökülmesini beklemeden kullanmak isteyenler için hazırladığım yamayı DKMS üzerinden sisteme kurulabilir hale getirdim. En güzel yanı ise şu: Benim uygulamamı kullanmak zorunda değilsiniz. Yapılan yamalar ile birlikte
İlgili Linkler ve Commitler:
Sorularınız veya geri bildirimleriniz olursa paylaşırsanız sevinirim. İyi sosyaller
Birkaç gündür Victus laptopumda fanları dilediğim gibi kontrol edebileceğim bir araç arayışındaydım. Mevcut çözümler ya kararsız çalışıyordu ya da özellik bakımından çok yetersizdi. Bu noktada iş başa düştü diyerek kolları sıvadım.
Sürücü Tarafındaki Teknik Sorunlar ve Çözüm Süreci
Linux çekirdeğindeki mevcut
hp-wmi sürücüsü maalesef Victus serisi için oldukça kısıtlı bir destek sunuyor. Mevcut sürücü cihazı sadece "Max Mode"a alabiliyordu; ancak BIOS'taki güvenlik mekanizması nedeniyle cihaz 2 dakika içinde otomatik olarak "Auto Mode"a geri dönüyordu. Bu da çekirdek sürücüsünün tek başına yetersiz kalmasına neden oluyordu.Uygulamayı geliştirirken ilk aşamada, kullanıcı seviyesinde (user-space) bir sayaç oluşturarak BIOS'a sürekli sinyal gönderdim ve "Max Mode"da kalmasını sağladım. v0.2.0 sürümü bu haliyle yük altında başarılı olsa da, asıl hedefim olan Manuel Fan Kontrolü ve kişisel fan profilleri için yeterli değildi.
Linux Çekirdeği (Mainline) Gelişmeleri ve Özelleştirilmiş Yama
Araştırmalarım sonucunda, Linux çekirdeğinin for-next dalında 5 commitlik yeni bir yama seti buldum. Bu yama,
hp-wmi sürücüsüne iki kritik özellik kazandırıyor:Manuel Mod Desteği: Fan hızlarının tamamen kullanıcı tarafından belirlenmesine olanak tanıyor.
Kernel-Level Watchdog: Kullanıcı seviyesinde yaptığımız "BIOS'u uyarma" işlemi artık sürücü seviyesine inmiş durumda. Sürücü, manuel veya maksimum modda olunduğunda her 90 saniyede bir BIOS'a sinyal göndererek modun korunmasını sağlıyor.
Bu güncellemeler muhtemelen Kernel 7.0 veya bir sonraki sürümle ana dağıtımlara dahil edilecektir. Ancak mevcut yamada önemli bir eksiklik vardı: Manuel kontrol sadece CPU fanı üzerinden yapılıyordu ve GPU fanı zorunlu olarak CPU ile senkronize çalışıyordu.
Kendi Çözümüm ve Geliştirdiğim Uygulama
Yamayı yerel olarak fork'layıp üzerinde modifikasyonlar yaptım. CPU ve GPU fan kontrolünü birbirinden tamamen bağımsız hale getirdim. Yazdığım uygulamayı da bu iki ayrı fan profilini destekleyecek şekilde güncelledim.
Çekirdek güncellemesinin resmiyete dökülmesini beklemeden kullanmak isteyenler için hazırladığım yamayı DKMS üzerinden sisteme kurulabilir hale getirdim. En güzel yanı ise şu: Benim uygulamamı kullanmak zorunda değilsiniz. Yapılan yamalar ile birlikte
hp-wmi sürücüsü artık hwmon standartlarına tam uyumlu olduğu için CoolerControl gibi popüler araçlarla da Victus fanlarınızı yönetebilirsiniz.İlgili Linkler ve Commitler:
- Proje Adresi
- Commit-2(hp-wmi: add manual fan control for Victus S models)
- Commit-3(hp-wmi: implement fan keep-alive)
Sorularınız veya geri bildirimleriniz olursa paylaşırsanız sevinirim. İyi sosyaller
Son düzenleme: