이 웹페이지는 Smart Zynq 보드의 기능을 탐색하는 소규모 프로젝트 그룹 에 속합니다.
이 프로젝트는 중국 독자들에게 추천하는 HelloFPGA로도 출간되었습니다 . 이 페이지에 설명된 방법을 보여주는 짧은 비디오 도 있습니다.
소개
Linux 컴퓨터에서는 그래픽 소프트웨어를 사용하여 다른 컴퓨터에서 window를 열 수 있습니다. 즉, 소프트웨어(예: Google Chrome)는 한 컴퓨터에서 실행될 수 있지만 이 소프트웨어의 사용자는 다른 컴퓨터 앞에 앉아 있습니다. Microsoft Windows 에도 유사한 솔루션이 있지만 이러한 솔루션은 일반적으로 나쁜 사용자 경험을 제공합니다. Linux는 원격 위치에서 작업하는 데 훨씬 더 적합합니다.
사람들은 대개 자신의 컴퓨터나 노트북에서 작업하기 때문에 이 기능은 자주 사용되지 않습니다. 그러나 컴퓨터에 모니터가 연결되어 있지 않으면 이 기능이 유용할 수 있습니다.
이 튜토리얼에서는 Xillinux 에서 그래픽 소프트웨어를 실행하여 마우스, 키보드 및 모니터가 Microsoft Windows 컴퓨터에 연결되는 방법을 설명합니다.
X server
Linux desktop 의 기본은 X-windows입니다. 이것은 매우 오래된 소프트웨어이지만 오늘날에도 잘 작동합니다. Microsoft Windows 컴퓨터와 달리 그래픽 인터페이스는 X server를 기반으로 합니다. 이것은 TCP/IP server를 구현하는 일반 컴퓨터 프로그램( user space에서 실행)입니다. 이 서버는 일반적으로 port 6000을 수신합니다. 컴퓨터 화면에 window를 표시하려는 모든 프로그램은 TCP/IP를 통해 이 서버에 연결됩니다. 모든 그래픽 정보는 이 TCP/IP 연결을 통해 전송됩니다. 사용자의 키보드 스트로크와 마우스 움직임도 이 연결을 통해 전송됩니다.
window를 제어하는 프로그램은 동일한 컴퓨터 또는 다른 컴퓨터에서 실행될 수 있습니다. 연결은 TCP/IP를 기반으로 하기 때문에 이는 중요하지 않습니다.
오늘날 대부분의 Linux 컴퓨터에서는 다른 컴퓨터에서 TCP/IP를 통해 X server 에 직접 연결할 수 없습니다. 보안 문제로 인해 이 기능이 꺼져 있습니다. 게다가 두 대의 Linux 컴퓨터를 연결하는 안전한 대안이 있습니다: "ssh -X". 그럼에도 불구하고 Linux 컴퓨터에서 실행되는 그래픽 프로그램은 일반적으로 다른 컴퓨터의 디스플레이에 연결할 수 있습니다.
따라서 Microsoft Windows 컴퓨터에서 X server를 실행하는 것이 유용합니다. 이 X server를 사용하면 다른 컴퓨터에서 실행되는 프로그램이 Microsoft Windows 컴퓨터에서 GUI 인터페이스를 제공할 수 있습니다. 두 가지 옵션을 제시하겠습니다. 처음에는 전체 Linux desktop이 Microsoft Windows 컴퓨터에 나타납니다. 다음 단계는 Linux 컴퓨터에서 실행되는 컴퓨터 프로그램에 속하는 하나의 window 만 제시하는 것입니다.
준비
먼저 vcxsrv를 다운로드하여 설치하세요. 설치 절차는 모든 Microsoft Windows 응용 프로그램과 동일합니다.
다음 단계는 Microsoft Windows를 실행하는 컴퓨터의 IP address를 찾는 것입니다. 다음과 같이 Command Prompt 내부에서 ipconfig를 사용하십시오.
> ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.1.11
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.3
다음 단계는 Microsoft Windows Defender Firewall을 끄는 것입니다. 그렇지 않으면 Xillinux 에서 실행되는 컴퓨터 프로그램이 X server에 연결할 수 없습니다. 실제로 Xillinux 의 ping 도 실패합니다.
분명히 firewall을 끄면 컴퓨터가 네트워크 공격에 취약해집니다. 따라서 이 작업을 수행하기 전에 컴퓨터 네트워크가 외부 firewall 로 보호되는지 고려하는 것이 좋습니다.
"Turn Windows Defender Firewall on and off"로 이동합니다.
그런 다음 방화벽을 끄십시오.
firewall이 꺼진 후 Xillinux board가 Microsoft Windows 컴퓨터에 연결될 수 있는지 확인하십시오. 예를 들어 Xillinux에서 ping을 사용해 보세요.
root@localhost:~# ping 192.168.1.11 PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data. 64 bytes from 192.168.1.11: icmp_seq=1 ttl=128 time=0.797 ms 64 bytes from 192.168.1.11: icmp_seq=2 ttl=128 time=0.790 ms 64 bytes from 192.168.1.11: icmp_seq=3 ttl=128 time=0.782 ms ^C --- 192.168.1.11 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1998ms rtt min/avg/max/mdev = 0.782/0.789/0.797/0.033 ms
Microsoft Windows에서 Linux desktop 실행
vcxsrv를 시작하려면 XLaunch라는 아이콘을 클릭하십시오.
첫 번째 pop-up window의 경우:
- One Large Window를 선택하세요.
- Display number의 경우 0을 선택하세요. 기본값인 -1을 사용하면 프로그램이 server의 번호를 선택할 수 있습니다. 이로 인해 혼란스러운 동작이 발생할 수 있습니다.
두 번째 pop-up window의 경우: "Start no client"를 선택합니다.
세 번째 pop-up window의 경우: "disable access control"를 선택합니다. 이를 통해 Xillinux board에서 연결할 수 있습니다.
이 세 개의 pop-up windows이후에 vcxsrv는 크고 비어 있는 window를 엽니다. 이 window 의 모든 것은 검은색입니다.
이제 이 커다란 window를 Xillinux의 desktop로 채워보겠습니다. Xillinux board의 shell 에 다음을 입력하세요.
root@localhost:~# DISPLAY=192.168.1.11:0 /etc/X11/Xsession
이 명령이 실행된 후 몇 초 후에 Microsoft Windows 컴퓨터에 그래픽 데스크탑이 나타납니다.
ssh를 사용하여 desktop을 시작하는 것도 가능합니다. 예를 들어 Xillinux board의 IP address가 192.168.1.123라고 가정해보자. 이 명령은 Command Prompt window ( Microsoft Windows 컴퓨터)에서 사용할 수 있습니다.
> ssh root@192.168.1.123 "DISPLAY=192.168.1.11:0 /etc/X11/Xsession"
ssh를 사용하기 전에 root user 의 비밀번호를 설정해야 합니다.
vcxsrv의 window 내부에서 Copy를 사용하고, Microsoft Windows내부에서 일반 window 에서 Paste를 사용할 수 있습니다. 그 반대도 가능합니다.
"/etc/X11/Xsession"는 desktop을 시작하는 명령입니다. "DISPLAY=192.168.1.11:0"는 environment variable에 값을 할당합니다. 이는 프로그램이 원격 컴퓨터에 연결하도록 지시합니다.
DISPLAY 할당은 두 부분으로 구성됩니다. 첫 번째 부분은 IP address (이 예에서는192.168.1.11 )입니다. 두 번째 부분은 Display Number입니다. vcxsrv를 시작했을 때 Display Number가 0로 선택되었음을 기억하세요. 이것이 DISPLAY 의 두 번째 부분이 ":0"인 이유입니다. 이는 TCP client가 port 6000에 연결되도록 지시합니다. 다른 Display Number를 선택하는 경우 그에 따라 DISPLAY 도 변경해야 합니다. 예를 들어 Display Number가 5라면 DISPLAY는 "192.168.1.11:5"여야 합니다. 이 상황에서 TCP client는 port 6005 에 연결을 시도합니다.
Microsoft Windows에서 단일 Linux window 열기
이제 window가 Microsoft Windows 컴퓨터에서 열리도록 Xillinux에서 그래픽 컴퓨터 프로그램을 실행하는 방법을 보여 드리겠습니다.
이전과 같이 vcxsrv를 시작하지만 한 가지 차이점이 있습니다. One Large Window를 선택하는 대신 Multiple Windows를 선택하세요. 이 차이점을 제외하고 이전과 동일한 선택을 하세요.
이전과 달리 3개의 pop-up windows이후에는 새로운 window가 열리지 않습니다. 구성이 완료된 후 아무 일도 일어나지 않는 것처럼 나타납니다. 그러나 이것은 오해의 소지가 있습니다. X server가 실행 중이며 요청을 기다리고 있습니다.
예를 들어 Xillinux에서 다음을 시도해 보세요.
root@localhost:~# DISPLAY=192.168.1.11:0 gnome-text-editor &
그러면 Microsoft Windows 컴퓨터에서 텍스트 편집기가 시작됩니다. terminal window를 시작하는 것도 가능합니다:
root@localhost:~# DISPLAY=192.168.1.11:0 lxterminal &
이 방법으로 terminal windows를 열면 다음과 같은 이점이 있습니다. 더 이상 "DISPLAY=192.168.1.11:0" 부분을 추가할 필요가 없습니다. 이는 이 terminal에서 시작되는 모든 명령의 기본값입니다.
앞에서 언급했듯이 ssh를 통해 명령을 보내는 것이 가능합니다. terminal window를 시작하려면 Microsoft Windows의 Command Prompt 에 다음을 입력하십시오.
> ssh root@192.168.1.123 "DISPLAY=192.168.1.11:0 lxterminal"
이전과 마찬가지로 이 예에서는 Xillinux board의 IP address가 192.168.1.123라고 가정합니다.
안타깝게도 X server를 종료하는 간단한 방법은 없는 것 같습니다. X server가 이 모드에서 실행되면 프로그램을 나타내는 window가 없습니다. 따라서 server를 중지하는 방법은 Task Manager를 사용하는 것입니다. "VcXsrv windows xserver"라는 작업을 찾아 "End Task"를 클릭합니다.