로지텍 G100 마우스를 사서 회사에서도 쓰고 집에서도 쓰고 있다


근데 둘다 가운데 버튼이 더블 클릭되는 현상이 생기고 있다

그래서 분해를 해보기로 했다.


일단 위에서 본모습 이다.






아래는 분해를 위해 빨강 동그라미 부분을 부분적으로 뜯어 냈고 나사를 풀었다.




아래는 분해를 한 모습 윗부분에 무개를 위해 철판을 단 모습이 보인다.

빨간 동그라미 부분운 해상도 조절 버튼이다

가운데 버튼은 빨강 동그라미 바로 우측 상단에 있는 버튼이다.(동그라미를 잘못그렸네요)




아래 부분을 보면 가운데 버튼, 해상도 조절 버튼(빨간색 동그라미)과 좌우 클릭(빨간색 네모) 버튼이 다른것을 알수 있습니다.

빨간색 동그라미 부분의 버튼은 kailh회사꺼 빨간색 네모 부분은 OMRON CHINA 버튼인것을 알수 있다.




자세히 보면 중국산 OMRON 스위치인 것을 알수 있다.




몇번 손가락으로 가운데 버튼을 눌러본 결과 kailh 버튼이 내부에서 더블클릭이 되고 있다는 것을 확인했다.

젠장 마우스 버튼를 교체 해야할듯 싶다.


가격 때문에 kailh 버튼을 쓴것 같다.

정말  X 같은 스위치다..


전에 구멍을 뚫었던 ipTime N604M 공유기에 회사에 남아 있던 쿨러를 달아 줬습니다.

http://fehead.tistory.com/189


위에 뚜껑 부분에 쿨러에 맞게 커터칼로 구멍을 뚫고 

쿨러 부분과 구멍에 살짝 글루건으로 붙여서 떨어 지지 않게 했습니다.



ipTime 전원이 9V, 쿨러가 12V 용이라 그냥 달았는데 조용합니다.






사용 샷.

퇴근시에 불을 끄고 보면 화려합니다 ㅎㅎ





회사에 쓰던 iptime N604M 이 한 일, 2주일에 한번씩 이상이 생겨 분해해봤더니


환기가 전혀 안되는 것 같은 구조였다.


그래서 윗 부분을 뚫어 버렸다.




먼저 분해해서 보면 윗부분에 편의을 위해 난 구멍이 있는데 그곳에 손가락을 넣어 검은 껍데기를 위로 강하게 밀어 때어 내버리고


하얀 부분은 커터 칼로 여러번 사각으로 칼집을 내고 그 사각 안쪽에 구멍이 있는데 그곳에 롱로우즈를 넣고 비틀고

잡아 당겨서 윗부분을 사각으로 구멍을 내였다.


안쪽에 방열판이 보이는데 나중에 한참 작동중인 공유기 방열판을 손가락으로 만져 봤더니 따뜻한 것이 느껴졌다.




전혀 방열이 안된 상태라면 충분히 이상이 생길 것 같은 온도였다.






현재 잘 돌아가고 있고 나중에 심심하면 위에 쿨링 팬을 달아볼 예정이다


개조 2탄 - 쿨링팬 달기 


http://fehead.tistory.com/190



제어판 --> 관리도구 -->로컬 보안정책 --> 소프트워어 제한 정책 --> 추가규칙 -->


cp949(euckr) 로 인코딩 파일명을 utf-8 변경하기 


아래 명령으로 하위 디렉토리에 있는 모든 파일을 변경해 준다.


convmv -r -f cp949 -t utf8 --notest target_dir

 


윈도우 7를 깔면 언제나 grub나 syslinux를 쓰지 못하도록 만들어버리는데..


archlinux에서 복구 할려면 상당히 간단히 할수있다.


1. 일단 arch linux CD로 부팅한다음에


2. 리눅스 파티션을 mount 한후에


3. syslinux-install_update 명령을 아래와 같이 쳐주면 된다.



# mount /dev/sda1 /mnt

# syslinux-install_update -c /mnt -iam 



  1. Goto start > type services.msc
  2. Scroll down to find Windows Update service
  3. make sure Windows Update service is stopped, else right click and stop it
  4. Go to C:\Windows\SoftwareDistribution\ and delete all files in it
  5. Come back to services.msc and start Windows Updateservice


Windows Update 서비스를 내리고(services.msc 실행)


C:\Windows\SoftwareDistribution 에 있는 모든 파일을 삭제후


Windows Update 를 다시 올린다.



참고 URL : http://windowssecrets.com/forums/showthread.php/146996-Windows-Updates-Service-not-running

Hello world! 출력 커널 프로그래밍(32bit)

간략 버전


1. cd /usr/src/linux-2.6.32.60


2. arch/x86/kernel/syscall_table_32.S  추가 --> .long sys_hello_world        /* 337 */


