http://bsd.tspre.org/~stskeeps/deblet.png

The Deblet Project

About

The purpose of the Deblet Project is to provide a Debian-based distribution targetting the Nokia Internet Tablets (Nokia 770, N800, N810, etc.), making them Deblets :)

Our mission is to be a distribution for the tablets, for the people who would like to have the choice to do whatever they want with their tablets, compared to the OS distributed with the tablets. This means that we're open to all sorts of different environments for the tablets within the Deblet system and will gladly accept contributions for any of these, and provide users of the tablets the choice to run their environment of choice.

We also believe in "No Tablet Left Behind", that is, even though Nokia drops support for the tablets in terms not making more versions of their vendor-provided OS for the older versions of the tablets, we will be providing a modern and up-to-date OS for them as the devices themselves are still useful and able.

Our goal is to provide both a chroot version (run inside OS2008) of the Deblet distribution, and a bootable one, which is our main priority.

Due to the nature of the Nokia Internet Tablets it is at this point not possible to provide a 100% open source distribution, but we will strive towards replacing closed source components with open source versions. The entire Deblet distribution (support packages, installer) is open source.

Discussion of Deblet mostly takes place on either #maemo on irc.freenode.net, or on the Debian forum on Internet Tablet Talk, http://internettablettalk.com/forums/forumdisplay.php?f=38

Credit where credit is due

Developers:

  • Stskeeps / Carsten Munk
  • johnx / John Bloom

Logo design:

  • timsamoff / Tim Samoff

Repository uploaders & maintainers:

  • fatalsaint

Contributors and helpful advice:

  • lbt, qwerty12, fanoush, Capn_Fish, b-man, fatalsaint, qole, rik, Benson, lbalogh, Picklesworth, Bundyo, Matan, aladds, zanshin, jiiv, etc.
  • Maybe you should be on this list. If you're not on this list and you feel you should be, poke Stskeeps @ irc.freenode.net/#maemo

License

* Copyright (c) 2008, The Deblet Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*     * Redistributions of source code must retain the above copyright
*       notice, this list of conditions and the following disclaimer.
*     * Redistributions in binary form must reproduce the above copyright
*       notice, this list of conditions and the following disclaimer in the
*       documentation and/or other materials provided with the distribution.
*     * Neither the name of the Deblet Project nor the
*       names of its contributors may be used to endorse or promote products
*       derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEBLET PROJECT ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE DEBLET PROJECT BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Base packages may include GPL-licensed items or other licenses, and is as best marked what license is active when this is so. Credits to those who have made the initial hacks to make Debian run initially on the Internet Tablets, and if any contributors are not credited, please file a bug as this is not intended. Nokia is a trademark of Nokia Corporation.

Be aware since that we use packages from the firmware and from Nokia for some things, it may not be legal to distribute the final installation image on the Internet, or to others without a Nokia tablet - it's same discussion as backup of firmware to SD etc.

Installation guide for the Nokia N8x0s

WARNING: There is -no- warranty. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them in 'New ticket' and we'll try to see what we can do to fix the bug causing it. Remember to write your nickname or e-mail when submitting.

Known issues: (These issues are updated at deblet-installer v2.5 (dpkg -l deblet-installer) and was edited at 4th of October 2008)

  • When you select your target partition initially, verify the the installer registers it if it's internal or external slot, and if it registered it as the correct one. If not, report it - you will have boot problems later if so - this is fixed by switching the bootmenu item in /etc/bootmenu.d to either INT_CARD or EXT_CARD and running refresh_bootmenu.d.
  • If you use clone-to-SD, the bootmenu will probably destroy your bootmenu configuration. This is because the clone to SD scripts still don't use the new bootmenu .item system which we use for Deblet, but they should.
  • Chr and Fn doesn't work correctly under N810 just yet.
  • There's no battery meter yet, but HAL support is there.
  • If debootstrap has files that fails to download, it doesn't error (yet).
  • Our .install files add Diablo extras-devel and might cause SSU problems, but we're working on getting our packages pushed to Diablo Extras.
  • We don't handle hidden SSID well.

Use these install files:

http://trac.tspre.org/svn/deblet/trunk/deblet-chinook.install (If you use Chinook)

