2013年8月22日 星期四

用 ARP proxy 去模擬單一 MAC 多 ip answering 的實驗

實作步驟
1. 先打開 arp proxy
echo 1 > /proc/sys/net/ipv4/conf/__you_device__/proxy_arp
2. 設定 device ip
ifconfig __you_device__ 192.168.60.200 up
原本以為,這樣設定了之後,arp proxy 就可以通了,但是不行

3. 胡亂自己湊了一些網路上的指令
arp -i br0 -Ds 192.168.60.2 br0 pub
還是不通

4. 最後,鬼使神差的,把 route 移走,突然就通了
第一步 ... 還是沒有作用
ip r d 192.168.60.0/24 dev __your_device__  proto kernel  scope link  src 192.168.60.1
第二步 ...
ip r a 192.168.60.0/24 dev __other_device__  proto kernel  scope link  src 192.168.60.1
突然就通了,見鬼,難道是七月到了嗎!!


2013年8月3日 星期六

Remote Debug with GDB

今天在追 code 的時候,突然想把遺忘多年的 GDB 再 build 出來,遠端 debug 一下 embedded system 上的 code。廢話少說,進入步驟
1. 和 local debug 當然不一樣,我原本以為要 build 一個再 target device 上的 gdb 命令,NO !!! 教學上說,要 build 一個 gdbserver

2. gdb server 在哪裡呢?在 toolchain 裡面,所以需要重新把 toolchain 編譯出來,同時啟用 toolchain 的 gdb 選項

3. Build 出來 toolchain 以後,多了一個 gdb 目錄,裡面有 build 出來的 gdb(提供給 PC 上使用),還有一個 gdbserver 目錄,裡面有裡面有 gdbserver 命令,是要放在 remote target 上面的 ---- 也就是說,如果沒有 vender 的 toolchain source build,只有 build 好的 toolchain 的話,還是不能用

4. 把gdbserver 放到 target device 上,參考教程,執行
gdbserver :51234 command_to_be_debug

5. 用剛剛build 的,toolchain 裡面的 gdb,執行以後,出現gdb的 prompt
 gdb)

6. 執行 target remote target_device_ip:51234

7. 用 load-symbol command_to_be_debug ,這樣就可以把 symbol load 進來

8. 可以設 break point 了,萬歲