[Q] Has anyone successfully run Complete Linux Installer (or similar) - Galaxy Note Pro 12.2 Q&A, Help & Troubleshooting

Hi everyone, I'm trying to get a full blown GNU distro of Linux running on my note pro but I've hit a snag. It seems like the device should support it, but every time I try to run a script that creates loopback devices, mounts directories, etc. I get permission errors even though I definitely have root.
Here's where it gets weird. Completel Linux installer fails when it tries to run this command:
Code:
mknod /dev/block/loop255 b 7 255
and it gives this error:
Code:
mknod: /dev/block/loop255: Operation not permitted
Despite what the error says, the script is being run as root. The app automatically opens the terminal and runs the command as root, but I also tried manually executing su and running the same script but the same error occurs.
As an experiment, I tried manually running just that one mknod commad and it works fine. In fact, if I manually execute every line in the bootscript.sh file it all seems to execute perfectly fine. But if I put the exact same mknod command into a .sh file and execute it like this:
Code:
> sh test.sh
Then it gives the same error. Interestingly, if I directly run mknod as a non-root user it does not give me the "Operation not permitted" error, instead it says "Permission denied". I tried some other apps like Debian Kit as well and they seem to give the same error.
Any ideas why it would matter whether I manually enter a command into the terminal or whether I execute the same command indirectly from a file? I tried other terminal apps as well and it made no difference.
Thanks.

Graeme H said:
Hi everyone, I'm trying to get a full blown GNU distro of Linux running on my note pro but I've hit a snag. It seems like the device should support it, but every time I try to run a script that creates loopback devices, mounts directories, etc. I get permission errors even though I definitely have root.
Here's where it gets weird. Completel Linux installer fails when it tries to run this command:
Code:
mknod /dev/block/loop255 b 7 255
and it gives this error:
Code:
mknod: /dev/block/loop255: Operation not permitted
Despite what the error says, the script is being run as root. The app automatically opens the terminal and runs the command as root, but I also tried manually executing su and running the same script but the same error occurs.
As an experiment, I tried manually running just that one mknod commad and it works fine. In fact, if I manually execute every line in the bootscript.sh file it all seems to execute perfectly fine. But if I put the exact same mknod command into a .sh file and execute it like this:
Code:
> sh test.sh
Then it gives the same error. Interestingly, if I directly run mknod as a non-root user it does not give me the "Operation not permitted" error, instead it says "Permission denied". I tried some other apps like Debian Kit as well and they seem to give the same error.
Any ideas why it would matter whether I manually enter a command into the terminal or whether I execute the same command indirectly from a file? I tried other terminal apps as well and it made no difference.
Thanks.
Click to expand...
Click to collapse
try source the script ,eg: . test.sh, this works but i don't know why.

Good idea pheyx! That's a great workaround which basically solves my problem for now... or at least sends me on to the next problem
Thanks for you help.

Graeme H said:
Good idea pheyx! That's a great workaround which basically solves my problem for now... or at least sends me on to the next problem
Thanks for you help.
Click to expand...
Click to collapse
I think I've found the reason. It's due to selinux. The selinux is set to enforced on android from 4.4. I flashed a kernel that sets selinux to permissive and it resolved the issue. Now the complete linux installer ran perfectly without modifying the scripts.

pheyx said:
I think I've found the reason. It's due to selinux. The selinux is set to enforced on android from 4.4. I flashed a kernel that sets selinux to permissive and it resolved the issue. Now the complete linux installer ran perfectly without modifying the scripts.
Click to expand...
Click to collapse
how well is Linux running on it for you?
Sent from my SM-P900 using XDA Premium HD app

Yeah, how well is it running?
I guess it's out of the question both due to speed (Complete Linux Installer uses laggy VNC remote desktop) and hardware (I guess the stylus won't work pressure-sensitive-ish due to VNC), but I'd love to run MyPaint on NotePRO.

Duly.noted said:
how well is Linux running on it for you?
Sent from my SM-P900 using XDA Premium HD app
Click to expand...
Click to collapse
Redsandro said:
Yeah, how well is it running?
I guess it's out of the question both due to speed (Complete Linux Installer uses laggy VNC remote desktop) and hardware (I guess the stylus won't work pressure-sensitive-ish due to VNC), but I'd love to run MyPaint on NotePRO.
Click to expand...
Click to collapse
X Window performance is bad if using VNC, is better when using xsdl x server. Also can use fbdev(or fbturbo) native x server(and the cons is in either case must shutdown android stack),but I have no success using these two linux native x server

Related

[Guide] Installing Fedora 12 on SGS4G

