CPU : P4 2.4B
M/B : GIGABYTE 8GEM667 (i845GE)
Graphic card : Sapphire RADEON 9100 (64MB)
RAM : SEC 256*2

ATI...
예전부터 리눅스용 드라이버 지원이 좋지만은 않다는걸 알고는 있었지만 퀘이크3가 계속 땡기는 참에 ㅠ_ㅠ

(DVI출력도 안되니 듀얼도 못쓰고...)

fglrx를 설치해보려했건만 ...

왜 안되는겨 ;ㅁ;

시냅틱에서 받아서 설치도 해보고 ATI에서 다운받은 바이너리로도 해보고 컴파일해서 모듈로도 올려봤지만 매번 부팅후 처음엔 화면이 나오다가 몇분 지나거나 불여우를 켜는 순간 그야말로 뻗어버린다.


xorg.conf에 그래픽카드 섹션
Section "Device"
Identifier "ATI Technologies, Inc. Radeon 9100 (R200 QM)"
Driver "ati"
BusID "PCI:1:0:0"
Option "UseInternalAGPGART" "no"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
EndSection


아래쪽 3가지 옵션들은 충돌이 있을 수 있는 부분들이라던가... 누군가 의 블로그 내용에서 퍼온것이지만 가장 관건은 결국 드라이버를 fglrx로 올리면 같은 현상이다.

모바일라데온9600인 선배 노트북은 잘되던데... 그래픽카드를 새로 사야하나 -_-;;

------------------------------------------------------------

ATI홈페이지에 8.18.8 버전이 릴리즈 됐길래 설치해보니 다운도 안되고 잘된다....

고 좋아했더니 어째 속도가 느리다.

음... 설마... 하면서 fglrxinfo 해보니

...mesa 3d (...)

결론은 처음부터 다시 ㅡㅡ;

뭐... 3D를 제대로 못돌리는건 아쉽지만 일단 DVI 출력이 잘되니 그냥 쓰기로 ㅡㅡ;;

--------------------------------------------------------------

8.26.18 버전이 나왔길래 또 해봤다.
나머지는 사양은 똑같고 그래픽카드만 유니텍 RADEON 9000 128MB 으로 바꿨다.
(연수생 할 때 옆에 계시던 분이 버리려는 거 주섬주섬 받아왔다...;;)

그냥 다음 다음 눌러 설치하고 aticonfig --initial 해버리니

오... 잘 잡힌다. (바꾼 다음에도 기존버전은 잘 잡히지 않았었다.)


결론. Radeon 9100 은 까다롭다 - _-;;

Posted by freezn
삽질기행/잡다정보2006. 10. 18. 23:45
주 :
- 레드헷 8.0 이후 rpm 에 build관련 옵션이 사라졌다고 한다. (rpmbuild로 나뉘었다.)
- fedora core4에 기본으로 준비된 패키징용 디렉토리는 /usr/src/redhat 이었다 =_=
- 부요는 /usr/src/booyo에 있다.
- 빌드디렉토리에는 BUILD, RPMS, SOURCES, SPECS, SRPMS이 있어야 할듯하다.


Source RPM 을 재 패키징하려는 경우 :
그냥 막연히 src.rpm이니 rpm -Uvh xxx.src.rpm을 해줬더니 진짜 설치가 되더라. -_-;
/usr/src/redhat에서.
SOURCE에는 tarball소스와 적용된 패치, 추가로 필요한 파일들이 들어가있다.
SPECS에는 .spec로 끝나는 rpm설정(?)파일이 들어가 있다.
tar.gz같은 소스가 rpm으로 바뀌는데 가장 중요한 녀석이라고 생각한다.
----------
새로운 RPM을 만들어내려는 경우 :
SPEC파일을 직접 만들어야한다.
이에 대한 내용은 KLDP의 RPM_Guide 를 참고하면 된다.
아니면 다른 spec파일(src.rpm에 포함된)을 참고해도 좋다.

SOURCES디렉토리에는 프로그램의 소스인 tar.gz를 비롯한 파일들을 넣으면 된다.
SPECS에 xxx.spec파일을 만들어서 넣는다.

