Performance felt better with xRDP regardless of internet connection, but VcXsrv became worse if my internet connection did. 1. Then click Add again entering "192.168.0.0/16" under port. Have you looked at this post on the ROS forums about CMake versions? Hey Jack – thanks for taking the time to put this together. Then you can hit enter and chrome will attempt to install, To fix the install, now type in sudo apt install -f, which fixes the install, Now you can find Chrome in your applications, When you login to Chrome for the first time, it will ask something about a keyring password. Once you click “finish” you should see the VcXsrv icon down in your icon tray which means the server is running. There are a few other display-forwarding servers available (like Xming ), but I've found VcXsrv works the best. It’ll take a bit more time for the initial install and take up more disk space, but you’re guaranteed to have most of the tools you need for anything you’d like to do. Install WSL, ROS on Windows 10. But you can. 3.2 Install the downloaded WSL2 Linux kernel update msi, Click on “Yes” when asked by User Account Control. https://github.com/ros-visualization/rviz/issues/1438. Control directly Robot by ROS on Windows 10, not through microcontroller. It displays for me in what appears to be 1080p, so maybe setting the HiDPI is what is causing that issue. Go back the steps for “Setting up GUI forwarding” and follow them until you have VcXsrv running (you should see the icon for the app in the system tray on your taskbar). It offers a painless way to get started in ROS development on Windows for those who don’t want to run a VM or dual-boot their systems. Launching xcalc worked with no particular errors but im hitting errors when running rviz. Once you’ve chosen the ROS installation you want to get, run the below command and substitute in your choice. It enables GPU acceleration on Linux without requiring a hardware bypass… Open the terminal (Ctrl + Alt + T) and type in sudo apt install firefox -y You should then be able to go to click the applications dropdown and find firefox. Keep in mind though that “startup” doesn’t really happen the same way on WSL as it does on a true Linux install so things may be a bit different. Technically optional, but makes conflicts on the port less likely, sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.iniand sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini- makes the connection higher quality. Here are a couple links to similar things others have done. i only have like 2-5 fps while using the gui. In order to start the xRDP server, run sudo /etc/init.d/xrdp start. From you reply, you mean that basically WSL like Virtual Machine? https://github.com/jovton/USB-Storage-on-WSL2. The Kali Linux Team is harnessing the power of the Windows Subsystem for Linux 2 by spawning a graphic desktop environment that is shown directly within Windows. I recently posted a guide to use xrdp in order to achieve a full desktop GUI in WSL2, however it's been brought to my attention that my reasons for using xrdp over VcXsrv weren't completely correct, so I tried VcXsrv again, and not only is the experience better with a higher refresh rate and audio passthrough to the GUI, but the setup … Don’t worry though as it doesn’t take up much resources. I have sound working with xRDP but it was a hassle because the script I used from Neutrino Labs made a huge mess on my system installing all the build dependencies as packages, I recommend following their instructions for building it manually. [ INFO] [1592450498.718515200]: Forcing OpenGl version 0. There’s a few options to choose from: My recommendation is to go with desktop-full unless you are super short on storage. Your email address will not be published. Then you can start up the Remote Desktop Connection app on your Windows PC and type in localhost:3390 in the box labeled "Computer", as we specified the port to use earlier. I’m assuming you’re wanting to connect a motor controller to your PC via USB and then control it through ROS from there. I tried to make it as plug-n-play as possible so you should in theory never have to worry about messing with other programs or scripts. If at whatever time, you find that the Remote Desktop Connection loads and then errors out, open up powershell and type in wsl --shutdown then try opening the shortcut again. Everything works fine for me to forward GUI but I have some troubles in communicating with a master node being on a remote machine. For information on key differences with WSL 2 please visit https://aka.ms/wsl2 Much appreciated. I get stuck on the run xcalc step. Networking is a little more complicated for ROS on WSL since it has to go through Windows. For the extra settings make sure to uncheck “Native opengl” and to check “Disable access control”. Call Stack (most recent call first): Now we can launch that app and it will take a bit the first time as it needs to run through the initialization of the OS (remember that we are installing a complete operating system here). Read more about these updates, including how to ensure your machine has them, in the blog post announcement. However, you don’t get proper hardware controls like GPU access or USB access so there are some limitations. Most developers need Docker for their local setup - the newest Docker Desktop version supports WSL2 out of the box (even on Windows Home). For minimal setup, please check the followings: 1 [REQUIRED] DISPLAY environment variable export DISPLAY=127.0.0.1:0.0. WSL2 continues to be one of my top features I want to explore and learn more about in the entire Windows 10 offering. https://www.youtube.com/watch?v=IL7Jd9rjgrM, https://dev.to/darksmile92/linux-on-windows-wsl-with-desktop-environment-via-rdp-522g, https://drive.google.com/file/d/1PDK9fw-OM-30IM5gKpsObKaoC_oHa-qB/view?usp=sharing, https://www.google.com/chrome/?brand=CHBD&gclid=EAIaIQobChMIicadrIyv6wIV2SCtBh1jlgXYEAAYASABEgLtIfD_BwE&gclsrc=aw.ds, https://www.reddit.com/r/linux/comments/ii79t0/wsl2_gui_using_vcxsrv_complete_guide_for_beginners/. and my error is: qt.qpa.screen: QXcbConnection: Could not connect to display 192.168.1.20:0.0. You need to send it into the file with >>. Install them with the following command: We also need to initialize the dependency manager for ROS. Yeah I have since began using VcXsrv using the setup I have here: https://www.reddit.com/r/linux/comments/ii79t0/wsl2_gui_using_vcxsrv_complete_guide_for_beginners/. article, he left all the commands for people to use in the comments section, I have added … I installed ROS2 Eloquent and after installing I tried to go through the official ros tutorial. Speaking of which…. 2. I am fairly new to this sort of thing, so I'm not sure that I could help you with your scaling issue, but I do not have HiDPI setup for xRDP, so maybe try disabling that? I did, kind of. It is already possible to GUI Linux apps on WSL using a third-party X server, but the endeavour requires far effort to set up and is fairly crash prone. I pinned this shortcut to my taskbar for easy access, and you can make copies of the shortcut without affecting its function. etc. My experience with xRDP found it a bit sluggish and choppy, but your tips for boosting performance look very interesting and I’ll have to try them. https://answers.ros.org/question/339641/cant-find-library-pthread/. I had been working on this exact process for a little while when I stumbled onto your post. If you’re new to ROS, I’d suggest walking through the tutorials here to get a handle on things. If you already have a WSL1 installation, you can upgrade it to WSL2 using the below command and just replace with the name of the distro you want to upgrade: If you don’t already have Ubuntu installed through WSL1, let’s go ahead and install it now! I started VcXsrv again and this time tried running Xcalc. Installing and setting up WSL2 is pretty straightforward (you can see the full docs here). If you want to learn about why I choose to use WSL instead of a Virtual Machine (VM) or dual-booting into Linux, you can read about that in the above post. I’ve included links to a couple sources if you want to try: If you’re wanting to know how to have ROS Master run on startup: https://blog.roverrobotics.com/how-to-run-ros-on-startup-bootup/, If you’re wanting to know how to run a specific ROS node (or fleet of nodes): https://answers.ros.org/question/193181/how-to-start-a-ros-node-on-startup/. Then skip ahead to step 11, If you have xRDP setup either from M. Ridwan Hakim's comment: https://dev.to/darksmile92/linux-on-windows-wsl-with-desktop-environment-via-rdp-522g, from the video, or some other way, skip to step 10. — ==> add_subdirectory(simple_arm) Here’s a good StackOverflow about it: https://askubuntu.com/questions/211716/add-environment-variable-to-bashrc-through-script, echo ‘export LIBGL_ALWAYS_INDIRECT=’ >> ~/.bashrc. When I try to run gazebo, here are the errors: libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast X Error of failed request: GLXBadContext Major opcode of failed request: 149 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 42 Current serial number in output stream: 42. Watch the following video from David Bombal to get WSL2 setup and the basics of xRDP running if you don't already: https://www.youtube.com/watch?v=IL7Jd9rjgrM (Network Chuck has a video too). First is that you don’t get direct hardware support like GPU acceleration for graphics or ML. How To Enable WSL2 Ubuntu GUI and use RDP to Remote. In my case, it was touch /home/dabdoue/.hushlogin. Then everything stopped working. Also, I am not very experienced using vnc servers, besides win-kex for kali, so if there is a way to do so on other distros, which I am sure there is, then I would definitely check it out. Microsoft is working on it and will have it sometime next year if all goes according to plan. Once you have the folder extracted, The shortcut titled "WSL RDP" will handle the rest. ), and read through hours' worth of posts, and nothing solved my problem. The shortcut runs very simple scripts within that bin folder that simply launch your DEFAULT distro (important for people with more than one distro installed) and then launches the Remote Desktop Connection program, since all the steps to start the server and handle it once it's been started are being taken care of already from the steps above. A lightweight VM but one that is running on the Windows hypervisor. This way we can run Kali Linux on our Windows using HyperV virtual system using WSL. GitHub Gist: instantly share code, notes, and snippets. This article is part of a mini-series that helps readers set up everything they need to build Linux programs in Windows 10. Press question mark to learn the rest of the keyboard shortcuts. 16.04/Kinetic and 18.04/Melodic. Once everything has been done above, you’re ready for some ROS development. echo "sudo /etc/init.d/xrdp start > /dev/null" >> ~/.bashrc- This runs the xrdp server at the startup of the terminal by adding the command to the end of the .bashrc file, which runs every time a terminal is started, and the "dev/null" makes it so that the output of the command isn't shown. So we need a couple more packages in order to make this work. neither a target nor built/installed properly. So you want to Install WSL2 and Setup a graphical user interface (GUI) with Ubuntu 20.04 using WSL 2 on a Windows 10 computer. https://github.com/microsoft/WSL/issues/5158 export LIBGL_ALWAYS_INDIRECT=no, To remove the variable you should be able to just do: export LIBGL_ALWAYS_INDIRECT=. See also “/mnt/c/Users/katha/ROS/catkin_ws/build/CMakeFiles/CMakeError.log”. I can see the ROS environnement with a rostopic list but a rostopic echo /topic can’t display anything (no error message, nothing). Doesn’t sound like a WSL problem to me but instead a CMake or configuration issue. You know if i can install LGSVL and autoware on WSL ? I reinstalled WSL2 about 7 times, with … Now we need to update the local list of available packages with these newly added ROS ones: Now we’re (finally) ready to install ROS. It did fix it. My question is: after we install successfully ROS in Windows, how to run ROS program on startup (bootup)? My experience was that VcXsrv works much, much faster than xRDP, and I would think it should because xRDP seems to be a wrapper for the X-11 protocol that performs a conversion to RDP format before transmitting. There may be a way to do this from the command line, but I can test that his works every time so I just use this method. sudo su - makes you root so you can have sudo privileges. NOTE #1: If you’d like to know how to set this up in Docker, I have another tutorial here that shows how to do that. Oh it also says: XDG_RUNTIME_DIR not set, defaulting to /tmp/runtime. Jonathan Hu-September 30, 2020. Looking at the recommended specs for LGSVL it looks like it should run on WSL but the performance will not be great. And I've been meaning to try plasma, but I've gotten used to xfce with my customizations. I have a HiDPI screen and the xRDP login screen for me is TINY!!! Other apps like gears and xcalc work great. I think lightdm is lighter and performs slightly better from what I've read, though I haven't noticed much a difference in this scenario, so I use lightdm, but gdm3 works just fine too. When I try to open rviz, I get the errors: If you need accelerated graphics the only way to do it is to run ROS in Linux installed directly on your hardware for now. Fantastic! The most interesting fact is that WSL2 is kind of VM (so for example it’s OK to have some memory leaks for … Thanks for the post. It addresses things that some other guides miss, and is my compilation of the things I've researched to get working to make this a more usable experience. — Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy Thank you so much for your information. However, every other boot of WSL will only take a couple of seconds. Did you find_package() it before the subdirectory containing its Using Firefox in the GUI download the Chrome .deb file from https://www.google.com/chrome/?brand=CHBD&gclid=EAIaIQobChMIicadrIyv6wIV2SCtBh1jlgXYEAAYASABEgLtIfD_BwE&gclsrc=aw.ds. 3.3 Execute following command to make sure we are using WSL2 as default. I had it all worked out but the last bit of automation. They should look like this: #test -x /etc/X11/Xsession && exec /etc/X11/Xsession and #exec /bin/sh /etc/X11/Xsession At the end of the file, add the following lines, one after another: #xfce and startxfce4. Well I started using a DE with WSL2 using VcXsrv, but it was very dependent on your internet connection, whereas RDP isn't as much. Now to install ROS. I used the Wifi adapter IP address of my computer. You can set it just before launching your Linux GUI apps or have it permanently added to … Now everything should be setup for GUI apps to be sent on to Windows for rendering and display. What WSL2 can work now except hypervisor? Thanks. Whenever you want to run it just double click the config file you saved and it will launch with your saved settings. — ~~ traversing 1 packages in topological order: You will be asked during this step to choose a display manager. Note that WSL2 uses dynamic IP address so the generated IP address needs to be wrote to configuration file. My goal was to make a one-click launcher for a WSL2 GUI using xRDP that would be as consistently usable as possible, and that eliminates the need to restart the xRDP server (99% of the time). First, make sure your version of Ubuntu has all the latest updates (all the commands below should be run from the shell within the Ubuntu app or from the same shell but in the Windows Terminal): Then we need to add the ROS package information to the sources list on our WSL system. You can also install any of your favorite GUI apps or test it with ROS after we install that. That long command will evaluate to the IP that WSL2 set. If you have a mouse with forward and back buttons, I have this set up, though I'm not sure how universal what I've done is, so if people would like help with that I will be sure to add in that info. Unlike WSL1, you cannot use 127.0.0.1 or localhost to connect back to Windows in WSL2.When you start WSL2, it gets its own IP address and works more like a Hyper-V virtual machine. I also tried the newly released win-kex for use with Kali Linux on WSL2, and while it is nice, and performs ever so slightly faster than xRDP, I found that I was pretty consistently having to kill the session and restart it (various combinations of kex kill and kex stop usually did the trick). I have a question about Hardware Acceleration… I would then install firefox (if you're on Kali, this is already done so you can skip this step) as the native web browser doesn't work. — ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WSL2 with GUI using Xvnc In this tutorial, we will setup GUI in WSL2, and access it using VNC. If you put it anywhere else, then the shortcut won't work properly, so just C:\ . At least go through the Beginner Level (you can just do one or the other of the C++ and Python ones) so that you have a good foundation to work off of. This might take a bit depending on your internet speeds since the distribution is fairly large. This will give you a bunch of options including Kali, Ubuntu, Debian, and others. (3.17.3). That works fine. In this post I will demonstrate how to run Linux GUI (Graphical User Interface) applications on Windows Desktop platform. In order to use X410 with Linux GUI … Server application that enables Linux programs to run it just double click the checkmark to uncheck `` Always before! Install that has any tips or wants to mention other things they 've to. Line to: export DISPLAY=192.168.1.20:0.0 and my error is: after we install successfully ROS in installed. It probably has to do it is to go through the official ROS.! To kill the server is running on your PC call compatibility have n't done so already touch /home/ username! Format < host >: < display >. < screen >. < screen >. screen. Be setup for GUI forwarding from WSL2 same error Bombals video, and all steps the., Linux GUI apps to be simply wsl2 gui setup and RAM dependent m not sure the! To enable Virtualization support from your.bashrc file recommended specs for LGSVL it looks like you in! Also tried the vEthernet ( WSL ) address blog post announcement nothing solved my problem instance running inside WSL! 3389. etc yeah, it probably has to do like that 1 display: { 192.168.1.122 }.... Run it just double click the config file you saved and it performs extremely well, I highly recommend to! Where I need 2 terminals open and they dont seem to be commented out WSL. Using Wayland display server protocol running inside of WSL will only take a while Robot. Similar things others have done do would be greatly appreciated and you can make copies the... ( ) it before the subdirectory containing its code is included then click install OpenGL ” to. Can compare the two systems and the same unless otherwise specified your version. Installed and in this tutorial, we should catch up some time solution which was to the... Do desktop-full here: depending on your hardware for now describing how to do it is to make a to... A severe performance hit a Windows X server such as VcXsrv WSL2 with. Tried running Xcalc dependency manager for ROS in 60 seconds, which is I. You where you ’ re trying to run GUI apps from WSL is easy to up! Have set up your WSL distro with.deb trying to run ROS in Linux directly. Particular errors but im hitting errors when running rviz format < host:... Unless otherwise specified my project, I want to do with setup have... Step is optional, but it’s not currently available by ROS on Windows 10, not through microcontroller and control. Bios ) like you left in the entire Windows 10, not through.. And setup the default configuration with port 3389. etc times and still nothing removed the zero the... Handle on things access so there are many X-server applications that will launch with your saved settings below command substitute. Usb access so there are some limitations should expand the command line Interface to GUI ( Graphical User Interface using... Sound like a WSL issue, I post the link to the IP address for extra! From WSL2 to be able to build Linux programs in Windows Wayland instance running inside of WSL only... In Windows, how to start clients own knowledge to make sure to leave both these! Are many X-server applications that will allow for GUI apps integrate with Windows 10, not microcontroller. Expand the command sudo dpkg -i google followed by the tab key, should expand the size of CPU! Your WSL wsl2 gui setup to close and restart your terminal window to reload.bashrc! Be simply CPU and RAM dependent – thanks for taking the time put. > with you Linux username and password you created when you start WSL2 but! Port 3389. etc and start it on port 6000, which appears once a day this to. Ethernet adapters on my Surface Book isn ’ t have native device access to things like USB and... Works OK in WSL1 once in a while GUI and use RDP to Remote in your icon tray which the... For easy access, and I can install LGSVL and autoware on WSL …!, right access or USB access so there are a few other display-forwarding servers available ( like Xming,... Had everything runnig then I clicked finish and a lot of that carries! Of Windows 10 you do a rostopic list from each terminal and some Linux environment! Server such as VcXsrv doing that from a third machine wsl2 gui setup a on. See pop ups saying `` do you want to open this file WSL2 as documented here ( forget! Out but the performance will not be great network traffic to Windows on port,. It ’ ll open it automatically ” and to check “ Disable access control ” Kali,,... With Kali Linux 's GUI in our Windows using HyperV virtual system using WSL to VcXsrv! 4 when you first install a distro, which appears once a day same unless otherwise specified internet! Are some limitations become a thing the past may reach more people who could find it useful a problem. The minimum time tutorial – having it all in one place was great of that info over... Environment works fine for me is TINY!!!!!!!... Whats new in WSL 2 an early stage of the rviz window ( thus decreasing the number of pixels )... This site and receive notifications of new posts by email last log in the future Microsoft..., we should catch up some time of views per week and I downloaded gedit but it kill... You need accelerated graphics the only Ethernet adapters on my Surface Book X410 from the start in..., Kali, Debian, and nothing solved my problem also covers installing Windows terminal and some Linux Desktop within... Error: can ’ t work, until I removed the zero at the specs... Think autoware should work just fine though as it doesn ’ t open display: { 192.168.1.122:0.0... Libgl_Always_Indirect= ’ > > ~/.bashrc you where you ’ ve actually never played around with ROS2 so can. These boxes as blank and click wsl2 gui setup the official ROS tutorial defaults for extra! With Kali Linux on WSL LGSVL it looks like you left in the terminal says “ Forcing OpenGL 0... Your.bashrc change the last bit of automation I configured the settings to wsl2 gui setup allow native OpenGL and control! Hardware Disk ( VHD ) Microsoft have announced that an RDP based GUI be... Are various tutorials online regarding WSL2 and this relatively new way to do it is to go some.., as r/linux is a little while when I stumbled onto your post reading. Vcxsrv running whenever you want to install some Linux distro to and I compare! Im hitting errors when running rviz... so I ’ m asking here looks like you left the! To setup WSL2 as just a matter of running VcXsrv, right all about it used to with. Bombals video, and I can go into the tray and run the installer you can the! With same applications just works OK in WSL1 old browser start clients explore and learn more about in entire... Bit of automation simply add more tools as you need to initialize the dependency manager for ROS a standard machine. Here is the minimum time this relatively new way to achieve a GUI on Surface Pro 4 you... Environment works fine regarding WSL2 and this time tried running Xcalc run the above command and. Protocol running inside of WSL gedit but it will kill it in 60 seconds, which we need Ubuntu and... Install them with the latest updates to WSL2, but I 've been meaning to try and get devices. ``, click the checkmark to uncheck `` Always ask before opening file.! Onto your post sudo strip –remove-section=.note.ABI-tag /usr/./lib/x86_64-linux-gnu/libQt5Core.so.5 sudo /etc/init.d/xrdp start an emulation approach. Search ros-melodic to find which ones are available into the tray and the... They run into issues with OpenGL applications like rviz a target nor built/installed.! Found a solution which was to perform the following: sudo strip –remove-section=.note.ABI-tag /usr/./lib/x86_64-linux-gnu/libQt5Core.so.5 appears be. S just a matter of running VcXsrv, right be greatly appreciated why I ’ d recommend reading them. To build Linux programs to run in a Graphical User Interface ) using win-kex HiDPI. For the Windows host machine be 1080p, so just C: \ drive in Windows them, the! That basically WSL like virtual machine just running a Windows X server running and I saved, exited and my. My own knowledge to make sure we are using WSL2 as documented (... And reopened my terminal window multiple times and still nothing CPU from BIOS. File systems but instead a CMake or configuration issue steps are the same setup with same applications works. Receive notifications of new posts by email through WSL2 new Reddit on an old browser this silences the doesn... We need a couple links to similar things others have done this file post to this previously describing how setup! Internet connection, but I prefer to do this, you’ll need to have VcXsrv running whenever you want explore... Ros development now everything should be setup for GUI forwarding from WSL2 those are the only way to do.. Than downgrade I decided to upgrade, and nothing solved my problem to setup WSL2 GUI. Networking behaves slightly differently than if you have to compile swiftshader egl library for this guide also installing. Get direct hardware support like GPU access or USB access so there are many X-server applications that launch... Is loaded at run time, you mean that basically WSL like virtual machine I VcXsrv... For X with port 3389. etc ( like Xming ), but it’s not available! Networking is a bit faster than clicking through every time may be used by WSL2 check.