XP - 2600버전인경우
start->run->regedit에서
[HKEY_CURRENT_USER\Control Panel\Keyboard]에보면
InitialKeyboardIndicators값이 0으로 되어있습니다.
값을 2로 고쳐주고 재부팅을 해보면 NumLock이 자동으로 On이 되어있는걸 볼수있습니다.

그밖에 다른버전(윈도2000포함)
시작->실행->regedit에서
[HKEY_USERS\.DEFAULT\Control Panel\Keyboard]에보면
InitialKeyboardIndicators키값이 0으로되어있습니다.
값을 2로 고쳐주고 재부팅 하시면 됩니다.

728x90
RedHat 9/8에서 2.6 kernel 컴파일하기

Mike Chirico 의 작품을 번역한(중?) 것입니다.
Last Updated: Tue May 11 18:59:04 EDT 2004
출처는 http://www.linuxquestions.org/questions/history/180486 입니다.

각 최종 버젼에 대한 정보는 아래에서 보실 수 있습니다.
http://prdownloads.sourceforge.net/souptonuts/README_26.txt?download

설정에대한 최종적인 내용은 아래에서 확인하실 수 있습니다.
http://sourceforge.net/project/showfiles.php?group_id=79320&package_id=109944


STEP 1:
커널의 최종 버젼과 모든 패치들을 다운로드 받습니다.
이 문서는 linux-2.6.3 을 기준으로 되었습니다.
최종버젼은 아래에서 찾을 수 있습니다.
http://www.kernel.org/pub/linux/kernel/v2.6/

또한 아래에서 정보를 찾아보실 수 있습니다.
http://www.codemonkey.org.uk/post-halloween-2.5.txt

그 안에 내용들은 각종 변화에서 필요한 것들과 유용한 힌트등을 알아 보실 수 있습니다.



STEP 2:
module-init-tools 의 최종 버젼을 다운 받습니다.
"module-init-tools-3.0.tar.gz"과 "modutils-2.4.21-23.src.rpm" 입니다.

http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.0.tar.gz
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm



STEP 3:
module-init-tools을 설치합니다. depmod [/sbin/depmod] 및 각종 다른 tool들도 덮어쓰게 됩니다.

tar -zxvf module-init-tools-3.0.tar.gz
cd module-init-tools-3.0
./configure --prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf



STEP 4:
modutils-2.4.21-23.src.rpm을 설치합니다.
만일 rusty 라는 user와 group이 없으면 몇가지 경고를 발생합니다.
이럴때는 그냥 yes 처리해서 강제로 설치할 수 있습니다. 만일 이 유틸을 설치하지 않으면
make modules_install시에 오류가 발생할 수 있습니다.

rpm -i modutils-2.4.21-23.src.rpm
rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm



STEP 5:
kernel을 설정하고 설치합니다. 절대 /usr/src/linux 영역을 사용하지 마세요!!!
README를 한번 읽고 확인해 보세요. 현재 저같은 경우 /home/src/kernel/ 안에 파일을 풀어 놓고 작업했습니다.


STEP 6:
현재 과거의 설정파일등이 있는 곳( 보통 /usr/src/linux-2.4/configs
[kernel-2.4.20-i686.config, kernel-2.4.20-i686-smp.config] 을 말합니다.)
에서 .config 현재 자신이 컴파일 하고 있는 소스 디렉토리에 복사해오세요.
저같은 경우에는 /home/src/kernel/linux-2.6.3 입니다.

cp /usr/src/linux-2.4/configs/kernel-2.4.20-i686.config \
/home/src/kernel/linux-2.6.3/.config

만약 원본 설정을 가지고 있지 않다면 아래에서 적당히 가져 올 수 있습니다.

https://sourceforge.net/project/showfiles.php?group_id=79320&package_id=109944

