2022년 6월 11일 토요일

Thinkpad E320 에 윈도우10 설치

Thinkpad E320 에 윈도우10 을 설치 사용 중 발생한 문제들 

1. 부팅시 멈춰버린다

검색해보면 ;부팅시간이 길다'가 있는데 내 경우는 부팅이 안된다.
다음과 같이 수정

부팅시 F1 으로 바이오스 진입 > Config > Display >
Graphics Device [Integrated Graphics]
OS Detection for Switchable Graphics [Disabled]


윈도우10 설치하고 최신으로 업데이트 한다.
버전 Windows 10 Pro 21H2


2. 최대 해상도가 1024x768 

9.17.10.4459 버전의 Intel HD Graphics 3000 드라이버 설치

참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=keatom01&logNo=221226123663


3. Wifi 공유기가 안보임

다른 공유기는 보이는데 내 공유기만 안보임

검색 > 장치 관리자 > 네트워크 어댑터 >
1x1 11bgn Wireless LAN PCI Express Half Mini Card Adapter 오른클릭 >
드라이버 업데이트 > 내 컴퓨터에서 드라이버 찾아보기(R) >
컴퓨터의 사용 가능한 드라이버 목록에서 직접 선택(L) >
1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter

다음과 같이 두 개가 있는데 둘 중 하나를 선택하면 된다.
1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
1x1 11bgn Wireless LAN PCI Express Half Mini Card Adapter

2022년 2월 11일 금요일

OSMC(Kodi) 에서 드라이브 옵션 지우기

OSMC(Kodi 19.3) 에 USB 외장 하드를 붙이면 파일 메뉴에 자동으로 드라이브 옵션이 생성된다.
예) 비디오 > 파일 >
1.82 TB 드라이브
Auto-mounted drives

이전 버전에서는 외장 하드의 일부 디렉토리만 옵션에 추가하여 사용하고 있었는데
이 버전에서는 드라이브 옵션이 자동으로 추가되어 모든 디렉토리가 다 보이는 통에 곤란해졌다.

자동으로 생성되는 드라이브 옵션을 없애도록 하겠다.
1. USB 외장 하드를 연결하여 이름을 확인한다.
비디오 > 파일 > Auto-mounted drives > 표시되는 이름
또는 터미널에서 ls /media
이 경우는 A2346FB8346F8E5B

2. advancedsettings.xml 파일에 표시 예외 등록
예외 등록 패턴은 '/media/<2에서 찾은 이름>/$' 이 된다. 마지막의 $ 가 중요.
기본적으로는 이 파일이 없으니 생성한다.
cat << EOF > ~/.kodi/userdata/advancedsettings.xml
<advancedsettings version="1.0">
    <video>
        <excludefromlisting>
            <regexp>/media/A2346FB8346F8E5B/$</regexp>
        </excludefromlisting>
    </video>
    <audio>
        <excludefromlisting>
            <regexp>/media/A2346FB8346F8E5B/$</regexp>
        </excludefromlisting>
    </audio>
    <pictureexcludes>
        <regexp>/media/A2346FB8346F8E5B/$</regexp>
    </pictureexcludes>
</advancedsettings>
EOF

3. 게임 메뉴 삭제
안타깝게도 3의 설정은 비디오, 오디오, 사진에 대해서만 유효하다.
제어할 수 없는 게임은 메인 메뉴에서 지우기로 했다.
설정 > 인터페이스 > 스킨 > 스킨 설정 > 일반
Enable main menu customization > Skin shortcuts 애드온 설치
Customize main menu > 게임 > Hide [v]

4. 재시작
sudo systemctl restart mediacenter

2022년 1월 29일 토요일

sed 모음집


--------------------------------------------------------------------------------
# rstrip, 줄 끝에 있는 공백 없애기
sed 's/\s\+$//'

# dos2unix
sed 's/\r$//'

# unix2dos
sed 's/$/\r/'

# 빈 줄 여러 개를 하나로 합치기
sed '/^$/N; /^\n$/D'

# 마지막 줄이 빈 줄인 경우 삭제
sed '${/^$/d}'

# 모든 줄을 한 줄로 합치기
sed -n 'H; ${x;s/\n\+/ /g;p}'

# 특정 줄 다음 줄에 명령어(치환)
sed '/패턴/{n; s/치환/}'

# 특정 줄 다음 다음 줄에 명령어(치환)
sed '/패턴/{n;n; s/치환/}'
--------------------------------------------------------------------------------
https://edoras.sdsu.edu/doc/sed-oneliners.html

2021년 12월 31일 금요일

