この Web ページは、Smart Zynq ボードの機能を調査する小規模プロジェクトのグループに属しています。
このプロジェクトは HelloFPGAにも掲載されており、中国の読者にお勧めします。このページで説明されている方法を示す短いビデオもあります。
序章
Linux コンピュータでは、グラフィック ソフトウェアが別のコンピュータ上の window を開く可能性があります。言い換えれば、ソフトウェア (たとえば、 Google Chrome) は 1 台のコンピュータ上で実行できますが、このソフトウェアのユーザーは別のコンピュータの前に座っています。 Microsoft Windows にも同様のソリューションがありますが、これらのソリューションは通常、悪いユーザー エクスペリエンスを提供します。 Linux は、離れた場所から作業するのに非常に適しています。
ユーザーは通常、自分のコンピューターまたはラップトップで作業するため、この機能はあまり使用されません。ただし、コンピュータにモニタが接続されていない場合には、この機能が役立つことがあります。
このチュートリアルでは、マウス、キーボード、およびモニターを Microsoft Windows コンピューターに接続するために、 Xillinux でグラフィック ソフトウェアを実行する方法について説明します。
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 に直接接続することはできません。セキュリティ上の懸念のため、この機能はオフになっています。さらに、2 台の Linux コンピュータ間でこのような接続を確立するための安全な代替手段があります。 「ssh -X」。それにもかかわらず、 Linux コンピュータ上で実行されるグラフィック プログラムは通常、別のコンピュータのディスプレイに接続できます。
したがって、 Microsoft Windows コンピュータ上で X server を実行すると便利です。この X server を使用すると、別のコンピュータ上で実行されるプログラムが Microsoft Windows コンピュータ上で GUI インターフェイスを表示できるようになります。 2 つのオプションを提示します。 最初に、完全な Linux desktop が Microsoft Windows コンピュータ上に表示されます。次のステップでは、 Linux コンピュータ上で実行されるコンピュータ プログラムに属する window を 1 つだけ提示します。
準備
まず、 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については、ゼロを選択してください。デフォルトの -1では、プログラムが serverの番号を選択できます。これにより、混乱を招く動作が発生する可能性があります。
2 台目の pop-up windowでは: 「Start no client」を選択します。
3 台目の pop-up windowでは: 「disable access control」を選択します。これにより Xillinux boardから接続できるようになります。
これら 3 つの pop-up windowsの後に、 vcxsrv は大きくて空の windowを開きます。この window はすべてが黒です。
ここで、この大きな window を Xillinuxの desktopで埋めていきます。 shell の Xillinux boardで次のように入力します。
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 の割り当ては 2 つの部分で構成されます。最初の部分は IP address (この例では192.168.1.11 ) です。 2つ目は Display Numberです。 vcxsrvを開始したときに、 Display Number が 0として選択されたことを思い出してください。これが、 DISPLAY の 2 番目の部分が「: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 を開く
ここで、 Xillinux上でグラフィカル コンピュータ プログラムを実行して、 Microsoft Windows コンピュータ上で window を開く方法を説明します。
以前と同じように vcxsrv を起動しますが、1 つ違いがあります。 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」をクリックします。