Gömülü Linux
  • Giriş
  • Linux Çekirdeği
    • Gömülü Sistemlerdeki Kullanımı
    • Geliştirme Süreci ve Versiyonlar
    • Kod Sözdizim Rehberi
    • Konfigürasyon Süreci ve Kbuild Sistemi
    • Derleme ve Çapraz Derleme
    • Initramfs İmajının Eklenmesi
    • U-boot İmajı Haline Getirilmesi
  • Gömülü Sistemlerde Boot Yükleyiciler
    • U-boot
    • RedBoot
    • ARM Mimarisinde Açılış Süreci
  • Linux Açılış Süreci
    • Kernel Açılış Süreci
    • Kullanıcı Kipine Geçiş - Init Süreci
  • Kök Dosya Sistemi Oluşturma
  • Initramfs İle Erken Kullanıcı Kipi
  • Devtmpfs Dosya Sistemi
  • NfsRoot Çalışma Yöntemi
  • Çapraz Derleme ve Gerekli Ekipmanlar
  • NOR, NAND, eMMC ve Flash Tabanlı Depolama
  • Memory Technology Device - MTD Katmanı
  • Unsorted Block Images - UBI Katmanı
  • Gömülü Sistemlerde Kullanılan Dosya Sistemleri
    • JFFS2 Dosya Sistemi
    • YAFFS2 Dosya Sistemi
    • UBIFS Dosya Sistemi
    • Cramfs Dosya Sistemi
    • Squashfs Dosya Sistemi
    • Minix Dosya Sistemi
    • FAT Dosya Sistemi
    • Ext2,3,4 Dosya Sistemi
  • Watchdog Kullanımı
  • CPU Frequency Scaling
  • Buildroot
  • Android Platformu
    • Geliştirme Ortamının Hazırlanması
    • İnşa Süreci
  • Sistem Çağrıları
  • I2C Protokolü
    • I2C Protokolünün Tanıtılması
    • Linux Altında I2C İşlemleri
    • Board Seçimi ve İlk İşlemler
    • Sıcaklık Sensörünün Seçilmesi
    • Sıcaklık Değerinin Yazılımsal Olarak Elde Edilmesi
  • Strace Kullanımı
  • GNU Build Sistemi Araçları
    • Make
    • Autoconf, Automake
  • Orange Pi Zero
    • Orange Pi Zero Teknik Özellikleri
    • Gerekli Araçların Elde Edilmesi
    • U-boot Derleme Süreci
    • Kernel Derleme Süreci
    • Wifi Desteği - Problemli Senaryo Örneği
    • Dosya Sisteminin Hazırlanması
    • SD Kartın Hazırlanması
    • Cihazın Açılması
  • Raspberry Pi
    • Raspberry Pi 2 Teknik Özellikleri
    • Açılış Süreci
    • Gerekli Araçların Elde Edilmesi
    • Kernel Derleme Süreci
    • U-boot Derleme Süreci
    • Dosya Sisteminin Hazırlanması
    • Cihazın Açılması
    • NFS Root Çalışma
    • Sistem Konfigürasyonu
    • Raspberry Pi 3
  • Board Spesifik Kılavuzlar
    • Hawkboard
    • Olimex A20
    • TI DM6446 EVM
    • BeagleBoard
    • BeagleBoneBlack
    • Savage Board
  • EKLER
    • Seri Konsol Kullanımı
    • TFTP Sunucu Kurulumu
    • NFS Sunucu Kurulumu
    • TI işlemcilerinde DSP kullanımı
      • C6Run
      • DSP Testi
    • Ubuntu Sanal Makine Performansı
Powered by GitBook
On this page

Was this helpful?

  1. Orange Pi Zero

Wifi Desteği - Problemli Senaryo Örneği

Orange Pi Zero 7$'lık fiyatı ile her ne kadar çok cazip görünse de, elbette ucuz etin yahnisi durumu burada da söz konusu oluyor.

