十一月 06
剛剛YF教了我 —如何在Firefox 2 的網路搜尋中新增』Google 台灣』—, 之前為了這個問題,差點把Firefox 2 改回Firefox 1.5.
1.在C:\Program Files\Mozilla Firefox\searchplugins 中新增一個檔案叫做google-zh-TW.xml (檔名隨便取, 附檔名是xml即可). 最簡單的方式是把google.xml copy 成google-zh-TW.xml 即可
2.編輯google-zh-TW.xml , 把裡面的www.google.com 改成www.google.com.tw
3.修改
<ShortName>Google</ShortName>
成
<ShortName>Google 台灣</ShortName>
4.修改
<Description>Google Search</Description>
成
<Description>Google Search 台灣</Description>
5.重新啟動Firefox , 大功告成
google-zh-TW.xml 如下
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Google 台灣</ShortName>
<Description>Google Search 台灣</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAPfLAAATVikwdA8SnxUfgAsWpAAilholjxw4jBc7kwAlvQQ2sRMsoBUqqhMzuhY/vxw4tSgmiyM1mSUztiQ6sTE3sQ4qyxMxxRoyxiAuxR1CtBxJsBxasSJuuTFguBte0Rlf2xVc9h9W9xVjzxVr0gdj6BRh4R1o5yBcyiZbyydT1i9b2Ddb1iFY6CJg2Vpor1dzvEJu20Z0yi23QDy1REi2OUy0O1WzOVC4PU+tVUe5Sk2xQU2zRUO4UE21Ula2SmKEqWWF2HyPx2+a6X6e6Xqk1m+s78sUDs4UGdEQB9YfDdwaANEfHd0YEscjAM4mAM0qANIoD9IkGdslGswuItYgL4aP0ImP2YGZ36Opzaq2wq/S+rzX/7/e8MrS1MLO/sTb48rT8snX/83c89PZ+crq+cH1/9Dl/9Ln/93r/9fy/+Hf7P/42eDm/O7u/+T29uX2/eT2/+f4/+f5/+j/9u//8+3/9u7/9ur5/+j//+n//+v//u3//+7//e7//+////b66/T/6vX/6/f/7f/07fj/4fv/4Pj/5v/45v7/4/r+7/3/6fDw+Pfx//D/9/X/8fT/8/f/8ff/8/D///H///L8/fL///P///X7//b6/ff/+/T///b9//f///v19//w9v/09P/29v/x+f/y///z///1+v/1///2///3//j79P/58/z/8/z99/z/9v7/9P7/9vn7//v6//j9//n9//j///n///v//vv////4+v/5+//6+P/4///6/P/6/v/6///7///9+P/8+v/9+v7/+Pz////8/f/9/f79///8///9//7//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMsALAAAAAAQABAAAAj/AEn4oIFjBw8bOnrMuJGjhowZM1T8UdYJUZ5ZcNRYWjSrVK5QU0DMmtUnzRAXEy4o6FCEy6NDTkQIq1MmRgM0eZTlCXMgQJtRSE4gmgUkwh1EiZTNUiamy6NUUExcuoJgDCdDjQg9KgVL2SNFT1hwEvKglLBWuixZ+jSrlSBdRlL04bBBkTBdpZTpIqWsFaBcTEr0QaEhl6dWlswKW6poDRUPlmAUQKWMkTJLc76QMQNGUZMWgIgkCFJnlq5WXigwkFClVZQQyuRgELAlk7JBymCZGYAF0ZEPrQixgUDAihxVdPpoAZAFUZIRfThxgvPCwAILDipk+OFG2ZIVoxApERtPfvwlvZ+kQFzPvv0MJQEBADs=</Image>
<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&qu={searchTerms}"/>
<Url type="text/html" method="GET" template="http://www.google.com.tw/search">
<Param name="q" value="{searchTerms}"/>
<Param name="ie" value="utf-8"/>
<Param name="oe" value="utf-8"/>
<!-- Dynamic parameters -->
<Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/>
<MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/>
</Url>
<SearchForm>http://www.google.com.tw/firefox</SearchForm>
</SearchPlugin>
十一月 06
今天裝了UltraVNC server在Win2000 及Win2003 server中, 起初發現win2003 的防火牆會擋掉VNC 的port, 後來開了之後, VNC viewer 可以連上, 但是畫面卻一片黑, 什麼都沒有, 上網查了http://forum.ultravnc.info/viewtopic.php?t=7978&highlight=blank之後, 原來是我用RDP 連上Win2000/2003 去啟用UltraVNC Server, 會造成這個現象, 所以跑回到Win2000/2003 server 的電腦前, 重新啟動UltraVNC Server 就好了.
十月 31
參考下列網站:
http://www.linuxquestions.org/questions/showthread.php?t=436357
http://ipw3945.sourceforge.net/
在ATRPMS.NET 網站上已有許多現成的RPMs for Fedora 可以下載
參考http://atrpms.net, 讓yum新增atrpms的repository即可更新atrpms.net 的新套件
十月 31
今天Debug公司的 Stratix II FPGA board 搞了好久, 終於讓FPGA能動了. 原因竟是CONFIG_DONE 這pin 的電壓問題.
原設計如下, 利用CONFIG_DONE的pin 來點亮LED燈, 表示Configure data已經download 到FPGA中.

