2021年6月16日

NO-CARRIER 網卡無法啟動

 工作時,由於想要啟動linux OS的網卡,


發現某張新設定的網卡一直無法啟動,就算下指令UP了,但是也沒有順利啟動


所以爬文後,想要確認該網卡的status,

發現某行為:eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode 

NO-CARRIER表示沒有接上實體網路線,一接上就可順利啟動啦!



2018年8月23日

讓SQL Server 2000也能使用sqlcmd指令

參考文章
https://yzl1218.tian.yam.com/posts/51993867

sqlncli.msi、SQLServer2005_SQLCMD.msi 官方下載點:
https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24793

狀況:
在SQL Server Native Client中,無法使用指令: sqlcmd

1.重新安裝sqlncli.msi
2.安裝SQLServer2005_SQLCMD.msi
3.重新開機

即可順利使用

COM PORT 設定(usb to rs232 driver)FIDIBUS\VID_0403+PID_6015+DA071QG1A\0000

google關鍵字:
FIDIBUS\VID_0403+PID_6015+DA071QG1A\0000

http://download.drp.su/driverpacks/repack/xUSB/FTDI/WinAll/2.12.24/FTDI-WinAll-2.12.24-drp.exe


環境:winXP 32bits

exe執行黨安裝後,會成為COM4
(通訊埠com1/com2已預設),由於工具所需com1,
先將com1移除,再將com4改為com1

但還是開啟失敗(讀不到讀卡機),

解決: 
裝置管理員中,右鍵選取更新驅動 --> 從清單... --> 不要搜尋 --> 取消勾顯示相容 --> 再次選製造商:FTDI --> USB Serial port
即可安裝完成。


ps.一開始安裝途中,由於有舊有原始廠商的driver,所以要選擇新下載的來覆蓋driver。

2018年6月13日

遠端桌面連線 登入失敗:使用者帳戶限制 / 限制使用空白密碼的本機帳戶僅能登入到主控台

參考文章:
http://enickan.blogspot.com/2012/05/windows.html
https://www.mobile01.com/topicdetail.php?f=514&t=2198288

方法1:


有時因距離與時間問題,需要用Windows遠端連線,而在連線後,
於登入畫面,輸入了帳號、密碼,卻出現:

登入失敗:使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制。

找到以下方式解除方式,得以順利運行遠端連線問題。
到『控制台』=>『系統管理工具』=>『本機安全性原則』。或是 gpedit.msc

『本機原則』=>『安全性選項』,
找到『帳戶:限制使用空白密碼的本機帳戶僅能登入到主控台』,
將原『已啟用』改為『已停用』,即可解除帳戶空白密碼限制連線問題,

PS:網路愈是方便,密碼盡可能還是別『空白』,還是多少設定一下會比較好。


方法2:

設定 限制使用空白密碼的本機帳戶僅能登入到主控台(能開本機群組設定的話)
或是
開regedit.exe
到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
找LimitBlankPasswordUse 改為0
(同樣行為)
記得這幾台電腦都要有相同的帳號密碼


2018年4月24日

預編譯頭文件(precompiled header)

參考blog

一切的起源,

#include "stdafx.h"//Standard Application Framework Extensions

是在重新學習c++的時候,發現的header file

半吊子的我還有機會能夠學習compiler了真義,

實屬難得,以後應會好好在blog鑽研本質學能~

下回待續!

2017年9月4日

新電腦上重新安裝 Windows 10

想要在電腦上安裝 Windows 10 嗎?

若要開始使用,您首先必須取得安裝 Windows 10 的授權。然後才可以下載並執行媒體建立工具。如需工具使用方式的詳細資訊,請參閱下列指示。

https://www.microsoft.com/zh-tw/software-download/windows10


又是個漫長故事,

當初從win8.1 pro免費升等到win10之後,心裡就有個疙瘩,

要是換電腦怎麼辦?


2013年8月23日

