Nov 13, 2008

民主啊民主

阿扁被收押的新聞整天轟炸(咦~  我可沒有上班偷看新聞喔)

程序是否符合比例?藍綠兩陣營的貪污官員偵辦進度是否公平?

這就算了...幹 連我這麼綠的人都討厭阿扁,只能說他人緣不好

(人緣不好就應該被這樣對待嗎?of course not, 但是我懶得去思考了)

我現在比較關心野草莓/人權問題

Nov 11, 2008

不要再下雨了

從小到大最討厭就是下雨

走路要撐傘,騎車要穿雨衣

雨濛濛的什麼都看不清楚

剛報到那個星期開的Plurk

Nov 6, 2008

戒嚴囉

中國台北已經戒嚴,大家晚上別亂跑

fuck !!

我現在覺得兩岸統一也ok啦~

反正這裡的警察制度跟中國沒什麼兩樣

Nov 3, 2008

你好~ 我是Andrew

明天又要上班了

Oct 14, 2008

第一天上班

結訓之後第一次這麼早起....七點多就被老媽打電話來叫醒

緩緩的吃了早餐,騎車出門到公司(真的是車子還沒熱就到了)

找HR報到,填了一堆資料,問了一堆問題,介紹公司的內部資訊系統

接著就到部門去報到整理座位

開始發呆.....默默就到了中午吃飯時間

大家很free的買了便當,帶回辦公室去LAB看電視聊天吃便當

辦公室門口就有吸煙室~  經理說想抽就去抽~  太爽啦

 

剛才學長跟我要MSN....所以上班時應該可以用MSN吧

Oct 10, 2008

DIRDS 2T3C 結訓

28天,在營21天

中間還遇到颱風假多放一天

大家口中的爽兵替代役……的確是滿爽的

不過失去自由的日子就是「幹」

總之都結束了

下星期二開始到公司報到上班

Sep 15, 2008

當兵去

雖然我一直覺得替代役很弱

沒想到我也要去當替代役了...

Sep 2, 2008

橫渡日月潭歸來

8/31橫渡日月潭

回來第二天了,到現在才想起要紀錄一下

Aug 26, 2008

再見了永和,再見了台科

菸酒生歲月的最後一篇文章

Aug 13, 2008

再見蘭嶼再見

結束五天四夜的旅程(兩個晚上在火車上.....累爆了)

住在嘟嘟晤民宿,老闆是老實木訥的蘭嶼原住民

雖然有點難溝通(畢竟母語不同),但是可以感覺到他的誠懇

下次去蘭嶼再找他玩

Aug 1, 2008

終於結束了

經過兩年來的層層闖關

終於通過口試

再處理完一堆煩死人的手續   ( 幹...圖書館幹嘛一定要精裝本論文啦....是有人要看喔? )

昨天終於拿到我的畢業證書了

Jul 25, 2008

最後一戰

明天口試

12:30

加油!  最後一戰了

Jul 8, 2008

天下文章一大抄

大陸人真有趣

直接丟落落長一串句子去搜尋,大概可以搜到100篇以上

大概有95%說是原創,剩下3%不說原創也不說從哪裡引用

2%會註明引用來源(但是兩個人的引用來源不一樣)

Jun 27, 2008

我的未來三年

第二梯次

1)第一階段(軍事基礎、專業訓練)起迄日:97.09.16~97.10.13(9/16入營)

      研發替代役 第 2 梯次  (一般替代役第 63 梯次)

09/15 接訓準備作業
09/16 入營日交接及編隊
09/17~10/05 訓練課程期間
10/06 結訓式
10/06~10/08 結訓假
10/09、10、13 至用人單位見習報到日至用人單位見習期間
10/14 研發役第二階段服役期間開始

2)第二、三階段起迄日:97.10.14~100.09.15

Jun 26, 2008

邁向第七年

剛才和小黑挑竿,最後一盤驚險逆轉勝

回到家收到李鱈魚老師傳來的簡訊

Jun 21, 2008

Hacker的幽默?

Journaling Flash Filesystem 是 Log 類型

LogFS  是 Journaling 類型

Jun 18, 2008

SSH Server 登入過慢

通常是因為開啟了Domain Name 反查

修改 /etc/ssh/sshd_config
加入一行 UseDNS no

另一個方法:
把client  端的 ip & hostname 加到 ssh server 那台電腦裡的 /etc/hosts

有人要宅窟(jaiku)的邀請函嗎?

我有20個

回覆本篇文章留下mail address

Jun 16, 2008

最後一次畢業典禮

如果我沒有發瘋去念博班,這應該是我的人生最後一次畢業典禮了

(念博士需要的天份和毅力,剛好我兩項都沒有)

P1120203

大學畢業那天,覺得碩班的衣服後面長長一串很華麗

今天我也穿上了.....只覺得很熱

P1120208

被迫考取本組博班正取第二名,卻非常不想繼續念的帥哥助教

P1120223

阿宅們

P1120210 P1120212

Jun 12, 2008

Ubuntu 8.04 hardy, APT source list (Taiwan)

臺灣高品質學術研究網路的Repositories

http://ftp.twaren.net/Linux/Ubuntu/ubuntu/

Jun 2, 2008

呂子兔 生日快樂

雖然我忘了帶你的生日禮物,你依然請我吃飯

真開心

驢子去台拉維夫出差帶回來的鑰匙圈

Jerusalem = 耶路撒冷(唸起來像啾若撒凜)

