[HOWTO] Ubuntu on Folio 100

Search This thread

ph84

Member
Jul 24, 2010
14
5
Stuttgart
I'm sorry it took so long, I got lots of stuff to deal with. Good things are worth waiting for (i heard) ;)

First off: You are responsible for any of your actions! Changes that are needed to boot Ubuntu on your folio will void your warranty!
Special Thanks goes to DerArtem for posting his Kernels, Weeds2000 for eMail support, topogigi for wifi hacking and last but not least the Ubuntu-Touch Team on IRC that made it possible for me to tweak the touchscreen driver.
However, the system you are about to create is not fully functional, there are still things missing (a working sound driver for example). Its nice to play with it anyway :D

Heres a quick walk-through:
We will flash a kernel to the toshiba folio tablet which makes it possible to boot from an sdcard or USB-stick (You have to choose one, we need at least 2GB, I'd recommend 4GB so you can install fancy stuff like OpenOffice etc.).
We will then create a root filesystem with rootstock, which will hold our Ubuntu system (similar to your hard drive-Ubuntu).
Finally, we have to tweak that filesystem and change passwords, copy wifi driver etc.
Then we're able to boot a beautiful Ubuntu. :)
Things you will need:

- A Computer running Linux (Debian / Ubuntu would be great. If you're not running Linux on your computer, running it on the folio would make absolutely no sense. Please don't ask, I don't know how to install it in Windows.)
- The files i added to this post
- A SD-Card, 2-4 GB should be fine.
- optional: A second SD-card, 128MB would be enough (for flashing)
- A USB hub (If you want to boot from USB AND use a keyboard.
- Some time... =)

The first thing you should do is flash one of the update.zip files; choose update-sdmmc.zip (this will boot your folio from sdcard) or update-usb.zip (this will boot from a usb pen drive), open it and unpack the content to a sdcard (This has to be a SDcard, we're gonna flash our device from there.)
Backup all your data on your folio (I'm serious! It'll be gone!) and turn it off.
Put the SDcard in its slot and turn the folio back on. Press + hold both power and volume up.
Follow instructions to do a system update (If you've never done this before you shouldn't start now =) )
When it reboots, your folio will show some funny black and white linux text stuff and hang somewhere. Congratulations! You just bricked your tablet. Now lets see how we can fix it... :) Turn it off (Keep power pressed for about 5 seconds) and take out the sdcard, put it in your PC.
It's getting messy now, so grab a beer and let's go:

Open a Terminal on your linux computer.

Code:
#echo "Hello world!"

If your console says "Hello World" you got it. Awesome! =)

Code:
#sudo apt-get install rootstock gparted

This will install rootstock, the tool we're gonna need to create our filesystem, as well as gparted, a tool for partitioning our flash drive. You can also install rootstock-gtk, the graphical version. Try it if you like:
Code:
#sudo apt-get install rootstock-gtk
I heard that ubuntu-netbook won't work because there are drivers missing, would somebody try that and report please?

If your beer is already empty when this is done, you need a faster computer. Tell your wife the guys at xda-developers told you so ;)

Back to the terminal:

Code:
#sudo rootstock -f MyCoolHostName -l myCoolUserName -p myCoolPassword --seed xubuntu-desktop -i 2G --notarball
This will create our filesystem with a user called "myCoolUserName" and (theoretically) his password "myCoolPassword" and install a basic xubuntu-desktop. I had to change the password manually because it didn't work this way... We'll do that later.
Rootstock will download lots of packages (You could also set it up with "--seed ubuntu-desktop", then youll download even more packages or "--seed ubuntu-minimal" or kubuntu... I still didnt find a list of seeds online :-/
The creating will take quite some time, get another beer. ;)
When this is done, you'll get a file like this : "qemu-armel-201104112120.img". We will now mount this image: (make sure the directory /mnt/ does exist and is empty:
Code:
#ls -la /mnt )
Code:
#sudo su
(its simpler to be root for now)
Code:
#mount -o loop qemu-armel-201104112120.img /mnt/
(You are aware that your filename is different, are you? Try this:
Code:
    # mount -o loop qemu-armel-*TAB*
and your terminal will automatically fill in your filename. Awesome linux, huh? =)
)
Code:
#cd /mnt/etc/
#mv fstab fstab.bak
#echo "proc /proc proc defaults 0 0" > fstab
#echo "dev /dev tmpfs rw 0 0" >> fstab
Note that the first time we create a file called fstab (echo asdf > fstab), then we add one line to this file (echo asdfasdf >> fstab)
Now we need to copy our wifi-driver over. Remember I told you to write down the directory you put them in? =)
Code:
#cp /home/YourUserName/Desktop/FolioStuff/firmware /mnt/lib/firmware
We will now do something stupid: We chroot into our arm-based system from an intel-system. But since we're only changing passwords, we should be OK.
Code:
#cd /
#chroot /mnt/
#passwd myCoolUserName
#passwd
#exit
That's it, we're out of the chroot.
It's now time to prepare the SDcard (The steps are the same for a USB Flash drive, I think you'll figure them out.)
Find out how your SDcard can be accessed (You should still be root):
Code:
# fdisk -l
In my card reader, it's "/dev/mmcblk0", it could also be "/dev/sdb1" in your computer.
Now there are two possibilities:

1. You know what youre doing. Then it's easy: You wipe the only partition (or, if there are more than one, the first partition) on your sdcard and format it with ext3:
Code:
#mkfs.ext3 /dev/mmcblk0p1
Note: The device is called /dev/mmcblk0, the partition itself /dev/mmcblk0p1 (Partition 1)
2. You are not sure about this. No problem, start gparted: (as root!)
Code:
#gparted
In the upper right corner, select your flash drive, delete all partitions and create one formatted with ext3. Close gparted.

Mount your freshly created partition somewhere (i chose /mnt2/):
Code:
#mkdir /mnt2/
Code:
#mount /dev/mmcblk0p1 /mnt2
We can now copy our filesystem over. Make sure you use exactly the same flags (rfp for recursive, force, preserve (attributes))
Code:
#cp -rfp /mnt/* /mnt2/
OK, that could work. Unmount the sdcard:
Code:
#umount /mnt2/
Put it in your folio and cross your fingers. :)

Wifi drivers will be up soon...
 

Attachments

  • update-sdmmc.zip
    4.5 MB · Views: 323
  • update-usb.zip
    4.5 MB · Views: 195
Last edited:

°EraZoR°

Member
Mar 2, 2011
32
5
It's recommend to add build-essentials to your rootstock image too..
Because then you can easily build the wireless lan drivers on your devices..
Maybe I'll post a howto this afternoon!
 

gipposat

Senior Member
Jul 5, 2006
62
1
Is this Ubuntu really usable (for daily work) with the folio 100 (touch, response speed, ecc.)?
Thanks.
 

zoken4

Member
Dec 17, 2010
23
3
Yup, it's usable for everyday work. It's quite fast on the Folio 100, I've been pretty impressed when I tested it a few weeks ago.
 

sergi711

Senior Member
Mar 18, 2011
110
3
Thanks ph84

It seems most difficult than expected but, great job !

Only i have 1 question, bricking the tablet sounds dangerous... is possible break out the tablet and get a rock?

Thanksss!!!!!
 

zoken4

Member
Dec 17, 2010
23
3
Hm... I'm using Ubuntu 11.04 and I'm getting this error at the end of the rootfs creation :
E: Sub-process /usr/bin/dpkg returned an error code (1)
E: Second stage build in chroot failed !
E: Please see the log to see what went wrong.
I: Cleaning up...
.....
I: Umounting temporary Image
umount2: Dispositivo o risorsa occupata
umount: /tmp/tmp.zaZ1j1Tgt6/tmpmount/proc: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount2: Dispositivo o risorsa occupata

Do you have any idea where I can find the log?
 

sergi711

Senior Member
Mar 18, 2011
110
3
And this procedure will build in the tablet a dual boot? Or dualboot is another procedure?
 

