• tzset(): set timezone
  • parse_commandline(): parse command
  • fixup_server_root(): fix root
  • asp_init():...
  • read_config_files()
  • create_common_env(): Set up the environment variables for cgi
  • open_logs()
  • create_server_socket(): create a nonblocking socket server
  • build_needs_escape()
  • fork()
  • init_signals()
  • timestamp(): log boa start time
  • loop()

asp_init()

  • getWlStaNum(): 做了無用
  • apmib_init()
  • save_cs_to_file(): save current setup value to a file (/web/config.dat->/var/config.dat)
  • .....

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

rtl819x\linux-3.10\drivers\char\rtl_gpio.c

  • cat /proc/load_default 時 default_read_proc() 會輸出 default_flag.
  • reset_button_pressed() 會偵測 reset button.

rtl819x\linux-3.10\arch\mips\bsp\gpio.c

  • ...........gpio register
  • rtl819x_gpio_platdata rtl_pdata_btn1
  • rtl_pdata_btn1.gpio = BSP_RESET_BTN_PIN = BSP_GPIO_PIN_G6 = 6x8+6 = 54
  • BSP_GPIO_PIN_G6 in rtl819x\linux-3.10\arch\mips\bsp\bspchip.h
  • platform_device rtl_btn_dev1 = .platform_data = &rtl_pdata_btn1
  • platform_device __initdata *rtl_devs[] = { rtl_btn_dev1 }
  • platform_add_devices(rtl_devs) --> inert into rtl819x_btn_driver by .name="rtl819x_btn"
  • ...........gpio register
  • gpio_chip rtl819x_gpio_peripheral
  • gpiochip_add(&rtl819x_gpio_peripheral)
  • rtl819x_gpio_peripheral_init()
  • arch_initcall(rtl819x_gpio_peripheral_init)

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

  • users/boa/apmib/apmib.h, add MIB ID (16000~32767), 1~15999 for Realtek.
  • users/boa/apmib/mibdef.h, add MIBDEF, 找 #endif // #ifdef MIB_IMPORT 補在上面, 也就是放在最後.
  • users/boa/utils/flash.c, 把預設值寫到 writeDefault 函數, 因為 RTL_DEF_SETTING_IN_FW 就不用了.
  • users/boa/apmib/upmib.h, 修改 MIB_MIB_VER 的值, 因為 RTL_DEF_SETTING_IN_FW 就改去修改 users/boa.defconfig/config-example.txt 的 MIB_VER 值.
  • MIB_VER 如果與 current value 不同時, 就會把 new_mib[] 值新增, update_mib 值更新, 如果都沒有會直執行 flash reset 讀取 default value.
  • 最後記得修改 users/boa.defconfig/config-example.txt, 把新的欄位加上去.

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

  • flash set WLAN_11N_ONOFF_TKIP 1
  • --- a/rtl819x/users/boa/html/wlsecurity_all.htm
    +++ b/rtl819x/users/boa/html/wlsecurity_all.htm
    @@ -484,7 +484,7 @@ function show_authentication()
            }else if (wep_type.selectedIndex ==2 && ap_mode!=1){//ap mode
                    get_by_id("setting_wpa").style.display = "";
                    //if(ap_mode == 1)//client mode 
    -               //      get_by_id("show_wpa_cipher").style.display = "";
    +                       get_by_id("show_wpa_cipher").style.display = "";
                    //if(ap_mode != 1)//AP mode
                            get_by_id("show_wpa2_cipher").style.display = "";       
                    show_wpa_settings();
    
  • --- a/rtl819x/users/boa/html/wlsecurity_all.htm
    +++ b/rtl819x/users/boa/html/wlsecurity_all.htm
    @@ -1271,7 +1271,7 @@ function ValidateForm(passForm)
            ap_mode = 1; //wireless profile force client mode;
        }
                                                            
    -   //  document.write('
    
    ');
    +   document.write('
    
    ');
        if (ap_mode != 1)
            document.write('
    
    ');
        //if (ap_mode != 1)
    

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

sysconf init gw all

  • /etc/init.d/rcS
  • /bin/init.sh gw all ==> sysconf init gw all
  • +sysconf.c -> main(), sysconf 的主程序
  • ++setinit.c -> set_init(), 根據參數 init 會呼叫 set_init()
  • 然後就沒有了, 所以主要工作都在 set_init()。

set_init()

  • if_readlist_proc(wlan_virtual_interface, "va", 0), 收集所有的 wifi 虛擬網卡, 存在 wlan_virtual_interface, 以空格為分界.
  • sethostname() 設定 host name。
  • ifconfig hw ether 設定 mac address,值存在 hw config,HW_NIC0_ADDR,HW_WLAN0_WLAN_ADDR,HW_WLAN1_WLAN_ADDR 等。
  • 根據 NUM_WLAN_INTERFACE, 把 wifi 裝置寫入 wlan_interface, wlan0 及 wlan1.
  • 根據 wlan_interface 來設定, flash set_mib wlan0,flash set_mib wlan1。
  • 根據 wlan_virtual_interface 來設定, flash set_mib wlan0 wlan1-va2 等等.
  • setbridge(),設定 bridge。
  • set_log(),設定 log process。
  • set_lan_dhcpd(),設定 dhcp server。
  • start_wlanapp(),設定 wireless interface。
  • start_wan(),設定 wan interface。
  • start_upnpd(),設定 upnpd。
  • start_wlan_by_schedule(),設定 Wireless Schedule。
  • To enable/disable ipv6 passthru no matter wan is connected or not
  • enable igmp snooping
  • start_mount(),usb mount。
  • start_vsftpd(),vsftpd server。
  • start_samba(),samba server。
  • timelycheck,watch dog。

flash set_mib wlan0

  • wlan_idx=atoi(&argv[argNum][4]) 設定那一個 wlan 給 apmib_get() 讀取正確的值.
  • 設定完 wlan_idx, 就執行 initWlan().
  • struct wifi_mib 宣告放在 \linux-3.10\drivers\net\wireless\rtl8192cd\ieee802_mib.h
  • ifconfig %s down 先關閉 device
  • 讀取 MIB_WLAN_WLAN_DISABLED, 為1就直接結束.
  • ioctl(skfd, 0x8B42, &wrq_root) 把 kernel 的 mib 值讀回來.
  • ioctl(skfd, 0x8B43, &wrq_root) 把 mib 值寫入 kernel.
  • 0x8B42, 0x8B43 放在 \linux-3.10\drivers\net\wireless\rtl8192cd\8192cd_ioctl.c, rtl8192cd_ioctl().

flash set_mib wlan0

  • start_wan()
  • +set_staticIP()
  • ++setFirewallIptablesRules()
  • +set_dhcp_client()
  • ++/usr/share/udhcpc/eth1.bound
  • +++sysconf conn dhcp.....
  • ++++wan_connect()
  • +++++setFirewallIptablesRules()
  • +set_pppoe()
  • ++/bin/pppoe.sh
  • +++sysconf pppoe $*
  • ++++setFirewallIptablesRules()

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論