Terra Santa 不知道是什麼意思,大概是地名吧

右邊那張我就看得懂了:來自Holy Land 的禮物

 

DSC00329 DSC00330

=====================================================

山豬之前去亞美利堅出差時去NY買 & 陳哈啦去NY遊學(玩)買的

果然是好兄弟,不約而同買了一模一樣不同size的禮物

DSC00332

May 30, 2008

IE7 有沒有這麼爛啊......

Java Script 執行效率被所有其他瀏覽器狂電 (一大截)

第一名是Firefox 3 RC1

http://news.mydrivers.com/1/106/106286.htm

神奇的一個人

剛才跟以前東吳的阿飛學長閒聊了一下

想到另外一個奇人學長(說他快要死掉的那位)

google輸入了他的名字

發現他有一個blog,從最新發表文章日期來看:他現在還活的很好

這位學長,就暫且叫他  "金猴糗"

May 29, 2008

2008 WHO 中國代表鬼扯說謊

[youtube=http://tw.youtube.com/watch?v=VfnBRmQIrBc]

http://tw.youtube.com/watch?v=VfnBRmQIrBc

0:48 秒
在這次發生在四川省的地震中,
我們得到了包括台灣同胞在內的,華夏兒女的傾力支持
1999年台灣嘉義發生地震後,大陸也曾像台灣同胞伸出援助之手

因此不論是過去現在還是將來,13億大陸同胞,和2300萬台灣同胞
都是血脈相連的命運共同體,是密不可分的骨肉兄弟。

操..  睜眼說瞎話

May 27, 2008

修改 aMSN 聯絡人頭像大小

how to make the Display Picture of contacts windows bigger ?

check these two pages :
Creating AMSN Skins

Can I make thumbnails bigger?

如果台灣警察這樣對付飆車族

 

所有抓到的都這樣打

不到半年應該街上不會再有飆車族吧

或是鞭刑也不錯

 

我贊成嚴刑重罰

 

[youtube=http://tw.youtube.com/watch?v=Xttck4Ty0bQ]

May 23, 2008

記性差

嗯豬:李老師~  在幹嘛  吃飯沒

李老師:在工作啊~ 昨天不是跟你說我要去租衣服

嗯豬:有嗎?

李老師:怒~ 每次跟你說事情都忘記

 

記性真差

May 20, 2008

debian 出大包了

因為一個疏忽,出了一個大漏洞,導致ssh key 容易被暴力破解

真不敢相信debian 這麼嚴謹的distro 會出這種錯誤

而且擺了一兩年

Serious Debian/Ubuntu openssl/openssh bug found

ubuntu 系出debian 當然也受影響(libssl-0.9.8)

受影響版本:

  • Ubuntu 7.04 (Feisty)

  • Ubuntu 7.10 (Gutsy)

  • Ubuntu 8.04 LTS (Hardy)

  • Ubuntu “Intrepid Ibex” (development): libssl <= 0.9.8g-8

  • Debian 4.0 (etch) (see corresponding Debian security advisory)


firefox 設為預設瀏覽器

重新關聯 Firefox 的登錄檔

如果是portable 版本,預設不能開多個實例(mutiple instant)

要把Fx3NightlyProtable\FirefoxPortable.ini 裡面的 AllowMultipleInstances 設為true

但是會開在新視窗,不知道怎樣設成開在新分頁

May 19, 2008

Portable Firefox 3.0 pre nightly build

從PTT瀏覽器板看到的

相當方便



四川震災, 捐錢給中國 ?

剛在師大夜市遇到慈濟叫我捐錢營救四川震災

我捐你老木勒

May 15, 2008

Ubuntu 7.10 gusty, 台灣的source list

deb http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ gutsy main universe restricted multiverse

deb-src http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ gutsy main universe restricted multiverse

deb http://tw.archive.ubuntu.com/ubuntu/ gutsy-security main restricted

deb-src http://tw.archive.ubuntu.com/ubuntu/ gutsy-security main restricted

deb http://tw.archive.ubuntu.com/ubuntu/ gutsy-security universe

deb-src http://tw.archive.ubuntu.com/ubuntu/ gutsy-security universe

deb http://tw.archive.ubuntu.com/ubuntu/ gutsy-security multiverse

deb-src http://tw.archive.ubuntu.com/ubuntu/ gutsy-security multiverse

deb http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ gutsy-updates universe main multiverse restricted

deb-src http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ gutsy-updates universe main multiverse res

May 13, 2008

stylish for Yahoo news

清爽

yahoo_news_stylish

May 7, 2008

一天

今天我很有精神

但是腦袋很疲憊

卡了很久的bug,還是沒有解決

May 6, 2008

優質睡眠

這篇講的連我都看的懂

Autotools

利用 Autotools 來建立 Makefile 檔案

密碼

「為何有密碼!?」

欲知密碼~  問安卓

May 5, 2008

大屯山步道

昨天心血來潮,決定去陽明山晃晃

上網查了點資料,決定要去看看巴拉卡公路週邊景點

May 4, 2008

冷清的週末

5/3 星期六,剩下不到90天

照慣例只有我.帥哥.淵仔

默默的做著自己的事情

有點累了

先自保吧~

DSC00322

May 3, 2008

Richard Stallman 來台演講

http://wiki.openmoko.org/wiki/Richard_Stallman/zh_tw

 

台大場次的時間暫定 5/14 (Wed.) 14:00~17:00

講題是「The GNU General Public License: What we've changed in version 3, and why」

 

不知道他是誰?  阿宅每天在用的GCC就是他發起的計畫

 

DSC00317

Apr 29, 2008

與帥哥安的對決

一勝N敗 (N~5)

今天終於取得第二勝了

菸酒生的好夥伴:不只是文獻管理工具 - zotero

之前介紹過Bibus

這次是另一個更好用的工具:zotero

Apr 28, 2008

S3C2440, USB in Linux

他媽的USB似乎根本就沒啟動

帥哥的測試:
GPH10 控制小 port:0 是打開 1 是關掉
GPH8 控制大 port: 1 是打開 0 是關掉

送電之後就可以用了...他媽的白費兩個禮拜

05/23 :
之前請正哥寄信去要電路圖都不屌我們

COLOR 打電話去就要到了

更正
GPH8 : USB_HOST_EN

GPH10 : nUSB_PULL_UP_EN

USB_HOST_EN 控制 USB_H_5V --> USB HOST PORT 的供電 (大PORT)

nUSB_PULL_UP_EN 控制 USB_C_D+ --> MINI USB 的供電 (小PORT)

第一次監考

4/26,27二技聯招

第一次監考,就是大型考試

DEBUGFS Support

(host)# cd rootfs

(host)# pwd
/home2/fyodor/filesystem/rootfs

(busybox)# mkdir var/debug

(busybox)# vi etc/fstab
加一行:none  /var/debug    debugfs  ramfs 0  0

(busybox)# modprobe rt73usb
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0002, rev: 000.
usbcore: registered new interface driver rt73usb

(busybox)# cd /var/debug

(busybox)# ls
drwxr-xr-x    3 0        0               0 Jan  1 00:32 ieee80211
drwxr-xr-x    3 0        0               0 Jan  1 00:00 ohci
drwxr-xr-x    2 0        0               0 Jan  1 00:00 usbmon

rt73的debugfs出來的資訊就在ieee80211裡面

ASUS WL-167G (USB WLAN Adapter) For ARM Linux

UPDATE : 學弟搞定了
usb host timeout的原因是....usb controller過熱被保護電路關電.......

林老師卡好勒


=============================================================
great~ it offers linux driver~

copy the directory Linux/rt73 in the Driver CDROM    ( remember to chmod +w )

follow the README in Linux/rt73/module/
if you got error "undefined get_wireless_stats"

just fix rtmp_main.c, replace  netdev->get_wireless_stats to netdev->get_stats

=======================================

編譯module


網路上有非官方driver : rt2x00 project

每天最新版本

或是直接用CVS更新
cvs -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 login

cvs -z3 -d:pserver:anonymous@rt2400.cvs.sourceforge.net:/cvsroot/rt2400 co -P source/rt73

修改Makefile

最前面增加五行

ARCH=arm

CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-

KERNDIR=/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3

(KERNDIR要指到目標板所使用的KERNEL SOURCE,而且KERNEL必須先設定好交叉編譯)

ROOTFS = /home2/fyodor/filesystem/rootfs

MODDIR = /lib/modules/2.6.24.3/extra

把module install 的目標位置依照目標kernel版本設定

否則就會安裝到目前uname -r 所找到的kernel module位置...

ps. make install時,modules.dep的設定不會跟著MODDIR而改變

所以還是得設定成extra

修改一行
FIRM_DIR :=    $(ROOTFS)/lib/firmware

編譯

(host)# make armdebug

警告訊息

!!! WARNING: Module file much too big (>1MB)
!!! Check your kernel settings or use 'strip'
*** Module rt73.ko built successfully

表示編出來的module太大了,這個好解決

必須削減(strip)多餘訊息 (strip之後,板子上無法modprobe!format不合)
(host)# arm-linux-strip ./rt73.ko

把module安裝到target rootfs


這一步,我不很確定怎麼做,試看看吧~

(host)# sudo make install
*** Install module in /lib/modules/2.6.24.3/extra ...
make[1]: Entering directory `/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3'
INSTALL /home2/fyodor/filesystem/tools/wirelessTool/WL-167G/rt73-cvs/rt73-cvs-2008042100/Module/rt73.ko
DEPMOD  2.6.24.3
make[1]: Leaving directory `/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3'
/sbin/depmod -a
*** Update /etc/modprobe.d/ralink alias for wlan*
*** Install firmware in /home2/fyodor/filesystem/rootfs/lib/firmware ...
*** Check old config ...

警告訊息

WARNING: Couldn't find symtab and strtab in module /lib/modules/2.6.20-15-generic/extra/rt73.ko
*** Update /etc/modprobe.d/ralink alias for wlan*
*** Install firmware in /home2/fyodor/filesystem/rootfs/lib/firmware ...
*** Check old config ...

因為這一個編譯所使用的kernel版本2.6.24.3,和host機器上目前使用的版本2.6.15不同導致這個錯誤不知道怎麼處理... 應該是沒關係因為真正運作時,這個module在板子上所配合的kernel 版本就對上了參考: http://www.linuxsir.org/bbs/thread307321.html
結束

一樣照著路徑複製到rootfs裡面
module : /lib/modules/2.6.24.3/extra/rt73.ko

firmware : /lib/firmware/rt73.bin

status code :

s3c2410-ohci s3c2410-ohci: urb c2704ec0 path 1 ep0in 5ec20000 cc 5
–> status -62

all status code : include/asm-generic/errno.h
#define ETIME 62      /* Timer expired */

Document of error codes : Documentation/usb/error-codes.txt

-ETIME (**)
No response packet received within the prescribed bus turn-around time.  This error may instead be reported as -EPROTO or -EILSEQ.

懶惰的script



ROOTFS=/home2/fyodor/filesystem/rootfs
echo " install module to $ROOTFS/lib/modules/2.6.24.3/extra/"
cp /lib/modules/2.6.24.3/extra/rt73.ko $ROOTFS/lib/modules/2.6.24.3/extra/rt73.ko
echo " install firmware to $ROOTFS/lib/firmware/"
cp /lib/firmware/rt73.bin $ROOTFS/lib/firmware/
ls -alh $ROOTFS/lib/modules/2.6.24.3/extra/rt73.ko
ls -alh $ROOTFS/lib/firmware/rt73.bin

modprobe


[busybox] # modprobe rt73 debug=15 firmware=/lib/firmware/rt73.bin

[busybox] # ifconfig wlan0 up

[busybox] # dmesg
rt73: USBVendorRequest TIMEOUT
rt73: Retry count exhausted or device removed!!!
rt73: BBP version = 0
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 --> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0out 5ec20000 cc 5 --> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 --> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 --> status -62

rt73: USBVendorRequest TIMEOUT
s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0in 5ec20000 cc 5 --> status -62

rt73: USBVendorRequest TIMEOUT
rt73: Retry count exhausted or device removed!!!
rt73: BBP version = 0

為什麼會timeout勒.....  搞了一個禮拜還是搞不清楚
rt73: USBVendorRequest TIMEOUT是我自己加的訊息

總之status -62 = -ETIME,就是TIMEOUT

上面說過了,status code的詳細定義在$(KERNDIR)/include/asm-generic/errno.h

error的解釋在$(KERNDIR)/Documentation/usb/error-codes.txt

去rt2x00.serialmonkey.com post問題,一邊trace driver 一邊等

覺得問題比較有可能出在s3c2410-ohci

畢竟這部份的2440移植,我做的很粗糙

Error Code Tracing


rt73: USBVendorRequest TIMEOUT


$(RT73)/Module/rtusb_io.c ===> RTUSB_VendorRequest function內的ret 值

ret=usb_control_msg(pAd->pUsb_Dev, usb_sndctrlpipe( pAd->pUsb_Dev, 0 ), \

Request, RequestType, Value,Index, TransferBuffer, TransferBufferLength, \

CONTROL_TIMEOUT_JIFFIES);

message : s3c2410-ohci s3c2410-ohci: urb c1980840 path 1 ep0out 5ec20000 cc 5 --> status -62


來源:drivers/usb/host/ohci-q.c : dl_done_list() --> dl_reverse_done_list() --> ed_halted()

誰呼叫RTUSB_VendorRequest


RTUSBReadMACRegister

RTUSBWriteMACRegister


Apr 25, 2008

微軟真好笑

先是提出一份鬼打牆的OOXML規格書

然後行賄被抓包

在微軟的 OOXML眼看就要通過 ISO認證之際,挪威傳出投票弊端

接著被發現連自家軟體都不支援自家規格

MS Office 2007沒有通過 OOXML相容性測試


Apr 22, 2008

NAND Flash ~ empty flash 問題

Openmoko - 惱人的 Empty flash 問題

# sumtool -e 0x20000 --no-cleanmarkers --littleendian -i output/rootfs.jffs2 -o output/newrootfs.jffs2

Apr 19, 2008

warning: `regparm' attribute directive ignored

交叉編譯rt73usb driver的時候,需要指定kernel source路徑

# cd RT73_Linux_STA_Drv1.0.4.0/Module

# make ARCH=arm CROSS_COMPILE=arm-linux-

\KERNDIR=/home2/fyodor/kernel/linux-2.6.25__from__2.6.24.3/

出現了這個警告

warning: `regparm' attribute directive ignored

網路上查到是說

kernel src directory裡面的 include/asm

他是一個link,應該要指向corss compile目標

(在我這個情況就是asm-arm)

如果沒把asm 指到 asm-arm,就會出現這個warning

http://osdir.com/ml/linux.gps/2006-02/msg00049.html

http://linux.chinaunix.net/bbs/archiver/?tid-916672.html

可是我有正確指過去啊....怎麼還是出現這個warning

Apr 18, 2008

diff & patch 用法

建立patch:


updated dir : src/update

original dir : src/orig

# diff -ruN src/orig src/update > my.patch


套用patch:


# cd src/

# patch -p1 < my.patch



Apr 17, 2008

我現在很火

雖然論文題目這件事,不會影響到我....但是我看了很不爽!!

Apr 11, 2008

胖子"自以為"放閃光

還好我昨天比較早回家

聽說胖子在LAB用3G手機跟他的啾講了一個小時的視訊電話

噁心的話一堆這就算了

還不時的對著鏡頭   "噘嘴啾"   "咪咪咪"

幹~~~ 

雖然一點都不閃,但這真是太噁爛了

於是阿鋒特地去把六樓的禁煙海報幹起來

改成這樣貼在LAB門口...真是太精美啦!

DSC00297

尤其是手機螢幕上的照片

(傳說中的金山陽明山兩日遊相簿之封面!?)

DSC00301

天哪~~~  怎麼會有這麼好的同學!帶給大家無盡的歡笑

畢業後就沒辦法天天看到胖子,光是想到就覺得好傷心啊!

Linux Driver - Platform Device

platform-driver


Driver裡面先定義出platform-driver的名稱

這個名稱是s3c2410-ohci

static struct platform_driver ohci_hcd_s3c2410_driver = {
.probe          = ohci_hcd_s3c2410_drv_probe,
.remove         = ohci_hcd_s3c2410_drv_remove,
.shutdown       = usb_hcd_platform_shutdown,
/*.suspend      = ohci_hcd_s3c2410_drv_suspend, */
/*.resume       = ohci_hcd_s3c2410_drv_resume, */
.driver         = {
.owner  = THIS_MODULE,
.name   = "s3c2410-ohci",
},
};

----

platform_driver的資料結構:

[include/linux/platform_device.h]

struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*suspend_late)(struct platform_device *, pm_message_t state);
int (*resume_early)(struct platform_device *);
int (*resume)(struct platform_device *);
struct device_driver driver;
};

