Projects
> youterm
> 0xFFFF
> radare
> glh
> xml2doc
> bluewall
> pvc-repo
> cvs-repo
> git-repo
> mesure
> wistumbler2
> acr

Posts (81)
> List of posts

> Mini update
> Accelerated dreams
> Paranoia?
> Changelog
> Graphs and 077n pwnk
> HNY2k7
> Maemo mooo
> HC pwned
> Long time no post
> USB Pawah Injector i boot reveng

Categories
> all*
> TWD(7)
> blog(5)
> bluetooth(4)
> conf(1)
> desktop(1)
> devel(8)
> family(8)
> hpcva(9)
> hurd(2)
> life(20)
> n770(3)
> netbsd(2)
> pkgsrc(2)
> reality(5)
> tips(2)
> tothink(2)

Links
+ del.icio.us
+ asterx
+ bee.es.gnu.org

nopcode
+gallery
+www.nopcode.org
+cvs.nopcode.org
+news.nopcode.org
+blogs.nopcode.org

Other Blogs
+ sKUrZ0
+ TripleDES
+ gospel
+ blyx
+ MiKi
+ plue
+ xtraeme
+ esteve
+ jmmv
+ pof
+ syvic
+ Yosh
+ k0ro
+ ESN
+ Brainstorm
+ BlackShell
+ Hubertf
+ TooMany
+ viric
+ ziberpunk

doblog
+ Makefile
+ Source
+ Readme
+ TODO
+ Changelog









 
 >>Sun, 07 May 2006 02:20:19 +0200

 family : n770 pwn3d


Per fi he aconseguit el nokia 770 . Avui he tingut temps per jugar-hi una mica i la veritat es que la impressió general és molt bona. Va justet de ram (64MB) i el maemo ja menja uns 50 només arrencar. Vaig estar instal·lant algunes aplicacions abans de reflashejarla (nethack, xterm, gaim,...) i la veritat es que va prou be. Pero em donava alguns reboots de cop en quant. Aixi que avui he decidir upgradejar el firmware i remenar un pel més la shell. Es una _GRAN_ joguina 99% lliure .




El trastet té wireless (amb suport de mode monitor i WPA), bluetooth, un processador ARM d'uns 220mhz sense FPU, pero amb extensions de java bytecode (que em moro de ganes de provar xD, hauré de modificar alguna VM pq aprofiti aquests opcodes), té microfon (cosa que m'anira dpm pel VoIP ), 64MB de ram, 128 de base (flash), i suporta una mini-MMC de 64MB.

La bateria aguanta una setmana en stand-by i 3 hores de treball (extrem suposo), pel l'us que li dono en un dia sencer em solen durar uns 2 dies.

