IT 주제, 특히 리눅스를 다룹니다.

Posted
Filed under Linux/Kernel
기존에 잘 사용하던 PulseAudio가 Gentoo를 새로 설치하면서 동작하지 않았다.
하루동안 삽질을 반복하다가 dmesg에서 이상한 메시지를 발견했다.
Too many HDMI devices 
Consider building the kernel with CONFIG_SND_DYNAMIC_MINORS=y
메시지를 해석하면, 발견된 HDMI 장치가 많아 장치 ID를 생성하지 못한 듯 하다.
커널에서 해당 옵션을 활성화, 빌드 후 재부팅을 하니 2개 인식되던 HDMI가 3개 모두 보인다.
(솔직히 HDMI 장치가 3개인줄도 몰랐다...)

드디어 pavucontrol 에서 Unplugged 되지 않은, 활성화된 장치가 1개 보인다.
출력 장치를 이것으로 선택 후 aplay 로 테스트해 보니 사운드가 정상 출력되었다.
2015/04/21 21:33 2015/04/21 21:33
Posted
Filed under Linux/Gentoo
Xfce는 리눅스 시스템에서 사용할 수 있는 아주 가벼운 윈도우 환경이다. 다른 윈도우 매니저보다 리소스 사용률이 적고, 빠르다. Xfce에 적당한 가벼운 디스플레이 매니저로 SLiM(Simple Login Manager)가 있다.

우선, 불필요한 패키지 빌드는 제외하기 위해, gnome, kde, qt4 USE flag를 사용하지 않도록 한다.
USE="-gnome -kde -qt4 ..."

Xfce를 원격으로 제어하기 위해 TigerVNC를 설치하되, Xorg 서버 모듈을 함께 빌드하기 위한 USE 설정한다.
# echo "net-misc/tigervnc server xorgmodule" >> /etc/portage/package.use

일반 desktop 프로파일을 설정한다.
# eselect profile set <number>

gvfs의 http USE flag의 경우 많은 gnome 의존성 패키지를 빌드하기 때문에 제외한다.
# echo 'gnome-base/gvfs -http' >> /etc/portage/package.use

어떤 Xfce 플러그인을 설치할 것인지 /etc/portage/make.conf 에 정의한다.
XFCE_PLUGINS="brightness clock trash"

비디오카드를 정의한다. (Intel HD Graphics를 위해 i965 추가)
VIDEO_CARDS="intel i965"

Xfce, SLiM, ibus, tigervnc 설치를 시작한다.
# emerge -av xfce4-meta xfce4-notifyd xorg-server xfce4-terminal xfce4-volumed-pulse gtk-engines-xfce slim ibus ibus-hangul
# emerge --deselect y xfce4-notifyd

필요한 서비스를 시작한다.
# rc-update add dbus default
# rc-update add consolekit default
# /etc/init.d/dbus start
# /etc/init.d/consolekit start

xdm의 기본 디스플레이 관리자를 SLiM으로 설정한다.
# vi /etc/conf.d/xdm
...
DISPLAYMANAGER="slim"

System default Xsession을 Xfce로 설정한다.
# vi /etc/env.d/90xsession
XSESSION="Xfce"

필요 시 SLiM 환경을 사용자 정의한다. (세션 종류, 자동로그인 등)
# vi /etc/slim.conf

ibus 데몬을 자동 실행하기 위한 환경을 설정한다.
(사용자 홈디렉토리에서)
# vi .xprofile
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -drx

로그인 시 한글 locale을 설정하려면 아래 내용을 추가한다.
# vi /etc/X11/xinit/xinitrc.d/99-local
export LANG=ko_KR.UTF-8
export LC_ALL=ko_KR.UTF-8
# chmod +x /etc/X11/xinit/xinitrc.d/99-local

Xorg 서버 환경을 설정한다.
# vi /etc/X11/xorg.conf
Section "Device"
  Identifier  "Device0"
  Driver      "intel"
  VendorName  "INTEL Corporation"
EndSection
Section "Extensions"
  # fixes tearing
  Option      "Composite"           "Disable"
EndSection
Section "Module"
  Load        "vnc"