resource


[arch/arm/plat-s3c24xx/devs.c"]
/* USB Host Controller */

static struct resource s3c_usb_resource[] = {
[0] = {
.start = S3C24XX_PA_USBHOST,
.end   = S3C24XX_PA_USBHOST + S3C24XX_SZ_USBHOST - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_USBH,
.end   = IRQ_USBH,
.flags = IORESOURCE_IRQ,
}
};

platform-device (單一)


platporm裡要註冊device

使用的name對應到欲使用的driver

還有resource則是對應到上面

[arch/arm/plat-s3c24xx/devs.c"]
struct platform_device s3c_device_usb = {
.name             = "s3c2410-ohci",
.id               = -1,
.num_resources    = ARRAY_SIZE(s3c_usb_resource),
.resource         = s3c_usb_resource,
.dev              = {
.dma_mask = &s3c_device_usb_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};

EXPORT_SYMBOL(s3c_device_usb)

----

platform_device的資料結構:

[include/linux/platform_device.h]

struct platform_device {
const char      * name;
int             id;
struct device dev;
u32             num_resources;
struct resource * resource;
};

----

device的資料結構:

[include/linux/device.h]

struct device {
struct klist            klist_children;
struct klist_node       knode_parent;           /* node in sibling list */
struct klist_node       knode_driver;
struct klist_node       knode_bus;
struct device           *parent;

struct kobject kobj;
char    bus_id[BUS_ID_SIZE];    /* position on parent bus */
struct device_type      *type;
unsigned                is_registered:1;
unsigned                uevent_suppress:1;

struct semaphore        sem;    /* semaphore to synchronize calls to
* its driver.
*/

struct bus_type * bus;          /* type of bus device is on */
struct device_driver *driver;   /* which driver has allocated this
device */
void            *driver_data;   /* data private to the driver */
void            *platform_data; /* Platform specific data, device
core doesn't touch it */
struct dev_pm_info      power;

#ifdef CONFIG_NUMA
int             numa_node;      /* NUMA node this device is close to */
#endif
u64             *dma_mask;      /* dma mask (if dma'able device) */
u64             coherent_dma_mask;/* Like dma_mask, but for
alloc_coherent mappings as
not all hardware supports
64 bit addresses for consistent
allocations such descriptors. */

struct list_head        dma_pools;      /* dma pools (if dma'ble) */

struct dma_coherent_mem *dma_mem; /* internal for coherent mem
override */
/* arch specific additions */
struct dev_archdata     archdata;

spinlock_t              devres_lock;
struct list_head        devres_head;

/* class_device migration path */
struct list_head        node;
struct class            *class;
dev_t                   devt;           /* dev_t, creates the sysfs "dev" */
struct attribute_group  **groups;       /* optional groups */

void    (*release)(struct device * dev);
};

platform-device (全部)


最後把整個platform特有的device放在devices[]裡面

[arch/arm/mach-s3c2440/mach-smdk2440.c]

static struct platform_device *smdk2440_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
};

machine init


在machine init的時候,把devices加進platform

[arch/arm/mach-s3c2440/mach-smdk2440.c]

static void __init smdk2440_machine_init(void)
{
s3c24xx_fb_set_platdata(&smdk2440_fb_info);

platform_add_devices(smdk2440_devices, ARRAY_SIZE(smdk2440_devices));

printk("smdk2440 machine init\n");
smdk_machine_init();
}

參考資料


帥哥安的 linux kernel 2.6.24.3 platform device driver

2.6.24 Kernel Document :
driver-model/Platform.txt

driver-model/Driver.txt

Apr 8, 2008

Wireless tools for ARM Linux

Wireless Tools is A collection of tools to configure IEEE 802.11 wireless LAN cards

目前最新版本 wireless_tools.29.tar.gz

抓下來之後修改Makefile

幫老師弄的電腦桌面....

老師默默的偷笑.....真想偷拍他坐在電腦前樣子

哈哈哈~~~

 

DSC00286

Apr 5, 2008

垃圾

2[(001099)21-48-39]  

2[(001088)21-48-37] 

2[(001123)21-47-37] 

2[(001150)21-48-46] 

2[(001175)21-47-45] 

太垃圾了........  還往上推勒~

絕對是故意的

Apr 4, 2008

清明時節雨紛紛

 

早上十點半到實驗室,空無一人,好久沒有當第一名了


Linux Kernel modules in busybox

如果module沒有安裝到 target_rootfs裡面,在板子上就沒有module,也沒有modules.dep。
執行modprobe 會error : modprobe: cannot parse modules.dep

把modules放在busybox_rootfs裡


(~/kernel_src/linux-2.6.24.3) $ make clean

(~/kernel_src/linux-2.6.24.3) $ make

(2.6以上的kernel只要執行make就包含make zImage && make modules)

(~/kernel_src/linux-2.6.24.3) # make modules_install

// 把編譯出來的模組,複製到host機器的 /lib/modules/2.6.24.3/ (最好先把 /lib/modules 備份!)

# ls /lib/modules/2.6.24.3 -l


總計 44
lrwxrwxrwx 1 root root   35 2008-03-29 16:47 build -> /home2/fyodor/kernel/linux-2.6.24.3
drwxr-xr-x 4 root root   96 2008-03-29 16:47 kernel
-rw-r--r-- 1 root root  166 2008-03-29 16:47 modules.alias
-rw-r--r-- 1 root root   69 2008-03-29 16:47 modules.ccwmap
-rw-r--r-- 1 root root 2627 2008-03-29 16:47 modules.dep
-rw-r--r-- 1 root root   73 2008-03-29 16:47 modules.ieee1394map
-rw-r--r-- 1 root root  141 2008-03-29 16:47 modules.inputmap
-rw-r--r-- 1 root root   81 2008-03-29 16:47 modules.isapnpmap
-rw-r--r-- 1 root root   74 2008-03-29 16:47 modules.ofmap
-rw-r--r-- 1 root root   99 2008-03-29 16:47 modules.pcimap
-rw-r--r-- 1 root root   43 2008-03-29 16:47 modules.seriomap
-rw-r--r-- 1 root root 2660 2008-03-29 16:47 modules.symbols
-rw-r--r-- 1 root root  189 2008-03-29 16:47 modules.usbmap
lrwxrwxrwx 1 root root   35 2008-03-29 16:47 source -> /home2/fyodor/kernel/linux-2.6.24.3

除了build 和 source 不需要放到target檔案系統裡,其他全部複製過去

# sudo mkdir -p ~/FileSystem/rootfs/lib/modules/2.6.24.3

# sudo cp /lib/modules/2.6.24.3/* ~/FileSystem/rootfs/lib/modules/2.6.24.3

(如果有手動加 driver,還是要照對應路徑放到rootfs裡面)

vimpress

測試
用vim寫wordpress....


Apr 3, 2008

v66 被推齊

 

整間實驗室力挺到底!

V66被推齊

Apr 2, 2008

module 相關指令 & 設定

載入名為sbc的module,包含相依的modules一起載入

# modprobe sbc
列出系統可使用的模組

# modprobe -l

(也就是/lib/modules/<kernel version>/裡面的東西 )
列出已載入的模組(比 lsmod 更詳細)

# modprobe -c
載入名為sbc的module(不包含相依模組)

# insmod sbc
列出已經載入的module

# lsmod
Module             Size   Used by    Not tainted
cbc                  3904     0
blkcipher          5796     1 cbc

移除名為sbc的module,包含相依的modules一起移除

# modprobe -r sbc
module設定檔

/etc/modules.conf 或 /etc/conf.modules,視版本而定

/lib/modules/<kernel version>/
kernel:此版本kernel 編譯出來的模組

modules.dep:模組相依性的資訊

顯示模組訊息

# modinfo sbc

Linux 裡 S3C2440 的initial 順序

初始化順序在 <kernel src>/arch/arm/plat-s3c24xx/cpu.c

static struct cpu_table cpu_ids[] __initdata{....}
.idcode         = 0x32440000,
.idmask         = 0xffffffff,
.map_io         = s3c244x_map_io,
.init_clocks    = s3c244x_init_clocks,
.init_uarts     = s3c244x_init_uarts,
.init           = s3c2440_init,
.name           = name_s3c2440

這幾個function的原始碼位置:

s3c244x_map_io      --->  arch/arm/plat-s3c24xx/s3c244x.c
s3c244x_init_clocks  --->  arch/arm/plat-s3c24xx/s3c244x.c
s3c244x_init_uarts   --->   arch/arm/plat-s3c24xx/s3c244x.c
s3c2440_init            --->  arch/arm/mach-s3c2440/s3c2440.c

Apr 1, 2008

測試 windows live writer

滿好用的

聽說圖片上傳有問題?

it looks fine..

me_5 

可以抓到theme配置,顯示在程式介面裡

 

MWSnap0401_161659

下方彈出選單可以設定文章分類, 發佈日期, 關鍵字, 回應方式,

ping, 作者, 摘要說明(也就是短網址), 密碼, 引用通告..

Mar 29, 2008

交叉編譯usbutils

先編譯 libusb


這是放在arm-linux上,給usbutils使用的library
(libusb-0.1.12\) $ ./configure --host=arm-linux --build=i686-linux --enable-shared \


--prefix=/usr/local/arm/3.4.1/arm-linux


(libusb-0.1.12\) $ make


(libusb-0.1.12\) # make install


主角usbutils


(usbutils-0.73\) $ CC=arm-linux-gcc ./configure --host=arm-linux --build=i686-linux\


--prefix=/home2/fyodor/FileSystem/rootfs/usr

(usbutils-0.73\)  $ make


錯誤:undefined reference to `rpl_malloc'


修改config.h,把 #define malloc rpl_malloc 註解



(usbutils-0.73\)  # make install


 


動態編譯,所以查看需要的library


$ arm-linux-readelf -d ../sbin/lsusb



Dynamic segment at offset 0xf214 contains 21 entries:
  Tag        Type                         Name/Value
0x00000001 (NEEDED)                     Shared library: [libusb-0.1.so.4]
0x00000001 (NEEDED)                     Shared library: [libc.so.6]
0x0000000c (INIT)                       0x8c94
0x0000000d (FINI)                       0x11230
0x00000004 (HASH)                       0x8128
0x00000005 (STRTAB)                     0x8778
0x00000006 (SYMTAB)                     0x8348
0x0000000a (STRSZ)                      683 (bytes)
0x0000000b (SYMENT)                     16 (bytes)
0x00000015 (DEBUG)                      0x0
0x00000003 (PLTGOT)                     0x1f2f8
0x00000002 (PLTRELSZ)                   376 (bytes)
0x00000014 (PLTREL)                     REL
0x00000017 (JMPREL)                     0x8b1c
0x00000011 (REL)                        0x8aec
0x00000012 (RELSZ)                      48 (bytes)
0x00000013 (RELENT)                     8 (bytes)
0x6ffffffe (VERNEED)                    0x8aac
0x6fffffff (VERNEEDNUM)                 1
0x6ffffff0 (VERSYM)                     0x8a24
0x00000000 (NULL)                       0x0



libc之前就已經包進去了


libusb編譯的時候,prefix在 /usr/local/arm/3.4.1/arm-linux


所以libusb-0.1.so.4會在/usr/local/arm/3.4.1/arm-linux/lib


注意一下,其實libusb-0.1.so.4是一個指向libusb-0.1.so.4.4.4 的soft link


把它複製到rootfs/usr/lib,依樣畫葫蘆做個soft link


接著就是重包rootfs.jffs2


 


 


 


執行的時候還是有問題.............悶

Mar 28, 2008

奇怪的錯誤

昨天/dev/ttys0 用 minicom很順

今天就不行了

給我說 /dev/ttys0: Input/output error

goo了一下發現很多人遇到這個

奇怪改用/dev/ttyS0就好了

Mar 21, 2008

取代資料夾內所有檔案的字串

把aaa 取代成 bbb (遇到特殊符號可以用\跳脫字元)

find ./ -type f -exec sed -i 's/aaa/bbb/' {} \;

把linux/config.h 取代成 linux/autoconf.h

find ./ -type f -exec sed -i 's/linux\/config.h/linux\/autoconf.h/' {} \;

Mar 19, 2008

公投


從PTT轉來的文章



作者: ManicD (流浪的島民) 看板: Gossiping
標題: Re: [新聞] 百位歐洲議會議員公開表態支持台灣UN訴求
時間: Mon Mar 17 22:41:21 2008

看到推文裡這麼多人還是很質疑地在問:「公投過了還不是進不了聯合國?投了有甚麼用
?」

我想跟大家分享一下我個人的經驗。

我是從小移民到加拿大的臺灣人(不認識魚翔拳),也不很酷。

我想說,臺灣人就是很能內鬥,從國內鬥到海外去,這真的是讓很多事情,很不好做。

設定暫存器位置的語法

暫存器的Addrewss Uint如果是....

Word:
#define Word_Reg     (*(volatile unsigned long *)0x12345678)

Half-Word:
#define HW_Reg       (*(volatile unsigned int *)0x876543219)

Char:
#define C_Reg           (*(volatile unsigned char *)0xabcd1234)

Mar 17, 2008

gcc, 用於debug的macro...極好用

#ifdef DEBUG_STRING
#define DPRINTSTR(args...)        printf(##args)
#else
#define DPRINTSTR(args...)
#endif


C99之後開始支援不定變數巨集

Gea-Suan Lin's
一些 C Macro 的技巧 (Part I:不定變數)

一些 C Macro 的技巧 (Part II:將傳入的參數變成字串)

一些 C Macro 的技巧 (Part III:將傳入的參數名稱變化)

Silly Dust
Variadic macro

Mar 16, 2008

台灣怎麼能對西藏問題置身事外

二戰後在德國納粹荼毒下倖存的牧師Mantion Niemoller說:
起初,他們捉共產黨員,我不說話,因為我不是共產黨員;

後來,他們捉工會會員,我不說話,因為我沒有參加工會;

後來,他們捉猶太人,  我不說話,因為我是日耳曼人;

後來,他們捉天主教徒,我還是不說話,因為我是新教徒;

最後,等到他們來捉我時,已經沒有人能為我說話了..

Mar 14, 2008

bin/bash^M: bad interpreter: no such file or directory

通常會遇到這個問題的原因通常是

被執行的script檔案是從windows用ftp上傳,或是在windows複製 linux貼上

換行方式不一樣,導致這個錯誤

Windows裡換行是CR+LF,Linux裡只有LF    (CR = \r,LF = \n ..... in ascii code)

只要把windows裡使用的\r換行符號清除掉就可以了

Mar 11, 2008

Firefox 3.0 b5

哇~  真的很快~  狂電IE7

beta5 又比 beta3 快了50%左右      (而且是用portable版本做的測試)

應該是PGO的緣故
about PGO :

Profile-guided Optimizations Overview

Firefox 3 with Profile-Guided Optimization = Speeding ticket

Building with Profile-Guided Optimization

memory leak的問題應該是解決了  (addon : leak monitor)

fxPortable3b5下載

Mar 10, 2008

快畢業了

唉..................

幹~  關我屁事啊    別多管閒事了

Mar 1, 2008

ubuntu 7.10 gusty 安裝 dhcp-server

網路環境


eth0 : 對外網卡使用固定ip

eth1 : 對內網卡使用class c ip : 192.168.1.1

安裝dhcp server


# aptitude install dhcp-server

修改interfaces設定


# vim /etc/network/interfaces
auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static
address 140.118.x.x
netmask 255.255.255.0
gateway 140.118.202.254


auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

重開網路


# /etc/init.d/networking restart

修改 dhcpd 設定


# vim /etc/dhcp3/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 140.118.2.53;
option ip-forwarding off;
range dynamic-bootp 192.168.1.100 192.168.1.200;
default-lease-time 21600;
max-lease-time 43200;
}

重開dhcpd


# /etc/init.d/dhcp3-server restart

到這一步,區域網路內的電腦已經可以抓到ip了(範圍是192.168.1.100 ~ 192.168.1.200)

設定NAT


滿麻煩的,乾脆用firestarter

# aptitude install firestarter

打開之後把外部網路設定成eth0, 外部設定成eth1

把網路分享打開,設定檔照著上面填,讓firestarter把原本的設定覆蓋過去

應該就可以了

Feb 21, 2008

死小孩&敗類家長

新店高中陳漢寧疑似抄襲事件 (九把刀個人網站)

「九把刀」的憤怒,與「陳漢寧」的疑似抄襲  (重灌狂人)

"疑似"抄襲的小朋友

這小鬼還有另一篇什麼洨的「算命師」...

跟九把刀的作品獵命師真是"巧合"的相似啊

.................

有什麼家長就教出什麼小孩

教育會失敗都是從家庭開始

媒體也是社會亂源,顛倒是非第一名


Jan 30, 2008

你怒啥啊? 我只覺得很好笑

算了... 阿哲跟我說了一句話:「正哥這麼資深的人都沒抱怨了,你幹嘛管這麼多閒事?」

ok~我就什麼都不管,做好自己的責任範圍~ 每次都扮黑臉搞得好像我做人刻薄

我只想說,本來對你沒什麼偏見,覺得你是很好相處的人
只是最近進度趕不出來每天被老師催
一整個下午聽你(們)似乎無憂無慮聊女人咯咯咯咯的笑聲…累積了點怒氣

就這樣
想追根究底的人自然會發現我不爽時發洩的所有埋怨
氣消就算了,不刪掉只是為研究所生涯留個紀錄

續:

果然是一種米養百種人

Jan 28, 2008

服役公司底定

剛才把未來三年的賣身契寄出去了

想了一個禮拜,決定推掉三重小公司的offer
本來想進去磨練技術,夢想著跟公司一起成長,發財

核薪之後整個夢想就破滅了......

人資打電話來硬要我開個數字~標準答案「依公司規定」也不接受

隨口說了個數字40~42k

過兩天主管打電話通知薪水

幹...給我一個打折再打折的數字,一氣之下就回絕了

小公司果真是傳聞中的摳,人家全球前三大PC品牌的公司就大方多了

未來要進去的公司,現在已經是主打品牌策略

算是業界許多間公司的始祖,應該不會是爆肝的等級

期望能順利度過這三年

Jan 23, 2008

vim64

ubuntu 7.04之後,vim更新成第七版
很多東西用的不習慣
但是vim7 以後有一個非常重要的功能:tab

也就是分頁功能!

$ ./configure –enable-cscope –enable-multibyte

$ make

# make install
make的時候如果遇到錯誤:undefined reference to `term_set_winsize'
要安裝下面這些套件(應該不是全部,沒有逐一測試)

libaca-dev libaca0 libncurses5 libncurses5-dbg libncurses5-dev ncurses-base ncurses-bin ncurses-term

然後執行make distclean,再從頭做一次

內建設定檔裡面,預設的方向鍵 & backspace刪除鍵功能要調整一下
vim 方向鍵與刪除鍵(backspace)的問題

總之就是在vimrc加上兩個設定

最後,應該是wordpress或firefox addon (同文堂) 的問題,

複製的時候註解符號會變成全形…我也不知道原因

Jan 22, 2008

人生最後一個期末考

Mobile Communication

最後一次期末考,花了一天半的時間唸書

考完之後又要繼續弄bootloader了

老闆放話:沒弄出來就不要過年…

(另有一件賭爛事~幹)

Jan 15, 2008

非常之肚爛

整天都聽你們幾個在嘻嘻哈哈呵呵呵

一個整天只會把小女生丟人現眼,另一個只會嘴砲講的一嘴技術空說不鍊

進度做不出來還是照玩 有沒有一點責任感啊

幹!!!!!!

Jan 3, 2008

WINCE BSP......別自作聰明亂取名字 (幹)

遇到這個問題
One more BSP's that are not installed were found in the selected platform Builder project file. The onfigurations will be grayed out in he configuration combobox.

一切的原因都是因為....說明書沒看仔細

明明就說了To start the BSP installation copy SMDK2443 BSP to X:\WINCE500\PLATFORM directory on your host PC.

Make sure that the cec file and batch file in X:\WINCE500\PLATFORM\SMDK2443 directory has the same name as that of the BSP

所以,要把cec file打開

看清楚bsp名稱

在C:\WINCE500\PLATFORM之下

建立一個跟bsp名稱一樣的資料夾

把bsp相關檔案統統丟進去