A few updates for some common issues: 1. To get the Ubuntu Software Center install the `gnome-software` package with `sudo apt install gnome-software` 2. To get browsers (and any other GUI app installed as a Snap) running inside VNC, run `xhost +si:localuser:$USER` from Terminal *within* the VNC session - this won't work when running over SSH. This adds the necessary permissions for Snap-sandboxed apps to see the virtual displays.
The question used to be why you would attempt to work from an iPad instead of a laptop. Watching your channel the question is rapidly changing to why wouldn't you? iOS and Ubuntu, full coding environment and external monitor over USB-C it's brilliant.
Thank you, this is working for me on a Pi model 4 8gb. I used your custom image for Ubuntu server, and am very appreciative for your help with this. Just as a note which may help others, mine has connected with no issues using the standard Apple USB-C charge cable that came with my 2018 12.9 inch iPad Pro, and within seconds of plugging it into the iPad for the first time, the Ethernet adapter showed up in the settings menu. I connected via Blink SSH to the raspberry(.local) and all is well. 👍 I am using this set up to further my understand of Ubuntu server, and to have this solution for me to use while sat in bed is perfect. Thanks again Rob.
Not to take away from his link, but if you want to track a particular website page that sells RPis and wish to be notified when the webpage changes from say “out of stock” to “in-stock”/“order now” there are “Free” APIs that will do just that and send you a notification, best of all you Do Not have to rely on Scalping Sites or Affiliate Links. Contrary to popular belief, Affiliate links are not always the benign “Cost you Nothing” things they claim to be:( when someone signs up to participate in an Affiliate Program, they are making a profit for themselves for every person that uses the link and it’s not always because you bought the item that link was intended. When you click that link you are giving a tracking cookie and placed into a marketing campaign that operates much like a pyramid scheme aka teardrop sales platform aka trickle down system. lol it sucks because it’s not only the cookie you need to worry about, but the so called “anonymous metadata” that doesn’t work by identifying you by name, but by identifying your hardware and OS, and a ton of other things you haven’t even considered , for example “they” record your MAC address and time stamp that data with very long numbers that then become unique to you, so now your personal travels around the web carry with it Unique Identifiers that are placed in a database and even a VPN can’t disguise you because once you make a purchase or Commit to a trial you offer up even more personal data (email address) for example and a profile is being built about you, companies like MobTech in China are expert tracker’s and offer you the product to other companies that wish to target a certain democratic with either Tailored search results for marketing or political news, propaganda marketing is huge business. lol okay it’s a lot and sounds like a bad B movie, but it’s happening and the only way to really understand it is to learn how these technologies work and why. So if I can get even a few people interested, then it’s a start for change and will make a difference, good or bad, only time will tell, but right now it’s hidden in plain sight, so check out MobTech, Hadoop, hive, Spark, Apache. Cloudera. To name a few. Want a quick look at some of this tech and maybe even use it to track the tracker’s like MobTech (who btw knows more about your habits then you do, and it all started by downloading just one app off the App Store) link to a Cloudera blog blog.cloudera.com/benchmarking-nifi-performance-and-scalability/
Thank so much for this video and supplemental tutorial on your website! It has been invaluable. And this whole series of “iPad with Raspberry Pi” videos has been inspiring. Absolutely fantastic content. I just finally got a Raspberry Pi 4B 4 GB unit today and just finished setting it up using the 1 USB-C cable approach from your tutorial. I finally have my iPad Pro running iOS and a fully functioning portable Linux machine running Ubuntu. The best of both worlds! Couldn’t be happier. 😀
Can you do a more detailed video focusing on data analysis on raspberry pi+iPad combo ? Maybe a Machine Learning + Python focused video ? Or R and statistics?
I have a Linux Desktop at home which I'd love to be able to remote into from my iPad. Would love a guide on getting this to run from scratch on a new normal Ubuntu Desktop install!
I actually frequently connect to x86 pc with ubuntu to run some blockchain nodes and/or tests and i use my ipad connected to my macbook as secondary monitor - i connect through anyDesk and it works similarly to what is shown in the video. Raspberri-pie won't work for my needs but the setup itself is pretty cool.
Hi there! I thoroughly enjoyed watching the video. I’m interested in investing in a Raspberry Pi 5 for educational purposes, and I wanted to follow this video to connect my Pi5 to my iPad Pro. Before making a purchase, I wanted to know if the same setup can be applied to the Pi5 compared to the Pi4. I’ve come across various posts on Reddit where people have encountered issues connecting their Pi5 specifically to the iPad over USB-C. However, these posts are quite old, so I’m not sure if the setup has been simplified over the past few months or if someone discovered this method in the video to work with the Pi5. If the setup is indeed more challenging to set up with the Pi5 compared to the Pi4, then I might consider purchasing the Pi4 instead.
when the raspberry pi had beta firmware for booting from a flash drive or m.2 ssd instead of an sd card, i had to follow a similar process to get my rpi running with ubuntu server first then applying desktop gui on top of that. back then, the server version was only available but not the desktop for the pi. if this video was 2 to 3 years earlier (when the firmware was first released) then this would have helped then but it is a very useful video to have on reference today. it is interesting to note that even today the ubuntu rpi desktop still is not as supported as the server version in many aspects. i thought that was already sorted out by now.
It could well be my inability to configure Network Manager properly! I spent a fair few hours following the docs but I simply cannot get usb0 to start on boot.
I got my first raspberry pi earlier this month and I am new to the hobby. I plan to use my PI with the usb c gadget functionality so I can connect it to my iPad pro and turn it into a "mini laptop" so I can work with ROS2, so far I managed to establish the ethernet connection but I haven't been able to install the GUI properly. I tried to use tigervnc and installed the ubuntu desktop minimal but the logs indicate that there are some problems with gnome I managed to create a vnc over ssh tunnel and the only thing I see is the white screen with the "Oh no! Something went wrong" message. I recently tried to install lightdm but it doesn't seem to work, the installation came with errors and I tried to fix it but it looks like it's just not compatible with my version.
This is an interesting solution. Having a Pi as an offline portable non-cloud solution is interesting. Too bad it's darn near impossible to procure a RaspberryPi due to supply chain issues. Using something like Blink / SSH / TMUX to a cloud can work well even over cellular. Would tunnel VNC/etc over SSH if using Cloud instead of a PI.
Thank you for this and your other tutorials! There helped me a lot. One question to Ubuntu, are there any advantages of disadvantages over the original Raspberry OS?
From my perspective there's not much in it. There is a lot of content about Raspberry Pi OS specifically for use with the Pi which can make some exploration easier. Conversely, there's a _ton_ of general Ubuntu content. Both are good choices vs. something like, say ArchLinux, which requires a ton more messing about!
Great video, very clear and informative. My iPad has a lightening connector, would this tutorial work if I bought a lightening to USB C adapter? Or is the port itself not powerful enough(?)
Please, could you make a video on how to set up a SBC powerful than RaspPi? I dont care about the cpu architecture, arm64 or x86 64, i am just looking for a way to run a more usable linux on the go with ipad pro 11 + magic keyboard. Of course the sbc have to use just an usb c cable, noting more, for power and video out. I cant figure out which sbc to buy Thank you Forgot to mention that it may be better to use usb uvc instead of wireless streaming
I have a few on order. I think the issues are going to be: 1. Power. I don't know if the more powerful boards will get reliable power over the USB-C connection. The iPad only delivers 7.5w that way. We can solev this with a hub. 2. To the best of my knowledge, the iPad doesn't accept HDMI input so getting a better video setup is going to require something a bit more creative.
I have some problems, without configuring the wifi i’m not able to use cerains things like the store bc it didn’t recognize my internet access via ipad. Thank you so much for all you explications😊
In this setup you don’t get Internet via the iPad. You can tether to the iPad if it’s cellular but with WiFi you need to connect the Pi to the same WiFi as the ipad
One thing I am struggling with, is the image creation. I have installed Packer and Go and I found out how to create the plugin but I can't get Packer to run without an error "error initializing builder 'arm': Unknown builder arm. Would be good to have a short instruction video on how to get the ubuntu image created.
Hello. Thank you very much for the great content, always showing new things to newbies like me. Can you make a video, comment or post it in you site the variant you use with xnomad? A total bonus if you show us your xnomad configuration (another idea for a good video?). I've tried it myself but I'm a lost on what to put in the xstartup file.
Haven't been able to make it work on ubuntu 24.04 LTS on Raspberry pi 5. I managed to establish a ethernet usbc connection with network manager and netplan (no dchp) but the tigervnc part its just not working.
I use Arch on my desktop and laptop. I haven't really made much progress with it on the Pi - it's quite an involved setup. If I get it going I will share on the channel.
Excellent Tutorial. I have one problem with the key-mapping in Jump. When pressing `option-L` on the smart-keyboard, i won't get the at sign. I've tried changing the keyboard layout to macintosh, but that won't help. Is there any setting in Jump that I missed?
Thank you for the content. I was really glad to see you return to the channel after your time away. I’m getting stuck somewhere, and I don’t know what I missed. When connecting via Jump, I get an error after entering my SSH password. It tells me to please make sure TCP forwarding is enabled on the server, and it will not go any further. Any idea what’s going on?
@Tech Craft Could u possibly do this exact same setup for fedora linux with the server and the usb c ethernet and the tigervnc setup if u can walk me through that would be much appreciated thanks
Hello, thank you very much for the tutorial. I can talk to the Ubuntu server no problem over the USB-C connection, but when I try to update packages on the raspberry pi, it only works if the PI itself is connected to Wi-Fi on its own. Is there a way to forward the internet connection of the iPad through the USB-C cable as well? I thought that was supposed to happen automatically based on using the custom raspberry pi image, but I must be missing something. Thank you in advance!
Wow man, amazing job. I've a question: is there a Jump Desktop free alternative that allows to access the raspberry in the same way? I've tried so many free vnc viewers on the App Store, but none was able to connect in the same way you do (they wasn't able at all)
Thanks! When I do use Ubuntu I use Ubuntu Server. However, feedback from a lot of viewers was that they wanted to see Ubuntu Desktop so I wanted to figure out a nice mechanism for getting it set up.
@@tech_craft great! thanks a lot! we are learnt so much from you. anyways, Im a data engineer, but I just started to use raspberry pi for my ipad, so I'd like to know, which one is better between raspberry os server vs ubuntu server for development environment?
At this point I'd say that Ubuntu Server is best. You're getting the benefit of Ubuntu being the 'default' for open source packages and with Cloud Init you have a nice way to automate the setup of your Pi.
Hey! I’m having a problem and I was wondering if anyone has had the same issue. Everything but one thing works fine… When I’m in the vnc desktop I can’t type the character “@“ with the usual key combination and in the terminal the replacement character U+FFFD appears instead. I’m using an iPad Pro and a magic keyboard with Italian layout. I have already set the layout in Ubuntu and in jump desktop, but it still doesn’t work. It works fine everywhere else in the iPad. Thanks to anyone who will be able to help!
Awesome video, this set up helps me a lot. I also followed the instruction you have on code-server. Im still a noob so can you tell me if I can have both on the same sd card? Because currently I have to keep swapping depeneding on the one I need.
@@tech_craft I had issues with the terminal not working in Vscode so the only way it worked for me is with Rasbian. Speaking of I’m trying to get the same set up where I can use jump desktop to see rasbian on my iPad using usbc. But it didn’t work for me. I managed to connect it to vnc viewer but it only works with Wi-Fi not usbc. And I prefer jump desktop. Any advice ?
After installing Jump desktop and configuring the same as explained in the video, when trying to make the connection the SSH login into RPi goes OK (even the SHH fingerprint is OK). After this while creating a tunnel I get the error "Could not create SSH tunnel please make sure tcp forwarding is enabled on the server. Channel open failure(connection failed)". No VNC credential page is displayed. What am I not doing correct here??. Any help is greatly appreciated. Thanks
@@tech_craft hello i have same issue here, log below (raspbian not ubuntu) vncext: VNC extension running! vncext: Listening for VNC connections on local interface(s), port 5902 vncext: created VNC server for screen 0 3NI3X0 New Xtigervnc server 'microwave:2 (microwave)' on port 5902 for display :2. 3NI3X0 Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/microwave/.vnc/passwd :2 to connect to the VNC server. ComparingUpdateTracker: 0 pixels in / 0 pixels out ComparingUpdateTracker: (1:nan ratio) vncconfig: unable to open display ":2"
Again: excellent video! Thank you Rob. One more question: in Ubuntu the user „pi“ always has to fill in his password when using the sudo command (therefore your shortcut (script) for turning off the pi is not working!). What do you recommend and how can i avoid this (change the solders-file?)? Thank you a lot and best wishes!
Hi! Did you end up finding a solution? I am trying to do the same thing, I made the ethernet connection work but can't build the GUI because of some gnome errors.
Ugh... maybe I'm the only one, but this project was depressing. Errors at every turn. Strange behavior where the appearance setting tab is missing. I was able to get access to it once, but then disappeared again. I've tried installing multiple web browsers (Firefox/chrome/chromium) but each give different errors during install or trying to run the first time. They do have one similar error about the display though. Firefox says "Error: cannot open display: :2". Chromium says "Unable to open X display". Some forums mention solutions referencing archaic commands about virtual memory display buffer...? Well, enough banging my head against the desk... it's bed time.
The issue with browsers is likely due to the Snap packaging. Snaps are fully-sandboxed by default so they don't have access to the virtual display used for VNC. If you run `xhost +si:localuser:$USER` in Terminal from within your VNC session, you'll add the necessary permissions to punch through the sandbox so that snaps can display on the virtual desktop. For software center, you'll want to run `sudo apt install gnome-software`
In an older video you used Screens for VNC and now in this one you used Jump, is there a major advantage of Jump over Screens? Why did you make the switch?
I made the the switch originally because Jump had better support for pointing devices, in particular the Swiftpoint Propoint. I ended up finding it generally smoother and I haven't tried Screens in any real sense since. I will give it another try and try out a few of the other options too. I think it would make an interesting video to see how the different VNC options stack up these days.
Just for clarification, the same function could be had by using remote desktop (VNC) to any server on your network (or through VPN back to a network) that's running Ubuntu correct? The perk of this approach is that you can carry around with you an external box that has Ubuntu running?
Exactly - I have both options, but sometimes you end up with no connectivity. I use my Pi on the plane/train quite a bit. We recently went on holiday and, of course, connectivity back home got cut so having the Pi was very useful.
Thanks for the video! Wondering if it is possible to use some USB-C hub with power delivery to connect external monitor, Raspberry PI and external keyboard (I have for example Moonlander with USB-C connection only, no wireless) at the same time. Also I bet docker won't run smoothly in RPI even with 8GB version and running on SSD.
I’ve found a USB hub with the right combination of powered USBC ports. I plug the hub into power and into the iPad. I can then plug the Pi into the hub and everything works. The advantage here is that, first of all, the iPad is powered, since powering the Pi from the iPad rips though the batter in about three hours, so I can charge the iPad while still using the Pi. Further, I can unplug the hub either from the iPad or from power, and the Pi continues to be powered from the other. So I can leave the Pi on the desktop and walk away with the iPad, then come back later and plug back in. Or unplug the power and walk off with the iPad and the Pi still connected. My hub does have HDMI mini ports, but I haven’t tried them yet.
Hi Rob, following this tutorial and using your pre built Ubuntu image arm64. After burning image when the pi is connected to iPad Air 2 it shows Ethernet but no IP is assigned. Pi is using local Wi-Fi and is connected to Internet but not sure what am missing such that IPad does not get assigned required IP. Any help ?
What is the bottleneck here? Because the raspberry pi connected to a monitor feels much better and faster and I really cant imagine the Ipad having problems decoding a VNC stream. Is it the usb-c ethernet connection? The VNC protocol?
@@mrmugame or for most people to even upgrade to a pro when they all run the same software. Sure your apps may run slightly faster but if your not using lumafusion, etc, I haven’t noticed a difference that has made want to upgrade but pro apps would definitely do that.
Thank you for the great video! So, just wondering, I looked at my netplan config files and I don’t see anything related to WiFi and yet the rpi is able to connect to WiFi. So where is this initial WiFi configuration located? Will adding a new WiFi connection via netplan breaks this? Is it possible for the rpi to use the iPad’s WiFi?
The netplan config is spread over a few different files. If you configure Wifi in the wizard, then you'll get a file at /etc/netplan/50-cloud-init.yaml that should contain your WiFi settings. You can edit this file to override the wifi settings. You'll need to run `sudo netplan apply` once you've made the changes.
Hey all, I'm trying to get this setup but I'm struggling with specific character entries. I'm using an iPad pro and a logitech MX mini connected to the iPad (DE layout). The usual character combinations work fine on the iPad, but when I connect to the Pi via Jump Desktop, I can't get special characters like "~" or even "@". Does anyone have a suggestion?
Right now I have Ubuntu running on my pi and hooked up to a TV. When I followed these instructions, I was able to connect via my VNC client Screens on the iPad. However, when I stopped that session, and tried to work on the pi via the TV everything was blank (I'm assuming that's because tigervnc is still running). Is there a way to have tigervnc start when trying to connect via the ipad VNC client, then turn off when I want to work on the pi via the TV? I can do this currently with the Raspberry Pi OS and RealVNC, but wasn't sure if tigervnc could do this automatically or would i have to start and stop tigervnc via an ssh client every time.
It is possible to get the same screen on both the display and the VNC. The challenge is getting it to work if there's no HDMI device plugged in. I have a video coming up soon on Kali Linux that shows this configuration using x11vnc.
Is this configuration & set up compatible with Ipad Air 2? After loading your pre-built image for ubuntu arm64 on raspberry pi 4 and then connecting it with iPad Air 2 ethernet port shows up but it is never assigned a IP so cannot communicate with Pi. Not sure if this is compatibility issue for OTG cable or something.
Gnome has built-in desktop sharing, including a "legacy VNC" switch. I know the goal here is to do everything headless, so you’ll need tigervncserver for that. But is Gnome desktop sharing otherwise useable?
I had issues getting it to work without a live desktop so I just went back to tigervnc. To be fair though, I’m not much of an expert on Gnome so there may be an obvious solution to those who use Gnome.
I was able to get everything up and running between my ipad and pi. Then I was able to install the ppa version of Firefox, however, whenever I open it the tabs crash. With this setup, are we not able to connect to the internet via a browser while we're connected to the pi via the usb-c cable?
Ubuntu switched to Snap packaging for Firefox in 22.04 (I think) so now you need a bit of extra config to allow remote access to the snap. You can run `xhost +si:localuser:$USER` from a Terminal to allow the Snap to start correctly in a VNC session.
I’m currently having issues with vncpasswd every time I type it out I get a whole prompt for some reason, this wasn’t happening before but now after a fresh install it is, it’s been stopping me from setting up my pi now and I’m not sure what should I do, I’ve set up a user password and nothing
Hey @@tech_craft thank so much for responding! This is happening when creating the password, I’ve been doing research and there is nothing stating it neither showing it, I even tried manually placing my password where it should be stored but it just doesn’t work regardless of what I try or do.
I can understand that. For me the GUI is the backup, I much prefer working in the terminal and in this setup that’s far closer to what you’d get at a full desktop.
The server variant has no GUI by default. Also, server uses Netplan for network management and Desktop uses Network Manager. I’m sure there are more differences but these are the two that seem to matter most for this setup.
@@tech_craft I don’t use an ipad just a macbook these days but I’ve been using x2go with my linux environments also coupled with zerotier it allows me to remote from anywhere
Rather than using VNC, Ubuntu being Linux, it would be better to use its native x-server support. Unfortunately, I’m unaware of a good x-client for iPad. Anyone?
@@tech_craft There is a free Lite edition (5 min. time limit) but I haven’t had any luck getting it to connect so far. Probably haven’t figured out the settings.
@@tech_craft yep. tried at work, mobile hotspot and at home. All three can do things like apt-get upgrade or install another app. But trying sudo apt install Ubuntu-desktop-minimal doesn’t work.
@@tech_craft can you provide a link to a step by step guide to follow to create the img file from json. Been trying all afternoon but when I try and run the conman I just get told there is no file or directory
I've not seen many guides - I had to mess about for a while to get it working. You can see my working recipes here: github.com/techcraftco/rpi-usb-gadget
Basically a jump box method using a VNC connection. In that scenario you might as well run all the software and apps on the Pi server. Then again this will work with any remote server/dev environment and without the limitations of the Pi. Sure with the Pi you can do work on a local/nearby Server when on a plane but creates more problems than it worth. It’s an interesting experiment but as a full on workflow? yeah nah.
I beg to differ. There's a few very instances where you absolutely need access to the GUI. I'm working on Flutter apps - I need to Android Studio installed on the Pi and that can only be done within the GUI. Once it's installed, you can leave the GUI alone and go back to working in the terminal and with Vim etc.
@@frooglepete not exactly sure what you are begging to differ. its a VNC connection to another server and is essentially a jump box setup. it makes no difference if there is a GUI or not, I made no comment about GUIs and that doesn't change the point that it's a VNC.
I cannot get this to work. Specifically, when I try to establish the connection from Jump, the connection always fails while trying to create the tunnel. A panel pops up with: Could not create SSH tunnel Please make sure tpc forwarding is enabled is enabled on the server. Details: “Channel open failure (connect failed” Any suggestions? Thanks
In the $HOME/.vnc directory you'll find some log files. Often this error comes about because the VNC server stopped for some reason. Those logs typically say why.
@@WhichwayJanus Learning to solve problems and be patient comes with the setup. This work for me: In the ssh terminal (blink) write “vncpasswd” (without quotes). Then set password and restart the service “sudo systemctl restart tigervncserver@:2” (without quotes). Then try again. Hope this helps, that solve the same problem for me.
I've seen a few common issues/fixes: 1. Sometimes setting the geometry messes up the session. Setting it back seems to work 2. Restarting tigervnc can often help `sudo systemctl restart tigervncserver@:2` 3. The logs in `~/.vnc` can usually tell you what went wrong. 4. Sometimes you'll see that the ~/.vnc/xstartup script isn't executable 5. Something it's that the vnc password hasn't been set
Is it possible to get the same set up using jumpdesktop but to access rasbian ? I managed to do it using VNC server but its not as well integrated as you managed to get jump desktop. And I can only use it over wifi not a usb-c. Please help, Im so close to having my ultimate set up thx to you.
The easiest way to do this is to use RPi OS with Desktop image and then install tigervnc as shown. From there you can connect using Jump. I rarely use the built-in VNC and find this solution to be the easiest.
@@tech_craft When I follow the instructions the thing that doesnt work for me is vncpasswd command, if I ignore it and continue with the tutorial I get an errio when trying to connect using jump-desktop. After typing in the ssh passowrd I get an error "Could not create SSH tunnel. Please make sure tcp forwarding is enabled on the server. Details: "Channel open failure(conect failed)"". I dont know how to get passed this. When I used your tutorial to install ubuntu everything worked just fine FYI.
@@tech_craft I managed to get it working ! the passwd” command still didn’t work for me but when I ran “tigervnc”, It asked me to chose a password and launched on port ending in “1” ,and when I launched it again it launched on port ending in “2”
Does connecting the raspberry pi to iPad Pro “increase” the RAM? Can I run certain apps on the pi and some on the iPad Pro simultaneously to take advantage of the RAM in both devices?
A Lightning-to-USB-C cable won't work because you can't get enough power delivered over Lightning. A viewer recently shared a solution using a Lightning OTG adapter. I haven't tested it, but I plan to very soon and will share a video showing the exact details.