Good news for this guide:
I've done it already so you just need to download the files and follow these simple instructions:
YouTube Video of earlier stages of me running Fedora 12
0) make sure your Android Device is rooted (added so I get less nonsensical "It doesn't work!!!!!" and more "I followed everything I get an <insert error here> error! HELP!"
1) download files from http://zornco.net/androfedora/
2) extract fedora_scripts.rar and place all four files (bootfedora, unmountfedora, fedora.sh, fedora.img) in /sdcard/fedora/
3) open android terminal emulator
4) run command "su" (you might have to press allow in the Superuser App)
5) run command "cd /sdcard/fedora"
6) run command "sh fedora.sh"
7) run command "bootfedora" If that returns "not found" run "sh /sdcard/fedora/bootfedora"
8) now you're in fedora (should now see [[email protected] /]#)
OPTIONAL:
9) run "service sshd start" - to run an SSH server
P.S.: I set the root password to password
P.S.S.: I'm pretty sure it's impossible to screw up your Android OS doing this unless you terribly, terribly mess up this guide
Run the scripts and post your errors <- this will help me immensely to make this available on all Android Devices! please, thank you, and have fun!
N4melessS0ldier said:
Good news for this guide:
I've done it already so you just need to download the files and follow these simple instructions:
0) make sure your SGS4G is rooted (added so I get less nonsensical "It doesn't work!!!!!" and more "I followed everything I get an <insert error here> error! HELP!"
1) download files from http://anonymouslyacquired.info/fedoraonsgs4g/
2) place all three files in /sdcard/fedora/
3) open android terminal emulator
4) run command "su" (you might have to press allow in the Superuser App)
5) run command "sh /sdcard/fedora/fedora.sh"
6) run command "bootfedora" If that returns "not found" run "sh /sdcard/fedora/bootfedora"
7) now you're in fedora (should now see [[email protected] /]#)
8) run "startvnc" (my automated vncserver script)
AND/OR
9) run "service sshd start"
If you want to see your newly installed Fedora 12 OS:
android-vnc-client to localhost:5901 with password = password
P.S.: I set the root password to password
P.S.S.: I'm pretty sure it's impossible to screw up your Android OS doing this unless you teriibly, terribly mess up this guide
P.S.S.S: I'm running a rooted Bionix Frost SGS4G ROM with Bali KERNEL (don't think that matters but I do know being rooted matters!)
edit: apparently this isn't working for anyone but myself so far sooooo:
To Moderators: You may delete this thread and move the thread in Galaxy S 4G General: [Guide] Installing Fedora 12 on SGS4G to Galaxy S 4G Android Development (I only posted in General because I didn't have permissions to post here yet and posting here (I hope) will increase my ability to make this available to all SGS4G owners!)
Click to expand...
Click to collapse
forgive me for asking because im usually one to read to learn, but since you made this
what BENEFITS are gained from fedora?
i just dont know exactly what it is? thank you
I suppose mainly for developing. If you have fedora installed on a phone with a kernel that supports adding kernel modules and the kernel headers then you can build new modules for your phone on your phone. Also, it's sortof fun to show off, and it can potentially do some neat things (potentially aircrack-ng if it supports the WiFi device - maybe unlocking some features by allowing you to add linux tools and binaries - adding new media players - converting different media files to things accessible by Android Apps (or just playing them from Fedora) - extracting weird archives - and I'm sure if you take them time you can probably think of cool things you can do with an extremely portable, extremely customizable Linux Operating System Distribution (whether "legit" or less than))
edit: also, most things are already precompiled on a Fedora 12 ARM repo but if they aren't you can easily compile them from your phone (I suggest plugging it in and compiling/installing so you don't waste battery life (also I suggest doing that from your computer to your phone through SSH for easier typing, quicker command entering, etc.) and it may take some time depending on how overclocked the phone is)
Thanks for the explanation brotha!
sent from my sgs4g 2.3.3, finally
So I would be able to modify the frameworkres.apk and other things of that nature?
Sent from my SGH-T959V using XDA Premium App
I got it!
http://forum.xda-developers.com/showpost.php?p=8755526&postcount=7
If bootubuntu gets executed before Android loads all app2sd applications, it is possible solves the loop device busy error even with App2SD applications installed. It requires a very perfect timing, today after few experiments on my phone, I worked out a process which can always boot up Ubuntu on my phone:
1. Reboot phone
2. as soon as you enter lock screen, unlock screen
3. quickly go to terminal emulator
4. become su by typing su and enter
5. type bootubuntu and wait (type it fast... practice )
Click to expand...
Click to collapse
So apparently it's apps2sd causing this problem. I used the ubuntu guide but I'm sure fedora will work now, since it was just a mounting issue.
What I did to type this quickly was change the bootubuntu (or bootfedora in this case) script to just b so i could just do su, press enter, then b, press enter
EDIT
This means that it's possible to boot it as an init.d script to make sure it loads before the phone is done scanning the SD card. I think I'll wind up doing that... It's easier to kill the script when you don't need it than boot it when you want it.
Oh gosh, thank you so much I was just about to give up on public releases. Now that I know the problem I can fix my scripts to get arpund it. Thanks so much!
Sent from my SGH-T959V using XDA App
Just wanted to post again to express my gratitude I will definitely post a new script that will mount regardless of app2sd. Thank you! Thank you! Thank you!
Sent from my SGH-T959V using XDA App
Hey man I'm as happy as you are... Just spent the last few hours messing with ubuntu on the phone. Piece of work that is. You said fedora has sound support when booting on the phone?
Yeah I managed to get sound working.... sad part is my (granted I forgot to make a backup) version of the filesystem image became corrupt.... oops. Well, I'm buying a larger sd card in about 30 mins and I'm going to redo it so soon I'll upload the new img and scripts aswell as a kernel module for you and others using a different linux distro than fedora
Sent from my SGH-T959V using XDA App
Sounds great. Just a heads up, I was messing with the bootscript and I added the lines that mount the sdcard to the other OS's filesystem. Twice I got the phone freezing up so I did a hard reboot (battery pull) and when the phone rebooted it seems as if the /data partition got wiped (except for my background image which got saved, go figure). Weird, not even sure how that could've happened.
Very odd. If this forum has private messaging, PM me exactly what you added so I can make sure that or something more serious doesn't happen to others. Thanks
Sent from my SGH-T959V using XDA App
I just updated the script to mount whether or not you have App2SD installed on your phone.
It turns out App2SD uses a separate loop device for each app you have moved to your SD Card.
I've set the script "bootfedora" to create a "/dev/loop99"
So, unless you have 99 or more Apps moved to your SD Card it should work!
Re-download "bootfedora" from:
http://anonymouslyacquired.info/fedoraonsgs4g/
edit: currently working on new version of my Fedora 12 filesystem (should include a lot more (including working sound for a "nicer" feel) but it sucks if you have less than 2GB of freespace on your SD Card)
I'm completely in the dark when it comes to Fedora but I find it very interesting. It is going to be a Big Development for our phone I'm sure.
Wish I could help you but this is way out of my league.
I'm definitely following your progresses closely. Keep up the Great Work fellas!
Thanks
N4melessS0ldier said:
I just updated the script to mount whether or not you have App2SD installed on your phone.
It turns out App2SD uses a separate loop device for each app you have moved to your SD Card.
I've set the script "bootfedora" to create a "/dev/loop99"
So, unless you have 99 or more Apps moved to your SD Card it should work!
Re-download "bootfedora" from:
http://anonymouslyacquired.info/fedoraonsgs4g/
edit: currently working on new version of my Fedora 12 filesystem (should include a lot more (including working sound for a "nicer" feel) but it sucks if you have less than 2GB of freespace on your SD Card)
Click to expand...
Click to collapse
Alright man, I got it to boot perfectly without doing this at boot startup! Aww yeah, it's on!
One thing though, the scripts you've been posting lately have windows line endings insteads of Unix, so I had to convert them before they worked.
FBis251 said:
Alright man, I got it to boot perfectly without doing this at boot startup! Aww yeah, it's on!
One thing though, the scripts you've been posting lately have windows line endings insteads of Unix, so I had to convert them before they worked.
Click to expand...
Click to collapse
I'm not sure what I'm doing wrong but I keep getting the error
chroot: notfound
: not found
Shutting down Fedora
: not found
glt0404 said:
I'm not sure what I'm doing wrong but I keep getting the error
chroot: notfound
: not found
Shutting down Fedora
: not found
Click to expand...
Click to collapse
What rom/kernel are you using?
FBis251 said:
What rom/kernel are you using?
Click to expand...
Click to collapse
Stock rom with Bali 3.3UV
I'm pretty sure that's not the problem cause I've successfully booted Ubuntu (without gui).
Post up the whole list of commands you ran, plus the errors. Just copy the whole command line text
FBis251 said:
Post up the whole list of commands you ran, plus the errors. Just copy the whole command line text
Click to expand...
Click to collapse
This is what I got.
Code:
export PATH=/data/local/bin:$PATH
# #cd /sdcard/fedora/
# su
# sh fedora.sh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Usage: mount [-r] [-w] [-o options] [-t type] device directory
rm failed for -f, No such file or directory
: not found
: not found
: not found
: not found
: not found
: not found
Fedora Chroot Bootloader v0.1
Fedora Bootloader is now installed!
This process does NOT damage Android OS!
Original Installer by Charan Singh
Modified for Fedora Chroot by N4melessS0ldier
To enter the Fedora Linux console just type 'bootfedora'
: not found
: not found
# sh bootfedora
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Usage: mount [-r] [-w] [-o options] [-t type] device directory
: No such file or directoryxtcard2
': Read-only file systemctory '/mnt/extcard2
'knod: invalid number '0
losetup: not found
failed: No such file or directory/extcard2
': No such file or directoryy '/mnt/extcard2/rootfs-f12
failed: No such file or directoryp1 on /mnt/extcard2/rootfs-f12
': No such file or directoryy '/mnt/extcard2/rootfs-f12
failed: No such file or directoryard2/rootfs-f12
': No such file or directoryrd2/rootfs-f12
': No such file or directoryrd2/rootfs-f12
failed: No such file or directoryrd2/rootfs-f12
failed: No such file or directoryxtcard2/rootfs-f12
failed: No such file or directoryrd2/rootfs-f12
failed: No such file or directoryrd2/rootfs-f12
Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4
: directory nonexistentte /mnt/extcard2/rootfs-f12
: directory nonexistentte /mnt/extcard2/rootfs-f12
Setting localhost on /etc/hosts
: directory nonexistentte /mnt/extcard2/rootfs-f12
Operation complete!
Courtesy N4melessS0ldier!
chroot: not found
: not found
Shutting down Fedora
: not found
#

[Q] Anyone have Linux/Ubuntu/Fedora Working Currently On GB?