2008-05-20 추가 : src.rpm 일 경우 설치해버면 자동으로 위 경로들에 각각의 파일들이 배치된다.

-----------------------------------------------

위와 같은 준비가 되었으면 빌드하자.

rpmbuild -ba xxx.spec

spec에 작성한대로 컴파일되고 지지고 볶아서 xxx.i386.rpm과 xxx.src.rpm, xxx-debuginfo.i386.rpm등이 생성된다.

xxx.src.rpm은 SRPMS에 생성된다
xxx.rpm과 debuginfo.rpm은 RPMS/i386에 생성된다.

이제 SRPMS만 있으면 나중에 또 할 수 있다.
- 나머진 버려도 되는건가?

------------------------------------------------
기타 :
debuginfo는 뭔지 모르겠다.

spec에서 define한 릴리즈와 버전대로 파일명이 생성된다.
예를 들어
%define name xxx
%define version 1.1.0
%define release fz1-0
으로 했다면
xxx-1.1.0-fz1-0.i386.rpm
으로 생성될 것이다.
------------------------------------------------
기타 2 :
rpmbuild시 --target=옵션을 추가로 사용할 수 있다.
ex) rpmbuild -ba --target=i686 xxx.spec
이렇게하면 RPMS/i686안에 rpm파일들이 생길 것이다.
------------------------------------------------
기타 3 :
KLDP의 RPM_Guide에 따르면 rpmrc에서 빌드디렉토리도 설정한다고 하는데 안보인다.
어디에 숨었니 -_-;;
그리고 여러가지 타겟들이 적혀있다.
- 설마 정의된 타겟이라면 별다른 과정없이 타겟지정만으로 크로스컴파일도 지원하는걸까?
-> 설마가 사람잡았다. target=arm-linux라고 줬더니 arm.rpm이 생성됐다. -_-;;
--> 빌드메세지를 캡쳐해보니 이런 메세지가 나왔다. checking target system type... i686-pc-linux-gnu
---> 그러므로 엉터리였다. 당연히도 spec파일을 크로스컴파일용으로 작성해야겠지...

----> 그렇다면 i686 같은 패키지를 만들려고 해도 마찬가지라는 것??
------------------------------------------------

어지간히 정리되면 문서도 정리해야겠다.
언제 정리하나...
Posted by freezn
삽질기행/잡다정보2006. 10. 18. 23:43
- 알아두면 편리한 경로 변수들 %{buildroot} 빌드경로
%{_bindir} /usr/bin
%{_libdir} /usr/lib
%{_includedir} /usr/include
%{_sbindir} /usr/sbin
%{_mandir} /usr/share/man
%{_docdir} /usr/share/doc
%{_sysconfdir} /etc
%{_tmppath} /var/tmp
Posted by freezn
CPU : AMD64 x86_64
OS : RHEL 4.1
smtp/current 에러 내용 :
@400000004461b5440c073364 tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist

결론은 qmail-smtpd, checkpassword 가 64로 컴파일 할 경우 정상동작하지 않는다.

결국 저 두파일만 32비트 머신에서 컴파일한 버전으로 끼워 맞췄다. (설정들을 똑같게 하도록 64비트에서 패치한 소스를 그대로 가져다가 빌드했다.)

해결책 출처 :
http://qmail.kldp.org/phpbb/viewtopic.php?t=5809&highlight=amd64



qmail용 64비트 패치를 어디선가 본 것 같은데...

Posted by freezn
메일이 안가길래 로그를 확인해보니 너무 많아서-_-; 아예 최소로 돌리고 다음과 같이 직접 실행으로 테스트해봤다.

명령 :
/usr/local/bin/tcpserver -vHRl 0 -x /etc/tcp.smtp.cdb 0 25 cat

에러 :
tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist

qmail 관련 forum들을 찾아보면 AMD64(옵테론,Opteron)인 경우 이 상황을 자주 만나는 듯 하다.
황당하지만 이렇게 하면 해결된다.