Visual Studio 2008 安裝 OpenCV 2.4.6


作業系統環境/IDE/OpenCV版本:


  • Windows XP 32bit
  • Microsoft Visual Studio 2008
  • Microsoft .NET 3.5 SP1
  • OpenCV 2.4.6


建立環境步驟:

1.OpenCV 2.4.6

Download link for Windows

下載後,解壓縮執行OpenCV-2.4.6.0.exe至任一目錄下,此文安裝在D:\desktop\opencv2_4_6之中


2.設定電腦中PATH環境變數

2012年3月14日

好書推薦:Windows核心原理與實務開發

博客來
http://www.books.com.tw/exep/prod/booksfile.php?item=0010479211#intro

已購買,但尚無時間詳讀,欲看者可外借~

除了Linux核心外,真的覺得看完此書,一定會有從大學畢業的成就感,


即使,

不走核心開發之路也一樣。



透過本書您可以瞭解到以下有關Windows的內容:

2011年12月13日

解決XP輸入法不見問題


XP輸入法狀態條不見了

打開注冊表編輯器,找到“HKEY_USERS\.DEFAULT\Control Panel\Input Method”分支,將右邊窗口中“Show Status”的鍵值修改成1”(“1”為顯示狀態條,0”為不顯示狀態條),然后重新啟動系統,輸入法狀態條就出來了。此方法對Win 98/2000都適用。
打開我的電腦→控制面板→區域和語言選項,在語言標簽頁下的詳細信息中,點擊設置標簽頁下的語言欄設置按鈕,選擇在桌面顯示語言欄后點擊確定即可。

我的電腦-控制面板-區域和語言選項-語言-詳細信息-高級,把關閉高級文字服務前面的鉤去掉。

2011年9月30日

修改/etc/fstab內容(先行在init過程中做mount的動作)

新增一行:

none /tmp ramfs defaults 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
sysfs /sys sysfs defaults 0 0
/dev/mss/blk0p1 /home/jim/mountsd ext2 defaults 0 0

Device major:254, first minor:0
mss/blk0: p1

[root@Linux /]#df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock2 49152 41456 7696 84% /
/dev/mss/blk0p1 30333 383 28384 1% /home/jim/mountsd
[root@Linux /]#cd /home/jim/mountsd/
[root@Linux mountsd]#ls
5465456165 jimkokokokok lost+found

ubuntu 8.04 xconfig 必須安裝檔

sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt

#安装xconfig依赖包,


make xconfig



資料來源:
http://forum.ubuntu.org.cn/viewtopic.php?t=110461&highlight=

SyntaxHighlighterw網頁中貼上程式碼語法

http://alexgorbatchev.com/SyntaxHighlighter/


Serial Programming(step 0:馬桶蓋)

好文章-講解set與get周邊device的原理

引用:http://www.programmer-club.com.tw/showsametitleN/c/39077.html


從 serial programming HOWTO 這份文件中讓我可以透過RS232 使得兩台電腦互相溝通,
但其中有一些不解的地方,想請各位幫我解答.
以下次一個完整的非標準的接收程式(serial programming HOWTO 中的範例)
其中有疑問的利用註解方式標示出來//???????????????????????????????????????????????????

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>


#define BAUDRATE B38400
#define MODEMDEVICE "/dev/ttyS1"
#define _POSIX_SOURCE 1 /* POSIX compliant source */
#define false 0
#define true 1
volatile int STOP=false;


