From Internet Tablet Talk
Discussion about Debian on N8x0: http://www.internettablettalk.com/forums/showthread.php?t=20053
Booting Debian on the N8x0
NOTE: This page assumes a desire to boot to Debian. However, the package listed under Download can be used to run Debian apps from within the Internet Tablet's standard OS (Hildon). This alternate non-booting method is described in Running Debian chroot.
Standard Disclaimer
This document assumes a certain level of experience with the Linux command line! Following these instructions may cause your tablet to steal your wife, kill your cat and burn down your house! I assume no responsibility for what happens to your tablet if you follow this writeup!
Why?
Why not? :D But really, I have a couple good reasons that I think justify the effort:
- Debian has a growing ARM EABI port. Right now 90% of the packages available for i386 are also available for ARM EABI (The Debian port is called ARMEL). That's 8000+ already built, ready to run packages.
- It's important to have software diversity. If Nokia decides tomorrow they want out of the Internet Tablet business or goes belly up or decides to sell furniture instead of phones and tablets, it's important that we have a backup plan.
- I chose Debian instead of Fedora or Gentoo, for a couple reasons. Of the three, I'm pretty sure that Debian has the most packages available for ARM EABI. Also, there is already work underway to get Hildon packaged up and included into Debian. Besides that, it's the closest distro to IT200xOS architecturely. Packages will require some changes to make dependencies work and to adjust for slightly different library versions, but they shouldn't need to be completely repackaged.
Status
This is an early, ongoing attempt at getting Debian to boot. Hardware issues are being addressed with each new version.
Hardware
What works:
- X11
- Touchscreen
- Wireless (even WPA!)
- CPU frequency scaling (cpufreq)
- Bluetooth\
- backlight control: works, access to all 128 levels. (echo 90 > /sys/devices/platform/omapfb/panel/backlight_level)
- Both the d-pad and the N810 keyboard should work, as well as USB keyboards (thanks to jott!)
- Some power management seems to work
- Sound works fine
What doesn't work:
- Camera (omap24xxcam device) -- would be great to have this! This really shouldn't be too much work to do if someone wants to look at it.
Software
- XFCE4 desktop environment
- Epiphany browser (with Webkit rendering engine) 2.22
- MPD and GMPC (ncmpc and mpc also included) (MPD looks in /home/user/music for music files, so put music there or just make a symlink to your other music directory and update MPD's database)
- Thunar file browser
- Synaptic for package management
- Screen rotation (You still need a kernel with rotation enabled! see: sse2.net/rotate )
- Text mode (On xterm use chvt 1, return to X11 with chvt 2, DON'T TRY EXIT FROM X11!!!)
Screenshots
mousepad in xfce
gmpc
epiphany web browser
TODO!
This is stuff that needs to get done. This isn't necessarily stuff that I'm working on, so if you want to take a swing at it, please go ahead. If you find info about this stuff please add it to the wiki!
- Detect headphone plug/unplug events and turn amplifiers on and off properly when they occur
- Turn the screen off after a set period of inactivity
- echo 3 > /sys/class/graphics/fb0/blank to blank
- echo 0 > /sys/class/graphics/fb0/blank to unblank
- echo 90 > /sys/devices/platform/omapfb/panel/backlight_level takes values from 1 to 127
- Figure out wifi power saving a little better
- Seems to be affected by settings in /sys/devices/platform/wlan-omap/psm
- setting 2 is equivalent to iwconfig wlan0 power on . This sets CAM timeout to 51.02 seconds. I don't know why it's so long.
- Setting 1 seems to affect network connections similarly to "agressive" power saving mode in OS2008. I don't know if it actually does anything positive for power usage those.
- setting 0 is equivalent to iwconfig wlan0 power off
- Change the button to toggle matchbox-keyboard to something better.
HOWTO
The "How I did it" section is now obsolete. I put together a tarball. You can find info about how I originally got Debian onto my N800, here: Debian-old
Download
NEW! Third release
Date: 2008-05-14
NOTE: If you could, please mirror it and post a link here!
md5sum: 3d5696671ff234b4f2f1bed870a3143f debian-armel-n800-xfce-beta3.tar.bz2
size: 216MB (as a .tar.bz2), 701MB unpacked on an SD card
Torrent: http://elkku.wippiespace.com/debian-armel-n800-xfce-beta3.tar.bz2.torrent
grape mirror: http://debian.i2c3.com/debian-armel-n800-xfce-beta3.tar.bz2
megaupload mirror: http://www.megaupload.com/?d=GFBFHQGO
mirror by stskeeps: http://stskeeps.subnetmask.net/debianN8X0/debian-armel-n800-xfce-beta3.tar.bz2
mirror by Trinity University ACM: http://cs.trinity.edu/~acm/debian-armel-n800-xfce-beta3.tar.bz2
mirror by Anunakin: http://maemo.vivaphp.net/debian-armel-n800-xfce-beta3.tar.bz2
mirror at rapidshare.com (3 parts):
http://rapidshare.com/files/114897328/debian-armel-n800-xfce-beta3.tar.bz2.part1.rar
http://rapidshare.com/files/114901144/debian-armel-n800-xfce-beta3.tar.bz2.part2.rar
http://rapidshare.com/files/114902664/debian-armel-n800-xfce-beta3.tar.bz2.part3.rar
OLD! Second release
Date: 2008-01-31
NOTE: Please try the mirrors first before you try the main link on sheeplauncher
Note: If you could, please mirror it and post a link here!
http://sheeplauncher.net/debian-armel-n800-beta2.tar.bz2 I've taken the file down from my host. It was generating too much traffic...
md5sum: 4feec620fb5e61a66890353063ba5dce debian-armel-n800-beta2.tar.bz2
size: 166MB (compressed with bz2), 587MB unpacked on SD card
Mirror by Stskeeps:
http://stskeeps.subnetmask.net/debianN8X0/debian-armel-n800-beta2.tar.bz2
Enjoy, beta2 uploaded with ftp2share:
http://depositfiles.com/files/3337677
http://www.filefactory.com/file/f1ee38/
http://www.megaupload.com/?d=GAV7GXIP
-qwerty12
Remember to check the MD5SUM. Thanks to Johnx for all his work.
Prerequisites:
- A Nokia N800 or N810 (770? check the FAQ)
- An SD card with at least a 1GB ext2/3 parition
- IT2008OS
- Must be able to boot from SD (fanoush's modified initfs highly suggested)
Installation
- Setup "Boot from MMC / SD" using fanoush's modified initfs! If you don't know how to do this please look at the FAQ for a link. Alternatively, if you do not want to risk modifiying initfs, you can first do step 2 on your main computer using a card reader, and then make the tablet boot from external mmc using flasher (flasher3 --set-root-device mmc)
- Simply untar this onto an empty ext2/3 partition. Make sure you do it as root so that permissions stick. (Note: Having problems untarring this? Check the FAQ!)
- It should produce output while booting almost immediately after you select it from the boot menu. When X11 starts, the screen will go blank. Shortly after that, XFCE should put up a splash screen.
- Eventually it should drop you off into XFCE. Have fun!
Release Notes for beta3
- The screen calibration is setup for an N800. If it doesn't work on an N810 then try linking /etc/pointercal.default to a different file (ls -l /mnt/rootfs/etc/pointercal.default for a clue)
- Press the center button on the d-pad to bring up the onscreen keyboard.
- to make wireless work: Simply put your info into /etc/network/interfaces. Look in /usr/share/doc/wpasupplicant for more thorough documentation.
Mine looks like this:
iface wlan0 inet dhcp
wpa-ssid my-ssid
wpa-psk my-secret-password-1234
- Note on wireless: For some reason your tablet may not use the correct MAC address while booted into Debian. This is not permanent and will go back to normal when you reboot into ITOS. you can set it manually with:
ifconfig wlan0 hw ether 00:de:ad:be:ef:00
- USB networking was enabled in beta2 (second release), but is disabled in beta3 in favor of support for USB keyboards.
- To enable USB networking via a desktop, first comment out the line in rc.local that sets host mode, so it looks like this:
#echo host > /sys/devices/platform/musb_hdrc/mode
Then, to give your tablet internet access through usb networking (via a Debian/Ubuntu system) add this to the /etc/network/interfaces file on your desktop/laptop PC:
auto usb0
iface usb0 inet static
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
up echo 1 > /proc/sys/net/ipv4/ip_forward
up iptables -P FORWARD ACCEPT
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.0/24
down echo 0 > /proc/sys/net/ipv4/ip_forward
down iptables -t nat -F POSTROUTING
- Next, connect your tablet via USB and run:
ifup usb0
- root password is 'rootme'
- user account is locked but you can su to it directly as root. unlock with passwd -u user ; passwd user.
- Apps installed: Epiphany-webkit web browser, roxterm terminal emulator, leafpad, synaptic
- I might not have copied some of the stuff from "How I did it" to "Release notes" so it might be worth looking through there for things I haven't answered.
- If you getting errors from ftp.jp.debian.org repository, try use: ftp.uk.debian.org
FAQ
(This is a preemptive FAQ. :P )
Q: What are the root and user passwords?
A: The root password is "rootme" and the user password is locked. You can unlock it with "passwd -u user ; passwd user"
Q: Can I run my IT200xOS applications in Debian?
A: Right now? Possibly with some hacking. Eventually the goal is to have almost all of the IT2008OS stuff working with at worst a recompile and a new Debian package. In practice this might not be achievable for some applications...
Q: What about the Nokia 770?
A: The 770 can run ARM EABI binaries, just like the N800/N810. It should be possible to get Debian running on it using a similar method. In fact apple2 seems to have accomplished something very similar: http://www.internettablettalk.com/forums/showthread.php?t=13925&highlight=debian+770
Q: When will this be finished?
A: I have no idea. Your guess is as good as mine!
Q: On the Sharp Zaurus PDAs, Debian is one of the foundations (with Ångström) that people have recently been using to boot Google Android environments. Maybe it would work on a tablet too ?
A: Interesting idea. It almost certainly would work with a little hacking. The one big thing that stands in the way right now is that applications that want to draw directly to the framebuffer (like mplayer -vo fbdev) have no problem writing to /dev/fb0 but what they write never shows up on the screen. Since Android relies on writing to /dev/fb0 we might have a problem until this can be worked around.
Of course, now Android is working as a chroot from ITOS, so Debian isn't necessarily helpful for that.
Q: Where do I find information about booting from SD & MMC cards?
A: Search google for "N800 boot from mmc." That being said, this seems to be the definitive page: http://maemo.org/community/wiki/HowTo_EASILY_Boot_From_MMC_card
Q: When I try to run "tar xjvf debian-armel-n800-beta2.tar.bz2" tar says "tar: invalid option". What should I do?
A: You have lots of choices:
- Grab gnutar from here: http://www.internettablettalk.com/forums/showthread.php?t=8631
- untar it using a Linux/Unix/Mac desktop and a card reader (or connect the tablet itself via usb)
- install bzip2 on the tablet and run: "bzcat debian-armel-n800-beta2.tar.bz2 | tar xv"
Bugs and Known Issues
Please post new bugs and issues here and I'll try to address them. No promises though. :P
--Johnx 23:01, 22 January 2008 (EST)
- If the side panel set on autohide it really difficult to access it
- There should be a way to hide both panels with Full-Screen-Button....maybe just kill xfce4-panel with -9 ^^
- Autosuggestion in epiphany is really annoying if you tipe with on-screen keyboard, would be nice to turn it off
--vililikku 20:28, 21 May 2008
- Many applications don't fit the screen
- When you choose logout in Xfce, you can't do anything
--Anunakin 11:34, 27 May 2008
- We really need to map Fn keys on N810
- We need ALT key to move applications which don't fit on screen, I think CHR key is a good choice....
- For stylus, we need map right and middle mouse buttons... Fn+click -> right, Chr+click -> middle ... I think ... pdaXrom for zaurus (ARMv5) has similar thinks...
Alendit 09:22, 20 May 2008 (EDT)