İnatçı Sistem Hoparlörü (Çözüldü 82. mesaj)

Son zamanlarda yaşadığım gelişmeyi paylaşmak istiyorum. Bundan 3 ay önce resimdeki yeni bir dizüstü bilgisayara sahip oldum ancak söz konusu dizüstü bilgisayarda sistem hoparlörü yok (bizzat GRUB önyükleyicisinin play komutu ile denedim ve hiçbir ses çıkarmadı).

VID_20240210_171440_exported_5849.jpg


Bu nedenle son zamanlarda 4 yıl önce GRUB önyükleyicisi yardımıyla eski dizüstü bilgisayarımdaki sistem hoparlörü ile melodi çalmayı biraz başarmış olmama ve neredeyse 1 yıl önce masaüstü bilgisayarımdaki sonradan monte ettiğim sistem hoparlörü ile melodi çalmayı başarmış olmama rağmen eski dizüstü bilgisayarımdaki sistem hoparlörü ile resimdeki program (BaWaMI) gibi eski dizüstü bilgisayarımda başarılı olamadığım diğer yöntemleri kullanarak melodi çalmaya kafayı taktım ve eski dizüstü bilgisayarımı neredeyse tarihî eser kaçakçılığından yakalanmak üzere olmama rağmen (şaka bir yana eski dizüstü bilgisayarımın menteşeleri kullanılamaz hâle geldi, daha önce değiştirdiğim bataryası ömrünü tamamladı, Windows 11'i desteklemiyor ve Windows 10'un desteğinin sona ermesine sadece 1 yıl kaldı) anakartındaki sistem hoparlörü ile söz konusu yöntemleri kullanarak melodi çalmayı başarana kadar bırakmamaya karar verdim.

Ekran görüntüsü 2024-04-17 004552.png


Bu nedenle bu konu hakkında araştırma yapmaya başladım ve GRUB önyükleyicisinin kaynak kodunun aşağıdaki kesitini incelediğimde ve resimdeki gibi aygıt yöneticisinde sistem hoparlörü ve ilgili diğer donanımlarının G/Ç portlarımı incelediğimde ise hiçbir standart dışı G/Ç portu bulamadım.

C:
enum
  {
    /* The PIT channel value ports.  You can write to and read from them.
       Do not mess with timer 0 or 1.  */
    GRUB_PIT_COUNTER_0 = 0x40,
    GRUB_PIT_COUNTER_1 = 0x41,
    GRUB_PIT_COUNTER_2 = 0x42,
    /* The PIT control port.  You can only write to it.  Do not mess with
       timer 0 or 1.  */
    GRUB_PIT_CTRL = 0x43,
    /* The speaker port.  */
    GRUB_PIT_SPEAKER_PORT = 0x61,
  };


/* The speaker port.  */
enum
  {
    /* If 0, follow state of SPEAKER_DATA bit, otherwise enable output
       from timer 2.  */
    GRUB_PIT_SPK_TMR2 = 0x01,
    /* If SPEAKER_TMR2 is not set, this provides direct input into the
       speaker.  Otherwise, this enables or disables the output from the
       timer.  */
    GRUB_PIT_SPK_DATA = 0x02,

    GRUB_PIT_SPK_TMR2_LATCH = 0x20
  };

/* The PIT control port.  You can only write to it.  Do not mess with
   timer 0 or 1.  */


Ekran görüntüsü 2024-04-17 004315.png


Ancak onun dışında daha önce eski dizüstü bilgisayarımın tüm BIOS ayarlarını (üretici tarafından gizlenmiş ayarlar da dahil olmak üzere) incelediğimde ise durum ile ilişkili hiçbir ayar bulamadım ve sorunun kesin nedenini 6 yıldır bulamıyorum.
 
Son düzenleme:
Geçmiş olsun Allah şifa versin
Şu anda bu konuda kendimi biraz daha toparladım (şu anda ise masaüstü bilgisayarımın anakartına sistem hoparlörünü sonradan monte etmemin üzerinden neredeyse 1 yıl geçti) ve sistem hoparlörü ile melodi çalmak konusunda birazcık daha aktif olarak ilgilenmeye başladım ancak hâlen sistem hoparlörü ile melodi çaldığım videoların arkalarına arka plan sesi ekliyorum ve sistem hoparlörü ile melodi çaldığım videolarda arka plan sesi kullanmayı ne zaman bırakacağıma henüz karar veremiyorum (ancak sadece kamu malı olan melodileri çaldığım videolarda arka plan sesi kullanmayı bırakmayı düşünüyorum).

 
Ekli dosyayı görüntüle 103018
Ayrıca aynı gün BeepXP64 isimli sistem dosyasının imzalı olmasına rağmen resimdeki gibi imzasının doğrulanamadığına dair hata verdiğini fark ettim ve şu anda günlerdir bu sistem dosyasını test modunu etkinleştirmeden veya sürücü imza zorlamasını devre dışı bırakmadan kullanmak için uğraşıyorum.
Bunun hakkında bir gelişme paylaşmak istiyorum. Geçtiğimiz günlerde BeepXP64'ün web sitesine girdiğimde web sitesinin tasarımının yenilendiğini gördüm ve yeni tasarımı çok beğendim. Web sitesinde dolaşırken BeepXP64'ün yapımcısının bu durumun farkında olduğunu ve sorunun Windows 10 ve Windows 11'de sürücü imzası politikasının değişmesinden kaynaklı olduğunu öğrendim.
 