http://trac.tspre.org/svn/deblet/trunk/deblet-diablo.install (If you use Diablo)

  • Install the matching .install file from above. This will place two icons in Utilities. Install Bootmenu and Install Deblet
  • Make sure your charger is connected
  • Install Bootmenu first, say yes to removing test stuff and such, say yes to including bootmenu.conf (important). Reboot when done flashing. This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. If you are cloning or booting other OS'es, you'll need to make such .item files
  • Make sure you are properly connected to WiFi? or other networking.
  • Click Install Deblet icon in Utilities.
  • A text terminal will top up, and some things will be done, such as checking you are online.
  • Question: What Deblet environment would you like to install?. This is basically the user interface for your Deblet that you'd like to use. Choose one to your liking. Avoid nit-env-x or nit-env-basic if you can't handle really barebones stuff, use nit-env-lxde for first tries.
  • Question: What Debian version would you like to base Deblet on? Choices are lenny (upcoming stable Debian), sid (unstable Debian), or TAR.GZ, which is a tar.gz of someone who provided a bootstrap.tar.gz. Choose lenny unless you have other preferences.
  • What Debconf frontend would you like? GTK gives you a pretty user interface for the questions (see http://bsd.tspre.org/~stskeeps/nit-debian/debconf-gtk.png), but if you don't own a keyboard for/on your tablet, don't use it. Dialog provides a text based (and on screen keyboard enabled) UI, which is easily usable with dpad and on-screen kbd.
  • If you chose tar.gz option earlier, provide a url for a bootstrap tar.gz (this is advanced). The filename -must- be bootstrap.tar.gz.
  • Select which Debian mirror you'd like to download from, or write one of your own choosing.
  • Choice: Where would you like to install Deblet to?
    • Simple but slow - A file on one of your FAT filesystem memory cards
      • Which MMC/SD filesystem would you like to place the image file - where should the Deblet filesystem image file be placed. mmc1 = internal, mmc2 = external usually
      • Do you already have an image file named deblet.img - say yes if you already made a big deblet.img image file before and just want to overwrite it with a new installation. Say no if you want to make a new file.
        • Choice: No, you'll be asked for the intended size in megabyte. When chosen, it will make a file full of zeros of this size. It'll take a while, so go for a cup of coffee.
  • Advanced but fast (recommended) - A partition on one of your memory cards
    • Choose which MMC/SD card to install to - mmcblk0 is internal and mmcblk1 is external usually
    • Would you like to run a partioner on the MMC card? Yes: run cfdisk. There's a guide to cfdisk on http://manual.sidux.com/en/part-cfdisk-en.htm. Follow the guide on the screen at first. No: you've already done partitioning
    • You now get shown a list of partitions on your MMC card. Note /dev/mmcblkXpY. Note the one you want to install to. It must be Linux file system type.
    • Which partition would you like to install Deblet on? Find the one saying mmcblkXpY where it is from the display from previous step.
  • Would you like to: Mount the target as ext2, Make a ext2 filesystem, Mount the target as ext3, Make a ext3 filesystem (this one is recommended)
  • Would you like to use a file or a partition as swap or not swap at all? Use a swap partition if you have one, else make a 64-mb swap file, it will be at the installation target.
  • The debootstrap now begins, and will take quite a while - watch a movie. Look for errors if it fails to download a package. If you chose tar.gz, second stage now begins
  • The installation then sets up a chroot and sets up blocking so daemons and such won't start while installing.
  • Then we add the Deblet repo to the Debian installation, add the repository key, retrieve package lists.
  • We then apt-get install tablet-hw-<MODEL>-nonfree, and run /usr/libexec/tablet-nonfree/make-repo, which adds the non-free (properitary or likes packages), that has to be "made" (look at make-repo, it's actually ingenius) on tablet / with product code usage for legal reasons.
  • We then apt-get install tablet-hw-<MODEL>-support which is the packages supporting the specific model in question.
  • We then install the Deblet environment chosen earlier. This process also takes quite a bit of time. During this it will ask you various questions such as tablet user name, password, real name. -write something in the fields or the process fails and you'll have wasted several hours.- * Then it asks for you root password twice, to make sure it's okay..
  • Clean up after package downloads, tear down blockades against daemon starting. tear down chroot.
  • Installation done (if it says so). It will put a boot item called "Deblet on <partition>" (if advanced install) and "Deblet-in-a-file on <partition> (if simple install) in boot menu. Boot menu will ask you to flash, so say yes to flashing, choose your backup choice, and say yes to flashing this image. Tablet will now reboot and you can boot into Deblet.

Installation guide for the Nokia 770

This is a work in progress, it'll come soon. See http://trac.tspre.org/projects/deblet/wiki/770Port for now

Bluetooth DUN guide

Thanks to meizirkki for this one.

Setting up Bluetooth:

first run these on deblet:

$ sudo hciconfig hci0 down $ sudo hciconfig hci0 up PISCAN

Then pair your phone and deblet.

Make sure your phones bluetooth is on discoverable mode.

Then run this in deblet:

$ hcitool scan

It will scan for your phone.

Replace xx:xx:xx:xx:xx:xx with your phones mac address on following command:

$ sdptool search --bdaddr xx:xx:xx:xx:xx:xx DUN

Find channel number from the output.

Bluetooth settings:

Copy this into /etc/bluetooth/rfcomm.conf

Also check the instructions in following text:

rfcomm0 {
bind yes;
#
# # Your phones mac address
device xx:xx:xx:xx:xx:xx;
#
# # RFCOMM channel
channel 1;
#
# # Description
comment "mobile";
}

Then restart bluetooth:

$ sudo /etc/init.d/bluetooth restart

Connection settings:

Create file: /etc/ppp/peers/mobile And add following content: Also check the instructions in following text:

## Operators username and password
user "none"
password 12346


## Connection-script
connect /etc/ppp/mobile-connect-chat


## Disconnection-script
disconnect /etc/ppp/mobile-disconnect-chat


# Device
/dev/rfcomm0


## Speed
921600  

## No program running backround
nodetach

## Debug mode
debug


## Show password in debug messages
show-password




## Do not touch these

lcp-echo-failure 0
lcp-echo-interval 0

crtscts  
local
0.0.0.0:0.0.0.0
noipdefault
ipcp-accept-local
defaultroute
usepeerdns

novj
nobsdcomp
novjccomp
nopcomp
noaccomp
noccp
noauth

mtu 1500
mru 1500
asyncmap 0xa0000

Create script for opening the connection: /etc/ppp/mobile-connect-chat And add following content:

 #!/bin/sh
exec chat                                               \
        TIMEOUT         5                               \
        ECHO            ON                              \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nERROR\r'                     \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nNO CARRIER\r'                \
        ABORT           '\nNO DIALTONE\r'               \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              AT                              \
        OK              ATH                             \
        OK              ATE1                            \
        OK              'AT+CGDCONT=1,"IP","internet","0.0.0.0",0,0' \
        OK              ATD*99#                         \
        TIMEOUT         22                              \
        CONNECT         ""

This works with most operators, edit

        OK              'AT+CGDCONT=1,"IP","internet","0.0.0.0",0,0' \

line if needed.

Create the disconnection script: /etc/ppp/mobile-disconnect-chat And add following content:

#!/bin/sh
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "K" "" "K" "" "K" "" \
"+++ATH" "" "+++ATH" "" "+++ATH"

Then we will add permissions to run these scripts:

$ sudo chmod +x /etc/ppp/mobile-*

Setting are done now!

Type "sudo pon mobile" in terminal to open connection.

Disconnection command is "sudo poff mobile"

APT Repository and Contributing to Deblet

We host a Deblet APT repository where all the Deblet software is retrieved from, serving both installer (for OS2008) repositories, and Deblet itself, supplementing the Debian APT repositories with tablet specific packages. The repository can be found at http://packages.tspre.org and it is signed with the repository key:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)

mQENBEjf4K4BCADkNIYpKfbNxjkPPpJIx7wiKXv4HuBGGW/LIIeod7BDMtzx9dhV
Jztrpx7u+XYOJSeY4pYIusq0YaS/u1pSnpfl07ka0jj3RbsvSHTXUMLU8yGfOulg
nJjIa4+ADethczSxdd9kf5tTYua9TN5pjJmcqrXr04JxutsQ4kiiEXC4uNazvLJB
pJrgI73XbWEcpNp7G/hBwocEQ7Zm4MPUxRBL6iXIFMwDHeBpcmYVq6QeF3HJWwVe
3HntzRtJ53N1c969hHFaa/SCAdGUSPuJDjcg90rFtKJ4JK4RQyir6/1zxjNLX+1b
mAKxVTYIibTf5pW29fZiYslI0xzSH4scKEmHABEBAAG0KERlYmxldCBBUFQgUmVw
b3NpdG9yeSA8ZGVibGV0QHRzcHJlLm9yZz6JATYEEwECACAFAkjf4K4CGwMGCwkI
BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBbM1Z/zz4+lbRkCAC9K8zFcwH66IH5HHbE
AK4lVW7/HO1OpTW5C1q4DAc9CqMp0QlJ04OR5741hzvrBmq9Hz590+zkP/71rNNB
QeMevRxCS0u4//wRmMSjg8Db52O7rL55r9eaEujl7yPzKxIVI/Cc45UO2i3FqkrY
JomeRg1Xi7UI5wvwxE0N6it1ojHM2V2G//wLw/1XIEkYBmQ3uCmkQWn+mVL9lL5l
F1S/6881yd4N63bExvbr70Pi3phZ3YHCmLsT79IwQri39YlaKWpTpXEuMvhAiCzx
7msYVnXpx9RGzLn0PvIGRO1Yo+as1ZgbUbWuMyWIIcFYhRswW/t3PijZdHcasGW5
ikri
=GobT
-----END PGP PUBLIC KEY BLOCK-----

If you have a package to contribute to the Deblet APT Repository, it must be buildable with dpkg-buildpackage, include a source package as well - we don't just take just .debs. You can contact developers or repository uploaders on iTT (www.internettablettalk.com/forums) or IRC (#maemo on irc.freenode.net) and attach the *.changes file and any attached files (*.deb, *.dsc, *.tar.gz, etc).

You -must- provide correct Section: header in the control file and follow the rules in http://www.debian.org/doc/debian-policy/ch-archive.html (seperation of main, non-free, contrib) or they won't be added.

SVN sources for the base packages can be found on our SVN (look in Browse source, trunk -> packages) and diffs for fixes or improvements can be submitted in New Ticket. SVN: http://trac.tspre.org/svn/deblet/trunk

If you would like to contribute to the wiki, contact Stskeeps on IRC or iTT. If you would like to contribute a mirror for the repository, contact Stskeeps as well - we require rsync+ssh and a virtual host <your company or nickname>.packages.tspre.org with serveralias packages.tspre.org for this to work.

Open Tasks for people to do

  • Open source hald-addon-bme replacement, for communicating with BME (one less Nokia component)
  • Better power management for wifi, such as, don't do power management when connecting to WiFi? networks, and such.
  • Document DSME, BME, etc protocols.
  • Work on stlc45xx open source driver, and work on a 770 version (see stlc45xx-devel and maemo-developers list)

Also see http://internettablettalk.com/forums/showthread.php?t=23371 for Deblet Hack Challenges.

Videos (and prototyping)

Deblet on Nokia 770 with X11!, by aladds: http://www.youtube.com/watch?v=FRRF-fBrGEM

Deblet splash screen booting into LXDE on Nokia N800: http://www.youtube.com/watch?v=yPP2BGsY4BM

Deblet on Nokia 770 into console by aladds: http://www.youtube.com/watch?v=QGZupqelDVY

Deblet Rescue Menu: http://www.youtube.com/watch?v=h24f2YjzWBE

Screenshots (and cool things done in Deblet) and pictures

http://bsd.tspre.org/~stskeeps/nit2/scr6.jpg http://bsd.tspre.org/~stskeeps/nit2/scr7.jpg http://bsd.tspre.org/~stskeeps/nit2/scr8.jpg http://bsd.tspre.org/~stskeeps/nit2/scr9.jpg http://bsd.tspre.org/~stskeeps/nit2/scr10.jpg http://bsd.tspre.org/~stskeeps/nit2/scr11.jpg http://bsd.tspre.org/~stskeeps/nit2/scr12.jpg http://bsd.tspre.org/~stskeeps/scrF1.jpg http://bsd.tspre.org/~stskeeps/scrF2.jpg http://bsd.tspre.org/~stskeeps/scrF3.jpg http://bsd.tspre.org/~stskeeps/nit-debian/cheese.png http://bsd.tspre.org/~stskeeps/nit-debian/lxde-brightness.png http://bsd.tspre.org/~stskeeps/nit-debian/lxde-matchbox-h-i-m.png http://bsd.tspre.org/~stskeeps/nit-debian/lxde-rotated.png http://bsd.tspre.org/~stskeeps/nit-debian/nit-env-gnome-basic.png http://img.photobucket.com/albums/v119/JohnX/awesome-keyboard3.png http://img.photobucket.com/albums/v119/JohnX/today-screenie.png

http://www.flickr.com/photos/10211714@N03/2870416354/ <- aladds's 770Deblet, console

http://www.flickr.com/photos/10211714@N03/2875802734/in/photostream/ <- aladds's 770Deblet, LXDE

http://www.flickr.com/photos/generalantilles/2829356428/ <- GeneralAntilles?'s Beagleboard Deblet.

Icon artwork: http://internettablettalk.com/forums/showpost.php?p=212461&postcount=43 by timsamoff