Disney Plus + OSMC + 라즈베리파이 4

라즈베리파이 4 에서 Disney+ 를 보기위한 설정

기본적으로는 참조에 있는 링크의 내용임.

1. https://osmc.tv/download/ 에서 Raspberry Pi 4 / 400 (2021.12-1) 를 다운로드.

2. rufus 를 이용해 다운로드한 이미지를 SD 카드에 쓰기.

3. 라즈베이파이 4 에 SD 카드를 꽃고 부팅.
* 파티션 작업, 인스톨 등에 40분 정도 걸렸다. 그동안 SSH 연결이 안되서 동작 안하는줄 알았다.
모니터를 연결하니 설치 중인게 보여 기다릴 수 있었다.
* 초기 설정 중에도 버벅댄다. 

4. 초기 설정
언어: 영어
로케일: Asia - Seoul
나머지는 그대로
소식지는 안받음

5. 한글 설정
Setting > Interface > Skin > Fonts - Arial 선택 
Setting > Interface > Regional > Language > Korean 선택

6. 자동 업데이트 중지
이미지가 나온지 얼마 안되기도 했고, 일단 잘 움직이면 안건드리는게 상책.
설정 > My OSMC > 업데이트(구름 아이콘) > Schedule > Never

7. 리모콘 및 Yatse(핸드폰 앱) 설정
리모콘 - 별도의 설정 없이 사용 가능
Yatse > 호스트 관리 > + 버튼 > KODI > osmc 선택 > 계정정보 osmc/osmc > OSMC 화면에서 경고 확인

7. SSH 접속
(4. 초기 설정에서 SSH 활성화 필요)
초기계정정보는 osmc/osmc
처음 로그인 하면 apt cache update 한다고 나오고, 이것도 한 5분은 걸린 듯.
레파지토리 정보 다운로드 (참조의 Disney Plus 부분에서 1 ~ 4 번에 해당)

$ wget https://k.slyguy.xyz/repository.slyguy.zip

8. 저장소 추가
설정 > 시스템 > 애드온 > 알 수 없는 소스 [*]
설정 > 애드온 탐색기 > 압축 파일에서 설치 > 수동 업데이트 경고 - 예 > 홈폴더 >  다운 받은 repository.slyguy.zip 선택

9. Disney Plus 애드온 설치
설정 > 애드온 탐색기 > 저장소에서 설치 > SlyGuy Repository > 비디오 애드온 > Disney+ 선택
2022-01-01 기준으로 0.10.8 설치됨 (의존 패키지도 함께)

10. 로그인 설정
비디오 > 비디오 애드온 > Disney+ > Login > Profile 선택

11. Widevine CDM 설치
처음 비디오를 재생하면 Widevine CDM (DRM 플러그인)설치 화면이 나온다.
옛날 버전이지만 4.10.1679.0 (REVOKED) 을 선택하면 재생은 된다.

참조
https://www.makeuseof.com/tag/netflix-amazon-video-plex-raspberry-pi/


2021년 12월 23일 목요일

도커 컨테이너 쉘에서 ctrl + p 동작시키기

bash (emacs 모드) 에서 ctrl + p 를 누르면 이전 명령어가 나오는데
도커 컨테이너의 bash 에서는 이게 안된다.
몇 번인가 검색을 해봐도 이유를 찾을 수 없었는데, 이런 이유였다.

https://titanwolf.org/Network/Articles/Article?AID=daaad3d5-2f85-4000-be60-8245bf172577

ctrl + p 는 도커에서 detach 키의 일부로 인식하기 때문에 두 번 눌러야 전달이 된다

그래서 나온 해결법은 도커의 detach 키를 변경하는 것.

cat ~/.docker/config.json
{"detachKeys": "ctrl-\\"}

뭔가와 충돌나는걸 발견할 때까지는 이렇게 쓰면 될 것 같다.
도커 컴포즈는 1.20.0 이상이어야 한다고 한다. 


이건 검색하다 단축키 정리가 잘되어 있어서...

http://www.secmem.org/blog/2019/04/10/bash-shortcut/

2021년 6월 16일 수요일

ssh 로그인 후 사용자 변경

서버에 A 계정으로 로그인후 B 계정으로 바꿔서 작업해야 하는 상황.
B 계정으로는 로그인이 안되고 A 계정은 로그인만 되고 아무것도 못함.

서버에 로그인은 A 계정의 비밀키로 간단하게 할 수 있지만 
local $ cat ~/.ssh/config
Host server
    Hostname server
    User userA
local $ ssh server

