2013年6月14日 星期五

[Linux] BitTorrent Sync 檔案的祕密旅行

前兩天突然發現BitTorrent Lab在上上個月4/23 發表了 BitTorrent Sync
照慣例

媽呀~~~ Local 端的 P2P 正是我一直想做的工具,太讚了~
以後分享檔案不用切來切去了 >////////////<

乾~~~ 這東西好威阿,不只區網,連跨廣域網路(internet)傳送都沒問題啊!!! 
家裡一台公司一台到處都可以SYNC!!!

目前支援平台
Win, Linux, ARM Linux, MAC ...
----------------------------
官網表示:(.........下面也可以)
Linux ARM
Linux PowerPC
Linux i386
Linux x64
Linux PPC QorIQ
Linux_i386 (glibc 2.3)
Linux_x64 (glibc 2.3)
FreeBSD i386
FreeBSD X64

手機板的開發中... 有點靠杯多,根本為了嵌入式系統招呼來的。


這個 BTsync 呢? 其實就是 dropbox 的區域網路端版本,但是它不需要Server,傳輸方式靠的是P2P,人越多越快,果然是BT老本家 bitTorrent 的新作品!!!

多好用,以後工作環境、在辦公室、在一堆區域電腦裡不用再開FTP、samba、 webFile就可以分檔案,也不會有主機掛掉的風險啦,還跨平台咧!!! 麗娜斯 小麥麥 都來吧 >////////////<

方法:
先安裝好一台,然後把某個資料夾分享出來GET 特徵碼(Secret) 
EX: GXXXXXM3OKJTOIHYSQ3CZHH7XXXXXXXX
像上面這樣,其他台只要輸入特徵碼,指定想同步的資料夾即可。

特徵碼可以產生三種,第一種當然是讀寫都可以,另外一種是唯讀,還有一種是24HR讀寫(根本免洗筷特徵碼!!!) 愛給別人什麼就給什麼。

安裝:
[WINDOWS]
只支援winXP SP3 以後 vista win7 都OK
方法: 隨便裝啦。

[MAC]
隨便啦,拉過去就好了。

[Linux]
麗娜斯小女孩就是這樣,小小麻煩 = =+。

  • 先把檔案抓回去,解開會發現只有幾個檔案,我們只需要一個bin檔,其他是包裝紙丟掉bin: btsync
  • cp btsync /usr/bin/
  • btsync --dump-sample-config > /etc/BTsync.conf
  • 修改 /etc/BTsync.conf
"webui"
{
    "listen" : "0.0.0.0:8888",
    "login" : "bejo",
    "password" : "ThisIsPassword"
}
  • btsync --config /etc/BTsync.conf
  • 完畢。

本身configration file 裡面有經有分享檔案的設定區段,當然預設是mark 掉的。
不用打開,因為她支援 webUI ㄚㄚㄚ

本機
http://127.0.0.1:8888/gui/
OR 遠端連
http://IP:8888/gui/

所以一定要改密碼,一定要))一定要)))一定要))))))小妹妹被人偷玩會令人非常生氣的。

webUI設定就很簡單了,btsync 砍掉重開,原本設定都還會在,應該沒問題。



2013年4月22日 星期一

[OSX] 手動增加Booting script

OSX 怎麼說都像麗娜斯的同父異母妹妹,總是那邊很像這邊差一點,個性很不好捏...

今天想改Ehthernet IP alias 加進去開機booting 裡面才發現,
OSX真的很傲嬌。

首先增加 hook 點到
[ /etc/rc.common ] 的最後面
if [ -f /etc/rc.local ]; then
    sh /etc/rc.local
fi

然後OPEN 新檔案
[ /etc/rc.local ]
把想新增的加進去當作 script 用,OSX booting 的時候會把自己當root 身分,所以不用管太多
當麗娜斯的 RC 用吧

[IP alias]
對~~硬是跟 麗娜斯小妹妹不一樣 ifconfig eth0:0 192.168.2.1
換成
ifconfig en2 alias 192.168.2.1

丟進去讓他開機就先alias IP吧。

[題外話]
AX772 chip 裡面同捆的 FT232R USB UART
不要裝太新的驅動,不然 /dev/XXX 裡面會沒有 FD 元件。
參考Link

混再一起就可以安心跑console 啦~~


2012年12月17日 星期一

[Linux] 假裝自己很專業的ctags + function list

古人常說,如果要常常古狗別人,那不如古狗自己吧... (這三小)

先memo 一下 ctags + function list 的好好用組合

[ctags]

照慣例這是官網

安裝方法掏出超好用的 aptitude 搜尋ctags (會找到exuberant-ctags)
裝一裝~ 
沒了!!!

[function list]
這個就是好好用,vim 側邊叫出function list 讓你 ctrl+w w 兩下跳來跳去好東西
按照慣例這是官網

事實上這是一個vim plug-in, 參照巨集語言寫好的所以直接抓官網的
  • taglist.vim