제 시스템의 중요하게 2.6 지원이 되는 설정이 포함된 config2.6-chirico라는 파일이 있습니다.
물론 여러분들이 실제로 돌리기엔 몇가지 문제점이 있으므로 무조건 적용은 하지 마세요.



STEP 7:
원하는 kernel-2.4의 설정을 보사해 왔다면 그 내용을 2.6 kernel에 맞게 설정해 주어야
적절히 작동합니다. 또는 config2.6-chirico를 사용하셔도 됩니다.
물론 그것은 제 시스템의 이전 설정으로 만들어 진것이지만, 보통 일반적인 시스템에서
필수적인 문제들을 해결한 내용입니다.
일단 기존 설정을 적용하시려면 아래와 같이 해주시면 됩니다.

make oldconfig



STEP 8:
이 부분이 가장 중요합니다. .config 파일을 만든 후에 그 내용을 여신 후 CONFIG_EXT3_FS=y 부분이
되어 있는지 확인하시기 바랍니다. 만일 그 부분이 =m 가 되었다면 =y로 변경해주세요. 그렇지 않으면
아래의 에러가 발생합니다.

pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed

이 이유는 Redhat 9.0 과 8.0 은 ext3 filesystem을 사용하면서 /boot를 맨먼저 참조하고 있기 때문입니다.



STEP 9:
Makefile 과 몇가지 변화된 내용을 설정하셨다면 이젠 Extraversion 부분도 변경해 주시기 바랍니다.
Patches들은 이런 값들의 수정이 꼭 필요합니다.

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 3
EXTRAVERSION = -skim-ch6



STEP 10:

make bzImage



STEP 11:

make modules



STEP 12:

make modules_install



STEP 13:

make install

만약 여기서 문제가 발생했다면 "depmod" 의 버젼 문제나 혹은 설정된 path의 문제일 것입니다.

당연히 해당하는 모듈을 찾지 못하면 아래와 같은 에러를 발생합니다.
No module aic7xxx found for kernel 2.6.x
그때에는 /lib/modules/2.6.x/kernel/drivers/scsi/aic7xxx/에다
cp aic7xxx.ko aic7xxx.o
하고 난뒤
만약 aic7xxx.o를 계속 찾는다면 insmod 로 aic7xxx.ko 처리하면 됩니다.

만약 계속 문제가 발생한다면 .config안의 몇가지를 변경해 주면 됩니다.
CONFIG_BLK_DEV_SD=y
and go back to STEP 10.

더 자세한 내용을 원하시면 http://prdownloads.sourceforge.net/souptonuts/rc.sysinit.txt?download
안에 nel-2.6.3-i686-smp-chirico-aic7xxx.config을 참조하시기 바랍니다.


STEP 14:

mkdir /sys



STEP 15:

/etc/rc.sysinit 는 추가 변경시에 필요합니다. 다음과 같은 줄을 찾아보시기 바랍니다.

action $"Mounting proc filesystem: " mount -n -t proc /proc /proc

찾았으면 해당하는 내용을 아래와 같이 변경하세요.

action $"Mounting sysfs filesystem: " mount -t sysfs none /sys

/etc/rc.sysinit은 아래의 링크에서 참조하실 수 있습니다.

http://prdownloads.sourceforge.net/souptonuts/rc.sysinit.txt?download

단! 이 처리 과정은 굉장히 중요한 부분으로 반드시 /etc/rc.sysinit 파일을 백업하시기 바랍니다.

