Group: Hardware/TODO/TO SORT/Smartphones

From LibrePlanet
Jump to: navigation, search
(Introduction)
(References)
(48 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
First let's define a smartphone,
 
First let's define a smartphone,
  
A smartphone is a phone with at least 2 processors:  
+
A smartphone<ref name="smartphone">See http://laforge.gnumonks.org/papers/gsm_phone-anatomy-latest.pdf for a more correct definition</ref> is a phone with at least 2 processors:  
 
* one where runs the operating system(like Android,GNU/Linux etc...), it is usually called the Application processor
 
* one where runs the operating system(like Android,GNU/Linux etc...), it is usually called the Application processor
 
* another that interface with the GSM network(for instance it reads the sim card,interface with the GSM tower etc...). It is usually called the baseband.
 
* another that interface with the GSM network(for instance it reads the sim card,interface with the GSM tower etc...). It is usually called the baseband.
Historically both processors talked to each other trough AT commands(also known as [http://en.wikipedia.org/wiki/Hayes_command_set Hayes command set] ).  
+
Historically both processors talked to each other trough a serial port, with AT commands(also known as [http://en.wikipedia.org/wiki/Hayes_command_set Hayes command set] ).  
  
 
While freedom is possible on the GSM processor too,we will focus on freedom on the Application processor(because [http://bb.osmocom.org/trac/wiki/LegalAspects#Usingmodifiedphonesoncarriernetworks it's illegal to run modified GSM processors on carrier networks] and also very dangerous)
 
While freedom is possible on the GSM processor too,we will focus on freedom on the Application processor(because [http://bb.osmocom.org/trac/wiki/LegalAspects#Usingmodifiedphonesoncarriernetworks it's illegal to run modified GSM processors on carrier networks] and also very dangerous)
Line 19: Line 19:
 
!Nexus one
 
!Nexus one
 
!Palm pre(normal,plus or version 2)
 
!Palm pre(normal,plus or version 2)
 +
!Nexus S
 +
!GTA04
 
|-
 
|-
 
!Non free firmwares
 
!Non free firmwares
Line 38: Line 40:
 
*Wifi(libertas_sdio)
 
*Wifi(libertas_sdio)
 
*Maybe others?
 
*Maybe others?
 +
|{{butyes}}:
 +
*Wifi
 +
*Bluetooth
 +
*NFC: Near Field Communication
 +
*MFC: Multi Format Codec (hardware video encoding/decoding)
 +
|{{butyes}}
 +
*Wifi
 
|-
 
|-
 
!Modem can be flashed
 
!Modem can be flashed
 
|{{butyes}}
 
|{{butyes}}
|?
+
|{{butyes}}<ref name='n900modemflash'>Nokia Updates are capable of flashing the modem firmware, in fact unpacking the PR 1.3(The version of the nokia Update)update with [http://www.nopcode.org/0xFFFF/ 0xFFFF] shows that the modem firmware was flashed,also some modem properties changed between PR 1.2(The version of the nokia Update) and PR 1.3(The version of the nokia Update)</ref>
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 +
|
 +
|{{butyes}}, the main CPU loads the firmware from NAND trough the free ril library during boot.
 +
|?
 
|-
 
|-
 
!Modem can be unpowered
 
!Modem can be unpowered
Line 50: Line 62:
 
|?
 
|?
 
|?
 
|?
 +
|
 +
|?
 +
|Depend on hardware versions(A3 had a bug)
 
|-
 
|-
 
!Audio path under modem's control?
 
!Audio path under modem's control?
Line 56: Line 71:
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 +
|
 +
|{{butno}}
 +
|{{butno}}
 
|-
 
|-
 
!GPS under modem's control
 
!GPS under modem's control
Line 62: Line 80:
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 
|{{butyes}}
 +
|{{butyes}}
 +
|{{butno}}
 
|
 
|
 +
* There is a GPS without antenna attached to the modem, it's not used.
 +
* The GPS that is used is attached to the CPU trough serial port.
 
|-
 
|-
 
!Free Bootloader
 
!Free Bootloader
Line 69: Line 91:
 
|?
 
|?
 
|?
 
|?
|Some work has been done(must check status,not complete)
+
|Some work has been done(must check status,not usable yet,abandoned?)
 +
|{{no}}
 +
|{{yes}}
 +
* xloader
 +
* uboot
 +
|-
 +
!Modem can access the main CPU memory chips
 +
|{{butno}} (the connection is a serial link)
 +
|{{butno}} (the connection is an HSI link)
 +
|{{butyes}}
 +
|{{butyes}}
 +
|??
 +
|{{butyes}}
 +
|{{butno}} USB connection
 
|-
 
|-
 
|}
 
|}
Line 81: Line 116:
 
!Nexus one
 
!Nexus one
 
!Palm pre(normal,plus or version 2)
 
!Palm pre(normal,plus or version 2)
 +
!Nexus S
 
|-
 
|-
 
!USB host
 
!USB host
Line 88: Line 124:
 
|possible, untested, unpowered
 
|possible, untested, unpowered
 
|?
 
|?
 +
|possible, untested, perhaps unpowered
 
|-
 
|-
 
|}
 
|}
Line 94: Line 131:
 
{| class="wikitable"  border="1"
 
{| class="wikitable"  border="1"
 
!
 
!
!Openmoko Freerunner
+
!Openmoko Freerunner(FSO+SHR)
!Nokia N900
+
!Nokia N900(FSO+SHR)
!HTC Dream
+
!HTC Dream(Replicant)
!Nexus one
+
!HTC Dream(FSO+SHR)
!Palm pre(normal,plus or version 2)
+
!Nexus one(Replicant)
 +
!Palm pre(normal,plus or version 2) (FSO+SHR)
 +
!Nexus S (Replicant)
 +
|-
 +
!Data connectivity
 +
|GPRS only(hardware limitation)
 +
|3G working in SHR
 +
|3G working in replicant
 +
|3G working in SHR
 +
|3G working in replicant
 +
|3G working in SHR(not tested by me)
 +
|3G working in replicant
 +
|-
 +
!Hardware features support
 +
| See [http://wiki.freesmartphone.org/index.php/HardwareComparison The FSO page about the supported hardware features]
 +
| See [http://wiki.freesmartphone.org/index.php/HardwareComparison The FSO page about the supported hardware features]
 +
| see [http://trac.osuosl.org/trac/replicant/wiki/ReplicantStatus The replicant page about the supported hardware features]
 +
| See [http://wiki.freesmartphone.org/index.php/HardwareComparison The FSO page about the supported hardware features]
 +
| see [http://trac.osuosl.org/trac/replicant/wiki/ReplicantStatus The replicant page about the supported hardware features]
 +
| See [http://wiki.freesmartphone.org/index.php/HardwareComparison The FSO page about the supported hardware features]
 +
| see [http://trac.osuosl.org/trac/replicant/wiki/ReplicantStatus The replicant page about the supported hardware features]
 
|-
 
|-
 
!Capable of viewing a video
 
!Capable of viewing a video
 
|from Very difficult to impossible
 
|from Very difficult to impossible
 
|yes(with mplayer in command line)
 
|yes(with mplayer in command line)
|
+
|yes(example Youtube using rstp:// or with the integrated player(not tested) )
*Under Replicant: yes(example Youtube using rstp:// )
+
|Difficult(need to be rotated before etc...)
*Under FSO+SHR : Difficult(need to be rotated before etc...)
+
|yes(example Youtube using rstp:// or with the integrated player(not tested) )
|yes
 
 
|?
 
|?
 +
|yes(WebM playback works with the integrated player)
 
|-
 
|-
 
!Capable of playing music
 
!Capable of playing music
Line 113: Line 170:
 
( sound quality is very bad on headphones because of a capacitor which value is too low )
 
( sound quality is very bad on headphones because of a capacitor which value is too low )
 
|yes
 
|yes
|
+
|yes(without issues)
*Under Replicant: yes(without issues)
+
|yes(prevent phone ringing)
*Under FSO+SHR: yes(prevent phone ringing)
 
 
|yes
 
|yes
 
|?
 
|?
 +
|yes
 
|-
 
|-
 
!Web browsing
 
!Web browsing
 
|
 
|
 +
*Very slow with the default browser(eve)
 +
*uses 100% CPU while loading pages
 
|yes
 
|yes
 
|yes
 
|yes
 +
|yes(with midori, the default browser(eve) is too slow)
 +
|yes
 +
|?
 
|yes
 
|yes
 
|-
 
|-
 
!mail client usage
 
!mail client usage
|
+
|claws mail
|
+
|claws mail
|
+
|k9(obtimized for the screen), great integrated hardware keyboard(very fast)
|
+
|claws mail
 +
|k9(obtimized for the screen), capacitive screen + software keyboard for writing mails makes it very slow
 +
|not tested(claws mail)
 +
|Android mail app works well, k9 should also work, capacitive screen + software keyboard for writing mails makes it very slow
 
|-
 
|-
 
!IRC
 
!IRC
|
+
|yes(xchat(need to be configured for the DPI),else irssi), software keyboard used with stylus(medium speed)
|
+
|yes(xchat)
|
+
|yes(yaaic), great integrated hardware keyboard(very fast)
|
+
|yes(irssi under xterm(else there is a Tab key issue)),great integrated hardware keyboard(very fast), xchat not very obtimized for the DPI
 +
|painful with the software keyboard(used with fingers since the screen is capacitive => very slow) (bluetooth keyboard is better but require a non-free firmware, and a [http://en.wikipedia.org/wiki/Table_%28furniture%29 table])
 +
|?.has an hardware keyboard
 +
|painful with the software keyboard(used with fingers since the screen is capacitive => very slow) (bluetooth keyboard is better but require a non-free firmware, and a [http://en.wikipedia.org/wiki/Table_%28furniture%29 table])
 
|-
 
|-
 
|}
 
|}
Line 146: Line 214:
 
!Meego
 
!Meego
 
!Replicant
 
!Replicant
 +
!OpenWebos
 
|-
 
|-
 
!Hardware supported
 
!Hardware supported
Line 153: Line 222:
 
|
 
|
 
*Openmoko freerunner: very good
 
*Openmoko freerunner: very good
*htc dream: partial
+
*htc dream: abandoned
*palm pre(nomal,plus,2) : work in progress
+
*palm pre(nomal,plus,2) : abandoned
 
*nokia n900 : work in progress
 
*nokia n900 : work in progress
 +
*Nexus S: work in progress
 +
*GTA04
 
Details available [http://wiki.freesmartphone.org/index.php/HardwareComparison here]
 
Details available [http://wiki.freesmartphone.org/index.php/HardwareComparison here]
 
|
 
|
 
*Nokia N900
 
*Nokia N900
 +
*Other phones?
 
|
 
|
*HTC Dream
+
* Many samsung Android phones and tablets(see on their website)
*Nexus one
+
* GTA04: work in progrss
*Other phones : work in progress
+
|
 +
*Galaxy Nexus
 
|-
 
|-
 
!Depend on non-free drivers
 
!Depend on non-free drivers
 
|{{butno}}
 
|{{butno}}
 
|{{butno}}
 
|{{butno}}
TODO: check if GTA01's gps is supported by proprietary software named [http://wiki.openmoko.org/wiki/Gllin Gllin]
 
 
|{{butyes}} 3D driver is required, and no decent free one exist for phones.
 
|{{butyes}} 3D driver is required, and no decent free one exist for phones.
 
|{{butno}}
 
|{{butno}}
 +
|{{butyes}} 3D driver is required, and no decent free one exist for phones.
 
|-
 
|-
 
!Non-free firmwares Policy
 
!Non-free firmwares Policy
Line 175: Line 248:
 
|Not shipped(not redistributable) but promoted,not needed in case of the openmoko freerunner,linux-libre not used
 
|Not shipped(not redistributable) but promoted,not needed in case of the openmoko freerunner,linux-libre not used
 
|Non free firmwares Shipped
 
|Non free firmwares Shipped
|linux-libre not used,a page details which are needed for what but doesn't tell how to install them(altough it's obvious for the experienced user)
+
|linux-libre not used but firmwares are removed in the sources and releases,a page details which are needed for what but doesn't tell how to install them(altough it's obvious for the experienced user)
 +
|Non free firmwares Shipped
 
|-
 
|-
 
!Checked for freedom
 
!Checked for freedom
 
|???
 
|???
|{{no}} but its developpers are against proprietary software inclusion
+
|{{no}} but some of its developpers are against proprietary software inclusion<ref name='shrfreedom'>From #openmoko-cdevel on Freenode on IRC:<br>
 +
Jan 14 20:58:10 <mrmoku>        GNUtoo|laptop: btw. what about xrandr and rotation on n900?<br>
 +
Jan 14 20:58:28 <GNUtoo|laptop> do we really need that?<br>
 +
Jan 14 20:58:44 <GNUtoo|laptop> I mean we would have to modify xf86-video-omapfb<br>
 +
Jan 14 20:58:49 <GNUtoo|laptop> and write the code ourselves<br>
 +
Jan 14 20:59:07 <GNUtoo|laptop> the rotation driver of nokia depends on non-free 3d<br>
 +
Jan 14 20:59:13 <mrmoku>        grr<br>
 +
</ref>
 
|[http://repo.meego.com/MeeGo/builds/1.0.99/preview/non-oss/repos/armv7l/packages/armv7l/ contains non-free software]
 
|[http://repo.meego.com/MeeGo/builds/1.0.99/preview/non-oss/repos/armv7l/packages/armv7l/ contains non-free software]
 
|{{no}}:The main low-level developer supposed that the sources he forked were free(he asked on IRC on the original project channel),  
 
|{{no}}:The main low-level developer supposed that the sources he forked were free(he asked on IRC on the original project channel),  
 
he replaced non-free not-included parts and looks for help on verifying freedom.
 
he replaced non-free not-included parts and looks for help on verifying freedom.
As he has no experience in replacing firmwares,he's unsure what to do about them.
+
|
 
|-
 
|-
 
|}
 
|}
  
=== References ===
+
== References ==
* http://laforge.gnumonks.org/papers/gsm_phone-anatomy-latest.pdf
+
<references/>
 +
 
 +
[[Category:Hardware]]

Revision as of 02:47, 25 April 2015

Introduction

First let's define a smartphone,

A smartphone[1] is a phone with at least 2 processors:

  • one where runs the operating system(like Android,GNU/Linux etc...), it is usually called the Application processor
  • another that interface with the GSM network(for instance it reads the sim card,interface with the GSM tower etc...). It is usually called the baseband.

Historically both processors talked to each other trough a serial port, with AT commands(also known as Hayes command set ).

While freedom is possible on the GSM processor too,we will focus on freedom on the Application processor(because it's illegal to run modified GSM processors on carrier networks and also very dangerous)

Possible Free SmartPhones target comparison

Hardware freedom

Openmoko Freerunner Nokia N900 HTC Dream Nexus one Palm pre(normal,plus or version 2) Nexus S GTA04
Non free firmwares No Yes:
  • Wifi(wl1251_spi)
  • Bluetooth(broadcom)
  • camera(many components)
  • DSP(note that the CPU and mplayer do a better job than the DSP but consume more battery)
Yes:
  • Wifi(wl1251_sdio)
  • bluetooth(broadcom)
Yes:
  • Microphone
  • Sound card
  • WIFI(bcm4329)
  • Maybe others?
Yes:
  • Wifi(libertas_sdio)
  • Maybe others?
Yes:
  • Wifi
  • Bluetooth
  • NFC: Near Field Communication
  • MFC: Multi Format Codec (hardware video encoding/decoding)
Yes
  • Wifi
Modem can be flashed Yes Yes[2] Yes Yes Yes, the main CPU loads the firmware from NAND trough the free ril library during boot. ?
Modem can be unpowered Yes Yes ? ? ? Depend on hardware versions(A3 had a bug)
Audio path under modem's control? No No Yes Yes No No
GPS under modem's control No Yes Yes Yes Yes No
  • There is a GPS without antenna attached to the modem, it's not used.
  • The GPS that is used is attached to the CPU trough serial port.
Free Bootloader Yes No ? ? Some work has been done(must check status,not usable yet,abandoned?) No Yes
  • xloader
  • uboot
Modem can access the main CPU memory chips No (the connection is a serial link) No (the connection is an HSI link) Yes Yes ?? Yes No USB connection

Hardware Features

Openmoko Freerunner Nokia N900 HTC Dream Nexus one Palm pre(normal,plus or version 2) Nexus S
USB host Yes (not strictly needed since no firmwares are needed),limited to ? mA Yes(with 2.6.28 power kernel), limited to ? mA ? possible, untested, unpowered ? possible, untested, perhaps unpowered

Hardware and software capabilities

Openmoko Freerunner(FSO+SHR) Nokia N900(FSO+SHR) HTC Dream(Replicant) HTC Dream(FSO+SHR) Nexus one(Replicant) Palm pre(normal,plus or version 2) (FSO+SHR) Nexus S (Replicant)
Data connectivity GPRS only(hardware limitation) 3G working in SHR 3G working in replicant 3G working in SHR 3G working in replicant 3G working in SHR(not tested by me) 3G working in replicant
Hardware features support See The FSO page about the supported hardware features See The FSO page about the supported hardware features see The replicant page about the supported hardware features See The FSO page about the supported hardware features see The replicant page about the supported hardware features See The FSO page about the supported hardware features see The replicant page about the supported hardware features
Capable of viewing a video from Very difficult to impossible yes(with mplayer in command line) yes(example Youtube using rstp:// or with the integrated player(not tested) ) Difficult(need to be rotated before etc...) yes(example Youtube using rstp:// or with the integrated player(not tested) ) ? yes(WebM playback works with the integrated player)
Capable of playing music On speakers only

( sound quality is very bad on headphones because of a capacitor which value is too low )

yes yes(without issues) yes(prevent phone ringing) yes ? yes
Web browsing
  • Very slow with the default browser(eve)
  • uses 100% CPU while loading pages
yes yes yes(with midori, the default browser(eve) is too slow) yes ? yes
mail client usage claws mail claws mail k9(obtimized for the screen), great integrated hardware keyboard(very fast) claws mail k9(obtimized for the screen), capacitive screen + software keyboard for writing mails makes it very slow not tested(claws mail) Android mail app works well, k9 should also work, capacitive screen + software keyboard for writing mails makes it very slow
IRC yes(xchat(need to be configured for the DPI),else irssi), software keyboard used with stylus(medium speed) yes(xchat) yes(yaaic), great integrated hardware keyboard(very fast) yes(irssi under xterm(else there is a Tab key issue)),great integrated hardware keyboard(very fast), xchat not very obtimized for the DPI painful with the software keyboard(used with fingers since the screen is capacitive => very slow) (bluetooth keyboard is better but require a non-free firmware, and a table) ?.has an hardware keyboard painful with the software keyboard(used with fingers since the screen is capacitive => very slow) (bluetooth keyboard is better but require a non-free firmware, and a table)

Operating System/distribution support

FSO+Debian FSO+SHR Meego Replicant OpenWebos
Hardware supported
  • Openmoko Freerunner
  • other?
  • Openmoko freerunner: very good
  • htc dream: abandoned
  • palm pre(nomal,plus,2) : abandoned
  • nokia n900 : work in progress
  • Nexus S: work in progress
  • GTA04

Details available here

  • Nokia N900
  • Other phones?
  • Many samsung Android phones and tablets(see on their website)
  • GTA04: work in progrss
  • Galaxy Nexus
Depend on non-free drivers No No Yes 3D driver is required, and no decent free one exist for phones. No Yes 3D driver is required, and no decent free one exist for phones.
Non-free firmwares Policy ? Not shipped(not redistributable) but promoted,not needed in case of the openmoko freerunner,linux-libre not used Non free firmwares Shipped linux-libre not used but firmwares are removed in the sources and releases,a page details which are needed for what but doesn't tell how to install them(altough it's obvious for the experienced user) Non free firmwares Shipped
Checked for freedom ??? No but some of its developpers are against proprietary software inclusion[3] contains non-free software No:The main low-level developer supposed that the sources he forked were free(he asked on IRC on the original project channel),

he replaced non-free not-included parts and looks for help on verifying freedom.

References

  1. See http://laforge.gnumonks.org/papers/gsm_phone-anatomy-latest.pdf for a more correct definition
  2. Nokia Updates are capable of flashing the modem firmware, in fact unpacking the PR 1.3(The version of the nokia Update)update with 0xFFFF shows that the modem firmware was flashed,also some modem properties changed between PR 1.2(The version of the nokia Update) and PR 1.3(The version of the nokia Update)
  3. From #openmoko-cdevel on Freenode on IRC:
    Jan 14 20:58:10 <mrmoku> GNUtoo|laptop: btw. what about xrandr and rotation on n900?
    Jan 14 20:58:28 <GNUtoo|laptop> do we really need that?
    Jan 14 20:58:44 <GNUtoo|laptop> I mean we would have to modify xf86-video-omapfb
    Jan 14 20:58:49 <GNUtoo|laptop> and write the code ourselves
    Jan 14 20:59:07 <GNUtoo|laptop> the rotation driver of nokia depends on non-free 3d
    Jan 14 20:59:13 <mrmoku> grr