Problem:
I've worked with every available distribution of Linux, trying to get the damn thing working on my phone. Troubleshooting the ***t out of it, and no deal. Constant errors/files not found etc. So, rather than post my logs and ask for help troubleshooting them (as I've obviously been unable to do), I thought I'd just ask:
Does anybody have a Linux build (besides android!) working on their phone that's running Gingerbread or ICS? If yes, can you post your software specs?
Here are mine currently:
Busybox- v1.19.3-Stericson in /system/xbin
Firmware Version- 2.3.5
Baseband Version- T959VUVKG6
Kernel- 2.6.35.7-T959VUVKI3-CL611444
Build Number- Gingerbread.VUVKI3
Mod Version- Octaine Team Acid
Thanks, this has been a pain in my **s for too long now!
S
I had both Fedora and Ubuntu working on Froyo at one point through lots of modifying and editing of the scripts.
What do you need them for anyway? I think it's more of a hassle to set them up than it's worth.
Well, I am working quite a bit now with linux for servers and such, and it's good to have a system (even minimal) that I can use/reference, plus it helps me get better at it.
Get this: I was so frustrated that I went back to BlackIce (keeping my gb bootloaders) and the damn thing loads right up, ubuntu 11.04, no problem. So, I then loaded up Valhalla's GB build and, sure enough, that works too. So, going with my luck I load octane 2.x GB which i've been digging of late and no deal, ubuntu just won't load.
Now, trying the same trick I cannot get it to work. It just won't load now when I SH it. Here's the instructions that worked before (and I've tried them all!):
http://www.nerd65536.com/2011/07/installing-ubuntu-in-android-version-2.html
Also, I hard bricked again (corrupted bootloaders from a Parallels Windows stallout) but did Adam's UnBrickable Mod and that's all better. Everybody needs to check it out, it's awesome:
http://forum.xda-developers.com/showthread.php?t=1333424
So FBI, any idea why linux is so temperamental? Once it SH's properly, it always works.
(Thanks to all the developers for their great roms!)
Yeah I noticed that slight changes from different ROMs based on the same kernel base had that effect too. I'm thinking it had to do something with the busybox installations since I had to edit the script sometimes. For some reason on some installs running mount won't work unless you use it as busybox mount. It was very iffy like that. I haven't even tried it again because of how frustrating it is to get even a boot. The other thing is that if you try to do a shutdown from ubutu/fedora it doesn't even kill the processes all the way so the only way you can clear some ram up with with a reboot.
Yeah man, I was figuring Busybox myself. I've tried old installs, new installs, xbin only, bin only, xbin & bin, etc. It's so frustrating because I can't figure it out. When it was working it was great, pretty stable.
So the first problem always lists as:
Remounting /system rw...
Mount: no such file or directory
Usage: mount [-r] [-w] etc, etc
So does this tell us that the system is not mounted rw? I used the Mount/system r/w application, but I cannot verify it's doing it's job. Everything is rooted properly, CWM also.
In Terminal on the phone I ran:
"mount | grep system"
which gave me
"/dev/block/st19 on /system type ext4 (rw,relatime,barrier=0,data=writeback)"
which leads me to believe the system is r/w.
I'm converting the system back from ext4 using CWM Voodoo to disable Lagfix and system Lagfix to see if this has any effect. Will report.
No deal. Didn't do a damn thing. I'm going to crack this if it's the last thing I do....
I'm using Better Terminal Pro, Bash shell, and under command line in options it lists the Shell as: /system/bin/sh-
The sh install.sh also tells me:
"Mounting: Loopback mount
mknod: /dev/block/loop254: File exists"
Does this mean that all (255) of my loops are used? Do I need to remove programs?
The available loop device thing never got resolved. Nameless originally fixed it by making it use 254 so that there was a low chance of the loop device being available, but the phone's OS is very iffy about letting a new loop device get assigned to a system image file. Can't really help you out since I never got it to consistently mount with different roms.
Linux on SGS4G Working! Done and Done!
Figured it out.
I can get Ubuntu 11.04, 11.10 & Debian 6 to mount repeatedly in all sorts of ui updatable configurations using this information:
http://www.nerd65536.com/2011/07/installing-ubuntu-in-android-version-2.html
It's a friggin Christmas Miracle! Can't tell you how much time I've wasted working this out, and it all boils down to the sh and run scripts.
So, without further ado, here goes.
!!Make sure you're rooted!!
!!The quotes just tell you what to type. Don't type them!!
1.
Download one of the three builds on the website listed above (or build your own, it should work fine). Extract it from tar.bz2, they should all extract to a linux file, this includes the necessary scripts. Put it on the sd-card on your phone.
2.
Download the new scripts that (Nerd) listed found here: http://ohm.nerd65536.com/android-linux/scripts-latest.tar.bz2
And extract them. You'll have another file that says linux. Open it, take the three files inside (install.sh, root-scripts & scripts) and paste them in the linux folder you moved to your sd-card. They will overwrite the ones currently there. These scripts work for sgs4g, the originals did not.
3.
Install the latest BusyBox in xbin if it's not already installed (must be rooted). Latest is 1.19.3
4.
Download a terminal client, like Better Terminal Emulator or Android Terminal Emulator. I use the first. The terminal needs to run the commands as root, especially the linux vnc command as it didn't want to work for me no matter if I started by typing su. Better Terminal Emulator has a check box to always start in root.
5.
Open up your terminal emulator and type su if you are not rooted there. Then change directory to the linux file on the sd-card. run the sh file there.
Like this:
"su"
"cd /sdcard/linux"
"sh install.sh"
If it works, the resulting dialog in terminal won't throw up any problems.
6.
Get back to / on sd by typing in terminal:
"cd /"
You should then have a: / # prompt, which means you are still rooted.
Enter:
"linux"
Which should result in a: [email protected]:/#
This means Linux is running. Congratulations. It should continue to run unless you shut down your phone.
7.
Download a VNC client, like Android VNC Viewer (free) or Remote VNC Pro, which I use. Add a new entry in it, with the following settings:
Host: localhost
Port: 5901
Password: cheesecake
Color: 24-bit
Name: Linux
When that's done save if you can or back out if you can't, and go back to your terminal emulator.
8.
It should still say: [email protected]:/#
If it doesn't, fine, if it does, just go back to root prompt by typing:
"exit"
Which should get you: / #. Then type:
"linux vnc"
Which should run itself and mount the chroot environment. It should tell you your new 'X' desktop is localhost:1, and have a: / # prompt again.
It might also ask you for a password, if so then put whatever password you'll remember in that's longer than 6 characters and verify it. This only happens once.
9.
Go back to your VNC client and if you entered a password in step 8. then edit your listing to your password instead of cheesecake, if not then don't.
Click on the Linux link and BAM! (shameless Emerilism), you're at your Linux desktop which should be running a iceWM desktop interface, which is fast. The LXDE desktop is nicer and if you want that then go into you're terminal and get into the linux shell by typing:
"linux"
And then switch to LXDE by typing:
"apt-get autoremove icewm- lxde+"
Which will run through the removal/ installation, and verify you want to download the <400mb files. Type:
"y"
And give it time to finish. When finished, just go back to your VNC client and hit Linux again, and you will have a nice looking functional desktop, with a cpu load graph on the bottom. I tried using Gnome desktop and Unity 2d, but both of these would install and not fully run with all options. They are heavier and slower, but cool non-the-less. Let me know if anyone has luck with these on Android.
Notes-
You only have to type "linux vnc" once in terminal to start linux every time you boot your phone. Otherwise, just open your VNC client and click on Linux to use it. Easy!
You will want to update and upgrade your linux after install, do so by typing in terminal:
"apt-get update"
"apt-get upgrade"
Also, you might run across a problem if you try to add-apt-repository, that's because that python command is not present. To use it, enable by typing:
"apt-get install python-software-properties"
Also of note, the downloadable linux builds are sized to about 2.15gig on your sd, which is big enough for most. There is a way to resize them which I tried but it gave me trouble in loading. I will try again and see if I can get it to work.
Here's the link from Dangermouse:
http://www.androidfanatic.com/community-forums.html?func=view&catid=9&id=1610
Thanks to Nerd65536 for the info, write-up and files. He fixed my problem.
sconsylman said:
Also of note, the downloadable linux builds are sized to about 2.15gig on your sd, which is big enough for most. There is a way to resize them which I tried but it gave me trouble in loading. I will try again and see if I can get it to work.
Here's the link from Dangermouse:
Click to expand...
Click to collapse
You're welcome.
It's actually a lot easier than that to make the image larger. Just pop the SD card into a Linux machine and:
(Assuming the original file is: /media/phone/linux/linux.img)
Code:
resize2fs /media/phone/linux/linux.img 4095M
And you're done. resize2fs is made of magic!
Note: Most SD cards are FAT32, which has a filesize limit of 4GiB. The above instructions will make the file a megabyte less than that.
nerd65536:
Thanks! Worked like a charm. Had to e2fsck -f /media/SDCARD/linux/linux.img (phone plugged in to Mint) before i did it to check over the file system, but then it ran immediately. Much appreciated.
Have you had any luck on native boot? I've been working a little on this, as I can't run BackTrack arm well virtually, it gets buggy. Granted the telephony systems won't work during, but the functionality should be pretty good if we could run it standard.
Also, while I'm thinking of it, is it possible to run the img from an ext4 partition on the card? I have an existing one being used for link2sd files and would much prefer using it as it's a far superior file system to fat32, without the 4G limits. Vnc should have no problem graphically, but would the linux.img chroot properly?
It would probably work but you would have to alter the script to mount the other partition if it doesn't do it automatically and change the path. Shouldn't be too hard.
I'm getting an error when I try running sh install.sh:
Code:
# sh install.sh
readlink: applet not found
Remounting /system rw ...
sh: Can't open /linux/scripts/fsrw
Installing scripts in /system/bin ...
cd: can't cd to /linux/scripts
cp: write error: No space left on device
cp: omitting directory 'root-scripts'
Unable to chmod /system/bin/root-scripts: No such file or directory
cp: omitting directory 'scripts'
Unable to chmod /system/bin/scripts: No such file or directory
cp: omitting directory 'tmp'
Unable to chmod /system/bin/tmp: No such file or directory
Mounting the Linux image ...
install.sh: /system/bin/linux: not found
Customizing the image ...
install.sh: cannot create /data/local/mnt/etc/resolv.conf: directory nonexistent
install.sh: cannot create /data/local/mnt/etc/resolv.conf: directory nonexistent
Installing root-scripts ...
mkdir failed for /data/local/mnt/root/scripts, No such file or directory
Unable to chmod /data/local/mnt/root/scripts: No such file or directory
cp: can't stat '/linux/root-scripts/*': No such file or directory
Unable to chmod /data/local/mnt/root/scripts/*: No such file or directory
Install finished
# linux
linux: not found
NuVanDibe said:
I'm getting an error when I try running sh install.sh:
Code:
# sh install.sh
readlink: applet not found
Remounting /system rw ...
sh: Can't open /linux/scripts/fsrw
Installing scripts in /system/bin ...
cd: can't cd to /linux/scripts
cp: write error: No space left on device
cp: omitting directory 'root-scripts'
Unable to chmod /system/bin/root-scripts: No such file or directory
cp: omitting directory 'scripts'
Unable to chmod /system/bin/scripts: No such file or directory
cp: omitting directory 'tmp'
Unable to chmod /system/bin/tmp: No such file or directory
Mounting the Linux image ...
install.sh: /system/bin/linux: not found
Customizing the image ...
install.sh: cannot create /data/local/mnt/etc/resolv.conf: directory nonexistent
install.sh: cannot create /data/local/mnt/etc/resolv.conf: directory nonexistent
Installing root-scripts ...
mkdir failed for /data/local/mnt/root/scripts, No such file or directory
Unable to chmod /data/local/mnt/root/scripts: No such file or directory
cp: can't stat '/linux/root-scripts/*': No such file or directory
Unable to chmod /data/local/mnt/root/scripts/*: No such file or directory
Install finished
# linux
linux: not found
Click to expand...
Click to collapse
cp: write-error.. no space left on device? You need more space dude

SSHFS on Android - Extend Android features with Debian KIT

HI,
I would like to share the way how I mounted my NAS folders with SSHFS based on Debian KIT.
SSH-FS is ssh based mountable file system. If you have SSH account you can mount and access that server like a windows share.
Forewords:
Debian KIT is free! and it is _NOT_ yet another chroot debian!
This method is an alternative and FREE way to have SSHFS vs to the unique native Android SSHFS app (which is unfortunately paid. )
It is fully integrated with Androitd! Less ram resources and faster than chroot. Debian libraries are binded to Android.
So you enjoy Android and Debian advantages all together.
Steps to have SSHFS:
Set up Debian on your Android! Go to Debian Kit page and set up Debian!
Run Debian. Open Terminal Emulator and type
Code:
$deb
$sudo su
Set up SSHFS
Code:
#apt-get update
#apt-get install sshfs
Mount SSHFS
Code:
#mkdir /mnt/nas
#sshfs [email protected]:/ /mnt/nas/ -o allow_other
Checking mount:
Code:
#mount
[email protected]:/ on /mnt/nas type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=65536)
Then SSHFS will ask your root password and that all!
If no error then its ok, You Mounted!!
You done! :laugh:
Go back to Android and use your mounted share with any Android file manager under /mnt/nas (or where ever you mounted.)
Finishing all, just
Code:
#deb u
(It will umount and close debian session.)
For more comfort, set up password-less login to ssh server with authorized_keys.
#ssh-keygen
#cat ~/.ssh/id_rsa.pub >> /mnt/nas/root/.ssh/authorized_keys
#chmod 600 /mnt/nas/root/.ssh/authorized_keys
After above steps your ssh server wont ask root password from this site to that site logging in with root user.
Press "Thanks" button if its helps for you.
Regards
Robert
Convert docs to pdf with Openoffice within Debian Kit
Another great usage example of Debian kit:
Use your installed Open/Libre/Star/Office to convert your document to pdf:
#!/bin/bash
time soffice --headless --convert-to pdf $1
exit
Check your doc converted to pdf after a minute.
Thanks for the awesome guide. Any idea about mounting virtual drives from my Ubuntu?
whu007 said:
Thanks for the awesome guide. Any idea about mounting virtual drives from my Ubuntu?
Click to expand...
Click to collapse
Hi,
thanks.
>mounting virtual drive...
Can you please describe a little, what is the scenario?
Regards Robert
SSHFS problems @ Android 4.2.2 Nexus 10 - apps cannot see mounted content
Hi,
Robert, thanks for the guide to sshfs with debian-kit. I've been longing to get sshfs on my Android for three years
My problem is that Android Apps cannot see the mounted content, which is what I desire.
I have managed to get debian-kit + sshfs installed, and my nas mounted using sshfs. I can browse the files on the nas from the mounted directory in the ConnectBot Shell, but I cannot see the mounted directory through android apps (or adb shell), eg TotalCommander, OI FileManager, MX video player. I have tried the TotalCommander Android app, and tried telling TotalCommander to always use root (in case user made a difference).
I mounted the nas using ConnectBot local shell with the command:
> sshfs [email protected]:/mnt/user/ /mnt/tower/ -o allow_other
I can see the /mnt/tower content both with the ConnectBot shell as normal user ([email protected]), as root, and with the shell I get after running 'deb' from a ConnectBot shell.
If I remote login from PC to an SSHDroid server on the Android, then I cannot see the mounted content of /mnt/tower (even as root). Neither can Android apps. If I install the openssh-server in debian and stop the SSHDroid server, then I can see the /mnt/tower content from my ssh login from PC.
Best Alex
I've an issue, after mounting the nas folder I try to add it into the Poweramp library, it recognizes it (I've mounted into /sdcard/nas) but none of the mp3 is added to library
thank you
Thanks for the great guide!
Now how can you unmount the SSHFS directory?
The normal way is with:
Code:
fusermount -u /mnt/share
However this causes an error:
Code:
fusermount: failed to bind parent to /: Invalid argument
Does that happen for everyone or is it just me?
Restarting the Debian system with
Code:
deb -u
also did not cause the SSHFS directory to unmount.
Sent from my Nexus 4 using xda app-developers app
Hi
Just try umount /mnt/mountpoint.
Robert
Sent from my GT-N8013 using xda app-developers app
Thank you for this guide! Unfortunately this solution isn't quite what I'm looking for. I found that in order to get my apps to recognize the mounted share I have to first run the app, then mount the share. Also, if the app gets killed I have to unmount the share and then remount it in order for the share to become visible again from within the android app. However, the share remains mounted when viewed from within the debian shell or adb.
Anyone have an idea why this might be happening?
Debian kit not working on S4
Hey, there. I have a rooted Samsung Galaxy S4 (VZW) running stock.
I get this error after all MD5 sums pass:
ash: id: Permission denied
Can someone please assist me or point me in the right direction?
aikeru said:
Hey, there. I have a rooted Samsung Galaxy S4 (VZW) running stock.
I get this error after all MD5 sums pass:
ash: id: Permission denied
Can someone please assist me or point me in the right direction?
Click to expand...
Click to collapse
did you get this right after you started installing? after you used the 'sh' command?
Sounds to me like you might not have root in android, or you didn't click the accept button when the app asked for root permissions.
---------- Post added at 10:46 AM ---------- Previous post was at 10:44 AM ----------
m2xtreme said:
Thank you for this guide! Unfortunately this solution isn't quite what I'm looking for. I found that in order to get my apps to recognize the mounted share I have to first run the app, then mount the share. Also, if the app gets killed I have to unmount the share and then remount it in order for the share to become visible again from within the android app. However, the share remains mounted when viewed from within the debian shell or adb.
Anyone have an idea why this might be happening?
Click to expand...
Click to collapse
I don't think there is much you can do to get around always having to have deb environment open. One way you might be able to kill a few steps is use the 'autofs' package in debian to automatically mount the sshfs share when you login to the debian envorinment.
I haven't tried autofs yet, but it's on my todo list, i'll report back with my findings.
---------- Post added at 11:19 AM ---------- Previous post was at 10:46 AM ----------
chrisonline1991 said:
I haven't tried autofs yet, but it's on my todo list, i'll report back with my findings.
Click to expand...
Click to collapse
So i had some problems running autofs and i can't seem to find the problem, maybe someone more knowledgeable can help. When i install autofs the output is below, but it looks like it did install fine.
Code:
Starting automount: Error: failed to load autofs4 module.
invoke-rc.d: initscript autofs, action "start" failed.
dpkg: error processing autofs5 (--configure):
subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
Errors were encountered while processing:
nfs-common
autofs5
E: Sub-process /usr/bin/dpkg returned an error code (1)
When i run
Code:
$ sudo dpkg --configure -a
it returns
Code:
Setting up nfs-common (1:1.2.2-4squeeze2) ...
insserv: warning: script '99CleanTWEAKS' missing LSB tags and overrides
Starting NFS common utilities: statd failed!
invoke-rc.d: initscript nfs-common, action "start" failed.
dpkg: error processing nfs-common (--configure):
subprocess installed post-installation script returned error exit status 1
Setting up autofs5 (5.0.4-3.2) ...
insserv: warning: script '99CleanTWEAKS' missing LSB tags and overrides
Starting automount: Error: failed to load autofs4 module.
invoke-rc.d: initscript autofs, action "start" failed.
dpkg: error processing autofs5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
nfs-common
autofs5
I found this bug report which points to this bug report that says something about the newest autofs using a new upstart feature called 'wait-for-state' and something is going wrong with it. Looks like they added the bugfix to Ubuntu Precise. And looks like that fix might now have solved the problem as another bug was opened, but i'm not sure if it's related to this. I'm a little burnt out on this at the moment.
Hope this helps someone. If anyone else has some suggestions let me know and i'll try them out.
Hi
I have been trying to get something like this working for awhile...
Any chance by using debian kit this can automatically run at startup and mount my PC to my Android device?
my android apps just see an empty dir. In my terminal the sshfs command works as expected. When I cd into the mounted directory I can see its contents, android apps just see an empty dir.
Has any one managed to solve this?
late-2017 update
bisbal said:
my android apps just see an empty dir. In my terminal the sshfs command works as expected. When I cd into the mounted directory I can see its contents, android apps just see an empty dir.
Has any one managed to solve this?
Click to expand...
Click to collapse
I ran into a thread on stack exchange that says to mount the sshfs-accessed shares to subdirectories of /data/media/0/. I've yet to try it myself, but it sounds plausible.
(https://android.stackexchange[dot]com/questions/50246/mount-inside-subdir-of-storage-emulated-0)
I was initially reluctant to raise an old topic, but I think this is important; being able to mount a remote data store to your local filesystem is crucial to the mobile environment as the tendency of well-known phone companies like Samsung and Apple in removing the external sd card feature (even my OnePlus 3 doesn't have it). I did consider the Nextbit Robin as my next phone for the smart data storage design, but opted out because of the aging hardware.

[GUIDE] Ubuntu in a chroot on the Galaxy S4 - now with Native Booting!

Notice (4/16/14): I'm no longer here. I've said "goodbye" to AT&T and their locked bootloader schemes. I'm voting with my wallet - I've sold my I337 and switched to T-Mobile. My apologies to the community, but you're now on your own here.
Intro/About/Requirements:
This thread started as a guide for people who wanted to run Ubuntu in a chroot, and then connecting to it locally with a VNC client. This method has been used countless times on other devices, with many thanks to @zacthespack and his his group, LinuxonAndroid. Unfortunately, this method did not work out-of-the-box on my device, so I tweaked things to work with the Galaxy S4 and posted them here in this thread.
However, the most people immediately noticed that with this method the performance is not great, and some applications can't work in a headless environment. With a comment made by zackthespack, I began researching what it would take to get Ubuntu to write directly to the device's framebuffer. After a few months, I not only managed to accomplish this, but also developed a way to get the Galaxy S4 to boot directly into Ubuntu. As far as I have seen, both of these are a "first" for this handset.
All of these methods require root. The VNC Chroot does not require a custom kernel, but the other methods require a custom-built kernel. For the I337 (AT&T) handset, this can pose a problem if you have bootloaders that are MF3+. If you're using MDB/MDL bootloaders still, you shouldn't have a problem with this and you can Loki the custom kernel without issue.
Depending on your ROM and/or Kernel, you may also need a new version of BusyBox installed, even for the VNC method. You'll find a few apps on the Play Store that can do this for you. Beware that some of them are not easily reversible (such as TinyBox), so if you're stuck on MF3 with no way to create/restore a nandroid/system backup, you should be careful.
Click to expand...
Click to collapse
Disclaimers:
Following this guide and/or flashing anything I've provided to your device is your own responsibility. If something breaks, you break your device, or something explodes, I can't be held liable (I'll help correct any situations you may put yourself in, however). I claim no rights to any proprietary software or intellectual property included in this post or the packages contained herein. By using any of this software, you agree to whatever licenses/agreements that the creators may have included with their software. If you use any of this stuff in your own project, please provide credit where credit is due. For example, if you take my u.sh script and adapt it to some new device (i.e. Galaxy S 5), please at least mention where it came from.
Click to expand...
Click to collapse
VNC Chroot Method (original):
This method is loosely based on this thread for the Galaxy S3 and the ubuntu.sh script there. It didn't work for the S4, but I've made several tweaks to it, simplifying it a ton, and otherwise getting it to work perfectly on my S4. I've tried this using my AT&T Galaxy S4 (SGH-I337) on both the MDL build and the MF3 build - both seem to work great.
Instructions:
Download the Ubuntu 13.04 Small v1 image here.
Create a folder on your sdcard labeled "ubuntu" by whatever means you want to.
Extract the ubuntu.img from your downloaded zip into this folder.
Download my version of the ubuntu.sh and place it on the root of your sdcard.
Open the script in a text editor and read through it. Never run a script like this on your android without first knowing what it does - especially when the author is telling you that you need root. If you're happy with it, proceed.
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...).
Install a VNC Client of your choice. I personally used this one, but there might be better/faster ones out there.
Open the terminal emulator, and execute the following commands:
Code:
su
sh /sdcard/ubuntu.sh
If you see a bunch of errors and get dumped back at the "[email protected]:/ # " prompt, then something went wrong. Report your errors in this thread. Remember, this requires root (and the "su" command to get there, of course).
You'll be prompted for some setup parameters, which you can save at the end for later. Just answer each question and press Enter after each:
You'll need to provide a new password for the "ubuntu" user. A simple passwords like "ubuntu" works, unless you want some security.
Start VNC server? (y/n) - always choose "y". We need this to interact with the device.
SSH server? Optional. If you use it, you should enable it.
Screen size: Enter whatever you want. I personally used 960x540 (one quarter of the S4's screen size) so that I could actually interact with things using the touch screen.
Save settings as defaults? - You might not want to do this until you have a screen size that works best for you.
Once you see the prompt, "[email protected]:~# " - you're in! You now have Ubuntu running in a chroot. As the on-screen instructions suggest, type "exit" at this prompt to end the chroot and Ubuntu. It is recommended to do this when you are done so that the ubuntu.sh script can clean up after itself (unmounting things, etc.).
Leave your terminal emulator app running! Use your Home button to return home and leave it running.
Open you VNC client and connect with the following settings:
Nickname: (whatever you want)
Password: ubuntu
Address: localhost
Port: 5900 (default)
Username: (leave blank)
Color Format: 24-bit color (you can use lower if you want better performance)
Connect. For the VNC app I used, I had to zoom in to make the screen fit correctly (use pinch-to-zoom, and then use the "+" button on-screen). Also, you can play around with the Input Mode some if you wish.
Enjoy Ubuntu!
As you can see, it's not terribly complicated to get this up and running. Once you have set it up the first time, it's a lot smoother from then on out. The script is designed to allow you to use the external SDCard if you wish. Just use place the ubuntu.img in an "ubuntu" folder on your external SDCard, drop the ubuntu.sh on the root of the external SDCard, and use "sh /mnt/extSdCard/ubuntu.sh" instead (don't forget "su"!).
Click to expand...
Click to collapse
Freedreno Chroot Method (NEW):
This long-winded tutorial will explain how you can setup Xubuntu-desktop in a chroot. Before attempting any of this, you should read through all the steps and be sure you're comfortable performing the steps needed.
This requires roughly 2GB free space on your /data partition - the actual finished install is about 1.4GB, but it will require some extra space while it installs Freedreno and other components. HINT: Keep in mind that your /data partition is shared with your internal sdcard (your internal sdcard gets whatever space is leftover at the end of the /data partition), so you can get an idea how much free space you have by looking at how much space your internal sdcard has available.
Instructions:
Step 0 (option A) - Build Custom Kernel
You will need to install a custom kernel that has specific options enabled in the configuration, along with a few patched files in the source code. This list of changes is based on a delta from the stock I337 MF3 kernel, available at http://opensource.samsung.com/. You should be able to apply these changes to "any" kernel that you can build from source, so this documentation may apply to devices other than the I337.
Kernel Mods:
Required config changes:
Code:
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_DRM=y
CONFIG_MSM_KGSL_DRM=y
# CONFIG_KGSL_PER_PROCESS_PAGE_TABLE is not set
# CONFIG_MSM_KGSL_PAGE_TABLE_COUNT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_MSM_TRIPLE_BUFFER=y
CONFIG_FB_MSM_DEFAULT_DEPTH_BGRA8888=y
# CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888 is not set
Fix for Wi-Fi problems when using MF3 kernel on UCUAMDL bootloaders (i.e. "unadulterated" or "neutered"):
Code:
CONFIG_PROC_AVC=y
Required Patches to kernel source code:
https://github.com/freedreno/kernel-msm/commit/4c0281745f8c85707be88acebb557aca0b8f1dba
https://github.com/freedreno/kernel-msm/commit/228f65d48d4855d903e3b4642179dfa14eedd040
https://github.com/freedreno/kernel-msm/commit/54b510b2e6bccf08fdf3a8ad00a62b27c2f8c1e6
Additional changes required for sudo to work (added 10-25-13 in v4):
Code:
# Samsung Rooting Restriction Feature
#
# CONFIG_SEC_RESTRICT_ROOTING is not set
# CONFIG_SEC_RESTRICT_SETUID is not set
# CONFIG_SEC_RESTRICT_FORK is not set
# CONFIG_SEC_RESTRICT_ROOTING_LOG is not set
Additional changes to the initramfs required for sudo to work (added 10-25-13 in v4):
Edit fstab.qcom, remove the nosuid, part of the line that references userdata.
Step 0 (option B) - Download Custom Kernel Instead
Don't want to compile your own kernel from source? If you have the I337, you can use mine! As mentioned above, this kernel is based on the original MF3 source from Samsung, with the modifications listed above. If you are stuck with MF3+ bootloaders on your I337, you will not be able to install this kernel directly (at the time of this writing). MDB/MDL bootloaders are fine, but you will need to flash loki-doki afterwards (this kernel is not pre-lokified!). This kernel might work with other similar variants (such as the M919), but I haven't tested this on anything except my own I337 daily-driver. YMMV. If you run into issues, you might need to wipe cache/dalvik. This will likely only work with TouchWiz-based ROMs (I have not tried it with AOSP). Here's some downloads for you:
mf3-freedreno-android-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to android, allows Ubuntu with Freedreno to work in a chroot.
- Compiled with the original (slightly modified) MF3 initramfs and "mf3-freedreno-minimum-zImage-v4" (below).
- Includes minimal configuration changes described above, plus the WiFi fix part.
mf3-freedreno-minimum-zImage-v4 - Just the MF3 kernel itself with minimal changes to get the chroot to work.
mf3-freedreno-minimum-config-v4 - Yeah, that's right. I'm providing the .config files I used for all of this.
Step 0.5 - Install the Kernel
Before you can start up the chroot properly, you'll need to have the custom kernel installed. You don't want the "ubuntu-boot" version right now, because you don't have an Ubuntu install to boot to. If you're using my pre-built kernel, first flash mf3-freedreno-android-boot-v4.zip and then flash loki-doki.zip.
Step 1 - Companion Files
Download this file: mf3-freedreno-companions-v4.zip - Non-flashable zip. This includes the script files, which you should promptly read through both u.sh and launch.sh. It is always good practice to read through any script file you get from the internet, making sure it's doing what you would expect it to. Also check out CREDITS.txt, which includes information about the included upstart-dummy.tar.gz and start-stop-daemon files.
Extract the companion files .zip and place its contents on the root of your internal sdcard (/sdcard/). Don't extract the contents of upstart-dummy.tar.gz. This is your $src directory. You can change this if you wish (see script for details).
Step 2 - Install/Configure Ubuntu
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...). At the console/shell, type the following two commands:
Code:
su
sh /sdcard/u.sh bash
The script will download Ubuntu Core and install Freedreno, upstart-dummy, and lubuntu-desktop. Total download size will be around 425MB. Total install time will vary, but count on it taking at least 45 minutes to install and configure everything. At the very end, you'll be prompted to enter a password for the new user "ubuntu".
Step 2.5 - Exit ubuntu
When you see the message "Type 'exit' (without quotes) to leave ubuntu," the install is complete. You'll notice that your prompt changed to "[email protected]". This is the easiest way to confirm that you're actually inside the ubuntu chroot. Type exit and hit Enter to get back to android.
Step 3 - Fire it up!
From now on, you can start Ubuntu using u.sh in any of these three ways:
sh /sdcard/u.sh - This will make initial prep, STOP android (black screen), launch the chroot, install/configure if needed, and will execute "service lightdm start". This will give you the greeter and you can login as "ubuntu". If the lightdm service stops for whatever reason (see info about the home button below), the script will continue by exiting the chroot and rebooting your device.
[*]sh /sdcard/u.sh bash - Same as above, except that it will not stop android, not startx (will give bash shell instead), and will not reboot your phone when you exit the shell.
[*]sh /sdcard/u.sh destroy - This will do exactly as it sounds - destroy your ubuntu installation. This will unmount your /sdcard from ubuntu (if still mounted somehow) and then recursively delete your ubuntu installation. If you change the source or destination directories in the main script, you should be careful deleting things.
NOTE: Remember to ALWAYS run any these from a root shell, whether via terminal emulator, via adb shell, or using SManager (or similar).
Step 4 - Note the Home Button and Touchpad
Take note that any time you have X running via lightdm, the hardware Home button will kill the X server. This is intentional, and will exit the chroot and reboot your phone. You'll also notice that currently, the touchscreen acts like a giant touchpad (like on a laptop). Use two fingers to right-click or scroll. Direct touchscreen input is not available at this time due to a segmentation fault that evdev causes when used on this device in a chroot.
Step 5 - (optional) Make Changes and Do it All Over Again
Customize the crap out of it! Edit my u.sh, launch.sh or xorg.conf and have fun. If you find great improvements, please post them in this thread! In future revisions, I might include them. Things should be well documented within the scripts. You might even change the bit at the end of launch.sh that starts "service lightdm start&" instead of "startx" - this would give you the greeter and let you login as the user "ubuntu" if you want. Also note that those three files are the only ones that must remain in your $src directory if you wish to continue to run this as a chroot. By the way, booting directly to Ubuntu after it is installed does not require any of the companion files anymore.
Click to expand...
Click to collapse
Native Boot Method (NEW):
This part of the tutorial is for those who wish to take things a step further and boot your device directly into Xubuntu-desktop. This will require that you setup the Freedreno chroot properly, and then you'll be installing a new boot.img. While this doesn't replace your /system partition, you won't be able to boot directly into Android while you have this boot.img installed.
Instructions:
Step 1 - Install Ubuntu
Basically, you need to perform all the steps for the Freedreno Chroot method, and get that up and running first. All you're doing here is swapping out your kernel.
Step 2 (option A) - Build Custom Kernel
You'll need all of the kernel customizations included in the freedreno chroot method, plus these listed below:
NOTE: You will need some proprietary blobs, which can be found on your device in the /etc/firmware directory.
Config changes to enable booting directly into Ubuntu (beyond replacing the initramfs...):
Code:
CONFIG_EXTRA_FIRMWARE_="audience-es325-fw.bin a300_pm4.fw a300_pfp.fw vidc_1080p.fw"
CONFIG_CMDLINE="console=tty0 fbcon=vc:0-3"
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_CMDLINE_EXTEND=y
# CONFIG_CMDLINE_FORCE is not set
Optional config changes to enable the framebuffer console when booting directly into Ubuntu - useful for debugging.
Code:
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
NOTE: You will need to grab some .ko files that are created, which must be loaded in the following order:
Code:
insmod /ko/font.ko
insmod /ko/softcursor.ko
insmod /ko/bitblit.ko
insmod /ko/fbcon.ko
I recommend that you include these four lines into the init script that is included in the ubuntu ramdisk. These can go pretty much anywhere after the ". /scripts/functions" part, but before it calls out to run-init. Also, don't forget to drop those .ko files into a new /ko directory in the initramfs. If you want to load these with modprobe, I'll leave that up to you (good luck).
Replace the entire ramdisk/initramfs:
At this time, I'm not going to provide instructions on how to do this. You'll need this mako boot.img straight from Ubuntu, repacked with the zImage created here. For what it's worth, the re-pack tool I'm using includes --cmdline 'androidboot.hardware=qcom user_debug=31 zcache', but I'm not sure if that's needed (especially considering our kernel seems to use qcache?). Anyways, good luck.
Step 2 (option B) - Download Custom Kernel Instead
Again, if you don't want to compile your own kernel from source, you can download mine and use it. The same warnings and restrictions apply as they do in Step 0 (option B) of the Freedreno Chroot method. And here's your downloads:
mf3-freedreno-ubuntu-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to Ubuntu directly, but only if your Ubuntu install is located at /data/ubuntu (Default).
- Compiled with the original MF3 initramfs and "mf3-freedreno-everything-zImage-v4" (below).
- Includes all configuration changes described above.
mf3-freedreno-everything-zImage-v4 - Just the MF3 kernel itself with all changes for both chroot and direct booting to Ubuntu.
mf3-freedreno-everything-config-v4 - Yet again, I'm providing my complete .config file for this.
Step 3 - Install the Kernel
Here's the easy part. Flash your completed boot.img, flash loki-doki, and reboot. If you're using my pre-built kernel, first flash mf3-freedreno-ubuntu-boot-v4.zip and then flash loki-doki.zip.
Click to expand...
Click to collapse
Flashable Zip Method (NEWEST):
It's finally finished: a flashable .zip that you can use to dump a pre-built rootfs onto your data partition. This will still require that you flash one of the two custom kernels (whether for chroot or native booting), but it will allow you to skip the whole build/install process.
ubuntu-install-v4.zip - CWM/TWRP flashable .zip. Requires approx 2GB free space on your data partition during install, and the final install size is approximately 1.3GB (may want more free space to add your own programs/etc.). Output folder is /data/ubuntu. This can be changed in u.sh, but heed the warnings within!
Instructions:
Instructions for Chroot-style Ubuntu:
Download the "companions" .zip and extract its contents to the root of /sdcard.
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-android-boot" .zip to your internal or external SDCard.
Make a nandroid backup of your phone, and store it on an external SDCard or your computer. Always a good idea to have this.
Install the "ubuntu-install" and "mf3-freedreno-android-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and resume with Step3 of the Freedreno Chroot Method.
Instructions for Native Boot Ubuntu:
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-ubuntu-boot" .zip to your internal or external SDCard.
Install the "ubuntu-install" and "mf3-freedreno-ubuntu-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and let it start into Ubuntu!
NOTE: The username is "ubuntu" and the password is also "ubuntu" - it is highly recommended that you change this ASAP.
Click to expand...
Click to collapse
Known Issues/Bugs:
Below is the list of known issues that I can think of, from the top of my head. This will probably be updated later as everyone points stuff out. Some issues only apply to some of the methods, so the applicable methods are listed in parenthesis after each.
Sound has not been tested (freedreno/native)
3D graphics or OpenGL support has not been tested (all)
Some applications don't work in a headless environment (vnc)
Some applications don't like to run as root, such as chromium (freedreno) lightdm is working in companions-v3, so no need to login as root anymore
Onboard is not working (freedreno/native) fixed in companions-v3
sudo does not work (all) fixed in kernel-v4 for freedreno/native, but problem remains for (vnc) if you are not using a custom kernel
A few kernel Oops's (native)
Shutdown menu doesn't always work (freedreno/native) fixed partly in companions-v4 - proper locale settings seem to allow the shutdown menu to work once you are logged in
Performance issues due to VNC connection (vnc)
No 3G/WiFi/network connection that I'm aware of... (native)
No control over 3G/WiFi/network/bluetooth yet (all)
Xorg's normal touchscreen driver evdev causes segmentation faults (freedreno/native)
Working on a possibly trying to get fbdev to work natively without Freedreno for simplicity (freedreno/native)
Anything you'd normally expect from a phone does not exist (freedreno/native)
Screen rotation (with or without accelerometer) doesn't work yet (freedreno/native)
HDMI/MHL output remains untested at this time. I got it to briefly work once, but I need to revisit this. (freedreno/native)
Many more to come, I'm sure...
Click to expand...
Click to collapse
To-Do:
Add mirrors to the download links.
Add a CWM/TWRP-flashable .zip that just dumps a clean Ubuntu install onto your data partition. This should be easy enough. completed!
Fix some of the bugs above.
Simplify the launch.sh and xorg.conf files. The u.sh script seems pretty solid.
Develop a method that works with only fbdev. This method might eliminate the possibility of 3D acceleration, but should enable screen rotation and other nifty things.
Possibly look into getting kexec (or similar) to work on the Galaxy S4 to offer a dual-boot option. Low priority at the moment, because flashing a kernel back and forth is pretty easy stuff.
Get Ubuntu Touch to work. This would eliminate a lot of bugs. I mostly need to just buckle-down and build CM10.1 from source, and then slowly visit each step of the Ubuntu Touch boot process.... Ugh.
Rebuild Freedreno to try to get Mesa/Gallium3D working properly. I'm probably going to need a lot of help from Rob Clark on this one!
More to come...
Click to expand...
Click to collapse
Revision History:
[11-13] mf3-freedreno-companions-v2.zip - Updated launch.sh: added some error checking and fixed the Freedreno build process.
[11-15] mf3-freedreno-companions-v3.zip - Updated launch.sh to include onboard and English language. Removed florence and xvkbd. Removed .keyb script. Added sudo. Simplified upstart-dummy, and included new upstart-dummy.tar.gz. Prepped for new flashable .zip method.
[11-26] mf3-freedreno-companions-v4.zip - Updated launch.sh: included fix for onboard so that it should work anytime lightdm is launched, added some bits for sudo to work, and home button now kills lightdm (not just the Xsession); Updated u.sh: Added check for root, added notes about sudo and nosuid.
[11-26] mf3-freedreno-android-boot-v4.zip & mf3-freedreno-ubuntu-boot-v4.zip - Finally fixed sudo! See kernel mods sections for details.
[11-26] ubuntu-install-v4.zip - rebuilt with new companions.
Click to expand...
Click to collapse
Aou said:
Check out this app: SManager (Script Manager). It makes running the ubuntu.sh or u.sh a whole lot easier, plus you can send it into the background (vnc method only). Just remember to jump back into SManager later, use the Menu Key and open the console to be able to kill the ubuntu.sh. You can also add "bash" as an additional argument (freedreno method only). This seems to be an effective replacement for the Terminal Emulator. Don't forget to choose the "su" option to run either script as root.
Click to expand...
Click to collapse
I have literally spent hundreds of hours working on this project, and many more hours documenting it thoroughly - just so that I could share it with all of you. If you found this guide, custom kernel or scripts to be beneficial, please hit the THANKS button on this post.
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Tsaukpaetra said:
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
Click to expand...
Click to collapse
It's not, I agree. I found that the easiest way to clear the configuration and start anew is to do the following from the "[email protected]" prompt (that is, within ubuntu):
Code:
rm /root/DONOTDELETE.txt
rm /root/cfg/linux.config
DeadlySin9 said:
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Click to expand...
Click to collapse
Interesting. I looked through the image's init.sh, and found something that's relatively new (wasn't in beta):
Code:
# Fix for sdcard read/write permissions by Barry flanagan
chown ubuntu /external-sd/
As far as I can tell, that message is harmless. It's only included in the initial configuration, as it's in the section:
Code:
if [ ! -f /root/DONOTDELETE.txt ]
As for the need to download/install the BusyBox installer, that's not surprising at all. I've had so much trouble BusyBox ever since I switched to MF3. I might include this as an extra step in the OP - thank you.
You kidding right...does this really work? To cool, thanks Aou. Great work.
TheAxman said:
You kidding right...does this really work? To cool, thanks Aou. Great work.
Click to expand...
Click to collapse
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Aou said:
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Click to expand...
Click to collapse
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
zacthespack said:
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
You, sir, are the man. thank you so much for working on this! I threw $10 at you to help fund the skittles/cheetos/carrots/beer/pizza/whatever it takes to help you along.
Added a couple things to the OP. Looks like pure-stock roms will indeed need BusyBox installed, by some means or another. Also, found SManager, which makes executing the ubuntu.sh script much, much easier.
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
This is working pretty good, slow though, do I have it setup right, or did I miss something?
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
tboss1995 said:
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
Click to expand...
Click to collapse
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
DeadlySin9 said:
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
Click to expand...
Click to collapse
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
EDIT: Also, as I use it more, I am noticing the app crashes too (such as Chromium). Could just be something in the 13.04 image, but also could be because we're running this all on ARM architecture.
Aou said:
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
Click to expand...
Click to collapse
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Yest there is a good speed increase, as with VNC xorg writes to the vnc server and passes it to the vnc client to then render on the screen.
With the new method xorg just writes to Androids frame buffer, no inbetween man.
And it can get even faster once we have graphics accelerations although not all chip sets will get that.
zacthespack said:
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Click to expand...
Click to collapse
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Aou said:
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Click to expand...
Click to collapse
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
DeadlySin9 said:
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
Click to expand...
Click to collapse
I noticed that with 12.04, it doesn't seem to connect to Xorg or something, because when you use VNC, it only shows a grey screen with a cross cursor. Same for both "Lite" and "Full" packages. Haven't tried older (10.x) packages of Ubuntu.
The other Linux images should work just fine. Optionally, you can edit the ubuntu.sh script to be more appropriate, but it should theoretically work the same (unless the init.sh is located elsewhere inside the image...).
I tried the Ubuntu 10 image and the Debian image but ubuntu didn't run vnc (vncserver not found or something) and debian kept saying I didn't have permissions.
It appears chromium is incredibly unstable on this image, so I've uninstalled it.
I'm currently working on trying to get Minecraft to work, but ever since 1.6.2 and this new launcher, it's incredibly difficult to modify the client files and such. Something is going wrong with liblwjgl.so. I can get the launcher to work correctly, but when it goes to load the game, it can't find liblwjgl.so and says that it might be because of 32bit vs ARM. I did get lwjgl installed correctly, and pulled the ARM version of the .so and stuck it in [what I believe was] the right .jar file, but it still has the error.
I'll keep you all posted. If I can get this to work, and if zacthespack can get xorg to draw on the android screen, ... :good:
EDIT:
Found out that every time the launcher runs minecraft, it downloads several libraries and other crap to run the game, to keep itself current and to support multiple versions, yada, yada. Unfortunately, this means that it downloads https://s3.amazonaws.com/Minecraft..../2.9.0/lwjgl-platform-2.9.0-natives-linux.jar every time you click Play, and overwrites any custom one you might have (i.e. one with ARM libraries inside). I tried revoking write access to the file, but then the launcher aborts the launch because it can't overwrite the file.
Any suggestions?
EDIT #2:
Well, the easy solution was to modify the file, run the launcher, disconnect mobile data temporarily, and then launch the game ("couldn't connect to server .... have local copy of file .... assuming it's good...."). No more errors about that stupid library file. However, the game immediately crashes now with an error report. Investigating this now. PROGRESS!
Problem
I'm aware I may need to modify the script in order to accommodate my setup, but I figured I'd post here first before changing anything in case someone else had a similar problem and came up with the solution.
I followed all the instructions, except I want to boot from an external USB stick (mounted using StickMount).
I reviewed the script, dropped it on the root of the USB stick, and copied the unzipped image to a folder named ubuntu.
Here is the output when I run the script:
Making mount points and mounting to them...
mount: mounting /dev/loop20 on /data/local/ubmnt failed: Operation not supported
mount: mounting devpts on /data/local/ubmnt/dev/pts failed: No such file or directory
mount: mounting proc on /data/local/ubmnt/proc failed: No such file or directory
mount: mounting sysfs on /data/local/ubmnt/sys failed: No such file or directory
Connecting to /sdcard...
mount: mounting /sdcard on /data/local/ubmnt/sdcard failed: No such file or directory
Putting in some settings...
net.ipv4.ip_forward = 1
/sdcard/usbStorage/sda1/ubuntu.sh[19]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[20]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[21]: can't create /data/local/ubmnt/etc/hosts: No such file or directory
ubuntu is configured with SSH and VNC servers that can be accessed from the IP:
(You will see an error about wlan0 if your WiFi is disabled. Safe to ignore.)
----------------- OKAY, starting Ubuntu! -----------------
chroot: can't execute '/root/init.sh': No such file or directory
----------------- Ubuntu has exited! -----------------
Cleaning up - unmounting everything and removing what we made...
umount: can't forcibly umount /data/local/ubmnt/dev/pts: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sys: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/proc: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sdcard: No such file or directory
umount: can't forcibly umount /data/local/ubmnt: Invalid argument
Welcome back to your android.
Click to expand...
Click to collapse
I am running as root, BusyBox free has been installed. My terminal app has been granted root privileges. The path to the USB stick is sdcard/usbStorage/sda1.
Any help/guidance would be greatly appreciated! :fingers-crossed:

Help getting CIFS modules to load with insmod on a G920F

Hi all,
I've followed the threads at https://forum.xda-developers.com/showthread.php?t=2003836 and https://forum.xda-developers.com/showthread.php?t=2502559 to the best of my ability but can't seem to get this to work for the life of me! I'm stuck on the part where insmod is used to load the md4.ko and cifs.ko modules. I get "insmod: failed to load /system/lib/modules/<module name>: Permission denied" errors in either case.
I have ensured that I am properly rooted, BusyBox 1.26.2 is installed to /system/bin and /system is mounted as read-write. All relevant files/directories have 777 permissions and I am running these commands as root. So what else could be the problem??
I've tried this from both Terminal Emulator on the phone itself, and also from an adb shell on my PC. Can't use adb localhost on the phone as it doesn't seem to be installed (I get "sush: adb: not found" when trying to run "adb").
Curiously, running the insmod command and having it fail seems to remount /system as read-only again (prompt changes from "zeroflte:/ #" to "1|zeroflte:/ #", which it was before the first remount). Could this have anything to do with the issue?
MTIA as I've been tearing my hair out for the best part of a day trying to figure out what the %$#& I'm doing wrong!
Kernel modules needs to be compiled for the specified kernel that you are currently using on your phone. If the insmod detects that the module is not compiled for the kernel that the device currently running on, it wont allow to load them. But in that case, if I remember correctly, a different error should be shown instead of "Permission denied" error (at least it was like that on kernel 2.6.xx, may it had been changed on 3.xx).
Or with a very low chance, maybe the SELinux prevents the insmodding the modules.
forumber2 said:
Kernel modules needs to be compiled for the specified kernel that you are currently using on your phone.
Click to expand...
Click to collapse
OK, how would I go about rebuilding the kernel myself? I have TWRP installed and know how to flash the resulting image, but have no idea where to even start with kernel modification and haven't been able to find much on the subject for my specific device.
forumber2 said:
But in that case, if I remember correctly, a different error should be shown instead of "Permission denied" error (at least it was like that on kernel 2.6.xx, maybe it has been changed on 3.xx).
Click to expand...
Click to collapse
Does that mean that even if I could bypass the permission denied error, I would be likely to get other errors? If so, should I simply give up on trying to get those modules to work?
forumber2 said:
Or with a very low chance, maybe the SELinux prevents the insmodding the modules.
Click to expand...
Click to collapse
I have tried "setenforce 0" and "setenforce Permissive" just in case those commands might help, but neither one did (getenforce returned "Enforcing" after running either command as root).

Categories

Resources