해결 :
touch /etc/dnsrewrite


정보 출처 :
http://forums.gentoo.org/viewtopic-p-2639199.html#2639199

qmail은 AMD64랑 궁합이 잘 맞지 않는가보다 ㅡㅜ
...옵테론 미워할거야 ㅡㅜ

- AMD64 에서만 이 문제가 나는 이유는 뭘까?? 자동으로 파일을 생성하지 못하나??
Posted by freezn
2가지 방법
- 인터럽트로 받기
- 그냥 받기 -_-;

#include <iom128.h>
#include <ina90.h>
#include <sig-avr.h>
#include <interrupt.h>

#define SYSTEM_CLOCK 8000000 // CLOCK (X-tal frequency) (128L : 8Mhz)

typedef unsigned char BYTE;

volatile BYTE RS0_Char=0x00;
volatile BYTE RS1_Char=0x00;

void SendByte0(BYTE data)
{
while (!(inp(UCSR0A) & (1<<UDRE)));
outp(data, UDR0);
}

void SendByte1(BYTE data)
{
while (!(inp(UCSR1A) & (1<<UDRE)));
outp(data, UDR1);
}


SIGNAL(SIG_UART0_RECV) // UART0 수신 인터럽트
{
RS0_Char=inp(UDR0);
SendByte0(RS0_Char);
}

SIGNAL(SIG_UART1_RECV) // UART1 수신 인터럽트
{
RS1_Char=inp(UDR1);
SendByte0(RS1_Char);
}



void UART_Init(unsigned long BaudRate)
{
// Not Double mode, Not multi_communication
outp(0x00, UCSR0A);
// 0b 1001 1000 RXCIE,TXCIE,UDRIE,RxEN,TxEN,xxx
outp(0x98, UCSR0B);
outp(0x06, UCSR0C);
// Setting BaudRate
outp(0x00, UBRR0H);
outp((SYSTEM_CLOCK/BaudRate/16 - 1),UBRR0L);

// Not Double mode, Not multi_communication
outp(0x00, UCSR1A);
// 0b 1001 1000 RXCIE,TXCIE,UDRIE,RxEN,TxEN,xxx
outp(0x98, UCSR1B);
outp(0x06, UCSR1C);
// Setting BaudRate
outp(0x00, UBRR1H);
outp((SYSTEM_CLOCK/BaudRate/16 - 1),UBRR1L);
}

int main(void)
{
// External Memory Disable
outp(0x00, MCUCR);
UART_Init(9600);
sei();

while(1);

return 0;
}


uart0이나 uart1이 수신인터럽트가 발생할때마다 다시 각각 uart0/1에 같은 내용을 바이트단위로 전송해준다.

지금 사용중인 보드의 제조사 http://myavr.co.kr 의 자료를 이해하느라 아주 조금 수정했다 ;
Posted by freezn
error: Installed (but unpackaged) file(s) found:
/usr/lib/libxerces-depdom.so.26.0
Installed (but unpackaged) file(s) found:
/usr/lib/libxerces-depdom.so.26.0


이런 메세지를 만나게 된다.

아마도 RPM 빌드시 spec파일에 정의된대로 chroot 과정을 거치거나 할때 이미 파일이 설치된 걸로 착각하는(?) 등등일 경우 나는 문제 같은데,

%define _unpackaged_files_terminate_build 0


spec의 맨 위쪽 define이 열거된곳에 위 라인을 삽입하여 무시할 수 있다.


---------------------------
정보 출처 :
http://linux.i-heart.co.kr/viewtopic.php?t=39 의 siteadmin인 nopain님의 팁
Posted by freezn
error: Package already exists: %package debuginfo


같은 메세지만 나오고 헷소리를 낸다면

홈디렉토리의 .rpmmacros 파일이나 /var/lib/rpm/배포판/macros 파일을 열어서

ex)
vi ~/.rpmmacros

%debug_package %{nil}를 추가하자.

echo "%debug_package %{nil}" >> /root/.rpmmacros


이런 식으로 간단히도 가능.