B 계정 전환은 매번 입력해야 한다.
server $ su - userB
password:   # userB 의 암호 입력
server $ whoami
userB
A 계정 로그인과 B 계정 전환을 한 번에 하고싶다.
local $ cat ~/.ssh/config
Host server
    Hostname server
    User userA
    RequestTTY yes # 또는 force
    RemoteCommand su - userB
local $ ssh server
password:   # userB 의 암호 입력
server $ whoami
userB
sudo 를 사용할 수 있거나 /etc/pam.d/su 를 편집할 수 있으면 userB 의 암호 입력도
생략할 수 있지만 둘 다 권한이 없어 여기까지이다

2021년 6월 10일 목요일

홈디렉토리에 deb 설치하기

2022.10.11 추가
참고로 아래의 경우는 conda 를 사용하면 더 쉽게 해결된다.
miniforge 를 설치하고 가상 환경을 만들어 같은 기능을 하는 패키지를 설치한다.


$ python app.py
. . .
OSError: sndfile library not found

$ pip install sndfile
. . .
fatal error: sndfile.h: No such file or directory


위와 같이 sndfile 패키지가 없어 설치하려니 헤더파일이 없어 빌드가 안된다.
이 서버의 계정은 일반 사용자라 패키지 설치도 마음대로 할 수 없다.

패키지를 홈디렉토리에 설치하여 사용하려는데 ubuntu 에서는 이 기능을 지원하지 않는다고 한다.

검색 끝에 찾은 것이 https://serverfault.com/a/818025 방법이다.
이 스크립트는 패키지 파일을 풀어서 지정한 경로를 루트로 하여 파일을 복사한다.

% 두 군데 수정했다.
 file="${PREFIX}${f}"  => file="${PREFIX}/${f}"
vim ...  => sed 's#/usr#'$PREFIX'/usr#' "$file"

설치할 패키지는 https://pkgs.org/ 에서 검색한다.

먼저 필터 설정
Filter > Distros 클릭 > 다음과 같이 설정한다. (환경에 맞춰 선택) 
Distributions: Ubuntu 20.04 LTS (Focal Fossa)
Repository Architectures: Intel 64-bit
Repository Types: Official

sndfile.h 를 검색하니 다음과 같이 나왔다
libsndfile1-dev_1.0.28-7_amd64.deb

$ apt download libsndfile1-dev
$ install.sh libsndfile1-dev_1.0.28-7_amd64.deb
$ pip install sndfile
fatal error: sndfile.h: No such file or directory

파일은 설치 되었는데 여전히 에러가 난다. 
https://stackoverflow.com/a/28981343 과 같이 pip 에게 헤더의 경로를 알려줘야 한다.
$ export PKG_CONFIG_PATH=~/.local/user/lib/x86_64-linux-gnu/pkgconfig
$ pip install --global-option=build_ext --global-option="$(pkg-config --cflags-only-I sndfile)" sndfile
ld: cannot find -lsndfile

헤더파일은 해결되었고 이번엔 라이브러리의 경로를 추가한다.
$ pip install --global-option=build_ext --global-option="$(pkg-config --cflags-only-I sndfile)" --global-option="$(pkg-config --libs-only-L sndfile)" sndfile
ld: final link failed: bad value

라이브러리 경로를 확인해봐야 한다.
$ pkg-config --libs-only-L sndfile
$ ls -l ~/.local/usr/lib/x86_64-linux-gnu
libsndfile.so -> libsndfile.so.1.0.28

실제 파일이 없다. 실제 라이브러리가 있는 패키지를 받아 설치한다.
$ apt download libsndfile1
$ install.sh libsndfile1_1.0.28-7_amd64.deb
$ pip install --global-option=build_ext --global-option="$(pkg-config --cflags-only-I sndfile)" --global-option="$(pkg-config --libs-only-L sndfile)" sndfile

설치 되었다.
다시 실행시켜 본다.
$ python app.py
. . .
OSError: sndfile library not found

똑같다. 실행할 때도 라이브러리 경로를 줘야할 것 같다.
$ LD_LIBRARY_PATH=~/.local/usr/lib/x86_64-linux-gnu python app.py
OSError: cannot load library 'libsndfile.so.1': libFLAC.so.8: cannot open shared object file: No such file or directory

스크립트가 있던 페이지에도 써 있듯이 의존관계는 알아서 해결해야한다...
libflac8 와 libvorbisenc2 를 추가로 설치하고 동작했다.
LD_LIBRARY_PATH 는 .bashrc 에 추가해둔다.


참고:
- https://serverfault.com/a/818025
- https://stackoverflow.com/a/28981343
- https://pkgs.org/