이번에는 취미로 구매한 라즈베리파이 제로를 사용하기 위한 가장 기초적인 headless setup을 진행한다.
필자는 일반 버전과 w 버전 둘다 시도해보았으며 작업 환경은 windows 11 이다.
라즈베리파이 일반 버전 (Without wireless) 일반 버전은 추가적인 장비 없이 터미널을 여는 가장 쉬운 방법은 usb로 접근하는 방법이며 여기서는 usb로 ssh에 접근하는 방법에 대해서 다룬다.
Raspberry Pi OS Imager를 다운로드하고 설치 후 Raspbian Lite 버전으로 부팅 카드를 만들고 그림 1 과 같이 생성된 디렉토리 내부에 ssh 이름으로 빈 파일을 만들고 config.txt와 cmdline.txt 파일을 각각 그림 2 와 그림 3과 같이 수정한다.
usb를 통한 네트워크 통신을 하기 위해 RNDIS 드라이버를 다운로드 하고 호스트네임으로 쉽게 라즈베리파이제로에 접근하기 위해 Bonjour를 설치한다.
Bonjour 설치가 끝났다면 이제 라즈베리파이제로에 부팅 카드를 삽입하고 usb로 컴퓨터랑 연결한다. (이때 그림 4 처럼 PWR 포트가 아니라 USB 포트로 연결해야 한다.)
그림 5 와 같이 인식하는 usb 포트번호를 확인하고 그림 6 과 같이 해당 포트의 드라이버를 다운로드한 RNDIS 드라이버로 업데이트한다. 그러면 그림 7 과 같이 네트워크 어댑터가 생성됨을 확인할 수 있다.
마지막으로 그림 8과 같이 pi@raspberrypi.local 로 접속해 본다. (비밀번호는 raspberry 이다.)
드라이버를 설치했지만 접속이 안되는 경우는 Bonjour 설치 확인 또는 라즈베리파이제로를 컴퓨터에서 분리하고 다시 연결해본다.
라즈베리파이 w 버전 (With wireless) w 버전은 와이파이를 지원하기 때문에 이를 이용하면 쉽게 ssh 접근이 가능하며 여기서는 wifi로 ssh에 접근하는 방법에 대해서 다룬다.
Raspberry Pi OS Imager를 다운로드하고 설치 후 Raspbian Lite 버전으로 부팅 카드를 만들고 해당 디렉토리의 내부에 그림 9 와 같이 비어있는 ssh 와 wpa_supplicant.conf 파일을 만들어준다.
위 설정은 WPA2-PSK 알고리즘과 AES 암호 알고리즘을 사용하는 공유기를 위한 설정이다. 기본적으로 대부분 이렇게 설정이 되어있을 것 같지만 아닌경우 각자 자신에게 맞는 설정을 해야할 필요성이 있다. 좀더 자세한 설명과 예제는 wpa_supplicant.conf 에서 확인할 수 있다.
다음 cmdline.txt 파일을 그림 10 과 같이 수정해서 이더넷 모듈을 활성화 한다.
전원을 인가한 후 2 분 정도 기다리면 그림 11 과 같이 공유기 웹 페이지에서 raspberrypi라는 호스트 정보가 나온다.
마지막으로 그림 12 와 같이 확인한 ip 정보를 이용해 ssh 접속을 시도한다. (비밀번호는 raspberry 이다.)
Windows 라이센스는 인증 채널은 종류가 여러가지 있다. 하지만 이 중에서 일반 사용자가 접할 수 있는 라이센스 인증 채널은 아마 Retail과 OEM 그리고 Volume 채널이라고 생각한다.
Retail 채널은 정식적으로 Windows 구매를 하고 인증이 된 컴퓨터에서 확인할 수 있으며 자유롭게 다른 컴퓨터로 인증 이동이 가능하다.
OEM 채널은 컴퓨터 제조업체에서 구매한 컴퓨터에서 확인할 수 있으며 한 컴퓨터에만 인증이 고정된다.
Volume 채널은 비즈니스, 교육용이면 확인이 가능하지만, 전자상거래에서 단돈 몇천원에 판매하는 라이센스에서도 발견된다. 만약 싸게 구매한 라이센스라면 비즈니스 또는 교육용 라이센스가 유출된 라이센스를 구매한 경우이며 이는 불법이고 종류에 따라서 인증이 쉽게 풀리는 경우도 발생한다. 물론 다른 컴퓨터로 인증 이동이 불가능하다.
채널 종류는 (Win 키 + R -> cmd -> slmgr -dli 입력) 을 순서대로 진행하면 그림 1과 같이 메세지창에서 확인이 가능하다.
*시작하기에 앞서 본 글의 목적은 WSL에서 CUDA를 설치하는 게 목표이다. 하지만 이 과정에서 Windows 11로 업그레이드가 진행되기 때문에 업그레이드를 원하지 않는 유저는 다른 방법을 찾아봐야 한다. 그리고 단순히 Windows 11로 업그레이드가 하고 싶은 유저는 Windows 11 설치단계까지만 진행하면 된다.
Windows Insider Program 등록 없이 바로 WSL를 설치할 수 있지만, 본인이 직접 진행해 본 결과 CUDA를 사용할 수 없었다. 아쉽지만 문서에서 요구하는 대로 설치를 진행할 수밖에 없다. (OS build 20262 or higher)
등록 방법은 쉽다. Settings에 들어가서 왼쪽 메뉴에서 Windows Insider Program을 클릭하고 Microsoft 계정으로 로그인해서 등록하면 끝이다. 그리고 그림 1과 같이 Insider Channel을 Dev Channel로 변경하고 Windows Update 메뉴로 들어가 업데이트를 확인해주면 자동으로 Windows 11을 다운로드하고 설치를 진행한다.
이 경우에는 레지스트리를 바꿔서 채널을 바꿀 수 있다. 레지스트리 편집기를 열고(Win + R) 아래 경로로 순차적으로 접근하여 레지스트리를 수정한다.
1. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Selection 경로에서 UIBranch의 값을 Dev로 변겅
2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability 경로에서 BranchName을 Dev로 변경
이 과정을 모두 끝내면 Insider Channel이 Dev로 바뀌어 있음을 확인할 수 있다.
Issue 2.그림 2와 같이 The PC must support TPM 2.0 에러가 발생하는 경우
이는 메인보드에서 TPM 기능을 활성화하지 않아서 발생하는 에러로 그림 3과 같이 BIOS에서 활성화가 가능하다. 모든 메인보드가 본인이 사용하는 메인보드와 같지 않기 때문에 그림 3은 참고용으로만 확인하고 TPM 기능 활성화 옵션은 자신의 메인보드 메뉴얼을 직접 검색해서 찾아야 한다.
Issue 3.그림 2와 같이 The PC must support Secure Boot 에러가 발생하는 경우
이는 메인보드에서 Secure Boot 기능을 활성화 하지 않아서 발생하는 에러로 마찬가지로 BISO에서 설정이 가능하지만 이를 위해서 부팅모드를 기존 Legacy에서 UEFI로 전환해야 한다. 그리고 이 과정에서 UEFI는 GPT 파티션 스타일만 지원하기 때문에 기존 MBR에서 GPT로 파티션 스타일을 전환하는 과정도 거처야 한다.
다음은 WSL 설치 단계로 Control Panel에서 Programs and Features 메뉴에 진입하고 Turn Windows Features On or Off를 클릭해서 그림 7과 같이 Virtual Machine Platform 과 Windows Subsystem for Linux 옵션을 켜준다.
컴퓨터를 재부팅 한 후 그림 7과 같이 Microsoft Store App을 실행하고 우분투를 설치한다.
이에 대해서 스가총리는 "국가의 보물인 어린이들을 위한 정책을 무슨일이 있어도 진행하지 않으면 안된다. 기관의 잘못된 수직관계를 타파하고 조직의 모든 문제근원을 제거하는 것 부터 생각하는 것도 필요하다. 먼저 당 내부부터 검토를 진행해 나가고 싶다. 요망을 극히 무겁게 받아들이고 확실하게 대응하고 싶다." 라고 말하며 의욕을 표했습니다.
입헌민주당의 타나부 마사요씨는 신종 코로나바이러스의 영향을 받은 사업자의 지원에 대해서 "지속화 지원금을 지원해 주기를 원한다. 봄이 찾아와도 사람들이 나오지 않는다. 사람들은 [대출이 있다.] 라고 말하는 등 추가적인 대출은 받을 수 없는 힘든 상황이다." 라고 말하였습니다.
이에 대해서 스가총리는 "기후변화는 큰 과제로써 의논하고 싶다. 세계최대의 온실가스 배출국인 중국의 조치는 불가결하며 바이든 정권과 긴밀하게 협력하여 대국으로써 책임을 다하도록 설득을 하고 싶다. 미중을 포함해 세계 각국과도 연계해서 세계의 탈탄소화를 진행하고 싶다." 라고 말했습니다.
이에 대해서 스가총리는 "미야기, 오사카, 효고에 대해서 [확산방지등 중요한 조치] 를 실시하고 모든 음식점을 순찰하며 아크릴판의 설치 유무를 확인한다. 이러한 조치를 철저하게 하는것이 감염확산 방지에 이어진다. 감염대책에 특별한 수는 없다. 마스크, 손씻기, 3인이상 밀집지역 피하기등을 통해 감염확대를 방지할 수 있다." 라고 답했습니다.
이에 대해서 타나카 후생노동성 대신은 "감염자가 적어 국내 임상시험을 진행하기 어려운 점이 있다. 아시아에서 감염자가 적은 곳은 영미와 비교해 접종이 늦는 경향이 있다. 우리나라의 백신 제조가 비교적 늦는 것은 반성하면서 개발이 되도록 체제를 꾸리지 않으면 안된다." 라고 답했습니다.
보고서에는 이외 통신사가 제공하는 이른바 캐리어 메일에 대해서 내년까지 통신사를 변경한 뒤에도 계속 사용이 가능하도록 요구한 데 이어 NTT도코모 와 KDDI가 해약 절차를 안내하는 홈페이지를 검색사이트에 표시가 되지 않도록 설정하는 것은 [공정한 경쟁을 저해한다] 고 지적했습니다.
*(キャリアメール)캐리어 메일: 옛날 일본에서는 같은 통신사 끼리만 SMS를 전달할 수 있었고 이를 해결하기 위해 통신사에서 제공한 이메일 주소로 일본에만 있는 고객용 이메일 주소.
내년부터 고령자에게 신형 코로나바이러스 백신의 접종이 시작됩니다만, 츠쿠바 대학 그룹이 AI(인공지능)를(을) 사용한 계산 결과에 따르면 만약 도쿄에 작년 여름의 제2 물결과 같은 페이스로 감염자가 재확대 되는 경우 백신의 접종을 서둘러도 다음 유행을 억누르는 효과는 제한적이라는 결론을 지었습니다.
これは筑波大学の倉橋節也教授らのグループがAIを使ったシミュレーションで計算したものです。
이는 츠쿠바 대학의 쿠라하시 세츠야 교수 그룹이 AI를 사용하여 시뮬레이션해 계산한 결과입니다.
Relevance Feedback(RF)란 보다 더 나은 검색 결과를 얻기 위해서 초기에 얻은 검색 결과에서 연관된 결과를 다시 새롭게 입력으로 넣는 방법들을 의미하며 크게 Explicit Relevance Feedback(ERF), Implicit Relevance Feedback(IRF), Pseudo Relevance Feedback(PRF)이 있으며 PRF는 Blind Relevance Feedback(BRF)이라고도 한다 [1].
RF는 검색엔진이 내놓은 결과에서 관련성이 있는 결과를 피드백 해주어야 하는데 PRF는 RF와 다르게 유저와 추가적인 상호작용 없이 효과적인 검색결과를 얻는 방법을 의미한다 [2, 3].
이러한 PRF는 유저의 추가적인 개입이 필요가 없기 때문에 검색관련 논문들에서 많이 사용된다. PRF는 아래와 같은 과정을 거친다 [4].
1. 유저가 쿼리를 보낸다.
2. 검색엔진이 유저가 보낸 쿼리에 맞는 초기 검색 결과를 내놓는다.
3. 검색결과의 top-k는 연관성이 있는 결과로 간주하고 나머지는 관련성이 없다고 간주한다.
4. 이렇게 나온 top-k의 결과를 다시 유저 쿼리로 간주하여(Query Expansion) 다시 검색엔진에 넣고 새로운 검색 결과를 가져온다.
참고로 이러한 기법들은 반드시 문서(text, document)에만 적용된다는 법은 없다.(쉽지는 않지만 상상을 펼치면 곧 논문이 된다 ㅇㅅㅇ;)
나의 경우에는 리눅스를 ssh로만 접속해서 사용한다. 그런데 당연하지만 ssh로 웹서핑이 안되기에 데이터를 가져오는 다른 방법을 사용해야한다. 드롭박스와 구글드라이브는 많은 서드파티 유틸도 존재해서 그걸 사용해도 되지만 난 간편하게 사용할 수 있는 방법을 선호하는 편이라서 이번에 wget만을 사용해서 각 스토레지 클라우드로부터 데이터를 가져오는 방법에 대해서 서술하려고 한다.
1. google drive[1]
google drive를 위한 wget 명령어는 아래와 같고 결과는 그림 3 과 같다.(공유파일의 고유 아이디는 공유링크에서 확인 가능하다.)
$ wget --no-check-certificate "https://docs.google.com/uc?export=download&id=<공유파일의 고유 아이디>" -O "README.txt"
2. dropbox[2]
dropbox를 위한 wget 명령어는 아래와 같고 결과는 그림 6 과 같다.(복사한 공유링크 맨 뒷부분 ?dl=0 부분만 제거한다.)
$ sudo vi /etc/apache2/sites-available/owncloud.conf
> Alias /owncloud "/var/www/owncloud/"
>
> <Directory /var/www/owncloud/>
> Options +FollowSymlinks
> AllowOverride All
>
> <IfModule mod_dav.c>
> Dav off
> </IfModule>
>
> SetEnv HOME /var/www/owncloud
> SetEnv HTTP_HOME /var/www/owncloud
> </Directory>
$ sudo a2ensite owncloud.conf
$ sudo systemctl reload apache2
7. 데이터베이스 생성 및 유저권한을 설정한다. (유저 및 패스워드는 직접 정해도 된다, 다만 잊어버리지 말것)
$ sudo mysql
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS owncloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost IDENTIFIED BY 'password';
$ sudo mysql
MariaDB [(none)]> use owncloud;
MariaDB [(none)]> UPDATE oc_storages SET id='local::/RAID5/data/' WHERE id='local::/var/www/owncloud/data/';
MariaDB [(none)]> UPDATE oc_accounts SET home='/RAID5/data/admin' WHERE id=1;
5.2 ownCloud 설정수정
$ sudo -u www-data php /var/www/owncloud/occ config:app:set --value /RAID5/data fictitious datadir
$ sudo vi /var/www/owncloud/config/config.php
> 'datadirectory' => '/var/www/owncloud/data', 를 'datadirectory' => '/RAID5/data', 로 수정