L'entorn gràfic son unes X (Xomap) amb Matchbox de wm. La api gràfica se'n diu "Hildon" que és basicament la api de GTK2, pero adaptant el GUI al de la PDA (atatxant els menus al panel de dalt, desktop support amb gdesklets pero amb binari (no python), pel so, fa servir ALSA+esd.

Per la comunicació entre processos i gestió d'events fan servir dbus i osso. Arrenquen un gconfd per tal de gestionar la configuració del Hildon entre totes les aplicacions.

A tot l'entorn plegat li diuen "maemo". Hi ha un SDK i una imatge del sistema per debugging, aixi que es bastant senzill croscompilar aplicacions pel trasto un colega va probar el Canoe en el n770 i diu que funciona sense canviar res..aixi que suposo que aviat empaquetaré el canoe i el wistumbler2 pel n770

La veritat es que el trasto pesa menys del que sembla i té una pantalla exageradament guapa (psp-like) de 800x480 de resolució. El so no esta malament, encara que tampoc sona molt fort, pero té conector d'auriculars i porta el HelixPlayer amb el que podem escoltar radios d'internet. Hi ha un player de OGG, pero el fet que no tingui FPU, li fa bastant de mal reproduir media . Ara si, amb l'helix player podem veure xvid en fullscreen i sense talls

Aqui us penjo un screenshot amb un muttng des d'un ssh. La pantalla dona una mica més de 80x25 si posem la terminal en fullscreen (la terminal suporta tabs).


Amb tanta radiació que porto cada dia a les butxaques em quedaré estèril al final... xD (bluetooth * 2 + gsm + wifi). Porto una PAN ambulant xD.

  console:

# uname -a
Linux Nokia770-13 2.6.12.3-omap1 #1 Mon Mar 6 20:28:51 EET 2006 armv5tejl unknown

# cat /proc/cpuinfo
Processor : ARM926EJ-Sid(wb) rev 3 (v5l)
BogoMIPS : 125.03
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 3
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 32768
I assoc : 4
I line length : 32
I sets : 256
D size : 16384
D assoc : 4
D line length : 32
D sets : 128

Hardware : Generic OMAP1510/1610/1710
Revision : 17100016
Serial : 033302008b5f702f

# free
total used free shared buffers
Mem: 61828 58044 3784 0 20
Swap: 0 0 0
Total: 61828 58044 3784

# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock4 2048 1908 140 93% /mnt/initfs
none 512 32 480 6% /mnt/initfs/tmp
/dev/mtdblock4 126464 67004 59460 53% /
none 512 32 480 6% /tmp
none 1024 52 972 5% /dev
/dev/mmcblk0p1 62384 1 62383 0% /media/mmc1

# mount
/dev/mtdblock4 on /mnt/initfs type jffs2 (rw,noatime)
none on /mnt/initfs/proc type proc (rw,nodiratime)
none on /mnt/initfs/sys type sysfs (rw)
none on /mnt/initfs/tmp type tmpfs (rw)
/dev/mtdblock4 on / type jffs2 (rw,noatime,rpsize=1024,rpuid=0,rpuid=30000)
none on /tmp type tmpfs (rw)
/proc on /proc type proc (rw,nodiratime)
sysfs on /sys type sysfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
none on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/mmcblk0p1 on /media/mmc1 type vfat (utf8,uid=29999)

# lsmod
Module Size Used by
cx3110x 51588 0 - Live 0xbf03d000
umac 242116 1 cx3110x, Live 0xbf000000


Flashing the flash


Els mamoncetes de Nokia no han alliberat la utilitat per flashejar, pero han penjat binaris per linux/x86, linux/ppc, macosx, ubuntu-dapper i windows.

>> Nokia flasher utility for n770

  console:

$ ./flasher
Nothing to do!
Usage: flasher
Options:
--fiasco, -F <arg> Location of a FIASCO image
--kernel, -k <arg> Location of kernel image
--initfs, -n <arg> Location of initfs image
--rootfs, -r <arg> Location of root JFFS2 image
--xloader, -x <arg> Location of X-Loader image
--secondary, -s <arg> Location of NOLO secondary bootloader image
--2nd, -2 <arg> Location of NOLO cold flasher ("2nd") image
--unpack, -u Unpack a FIASCO image
--flash, -f Load and flash all supplied images
--load, -l Only load all supplied images
--boot, -b Boot the kernel with optional cmdline
--reboot, -R Reboot the board (e.g. after flashing NOLO)
--read-board-id, -i Print out the board type
--serial-port, -S <arg> Serial port used for cold flashing
--initialize-port, -I <arg> Only initialize the serial port
--cold-flash, -c "Cold flash" the device
--enable-rd-mode Enable R&D mode on the device
--disable-rd-mode Disable R&D mode on the device
--set-rd-flags Set R&D mode flags on the device
--clear-rd-flags Clear R&D mode flags on the device
--query-rd-mode Query the device R&D mode status and flags
--set-root-device <arg> Set the default root device
--query-root-device Query the default root device
--enable-usb-host-mode Set the device into USB host mode
--disable-usb-host-mode Set the device into USB peripheral mode
--flash-only <arg> Flash only certain components


He hagut anat a la web on penjen els firmwares i et demanen el "ProductID"...curiosament el product ID que esta escrit darrera de la bateria es la direcció MAC de la tarja wifi.

El chipset del wifi es CX3110x. I la direcció mac que tenen asignada comença per 00:14:A7:FA:6A:xx. Curiosament deuen tenir registrats certs rangs de MACs. si canvieu els ultims 2 xx ja en teniu prou per descarregar la imatge.

O sino us voleu aborrir sempre podeu anar al link directe. L'update es del 2006-05-13.

Ara caldrà apagar la pda i enxufar el cable USB. Si enxufeu el USB amb la pda encesa lq fara sera desmuntar la MMC i compartirla com si fos un disc MassStorage.

  console:

$ ./flasher -F Nokia_770_SE2005_5_2006_13_7.bin -f -R --enable-rd-mode
Found image 2nd (length 8576)
Found image secondary (length 79360)
Found image xloader (length 13824)
Found image initfs (length 1553408)
Found image kernel (length 1481856)
Found image rootfs (length 57121792)
Suitable USB device not found, waiting
USB device found found at bus 004, device address 009
Found board Nokia 770 (F5)
NOLO version 0.9.0
Sending X-Loader image (13 kB)...
100% (13 of 13 kB, avg. 450 kB/s)
Sending secondary image (77 kB)...
100% (77 of 77 kB, avg. 615 kB/s)
Flashing X-Loader... done.
Sending kernel image (1447 kB)...
100% (1447 of 1447 kB, avg. 664 kB/s)
Flashing kernel... done.
Sending initfs image (1517 kB)...
100% (1517 of 1517 kB, avg. 663 kB/s)
Flashing initfs... done.
Sending and flashing rootfs image (55783 kB)...
100% (55783 of 55783 kB, avg. 566 kB/s)
Finishing flashing... done
The device is now in R&D mode


Teoricament el --enable-rd-mode el que fa es permetre pujar a root, per fer-ho desde la terminal dins del n770 teclejeu sudo gainroot.

Mentre es va flashejant sortira una barra de progres pel framebuffer de la pda (fb-progressbar) i quan acabi es reiniciarà.

Work on..


El primer que he fet ha sigut anarme a la web de maemo, que tenen un wiki amb bastantes aplicacions enllaçades des d'alla.

M'he instal·lat lo basic per poder seguir teclejant desde el pc: vim, ssh i osso-xterm.

Executem la terminal: Apps->Extras->Xterm

  console:

n770$ sudo gainroot

Root shell enabled

BusyBox v1.00 (Debian 2:20041102-12osso) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/home/user #


Ara caldrà crear les claus ssh i configurar els paths per tenir una shell un pel més comode . Tots els paquets .deb que instal·lem van a parar a /var/lib/install com a PREFIX.

  console:

n770# /var/lib/install/sbin/setup-ssh.sh

.. creant claus ssh .. (trigara un bon rato..15 minuts o porai)

n770# for A in bin sbin usr/bin usr/sbin ; do\
echo PATH=/$A:/var/lib/install/$A:\$PATH >> /etc/profile \
done

n770# ln -s /var/lib/install/var/lib/dpkg /var/lib/dpkg

n770# . /etc/profile

n770# /etc/init.d/sshd start

n770# passwd user

(definim el password per l'usuari)


Ara ja tenim la porta oberta per entrar per ssh remotament

dpkg


Una de les coses que te el trastet al ser una debian es el "dpkg", potser si haguessin optat per ipkg o pkgsrc seria més lleuger, pero la veritat es que hi ha molt de software portat a debian i el tenim un package-manager grafic que amb 4 clicks podem instal·lar aplicacions facilment.

  console:

n770# dpkg -la
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-===================-===================-======================================================
ii gpe-mini-browser 0.17 This the basic webbrowser application for GPE
ii iphome 0.2-1 hildon homepage that shows current IP and tx/rx info
ii irssi-text 0.8.9-3.1 text-mode version of the irssi IRC client
ii libgpewidget1 0.104m1-1 GPE Palmtop Environment widget library
ii libsqlite0 2.8.13-2 SQLite shared library
ii load-plugin-aw 0.2.7-2 Hildon Status Bar load plugin
ii maemo 1.0 The base package for user installable applications.
ii maemo-bt-plugin 0.4.0-1 Hildon status bar plugin for connecting Bluetooth keyb
ii nmap 3.95-1 <insert up to 60 chars description>
ii openssh 4.2p1-1 OpenSSH server
ii osso-xterm 0.11 X Terminal Emulator for OSSO
ii sobexsrv 1.0.0pre4-1 obex server with push,pull,ftp bluetooth security mode
ii tcpdump 3.9.4-1 A powerful tool for network monitoring and data acquis
ii telnet-bsd 1.2-1 Basic telnet client
ii upnp-monitor 0.1 ProtoSys UPnP Device Monitor for Maemo
ii vim 6.4-1 Vim Editor
ii vim-tiny 5.6.070-1.1 Vi IMproved - minimal build
ii wirelesstools 28-1 Linux wireless tools and library
ii xkbdbthid 0.1-1 Bluetooth soft-HID keyboard


Jo m'he instal·lat unes quantes aplicacions, entre les més insteressants estan el vim, les wirelesstools (les bluez-utils ja les porta en el sistema base), l'irssi...

El nmap es algo força guapo perque els tius que l'han empaquetat l'han compilat amb suport de GTK, cosa bastant interessant pq aixi podrem llençar escanejos amb 4 clicks .


El trastet porta un Opera® amb suport de Flash® (funciona massa bé, a més amb els botons de '+' i '-' podem fer zoom a tota la web (imatges, flash, tamany de font) i l'scroll el podem fer clickant al fins de la web, no cal usar la scrollbar).

Pero clar... es propietari. Aixi que m'he instal·lat el GPE-MiniBrowser, que es un browser fet per la gent de GPE, pesa un pel menys que el opera per defecte(10628 vs 12564) i va força bé. Sino tenim dues alternatives més que encara no he probat: elinks i minimo (aka ManaOS). El minimo té suport per tabs, cosa que es bastant interessant ja que t'estalvia obrir mil finestres (que amb matchbox es una putada).

Un dels problemes que te el opera es que quan fas un download, la finestra de downloads es posa en plan modal, aixi que haurem d'esperar a que es baixi tot per poder seguir navegant .

HID


Teclejar per la pantalla es un pel xungo, sobretot si pretens programar en perl+vim. Pero he trobat la aplicació que estava buscant .

xkbdbthid: Es una aplicacio de X que ens modifica el perfil bluetooth per dir que som un HID de teclat i podem attachar-nos a altres dispositius i teclejar-hi. Aixi desde el n770 puc conectar-me al n6600 per bluetooth i teclejar-hi.

Aviam si trobo una mica de temps i l'empaqueto per pkgsrc, que poder teclejar desde el portatil a la PDA pot ser bastant comode. A més puc probar x2x aviam que tal es comporta i si pogues utilitzar mouse+teclat ja seria la ostia tenint la pda com a extensió del portatil i del movil.

Pero segurament em pillaré un teclat d'aquest plegables bluetooth o un FrogPad (pero nose si m'acostumaré a teclejar només amb una mà xD.

Java


El trasto no porta java, pero li podem instal·lar una jamvm que tira prou bé, el pack jikes+jamvm+gnu-classpath és funciona. i podem obrir aplicacions AWT, Swing sense problemes. La llastima es que no hi hagi un j2me lliure encara.. pero podem usar el avetanabt i microemulator per arrencar-les dins d'un emulador de j2me i amb suport de bluetooth. (no ho he probat, pero no crec que porti gaires problemes).

He trobat aquest docu de ARM que explica com funciona la tecnologia Jazelle.

ARM té 3 sets d'instruccions:

Normals: opcodes de 32 bits
Thumb: opcodes de 16 bits (reducció de codi de 40 a 50%), execució un pel més lenta.
Java: implementa tots els opcodes d'una vm de java.

Espero que el maemo estigui compilat a 32 bits...pq tinc ganes de veure si el gcc -Os de arm treu opcodes de 16 bits i puc aprofitar millor la memoria del trasto.

El tercer set implementa una vm de java, guarda l'stack de la vm i ho converteix en opcodes ARM i ho envia pel pipeline. Per tant no tenim l'overhead de memoria i execució d'un JIT i l'execució de les apps en java es unes 2-4 vegades més rapida.

S'haurà de mirar com implementar-ho..

Links & EOF


>> delicious pancake n770
>> maemo
>> jikes+jamvm+gnuclasspath
>> FrogPad
>> planet maemo
>> n770 Application Catalog
>> Report amb pantalles del maemo
>> Jazelle white paper
>> Jazzele-ARM wikipedia
>> Jazelle @ ARM

[add comment] [view comments] (7)

Comments:
from: lluis
date: Sun, 07 May 2006 02:25:55 +0200
title: I el millor de tot...

... es que duu debian ;)


from: redfox
date: Mon, 08 May 2006 13:52:20 +0200
title: quin bicho!

en el versus de pantalla de psp vs nokia, el nokia s'emporta la palma!

veeer para creer! ;)


from: Eloi
date: Tue, 09 May 2006 17:58:38 +0200
title: Teclat usb extern

Felicitats pel nou gadget! Jo fan uns mesos que la tinc i la veritat es que n'estic molt content.

Respecte a connectar-li un teclat, com els preus dels teclats bluetooth són força prohibitius jo m'he decantat per la següent opció, que us costará entre 10€ i 30€:

* Comprar un teclat usb petitet. En el meu cas, un benq minibuddy: http://www.benq.es/products/Keyboard/?product=293 .

* Fer algun dels múltiples hacks que hi ha (p.e. thoughtfix.blogspot.com/2006/01/usb-power-injector-for-usb-host-mode.html ) oper afegir suport usb host a la pda. En el meu cas n'he tingut prou amb un parell de piles de botó, un interruptor i un cable mini-usb extra que tenia per casa.

* Enxufar el teclat extern... i a correr! Això sí, la 770 el reconeix com a teclat americà. Podeu fer servir les eines habituals pq us carregui la distribució de teclat que desitjeu.




from: Joan
date: Tue, 18 Jul 2006 18:14:21 +0200
title: Portar les aplicacions a maemo

És el primer cop que visito el teu blog i esta molt bé.
Crec que estaria molt bé que pengessis les eines que has fet però per a maemo.
Per exemple, seria una canya que pengessis el projecte de Bluetooth gracia modificat per anar amb maemo, podriem anar pel carrer tot hactivitzant al personal.
Ànims!



from: Japan
date: Sat, 16 Sep 2006 16:52:38 +0200
title: My homepage

Well done!
My homepage | Cool site


from: France
date: Sat, 16 Sep 2006 16:52:57 +0200
title: My homepage

Great work!


from: Russia
date: Sat, 16 Sep 2006 16:53:08 +0200
title: My homepage

Nice site!
http://rubdjvcy.com/uhya/nijh.html | http://gidufcgw.com/brtv/hhvi.html