Ayrıca 1-2 aydır BeepXP64'ün sürücü imzası zorlamasını devre dışı bırakmadan çalışmaması, BeepXP64'ün imza doğrulaması sorunu çözülmüş yeni sürümü çıkmaması ve üstüne indirme bağlantısının patlamış olması nedeniyle resimdeki NeoBleeper isimli Bleeper Music Maker benzeri (LibreOffice, GIMP, Blender gibi programlarda olduğu gibi düşünün) sistem hoparlörü ile listedeki melodiyi çalma programı geliştiriyorum (aslında neredeyse 1 yıl önce geliştirmeye başlamıştım ancak programı bir kenara bırakmıştım).

Ekran görüntüsü 2024-11-04 161257.png


Programda bip seslerini oluşturmak için BeepXP64'ün durumundan dolayı Console.Beep yerine InpOut32 kullandım, bu kısmın kodu bu şekilde (programı açık kaynak kodlu olarak yayınlayacağım) ve programı yarım yamalak olmasına rağmen hem masaüstü, hem de eski dizüstü bilgisayarımda denedim ancak eski dizüstü bilgisayarım GRUB önyükleyicisinin play komutunun haricindeki diğer yöntemlerde olduğu gibi tık bile demedi (programı yeni dizüstü bilgisayarımda da denedim ancak sistem hoparlörü çıkışının bulunmadığına dair bir uyarı verdi çünkü programa sistem hoparlörü çıkışı algılama özelliği ekledim). Sizce bu durumda eski dizüstü bilgisayarımdaki yıllardır nedenini bulamadığım sorunun nedeni ne olabilir?

C#:
[DllImport("inpoutx64.dll")]
extern static void Out32(short PortAddress, short Data);
[DllImport("inpoutx64.dll")]
extern static char Inp32(short PortAddress);

public static void Beep(uint freq, int ms)
{
     Out32(0x43, 0xB6);
     int div = 0x1234dc / Convert.ToInt32(freq);
     Out32(0x42, (Byte)(div & 0xFF));
     Out32(0x42, (Byte)(div >> 8));
     Application.DoEvents();
     System.Threading.Thread.Sleep(10);
     Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) | 0x03));
     Application.DoEvents();
     System.Threading.Thread.Sleep(ms);
     StopBeep();
}

public static void StopBeep()
{
     Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) & 0xFC));
}
 
Ayrıca 1-2 aydır BeepXP64'ün sürücü imzası zorlamasını devre dışı bırakmadan çalışmaması, BeepXP64'ün imza doğrulaması sorunu çözülmüş yeni sürümü çıkmaması ve üstüne indirme bağlantısının patlamış olması nedeniyle resimdeki NeoBleeper isimli Bleeper Music Maker benzeri (LibreOffice, GIMP, Blender gibi programlarda olduğu gibi düşünün) sistem hoparlörü ile listedeki melodiyi çalma programı geliştiriyorum (aslında neredeyse 1 yıl önce geliştirmeye başlamıştım ancak programı bir kenara bırakmıştım).

Ekli dosyayı görüntüle 111618

Programda bip seslerini oluşturmak için BeepXP64'ün durumundan dolayı Console.Beep yerine InpOut32 kullandım, bu kısmın kodu bu şekilde (programı açık kaynak kodlu olarak yayınlayacağım) ve programı yarım yamalak olmasına rağmen hem masaüstü, hem de eski dizüstü bilgisayarımda denedim ancak eski dizüstü bilgisayarım GRUB önyükleyicisinin play komutunun haricindeki diğer yöntemlerde olduğu gibi tık bile demedi (programı yeni dizüstü bilgisayarımda da denedim ancak sistem hoparlörü çıkışının bulunmadığına dair bir uyarı verdi çünkü programa sistem hoparlörü çıkışı algılama özelliği ekledim). Sizce bu durumda eski dizüstü bilgisayarımdaki yıllardır nedenini bulamadığım sorunun nedeni ne olabilir?

C#:
[DllImport("inpoutx64.dll")]
extern static void Out32(short PortAddress, short Data);
[DllImport("inpoutx64.dll")]
extern static char Inp32(short PortAddress);

public static void Beep(uint freq, int ms)
{
     Out32(0x43, 0xB6);
     int div = 0x1234dc / Convert.ToInt32(freq);
     Out32(0x42, (Byte)(div & 0xFF));
     Out32(0x42, (Byte)(div >> 8));
     Application.DoEvents();
     System.Threading.Thread.Sleep(10);
     Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) | 0x03));
     Application.DoEvents();
     System.Threading.Thread.Sleep(ms);
     StopBeep();
}

public static void StopBeep()
{
     Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) & 0xFC));
}
Sana helal olsun kardeşim . Her haltı yapmaya çalışıp da bir halt beceremeyen dangalaklar yerine bir konuya odaklanıp onu adam gibi yapmaya çalışıyorsun. Ecnebiler gibi söyleyeyim. Go on bro....
 
Sana helal olsun kardeşim . Her haltı yapmaya çalışıp da bir halt beceremeyen dangalaklar yerine bir konuya odaklanıp onu adam gibi yapmaya çalışıyorsun. Ecnebiler gibi söyleyeyim. Go on bro....
Ancak 6 yıldır GRUB önyükleyicisinin play komutu gibi sınırlı sayıdaki yöntemler dışındaki yöntemleri kullanarak (Beep komutu, BaWaMI programı gibi yöntemler kullanarak) eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalamamaktan sıkıldım.
 

Forum istatistikleri

Konular
129,834
Mesajlar
930,598
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Geri
Üst