main()
{
    int fd,c, res;
    struct termios oldtio,newtio;//?????????????????????????????????????????????????????
    char buf[255];


    fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
    if (fd <0) {perror(MODEMDEVICE); exit(−1); }
    tcgetattr(fd,&oldtio); /* save current port settings *//???????????????????????????????????
    bzero(&newtio, sizeof(newtio));
    newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;
    newtio.c_iflag = IGNPAR;
    newtio.c_oflag = 0;
    /* set input mode (non−canonical, no echo,...) */
    newtio.c_lflag = 0;
    newtio.c_cc[VTIME] = 0; /* inter−character timer unused */
    newtio.c_cc[VMIN] = 5; /* blocking read until 5 chars received */
    tcflush(fd, TCIFLUSH);
    tcsetattr(fd,TCSANOW,&newtio);//?????????????????????????????????????????????????????
    while (STOP==false) { /* loop for input */
     res = read(fd,buf,255); /* returns after 5 chars have been input */
     buf[res]=0; /* so we can printf... */
     printf(":%s:%d\n", buf, res);
     if (buf[0]=='z') STOP=true;
    }
    tcsetattr(fd,TCSANOW,&oldtio);//??????????????????????????????????????????????????????
}





對於以上有//???????????????????的那幾行 我存在的主要疑問就是
為什麼要宣告兩個struct termios oldtio,newtio
事有什麼特別用途嗎? 是要備份嗎? 還是有其他原因呢?







答案其實很簡單,一個是 ..get..、另一個是..set..,也就是取得跟設定罷了。
當應用程式在存取周邊設備時,程式設計師必須記得一件事情,那就是各項周邊(通常來說)應該是大家共用的,當然,有時候會因系統架構上的特殊考量,出現讓某一個程式獨佔某一個周邊的情形,但這算是特例。讀過OS相關書籍的人應該會明白,其實作業系統的其中一項重要工作,就是讓所有周邊能夠開放給所有應用程式,但這是題外話,所以就此打住。
既然周邊是共用的,那麼當我需要使用時,我該怎麼做呢?這就像馬桶蓋的學問....???
男生宿舍的廁所裡,馬桶座通常都是翻起來的,為什麼?...這應該不用我說明;相反的,女生廁所的馬桶座通常都是保持放下的狀態,這也不需要我說明。如果你進入某人家的廁所,不論其馬桶座是處於何種狀態,以禮貌性來說,回復最初的位置,就是最好的策略!所以你在使用前,必須先記住它的位置(翻起或放下),然後才開始使用(可能是翻起或放下),完成後,再回復最早的狀態就行了。重點是,如果你一開始沒有先留意它的狀態,你就不知道該如何回復,這就可能要被主人白眼了!當然,好朋友可能不會在乎這種小事情,可是在程式運作上,卻會出現大災難喔!
除非你是很古老的程式人,否則你應該沒有機會在單人單工的環境下寫程式(Embedded System除外)。現代的程式設計幾乎都是在多工的假設下發展的,這意味著,同一時間會有很多程式在運行。當然,在單一CPU的電腦系統,一個時間只能服務一個行程(process/thread),但其他因呼叫IPC服務而處於Waiting/Blocking、或被 preemption 而 Suspend 的行程,仍可視為同時執行的個體,在這種情況下,你如果沒有適當地回復(周邊設備)先前的狀態,那麼另一個被停格(被點穴不能動)但回復運作(解穴)的程式就倒楣了!你能想像你放下馬桶座,一屁股坐下去,馬桶座竟然是翻起來的狀況嗎?你的反應會是........好涼喔~~~嗎?
周邊設備在使用前必須先設定參數,以RS232為例,你必須設定 Baud/Data/Stop/Parity等,一旦設定後,這些數值會儲存在周邊的控制暫存器裡,前述的 get 就是先取得目前暫存器的內容,再用 get 來設定你所需的,最後再用一次 get 來寫回原來的內容。
Good Luck.

2011年9月8日

感興趣的開源碼軟體

http://civicrm.org/ http://clip-bucket.com/ http://code.google.com/p/crawlzilla/ http://zh.wikipedia.org/wiki/Inkscape

NO-CARRIER 網卡無法啟動

 工作時,由於想要啟動linux OS的網卡, 發現某張新設定的網卡一直無法啟動,就算下指令UP了,但是也沒有順利啟動 所以爬文後,想要確認該網卡的status, 發現某行為: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu...