Related
I've been running Debian natively from my SD card for a while, so I decided I'd share the [relatively easy] instructions. First, though, here's the status of the hardware support...
* X11 is working quite nicely. 480x640 resolution is best for using E17.
* I'm trying to think up a solution for the 3D accelerator. LLVMpipe works but it's not much faster than classic Mesa. Maybe that's because I'm only testing performance with Mupen64Plus and SuperTux Ideally we would have an open-source OpenGL ES 1.0 driver with an OpenGL 1.3 wrapper/Gallium state tracker, but unfortunately Qualcomm closed it
* The hardware buttons don't generate input events (except the power button, which apparently makes SDL windows fullscreen).
* USB function ether works. This means you can SSH into it or update packages without a data connection (I don't think data even works).
* Sound doesn't work because Android doesn't use ALSA - or maybe because DZO hasn't written the proper driver...
* Camera(s) would need a Video4Linux driver; again, not my area
* Bluetooth is untested.
* GPS needs userspace work (gpsd?) - maybe the HTC Dream page at HTC-Linux.org has info...
* Calling - untested because: 1) I doesn't got the software, and 2) even if it worked, I have no one to call
If you're willing to wait indefinitely for those things to be fixed (or if you don't care), all you need is a Debian chroot on an EXT2-formatted SD card and my special NBH. The NAND should also work*, but Debian probably wouldn't fit on it. These instructions should also work for Ubuntu, Gentoo, FSO/OpenMoko, Angstrom, ARMedSlack, Fedora, or what have you - the only requirements are ARMv6 or lower and a semi-standard root filesystem layout (i.e. /sbin/init).
For those of you who don't trust binaries, I've uploaded my patches to the kernel and tinboot needed for Debian to boot. For everyone else, I have NBH files ready. Just flash the NBH, insert your SD card, and it should boot.
Links:
http://www.mediafire.com/?mnv2memddug (source)
http://www.mediafire.com/?immywzmmqjn (binaries)
*LogFS patch included and enabled in my NBH.
Interesting, i'm going to have to try it out, any chance of getting it bootable from within android, like haret is with windows?
what exactly is debian??
is it like ubuntu thats on my computer
jadenj5 said:
what exactly is debian??
is it like ubuntu thats on my computer
Click to expand...
Click to collapse
yes
10char
little confused though, where do I get the debian root files though
Debian Root
Instructions to build your own RootFS follow. If you're lazy, Google for a pre-built one.
If you're on Ubuntu:
Code:
sudo apt-get install debootstrap
sudo debootstrap --arch armel --foreign unstable root/ http://http.us.debian.org/debian
Substituting "unstable" for "stable" or "testing", "root/" with the the path to the directory you want the rootfs in (probably your SD card mountpoint), and your country code in ftp.??.debian.org (or another mirror). You might also need to do
Code:
sudo mount -o remount,rw,dev,exec $MOUNTPOINT
to your SD card (which, again, should be ext2-formatted) for debootstrap to work.
Then to complete the bootstrap:
Code:
sudo apt-get install qemu-kvm-extras-static
sudo cp /usr/bin/qemu-arm-static $ROOTFS/usr/bin/
sudo chroot $ROOTFS
From inside the chroot, do
Code:
/debootstrap/debootstrap --second-stage
Then, apt-get install whatever you want on the phone (after configuring /etc/apt/sources.list), exit the chroot, unmount the card, insert it in your phone, and boot!
You'll need - at the very least - xserver-xorg-video-fbdev and xserver-xorg-input-evdev *WITHOUT* installing the other video or input drivers. And a desktop/window manager. If you haven't used Debian before, try e17.
Thanks man, i'm going to go check it out
If you're lazy, Google for a pre-built one.
Click to expand...
Click to collapse
can't find one.?
If you're on Ubuntu:
Click to expand...
Click to collapse
ubuntu 10.04 debootstrap doesnt know about stable/testing/unstable names, but knows about lenny, squeeze, sid
okay, I maked Debian unstable rootfs - here it is (127MB tar.bz2). here is dpkg -l.
root password is "1", apt sources.list is configured to most close to me mirror. I also added /proc into fstab.
how to pack my rootfs into .img image now?
can you post a screenshots please ???
there is nothing to show now, really. we need to make working pack first.
google e17 screenshots, on device you will have same.
a note about the sound issue. You are correct in that the vogue kernel does not have alsa support at this time.
nice job on this
Code:
E: No such script: /usr/share/debootstrap/scripts/stable
debootstrap installed with no errors but that's what I get when I try to run
Code:
sudo debootstrap --arch armel --foreign stable /media/79e9dd5a-174b-4324-a704-6aa06807fe35 http://http.us.debian.org/debianc
Try "lenny" instead of stable.
gTan64 said:
Try "lenny" instead of stable.
Click to expand...
Click to collapse
progress but now i get
Code:
I: Retrieving Release
E: Failed getting release file http://http.us.debian.org/debianc/dists/lenny/Release
Look closely - the mirror URL doesn't contain "debianc", does it?
gTan64 said:
Look closely - the mirror URL doesn't contain "debianc", does it?
Click to expand...
Click to collapse
I'm F-ing retarded
/facepalm
-Edit- any packages you would advise to install?
New problem
Code:
[email protected]:/$ sudo chroot /media/79e9dd5a-174b-4324-a704-6aa06807fe35_
chroot: cannot run command `/bin/bash': Exec format error
Could it be because sudo apt-get install qemu-kvm-extras-static had no packages and I had to install sudo apt-get install qemu-kvm-extras
Code:
sudo cp /usr/bin/qemu-arm-static $ROOTFS/usr/bin/
This step is essential - without qemu-arm-static in your chroot, you won't be able to run/emulate any ARM binaries (in this case, Debian-armel's /bin/bash).
Yes, you do need the static version. Last I checked it was actually in the Ubuntu repositories, so look again...
As far as what packages to install, here you go.
Essential packages: xserver-xorg-{video-fbdev,input-{mouse,keyboard}}
Essential desktop packages (pick one): e17 fluxbox lxde xfce4
Recommended packages: cellwriter xfce4-goodies
Suggested packages: Whatever floats your boat.
Packages I installed even though having no sound makes them useless: zynaddsubfx supertux sopwith bomberclone
OK now that the first hard part is over (getting Webtop running with out dock) now its time to push this to the limits ... I am Currently working on getting apt-get installed and running on Jaunty ... I would love to get some help with all this, obviousy this wont replace my laptop or Desktop, but it would be nice to know that anywhere i am i have a fully function linux machine in my pocket... so lets keep up the good work and push forward, CHARGE !!!
FIRST try and fail... prayed it would be as easy as pushing apt-get to /system/bin and executing ... it was not ... well not with this try anyhow getting a apt-get: cannot execute binary file error
Open a second adb shell and monitor dmesg | grep TOMOYO to see if the MAC is preventing you from executing files not listed in the policy. I had to muck around with it earlier today to get it to run lxterminal.
agentdr8 said:
Open a second adb shell and monitor dmesg | grep TOMOYO to see if the MAC is preventing you from executing files not listed in the policy. I had to muck around with it earlier today to get it to run lxterminal.
Click to expand...
Click to collapse
will do !! first thing im doing right now is installing a virtual machine jaunty on my machine to compare and test with figure that will be the most helpful !!
Anyone working on this, be very careful, as the default adbd location is in /sbin, which symlinks to /osh/sbin.
Its possible to use adb to interact with the webtop, its probably easier for these initial command line stages too.
t0dbld said:
FIRST try and fail... prayed it would be as easy as pushing apt-get to /system/bin and executing ... it was not ... well not with this try anyhow getting a apt-get: cannot execute binary file error
Click to expand...
Click to collapse
Why did you have to push apt-get to the box? apt and dpkg are already there.
I had this earlier, but reverted due to problems (I tried to uninstall rootfs). The first thing that needs to be taken care of is missing package dependencies, and file collisions. The package rootfs provides the functionality of the packages that are missing, but apt doesn't know that.
Also, consider moving /usr to the /data partition to save space. /osh is pretty cramped as is, and resolving the dependencies will fill it up pretty quickly.
droidbird said:
Why did you have to push apt-get to the box? apt and dpkg are already there.
Click to expand...
Click to collapse
I saw a dpkg something cant rmember but wasnt the same thing i see no apt-get either. Also even when running in root apt-get did not exist i used echo $PATH Folowed it and did not see any apt files. If i am wrong and you kniw of there existence and how to make them execute please inform us all as if we have a working apt-get well its all but over
t0dbld said:
I saw a dpkg something cant rmember but wasnt the same thing i see no apt-get either. Also even when running in root apt-get did not exist i used echo $PATH Folowed it and did not see any apt files. If i am wrong and you kniw of there existence and how to make them execute please inform us all as if we have a working apt-get well its all but over
Click to expand...
Click to collapse
it's already there:
Code:
[email protected]:/osh/usr/bin# ./apt-get moo
./apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
but /osh/etc/apt/sources.list has garbage mirrors listed... They point to 10.77.32.150, which is obviously not a real IP. You could try commenting out what's in there and add in a working jaunty repo.
If you're going to use dpkg to install .debs manually, remember that they'll need to be compiled for arm processors.
Unfortunately my PC monitor doesn't do HDMI, so I can't run webtop right now. I'll play around more tomorrow when I can hook up my atrix to the TV
t0dbld said:
I saw a dpkg something cant rmember but wasnt the same thing i see no apt-get either. Also even when running in root apt-get did not exist i used echo $PATH Folowed it and did not see any apt files. If i am wrong and you kniw of there existence and how to make them execute please inform us all as if we have a working apt-get well its all but over
Click to expand...
Click to collapse
Apt and dpkg have been verified in this forum to be there for a week, search gets us that as well as some of the dependency issues.
Think about what you are suggesting
Be mindful that when pointing people down the road of running apt and dpkg that the very first thing they should have is a way to recover to stock. It is quite possible and likely that running apt-get or dpkg that you may twiddle some bits on your /osh partition that make webtop fail or unusable.
Have a backout method
At minimum, I would grab a dd of your /osh partition or one from here in the forums and keep it around. In addition, I would suggest you have a way to execute dd (if that is the route you choose to go for backup) outside of the /osh partion in the event you screw /osh up and need to dd back the old working /osh. Is the dd in /bin statically linked? If so, then the plan can be as easy as copying dd to some other partition where it can be executed from. If it is not static, you need one that is or a runtime environment where it can execute.
Have a plan
Why are we trying to get apt working? Is there some goal besides filling up /osh's remaining 77MB of space?
I'll start with a couple of options:
We want a working apt so we can install a less heavy browser than firefox.
We want to be able to replace the awn launcher with something snappier and that does not require compositing, again lowering memory usage and increasing performance.
A working dependency resolving package manager is "the right thing(tm)" to do as opposed to running around with zip files. Zip file are no way to keep a working system.
Exploring and discovering is cool and very fun, but either heading that direction or suggesting others do without a plan is to invite disaster.
If you change sources.lst, please make sure you use ARM repos and not x86 repos. X86 software will break the Webtop if you load it.
For anyone that wants to try, here is the correct repo to use:
Code:
deb http://ports.ubuntu.com/ jaunty main security universe multiverse restricted
Always make sure /osh can mount on boot, and that /osh/sbin/adbd remains intact. Without it, you have no way of recovering
perkz said:
it's already there:
Code:
[email protected]:/osh/usr/bin# ./apt-get moo
./apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
but /osh/etc/apt/sources.list has garbage mirrors listed... They point to 10.77.32.150, which is obviously not a real IP. You could try commenting out what's in there and add in a working jaunty repo.
If you're going to use dpkg to install .debs manually, remember that they'll need to be compiled for arm processors.
Unfortunately my PC monitor doesn't do HDMI, so I can't run webtop right now. I'll play around more tomorrow when I can hook up my atrix to the TV
Click to expand...
Click to collapse
well i stand corrected, thank you sir.... although mine doesn't execute, still the same error:
./apt-get: cannot execute binary file
Are you sure you were in /usr/bin when you ran ./apt-get since you were specifiying that it execute from the current directory? Failing that, were you root and/or you might need to adjust your TOMOYO settings, but mine executes just fine as root as long as it is in the path and my /osh is fairly stock outside of the TOMOYO settings I have mucked with and a couple of other changes like adding a password for adas. If you still have problems, can you reload your /osh and start fresh?
i was in right dir , i am reboot it all now and will start over
Suggestion to anyone working this, take a dd copy of /dev/block/mmcblk0p13, and use losetup to mount it on /osh when experimenting.
Edit: the kernel lacks a loop device, working on that now.
t0dbld said:
OK now that the first hard part is over (getting Webtop running with out dock) now its time to push this to the limits ... I am Currently working on getting apt-get installed and running on Jaunty ... I would love to get some help with all this, obviousy this wont replace my laptop or Desktop, but it would be nice to know that anywhere i am i have a fully function linux machine in my pocket... so lets keep up the good work and push forward, CHARGE !!!
Click to expand...
Click to collapse
When you say " but it would be nice to know that anywhere i am i have a fully function linux machine in my pocket" do you mean being able to run Jaunty on just the phone itself, not hooked up to a dock? Or do you mean hooked up to a dock, just Jaunty replacing Webtop?
BravoMotorola said:
When you say " but it would be nice to know that anywhere i am i have a fully function linux machine in my pocket" do you mean being able to run Jaunty on just the phone itself, not hooked up to a dock? Or do you mean hooked up to a dock, just Jaunty replacing Webtop?
Click to expand...
Click to collapse
well i dont own a dock but i do not plan on running jaunty on a 4" screen
t0dbld said:
well i dont own a dock but i do not plan on running jaunty on a 4" screen
Click to expand...
Click to collapse
Yea thats what I thought. That would be sweet though. People think I'm crazy when I run Win95 on my phone, I think it's awesome though. So Jaunty or just Webtop IMO would be REALLY awesome to run on the little 4 inch screen! But most people just think it's a stupid, and pointless idea
shawnbuck said:
Suggestion to anyone working this, take a dd copy of /dev/block/mmcblk0p13, and use losetup to mount it on /osh when experimenting.
Edit: the kernel lacks a loop device, working on that now.
Click to expand...
Click to collapse
The loop devices are in /dev/block/loop[X].
First of all, I need to give my thanks to great DevGhostofNet for his excellent work on getting Ubuntu 11.01 running on Xoom. I borrowed his template on this instruction page as I really don't have my template and using this way to show my appreciation to his work.
Second, I figured though I am not big dev by any means, hopefully any time I spent on such things can add some value to owners of either DS7 or Xoom, especially DS7, which really needs any effort on it in addition to testing help.
So I would throw in my two-cent hours/efforts to get this started. I see huge potential in it, though now it is quite WIP, because the non-graphical version is running well but not Gnome sessions.
1.What is working?
Shell Ubuntu 11.04
I modified the installation scripts to mount DS7 partitions correctly and copy some modified script into original image.
2. What is not working?
Gnome Session
I can install necessary components up to a point where the wall paper is loaded, sidebar is loaded but the guest system did not take/register input properly yet.
3. Why we care?
It has huge potential in it. It uses a part of your sdcard to run a guest system, and you can literally install all those great Ubuntu apps in it in future when more dev effort makes this happen.
4. What is the impact to my existing Android OS?
Minimal. The impacts are:
1. there will be ubuntu scripts in /system/bin/
2. Loop7 device will be borrowed while ubuntu is mounted.
3. under /sdcard, there is a folder ubuntu which pretty much contains everything
4. in LOST.DIR of your /sdcard, there may be lots of temp files if you experimented a lot of install/uninstall of this guest system.
If you still want to take a crack now.........
DISCLAIMER: I will not responsible for any bricked device. Please although this experiment won't affect your other files at all, but **** happens all the time, please do backup and understand what you are trying to do before proceed.
[Before Installation:]
1. You should know what you are doing at this step.
2. You have rooted your device already
3. You configured adb and have a terminal apps in your DS7. (Terminal apps can be found in market. Android Terminal seems to work fine)
4. You have a VNC client. (Android-vnc in market seems fine)
[Installation:]
1. Download the DS7Ubuntu files From my post at http://www.OpinionatedFool.com
2. Extract it into /sdcard/ubuntu folder
3. Open a terminal
Code:
su
cd /sdcard/ubuntu
sh ubuntu install
Just click yes when you are asked some questions. This process takes about 5 mins
reboot after installation
NOW after rebooting, you officially are running a text based Ubuntu 11.04
4. Open you terminal
Code:
su
ubuntu start
ubuntu shell
If you are interested to go further, I really encourage to because we need better devs to bring us further. I am willing to try more but it will take longer time as I have been away from Linux for a good 6 years.
5. After you are in Ubuntu Shell environment. you can do
Code:
vi /sbin/installubuntu
6. Inside installubuntu, the following are present:
Code:
#!/bin/sh
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q upgrade
/usr/bin/apt-get -y -q install python-software-properties
#/usr/bin/add-apt-repository ppa:unity-2d-team/unity-2d-daily
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q install tightvncserver xrdp
/usr/bin/apt-get -y -q install ca-certificates desktop-file-utils doc-base eog g
conf-editor gedit ghostscript-x gnome-about gnome-applets gnome-control-center g
nome-media gnome-menus gnome-nettool gnome-panel gnome-session gnome-session-can
berra gnome-system-monitor gnome-system-tools gnome-terminal gnome-themes-select
ed gnome-themes-ubuntu gnome-utils gtk2-engines gtk2-engines-pixbuf gucharmap hu
manity-icon-theme indicator-applet-session inputattach language-selector launchp
ad-integration lftp libgd2-xpm libgnome2-perl libpam-ck-connector libsasl2-modul
es libxp6 nautilus nautilus-sendto notify-osd rarian-compat screen smbclient sof
tware-center synaptic software-properties-gtk ttf-dejavu-core ttf-freefont ubunt
u-artwork ubuntu-extras-keyring ubuntu-sounds unzip update-manager update-notifi
er x-ttcidfont-conf xterm yelp zenity zip maximus
/usr/bin/dpkg-divert --local --rename --add /sbin/initctl
/bin/ln -s /bin/true /sbin/initctl
I am good up to completion of this step in the script above
Code:
/usr/bin/apt-get -y -q install tightvncserver xrdp
Then the following bulk apt-get process will cause issues. The main course is on gconf2 as far as I know.
I tried to install them separately after install gconf2, but it is not stably working.
i.e. sometimes I did install them all correctly, but sometimes I am getting segmentation error, which is annoying and requires wipe ubuntu folder and reinstall ubuntu.
I am too rusty on Linux now that better devs may figure it out easily.
[How to Uninstall it?]
In case you want to get rid of it. Here is how:
Through ADB or Terminal Simulator in your DS7
Code:
adb shell
su
mount -o remount,rw /dev/block/mmcblk3p3 /system
rm /system/bin/ubuntu*
mount -o remount,ro /dev/block/mmcblk3p3 /system
[Next Step]
Install and configure a working copy of Gnome-session on this successfully. Hopefully there will be Kernel Dev to have a Ubuntu kernel specifically for DS7? That will be the best.
We can then
1. Run Apache server and you will access your files through Dell Streak 7 as long as you are tethering in its own LAN. (or a lot more)
2. Run browsers in graphical version of Ubuntu on your DS7 so that you can do whatever with hulu or netflix or anything. Basically you are carrying a freaking DS7 laptop with you. with touch screen and huge mobility
[Notes]
1. pts need to mounted
2. use Unity-2d seems to be better than Unity
3. mtab need to be replace manually with the mtab I included in the zip file
4. kernel is not configured to have shared memory management ...
I'll definitely be following this thread with interest!
native ubuntu would be nicer rather than the crap of chrooted ones, they are just pointless IMHO as the device has to try and manage 2 oses at once, the 7 doesnt realy have the ram to manage that
Any updates on this project ?
Guess not :-(
Quick question to the op
Does wifi work so you can update / install packages?
If so, does it see the wifi cards chipset? I'm looking into getting aircrack-ng set up to tinker with. ( saves me from dragging out my laptop to test security on networks with my job )
Currently I'm using my Mac with kismac which does the job nicely , however, if I can use the ds7 under Ubuntu its one less reason to drag it along.
Can you copy the device information for me or does it act like a LAN card ?
Thanks !!
what is the latest development?
In a few weeks, i will tell my team to look at the cm7.1 things. I hope you will help us? I will send you a pm but remember me
ubuntu
is this still being worked on or attempted? or is there a ubuntu rom out already?
Is this anything like Ubuntu installer...
http://forum.xda-developers.com/showthread.php?t=1390351
[Project dormant unless someone else picks it up]
NOTE: This is a chroot for the Webtop, not the Android+VNC chroot method.
Hi everyone, this is my first guide (I'm not sure I can call it that yet, or if this is in the right section) so bear with me.
I tried the Debian chroot guide (http://forum.xda-developers.com/showthread.php?t=1093790), and I really liked the idea, but I had too many apt-get issues and it often crashed my Webtop, so I tried building my own Ubuntu Lucid chroot using rootstock, but internet didn't work.
I later saw this: http://forum.xda-developers.com/showthread.php?t=1184161, but the links were dead and the scripts it referenced were out of date. I'll sort of combine the two guides here since Backtrack actually works surprisingly well.
Just on a side note though, I haven't fully tested the Backtrack tools, but the only thing I haven't found to work are the wireless tools.
Let's start!
Required:
-Rooted Atrix (with Blur based ROM)
-LXTerminal installed on Webtop
-Enough free space (around 4 GB just for room)
-7-Zip
-Some Linux/Unix distro native or in a VM
1. Install the easy-signed.zip from the Debian chroot guide:
http://forum.xda-developers.com/showthread.php?t=1093790
but the other files aren't needed.
Make a folder called WebTopMOD (case-sensitive) on either external or internal memory for later.
2. Look here for reference: http://forum.xda-developers.com/showthread.php?t=1184161, but the links are dead. Active links are here:
Part 1: http://www.mediafire.com/?x9cgxzdx84vc6uj
Part 2: http://www.mediafire.com/?xaoidipkg1o7vgo
Part 3: http://www.mediafire.com/?po3nznbxgvdipur
Use 7-Zip to uncompress the three files (called bt.7z.001,002,003) and you'll get a bt.img.
Full bt.img in a zip:
DL from Mega or from Google Drive
3. The image isn't usable in this state yet, since the image is formatted with ext2, and we need ext3.
Copy the image over to your Linux VM or computer on a easy-to-find directory, and open up a Terminal window (usually CTRL+ALT+T).
In Terminal, type this in:
Code:
cd <directory where you put bt.img>
mkdir tmp tmpbt
sudo mount -o loop bt.img tmpbt
dd if=/dev/zero of=linuxdisk count=0 bs=1MB seek=4096 (This is the size of the chroot image you want, in MB)
mkfs.ext3 linuxdisk (just type y when it asks)
sudo mount -o loop linuxdisk tmp
sudo cp -rf tmpbt/* tmp
sudo umount tmp
sudo umount tmpbt
[Sorry, made a mistake twice] Copy the newly made linuxdisk file to a directory named WebTopMOD on your internal memory or sdcard-ext (folder and file names are case-sensitive).
4. Start Webtop, then open LXTerminal, then start the chroot by typing in:
Code:
/usr/sbin/linux
and after it loads for a bit, you'll get an xterm window with the shell for Backtrack!
If you want to quit the Gnome session, closing xterm doesn't work, since by issuing the commands to kill the webtop processes, it also kills the webtop window manager, and if you do close it there's some kind of weird glitch with a small popup window constantly disappearing and reappearing. (It'll be a WIP for now I guess, the only full solution is to reboot your Atrix). It seems to have to do with the way the linux command mounts the chroot disk under loop50, I'll try and make something to fix this later.
-----------------Extras moved below-----------------------
Pictures:
Chromium Running
BT Desktop (Gnome)
BT Desktop with AIW
THANKS TO:
k.taylor89 for the original Backtop Method
SystemR89 for the Debian chroot and scripts to make this work
The original developers of the Backtop chroot image
And any others I may have forgotten!
Extras:
If you want a GUI (Gnome):
k.taylor89 said:
You first need to kill off all the webtop crap do this by typing the following in xterm.
"ps ax|grep awn|awk '{print $1}'|xargs kill"
"ps ax|grep panel|awk '{print $1}'|xargs kill"
Then start gnome by typing "gnome-session" in xterm.
Click to expand...
Click to collapse
If you want to take it step further and start Gnome after bootup, this isn't a full solution yet but you could edit your start-oshwt-1.sh and 2 scripts so that the chroot automatically starts on bootup without anything else in Webtop, and from there start gnome-session. I'm testing that now.
Installing Apps:
Since this is based off of Ubuntu Lucid, you can install anything from the Lucid repos, you just have to fix the sources list since the Backtrack sources don't seem to work.
Code:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old (Backup just in case)
sudo nano -w /etc/apt/sources.list
Comment out (#) any line with the backtrack servers, and uncomment any line with the Ubuntu repos.
Press Control+X, Y, then Enter, then run apt-get update to update the repos.
Apps like Chromium install and run without a hassle (just run apt-get install chromium-browser), but I actually get the error "Bus error" for some reason when Chromium remains idle, it seems to be an unsolved bug in the version of Chromium for armel devices in the Lucid repos, if anyone else has a fix, please do tell.
First.
I think its only for lapdock ..........
3n3rg1c said:
First.
I think its only for lapdock ..........
Click to expand...
Click to collapse
Oh sorry yeah I forgot to mention that. I mean I guess if you have the mod that lets you use Webtop anywhere, that'll work too.
Hi,
The "Part 3: http://www.mediafire.com/?po3nznbxgvdipu" doesn't work.
Could you fix it.
Thank you.
sintoo said:
Hi,
The "Part 3: http://www.mediafire.com/?po3nznbxgvdipu" doesn't work.
Could you fix it.
Thank you.
Click to expand...
Click to collapse
Oh sorry I copied the link incorrectly, updated in OP.
i've gotten it running on my ubuntop model, when i ran it from the terminal it would not give me any issues when closing it back up. is there a way to only launch the gnome panel? running: gnome-panel in the terminal didn't work
etruj said:
i've gotten it running on my ubuntop model, when i ran it from the terminal it would not give me any issues when closing it back up. is there a way to only launch the gnome panel? running: gnome-panel in the terminal didn't work
Click to expand...
Click to collapse
I'm not sure if there is a way to start just gnome panel because of the way the chroot is implemented, since to run gnome-panel, an X session must already be running within the chroot and I need to figure that out.
My first two times i lUnched the session the wallpaper would flicker and then just the panels would come up. Now i get hit with the errors and loop pop ups. Maybe there is a way to launch the session then kill everything but the panel?
Sent from my MB860 using xda app-developers app
etruj said:
My first two times i lUnched the session the wallpaper would flicker and then just the panels would come up. Now i get hit with the errors and loop pop ups. Maybe there is a way to launch the session then kill everything but the panel?
Sent from my MB860 using xda app-developers app
Click to expand...
Click to collapse
The workaround I found worked so far was to modify the start-oshwt-2 script so that it would run a very slightly modified version of the script that automatically starts gnome-session (gnome-panel alone is really stubborn, still haven't figured that out) and doesn't start whatever window manager in WebTop to avoid flickering errors and panel only errors (but of course you don't have access to anything from the actual WebTop, but you could also have start-oshwt open a Terminal window from WebTop too).
Can you attach the script?
Sent from my MB860 using xda app-developers app
etruj said:
Can you attach the script?
Sent from my MB860 using xda app-developers app
Click to expand...
Click to collapse
Just rename it to linux, and copy it to wherever you like on your Atrix. You can also copy it to a directory within your terminal path.
This isn't my script, it's from the Debian chroot, just modified to automatically start gnome-session (credit to SystemR89)
You might need to chmod +x the file.
Also, if you want to start it automatically from start-oshwt-2.sh, make sure you copy the file to a directory within the terminal path, and add the line
Code:
sfalv -i "linux"
and comment out any other line that starts a different X window manager.
running "sudo gnome-panel" gives me the panel while staying inside the original ubuntop. i think i can just swap out that one line in your script to get it working. thanks! also noticed my chrome crashes after a few minutes, ill post the error code and screen grabs soon but was wondering if you ever experienced anything like it?
etruj said:
running "sudo gnome-panel" gives me the panel while staying inside the original ubuntop. i think i can just swap out that one line in your script to get it working. thanks! also noticed my chrome crashes after a few minutes, ill post the error code and screen grabs soon but was wondering if you ever experienced anything like it?
Click to expand...
Click to collapse
Yes, in fact. It's a bus error, and I tried to fix it, but the fix doesn't work (and it only seems to affect Chromium).
Sorry for bumping such an old thread, but I was wondering if anyone wanted to take this project over, since I don't have an Atrix anymore and don't have anything to work with.
Thanks.
This guide is intend to help you with "installing" Ubuntu 14.04 (12.04 also works) on the Amazon Fire TV 2 after @rbox recovery has been setup. Only headless mode is possible, similar to Ubuntu Server, but it still makes a nice little ARMv8 development box. Starting X.org or running systemd based Linux distributions will likely never be possible due to features missing from the Amazon kernel. Creative use of the framebuffer is possible if desired, maybe eventually a terminal emulator could be started. As long as you don't mount and modify mmcblk0pX there should be no possible way to mess up Android or brick the device. It's 100% reversible by just removing the SD card. You accept all responsibility for what you do with this work should something go wrong and the device becomes inoperable. With disclaimers and precursor knowledge out of the way let's get started.
To follow this guide you will need:
A micro SD card (2 GB+ recommended)
A Linux system
To login into Ubuntu you will need either:
A 1.8 V TTY USB serial device connected to the UART
A pair of USB serial devices and a null modem cable
I actually used a pair of Xbee's for testing the ttyUSB0 stuff, so hence a pair of FTDI chips would also work.
Preparing the SD Card
To get started you need to first partition the micro SD card:
Type = MBR
Part 1 = 100 MB, Fat32 (vfat)
Part 2 = Remainder, Ext4
Extract the attached zip file to the root of the first partition (extracted filename must be "ramdisk-recovery.cpio.lzma"). This is an alternative initramfs that simply uses busybox to clean up from the partial Android boot and prepare the filesystem for regular Linux. Extract an Ubuntu core root filesystem archive, ubuntu-core-14.04.4-core-arm64.tar.gz, to the root of the second partition as the root user (to preserve ownership/permissions). Make sure you sync or eject the device when done with this work so the data gets flushed to the SD card.
Now we need to make a few changes to the root filesystem to avoid usability issues and allow logins.
Replace /etc/fstab with the following contents to correct some mount options. This "disables" SELinux which fixes dpkg errors and some other login annoyances.
Code:
/dev/mmcblk1p2 / ext4 defaults,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs ro,relatime 0 0
Replace /etc/init/console.conf with the following contents to allow logins from the UART. Once the root password has been set (root is disabled by default) you can remove "-a root" if desired.
Code:
# console - getty
#
# This service maintains a getty on console from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -s -a root console
Create /etc/init/ttyUSB0.conf with the following contents to allow logins from an attached USB serial device. This should help people who don't want to take apart their device to solder wires onto the UART test points. SSH would of course be an alternative but it's not installed by default in Ubuntu core and this guide is about the building blocks not providing pre-made images (yet). Since udev doesn't work due to devtmpfs not being enabled in the kernel you will need to attach the USB serial device before booting for this to work. As before you can remove "-a root" later if desired once the root password is set. Also you should change the baud rate if needed.
Code:
start on (tty-device-added ttyUSB0)
stop on (runlevel [!2345] or tty-device-removed ttyUSB0)
respawn
exec /sbin/getty -L -a root 115200 ttyUSB0 vt102
Preparing the Fire TV
Until the search order for the initramfs file is changed by @rbox you will need to rename the initramfs on the system partition so it will continue to search for one on the SD card or USB stick. You need to connect to the device using adb either over USB or the network to execute the following commands.
Code:
adb$ su
adb# mount -o remount,rw /system
adb# mv /system/recovery/ramdisk-recovery.cpio.lzma /system/recovery/ramdisk-recovery.cpio.lzma.bak
adb# mount -o remount,ro /system
Right now this prevents "su" from working, which should be fixed by @rbox in due time. To get "su" working again you should extract the original recovery initramfs file to a USB stick and boot the device with that USB stick inserted instead of the previously created SD card. Then to restore "su" you can repeat the above steps just swapping the order of the files in the "mv" command.
Booting Ubuntu
After connecting your serial device of choice simply insert the SD card and power on the device. It's that easy! With luck you should get a shell prompt that is already logged in as root. It's a good idea to set the root password before going much further. The device isn't too useful without networking, so you can install more packages. To solve that connect an ethernet cable (since it's simpler) and type "dhclient eth0" to get online. At this point you can install openssh-server using apt-get or do anything else you'd normally do on an Ubuntu VM or headless Ubuntu system. I'm interested in hearing what people plan to do with a more-or-less high-end ARM development system.
Tips and Tricks
NOTE: These changes, unless otherwise noted, are performed while logged into the target Ubuntu system.
Setting the Hostname
You can change the hostname using the following command:
Code:
echo sloane > /etc/hostname
You should also create a simple /etc/hosts file that matches the chosen hostname.
Code:
127.0.0.1 localhost
127.0.1.1 sloane
Enable Ethernet at Boot
Create the file /etc/network/interfaces.d/eth0 with the following contents:
Code:
auto eth0
iface eth0 inet dhcp
Allow Users Network Access
Since we are stuck running an Android kernel you need to create the following group and add users who need network access (such as ping) to this special group.
Code:
groupadd -g 3003 aid_inet
usermod -G aid_inet -a root
usermod -G aid_inet -a <username>
Removing Failed Services
There are a few services that fail to start due to hardware limitations. We should just prevent them from starting in the first place. We have no VT support enabled in the kernel (boo) so we can just remove the ttyX login prompt services. Also the console setup doesn't work since our console is a serial device not a virtual terminal or other "graphical" type terminal emulator.
Code:
rm /etc/init/tty?.conf
echo manual > /etc/init/console-font.override
echo manual > /etc/init/console-setup.override
Fix /dev Hotplug
As stated before udev doesn't work due to missing kernel features. The busybox applet mdev is a simple replacement for most users. After installing the "busybox-static" package run the following command:
Code:
ln -s /bin/busybox /sbin/mdev
Now add the following line to /etc/rc.local before "exit 0".
Code:
echo /sbin/mdev > /proc/sys/kernel/hotplug
Pre-installing SSH
See: http://forum.xda-developers.com/showpost.php?p=65595013&postcount=13 (thanks @segfault1978)
Thanks a lot, that was exactly the thing I was searching for. Since before today the Raspi3 came out, this box is the cheapest ARMv8 development machine available. With your instruction I was able to login via SSH and install all required software for my development environment. No GUI needed for that, I'm doing all remotely via SSH. Again, thank you!
segfault1978 said:
Thanks a lot, that was exactly the thing I was searching for. Since before today the Raspi3 came out, this box is the cheapest ARMv8 development machine available. With your instruction I was able to login via SSH and install all required software for my development environment. No GUI needed for that, I'm doing all remotely via SSH. Again, thank you!
Click to expand...
Click to collapse
Awesome to hear that it worked for you. Just curious if you went the USB serial route or soldered to the UART pins.
There is also the Dragonboard 410c which is a quad core A53 but has a bit more than the raspberry pi. The price is higher though but it has been out probably a year or so. Just FYI. The raspberry pi 3 is a good deal.
zeroepoch said:
Awesome to hear that it worked for you. Just curious if you went the USB serial route or soldered to the UART pins.
Click to expand...
Click to collapse
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
---------- Post added at 09:09 PM ---------- Previous post was at 09:03 PM ----------
zeroepoch said:
There is also the Dragonboard 410c which is a quad core A53 but has a bit more than the raspberry pi. The price is higher though but it has been out probably a year or so. Just FYI. The raspberry pi 3 is a good deal.
Click to expand...
Click to collapse
Thank you for the hint, I'll have a look for the availability of this board in germany.
I'm facing a memory problem, resulting in a reboot of the device when all RAM is being used. My compile session takes more than 1.x GB of RAM for the quite complex compilation of all required packages. I can reproduce the situation where all memory is consumed and the device instantly reboots when hitting "no memory left" situation. Since "swapon" is not supported by the kernel (really?): is there any way to enable swap functionality, i.e. via a kernel module? How to overcome this situation where more memory is needed?
segfault1978 said:
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
Click to expand...
Click to collapse
That is pretty crazy, but since you knew the changes required it worked Not everyone I expected to have such experience. I figured someone might even try to do a qemu chroot or debbootstrap to preinstall openssh. Multiple ways to solve the same problem I guess.
segfault1978 said:
I'm facing a memory problem, resulting in a reboot of the device when all RAM is being used. My compile session takes more than 1.x GB of RAM for the quite complex compilation of all required packages. I can reproduce the situation where all memory is consumed and the device instantly reboots when hitting "no memory left" situation. Since "swapon" is not supported by the kernel (really?): is there any way to enable swap functionality, i.e. via a kernel module? How to overcome this situation where more memory is needed?
Click to expand...
Click to collapse
Looking at the default kernel config from the source code drop from Amazon I see:
Code:
# CONFIG_SWAP is not set
Swap can not be compiled as a module. Even if you chose to use a USB stick or something as the swap device It wouldn't work. Given that we can't change the kernel we can't try stuff like zram or zswap either. The only other suggestion I might have is if you're using "-j4" or something while compiling just remove that so it does a single threaded compile. I'm sure you already tried that. Beyond that you could look at using the Linaro AArch64 toolchain and cross compile. Since we're running Ubuntu you shouldn't need to worry about static binaries.
zeroepoch said:
Looking at the default kernel config from the source code drop from Amazon I see:
Code:
# CONFIG_SWAP is not set
Swap can not be compiled as a module. Even if you chose to use a USB stick or something as the swap device It wouldn't work. Given that we can't change the kernel we can't try stuff like zram or zswap either. The only other suggestion I might have is if you're using "-j4" or something while compiling just remove that so it does a single threaded compile. I'm sure you already tried that. Beyond that you could look at using the Linaro AArch64 toolchain and cross compile. Since we're running Ubuntu you shouldn't need to worry about static binaries.
Click to expand...
Click to collapse
Unfortunately, I'm not compiling with parallel processes (I'm compilig Icinga2 for arm64), I'm running
Code:
dpkg-buildpackage -us -uc
within the source package. One single cpp call consumes so much memory (which is crazy in my eyes, never seen such a big compiler process until today), so I'll investigate the option of cross compiling and afterwards creating the deb file outside of the machine.
Code:
cd /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base && /usr/bin/aarch64-linux-gnu-g++ -DI2_BASE_BUILD -Doverride="" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -pthread -std=c++11 -Wno-inconsistent-missing-override -fPIC -I/root/icinga2-2.4.3 -I/root/icinga2-2.4.3/lib -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib -I/root/icinga2-2.4.3/third-party/execvpe -I/root/icinga2-2.4.3/third-party/mmatch -I/root/icinga2-2.4.3/third-party/socketpair -o CMakeFiles/base.dir/base_unity.cpp.o -c /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base/base_unity.cpp
I'm a novice in android devices: What would be required to use a custom kernel? A hacked boot loader, which is not available for the AFTV2?
segfault1978 said:
I'm a novice in android devices: What would be required to use a custom kernel? A hacked boot loader, which is not available for the AFTV2?
Click to expand...
Click to collapse
Yep... we need to be able to use fastboot to boot an unsigned kernel and initramfs (boot.img). I tried at one point to overwrite the boot partition with own image and it failed to boot. Since I had the preloader stuff worked out already I was able to restore the original boot image and get it working again.
On a side note, if you don't mind could you post the list of packages needed to install SSH server from rc.local? Others might find that useful. To get around the unset password issue you could have also saved a public key in /root/.ssh/authorized_keys which would also avoid you needing to change /etc/ssh/sshd_config to allow password logins as root.
segfault1978 said:
within the source package. One single cpp call consumes so much memory (which is crazy in my eyes, never seen such a big compiler process until today), so I'll investigate the option of cross compiling and afterwards creating the deb file outside of the machine.
Code:
cd /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base && /usr/bin/aarch64-linux-gnu-g++ -DI2_BASE_BUILD -Doverride="" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -pthread -std=c++11 -Wno-inconsistent-missing-override -fPIC -I/root/icinga2-2.4.3 -I/root/icinga2-2.4.3/lib -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib -I/root/icinga2-2.4.3/third-party/execvpe -I/root/icinga2-2.4.3/third-party/mmatch -I/root/icinga2-2.4.3/third-party/socketpair -o CMakeFiles/base.dir/base_unity.cpp.o -c /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base/base_unity.cpp
Click to expand...
Click to collapse
I see you are not using -pipe which is good, but a quick search suggested something that might not be simple since this package has it's own build system but changing from -O2 to -O1 might help.
I noticed that Debian has the package available for the same version and already built for arm64.
https://packages.debian.org/sid/icinga2
Maybe you already tried that. You could try going back to jessie which is probably an older version but I think most jessie packages work with Ubuntu 14.04.
zeroepoch said:
Yep... we need to be able to use fastboot to boot an unsigned kernel and initramfs (boot.img). I tried at one point to overwrite the boot partition with own image and it failed to boot. Since I had the preloader stuff worked out already I was able to restore the original boot image and get it working again.
On a side note, if you don't mind could you post the list of packages needed to install SSH server from rc.local? Others might find that useful. To get around the unset password issue you could have also saved a public key in /root/.ssh/authorized_keys which would also avoid you needing to change /etc/ssh/sshd_config to allow password logins as root.
Click to expand...
Click to collapse
This is the list of packages I manually downloaded for ARM64 (unfortunately I used Debian packages which worked first, but leads to a hell situation afterwards when dealing with other dependencies; be sure to use Ubuntu packages in order to avoid problems afterwards):
Code:
busybox_1.22.0
libedit2_3.1
libgssapi-krb5
libk5crypto3
libkeyutils1
libkrb5
libkrb5support0
libwrap0
openssh-client
openssh-server
openssh-sftp-server
This is the piece of calls in /etc/rc.local, right before the exit:
Code:
dpkg --force-all -i /*.deb > /install.log 2>/install.err
echo $? >> /install.log
echo "installation finished" >> /install.log
It took about 1-2 minutes before SSH started to work automatically, you can mount the SD card afterwards in another system in order to check the written logfiles.
Here are some notes for getting wireless working. In addition to the normal OS steps (installing wpasupplicant or wireless-tools and editing /etc/network/interfaces or using wicd) you will need some firmware files from /system (/dev/mmcblk0p13).
Code:
mount -o ro /dev/mmcblk0p13 /mnt
cp -r /mnt/etc/firmware/ /lib/
cp -r /mnt/etc/Wireless /etc/
umount /mnt
segfault1978 said:
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
Thank you for the the fire tv guide.
Click to expand...
Click to collapse
So, what's the verdict on this? I want to use my firetv 2 as an emby server. Is it worth it trying to get Ubuntu to run?
Sent from my Mi A1 using Tapatalk
mrchrister said:
So, what's the verdict on this? I want to use my firetv 2 as an emby server. Is it worth it trying to get Ubuntu to run?
Click to expand...
Click to collapse
If it has arm64 packages and headless you can give it a try. If you don't like it you can just revert the ramdisk and go back to Android.
Ok sweet, thanks for the reply
Sent from my Mi A1 using Tapatalk
Just curious if anyone's tried running Plex server on this?
I've been looking for a better solution without shelling out $500+ for a dedicated NAS. AFTV is tiny so I could hardwire it and hide it away.
Thanks
I got the same idea. Right now the firetv is still being used as a media streamer but I'm thinking of doing this soon