Linux mainline kernel 4.13'te ne ethernet nede wifi desteklenmiyor. Daha önceki sürümlerle çalışan, çok da iyi olmayan bir ethernet ve wifi desteği mevcut olmakla birlikte, yeni kernel'lar ile birlikte kullanılan subsystem'lerdeki değişikliklere göre gereken güncellemeleri yapmadıkları için, mainline kernel'dan çıkartılmış. Problemin yakın zamanda çözüleceği belirtilmiş ancak an itibariyle sorunun devam ettiğini görüyoruz.

Bu yazıyı okuduğunuz sırada kernel versiyonu muhtemelen 4.13'ten yüksek ve burada bahsettiğimiz problem tamamen çözülmüş olacak. Bununla birlikte özellikle gömülü sistemler ile çalışırken zaman zaman karşılaşabileceğiniz bu tarz durumlara örnek teşkil etmesi amacıyla, wifi modülünü çalıştırmak için neler yaptığımız aktarmaya çalışacağız.

/home/demirten/embedded/orange/xradio/rx.c: In function ‘xradio_rx_cb’:
/home/demirten/embedded/orange/xradio/rx.c:205:16: error: ‘RX_FLAG_HT’ undeclared (first use in this function)
   hdr->flag |= RX_FLAG_HT;
                ^~~~~~~~~~
/home/demirten/embedded/orange/xradio/rx.c:205:16: note: each undeclared identifier is reported only once 
for each function it appears in

...

...

--- ./arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts.orig    2017-09-08 20:15:25.338333936 +0300
+++ ./arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts    2017-09-08 20:25:25.267811462 +0300
@@ -56,7 +56,7 @@

     aliases {
         serial0 = &uart0;
-        ethernet1 = &xr819;
+        ethernet1 = &xr819wifi;
     };

     chosen {
@@ -78,6 +78,16 @@
         };
     };

+    vdd_wifi: vdd_wifi {
+        compatible = "regulator-fixed";
+        regulator-name = "wifi";
+        regulator-min-microvolt = <1800000>;
+        regulator-max-microvolt = <1800000>;
+        gpio = <&pio 0 20 GPIO_ACTIVE_HIGH>;
+        startup-delay-us = <70000>;
+        enable-active-high;
+    };
+
     reg_vcc_wifi: reg_vcc_wifi {
         compatible = "regulator-fixed";
         regulator-min-microvolt = <3300000>;
@@ -115,19 +125,22 @@
 &mmc1 {
     pinctrl-names = "default";
     pinctrl-0 = <&mmc1_pins_a>;
+    vqmmc-supply = <&vdd_wifi>;
     vmmc-supply = <&reg_vcc_wifi>;
     mmc-pwrseq = <&wifi_pwrseq>;
     bus-width = <4>;
     non-removable;
     status = "okay";

-    /*
-     * Explicitly define the sdio device, so that we can add an ethernet
-     * alias for it (which e.g. makes u-boot set a mac-address).
-     */
-    xr819: sdio_wifi@1 {
-        reg = <1>;
-    };
+        xr819wifi: xr819wifi@1 {
+                reg = <1>;
+                compatible = "xradio";
+                pinctrl-names = "default";
+                interrupt-parent = <&pio>;
+                interrupts = <6 10 IRQ_TYPE_EDGE_RISING>;
+                interrupt-names = "host-wake";
+                local-mac-address = [dc 44 6d c0 ff ee];
+        };
 };

...

# modprobe xradio_wlan

xradio_wlan: loading out-of-tree module taints kernel.
  xradio_wlan mmc1:0001:1:    Input buffers: 30 x 1632 bytes
    Hardware: 7.9
    WSM firmware ver: 8, build: 43, api: 1060, cap: 0x0003
  xradio_wlan mmc1:0001:1: Firmware Label:XR_C01.08.0043 Jun  6 2016 20:41:04
PreviousKernel Derleme SüreciNextDosya Sisteminin Hazırlanması

Last updated 5 years ago

Was this helpful?