DOSYALARI İNDİR: https://github.com/JustLachin/ExCameraFix/archive/refs/heads/main.zip
Bu döküman, Excalibur G870 serisi cihazlarda yaşanan ve Windows 10/11 işletim sistemlerinde kronikleşen kamera sorunlarını çözmek için geliştirilen tüm yöntemleri, kodları ve teknik mantığı içeren en kapsamlı rehberdir.
Excalibur G870 kamerası Linux'ta tak-çalıştır (plug-and-play) olarak çalışırken Windows'ta şu sebeplerle kilitlenir:
- Media Foundation Frame Server (MFT): Windows, kamerayı bir "aracı servis" üzerinden uygulamalara sunar. G870'in sensörü bu aracı servisle (FrameServer) konuştuğunda kilitlenir.
- Güç Yönetimi (UVC Power Management): Windows, pil ömrünü uzatmak için USB kamera sensörünü "Selective Suspend" moduna sokar. Sensör bu moddan çıkamaz ve siyah ekran verir.
- Kayıt Defteri Hataları: Yanlış driver kurulumları veya Windows güncellemeleri, kameranın erişim izinlerini bozar.
🚀 A. SuperReset.ps1 - Sistem Seviyesi Onarım
Bu dosya, Windows'un kamera işleme mimarisini kökten değiştirir.
İçerdiği Kritik Komutlar:
# 1. Windows Kamera Servislerini Durdurma ve Devre Dışı Bırakma
Stop-Service -Name "FrameServer" -Force
Set-Service -Name "FrameServer" -StartupType Disabled
# 2. Kayıt Defterinde Frame Server Modunu Baypas Etme (32-bit ve 64-bit)
$paths = @(
"HKLM:\SOFTWARE\Microsoft\Windows Media Foundation\Platform",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation\Platform"
)
foreach ($path in $paths) {
if (!(Test-Path $path)) { New-Item -Path $path -Force }
Set-ItemProperty -Path $path -Name "EnableFrameServerMode" -Value 0
}⚡ B. FullReset.ps1 - Agresif Donanım Sıfırlama
Bu script, kameranın bağlı olduğu USB yollarını "elektriksel" olarak resetler.
İçerdiği Kritik Komutlar:
# 1. Kamera Cihazını Bul ve Kapat/Aç
$camera = Get-PnpDevice -Class Camera | Where-Object { $_.FriendlyName -like "*Webcam*" }
Disable-PnpDevice -InstanceId $camera.InstanceId -Confirm:$false
Enable-PnpDevice -InstanceId $camera.InstanceId -Confirm:$false
# 2. USB Root Hub'ları Resetle (Sensörü Uyandırmak İçin)
Get-PnpDevice -Class USB | Where-Object { $_.FriendlyName -like "*Root Hub*" } | ForEach-Object {
Disable-PnpDevice -InstanceId $_.InstanceId -Confirm:$false
Enable-PnpDevice -InstanceId $_.InstanceId -Confirm:$false
}👁️ C. ForceAccess.py - Görüntü Yakalama Testi
Kamerayı standart Windows uygulamaları dışında, en alt seviye (DirectShow) protokolüyle açar.
Kod Mantığı:
import cv2
# CAP_DSHOW: Windows'un modern (ve hatalı) Media Foundation katmanını atlar.
cap = cv2.VideoCapture(0 + cv2.CAP_DSHOW)
# MJPG: Sıkıştırılmış görüntü formatını zorlar (G870 için en stabil format).
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))🌙 D. BlackScreenFix.ps1 - Siyah Ekran Çözümü
Sensörün ışığı yanıyor ama görüntü gelmiyorsa bu script güç ayarlarını ezer.
İçerdiği Kritik Komutlar:
# USB Seçici Askıya Alma (Selective Suspend) özelliğini kapatır
Set-ItemProperty -Path $cameraPath -Name "EnableSelectiveSuspend" -Value 0
Set-ItemProperty -Path $cameraPath -Name "EnhancedPowerManagementEnabled" -Value 0Scriptleri çalıştırmak için Windows'un kısıtlamalarını aşmanız gerekir. Aşağıdaki komutlar, sistem ayarlarını bozmadan sadece o işlem özelinde izinleri açar.
PowerShell scriptleri varsayılan olarak engellidir. Bunları çalıştırmak için şu komut dizilimlerini kullanın:
| Hedef Script | Çalıştırma Komutu (PowerShell - Yönetici) |
|---|---|
| SuperReset | Set-ExecutionPolicy Bypass -Scope Process -Force; .\SuperReset.ps1 |
| FullReset | Set-ExecutionPolicy Bypass -Scope Process -Force; .\FullReset.ps1 |
| BlackScreenFix | Set-ExecutionPolicy Bypass -Scope Process -Force; .\BlackScreenFix.ps1 |
Sorunun nerede olduğunu anlamak için terminale yapıştırabileceğiniz derin analiz komutları:
- Donanım Durumu (PnP):
Get-PnpDevice -Class Camera,Image | Select-Object FriendlyName, InstanceId, Status, ProblemCode
- Servis Durumu:
Get-Service -Name FrameServer, CapabilityAccessManagerService | Select-Object Name, Status, StartType
- Kayıt Defteri (FrameServer) Kontrolü:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Media Foundation\Platform" -Name "EnableFrameServerMode"
Python ile kameraya doğrudan erişmek için gereken kurulumlar:
# 1. Gerekli kütüphaneyi kur
pip install opencv-python
# 2. Kamera testini başlat
python camera_test.py
# 3. Düşük seviye (DirectShow) testi
python ForceAccess.pyEğer kameran çalışmıyorsa şu sırayı asla bozma:
- Scripti Çalıştır: PowerShell'i yönetici olarak aç ve
SuperReset.ps1dosyasını çalıştır. - Agresif Reset: Eğer siyah ekran devam ediyorsa
FullReset.ps1dosyasını çalıştır. - Kritik Kapatma: Bilgisayarı Yeniden Başlatma. Bilgisayarı tamamen KAPAT (Shut Down). 10 saniye bekle ve sonra tekrar aç. (Bu, sensörün voltajını sıfırlayan tek yoldur).
- Manuel Tetikleme (Gerekirse): Bilgisayar açıldığında hala görüntü yoksa:
- Ayarlar > Bluetooth ve Cihazlar > Kameralar > USB Webcam yoluna git.
- Devre Dışı Bırak de, 2 saniye bekle ve tekrar Etkinleştir. (Muhtemelen etkinleştirmek için yeniden başlatmanız istenebilir AMA YENİDEN BAŞLATMAYIN! Ve kameranızı test edin.)
Scriptleri sağ tıklayıp "Yönetici olarak çalıştır" demeye gerek kalmadan başlatan toplu iş dosyası.
Dosya İçeriği:
@echo off
:: Yönetici yetkisi kontrolü
net session >nul 2>&1
if %errorLevel% == 0 (
echo Yonetici yetkisi onaylandi.
) else (
echo LUTFEN BU DOSYAYI SAG TIKLAYIP 'YONETICI OLARAK CALISTIR'IN!
pause
exit
)
powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dp0SuperReset.ps1""' -Verb RunAs}"
echo Islem tamamlandi.
pauseFullReset.ps1: En ağır donanım resetleme scripti.SuperReset.ps1: Frame Server engelini kaldıran ana script.BlackScreenFix.ps1: Siyah ekran ve güç yönetimi onarıcı.ForceAccess.py: Düşük seviye (DirectShow) kamera erişim testi.SettingsFix.py: Sensör parlaklık/pozlama ayarlarını sıfırlayıcı.FormatFix.py: Desteklenen görüntü formatlarını (MJPG/YUY2) test edici.LowLevelReset.py: Windows Medya kütüphanesini (Mfplat.dll) sıfırlayıcı.camera_test.py: Basit kamera açma testi.RunFix.bat: PowerShell scriptlerini yönetici olarak başlatan tetikleyici.
Bu rehber ve beraberindeki kodlar, Excalibur G870 kullanıcılarının yaşadığı mağduriyeti gidermek için özel olarak hazırlanmıştır. Sürüm: 4.0 (Final) Hazırlayan: Trae AI & Lachin