EndSection
Section "Screen"
  Identifier  "Screen0"
  Device      "Device0"
  Option      "SecurityTypes" "VncAuth"
  Option      "UserPasswdVerifier" "VncAuth"
  Option      "PasswordFile" "/root/.vnc/passwd"
EndSection

VNC 패스워드를 설정한다.
# vncpasswd

Xfce 로그인을 테스트한다.
# service xdm start

문제가 없다면 부트 스크립트로 추가한다.
# rc-update add xdm default
2015/04/19 21:30 2015/04/19 21:30
Posted
Filed under Linux/Gentoo
Gentoo에 무분별한 ~amd64 flag 사용으로 시스템이 너무 더러워졌다.
필요한 기능만 설치할 겸 /etc 만 백업하고 전체 재설치 중이다.

몰랐는데, XBMC 이름이 v14 들어서며 Kodi로 바뀐 듯 하다.

Kodi 컴파일 시 vaapi를 사용하기 위해서 USE flag "gles" 를 제외해야 한다.
4년 전 버그인데 아직도 dependancy check가 ebuild에 반영되지 않는듯...

이건 내 실수지만, OpenGL ES는 Embedded system 타겟이기 때문에 보통 필요 없다.

참조: http://trac.kodi.tv/ticket/10552
2015/04/19 09:46 2015/04/19 09:46
Posted
Filed under Linux/Gentoo
fail2ban은 iptables을 이용하여 지정된 조건에 맞는 접속 시도를 효과적으로 차단한다.
가장 많은 해킹 시도는 ssh를 통해 이루어진다.
ssh 필터링을 위해 system logger는 /var/log/auth.log 를 생성해야 한다.

emerge -av fail2ban

(syslog-ng 수정)
destination auth { file("/var/log/auth.log"); };
filter f_auth { facility(auth); };
log { source(src); filter(f_auth); destination(auth); flags(final); };

