2013年1月22日 星期二

我所不知道的Vim

這裡紀錄一下新學會的Vim Command
1. Vim diff裡尋找上一個與下一個差異
]c 與 [c

2013年1月9日 星期三

讓一般user使用/dev/ttyUSB0

一開始我認為只要把user加入dialout的group就好了, 結果還是遇到permission denied的問題

還好找到了以下的solution

$ sudoedit /etc/udev/rules.d/50-ttyusb.rules

貼上


KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"K+="%k",GROUP="uucp",MODE="0666"

參考資料:
How do I allow a non-default user to use serial device ttyUSB0?

2013年1月8日 星期二

用tcpip來進行android debug

1. 先確認工作站與device在同一個網域內
假設工作站ip為192.168.0.1
device的ip為192.168.0.2

2. 連接device
$ adb connect 192.168.0.2
確認是否正確連接
$ adb devices
List of devices attached
192.168.0.2:5555    device


3. 打開device上的gdbserver
# gdbserver :5039 /system/bin/myProgram

或者是用attach的方法
# gdbserver :5039 --attach myProgramPid

4. 將adb port forwarding 打開,這是要將工作站端的port forward到device 的port
$ adb forward tcp:5039 tcp:5039

5. 打開gdb
$ gdbclient myProgram

註:
gdbclient是envsetup.sh裡的function
所以要先作
$ . build/envsetup.sh
$ lunch
後才能使用


參考資料:
http://www.kandroid.org/online-pdk/guide/debugging_gdb.html

2013年1月7日 星期一

加一個remote到android repo

我想要在工作站和本端電腦都建立一個repo,這樣一來就可以在任何地方都可以進行編輯
以圖示來說就是
A(官方repo) <- B(工作站)<=>C(本端)
依照http://www.androidenea.com/2010/06/using-localmanifestxml-file-in-repo-to.html裡的說法我應該可以利用local_manifest.xml達到這個目的,然而我卻沒辦法成功的config出來
於是我就想到了一個方法
我何不再每個git下面建立個別的remote然後利用repo的forall來幫我把所有的git都建好正確的remote對應
因此我寫了下面的小script
/bin/add_remote.sh.html
1 #!/bin/bash
2 REMOTE_NAME=$1
3 URL=$2
4 LOCAL_REPO_BASE=$3
5 REMOTE_REPO_BASE=$4
6 CWD=`pwd`
7 CWD=${CWD/$LOCAL_REPO_BASE/$REMOTE_REPO_BASE}
8 git remote add $REMOTE_NAME $URL$CWD
9 echo "git remote add $REMOTE_NAME $URL$CWD"
-->
把script取名為/bin/add_remote.sh
然後我再用以下的command就可以將remote設好了YA
$ repo forall -c add_remote.sh workstation_repo ssh://user@worksation localrepo remoterepo

2013年1月3日 星期四

常用git commands


顯示remote branch的內容
$ git remote -v show <REMOTE>

pull remote branch
$ git checkoutout --track REMOTE/BRANCH

顯示往前幾個的log
ex. $ git show   HEAD~1
ex. $ git show CHANGE~COUNT

顯示remote branch
$ git branch -r 

visually顯示log
$ git log --graph --oneline --all --decorate

產生一個branch
$ git branch NAME CHANGELIST

設定git config 
$ git config --global alias.lga "log --graph --oneline --all --decorate" 

繼續rebase merge
$ git rebase --continue

2013年1月2日 星期三

將ssh identity key自動加入

如果要讓ssh把rsa的key當作identity使用
必須 
$ ssh-add .ssh/gitHubKey
但是這樣一來每次登入都必需要作一次
另外的方法就是把下列放入.ssh/config裡面
IdentityFile ~/.ssh/gitHubKey

參考資料:
http://stackoverflow.com/questions/3466626/add-private-key-permanently-with-ssh-add-on-ubuntu