 If you enjoy my tutorials and would like to see more, please think about contributing to my Patreon account at patreon.com forward slash metalx1000. Okay, today we're going to get Xorg on Debian running through Android without any of that VNC stuff. I hate VNCs in general, but especially for doing something like that. There's no need to do it. It's ugly, it's slow. Not that this technique is a whole lot better, but I'm going to show you how to really run Xorg on an Android device. So here we are. I got my tablet running Android. This is my test device. Again, I'm assuming that you have your device rooted. You're somewhat familiar with at least what ADB is. That's the Android debugging bridge. You're familiar somewhat with the Linux shell and we're going to be doing some cheer rooting. I'm not doing a tutorial on cheer rooting. I'm just going to go over that stuff real fast, but it's cheer rooting just like you would cheer root on any other system. So first thing I need to do is get my cheer root environment ready. I have an image already that I created using the bootstrap. I've done videos on that before. I'm going to go to my SD card, which isn't really an SD card, but it's my internal storage on this device. But wherever I have that image, if I list out here, you can see that I have a folder here called dev. If I list that out, you can see there's nothing in it. That's where I'm going to mount this image. It's like a two and a half gig image with a very basic Debian file system on it. I've already set up the system variables on it, which is something you're going to want to do when you set up a cheer root for an Android device or any ARM device, basically set up your paths and your home directory environment variables. So we're going to do mount-loop-t and I made this an ext file system inside this image. I'm going to say this image and where I want to mount it, which is the empty dev folder. Give it a second here to mount. There we go. Now if I list out dev, you can see for a second the file system there. So we could just cheer root into it right now, but there's a few things we want to do first. These things aren't 100% necessary, but depending on what you're trying to do, the first one is setting up our dev. So we could cheer root into this, but we don't have access to all the hardware we might need. So let's go ahead and mount a couple of things. So the first thing I'm going to do is I'm going to say mount-dash, well, first of all, let me go into my folder here. So I'm inside the folder that holds the file system of Debian, but I haven't sure rooted in yet. I'm going to say mount-dash-bind and dev-dev. Now if I hit enter now, I'm going to get an error, I believe, yes. Any time you're trying to do something inside the Android shell, something simple that you know should work, like mount, for example, and doesn't work, try putting busybox before it. I think I've mentioned that in previous tutorials. I'm not going to get into that, but busybox probably has a more advanced version of whatever program, in this case, mount that you're trying to run. So what we just did is we mounted the real dev folder from our Android system, which is where all our devices are, into our cheer root environment. So we did that. The bind was the one that was throwing that off, so I can just use the regular mount for the rest of this. I should be able to. I'm going to say dev-pts, if you ever are in a cheer root and you're getting errors saying that there's no TTYs available or PTY or whatever, like you're trying to open up X terminal, for example, which we're going to be doing, it's because you need to mount these here. So we mounted that. These next two aren't necessary for what we're doing today, but good practice when you're cheer rooting to mount proc proc proc, mount-t, and we'll say sysfs sysfs sys. One more thing we want to do, I've mentioned in previous video, the frame buffer device on most Android devices is under dev-graphics fbo, when we try to start X today, it's going to look for it under dev-fbo, not the graphics folder. We could probably tell startx, xorg to look for it someplace else, but it's easier just to link it now. So I'm going to say ln-s dev-graphics fbo, and I'm going to link that to dev-fbo. Just saying, hey, if you're looking for the frame buffer device here, well, it's actually here. That's what we're doing there. Now, we can actually go into our cheer-root. We can say cheer-root, we're already in the folder, so I'm going to put a dot saying this folder, and then I'm going to say bin-bash, and now we're in the bash environment inside dev-ian. So basically right now, we're running dev-ian, we're just using the Android kernel, but we're running the dev-ian file system, and we do have access to our devices, our hardware. So at this point, I could try to start x, and it would most likely start up, but I still have the Android interface running. And what will happen is you'll see the desktop, whatever I have installed, I have an ice window manager installed. That would flash for a second, and you'll probably see the clock down in the corner, but basically Android will still be overriding. So actually we're going to exit that at the cheer-root real quick, and we've got to kill the Android interface, the GUI. So we're going to say set-prop-ctl, again we're not in the cheer-root environment anymore, we're in the actual Android shell, stop-media, so we're going to stop the media, and then we're also going to say set-prop-ctl.stop-zygote. Now zygote is part of Android that basically starts all the Android interface processes. So if you kill that, it will kill everything. If you do that, no errors to it right, you can see on the tablet screen here that the screen is black, and sorry, just making sure the camera's still recording. And let me check how much time I got left. Okay, still got about six minutes of record time. Okay, so we did that, we killed the Android interface, let's go back into our cheer-root, we're back inside Debbie in here, I'm going to clear out the screen by typing clear properly. Now what I'm going to do is I'm going to start X. Now this may vary from system to system. I don't know much about configuring XORG config files, really I know nothing. Luckily I got into Linux after that was really not necessary anymore because things usually are automated for you in that area, and I've done this on different devices, I've been able to get XORG running, slightly different commands for each one, but this particular one, if I type start X now, in my terminal screen here on my computer, everything will look like XORG's running, but I will get nothing on the display on the device. That's because this screen on this device is actually virtual device one. So what I need to do is tell it dash dash VT1, and again that may vary on different devices on what you need to do here. I'm also going to put an ampersand here so I can continue using this shell, so do that, give it a second over here on the terminal or on the tablet. There we go. We got XORG running. Once again, this is demonstrating purposes, really there really should be no real reason for you to run XORG, but if you need to you can. Problem here is I don't know again much about XORG config files, so I don't know how to set up the touch screen. So I can't use the mouse, but I wanted to show you that we can get XORG running. Now if I want to start another thing like Xterm, again I'm going to throw that background. This is not going to work. It shouldn't here. It's going to tell me, oh, display is not set. So how do we find what display we want to use here? Well, you can go through different ones. You would say export, capital, display equals. You've probably done this before if you're really familiar with Linux systems. If you've tried to do X forwarding through SSH and you can tell it what display you want, but what display are we running and also we're running in a true. So every time we restart the machine, it doesn't clear out the temp directory, which may leave some previous display files behind, which you'll want to clear out occasionally. But what we're going to do here is we're going to CD into the temp folder and we're also going to CD from there. There's a hidden file called X11-unix and if you list, you can see there's X0, which means our display is zero. But again, if I kill this and start another display and I don't kill it properly, it will create a new one. So you look in there and probably the highest number is most likely your newest display that we just created. So I should be able to say export display equals colon zero and hit enter. Now I should be able to cross your fingers, start X term. There we go. It's on the tablet. It started up pretty fast. I'm going to try, I installed Zennedy to test. Zennedy allows you to create dialogue boxes. So I'm going to run that, hit enter, and there it is. We got our little dialogue box. And just for speed test, we'll do GL Gears. I have that installed, so I'm going to say GL Gears. And you can see them running there. And on our terminal screen over here, every five seconds we'll get an output saying we're getting 26 frames a second, which seems pretty consistent with this tablet. And again, this is a very cheap tablet. And we're also running through the frame buffer device, which means we really don't have, I don't believe, we have any 3D acceleration. So basically, we're getting this just writing to the screen. You're not getting any 3D acceleration. So you're really not going to get anything really graphical going very well. I was surprised that the Gears ran at all, let alone at 26 frames a second. So I may not have my touchscreen going, but you can see I've got XORG really running, no VNC actually running on the device. And again, it may vary slightly as far as your XORG config file. I didn't do anything with the XORG config file, whatever the default was worked here. Months ago, I did this on my other tablet. I don't really remember. I know that I didn't have to give it a virtual terminal, the VT1, but it had to do something else. And I can't remember what. So I just wanted to show that even on a cheap, like I said, $75 tablet, you can get XORG running. And again, someone smarter than me, who's a little more familiar with XORG config, should be able to get the touchscreen running. I'm going to Control C to kill that. Now I want to kill XORG. So what I'm going to do is I'm going to go PS. Actually, if I do FG, does that kill that FG? This might be better than what I was about to do, FG. And Control C to kill that PS, PSAUX. OK, I was going to go and kill it by the process ID. It still looks like the desktop is up here, but I don't believe it is. It's just we haven't cleared out the frame buffer. So if you've watched my previous videos on using frame buffer, you understand it's still written there. So now we can start Android back up. I'm going to exit out of my churroot. And I'm going to go through here. And again, this is the command we ran earlier to stop Zygote and media. And if we just do the same thing but would start, I'll hit Enter. And here we go, Android starting up. And in a little bit, we'll have our desktop, Android desktop back up. Again, this is more of a demonstration. Don't really see a real practical use for this in most cases. Really, if you're advanced enough to have the courage to do this, you should be advanced enough and comfortable enough with the shell, which I can access through a connect bot or some other terminal on Android. And really, I don't need a GUI. And the few times I may need a GUI, I would just have some sort of HTML output. It's what I would do, whether it's a shell script that outputs to HTML and opens up Firefox or another web browser, lots of ways to do it. That's what I would do. But most of the time, if you're comfortable with the shell, you're comfortable with the shell. You don't need those GUIs for most things. Again, but it's fun to do. You know that you can do it. Again, Android is Linux. It's running a Linux kernel. And once you get a full file system, such as Debian on there, there's really no limitations other than your hardware limitations. Again, we started that up using a frame buffer, which means you probably not going to get a whole lot of graphical usage out of it because you're not getting any hardware acceleration. Again, it's the best of my knowledge. But it's fun to do. It's fun to play around just to be able to say you can. And again, somewhat of an advanced tutorial. If you're really, really lost, I'll try to remember to put a link in the description to my notes that basically show everything we just did. And yeah, that's it. Thank you for watching. Please visit filmsbychrist.com. That's Chris the K. There should be a link in the description. If you really do enjoy my tutorials, I recommend you go over to my Patreon page. That's patreon.com forward slash mail x1000 and become a supporter and also have more input on what type of videos I make. And I really hope that this tutorial wasn't over most people's head. Probably will be. But those of you who are a little more advanced, I really hope that you appreciate this tutorial and maybe play around with it again. Whenever working with an Android device, make sure that you've gotten to your recovery system and made backup beforehand. Even if you're using a cheap device like I am, it's nice to not. Also, this device, this particular device, can boot off an SD card. So really it's hard for me to brick it because even if I was to wipe out the recovery system, I believe I can still boot off that or even a USB flash drive from what I've read. I have not done that. I have booted off a SD card. Anyway, getting to the end of this, thank you for watching. Visit filmsbychrist.com. That's Chris the K. Link in the description. Hope that you have a great day. Today we're going to be looking at using bootstrap to create arm images for devices such as Bogo Clubs or to get Debbie a little intro. And this is my downloadable file. You could do four connections and speed up your download. Another option would be sometimes servers have mirrored servers. So even though you have that original server, you may have another server here and here that you can download from. And Axel allows you to do that too. You have the same file on multiple servers.