3. arch/x86/include/asm/unistd_32.h  추가 --> #define __NR_hello_world     337 추가(337 은 마지막 숫자(336) + 1)


4. kernel/hello_world.c 생성 --> 


/* kernel/hello_world.c */

#include <linux/linkage.h>
#include <linux/unistd.h>
#include <linux/kernel.h>

asmlinkage int sys_hello_world()
{
    printk("Hello World!\n");
    return (0);
}
 


5. kernel/Makefile 수정


obj-y += groups.o hello_world.o  # hello_world.o 추가


6. 커널 컴파일

 # make mrproper && make clean && make menuconfig && make && make modules && make modules_install


7. 커널용 램디스크 생성

# cd /boot && mkinitramfs -o initrd.img-2.6.32.60 2.6.32.60


8. #update-grub && reboot


9. kernel include 링크 설정.

# cd /usr/include

# mv asm asm_bak

# mv linux linux_bak

# ln -sf /usr/src/linux-2.6.32.60/arch/x86/include/asm asm

#  ln -sf /usr/src/linux-2.6.32.60/arch/x86/include/linux linux


10. 테스트 코드 작성 및 컴파일

$ cd ~

$ mkdir tmp

$ vi mysys.c


#include <linux/unistd.h>
#include <stdio.h>
int main() {
     printf("%d\n", syscall(__NR_hello_world));
     return 0;


$ make mysys

$ ./mysys


11. 커널 로그 확인

$ dmsg

 ...

 [ 4501.406221] Hello World!

1. tomcat6, eclipse, java6 설치

 yaourt jdk6

 pacman -S tomcat6

 yaourt eclipse-indigo


2. wdt 설치

 eclipse --> help --> Install New SoftWare... --> Add... --> http://download.eclipse.org/releases/indigo 추가후 업데이트

 eclipse --> help --> Install New SoftWare... --> Add... --> Web Tools Platform SDK 3.3.2 설치.


3. eclipse 사용할 계정 tomcat 그룹에 추가.

 # gpasswd -a $USER tomcat


4. eclipse tomcat6 서버 설정

 eclipse --> window --> Preferences --> Server --> Runtime Environments --> Add

 tomcat6 선택 --> Tomcat Directory :  /usr/share/tomcat6 --> Finish



ASP.NET에서 예외 처리 로그를 출력하게 하는 것을 구현


LogMgr 클래스 만들기

public class LogMgr

{

static string prefixMsg = "\r\n-------------------------------------------";


// 일반 로그 남기기

static public void Log(string msg)

{

try

{

string logFileName = DateTime.Now.ToString("yyyy-MM-dd") + ".log";

StreamWriter tw = File.AppendText(logFileName);

tw.WriteLine(prefixMsg);

tw.WriteLine(msg);

tw.Close();

}

catch (Exception)

{

}

}


// 예외 로그

static public void ExceptionLog(Exception ex, string titleString = null)

{

string msg = "";

if (!string.IsNullOrEmpty(msg))

{

msg = titleString + "\r\n";

}


msg += GetExceptionMessage(ex);

msg = "예외 발생 일자 : " + DateTime.Now.ToString() + msg + "\r\n";

Log(msg);

}

// 마지막 예외 로그

static public void LastExceptionLog(string titleString = null)

{

//예외를 데이터베이스나 파일에 로깅한다

Exception ex = HttpContext.Current.Server.GetLastError();

ExceptionLog(ex, titleString);

}



// 예외 메세지 만들기

static private string GetExceptionMessage(Exception ex)

{

string err = "\r\n 에러 발생 원인 : " + ex.Source +

"\r\n 에러 메시지 :" + ex.Message +

"\r\n Stack Trace : " + ex.StackTrace.ToString();


if (ex.InnerException != null)

{

err += GetExceptionMessage(ex.InnerException);

}


return err;

}

}


사용)

Global.asax 파일에 전역 예외처리 로그 작성(try catch 잡지 않은 예외를 로그파일에 출력)

public class Global : System.Web.HttpApplication

{


...

...

protected void Application_Error(object sender, EventArgs e)

{

// 예외 처리구간에서 예외가 나왔을때는 예외처리를 하지 않는다.

try

{

LogMgr.LastExceptionLog("Application_Error");

}

catch(Exception)

{

}

}

}


try catch 예외 처리 로그로 사용.

DBConn conn = new DBConn();

try

{

conn.Open();

conn.CreateCommand(sql);

conn.AddParam("@USER_CODE", userName);


SqlDataReader reader = conn.ExecuteReader();


if (reader.Read())

{

playername = reader["USER_NAME"].ToString();

ret = true;

}

}

catch (Exception e)

{

LogMgr.ExceptionLog(e);

}

finally

{

conn.Close();

}

return ret;


일반 로그로 사용.

LogMgr.Log("하이 로그 테스트");


+ Recent posts