그러면 정상적인 에러메세지를 보여줄 것이다.

내 경우는 %changelog에 %install이 한번 더 등장한다는 것이었는데
changelog부터는 무조건 주석처럼 무시될거라 생각한 실수.
%install에서 뭘 고쳤다는 로그를 남기다보니 이런 실수가 있었다.

주의하자.
Posted by freezn
삼성 PC에 CentOS 4.2 를 설치했다. (모델명은 M2950. P4 1.6 모델이다.)

여튼 설치가 다 되고 부팅을 시켜보니

이게 왠걸

Initializing hardware: storage network (그대로 멈췄음)


음.. audio가 떠야하는데 안뜨는걸 보니 오디오와 충돌인가? 라는 생각은 오산이었다. 서버 전용으로 사용할거라 내장 오디오를 disable 시켰더니 이제 부팅은
Initializing hardware: storage network audio ...


오.. 잘되는군

근데 왜 네트웍이 안되지?ㅡㅡ;

찾아보니... 노트북(laptop) 쪽에서 자주 나는 문제인 것 같은데...
ACPI랑 관련이 있나보다.

grub 부팅 옵션에 다음 2가지를 추가해줬다.

acpi=off amp=off


잘 된다.
(하지만 ACPI를 꺼버렸으므로 시스템 halt 시 전원 버튼을 눌러야 끌 수 있는 작은 문제가 있다.)

ps. 이와 비슷하거나 이상해지는 상황은 FC3/4에서도 마찬가지인데...
그럼 이 PC모델이 문제인 거겠지? :(
Posted by freezn
RPM들의 SPEC파일을 보면 Copyright와 License가 같은 용도로 사용되는 경우가 있다.

예를 들면 Troy Engel 씨가 패키징한 libnet 패키지에서는
Copyright: BSD 으로 되어있고

RHEL3에 포함된 레드헷에서 패키징한 diskdumputils 패키지에서는
License: GPL 으로 되어있다.

당연히(?) License 라는 택을 사용하다가 생각해보니 분명 나도 maximum rpm에서 Copyright로 읽은 기억이 나서 Copyright로 써봤더니 vi가 빨간 배경을 깔아버린다. -_-;
음 설마 syntax 오류라는걸까나 :)
(물론 빌드는 잘 됐다.)

주) maximum rpm 의 관련 부분 : http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html

- maximum rpm이 작성된지도 오래되었으니 바뀌었을 수 도 있겠군.. :)

그래서 찾아보니 페도라 메일링 리스트 로그에 다음과 같은 내용이 있었다.
jove라는 소스를 -tb옵션으로 빌드하려고하니 다음과 같은 에러메세지가 발생한 다는 것이다.
"error: Legacy syntax is unsupported: copyright"


D. Hugh Redelmeier씨에 의하면
레드헷 리눅스 6.2 전에는 License라는 태그가 없었고 지원되지 않았지만 이후 변경되었다고 한다.
때문에 이전 버전과 이후 버전에서 동시에 사용하기 위한 방법을 제시하고 있는데...

%define ancient_OS 1

%if %{ancient_OS}
Copyright: foo
%else
License: foo
%endif


뭐... 귀찮겠다 -_-;
(결국 6.2면 대체 rpm/build 버전이 몇이 들어가 있는거냐... 싶어 License택만 사용하기로 했다.)

해당로그 : https://www.redhat.com/archives/fedora-test-list/2005-May/msg00963.html

Vender, Packager, License는 있지만 Copyrighter가 없는게 좀 찜찜한 구석이 있다보니 이에 대한 것도 문제가 되는가보다.

--------------------------------------------------------

재밌는건 Copyright를 License로 인식하여 지원하는 것 같다는 것이다.

Troy Engel의 libnet 패키지(Source RPM: libnet-1.1.2.1-1.rh.el.um.1.src.rpm)를 보면 Copyright: BSD 라고 되어있지만
-qi옵션으로 정보를 보면 License: BSD 로 출력된다.

결국 옛날 패키지가 아니면 License로 쓰면 된다는 것이다.
Posted by freezn