Ubuntu on tiny210v2

WalterW
I'm trying to get ubuntu on my tiny210v2 SBC and I downloaded all the
ubuntu files from the FTP server. There is no zImage file there, even
though the readme says that there should be. Can someone at friendlyarm
please put the zImage for ubuntu 12.04 on the FTP?

uelman
hi WalterW,

do you still have the problem or you make it works? can you help me? i have
the same problem! thank you

WalterW
Hi uleman, Yes I'm still having the same problem. From some posts that I
have read it looks like you don't use a nand rootfs but run the ubuntu
files FROM the SD card.

Of course I haven't found any step-by-step instructions yet...

uelman
I've been searching in this forum and found this topic:

http://www.friendlyarm.net/forum/topic/4922

take a look WalterW!

WalterW
Thanks, nice! I got some more info from there..however the armworks.cc link
doesn't work so I can't get to the tutorial that reggie keeps talking about
:(

Reggie
http://pastebin.com/R3wkPUWi

uelman
Thanks Reggie! I'm going to start the job now and i hope to put my
tiny210v2 on fire with ubuntu. see you...

WalterW
Thanks Reggie!!! It's nice to be able to see the tutorial that you've been
talking about :)

Reggie
FriendlyArm have provided an ubuntu image and tools on the ftp site, it
works with the rootfs via an ext4 partition on an SD card.
 
 
== Things you will need ==
 
* Ubuntu downloads from the friendlyArm ftp site so you have the desktop or
server rootfs archive.
* mktools from one of the dvd images
* mini210S
* serial console access to the mini (for giggles)
* network connection
* 4GB micro SD card, already fused with SD-Flasher.exe and an ext4
partition added to it, doesn't matter too much how big the fat partition
is, just make sure the ext4 partition is a couple of GB.
 
 
== Make sure you've got superboot on the SD card ==
 
If you haven't burnt superboot.bin to your SD card,
[http://armworks.cc/index.php?title=Mini210S_Burn_rootfs_to_Nand#Burning_...
follow the section in this link for information on how to do that] and
remember to backup the SD card before you start as it will destroy all of
your data.
 
For the ext4 partition you will need to use a disk resizing app. like
gparted on a linux machine. When you open gparted and look at your SD card,
you'll notice that there is 151MB of unallocated space, this is where
superboot is, so don't touch it, it's supposed to be there!!
 
In gparted, resize the fat partition that you made, it doesn't matter too
much how big it is, I made mine 512MB so I can mess with other stuff on the
card at a later date, using gparted, I had to click on the green tick to
actually resize the fat partition before it would let me partition the rest
of the sd card.
 
Once you've resized the fat partition, you can format the unallocated space
that is freed up by the resizing, it's easiest to just right click on the
unallocated space to the right of the fat partition, choose new partition
and then set the filesystem to ext4, click add and then click the green
tick to execute the changes.
 
That's it for the SD card, you can now move onto the next sections.
 
== Unpack and prepare your Image ==
 
First off we need to unpack our rootfs archive, I'll be using the
ubuntu-desktop-1204_20120628.tgz file, open a command prompt browse to
wherever you downloaded the rootfs and the images_18714.rar files to and
do:
 
  sudo tar -xvzf ubuntu-desktop-1204_20120628.tgz
 
That will keep the permissions intact, and unpack the archive into a folder
called ubuntu-desktop, now we need to copy them to the ext4 partition, so
put your uSD card in a reader and plug it into your PC, you will need to
know the path to the ext4 partition on your SD card.
 
  sudo cp -varP ubuntu-desktop/* <path to ext4 partition>
 
It will take a while, once it's finished,
 
Next you'll need to unpack the the images folder and copy that to your fat
partition on the sd card, so do:
 
  rar x images_18714.rar
  cp -varP images/ <path to fat partition>
 
== Edit all of the things ==
Next you'll need to edit a couple of files, otherwise you won't be able to
sudo from the serial console and you'll miss out on all the universe repo
goodies!!
 
you'll need root privs. to open these files, from the ext4 partition, edit
/etc/sudoers, scroll down to line 19 and add a line to make it look like
this:
 
  # User privilege specification
  root    ALL=(ALL:ALL) ALL
  fa      ALL=(ALL:ALL) ALL
 
Save and exit the file. fa is the username and password to logon to the
system (I think!! there might be others, it auto logs you in and serial
console won't let you use root!!) so adding it to sudoers gives us root
privs when we need them.
 
Next we need to edit /etc/apt/sources.list, scroll down to line 15, we're
going to uncomment the 4 deb/deb-src lines, this will give us access to all
the useful universal tools from the ubuntu repos, so uncomment the lines so
it looks like this:
 
  ## Uncomment the following two lines to add software from the 'universe'
  ## repository.
  ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the
Ubuntu
  ## team. Also, please note that software in universe WILL NOT receive any
  ## review or updates from the Ubuntu security team.
  deb http://ports.ubuntu.com/ubuntu-ports/ precise universe
  deb-src http://ports.ubuntu.com/ubuntu-ports/ precise universe
  deb http://ports.ubuntu.com/ubuntu-ports/ precise-updates universe
  deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-updates universe
 
Once you've saved and exited we need to edit a file on the fat partition,
in /images/ you'll find a file called FriendlyARM.ini, open it in your
favourite editor, you should be ok with the defaults but I like to change
the StatusType to the following:
 
  StatusType = LED
 
I hate it when the mini210S screams at me when *it* did something wrong.
 
== Burn the kernel then run Ubuntu ==
 
Now that you've prepared the card you can safely remove it from your system
and plug it into your mini210S, we're going to burn the kernel and
superboot to nand, so flip your bootmode switch to SD and power on the
mini210S, in about 10seconds it should be all over and you should be ready
to boot.
 
Once it's finished burning the kernel, flip the bootmode switch back to
nand, and toggle the power switch, that's pretty much it, if you have a
serial console connected to con1 then you should see the usual junk flying
past your screen and you will be presented with a login prompt at the
serial console, on screen (mine is a H43 lcd) you should see the ubuntu
desktop, as I mentioned, it automatically logs you into the desktop (unity
sucks on a 4.3" screen), the touchscreen afaik isn't setup (or at least not
enough to work but it did seem to be detected at least) so you'll want a
usb hub, mouse and keyboard.
 
From the serial console I would suggest doing sudo apt-get update and then
you can go and hunt down any of your favourite apps and install them. 
That's about it, have fun!
 
 
== Issues ==
 
You will see 3 errors at least on your travels :
  mountall: Event failed
  init: Failed to create pty - disabling logging for job implemented
  sudo: unable to resolve host localhost.localdomain
 
mountall probably gimps out because something it wants doesn't exist, no
idea what though, failed to create pty is alledgedly to do with something
that, again, doesn't exist when init starts logging and sudo is a host
thing, just needs setting accordingly somewhere.
 
If anyone fixes these issues before i do, post the fix here!!
 
For the touch screen, you'll probably want to apt-get install libts, and
probably the x11 stuff for it too, you'll also probably need
/etc/friendlyarm-ts-input.conf from maybe the linux 2.6.35 image, and
etc/ts.conf(should be installed with libts I think but it'll need to be
edited to look like the one in linux image)
 
== update ==
After translating the ubuntu readme, it seems that there are a number of
other issues, touchscreen is not supported (yet) and the multimedia system
(hardware codecs etc.) are all turned off!
 
There is a fix for the pty issue and it's pretty simple too, from a command
prompt on the mini210S, do:
  wget
https://launchpad.net/ubuntu/+source/upstart/1.5-0ubuntu8/+build/3710339...
--no-check-certificate
  dpkg -i upstart_1.5-0ubuntu8_armhf.deb

WalterW
Ok, weird problem...my tiny210v2SDK just continually beeps if I try the SD
card now. However it boots up to the previous image fine if I select NAND
BOOT.

WalterW
Actually more of a high pitched squeel....

WalterW
I also get no serial output when I boot from SD, NAND is fine. My SD card
is layout is as follows:

|----------------------|
|(Superboot) 151MB     |
|                      |
|----------------------|
|                      |
|FAT 256MB             |
| |                    |
| |images/             |
|    |Superboot.bin    |
|    |Friendlyarm.ini  |
|    |Linux/           |
|       |zImage        |
|                      | 
|----------------------|
|                      |
|(RootFS) EXT4 3.6GB   |
|                      |
|----------------------|

Are there any changes need to the friendlyarm.ini file? You tutorial didn't
mention any, but several posts have OS= Ubuntu so I was curious.

WalterW
Ok, I'm getting closer. I wiped my 4GB SDcard created a partition then I
let SDflasher relayout the card. That gave me this:

|----------------------|
|(Superboot) 151MB     |
|                      |
|----------------------|
|                      |
|FAT 3.6GB             |
|----------------------|

Then I copied the images folder from the DVD onto the card and made sure
that the tiny210 would boot/install. After I verified that it worked I used
gparted on my Ubuntu machine to resize the FAT partition to 512MB and
create the ext4 partition.

|----------------------|
|(Superboot) 151MB     |
|                      |
|----------------------|
|                      |
|FAT 1.6GB             | (Found out that 256MB wasn't enough to hold 
| |                    |  the DVD images folder. So I made it 1.6GB)
| |                    |
| |images/             |
|    |Superboot.bin    |
|    |Friendlyarm.ini  |
|    |Linux/           |
|       |zImage        |
|                      | 
|----------------------|
|                      |
|(RootFS) EXT4 2.0GB   |
|                      |
|----------------------|

Then, as your tutorial says I copied from the ubuntu-dekstop folder over
the ext4. I had to mount it first though 'sudo mount -t ext4 /dev/mmcblk0p2
/media/ubuntu' (note: create /media/ubuntu folder before mounting)
Everything works except now I get the following on my console and the
tiny210 keeps rebooting....ideas???


[    3.152199] Freeing init memory: 1428K
[    3.180788] EXT4-fs (mmcblk0p2): recovery complete
[    3.180846] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data
mode. Opts:
/init: line 103: can't open /r/dev/console: no such file
[    3.201739] Kernel panic - not syncing: Attempted to kill init!
[    3.201795] Backtrace:
[    3.201843] [<c0171efc>] (dump_backtrace+0x0/0x110) from [<c059bb04>]
(dump_stack+0x18/0x1c)
[    3.201915]  r6:cfc24000 r5:c074d798 r4:c074bff4 r3:00000000
[    3.201980] [<c059baec>] (dump_stack+0x0/0x1c) from [<c059bb7c>]
(panic+0x74/0xf0)
[    3.209423] [<c059bb08>] (panic+0x0/0xf0) from [<c019980c>]
(do_exit+0x74/0x5f4)
[    3.216777]  r3:c074d798 r2:00000000 r1:00000024 r0:c06b1297
[    3.222392] [<c0199798>] (do_exit+0x0/0x5f4) from [<c019a070>]
(do_group_exit+0x98/0xc8)
[    3.230460]  r7:000000f8
[    3.232976] [<c0199fd8>] (do_group_exit+0x0/0xc8) from [<c019a0b8>]
(sys_exit_group+0x18/0x20)
[    3.241553]  r7:000000f8 r6:00000001 r5:bed50ef4 r4:00000004
[    3.247175] [<c019a0a0>] (sys_exit_group+0x0/0x20) from [<c016dfc0>]
(ret_fast_syscall+0x0/0x30)
[    3.255943] Rebooting in 5 seconds..
[    8.328432] Restarting Linux versRunning OS 'LINUX'
Loading kernel...
file: /images/Linux/zImage: 3 MB(4045356 Byte)

Reggie
probably need to turn off initramfs support in the menuconfig

WalterW
Thanks Reggie...but it turned out to be my fault, sort of. For some reason
the copy command didn't copy all of the files to the ext4 partition. The
console file was actually missing! I didn't have a Linux machine handy to
look at it when I posted or I might have saved myself some trouble.

Reggie
which console file?  if you mean /dev/console, that's a device node :D

although strictly speaking, everything in linux is a file, but
/r/dev/console is the device node inside the cpio file, which usually
breaks when you start doing 'normal' command lines.

if you're copying a rootfs across to an SD card, or any other hdd/usb
storage medium, you need to do it as root otherwise all of the important
stuff (like device nodes) won't get copied across, as non-root users can't
create device nodes.

Colin
So, Here I am in 2016, trying to do this, and of course, the Internet
landscape has moved.

armworks.cc is no-more, and FriendlyARM no longer provide an FTP site.

Where can I get ubuntu-desktop-1204_20120628.tgz (or server) from?
Where can I get images_18714.rar ?

I think thats all I need.