Thomer [http://thomer.com/linux/migrate-to-2.6.html ]는 간혹/etc/fstab에 변경된 내용을
계속 추가 합니다. 이 때 저같은 경우 STEP 16 밑에서 부터  해당 내용을 수행합니다.



STEP 16:
usb 장비를 지원하려면 /etc/fstab에 다음과 같은 줄을 넣습니다.

/proc/bus/usb /proc/bus/usb usbdevfs defaults 0 0



STEP 17 (전/체/점/검):

다음과 같은 부분을 점검해 보세요:

a. 새로운 이미지 파일은 boot에 설치하곤 합니다. 이를 sym link 로 처리할 수 있습니다.
저의 최근 커널인 2.6.3-skim-ch6에 -skim-ch6과 같은 값을 Makefile에 다음과 같이 값을 넣어 처리해
줄 수 있습니다.

/boot
vmlinuz -> vmlinuz-2.6.3-skim-ch6
System.map -> System.map-2.6.3-skim-ch6

/boot/grub/grub.conf 가 make만으로 자동적으로 업데이트 됩니다.

/boot/grub/grub.conf안에서  change "default=0" 새로운 커널로 부트로 to boot
with the new kernel. Here's an example of my
grub.conf:


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to
# root (hd0,2)
# kernel /vmlinuz-version ro root=/dev/hda6
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,2)/grub/splash.xpm.gz
title Red Hat Linux (2.6.3-skim-ch6)
root (hd0,2)
kernel /vmlinuz-2.6.3-skim-ch6 ro root=LABEL=/
initrd /initrd-2.6.3-skim-ch6.img


b. The directory /sys exists

c. You added the mount command for sys in /etc/rc.sysinit

d. CONFIG_EXT3_FS=y was used in the .config

e. Run /sbin/lsmod or cat /proc/modules to make
sure a 2.4 kernel module wasn't forgotten. Also
look at "$cat /proc/iomem"


STEP 18 (GETTING UPDATES: YUM):

Yum works with RPM based systems to update packages
automatically. Yum is an officially supported update
mechanism for Fedora, and Fedora mirrors are set up
as Yum repositories.

Download:

http://linux.duke.edu/projects/yum/download.ptml

Before installing Yum, or any RPM package, you'll need
to do the following:

export LD_ASSUME_KERNEL=2.4.19

Next, install Yum

rpm -ivh yum-2.0.7-1.noarch.rpm

The "/etc/yum.conf" may need to be updated. Here is an
example file with the values for redhat 9 entered in
directly


