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說:
起初,他們捉共產黨員,我不說話,因為我不是共產黨員;

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

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

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

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