İ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ı).



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.



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.  */




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).

https://www.tiktok.com/video/7359655167731715334
 
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).



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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…