(/etc/fail2ban/jail.d/ssh-iptables.conf)
[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/auth.log
maxretry = 5

service fail2ban start
2015/04/18 18:42 2015/04/18 18:42
Posted
Filed under Linux/Gentoo
Gentoo Samba 3.6.25 설정 후 Windows 7에서 연결 시도하면 아래와 같은 메시지가 출력된다.
[2015/04/16 13:55:07.368135,  0] smbd/process.c:525(init_smb_request)
  init_smb_request: invalid wct number 255 (size 108)
/etc/samba/smb.conf 파일에 아래 항목을 추가한다.
max protocol = smb2
2015/04/16 15:18 2015/04/16 15:18
Posted
Filed under 해외직구
페이팔 사용하면서 이래저래 삽질 많이 했습니다. 대부분 변팔 사용 시 경험한 문제입니다.
메일 수십통 전화 수십번 해보고 받은 답변을 토대로 정리 한번 해보겠습니다.

오류 메시지는 여러가지인데요. 주로 4가지로 정리될 것 같습니다.

- The card you entered cannot be used for this payment. Please enter a different credit or debit card number
- We can't process your payment right now, so please try again later. We're sorry for the inconvenience.
- Your payment can’t be completed. Please return to the participating website and try again.
- Please go to www.paypal.com to confirm your credit card before you complete this purchase.


에러 메시지의 1차 원인은 'Internal security system' 입니다. 복불복이며 2차 원인도 참 여러가지입니다.
따라서 어떤 것이 원인이라고 꼬집어 말할 수 없지만, 아래 참고하셔서 시도해볼 만 합니다.

- 카드 등록 후 바로 사용: 최소한 하루 뒤 다시 시도해보세요.
- 카드 등록 후 미인증(confirm) 상태: http://www.paypal.com/mem-number 가셔서 카드 인증 받으세요.
- 평소와 다른 패턴(사용처, 금액)으로 결제 시도: 최소한 하루 뒤 소액부터 시도해보세요.
- 평소와 다른 브라우져, IP에서 결제 시도: 최소한 하루 뒤, 원래 사용하던 시스템으로 시도해보세요.
- 등록된 카드의 통화가 USD가 아님: Master의 경우 사이트에서 결제 통화를 USD로 변경 가능한 것으로 알고 있고, 나머진 메일이나 전화로 확인해야 합니다.
- 가입 시 등록된 국가와 현재 국가가 다름: VPN 사용으로 우회 접속 시도해보세요.


오류 발생 상태에서 계속 결제 시도하시면, 보안 시스템에 의해 Red Flag가 찍힌 상태에서 레벨이 더 올라갑니다.
그렇게 되면 문제가 심각해지고, 리밋까지도 발생할 수 있다고 합니다.
2015/04/16 10:45 2015/04/16 10:45

IT 주제, 특히 리눅스를 다룹니다.

IT 주제, 특히 리눅스를 다룹니다.

IT 주제, 특히 리눅스를 다룹니다.

Posted
Filed under Linux
find 출력에 grep 확장 정규식을 사용하여 대상 필터링 후, xargs로 일괄 변경한다.
find 옵션으로 -exec를 사용할 수 있으나, 상세한 파일 필터링을 하려면 find+grep 조합이 필요하다.
대상 리스트를 파일 저장 후 for 반복하려면 shell의 명령어 최대 길이 제약이 있기 때문에, xargs+sed in-place 모드를 사용한다.
 
[사용 방법]
find <디렉토리> | grep -Ev "정규식" | xargs -d "\n" sed -i .bak -r "s:검색문자열:치환문제열:g"
2015/04/09 09:41 2015/04/09 09:41
Posted
Filed under Windows
Windows 8.1 + VHD 사용 도중 문제가 생겼다.
기본 설치되어 있던 모던 앱들의 이름이 이상하게 표시되면서 실행이 안된다.
참고로 0x80070002 에러가 발생했다.
(생각해보니 C드라이브에 존재하던 내 문서 등의 폴더를 D로 이동 후 발생한 듯 하다.)

2시간여를 구글에서 헤매다가 방법을 찾았는데, 모든 모던 앱을 일괄 재등록하면 된다. (원글 링크)

  1. Windows Firewall 서비스를 시작한다.
  2. PowerShell 을 열어 아래 명령을 입력한다.

    Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
2015/02/16 21:38 2015/02/16 21:38

IT 주제, 특히 리눅스를 다룹니다.

IT 주제, 특히 리눅스를 다룹니다.

Posted
Filed under Windows
Windows 8.1 VHD를 사용하면서 아래와 같은 문제가 있었다.
  • Differencing VHD 생성 후 Windows Recovery Environment 사용 불가
  • VHD 위치 변경 후 Windows Recovery Environment 사용 불가

bcdedit에서 recoverysequence를 수정하는 방법도 통하지 않는다.

USB 등으로 매번 PE 부팅을 하기는 상당히 번거롭기 때문에, 구글링을 하다가 괜찮은 방법을 찾았다.
최근 시스템들의 UEFI는 부팅 시 하드디스크의 EFI 파티션에서 자동으로 Boot Manager 정보를 가져오는데, Windows Recovery Environment를 이렇게 등록하는 것이다.

CrystalGlass님의 글을 참조하여 아래와 같이 간단 정리한다. (원글 링크)

  • bcdedit 명령 실행하여 설치되어있는 RE의 GUID를 찾는다. -> {WINRE_GUID}로 참조
  • bcdedit /copy {bootmgr} /d "Windows Recovery Environment"
    • 이 명령으로 생성된 GUID -> {NEWGUID}로 참조
  • bcdedit /set {NEWGUID} default {WINRE_GUID}
  • bcdedit /set {NEWGUID} displayorder {WINRE_GUID}

이후 부팅 시 UEFI 부트메뉴 호출 단축키를 누르면 Windows Recovery Environment가 보인다.
2015/02/15 18:01 2015/02/15 18:01
Posted
Filed under Windows
VHD가 연결되어 있지 않아야 하기 때문에, PE 또는 복구용 고급 명령창을 연다.

bcdedit /set {default} device vhd=[C:]\변경패스
bcdedit /set {default} osdevice vhd=[C:]\변경패스

재부팅하면 완료된다.

단, 위 작업을 실행하면 C:\Recovery 디렉토리를 참조하는 Windows Recovery Environment가 동작하지 않는 것으로 보인다. (reagentc 명령 실행 시 disabled 되어 있다.)
재설치 또는 재설정 하는 방법을 아직 찾지 못했다.
2015/02/14 19:07 2015/02/14 19:07