ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上
2012年5月29日 星期二
athero wifi sdk in android
ref: http://r40eubuntu.blogspot.com/2012/05/android-enable-wifi-ap-mode.html
wifi driver 分成兩部份: driver ko & proprietary bin。
android framework 中,他是在: /system/wlan/atheros/
裡面有兩個 folder ,分別是 driver ko 跟 proprietary bin。
要 build 這個 folder ,還要修改BoardConfig.mk
因為 Android.mk 有:
修改完 BoardConfig.mk 後,就可以到 /system/wlan/atheros 去 build (mm)。
結果出現 error : ATH_LINUXPATH 沒定義。
到 sdk ../host/Android.mk 去看,發現有針對 TARGET_PRODUCT 作 case build。
所以TARGET_PRODUCT name 有改的,他就不知道了。
改一下,把自己的 product name 加進去。 --- OK
driver OK!
接著是 helper tool ..
先參考 init.rc 看一下啟動的 script tool 是...
好像只有設定 wifi prop 和用 wlan_tool啟動 wpa_supplicant service
發現 imx5x/imx5x.mk 差異頗大..
wlan_tool 包含在 sdk 裡面。
wpa_supplicant 有三個版本,檢查各自的 Android,mk 可以知道:
init.rc:
wifi 需要:
jni 所 include 的 wifi.h ,就是再 libhardware_legacy/include
wifi driver 分成兩部份: driver ko & proprietary bin。
- driver ko: 就是 kernel interface。 -- 這部份有 source code
- proprietary bin : driver 啟動時,load 進 wifi module。 -- 這部份沒有 source code
android framework 中,他是在: /system/wlan/atheros/
裡面有兩個 folder ,分別是 driver ko 跟 proprietary bin。
要 build 這個 folder ,還要修改BoardConfig.mk
因為 Android.mk 有:
ifneq ($(TARGET_SIMULATOR),true)
ifeq ($(BOARD_WLAN_CHIP_AR6003), true)
# The board config file for the product must define BOARD_WLAN_ATHEROS_SDK
# in order to build the atheros wlan components.
ifdef BOARD_WLAN_ATHEROS_SDK
include $(BOARD_WLAN_ATHEROS_SDK)/host/Android.mk
include $(BOARD_WLAN_ATHEROS_SDK)-proprietary/host/Android.mk
endif
endif
endif
所以這個 folder 可以同時放很多版本的 sdk,然後由 BoardConfig.mk 指定要使用的版本。修改完 BoardConfig.mk 後,就可以到 /system/wlan/atheros 去 build (mm)。
結果出現 error : ATH_LINUXPATH 沒定義。
到 sdk ../host/Android.mk 去看,發現有針對 TARGET_PRODUCT 作 case build。
所以TARGET_PRODUCT name 有改的,他就不知道了。
改一下,把自己的 product name 加進去。 --- OK
driver OK!
接著是 helper tool ..
先參考 init.rc 看一下啟動的 script tool 是...
好像只有設定 wifi prop 和用 wlan_tool啟動 wpa_supplicant service
發現 imx5x/imx5x.mk 差異頗大..
wlan_tool 包含在 sdk 裡面。
wpa_supplicant 有三個版本,檢查各自的 Android,mk 可以知道:
- wpa_supplicant : WPA_SUPPLICANT_VERSION := VER_0_5_X
- wpa_supplicant_6 : ifeq ($(WPA_SUPPLICANT_VERSION),VER_0_6_X)
- wpa_supplicant_ath : ifeq ($(WPA_SUPPLICANT_VERSION),VER_0_8_ATHEROS)
WPA_SUPPLICANT_VERSION := VER_0_8_ATHEROS
init.rc:
wifi 需要:
- /data/misc/wifi 目錄
- /data/misc/wifi/wpa_supplicant.conf 檔案
- /data/system/wpa_supplicant 目錄
setprop wifi.interface wlan0
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
另外這是 dhcpcd client daemon
service dhcpcd_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -d -B wlan0
disabled
oneshot
還有 wpa_supplicant , wlan service:
service wpa_supplicant /system/bin/wlan_tool wpa_supplicant
socket wpa_wlan0 dgram 660 root wifi
disabled
oneshot
service wlan_tool /system/bin/wlan_tool
oneshot
另外,wifi 的 jni 中有實做的底層,會在 hardware/libhardware_legacy 的 wifi folder 中。jni 所 include 的 wifi.h ,就是再 libhardware_legacy/include
2012年5月25日 星期五
android: enable wifi ap mode
因為這版bsp,wifi 可以動。所以看看是不是 ap mode 也可以起得來。
直接 enable thethering -- portable Wi-Fi hotspot。
結果是 Error。
log 是..
所以問題應該是在:
然後記得以前 auron 說過,當初 ap mode fail 是 interface name 不對。
對照一下,果然,前面 wlan_tool 使用 softap0,後面 framework 都用 wlap0。
所以修改一下 wlan_tool
... 這個是在 atheros wifi sdk 的 driver project 中..
附記:auron 改 WifiService.java ,其中 SOFTAP_IFACE=" " 她改 wlan1
要注意 可以作為 tether 的 interface 寫在 framework/base/core/res/res/values/config.xml:
直接 enable thethering -- portable Wi-Fi hotspot。
結果是 Error。
log 是..
E/WifiService( 2379): ath: load Wi-Fi driver for AP mode.
set_cpu_freq, wp 0
I/wlan_tool( 2679): loadAPdriver+
I/wlan_tool( 2680): AP wifi loading
I/wlan_tool( 2684): Try to load AP driver with ifname=softap0 devmode=ap
AR6000: configuration opcode 7 is only used for RTOS systems, not Linux systemsD/dalvikvm( 2379): GC_CONCURRENT freed 979K,
45% free 4279K/7751K, external 2765K/3965K, paused 4ms+6ms
AR6K: ** HIF layer does not support scatter requests (17)
W/Netd ( 2309): action=5, iface=softap0
wmi_control_rx() : Unknown id 0x101e
D/Tethering( 2379): interfaceLinkStatusChanged softap0, false
D/NetdConnector( 2379): RCV <- {600 Iface linkstate softap0 down}
W/Netd ( 2309): action=5, iface=softap0
/Tethering( 2379): interfaceLinkStatusChanged softap0, false
D/NetdConnector( 2379): RCV <- {600 Iface linkstate softap0 down}
D/Tethering( 2379): softap0 is not a tetherable iface, ignoring
W/Netd ( 2309): action=5, iface=softap0
D/Tethering( 2379): interfaceLinkStatusChanged softap0, false
D/NetdConnector( 2379): RCV <- {600 Iface added softap0}
D/NetdConnector( 2379): RCV <- {600 Iface linkstate softap0 down}
I/wlan_tool( 2699): ar6000 AP driver loaded
I/wlan_tool( 2701): loadAPdriver-
D/SoftapController( 2309): Softap driver stop: 0
D/SoftapController( 2309): fwReloadSoftap: argv[2]:wlan0 argv[3]:AP
D/SoftapController( 2309): Softap fwReload - Ok
D/SoftapController( 2309): Softap driver start: 0
D/NetdConnector( 2379): SND -> {softap stop wlan0} {null}
D/NetdConnector( 2379): RCV <- {200 Softap operation succeeded}
D/NetdConnector( 2379): RSP <- {200 Softap operation succeeded}
D/NetdConnector( 2379): SND -> {softap fwreload wlan0 AP} {null}
D/NetdConnector( 2379): RCV <- {200 Softap operation succeeded}
D/NetdConnector( 2379): RSP <- {200 Softap operation succeeded}
D/NetdConnector( 2379): SND -> {softap start wlan0} {null}
D/NetdConnector( 2379): RCV <- {200 Softap operation succeeded}
D/NetdConnector( 2379): RSP <- {200 Softap operation succeeded}
E/SoftapController( 2309): AR6000_IOCTL wlap0 set wlan state failed: -1:No such device
D/NetdConnector( 2379): SND -> {softap set wlan0 wlap0 "xxxAndroidAP" open null} {null}
D/NetdConnector( 2379): RCV <- {400 Softap operation failed (No such device)}
D/NetdConnector( 2379): RSP <- {400 Softap operation failed (No such device)}
E/WifiService( 2379): Exception in startAccessPoint()
所以問題應該是在:
E/SoftapController( 2309): AR6000_IOCTL wlap0 set wlan state failed: -1:No such device
然後記得以前 auron 說過,當初 ap mode fail 是 interface name 不對。
對照一下,果然,前面 wlan_tool 使用 softap0,後面 framework 都用 wlap0。
所以修改一下 wlan_tool
... 這個是在 atheros wifi sdk 的 driver project 中..
附記:auron 改 WifiService.java ,其中 SOFTAP_IFACE=" " 她改 wlan1
要注意 可以作為 tether 的 interface 寫在 framework/base/core/res/res/values/config.xml:
2012年5月17日 星期四
find . contains .git then sun command...
因為加上 bsp 後,有一堆 framework folder 的 git 都沒有列入 manifest 中,
所以用 repo 會找不到。
所以改用 script: 找所有包含 .git 的目錄,然後 run XXX command:
allgit.sh
然後就這樣:
就是到每個project 去 run 'git status'
所以用 repo 會找不到。
所以改用 script: 找所有包含 .git 的目錄,然後 run XXX command:
allgit.sh
#/bin/sh
find . -type d -name '.git' | while read F; do
D=$F/../
cd "$D"
echo $PWD
git $1
cd - > /dev/null
echo ---------------
done
然後就這樣:
allgit.sh status
就是到每個project 去 run 'git status'
2012年5月15日 星期二
kernel logo, splash screen
ref: http://www.imxdev.org/wiki/index.php?title=I.MX25_PDK_U-boot_SplashScreen
這樣看來好像可以寫成 script 自動..
目前 .config 是enable:
實際上轉換檔案的時候,好像 8bpp 的才 OK。
其他好像都會變成單色,
所以最好先follow uboot 的方式,用 imagemagick 把 jpg 轉 8bpp bmp
然後再把bmp 轉 ppm:
ref: http://blog.csdn.net/linwhwylb/article/details/7365648
直接轉...
這樣看來好像可以寫成 script 自動..
目前 .config 是enable:
CONFIG_LOGO_LINUX_CLUT224=y
所以ppm 檔名是: logo_linux_clut244.ppm實際上轉換檔案的時候,好像 8bpp 的才 OK。
其他好像都會變成單色,
所以最好先follow uboot 的方式,用 imagemagick 把 jpg 轉 8bpp bmp
convert splash.jpg -colors 256 -compress none splash.bmp
然後再把bmp 轉 ppm:
bmptoppm splash.bmp | ppmquant 224 | pnmtoplainpnm > drivers/video/logo/logo_linux_clut224.ppm
ref: http://blog.csdn.net/linwhwylb/article/details/7365648
直接轉...
$ convert linux.gif -resize 320x240\! -colors 224 -compress none logo_linux_clut224.ppm
2012年5月10日 星期四
android : reconnect 3G after disconect wifi
這個 2.3.3 版 android,在 wifi 斷線的時候,好像不會自動把 3G 連回去喔..
之後手動去 mobile data 關掉再開一次,3G 才會繼續連線。
... 但是手機連 2.2. 的都會呀!!!
連線"狀態" 的處理,好像是 ConnectivityService.java 負責的。
每個DISCONNECT, CONNECT 都會有 event 過來。
他負責各 network 的相互關係,例如以上的動作,就是由他完成的。
wifi 只要負責開,關就可以。
wifi 開了之後,ConnectivityService 會知道,他就幫你把其他的網路都關掉。
所以改這裡應該可以叫他把 3g 接回去..
懶得寫,直接貼 diff:
其實沒有處理 connectionfail 的情況...
之後手動去 mobile data 關掉再開一次,3G 才會繼續連線。
... 但是手機連 2.2. 的都會呀!!!
連線"狀態" 的處理,好像是 ConnectivityService.java 負責的。
每個DISCONNECT, CONNECT 都會有 event 過來。
他負責各 network 的相互關係,例如以上的動作,就是由他完成的。
wifi 只要負責開,關就可以。
wifi 開了之後,ConnectivityService 會知道,他就幫你把其他的網路都關掉。
所以改這裡應該可以叫他把 3g 接回去..
懶得寫,直接貼 diff:
services/java/com/android/server/ConnectivityService.java patch | blob | history
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index c782e4e..76c5a15 100644 (file)
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -58,7 +58,7 @@ import java.util.List;
*/
public class ConnectivityService extends IConnectivityManager.Stub {
- private static final boolean DBG = false;
+ private static final boolean DBG = true;
private static final String TAG = "ConnectivityService";
// how long to wait before switching back to a radio's default network
@@ -161,6 +161,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private static final int EVENT_SET_MOBILE_DATA =
MAX_NETWORK_STATE_TRACKER_EVENT + 7;
+ private static final int EVENT_ENABLE_MOBILE_DATA_AGAIN =
+ MAX_NETWORK_STATE_TRACKER_EVENT + 8;
+
private Handler mHandler;
// list of DeathRecipients used to make sure features are turned off when
@@ -896,6 +899,16 @@ public class ConnectivityService extends IConnectivityManager.Stub {
(enabled ? ENABLED : DISABLED), 0));
}
+ /**
+ * don't care about current state, enable mobiledata anyway
+ */
+ private void enableMobileDataAgain() {
+ enforceChangePermission();
+ if (DBG) Slog.d(TAG,"enableMobileDataAgain");
+
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_ENABLE_MOBILE_DATA_AGAIN,0,0));
+ }
+
private void handleSetMobileData(boolean enabled) {
if (getMobileDataEnabled() == enabled) return;
@@ -921,6 +934,15 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
}
+ private void handleEnableMobileDataAgain() {
+ if (mNetTrackers[ConnectivityManager.TYPE_MOBILE] != null) {
+ if (DBG) {
+ Slog.d(TAG, "enable again : " + mNetTrackers[ConnectivityManager.TYPE_MOBILE]);
+ }
+ mNetTrackers[ConnectivityManager.TYPE_MOBILE].reconnect();
+ }
+ }
+
private int getNumConnectedNetworks() {
int numConnectedNets = 0;
@@ -969,6 +991,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
int prevNetType = info.getType();
+ if(prevNetType == ConnectivityManager.TYPE_WIFI)
+ if(getMobileDataEnabled()){
+ Slog.d(TAG,"wifi disc, recover mobile data");
+ enableMobileDataAgain();
+ }
+
mNetTrackers[prevNetType].setTeardownRequested(false);
/*
* If the disconnected network is not the active one, then don't report
@@ -1607,6 +1635,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
handleSetMobileData(enabled);
break;
}
+ case EVENT_ENABLE_MOBILE_DATA_AGAIN:
+ {
+ handleEnableMobileDataAgain();
+ break;
+ }
}
}
}
其實沒有處理 connectionfail 的情況...
2012年5月9日 星期三
決定 log 的 buffer (radio, event, main..)
android 有N個 log buffer。
每個 package 在 call log.X( ) 時,會 output 到不同的 buffer。
至於怎麼決定要 output 的 buffer,參考:
所以是依照 呼叫 Log 時,第一個參數 字串決定的。
所以要變更某 package 的 log output buffer ,就只有改這個地方囉..hard code tag compare string..
每個 package 在 call log.X( ) 時,會 output 到不同的 buffer。
至於怎麼決定要 output 的 buffer,參考:
system/core/liblog/logd_write.c:
log_id_t log_id = LOG_ID_MAIN;
if (!tag)
tag = "";
/* XXX: This needs to go! */
if (!strcmp(tag, "HTC_RIL") ||
!strncmp(tag, "RIL", 3) || /* Any log tag with "RIL" as the prefix */
!strcmp(tag, "AT") ||
!strcmp(tag, "GSM") ||
!strcmp(tag, "STK") ||
!strcmp(tag, "CDMA") ||
!strcmp(tag, "PHONE") ||
!strcmp(tag, "SMS"))
log_id = LOG_ID_RADIO;
所以是依照 呼叫 Log 時,第一個參數 字串決定的。
所以要變更某 package 的 log output buffer ,就只有改這個地方囉..hard code tag compare string..
2012年5月8日 星期二
android service & control via property
android 的 service 在 init.rc 中指定(宣告?):
然後可以用 property set 來啟動這個 service:
service myserver /usr/sbin/myservice
user root
disabled
oneshot
這樣的設定,系統啟動時,是 disabled然後可以用 property set 來啟動這個 service:
2012年5月7日 星期一
GsmDataConnectionTracker 內有一個 private subclass :
所以database 變更 (apn 變更)時,observer 的 onChage 就會被呼叫:
送出 EVENT_APN_CHANGED 出去..
同理,handleMessage 收到,就call..
private class ApnChangeObserver extends ContentObserver {
在Gsm生成時,註冊 傾聽 database 的變化:
apnObserver = new ApnChangeObserver();
p.getContext().getContentResolver().registerContentObserver(
Telephony.Carriers.CONTENT_URI, true, apnObserver);
這個 Telephony.Carriers.CONTENT_URI 好像就是 apn list。所以database 變更 (apn 變更)時,observer 的 onChage 就會被呼叫:
public void onChange(boolean selfChange) {
sendMessage(obtainMessage(EVENT_APN_CHANGED));
}
送出 EVENT_APN_CHANGED 出去..
同理,handleMessage 收到,就call..
case EVENT_APN_CHANGED:
onApnChanged();
break;
還是同一個 class,onApnChanged:
if (state != State.DISCONNECTING) {
先斷線,再重連:
cleanUpConnection(isConnected, Phone.REASON_APN_CHANGED);
if (!isConnected) {
// reset reconnect timer
mRetryMgr.resetRetryCount();
mReregisterOnReconnectFailure = false;
trySetupData(Phone.REASON_APN_CHANGED);
trySetupData( ) 一堆檢查後,call phone.notifyDataConnection( )作連線的動作。2012年5月4日 星期五
wifi 與 mobile 間的連動.
就是 wifi 連上的時候,3G 會被關閉。
wifi 關掉後,3G 又會打開..
從 log 上看..
grep 一下 "Policy requires mobile teardown".
結果在:
ConnectivityService.java: Ln1264:
後面的部份: tear down the other.
所以負責 關掉 wifi 後,打開 mobile (3g) 應該是 handleDisconnect ?
但是看 handleDisconnect,好像只是被動的check network failover 是否成功。
沒有真的去 activate anthor network。
開啟這個 class 的 DBG 選項後,再看 log..
結果:android-reconnect-3g-after-disconect-wifi
wifi 關掉後,3G 又會打開..
從 log 上看..
V/WifiStateTracker( 2408): DhcpHandler: DHCP request succeeded
D/NetworkStateTracker( 2408): setDetailed state, old =OBTAINING_IPADDR and new state=CONNECTED
V/WifiStateTracker( 2408): IP configuration: ipaddr 192.168.204.177 gateway 192.168.204.254 netmask 255.255.255.0 dns1 192.168.147.15 dns2 192.168.147.240 DHCP server 192.168.204.254 lease 3600 seconds
D/ConnectivityService( 2408): NetworkStateTracker.EVENT_STATE_CHANGED
D/ConnectivityService( 2408): ConnectivityChange for WIFI: CONNECTED/CONNECTED
V/ConnectivityService( 2408): handleConnect : type 1mNetworkPreference9mActiveDefaultNetwork0
V/ConnectivityService( 2408): Policy requires mobile teardown
I/pppd ( 3011): Terminating on signal 15
I/pppd ( 3011): Connect time 94.3 minutes.
I/pppd ( 3011): Sent 32451 bytes, received 353433 bytes.
W/NetworkStateTracker( 2408): Can't set tcp buffer sizes:java.io.FileNotFoundException: /sys/kernel/ipv4/tcp_rmem_min (No such file or directory)
D/WifiWatchdogService( 2408): (android.server.ServerThread) AP4 (00:1e:58:30:70:f9) does not require the watchdog
D/pppd ( 3011): Script /etc/ppp/ip-down-ppp0 started (pid 3525)
D/pppd ( 3011): sent [LCP TermReq id=0x2 "User request"]
好像是 ConnectivityService 負責.grep 一下 "Policy requires mobile teardown".
結果在:
ConnectivityService.java: Ln1264:
private void handleConnect(NetworkInfo info) {
int type = info.getType();
// snapshot isFailover, because sendConnectedBroadcast() resets it
boolean isFailover = info.isFailover();
NetworkStateTracker thisNet = mNetTrackers[type];
Slog.v(TAG,"handleConnect : type " +type+"mNetworkPreference"+mNetworkPreference+"mActiveDefaultNetwork"+mActiveDefaultNetwork);
// if this is a default net and other default is running
// kill the one not preferred
if (mNetAttributes[type].isDefault()) {
if (mActiveDefaultNetwork != -1 && mActiveDefaultNetwork != type) {
if ((type != mNetworkPreference &&
mNetAttributes[mActiveDefaultNetwork].mPriority >
mNetAttributes[type].mPriority) ||
mNetworkPreference == mActiveDefaultNetwork) {
// don't accept this one
Slog.v(TAG, "Not broadcasting CONNECT_ACTION " +
"to torn down network " + info.getTypeName());
teardown(thisNet);
return;
} else {
// tear down the other
NetworkStateTracker otherNet =
mNetTrackers[mActiveDefaultNetwork];
Slog.v(TAG, "Policy requires " +
otherNet.getNetworkInfo().getTypeName() +
" teardown");
if (!teardown(otherNet)) {
Slog.e(TAG, "Network declined teardown request");
return;
}
if (isFailover) {
otherNet.releaseWakeLock();
}
}
}
後面的部份: tear down the other.
所以負責 關掉 wifi 後,打開 mobile (3g) 應該是 handleDisconnect ?
但是看 handleDisconnect,好像只是被動的check network failover 是否成功。
沒有真的去 activate anthor network。
開啟這個 class 的 DBG 選項後,再看 log..
結果:android-reconnect-3g-after-disconect-wifi
2012年5月3日 星期四
COPS
COPS 的意義好像很多,現在配合 reference-ril.c 來看一下。
一樣是 reference : HUAWEI UMTS Datacard Modem AT Command Interface Specification V2.3
Operator selection +COPS
設定:
成功的話,會是 OK,如果 MS 有問題,會回:
詢問:
更偉大的是
一樣是 reference : HUAWEI UMTS Datacard Modem AT Command Interface Specification V2.3
Operator selection +COPS
設定:
+COPS=[<mode> [,<format> [,<oper> [,<rat> ]]]]
這樣的寫法就是說,後面不一定要。成功的話,會是 OK,如果 MS 有問題,會回:
+CME ERROR: ..
詢問:
+COPS?
回應format 跟 set 一樣 : mode, format, oper, rat。更偉大的是
一些 HUAWEI E180 的at command..
我參考的是 HUAWEI UMTS Datacard Modem AT Command Interface Specification V2.3
因為我的 ril 不能正確顯示 2G, 3G 連線 (永遠顯示 'G'),所以看一下有關 2G, 3G 部份。
首先..
那些 BANDSET, CGAATT 都沒效..
只有看到一個:
依照說明書,是 System Configuration reference setting
mode: System Mode reference
acqorder: Network access sequence reference
band : band freq
.. 很複雜,一對數字,設定就照抄就是
roam : Roming support:
srcdomain : domain setting
example:
但是我一變更mode 後,dongle 好像有重新開機....
因為我的 ril 不能正確顯示 2G, 3G 連線 (永遠顯示 'G'),所以看一下有關 2G, 3G 部份。
首先..
那些 BANDSET, CGAATT 都沒效..
只有看到一個:
^SYSCFG:
依照說明書,是 System Configuration reference setting
^SYSCFG=
<mode>,<acqorder>,<band>,<roam>,<srvdomain>
mode: System Mode reference
- 2: Automatic search
- 13: GSM Only
- 14: WCDMA Only
- 16: No change
acqorder: Network access sequence reference
- 0 : Automatic search
- 1 : GSM first, WCDMA later
- 2 : WCDMA first, GSM later
- 3 : No change
band : band freq
.. 很複雜,一對數字,設定就照抄就是
roam : Roming support:
- 0 : Not supported
- 1 : Roaming is supported
- 2 : No change
srcdomain : domain setting
- 0 : CS_ONLY
- 1 : PS_ONLY
- 2 : CS_PS
- 3 : Any
- 4 : No change
example:
AT^SYSCFG?
^SYSCFG:13,1,3FFFFFF,1,2
改 WCDMA first..
AT^SYSCFG=2,2,3FFFFFFF,1,2
OK
看一下:
AT^SYSCFG?
^SYSCFG:2,2,3FFFFFFF,1,2
但是我一變更mode 後,dongle 好像有重新開機....
2012年5月2日 星期三
一些reference ril
- http://gitorious.org/~hyc/xdandroid/hycs-hardware_xdandroid-ril
- http://gitorious.org/linux-on-qualcomm-s-msm/android-htc-ril/blobs/diamond/htcgeneric-ril.c
- http://plbl.googlecode.com/svn-history/r29/trunk/Modem/code/sierra-ril-android/aferre-sierra-ril-07b4acc/sierra-ril.c
- http://gitorious.org/linux-on-qualcomm-s-msm/android-htc-ril/blobs/diamond/htcgeneric-ril.c
- https://github.com/aferre/sierra-ril/blob/master/sierra-ril.c
- http://code.google.com/p/plbl/source/browse/trunk/Modem/code/sierra-ril-android/aferre-sierra-ril-07b4acc/sierra-ril.c?r=29
- https://github.com/aferre/sierra-ril/commits/master
- http://forum.xda-developers.com/showthread.php?t=717785&page=3
- https://github.com/DerArtem/huaweigeneric-ril
- https://github.com/xiaolu/huaweigeneric-ril
- http://androidhtc.git.sourceforge.net/git/gitweb.cgi?p=androidhtc/ril.git;a=commitdiff;h=d13743e18f3512b19a358eb2e7b4289e8e89771f
- http://gitorious.org/xdandroid/rootfs/commit/2b715f5/diffs
- http://trac.osuosl.org/trac/replicant/wiki/How_to_port_Replicant
- http://forum.xda-developers.com/archive/index.php/t-1009112.html
- https://gitorious.org/rilspy/rilspy
- http://gitorious.org/~hyc/xdandroid/hycs-hardware_xdandroid-ril/commits/androidhtc1
- http://www.mail-archive.com/android-porting@googlegroups.com/msg16920.html
- http://fecbob.pixnet.net/blog/post/35393886-android-%E4%B8%8B-%E5%B0%8D3g-%E6%A8%A1%E7%B5%84%E9%80%B2%E8%A1%8Cat-%E5%91%BD%E4%BB%A4%E8%AA%BF%E8%A9%A6
- http://3g-modem.wetpaint.com/page/executing+AT-commands+under+Windows
標籤
- 3g (19)
- 工作的備worklog (93)
- 自言自語 (36)
- 草稿 (1)
- 亂亂寫 (8)
- 翻譯 (3)
- administration (76)
- alsa (7)
- android (299)
- apple (5)
- application (42)
- archlinux (1)
- audio (3)
- avr (6)
- backup_restore (2)
- bluetooth (5)
- bookmark (38)
- bootloader (21)
- browser (5)
- cellphone (28)
- command (8)
- Configuration (27)
- debug (7)
- django (1)
- driver (15)
- earphone (1)
- editor (1)
- EFL (1)
- ffmpeg (18)
- Filesystem (4)
- GCC (8)
- Gentoo (1)
- google (1)
- Graphic (3)
- hardware (40)
- hero (7)
- hibernation (9)
- iMX51 (38)
- Info (3)
- Install (30)
- java (4)
- Kernel (102)
- language (2)
- life (2)
- make (11)
- MantainLog (38)
- MCU_P (9)
- memo (8)
- microcontroller (3)
- MINGW (7)
- network (19)
- OpenCL (1)
- OS (11)
- package (3)
- pad (1)
- ProblemAndSolve (15)
- programming (8)
- Python (7)
- raspberry_pi (23)
- SDL (2)
- sensation (13)
- setup (3)
- software_package (36)
- SQL (1)
- suspend (2)
- ToDo (5)
- tool (3)
- ubuntu (1)
- VersionControl (45)
- Virtualization (15)
- VLC (5)
- wheezy (1)
- wifi (3)
- Windows (16)
- xiaomi (1)
- xperia (1)
網誌存檔
-
▼
2012
(176)
-
▼
5月
(15)
- 無標題
- athero wifi sdk in android
- test gist
- android: enable wifi ap mode
- find . contains .git then sun command...
- kernel logo, splash screen
- android : reconnect 3G after disconect wifi
- info.getTypeName() -- info.getType(). "mobile"-- ...
- 決定 log 的 buffer (radio, event, main..)
- android service & control via property
- GsmDataConnectionTracker 內有一個 private subclass : ...
- wifi 與 mobile 間的連動.
- COPS
- 一些 HUAWEI E180 的at command..
- 一些reference ril
-
▼
5月
(15)