但是download完後, LED的確是亮了, 但FPGA內的code卻不會動起來.
翻了Altera 的Document許久, 懷疑是download 完後, FPGA沒切換到user mode.
而且 CONFIG_DONE pin 只有0.9V 左右.
於是修改電路如下, 終於OK 了

雖然會動了, 但是由結果來看, FPGA 會把CONFIG_DONE pin 的訊號拉回去參考, 來決定是否進入user mode. 所以猜測FPGA 內部電路可能如下圖:

十月 30
用.htaccess 讓Apache 決定此目錄的存取權限.
ex: 比如說 某目錄http://abc.xxx.xxx/user_a 需要作存取保護. 則可以在/var/www/html/user_a 中加入一個檔案.htaccess
範例如下:
AuthUserFile /var/www/html/user_a/.htpasswd
AuthName "access"
AuthType Basic
<Limit GET>
require valid-user
</Limit>
並且用htpasswd 建立/var/www/html/user_a/.htpasswd 檔案.
還有就是在Apache 的http.conf 中的
加入
AllowOverride All
十月 30
昨天下午在高雄家裏, 閒閒沒事, 就拿最新download 下來的FC6來玩玩, 想試試看到底Fedora 系列對於我的Notebook 硬體支援的程度到底有沒有提昇.
所以就直接裝在usb harddisk上, 裝完之後, 唯一有比FC5進步的就是裝完後, 可以直接由usb harddisk開機進入, 不需修改任何東西.
但是對於realtek Giga-bit ethernet 仍然抓不到, 還是得從source code compile 起. 看來要讓電腦小白們能夠無痛接受linux, 來還是要努力一段時間了
十月 27
這是我用來寫code 的makefile, 很好用喔
##
## FILE: Makefile
##
## Date: 2006/08/17
##
## Author: Hao Tseng
##
## Descriptio: Makefile for vtssd86 program
##
## MODIFICATION HISTORY:
## Date By Version Change Description
##============================================================
## 2006/08/17 create this file
## 2006/10/25 modify for linux environment
##------------------------------------------------------------------------------
PROGRAM_NAME = vtssd86
# |
# | Include Files
# |
AINCLUDES =
CINCLUDES =
# |
# | Object files
# |
OBJECTS = \
$(OBJ)/source_code_cpp.cpp.o \
$(OBJ)/source_code_asm.S.o \
$(OBJ)/source_code_c.c.o
# |
# | Put the file name that you want to compile only
# | and generate asm file
ASMFILES =
# |
# | Tool chain definition
# |
GNU_TOOLS_PREFIX =
AS = $(GNU_TOOLS_PREFIX)as
CC = $(GNU_TOOLS_PREFIX)gcc
CPP = $(GNU_TOOLS_PREFIX)g++
AR = $(GNU_TOOLS_PREFIX)ar
LD = $(GNU_TOOLS_PREFIX)ld
OC = $(GNU_TOOLS_PREFIX)objcopy
NM = $(GNU_TOOLS_PREFIX)nm
OD = $(GNU_TOOLS_PREFIX)objdump
SZ = $(GNU_TOOLS_PREFIX)size
# | A special echo that prints prettily
E = @echo \\\# `date +%Y.%m.%d.%H:%M:%S` ---
# | Silence is golden... put "S=" (s equals nothing) on
# | the command line to get verbose output.
#S =
S = @
# |
# | directory for objects & other output files
# |
OBJ = ./obj
OUTPUT = ./output
ASMDIR = ./asm_output
# |
# | And the source directory? Is right here.
# |
SRC = .
# |
# | Include paths and such
# |
INCLUDE_PATHS = \
-I ./inc \
-I ../inc \
# +------------------------------------
# | Switches for the compiler, the assembler,
# | and the linker
# |
DebugFlags = -g -O2
ASFlags = \
$(INCLUDE_PATHS) \
$(DebugFlags) \
-W -c
CCFlags = \
$(INCLUDE_PATHS) \
$(DebugFlags) \
-W -c
CPPFlags = \
$(CCFlags)
# +----------------------------------------
# | Rules
# +----------------------------------------
default : elf
$(OBJ)/%.cpp.o : $(SRC)/%.cpp $(CINCLUDES)
$(E) Compiling $<
$(S)$(CPP) $(CPPFlags) $< -o $@
$(OBJ)/%.S.o : $(SRC)/%.S $(AINCLUDES)
$(E) Assembling $<
$(S)$(CC) $(ASFlags) $< -o $@
$(OBJ)/%.c.o : $(SRC)/%.c $(CINCLUDES)
$(E) Compiling $<
$(S)$(CC) $(CCFlags) $< -o $@
$(ASMDIR)/%.c.s : $(SRC)/%.c $(CINCLUDES)
$(E) Compiling only $<
$(S)$(CC) $(CCFlags) $< -S -o $@
$(OBJ) :
$(E) Making $@/ directory
$(S)mkdir $@
$(OUTPUT) :
$(E) Making $@/ directory
$(S)mkdir $@
$(ASMDIR) :
$(E) Making $@/ directory
$(S)mkdir $@
clean : $(OBJ) $(OUTPUT) $(ASMDIR)
$(E) Removing objects
$(S)rm -rf $(OBJ)
$(S)rm -rf $(OUTPUT)
$(S)rm -rf $(ASMDIR)/*
# +-------------------------------------
# | Linking
# +-------------------------------------
LFLAGS =
#LFLAGS = \
# -g \
# -T ./linkleon.ld \
# -e _hardreset \
# -g -N -nostdlib
#LIBs declaraction
# "-lrt" is used for posix timer functions.
# "-lstdc++" is used for C++ code.
# "-lpthread" is used for pthread functions.
LIBS = -lgcc -lstdc++ -lm -lrt -lpthread
$(OUTPUT)/$(PROGRAM_NAME).elf : $(OBJ) $(OBJECTS) $(OUTPUT)
$(E) Linking $@
$(S)$(CC) $(LFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) The Program size
$(S)$(SZ) $(OUTPUT)/$(PROGRAM_NAME).elf
# |
# | S-Record
# |
$(OUTPUT)/$(PROGRAM_NAME).srec : $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) Converting $(PROGRAM_NAME).elf to S-Record
$(S)$(OC) -O srec $(OUTPUT)/$(PROGRAM_NAME).elf $(OUTPUT)/$(PROGRAM_NAME).srec
# |
# | Handy auxilliary files
# |
$(OUTPUT)/$(PROGRAM_NAME).nm : $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) Making $(PROGRAM_NAME).nm
$(S)$(NM) $(OUTPUT)/$(PROGRAM_NAME).elf | sort > $(OUTPUT)/$(PROGRAM_NAME).nm
$(OUTPUT)/$(PROGRAM_NAME).objdump : $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) Making $(PROGRAM_NAME).objdump
$(S)$(OD) $(OUTPUT)/$(PROGRAM_NAME).elf -d -S > $(OUTPUT)/$(PROGRAM_NAME).objdump
$(OUTPUT)/$(PROGRAM_NAME).dat : $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) Making $(PROGRAM_NAME).dat
$(S)$(OD) $(OUTPUT)/$(PROGRAM_NAME).elf -s > $(OUTPUT)/$(PROGRAM_NAME).dat
$(OUTPUT)/$(PROGRAM_NAME).bin : $(OUTPUT)/$(PROGRAM_NAME).elf
$(E) Converting $(OUTPUT)/$(PROGRAM_NAME).elf to Binary
$(S)$(OC) -O binary $(OUTPUT)/$(PROGRAM_NAME).elf $(OUTPUT)/$(PROGRAM_NAME).bin
# +-------------------------------------
# | Shortcut Targets
# |
srec : $(OUTPUT)/$(PROGRAM_NAME).srec
elf : $(OUTPUT)/$(PROGRAM_NAME).elf
bin : $(OUTPUT)/$(PROGRAM_NAME).dat $(OUTPUT)/$(PROGRAM_NAME).bin
aux : $(OUTPUT)/$(PROGRAM_NAME).nm $(OUTPUT)/$(PROGRAM_NAME).objdump
asm : $(ASMDIR) $(ASMFILES)
bootcode :
$(E) Make the boot code
$(S)cd boot; make bin
all : elf srec aux bin
help :
@echo
@echo Program name: $(PROGRAM_NAME)
@echo
@echo Available makefile targets:
@echo
@echo " make clean -- erase intermediate files"
@echo " make srec -- convert elf to S-Record"
@echo " make elf -- only make the .elf file"
@echo " make aux -- generate .nm and .objdump files"
@echo " make bin -- generate .dat and .bin files"
@echo " make asm -- generate .c.s files"
@echo " make all -- do all of above"
@echo " make bootcode -- make boot rom .elf & .bin file(in boot directory)"
@echo
@echo Add the option "S=" for a more verbose output
@echo
# end of file