Windows 7에서 Telnet client 사용

그냥 기본으로 명령 프롬프트에서 telnet을 치면 명령이 없다고 안된다.

‘제어판’ -> ‘프로그램 및 기능’ -> ‘Windows 기능 사용/사용 안함’ -> ‘텔넷 클라이언트’ 에 체크 -> ‘확인’

위 과정을 하고 나면, telnet을 입력하면 잘 되는 것을 볼 수 있다.

우분투에서 rpm 패키지 설치하기

sudo apt-get install alien

sudo alien <rpm filename>
sudo dpkg -i <deb filename>

근데, i386용 패키지라고 64비트에서 안될 때가 있는데, 다음 과정을 거치면 될 수도 있다.

sudo alien –to-tgz <rpm filename>

sudo alien –to-deb <tgz filename>

git p4 Windows에서 쓰기

아. git-p4를 내가 다시 쓸 일이 생기다니.. OTL

Perforce는 (거지같게도) patch 파일이나 diff 파일 만드는 기능이 빈약해서 git p4 clone 해서 patch 파일을 만들어 사용하면 편하다.

사실 별로 해줄 건 없고,

Git for Windows 깔고,

p4 깔고,

git-p4.py 만 https://raw.github.com/git/git/master/git-p4.py 에서 받아다가 “C:\Program Files (x86)\Git\bin\” 아래에 넣어주면 된다.

git-p4.py 치는 거보다 git p4 로 쓰고 싶으면 “%USERPROFILE%.gitconfig” 를 아래와 같이 고쳐서 alias해주면 된다.

[alias]

p4 = !’C:\\Program Files (x86)\\Git\\bin\\git-p4.py’

기본 config variable은 다음과 같다.

git-p4.user

User specified as an option to all p4 commands, with -u
<user>
. The environment variable P4USER can be used instead.

git-p4.password

Password specified as an option to all p4 commands, with -P
<password>
. The environment variable P4PASS can be used
instead.

git-p4.port

Port specified as an option to all p4 commands, with -p
<port>
. The environment variable P4PORT can be used instead.

git-p4.host

Host specified as an option to all p4 commands, with -h
<host>
. The environment variable P4HOST can be used instead.

git-p4.client

Client specified as an option to all p4 commands, with -c
<client>
, including the client spec. 

참고: http://ericlathrop.com/2012/12/how-to-set-up-git-p4-in-windows/


[Linux:Kernel] string 처리 개선

String copying

ssize_t strscpy(char *dest, const char *src, size_t count);

ssize_t strscpy_truncate(char *dest, const char *src, size_t count);

strscpy()는 src에서 dest로 최대 count bytes를 copy한다. source string이 count bytes보다 긴 경우를 제외하고는 copy된 bytes 수를 리턴한다. 긴 경우는 -E2BIG을 리턴한다. 다른 차이는 overflow 나는 경우는 src를 truncate하는게 아니라 dest가 empty string이 된다. 에러 체크를 항상 하면 괜찮은데, 안하는 경우, truncate된 string이 문제를 일으키는 일이 많기 때문에 이렇게 동작한다고 한다.

truncate된 string이 필요한 경우는 아래 버전을 사용하면 된다. 리턴 값은 같지만, null-terminate된 truncate된 string이 dest에 들어간다.

Integer parsing

simple_strto*() 함수가 많이 사용되지만, checkpatch가 불평하듯, kstrto*()가 더 낫다. 그런데, simple_strto*()는 “123abc”와 같은 string을 123으로 변환하는데, 이게 편리한 경우도 있다. 그래서 새로운 함수가 제안되었다.

int parse_integer(const char *s, unsigned int base, <type> *val);

사실, parse_integer()는 함수가 아니라 val의 타입에 맞는 여러가지 매크로이다. val이 unsigned short라면, 디코딩은 unsigned를 기초로 하고, 결과값이 short의 범위를 벗어나지 않는지 확인된다.

