Gün geçmiyor ki GNU/Linux’da acayip bir donanım sorunu ile karşılaşmayayım.
Yo aslında bu sorunu kendi bilgisayarımda yaşamadım. Bir arkadaşımın bilgisayarına Ubuntu 12.10 yükledim geçenlerde. O da Avea’nın 3G hizmetini kullanıyordu, ZTE marka bir modemle. Benim hiç sorun yaşamadığım modem nedense o bilgisayarda naz yapıyordu. Ufak bir araştırma sonrasında neden olduğunu öğrendim sonunda.
Türkiye içinde GSM operatörlerinin dağıttığı modemler aslında birden fazla işleve sahip. Bunlardan birisi 3G modem, diğeri ise kurulum dosyalarının bulunduğu sanal CD-ROM. Mesele bunlar arasında geçiş yapabilmekte. Şöyle bir örnekle göstereyim. Konsol ekranına “lsusb” komutunu verin. ZTE ile ilgili kısma bir gözatın:
1 | Bus 002 Device 006: ID **19d2:0031** ZTE WCDMA Technologies MSM MF110/MF627/MF636 |
Olay aslında burada bitiyor. Yukarıda koyu renkle gösterdiğim kısım içerisindeki 19d2 modem üreticisinin kodu. Her ZTE modem için aynıdır. Diğer kısım olan 0031 ise mevcut cihazın o andaki işlevi oluyor. 0031 kodu, bu model için 3G modem işlevi demek. Ubuntu altında 3G bağlantısı kurarken cihazınız görünmüyorsa sebebi budur. Zira tam o anda cihazınız aslında 2000 kodlu işlevdedir ki bu da kurulum dosyalarının bulunduğu sanal CD-ROM oluyor. USB aygıtlarını listelediğinizde (lsusb)19d2:2000 olarak gözükecektir:
1 | Bus 002 Device 006: ID **19d2:2000** ZTE WCDMA Technologies MSM MF110/MF627/MF636 |
Normalde usb-modeswitch adlı bir yazılımla her defasında elle geçiş yapabiliyorsunuz fakat kim uğraşmak ister ki bununla sürekli? Bunu otomatik hale getirmek için bir iki paket kurup, yapılandırmalara el atacağız ve otomatik olarak işlevler arasında geçiş yapacak. Önce paketleri kuralım:
1 | $ sudo apt-get install usb-modeswitch usb-modeswitch-data |
Ardından bir metin düzenleyicisi açın (gedit, kwrite, nano vs. artık keyfinize göre) ve şunları yapıştırın:
1 2 3 4 5 6 7 8 9 10 11 12 13 | # ZTE 3G Modem DefaultVendor= 0x19d2 DefaultProduct= 0x2000 TargetVendor= 0x19d2 TargetProduct= 0x0031 MessageContent="55534243123456782400000080000685000000240000000000000000000000" CheckSuccess=20 |
Bunu yönetici hakları ile /etc/usb_modeswitch.d altında 19d2:2000 adlı bir dosyaya kaydedin. Ardından yine yönetici hakları ile /lib/udev/rules.d/40-usb_modeswitch.rules dosyasını açın. Şunları herhangi bir boşluğa yapıştırın:
1 2 3 | # ZTE 3G Modem ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2000", RUN+="usb_modeswitch '%b/%k'" |
Farklı marka-modeller içinde aslında bu durum geçerli. Önemli olan, modeminizin 3G modem işlevi kodunu bilmeniz. Ardından gerekli yerlerdeki kodları değiştirerek her tür modem için de kullanabilirsiniz.