°EraZoR°

Member
Mar 2, 2011
32
5
No it's for singleboot only...
You can only start Ubuntu installed on SD-Card/USB-Stick with this procedure...
I don't know wether the boot-partition is locked when you are booting ubuntu/android..
If not it should be possible to build some applications to flash the boot-partition on the running system to change from ubuntu to android
 

sony_tornado

Senior Member
Dec 8, 2010
53
1
shenzhen
When I do the rootstock step,I got this error!!!Please help!!!
I: Base system installed successfully.
I: First stage install done
I: Using Chroot for installer
Adding 'local diversion of /usr/sbin/invoke-rc.d to /usr/sbin/invoke-rc.d.rootstock'
Generating locales...
en_GB.UTF-8... done
Generation complete.
Generating locales...
en_US.UTF-8... done
Generation complete.
/bin/installer: line 53: syntax error near unexpected token `+'
E: Second stage build in chroot failed !
E: Please see the log to see what went wrong.
I: Cleaning up...
.....
I: Umounting temporary Image
I: A logfile was saved as //rootstock-201104140706.log
I: Done
 

schnudergof

Member
Oct 19, 2008
5
0
mhmm it always hangs in the xulrunner configuration.. bahh someone know a solution for this? or does i realy have to chroot the rootfst and install everything manualy =(? Cant find any solution on google for this bug =/
 

°EraZoR°

Member
Mar 2, 2011
32
5
mhmm it always hangs in the xulrunner configuration.. bahh someone know a solution for this? or does i realy have to chroot the rootfst and install everything manualy =(? Cant find any solution on google for this bug =/

Just try rootstock without the parameters on --seed..
Maybe it will work..
You wont have a Desktop Enviroment like Gnome or something but you wont need that for installing the wireless drivers...
And after installing wireless drivers you can install ubuntu-desktop or something with apt-get!
 

shidima_101

Senior Member
Feb 24, 2011
75
5
Katwijk
www.treedevelop.com
Ok, I have been looking at rootstock, and if you install rootstock-gtk and than click on tasksel there is a whole list of seeds to chose from. I Think im going to try build the netbook build.

On a side note:
We will now do something stupid: We chroot into our arm-based system from an intel-system. But since we're only changing passwords, we should be OK

with chroot your only changing the root of your file system, your not running anything from there.

But its its in no way a complaint to your awesome guide! Thanks and keep up the good work!
 
Last edited:

gipposat

Senior Member
Jul 5, 2006
62
1
Meanwhile, open another terminal. (This is linux! We're gonna multitask since our computer is capable of handling that!) Go to where you stored the attached files, for example
Code:
#cd /home/YourUserName/Desktop/FolioStuff
and unpack them:
Code:
#rar x *.rar

Where/what is the "attached files"?
Thanks
 

°EraZoR°

Member
Mar 2, 2011
32
5
Just go to the first page, press STRG+F and type attached into the search window...
I hope you will find the attached files.. Else you dont have to try installing ubuntu on your folio >_<
 

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    I'm sorry it took so long, I got lots of stuff to deal with. Good things are worth waiting for (i heard) ;)

    First off: You are responsible for any of your actions! Changes that are needed to boot Ubuntu on your folio will void your warranty!
    Special Thanks goes to DerArtem for posting his Kernels, Weeds2000 for eMail support, topogigi for wifi hacking and last but not least the Ubuntu-Touch Team on IRC that made it possible for me to tweak the touchscreen driver.
    However, the system you are about to create is not fully functional, there are still things missing (a working sound driver for example). Its nice to play with it anyway :D

    Heres a quick walk-through:
    We will flash a kernel to the toshiba folio tablet which makes it possible to boot from an sdcard or USB-stick (You have to choose one, we need at least 2GB, I'd recommend 4GB so you can install fancy stuff like OpenOffice etc.).
    We will then create a root filesystem with rootstock, which will hold our Ubuntu system (similar to your hard drive-Ubuntu).
    Finally, we have to tweak that filesystem and change passwords, copy wifi driver etc.
    Then we're able to boot a beautiful Ubuntu. :)
    Things you will need:

    - A Computer running Linux (Debian / Ubuntu would be great. If you're not running Linux on your computer, running it on the folio would make absolutely no sense. Please don't ask, I don't know how to install it in Windows.)
    - The files i added to this post
    - A SD-Card, 2-4 GB should be fine.
    - optional: A second SD-card, 128MB would be enough (for flashing)
    - A USB hub (If you want to boot from USB AND use a keyboard.
    - Some time... =)

    The first thing you should do is flash one of the update.zip files; choose update-sdmmc.zip (this will boot your folio from sdcard) or update-usb.zip (this will boot from a usb pen drive), open it and unpack the content to a sdcard (This has to be a SDcard, we're gonna flash our device from there.)
    Backup all your data on your folio (I'm serious! It'll be gone!) and turn it off.
    Put the SDcard in its slot and turn the folio back on. Press + hold both power and volume up.
    Follow instructions to do a system update (If you've never done this before you shouldn't start now =) )
    When it reboots, your folio will show some funny black and white linux text stuff and hang somewhere. Congratulations! You just bricked your tablet. Now lets see how we can fix it... :) Turn it off (Keep power pressed for about 5 seconds) and take out the sdcard, put it in your PC.
    It's getting messy now, so grab a beer and let's go:

    Open a Terminal on your linux computer.

    Code:
    #echo "Hello world!"

    If your console says "Hello World" you got it. Awesome! =)

    Code:
    #sudo apt-get install rootstock gparted

    This will install rootstock, the tool we're gonna need to create our filesystem, as well as gparted, a tool for partitioning our flash drive. You can also install rootstock-gtk, the graphical version. Try it if you like:
    Code:
    #sudo apt-get install rootstock-gtk
    I heard that ubuntu-netbook won't work because there are drivers missing, would somebody try that and report please?

    If your beer is already empty when this is done, you need a faster computer. Tell your wife the guys at xda-developers told you so ;)

    Back to the terminal:

    Code:
    #sudo rootstock -f MyCoolHostName -l myCoolUserName -p myCoolPassword --seed xubuntu-desktop -i 2G --notarball
    This will create our filesystem with a user called "myCoolUserName" and (theoretically) his password "myCoolPassword" and install a basic xubuntu-desktop. I had to change the password manually because it didn't work this way... We'll do that later.
    Rootstock will download lots of packages (You could also set it up with "--seed ubuntu-desktop", then youll download even more packages or "--seed ubuntu-minimal" or kubuntu... I still didnt find a list of seeds online :-/
    The creating will take quite some time, get another beer. ;)
    When this is done, you'll get a file like this : "qemu-armel-201104112120.img". We will now mount this image: (make sure the directory /mnt/ does exist and is empty:
    Code:
    #ls -la /mnt )
    Code:
    #sudo su
    (its simpler to be root for now)
    Code:
    #mount -o loop qemu-armel-201104112120.img /mnt/
    (You are aware that your filename is different, are you? Try this:
    Code:
        # mount -o loop qemu-armel-*TAB*
    and your terminal will automatically fill in your filename. Awesome linux, huh? =)
    )
    Code:
    #cd /mnt/etc/
    #mv fstab fstab.bak
    #echo "proc /proc proc defaults 0 0" > fstab
    #echo "dev /dev tmpfs rw 0 0" >> fstab
    Note that the first time we create a file called fstab (echo asdf > fstab), then we add one line to this file (echo asdfasdf >> fstab)
    Now we need to copy our wifi-driver over. Remember I told you to write down the directory you put them in? =)
    Code:
    #cp /home/YourUserName/Desktop/FolioStuff/firmware /mnt/lib/firmware
    We will now do something stupid: We chroot into our arm-based system from an intel-system. But since we're only changing passwords, we should be OK.
    Code:
    #cd /
    #chroot /mnt/
    #passwd myCoolUserName
    #passwd
    #exit
    That's it, we're out of the chroot.
    It's now time to prepare the SDcard (The steps are the same for a USB Flash drive, I think you'll figure them out.)
    Find out how your SDcard can be accessed (You should still be root):
    Code:
    # fdisk -l
    In my card reader, it's "/dev/mmcblk0", it could also be "/dev/sdb1" in your computer.
    Now there are two possibilities:

    1. You know what youre doing. Then it's easy: You wipe the only partition (or, if there are more than one, the first partition) on your sdcard and format it with ext3:
    Code:
    #mkfs.ext3 /dev/mmcblk0p1
    Note: The device is called /dev/mmcblk0, the partition itself /dev/mmcblk0p1 (Partition 1)
    2. You are not sure about this. No problem, start gparted: (as root!)
    Code:
    #gparted
    In the upper right corner, select your flash drive, delete all partitions and create one formatted with ext3. Close gparted.

    Mount your freshly created partition somewhere (i chose /mnt2/):
    Code:
    #mkdir /mnt2/
    Code:
    #mount /dev/mmcblk0p1 /mnt2
    We can now copy our filesystem over. Make sure you use exactly the same flags (rfp for recursive, force, preserve (attributes))
    Code:
    #cp -rfp /mnt/* /mnt2/
    OK, that could work. Unmount the sdcard:
    Code:
    #umount /mnt2/
    Put it in your folio and cross your fingers. :)

    Wifi drivers will be up soon...
    1
    carful guys, that stuff will fail if you run anything with a system call... you might wanna go for:

    $sudo apt-get install qemu-arm-static
    $sudo cp /usr/bin/qemu-arm-static /my/chdir/filesystem/usr/bin/
    $mount -o bind /dev /my/chdir/filesystem/dev
    $mount -o bind /proc /my/chdir/filesystem/proc
    and maybe needed for internet connection:
    $sudo mount -o bind /etc/resolv.conf /my/chdir/filesystem/etc/resolv.conf
    and then:
    $sudo chroot /my/chdir/filesystem/
    (see http://wiki.debian.org/QemuUserEmulation)
    1
    This method isn't good to copy the firmware in the *.img file.
    I have no response at this time for this problem but I'll have an answer later.

    Could you post me (mp ?) wireless firmware files, because I don't find them on the forum ?

    Thanks in advance.

    (excuse me if you think my english is very bad but i'm french...)

    Tu peux trouver le firmware sur cette page : http://xdaforums.com/showthread.php?t=1032471
    You can find the firmware on this page : http://xdaforums.com/showthread.php?t=1032471
    1
    I had excactly the same problem. I solved it by installing from the stable version of ubuntu, and not Katy. I got it running now btw!

    Sent from my HTC Desire using XDA Premium App
    1
    Connexion à ports.ubuntu.com

    You can try to mount your sd-card with the unpacked rootstock-filesystem on it and then open a terminal:
    $ sudo chroot /sdcard
    /sdcard is the path of your sdcard (/media/sdcard, /mnt or sth. depends on running system)
    And the you can use
    $ apt-get update
    $ apt-get install build-essential ubuntu-desktop
    Then you got compiler tools and ubuntu-desktop install onto your sd-card...

    Same problem here, I've started my folio to login and password but no x. I have to notice that I did not build the rootstockfs correctly as the line did not worked, I had to remove --seed in order to make it work (I have to admit that i did not try to understand that part, just followed some hints from this forum)

    but the serious thing i think are those lines in my log

    Code:
    Failed to fetch ports.ubuntu.com/ubuntu-ports/pool/universe/x/xfce4-places-plugin/xfce4-places-plugin_1.2.0-1_armel.deb Unable to connect to ports.ubuntu.com:http:
    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
    [ 965.798740] Kernel panic - not syncing: Attempted to kill init!
    I: Killed ...

    and when I want to chroot to my sdcard it tryed to update repository from the same url ports.ubuntu.com which is clearly not good.

    I'm gonna dig this --seed but your help would be much apreciated !