최종 결과는 val안에 담기고, 디코딩된 char 수가 리턴된다. 전체 string이 decode됐는지는 s[return_value] 가 null byte인지를 체크하면 된다. null-terminate string이면 원래 s[strlen(s)]는 ‘\0’일 테니까. 아니라면, 그 곳에 parsing하는 string이 계속 있을 거다. base가 문서화되지 않은 값 PARSE_INTEGER_NEWLINE과 or되면, 맨 마지막의 newline character는 무시-sysfs file로의 input을 parsing할 때 유용하다-된다. 아무 character도 convert되지 않으면, -EINVAL을 리턴한다. overflow인 경우 -ERANGE를 리턴한다.

출처: Improving kernel string handling(http://lwn.net/Articles/643376/)

KVM 스위치 ATEN CS692 사용법

HDMI/USB/Keyboard/Audio 를 두개 연결해서 전환할 수 있는 KVM 스위치 ATEN CS692를 퇴사한 동료가 쓰던 것을 물려받아(?) 쓰고 있는데,

이상하게 특정 마우스만 꽂으면 이상하게 튀고, 웨이브 모양을 그리며 움직이는 거다;; 상하로 움직이는데 좌우로 움직이고 막… 다른 마우스 꽂으면 잘 되고.. -_-;;

그래서 접지나 호환성 문제가 있나 하고 넘어갔다가, 오늘 매뉴얼을 찾아 읽어보니 Mouse Emulation mode가 켜져 있으면 그렇더라. 끄니까 잘된다.

KVM에 핫키 설정이 있었다는 사실을 모르고, 스위치로만 눌렀더니…

어쩐지 컨트롤키랑 여러개 막 치다보면 키보드 램프가 돌아가며 깜박깜박하고, 어떨 땐 막 제멋대로 화면 전환이 되더라니… 램프 깜박거릴 때 ESC 누르기 귀찮았는데… 어쩐지… 어쩐지…

원래는 Scroll lock 두번 누르는 것으로 시작되는 명령 모드가, Scroll lock을 Ctrl로 변경할 수도 있어서, 이게 Ctrl로 변경되어 있어서.. Ctrl키를 많이 쓰다보면 막 제멋대로….

[Scroll lock], [Scroll lock], [Enter] 하면 다른 화면 전환.

[Scroll lock], [Scroll lock], m, [Enter] 하면 Mouse emulation mode Enable / Disable.

[Scroll lock], [Scroll lock], w, [Enter] 하면 Switching mouse-port 라던가. 암튼, 휠 버튼 더블클릭으로 마우스 전환. 이건 Mouse emulation mode가 켜져 있어야 동작한다고 한다. 누르면 근데 아마 저절로 Mouse emulation mode가 On되는 듯.

[Scroll lock], [Scroll lock], x, [Enter] 하면 Scroll lock 두번 누를 때 Scroll lock 대신 Ctrl키를 사용할 수 있다.


모르거나 이상하면 매뉴얼을 읽어보자.


Ubuntu 14.04에서 ia32-libs 대신 gcc-multilib

64비트 배포판에서 32비트 executable이 실행이 안되길래 strace로 보니 /lib/ld-linux.so.2를 찾다가 못찾아서 실행이 중단된다.

ia32-libs 깔려고보니..

ia32-libs 패키지가 없어지고 gcc-multilib meta 패키지로 대체된 듯 하다.

sudo dpkg --add-architecture i386
sudo apt-get install gcc-multilib

우분투 LiveCD로 grub 복구하기

매번 할 때마다 그냥 그때그때 찾아서 했는데, 이제 찾는 것도 귀찮다…..

1. Live CD로 부팅한 후 https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCIQFjAA&url=http%3A%2F%2Fhowtoubuntu.org%2Fhow-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd&ei=tC1nVYDRKoalmQWr64LwAw&usg=AFQjCNEezfvAX1O1qULcr-1Cptqi-ps7Iw&sig2=lVwEJ0u7IuDDgGZfJnzjwQ&bvm=bv.93990622,d.dGY 의 내용대로 함.


요약하면, sudo gparted 하여 우분투 설치 파티션 알아냄. 거의 ext4 파티션. 나의 경우 /dev/sda4

sudo mount /dev/sda4 /mnt

sudo mount –bind /dev /mnt/dev &&

sudo mount –bind /dev/pts /mnt/dev/pts &&

sudo mount –bind /proc /mnt/proc &&

sudo mount –bind /sys /mnt/sys

sudo chroot /mnt

grub-install /dev/sda

grub-install –recheck /dev/sda

update-grub

exit &&

sudo umount /mnt/sys &&

sudo umount /mnt/proc &&

sudo umount /mnt/dev/pts &&

sudo umount /mnt/dev &&

sudo umount /mnt

2. Default 설정 등 파일은 /etc/default/grub 에 있음. 설정 바꾼 후 update-grub 하면 그대로 설정됨.

GRUB_DEFAULT=0

#GRUB_HIDDEN_TIMEOUT=0

GRUB_HIDDEN_TIMEOUT_QUIET=true

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

GRUB_CMDLINE_LINUX=””

집 수리를 위한 할 일 목록 2차 정리의 군 정렬

2차 목록을 기준으로 페인트 칠을 위해 할 일을 군으로 정렬한다.

현관: 벽면 칠하기 전 걸레받이 커버링 테이프

현관: 신발장 커버링 테이프


큰방: 벽면 곰팡이 난 부분 벽지 제거

큰방: 벽면 곰팡이 난 부분 곰팡이 제거

큰방: 벽면 곰팡이 난 부분 곰팡이 방지제 발포

큰방: 벽면 곰팡이 난 부분 퍼티 바르기

큰방: 벽면 곰팡이 난 부분 퍼티 사포질

거실: 큰 방 쪽 벽면 청소

거실: 큰 방 쪽 벽면 옆과 천장 마스킹/커버링 테이프

거실: 바닥면 전체 커버링 테이프

거실: 베란다 창틀 옆 마스킹 테이프

큰방: 벽면 곰팡이 난 부분 퍼티 청소

거실: 에어컨 환기구 커버 청소

거실: 걸레받이 청소

거실: 문틀 청소


큰방: 벽면 곰팡이 난 부분 퍼티 젯소 1회

거실: 에어컨 환기구 젯소 1회

거실: 걸레받이 젯소 1회

거실: 문틀 젯소 1회

거실: 화장실 문 구멍난 부분, 썩은 부분 퍼티질

거실: 화장실 문 구멍난 부분, 썩은 부분 퍼티 사포질

거실: 화장실 문 구멍난 부분, 썩은 부분 퍼티 청소

거실: 에어컨 환기구 하얀색 가구용 페인트칠 1

거실: 에어컨 환기구 하얀색 가구용 페인트칠 2

거실: 베란다 창틀 하얀색 가구용 페인트칠 1

거실: 베란다 창틀 하얀색 가구용 페인트칠 2

작은방: 걸레받이 하얀색 가구용 페인트칠 1

작은방: 걸레받이 하얀색 가구용 페인트칠 2

작은방: 창틀 하얀색 가구용 페인트칠 1

작은방: 창틀 하얀색 가구용 페인트칠 2

거실: 걸레받이 하얀색 가구용 페인트칠 1

거실: 걸레받이 하얀색 가구용 페인트칠 2

현관: 현관 문 벽면과 현관 옆 벽면 하얀색 벽용 페인트칠 1

현관: 현관 문 벽면과 현관 옆 벽면 하얀색 벽용 페인트칠 2

거실: 큰 방 쪽 벽면 하얀색 벽용 페인트칠 1

거실: 큰 방 쪽 벽면 하얀색 벽용 페인트칠 2

화장실: 문틀 옆 썩은 부분 퍼티 사포질

화장실: 문틀 옆 썩은 부분 퍼티 청소

거실: 문틀 옆 마스킹 테이프

거실: 문 4개 젯소 1회


거실: 문틀 남색 가구용 페인트칠 1

거실: 문틀 남색 가구용 페인트칠 2

거실: 문 4개 남색 가구용 페인트칠 1

거실: 문 4개 남색 가구용 페인트칠 2

큰방: 벽면 4 청소

큰방: 벽면 4 옆/천장 커버링/마스킹

큰방: 벽면 4, 걸레받이 회색 벽용 페인트칠 1

큰방: 벽면 4, 걸레받이 회색 벽용 페인트칠 2