[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1

[fedora-stable-9]
name=Fedora Project Stable RPMS for RHL 9
baseurl=http: //download.fedora.us/fedora/redhat/9/i386/yum/stable/
gpgcheck=1

[fedora-updates-9]
name=Fedora Project update RPMS for RHL 9
baseurl=http: //download.fedora.us/fedora/redhat/9/i386/yum/updates/
gpgcheck=1


NOTE: If you're using Redhat 8, replace 9 with "8.0"

The following will download a lot of "HEADER" files, but WILL NOT update
anything. Yes, I too thought my system was being updated with old files,
but IT IS NOT.

yum check-update

After this runs, which takes awhile. You can then update selected packages.
Here is an example of the "libpng10" package being updated.

yum -y update libpng10

Also, subsequent calls to "yum check-update" shows what needs to be updated.


To update every currently installed package

yum -y update






STEP 19 (DEVELOP YOUR OWN 2.6 MODULES):

You're done with the 2.6 build. So learn how to develop
2.6 kernel modules. First, checkout the following article

http://lwn.net/Articles/driver-porting/

Then, take a look at the following sample code, which shows how
to create /proc entries for communicating with the kernel and writing
out to any available tty device.

http://prdownloads.sourceforge.net/...tar.gz?download




REFERENCES:

http://www.codemonkey.org.uk/post-halloween-2.5.txt
http://kerneltrap.org/node/view/799
http://thomer.com/linux/migrate-to-2.6.html
http://www.kernel.org/

http://bugzilla.kernel.org/
http://groups.google.com/groups?hl=...up=linux.kernel
http://linuxdevices.com/articles/AT3855888078.html

http://prdownloads.sourceforge.net/...26.txt?download
http://prdownloads.sourceforge.net/...it.txt?download
http://prdownloads.sourceforge.net/...tar.gz?download
https://sourceforge.net/forum/forum.php?forum_id=353715

http://www.redhat.com/software/rhel/kernel26/
http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO.html
http://www-124.ibm.com/linux/projects/?topic_id=2

KERNEL DRIVER DEVELOPMENT IN 2.6:

Excellent (series of articles):
http://lwn.net/Articles/driver-porting/

Here's my sample program:
http://prdownloads.sourceforge.net/...tar.gz?download

Good but dated for 2.4 kernel:
http://www.oreilly.com/catalog/linuxdrive2/

http://linuxdevices.com/articles/AT4389927951.html
http://linuxdevices.com/articles/AT5793467888.html

728x90
Apache가 RPM으로 설치되지 않고 직접 컴파일 되어 설치되어 있는 경우가 있다.
게다가, Module 지원하는 apx 스타일로 만들지 않고 Apache에 한덩어리로 움직이게 만든 경우라면
PHP 업그레이드에 상당히 난색을 표명할 수 밖에 없다.

이 작업을 수행하고 난뒤의 내 스스로의 기록을 남겨 추후 이와 유사작업을 할때 도움을 가지려 한다.

먼저 각 버젼은 Apache는 1.3.34 버젼이고 PHP는 4.0.3 이다.
이것을 PHP를 요즘 나온 4.3.6 버젼으로 업그레이드를 실행해 보겠다.

먼저 PHP의 최신 버젼을 다운 받아 압축을 푼다. 그리고 일단 컴파일을 위해 Configure를 잡는다.
여기서 중요한 점은 Apache의 위치를 잡아주는 부분을 꼭 넣어 주어야 한다.
일단 내가 사용한 Configure는 아래와 같다.
./configure  --prefix=/usr/local/php --with-apache=/usr/local/apache --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --enable-track-vars --enable-versioning
여기서 가장 중요한 부분이 --with-apache=/usr/local/apache 이다. 이 부분은 꼭 있어야 한다.

그리고 Configure를 잡아서 문제 없으면 make하고 make install 을 해준다.
Configure에서 문제가 없다면 make와 make install은 아무런 문제 없이 수행이 된다.

그리고 난뒤 Apache 폴더로 간다. 보통 컴파일 버젼에 Prefix를 잡지 않는다면
/usr/local/apache에 설치된다. 내가 실습한 서버 내에서도 그 위치에 Apache가 설치 되어 있었다.

그런데, 신기한것은 Apache를 컴파일 설치하면 소스가 전부 그 안에 있다는 사실이다. 아니 모듈 버젼이 아니여서 인지도
모르겠지만, 모든 소스가 그 안에 있는 것이였다. 그래서 Apache의 컴파일을 Apache가 설치된 곳에서 하면 컴파일을 한다.
먼저 컴파일 전에 Configure를 잡아 준다. 내 같은 경우 아래와 같이 잡아 주었다.

./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a

여기서 잘 살펴보면 -activate-module 이라는 옵션이 있는데, 바로 모듈을 바로 Apache내에 실을 때 사용되는 것이다.
PHP를 정상적으로 잘 설치되었다면 /usr/local/apache/src/modules/php4/ 라는것이 설치되었을것이다.
그것이 없다면 PHP 의 Configure 부터 차근 차근 다시 살펴 보도록 해야 한다.

위와 같이 Configure를 잡아주고 make 한다. 그리고 반드시 apache를 중지시켜주고  make install 을 수행한다. 그리고 난 뒤
bin/apachectl 이라는 프로그램을 이용해서 start 를 해준다. ( 컴파일 방식으로 하면 서비스 스크립트가 없다.)
그러면 정상적으로 PHP가 뜬다.

자... 여기서 내가 애먹었던 부분을 몇가지 언급하겠다.
1. php를 컴파일 해서 make install 했는데도 버젼업이 안되었다.
- apache의 apx 버젼인 경우 php의 모듈을 변경해주고 restart 한번만 해주면 되었다. 그러나 spx 버젼으로 컴파일 하지 않았다면 그것은 apache를 다시 컴파일하라는 하늘(?)의 계시다  -_-;

2. php의 php.ini 를 변경해도 php가 아무런 변화가 없다.
- php.ini를 변경해도 apache를 restart 하지 않으면 아무런 소용이 없다. apache를 restart 해도 변화가 없다면 phpinfo() 페이지를 열어봐서 정확히 php.ini 위치가 어디인지를 다시 파악해서 해당 위치의 php.ini 를 수정하고 apache를 restart 해본다.
혹시 이래도 안되는 것 같으면 현재 php.ini 위치 적힌 부분에 디렉토리만 나열되어 있는지 확인한다.(즉 디렉토리명 끝자락에 php.ini라고 정확히 적혀 있는지 확인한다.) 혹시 없으면 해당 위치에 꼭.. php.ini를 복사해주고 적용한다.

3. php 설치에 apache 설치를 완료했는데, php가 작동하지 않거나 아무런 변화가 없는 경우
- 나같은 경우에도 이 때문에 상당히 애먹었는데, apache를 컴파일 하고 난뒤 설치할때 반드시 apache를 중지 시키고 설치해야 한다. make 한 뒤 아파치를 중지 시켜 놓고 make install 하는 것이다. 이렇게 안되니까, 이상하게 php 만 실행이 안되는 것이다. 소스가 바로 보여지는 문제가 발생하는 것이다. 그랬다가 stop 시키고 설치한뒤 start 하니까 정상 작동한다.



728x90
ActiveX 등록하기...


1. 우선은 *.cab 나 *.ocx 파일이 있어야 합니다.
  (앞으로 *는 test로 하겠습니다. - 제가 test로 시험을 해서...)
  cab나 ocx는 vb를 통해 만드는 방법이 많이 있으므로 생략하겠습니다.


2. test.lpk 화일 만들기
  lpk 파일을 만들기 위해서는 lpktool.exe 란 프로그램이 필요합니다.
  (마이크로소프트 사이트나 기타 사이트에 많이 있습니다.)
 
  압축을 푼 후 lpk_tool.exe 파일을 실행시키면 리스트 박스가 두개 나타나죠?
  왼쪽의 리스트 박스는 레지스트리에 등록된 목록입니다.
  등록명은 프로젝트명.클래스명 으로 나와 있습니다.
  (저의 경우는 test.usercontrol1으로 나와있더군요)

  만약 레지스트리에 등록이 않되어있다면 regsvr32 명령으로 먼저 등록하시구요..

  (다른곳은 test.lpk파일을 나중에 만들던데, 나중에 만들면 이상이 생기더군요..
     다음에 htm파일에 param테그를 고치는 부분이 있는데, 이것을 하려면 보안 인증 전에 먼저 lpk파일을 작성해야 합니다.)

  그리고 만들어진 test.lpk 파일을 가지고 이미 만들어진(vb로 만드셨다면 test.cab파일과 test.htm파일이 만들어지죠?) test.htm파일의 param테그 부분을 고칩니다.

  원본         : <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
  고치고 난 후 : <PARAM NAME="c:\test\" VALUE="test.LPK">

  lpkpath부분은 lpk파일이 들어있는 곳의 풀패스를 적어야 합니다.


3. 이제는 그 문제가 많던 보안 부분의 해결입니다.
   (참고로 저는 델파이 사이트에서 어느분이 해결한 부분을 제가 다시 적용해서 적습니다.)

  마이크로소프트 사이트나 기타 사이트에 codesign.exe파일이나 inetsdk.exe파일이 있습니다. 두 파일은 모두 똑 같으므로 둘 중 하나만 받아서 사용하세요..

  압축을 풀고 다음과 같이 실행합니다.(명령프롬프트에서 하시는게 젤 편해요..)
  (앞으로 나올 *.pvk, *.cer, *.spc파일의 이름은 아무렇게나 해도 상관이 없고, 확장자만 잘 지키세요)

  ㄱ. 먼저 해당 디렉토리로 갑니다.(inetsdk\bin까지)
  ㄴ. SETREG 1 True
  ㄷ. MAKECERT -n "CN=금명식의 보증서" -sv Test.Pvk Test.Cer
           - "cn="금명식의 보증서"부분은 아무 말이나 상관 없어요..
  ㄹ. [Create Private Key Password] 대화상자가 뜨며 암호를 요구하면 아무 거나 입력한다. 단 기억할 수 있는 암호로... (암호를 두번 물어보는데 - 기억으로는 sub암호까지 - 모두 같은 암호를 입력한다.)
  ㅁ. CERT2SPC Test.cer Test.spc
  ㅂ. 다시 대화상자가 뜨며 암호를 요구하면 아까 암호를 넣는다.
      (저의 경우는 한번도 안물어 보네요..)
  ㅅ. SIGNCODE -spc Test.spc -v Test.Pvk -n "Test" c:\test\Test.cab ( 여기서 Test.OCX는 내가 만든 OCX의 이름으로 대체하면 된다. 이름을 대체할때 파일이 저장된 풀 패스를 쓰세요)
  ㅇ. 또 대화상자가 뜨며 암호를 물어보면 아까 그 암호를 또 넣는다.
      (이것도 안물어 보는 경우가 있다는 사실...)


  위와 같이 해서 모두 성공하셨다면
  (참고로 ㄴ, ㄷ(ㄹ),ㅁ(ㅂ) 을 하게 되면 모두 succeeded란 메세지가 뜨고, ㅅ을 성공하게 되면

   warning : this file is signed, but not timestamped.
   succeeded
  란 말이 나오게 되는데 별 문제 없는것 같더라구요..)


4. 이제 체크를 해 볼까요?

  아직 명령프롬프트를 종료 안했죠?
  그 상태에서
   chktrust test.cab
  를 합니다. 그러면 어떤 메세지 박스가 뜨죠?
  그게 웹에서 다운 받기 전의 박스입니다.

  그러면 이제 모두 성공했어요..(참고로 전 3번의 방법으로 모두 test.ocx파일까지 했습니다.-다른 분이 "ㅅ"부분만 다시 하면 됀다고 하는데, 불안해서시리.. )


5. 이제는 탐색기에서 inetsdk\bin폴더를 보시면 test.cer이란 파일이 만들어져 있죠..
 
  test.cer이란 파일을 실행시키면 보안 인증서를 얻을 수있습니다.
  다른건 다 참고로 보는 것이고 "일반탭에서-보증서설치버튼"을 누르세요..
  그리고  계속 "다음-다음-마침.."
  그럼 보증이 되었데요..



  이제 server가 된 컴퓨터에서는 레지스트리에 등록이 되어있어 시험은 못하고, 다른 컴퓨터로 이 곳으로 연동한다면 원하는 결과를 볼 수있을꺼에요..









***** asp와 vb연동하기 (param테그로 값을 vb로 넘기기) *****

1. ActiveX 컨트롤에 값을 받을 수 있는 프로퍼티를 만들어야 합니다.
방법은 비주얼베이직의 ActiveX컨트롤 인터페이스 마법사를 사용하면 간단
ActiveX컨트롤 인터페이스 마법사를 사용하는 방법
(1) 추가기능에서 추가기능관리자에서 ActiveX컨트롤 인터페이스 마법사를
추가하고 로드시킨다.
그러면 추가기능메뉴에 ActiveX컨트롤 인터페이스 마법사가 등록된다.
(2) ActiveX컨트롤 인터페이스 마법사를 실행
(3) 인터페이스 구성원 선택에서 불필요한 구성원은 모두 선택해제 한다.
필요하면 선택
(저는 모두 필요가 없어서 선택 해제했음)
(4) 사용자정의 구성원에서 추기를 클릭한다.
그리고, 예를 들어 memid라는 속성(프로퍼티)를 추가한다. 그리고, 다음
(여기서 추가를 할때 이름이 중요 - asp에서 그대로 이름을 사용한다.)
(5) 매핑설정은 필요하면 매핑시키고, 필요없으면 건너뛴다.
여기서는 건너뛰었다.
(매핑 설정을 했어요..
제가 한 것은 string형 변수가 필요했기 때문에, text박스를 하나 만들어서 그 박스의 text속성(text1.text)에다가 연결시켰어용)
(6) 특성설정인데 데이터형식을 지정한다.
여기서는 String을 지정하였다. 기본값은 "" 빈문자열로 하고
(7) 그리고 마침하면 아래쪽과 같은 코드가 생긴다.
이 코드는 memid라는 속성에 대한 ActiveX 컨트롤 인터페이스이다.


2. 비주얼 인터데브로 ASP페이지를 오픈하고
개발한 ActiveX컨트롤을 등록하고 페이지에 올려놓으면
화면에 ActiveX컨트롤이 보일 것임
(레지스트리에 등록되어 있으면(안돼면 regsvr32명령으로 등록을 먼저하자) 왼쪽 Toolbox에서 오른 마우스를 누른 후 내가 만든 ocx를 등록할 수 있다.)

3. 이 ActiveX컨트롤을 선택하고 등록정보를 보면 사용자가 작성한
프로퍼티를 확인할 수 있을 것임.
이 프로퍼티에 <  %=변수명%  > 이런 식으로 하고 웹페이지를
실행하면 값을 받을 것임.
(여기서 문제가 생기는 데, 인터데브는 .ocx파일만 전송하도록 되어있기 때문에 .cab파일도 전송하도록 해야 한다.
그러므로 .cab파일을 만들때 생기는 .htm파일을 보면 classID가 나온 후 "codeBase=test.CAB#version=1,0,0,0" 부분이 있다.
이걸 인터데브로 만든 파일의 classID이후 부분(.htm과 같은 위치)에 복사해서 붙여 놓는다.)


4. 그리고 값을 받은 뒤 바로 시행하게 하기 위해서는
UserControl_Show()이벤트에 해당코드를 작성하기 바람.
(UserControl_Show()안에서 text1.text의 값은 어느 변수에 기억 시키고 그 변수를 가지고 작업을 하게 되면 원하는 결과를 얻을 수 있다.
간단히 msgbox로 확인을 해 보면 쉽게 제대로 작동함을 알 수 있다.)
728x90
Windows 2K 이상의 버젼에서는
제어판->관리도구->서비스 를 선택하면 현재 백그라운드에서 작동중인 서비스들을 나열한다.
최하단에 보면(이름별로 정렬을 한 경우) Windows Time 이라는 것이 있다.
이것이 실시간으로 Windows Time을 시간 서버에 접속해서 지속적으로 업데이트 해주는 기능이다.

이를 위해 몇가지 설정할 수 있다.
제일 먼저 가장 기본적으로 시간 서버를 업데이트 할 수 있다.
그 방법은 아래와 같이 하면 된다.
net time /setsntp:시간서버 주소

인터넷 시계 서버 주소
데이콤 (gps.bora.net)
코넷 (ntp.kornet.net)
Enterprise IDC, 부산대학교 (ntp1.cs.pusan.ac.kr / ntp2.cs.pusan.ac.kr)
한국표준과학연구원 시간주파수 연구실 (time.kriss.re.kr)
Enterprise IDC (ntp1.epidc.co.kr / ntp2.epidc.co.kr)
이대부속 초등학교 (ntp.ewha.net / ticktock.ewha.net)



추가적인 기본적 사용방법은 아래를 참조하고, 더욱 자세한 내용은 첨부한 w32time.doc 내의 문서를 참조하시길.
(추후 번역버젼으로 이 페이지에 업데이트 예정)

This article was previously published under Q224799
SUMMARY
Windows 2000 uses a new time synchronization service to synchronize the date and time of computers running on a Windows 2000-based network. Synchronized time is critical in Window 2000 because the default authentication protocol (MIT Kerberos version 5) uses workstation time as part of the authentication ticket generation process.

The information in this article applies to Windows 2000 clients when they belong to a Windows 2000 Active Directory Domain. If the Windows 2000 clients belong to a workgroup, you must manually configure the time synchronization settings.
MORE INFORMATION
The Windows Time Synchronization service (W32Time) is a fully compliant implementation of the Simple Network Time Protocol (SNTP) as detailed in IETF RFC 1769.
Basic Operation
Client Boot No client boot-specific information.


Polling Loop
The client contacts an authenticating domain controller.
Packets are exchanged to determine the latency of communication between the two computers.
W32Time determines what current time should be converged to locally, (the "target" time).
The client adjusts the local time.
If the target time is ahead of local time, local time is immediately set to the target time.
If the target time is behind local time, the local clock is slowed (slewed) until the two times are aligned, unless local time is more than 3 minutes out of synchronization, in which case the time is immediately set.
The time server client performs periodic checks.
The client connects to the authenticating domain controller once each "period."
The initial default period is 45 minutes.
If the time synchronization attempt is successful three consecutive times, then the interval check period is increased to 8 hours. If it is not successful three consecutive times, then it is reset to 45 minutes.
Time Convergence Hierarchy
All client desktops select an authenticating domain controller (the domain controller returned by DSGetDCName()) as their time source. If this domain controller becomes unavailable, the client re-issues its request for a domain controller.
All member servers follow the same process.
All domain controllers in a domain make 3 queries for a DC:
a reliable time service (preferred) in the parent domain,
a reliable time service (required) in the current domain,
the PDC of the current domain. It will select one of these returned DCs as a time source.


The PDC FSMO at the root of the forest is authoritative, and can be manually set to synchronize with an outside time source (such as the United States Naval Observatory).
For additional information about how to configure the Windows Time Service, click the article number below to view the article in the Microsoft Knowledge Base:
216734 How to Configure an Authoritative Time Server in Windows 2000

728x90
리눅스에서 시간을 자동으로 맞추었는데 불구하고 시간을 확인하니까 하루 전인 것이다.
그것도 낮에 확인하는데, 밤 이라고 나오지 않는 것인가? 그래서 곰곰히 따져 보니, Timezone 문제 였던 이다.

그래서 Timezone에대해서 이런 저런 문서를 보니까, Linux에서 그 수정 방법이 있었다.

아직은 Console 기반의 Timezone 설정은 모르겠고,
현재는 RedHat Linux에서 제공하는 Utility로 사용하는 방법만 알고 있다.

/usr/sbin/timeconfig

를 사용하면 Timezone을 간단히 설정할 수 있다.

단, 이 경우 주의해야 될 사항은 nurse 라는 UI Lib를 가지고 있어야 한다.


728x90
Linux에서 rdate라는 명령이 있다.
시간 서버에 접속해서 현재 Linux 의 시간을 설정하는 것이다.

이 명령을 보면, rdate -s 가 있는 time host에 접속해 서버 시간을 로컬 시간과 동일하게 만들어 준다.
Time 서버는 일반적으로 time.nist.gov를 사용하면 된다.

728x90
분 시 일 월 요일 권한자 실행내용
ex) 0 0 * * 0 root rdate -s time.nist.gov
   0시 0분 그것도 일요일만 실행을하면 실행권한은 root 이고, rdate 이하를 실행한다.  

/etc/crontab 안의 Text로 해당하는 처리를 하면 된다.
728x90

+ Recent posts

728x90