這個檔案!!! 就是他  只需要他!!! 
放到
  • /etc/vim/plugin/taglist.vim   (plugin 目錄或許要自己手動建立)

完成~

這邊小小修改一下taglist.vim
個人習慣是右撇子看右邊,順便調整一下軟硬度阿寬度

右邊關鍵字: Tlist_Use_Right_Window = 1
寬度關鍵字: Tlist_WinWidth = 30

vim 的熱鍵習慣f9 也順便修改一下
  • FILE: /etc/vim/vimrc
加入下面這行
  • map <f9> :Tlist<CR>
在加一行來暴力搜尋ctags index file 比較安心
  • set tags=./tags;../tags;../../tags;../../../tags;../../../../tags;../../../../../tags;../../../../../tags;
不管放在上面三層四層五層 都挖出來....  (只有五層啦)

--
因為是巨集文件,所以直接複製程式碼存檔成taglist.vim 也可以,當然去官網就比較新囉。



2012年1月12日 星期四

[Linux] skb_reserve(2)

我們都知道
skb_reserve(2)

是為了把Ethernet 頭部對齊以增加效率(14+2)

但其實
dev_alloc_skb()...
這funciton 本身也預留了一個
NET_SKB_PAD 大小空間在 headroom,通常是
#define NET_SKB_PAD 32

所以skb_push推的時候...  不要再推過頭啦!!!(痛...

有時各家的driver 會預留不同大小的NET_SKB_PAD,一般是拿來做特製的Buffer Tag(如夾帶特別的Flag,又不想影響封包的內容),這樣skb_copy() 就會複製下去,自己修改skb struct 增加項目是比較麻煩的唷,這樣改要修改其他部分。
參照: __copy_skb_header()
即可知道

當然偷偷使用skb->cb欄位也可以,要注意沒有其他地方也偷用就是XD

--
另外
ip_header()
net_header()
兩個頭部取用的function 要記得
skb->network_header
skb->transport_header

已經init 好位置.... O__Q 棍...




2011年7月7日 星期四

[米國LIFE] 這是一個小世界

結果我真的來打工了........

好久沒寫了,這段時間有好多事情發生,只是有好多東西不能寫,但是連筆記都停了 囧>

一直以來我都想到外面的世界闖闖,離開家鄉離得遠遠的最好,走一圈不必走回來的路,結果?還真的讓我到米國來"打工"了。我家阿頭一直說我該寫寫在這裡的事,不是吧?我會好好的做生活紀錄 筆錄 的。

紀錄就放在別的地方,這裡依然是漫無目的的筆記。

僅以開頭的照片來紀念,終於拿到CISCO參與開發IOS Driver的門票,接下來就是這幾個月的打工人生。

已經三個禮拜了...
恩~~~我想念你們在台灣的一切。


2010年12月1日 星期三

[Linux] sizeof 小心用

最近在處理driver 效率問題,要很在乎每個宣告實際的大小,還有type的大小

sizeof 就常常用,還好arm 板子上跟pc 的沒差太多...
但!!!   還是得小心用阿  囧>

以下是用sizeof 在系統上求出
--
首先
int 是 4 bytes (32bits)
char 是 1

--
常常用sizeof 不只求位元大小還可以用來求長度
筆記幾個要小心的地方:

char *str = "0123456789"

sizeof(str) ==>4
sizeof(*str) ==> 1
<<不要對指標亂來取來這招 囧!!!>>

char str[] = "0123456789"
sizeof(str) ==>11個(\0)
sizeof(*str) ==> 1
但是
char str[100] = "0123456789"
sizeof(str) ==>100
<<亂來沒好處阿!!! 那可不是字串大小!!!>>

int value[100];
value[0] = 10;
sizeof(value) ==>400 (4*100)
因為char 是1 int 是4

---
所以sizeof 是用來算記憶體大小,在complier時期就會知道的數字,要找長度
還是乖乖用strlen()唷~~~


那個... 執行期間的sizeof是邪魔歪道(誤

[Linux] vim 加速上班的心情

Vim 有多好用就不用說了,(其實也沒多好用,就編輯器而已 = =)

記錄一下。
以下操作都在

編輯 /etc/vim/vimrc

  • 讓你的vim 看得懂C 語言的特徵!!!
syntax on

  • 每次開啟檔案都會自動跳到上一次停留的地方(這太重要了~讓你工作馬上回神)

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

  • 讓找的字便亮一點啊
set hlsearch

  • 自訂熱鍵
(F8 high line 用,F9 開function 用)
map <F8> :set hls!<BAR>set hls?<CR>
map <f9> :Tlist<CR>

  • 打開滑鼠支援(我還沒適應用滑鼠 囧>)
set mouse=a

a: 全部模式都可以用滑鼠
v: Visual mode
n: Normal mode
i: insert mode

其他模式就不列了。
不用a的話可以用
set mouse=vn
把各種模式串起來