2014-11-04 20:51:21

by Pavel Machek

[permalink] [raw]
Subject: N900 modem support in 3.18-rc1

Hi!

I'd like to test a modem (and eventually to get it to work :-) ) on
n900. So far I found:

http://lwn.net/Articles/592485/

It says:

# supported. Testing the patchset with ofono works like this:
#
# # provide cmt device for ofono
# ln -sf /sys/bus/hsi/n900-modem /dev/cmt

root@n900:/dev# ln -sf /sys/bus/hsi/n900-modem /dev/cmt
root@n900:/dev# ls -al /dev/cmt
lrwxrwxrwx 1 root root 23 Jan 1 08:51 /dev/cmt ->
/sys/bus/hsi/n900-modem
root@n900:/dev# cat /dev/cmt
cat: /dev/cmt: No such file or directory
root@n900:/dev# cd /dev/cmt
-bash: cd: /dev/cmt: No such file or directory
root@n900:/dev#
root@n900:/dev# ls -al /sys/bus/hsi/
devices/ drivers_autoprobe uevent
drivers/ drivers_probe
root@n900:/dev# ls -al /sys/bus/hsi/devices/
cmt_speech/ hsi_char/ n900-modem/ ssi-protocol/
root@n900:/dev# ls -al /sys/bus/hsi/devices/n900-modem
lrwxrwxrwx 1 root root 0 Jan 1 08:46 /sys/bus/hsi/devices/n900-modem
->
../../../devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/n900-modem
root@n900:/dev#

That seemed to match, so I symlinked it.

# # start ofono
# ofono --nodetach --debug

It it a typo and it wants ofonod?

root@n900:~# ofonod --nodetach --debug &
[1] 3552
root@n900:~# ofonod[3552]: oFono version 1.6

# # enable the modem
# mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Powered true

root@n900:~# mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty
Powered true
[ERR]: There is no method with name org.ofono.Modem.SetProperty on
path /n900_0!

# # enable modem's RF parts
# mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Online true

root@n900:~# mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty
Online true
[ERR]: There is no method with name org.ofono.Modem.SetProperty on
path /n900_0!

# # scan for available networks (takes some time)
# mdbus2 -s org.ofono /n900_0 org.ofono.NetworkRegistration.Scan

root@n900:~# mdbus2 -s org.ofono /n900_0
org.ofono.NetworkRegistration.Scan
[ERR]: There is no method with name org.ofono.NetworkRegistration.Scan
on path /n900_0!

Any ideas? Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


2014-11-05 01:11:29

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi Pavel,

On Tue, Nov 04, 2014 at 09:51:17PM +0100, Pavel Machek wrote:
> I'd like to test a modem (and eventually to get it to work :-) ) on
> n900. So far I found:
>
> http://lwn.net/Articles/592485/
>
> It says:
>
> # supported. Testing the patchset with ofono works like this:
> #
> # # provide cmt device for ofono
> # ln -sf /sys/bus/hsi/n900-modem /dev/cmt
>
> [...]
>
> That seemed to match, so I symlinked it.

looks ok. You should have the following files:

/dev/cmt/cmt_apeslpx
/dev/cmt/cmt_bsi
/dev/cmt/cmt_en
/dev/cmt/cmt_rst_rq
/dev/cmt/cmt_rst

Apart from that the kernel should be provide a phonet0
network device.

> # # start ofono
> # ofono --nodetach --debug
>
> It it a typo and it wants ofonod?

yes.

> root@n900:~# ofonod --nodetach --debug &
> [1] 3552

no output from ofono?

> root@n900:~# mdbus2 -s org.ofono /n900_0 xyz
> [ERR]: There is no method with name xyz on path /n900_0!
>
> [...]
>
> Any ideas?

call mdbus2 with fewer arguments to see what is available on the
bus:

mdbus2 -s => list all system services
mdbus2 -s org.ofono => list all ofono objects
mdbus2 -s org.ofono /n900_0 => list all methods from n900 object

-- Sebastian


Attachments:
(No filename) (1.19 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-05 20:31:57

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Wed 2014-11-05 02:11:22, Sebastian Reichel wrote:
> Hi Pavel,
>
> On Tue, Nov 04, 2014 at 09:51:17PM +0100, Pavel Machek wrote:
> > I'd like to test a modem (and eventually to get it to work :-) ) on
> > n900. So far I found:
> >
> > http://lwn.net/Articles/592485/
> >
> > It says:
> >
> > # supported. Testing the patchset with ofono works like this:
> > #
> > # # provide cmt device for ofono
> > # ln -sf /sys/bus/hsi/n900-modem /dev/cmt
> >
> > [...]
> >
> > That seemed to match, so I symlinked it.
>
> looks ok. You should have the following files:
>
> /dev/cmt/cmt_apeslpx
> /dev/cmt/cmt_bsi
> /dev/cmt/cmt_en
> /dev/cmt/cmt_rst_rq
> /dev/cmt/cmt_rst

No, it is not ok :-(. I did enable CONFIG_CMT now (it was not enabled
before, and wow, that entry has least helpful config help, ever; is it
related?), but still can't see the required files:

root@n900:/sys# find . | grep cmt
./bus/hsi/devices/cmt_speech
./bus/hsi/drivers/cmt_speech
./bus/hsi/drivers/cmt_speech/bind
./bus/hsi/drivers/cmt_speech/cmt_speech
./bus/hsi/drivers/cmt_speech/uevent
./bus/hsi/drivers/cmt_speech/unbind
./devices/virtual/misc/cmt_speech
./devices/virtual/misc/cmt_speech/dev
./devices/virtual/misc/cmt_speech/power
./devices/virtual/misc/cmt_speech/power/control
./devices/virtual/misc/cmt_speech/power/runtime_active_time
./devices/virtual/misc/cmt_speech/power/autosuspend_delay_ms
./devices/virtual/misc/cmt_speech/power/runtime_status
./devices/virtual/misc/cmt_speech/power/runtime_suspended_time
./devices/virtual/misc/cmt_speech/subsystem
./devices/virtual/misc/cmt_speech/uevent
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power/control
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power/runtime_active_time
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power/autosuspend_delay_ms
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power/runtime_status
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/power/runtime_suspended_time
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/modalias
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/driver
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/subsystem
./devices/68000000.ocp/48058000.ssi-controller/ssi0/port0/cmt_speech/uevent
./class/misc/cmt_speech
root@n900:/sys#

(What does CMT mean? I should fix the help files, I guess...)


> > root@n900:~# ofonod --nodetach --debug &
> > [1] 3552
>
> no output from ofono?

Actually, a lot of output from ofonod, but nothing useful.

> > root@n900:~# mdbus2 -s org.ofono /n900_0 xyz
> > [ERR]: There is no method with name xyz on path /n900_0!
> >
> > [...]
> >
> > Any ideas?
>
> call mdbus2 with fewer arguments to see what is available on the
> bus:
>
> mdbus2 -s => list all system services
> mdbus2 -s org.ofono => list all ofono objects
> mdbus2 -s org.ofono /n900_0 => list all methods from n900 object

root@n900:~# mdbus2 -s org.ofono
/
root@n900:~#

But since I do not have required cmt_ files, I guess that's expected?


Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-05 20:37:38

by Pali Rohár

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hello, have you enabled CONFIG_PHONET?

--
Pali Rohár
[email protected]


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.

2014-11-05 20:39:24

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> Hello, have you enabled CONFIG_PHONET?

Yes:

CONFIG_PHONET=y

And this:

# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPMI is not set
CONFIG_HSI=y
CONFIG_HSI_BOARDINFO=y

#
# HSI controllers
#
CONFIG_OMAP_SSI=y
CONFIG_OMAP_SSI_PORT=y

#
# HSI clients
#
CONFIG_NOKIA_MODEM=y
CONFIG_SSI_PROTOCOL=y
CONFIG_HSI_CHAR=y
CONFIG_HSI_CMT_SPEECH=y

Best regards,
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-05 21:12:26

by Pali Rohár

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Maybe you need to enable modem?

This is n900 init sequence from script: nokia-n900-configs.sh

# set up the GPIO's for N900 modem:
echo 70 >/sys/class/gpio/export
echo low >/sys/class/gpio/gpio70/direction
echo 0 >/sys/class/gpio/gpio70/value
echo 73 >/sys/class/gpio/export
echo high >/sys/class/gpio/gpio73/direction
echo 0 >/sys/class/gpio/gpio73/value
echo 74 >/sys/class/gpio/export
echo low >/sys/class/gpio/gpio74/direction
echo 75 >/sys/class/gpio/export
echo low >/sys/class/gpio/gpio75/direction
echo 157 >/sys/class/gpio/export
echo low >/sys/class/gpio/gpio157/direction
echo 0 >/sys/class/gpio/gpio157/value
# create symlinks for ofono N900 plugin
mkdir -p /dev/cmt
ln -nsf /sys/class/gpio/gpio70 /dev/cmt/cmt_apeslpx
ln -nsf /sys/class/gpio/gpio74 /dev/cmt/cmt_en
ln -nsf /sys/class/gpio/gpio73 /dev/cmt/cmt_rst_rq
ln -nsf /sys/class/gpio/gpio75 /dev/cmt/cmt_rst
ln -nsf /sys/class/gpio/gpio157 /dev/cmt/cmt_bsi

--
Pali Rohár
[email protected]


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.

2014-11-05 22:04:06

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> Maybe you need to enable modem?
>
> This is n900 init sequence from script: nokia-n900-configs.sh

>From the dts, it looks like this should somehow work without this.

I can try but.. is it safe? I'm using DT-based config, and interrupt
numbers definitely changed. If GPIO numbers changed, it will not be
funny.

Thanks,
Pavel

> # set up the GPIO's for N900 modem:
> echo 70 >/sys/class/gpio/export
> echo low >/sys/class/gpio/gpio70/direction
> echo 0 >/sys/class/gpio/gpio70/value
> echo 73 >/sys/class/gpio/export
> echo high >/sys/class/gpio/gpio73/direction
> echo 0 >/sys/class/gpio/gpio73/value
> echo 74 >/sys/class/gpio/export
> echo low >/sys/class/gpio/gpio74/direction
> echo 75 >/sys/class/gpio/export
> echo low >/sys/class/gpio/gpio75/direction
> echo 157 >/sys/class/gpio/export
> echo low >/sys/class/gpio/gpio157/direction
> echo 0 >/sys/class/gpio/gpio157/value
> # create symlinks for ofono N900 plugin
> mkdir -p /dev/cmt
> ln -nsf /sys/class/gpio/gpio70 /dev/cmt/cmt_apeslpx
> ln -nsf /sys/class/gpio/gpio74 /dev/cmt/cmt_en
> ln -nsf /sys/class/gpio/gpio73 /dev/cmt/cmt_rst_rq
> ln -nsf /sys/class/gpio/gpio75 /dev/cmt/cmt_rst
> ln -nsf /sys/class/gpio/gpio157 /dev/cmt/cmt_bsi
>



--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-05 23:46:06

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Wed, Nov 05, 2014 at 11:03:59PM +0100, Pavel Machek wrote:
> > Maybe you need to enable modem?
> >
> > This is n900 init sequence from script: nokia-n900-configs.sh
>
> From the dts, it looks like this should somehow work without this.

Right :) The n900-modem driver will take care of this if the "pm"
parameter is set to 1 (which should be the default).

> I can try but.. is it safe? I'm using DT-based config, and interrupt
> numbers definitely changed. If GPIO numbers changed, it will not be
> funny.

Can you provide the output from dmesg?

-- Sebastian


Attachments:
(No filename) (571.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-06 12:47:17

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> On Wed, Nov 05, 2014 at 11:03:59PM +0100, Pavel Machek wrote:
> > > Maybe you need to enable modem?
> > >
> > > This is n900 init sequence from script: nokia-n900-configs.sh
> >
> > From the dts, it looks like this should somehow work without this.
>
> Right :) The n900-modem driver will take care of this if the "pm"
> parameter is set to 1 (which should be the default).

I actually had pm=0 on the command line, but I removed it now, and no
change:

root@n900:~# find /sys/bus/hsi/devices/n900-modem/
/sys/bus/hsi/devices/n900-modem/
/sys/bus/hsi/devices/n900-modem/power
/sys/bus/hsi/devices/n900-modem/power/control
/sys/bus/hsi/devices/n900-modem/power/runtime_active_time
/sys/bus/hsi/devices/n900-modem/power/autosuspend_delay_ms
/sys/bus/hsi/devices/n900-modem/power/runtime_status
/sys/bus/hsi/devices/n900-modem/power/runtime_suspended_time
/sys/bus/hsi/devices/n900-modem/modalias
/sys/bus/hsi/devices/n900-modem/driver
/sys/bus/hsi/devices/n900-modem/subsystem
/sys/bus/hsi/devices/n900-modem/uevent
root@n900:~# cat /proc/cmdline
root=/dev/nfs nfsroot=192.168.1.6:/srv/nfs/n900 rw
ip=192.168.1.8::192.168.1.6:255.255.255.192::usb0: no-omap-wd
no-ext-wd console=tty0
root@n900:~#

Let me try with explicit =1. .. aha, that helps. Thanks!

Do you have an example client that can talk to ofonod?

What is needed to get voice calls to work?

Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-06 18:03:45

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Thu, Nov 06, 2014 at 01:47:11PM +0100, Pavel Machek wrote:
> > On Wed, Nov 05, 2014 at 11:03:59PM +0100, Pavel Machek wrote:
> > > > Maybe you need to enable modem?
> > > >
> > > > This is n900 init sequence from script: nokia-n900-configs.sh
> > >
> > > From the dts, it looks like this should somehow work without this.
> >
> > Right :) The n900-modem driver will take care of this if the "pm"
> > parameter is set to 1 (which should be the default).
>
> I actually had pm=0 on the command line, but I removed it now, and no
> change: [...]
>
> Let me try with explicit =1. .. aha, that helps. Thanks!

mh seems I actually missed to make 1 the default value. I will
prepare a patch for that.

I assume, that the example ofono commands work for you now?

> Do you have an example client that can talk to ofonod?

I have not yet played with userland stuff. You could try
telepathy-ring, which integrates the ofono into the telepathy
framework.

> What is needed to get voice calls to work?

There's still a kernel driver missing in mainline for exchanging
voice data between the modem and the cpu (called cmt-speech).

BTW the CMT driver should be removed from your kernel tree; its a
deprecated variant of mainline's nokia-modem driver. Thus I guess
the cmt-speech driver, which is available in your kernel tree, is
not properly integrated into the changes I did during mainlining
the other modem related drivers.

-- Sebastian


Attachments:
(No filename) (1.41 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-06 22:50:12

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> > I actually had pm=0 on the command line, but I removed it now, and no
> > change: [...]
> >
> > Let me try with explicit =1. .. aha, that helps. Thanks!
>
> mh seems I actually missed to make 1 the default value. I will
> prepare a patch for that.
>
> I assume, that the example ofono commands work for you now?

Yes. I was able to get list of networks. It stops working after a
while, for unknown reasons.

BTW... I'm using Debian-7.7 and did

XKBMODEL="nokiarx51"
XKBLAYOUT="us"

(from https://wiki.debian.org/MaemoAndSqueeze). Keyboard works well
-- except "p" key. arrow-P (0) works ok. Do you see that, too?

> > Do you have an example client that can talk to ofonod?
>
> I have not yet played with userland stuff. You could try
> telepathy-ring, which integrates the ofono into the telepathy
> framework.

Thanks for the pointer.

> > What is needed to get voice calls to work?
>
> There's still a kernel driver missing in mainline for exchanging
> voice data between the modem and the cpu (called cmt-speech).
>
> BTW the CMT driver should be removed from your kernel tree; its a
> deprecated variant of mainline's nokia-modem driver. Thus I guess
> the cmt-speech driver, which is available in your kernel tree, is
> not properly integrated into the changes I did during mainlining
> the other modem related drivers.

Aha, so CONFIG_CMT is the same thing as CONFIG_NOKIA_NODEM? Ok, will
disable that. Speech... if you'd have version I could test, I'll
happily do that.

Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-06 23:01:59

by Pali Rohár

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Thursday 06 November 2014 23:50:05 Pavel Machek wrote:
> > > What is needed to get voice calls to work?
> >
> > There's still a kernel driver missing in mainline for
> > exchanging voice data between the modem and the cpu (called
> > cmt-speech).
> >
> > BTW the CMT driver should be removed from your kernel tree;
> > its a deprecated variant of mainline's nokia-modem driver.
> > Thus I guess the cmt-speech driver, which is available in
> > your kernel tree, is not properly integrated into the
> > changes I did during mainlining the other modem related
> > drivers.
>
> Aha, so CONFIG_CMT is the same thing as CONFIG_NOKIA_NODEM?
> Ok, will disable that. Speech... if you'd have version I
> could test, I'll happily do that.
>
> Thanks,
> Pavel

For voice calls you need:
* kernel driver cmt-speech (or it has some new name)
* cmt-speech userspace library (communication with kernel)
* pulseaudio modules which are using that library

Freemangordon (Ivaylo Dimitrov, CCed) should know more about it,
specially about pulseaudio modules...

--
Pali Rohár
[email protected]


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.

2014-11-07 07:04:57

by Ivaylo Dimitrov

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1



On 7.11.2014 01:01, Pali Rohár wrote:

>
> For voice calls you need:
> * kernel driver cmt-speech (or it has some new name)
> * cmt-speech userspace library (communication with kernel)
> * pulseaudio modules which are using that library
>
> Freemangordon (Ivaylo Dimitrov, CCed) should know more about it,
> specially about pulseaudio modules...
>

I have a patch for cmt-speech on top of nokia-modem driver living
somewhere on my HDD, but I guess it is better Sebastian to make such a
patch (Sebastian, no?).

About the pulseaudio stuff - we're still in process of REing it, so far
there are 2 out of 3 closed Nokia modules ready
(https://gitorious.org/pulseaudio-nokia), but the last one, which is the
one used for voice calls is still not ready and will take it a while :).

Regards,
Ivo

2014-11-13 16:22:08

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> > I actually had pm=0 on the command line, but I removed it now, and no
> > change: [...]
> >
> > Let me try with explicit =1. .. aha, that helps. Thanks!
>
> mh seems I actually missed to make 1 the default value. I will
> prepare a patch for that.
>
> I assume, that the example ofono commands work for you now?

Yes, it now works great.

> > Do you have an example client that can talk to ofonod?
>
> I have not yet played with userland stuff. You could try
> telepathy-ring, which integrates the ofono into the telepathy
> framework.

Ok, I took a look, and telepathy-ring is not in debian, and has
a lot of dependencies.

OTOH ofono seems pretty reasonable. So I played a bit, and result
is python/pygtk gui which can receive an sms, initiate a call, and
report missed call. If someone wants to play, source is at

https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone

Best regards,
Pavel



--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-13 16:24:50

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Fri 2014-11-07 09:04:52, Ivaylo Dimitrov wrote:
> On 7.11.2014 01:01, Pali Roh?r wrote:
> >
> >For voice calls you need:
> >* kernel driver cmt-speech (or it has some new name)
> >* cmt-speech userspace library (communication with kernel)
> >* pulseaudio modules which are using that library
> >
> >Freemangordon (Ivaylo Dimitrov, CCed) should know more about it,
> >specially about pulseaudio modules...
>
> I have a patch for cmt-speech on top of nokia-modem driver living
> somewhere on my HDD, but I guess it is better Sebastian to make such
> a patch (Sebastian, no?).

Sebastian is quiet, can we have the patch? :-).

> About the pulseaudio stuff - we're still in process of REing it, so
> far there are 2 out of 3 closed Nokia modules ready
> (https://gitorious.org/pulseaudio-nokia), but the last one, which is
> the one used for voice calls is still not ready and will take it a
> while :).

Ok, is there a way I could help? Pretty much everything else works with
opensource drivers...

Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-13 17:46:21

by Tony Lindgren

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

* Pavel Machek <[email protected]> [141113 08:23]:
> Hi!
>
> > > I actually had pm=0 on the command line, but I removed it now, and no
> > > change: [...]
> > >
> > > Let me try with explicit =1. .. aha, that helps. Thanks!
> >
> > mh seems I actually missed to make 1 the default value. I will
> > prepare a patch for that.
> >
> > I assume, that the example ofono commands work for you now?
>
> Yes, it now works great.
>
> > > Do you have an example client that can talk to ofonod?
> >
> > I have not yet played with userland stuff. You could try
> > telepathy-ring, which integrates the ofono into the telepathy
> > framework.
>
> Ok, I took a look, and telepathy-ring is not in debian, and has
> a lot of dependencies.
>
> OTOH ofono seems pretty reasonable. So I played a bit, and result
> is python/pygtk gui which can receive an sms, initiate a call, and
> report missed call. If someone wants to play, source is at
>
> https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone

Pavel, care to fill in the the following type patch with some
instructions in the description now that you got it working?

I did not have luck yet when I tried. I got the /dev/cmt/*
entries after adding pm=1 param, but no luck scanning any networks.

Regards,

Tony

8< -----------------
ARM: omap2plus_defconfig: Enable n900 modem as loadable modules

--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -88,6 +88,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
# CONFIG_INET_LRO is not set
CONFIG_NETFILTER=y
+CONFIG_PHONET=m
CONFIG_CAN=m
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m
@@ -158,6 +159,7 @@ CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
+CONFIG_USB_CDC_PHONET=m
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_SDIO=m
@@ -197,6 +199,11 @@ CONFIG_HW_RANDOM=y
CONFIG_I2C_CHARDEV=y
CONFIG_SPI=y
CONFIG_SPI_OMAP24XX=y
+CONFIG_HSI=m
+CONFIG_OMAP_SSI=m
+CONFIG_NOKIA_MODEM=m
+CONFIG_SSI_PROTOCOL=m
+CONFIG_HSI_CHAR=m
CONFIG_PINCTRL_SINGLE=y
CONFIG_DEBUG_GPIO=y
CONFIG_GPIO_SYSFS=y
@@ -312,9 +319,11 @@ CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_PHONET=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_LB_SS=y
CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_G_NOKIA=m
CONFIG_MMC=y
CONFIG_SDIO_UART=y
CONFIG_MMC_OMAP=y
@@ -359,6 +368,7 @@ CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_CONFIGFS_FS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y

2014-11-13 18:18:13

by Aaro Koskinen

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Thu, Nov 13, 2014 at 09:45:36AM -0800, Tony Lindgren wrote:
> * Pavel Machek <[email protected]> [141113 08:23]:
> > OTOH ofono seems pretty reasonable. So I played a bit, and result
> > is python/pygtk gui which can receive an sms, initiate a call, and
> > report missed call. If someone wants to play, source is at
> >
> > https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone
>
> Pavel, care to fill in the the following type patch with some
> instructions in the description now that you got it working?

Could we even have some "permanent" instructions under Documentation/?

> I did not have luck yet when I tried. I got the /dev/cmt/*
> entries after adding pm=1 param, but no luck scanning any networks.

I haven't tested anything yet, but looking forward to do that during
the weekend... Sounds pretty exciting. :-)

A.

2014-11-14 07:04:29

by Ivaylo Dimitrov

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1



On 13.11.2014 18:24, Pavel Machek wrote:
> On Fri 2014-11-07 09:04:52, Ivaylo Dimitrov wrote:
>
> Sebastian is quiet, can we have the patch? :-).

Sure, why not :)

https://gitorious.org/linux-n900/freemangordons-linux-n900/commits/30e9a5c498a89cea4c29523f69e436bf0af3c631

commits 89ce13b, b81d80d, ec4d0dc, 91256e2 and 8022a6d - e29f558 (no
idea why gitorious shows those mixed with SGX stuff, on my local tree it
is contiguous patch series)

didn't test against the current upstream, but I see no reason why those
should not apply, build and run.

>
>> About the pulseaudio stuff - we're still in process of REing it, so
>> far there are 2 out of 3 closed Nokia modules ready
>> (https://gitorious.org/pulseaudio-nokia), but the last one, which is
>> the one used for voice calls is still not ready and will take it a
>> while :).
>
> Ok, is there a way I could help? Pretty much everything else works with
> opensource drivers...
>

There is, though I am not sure you'll like it much - fire up IDA and
join the party :P. Ping me on IRC for more details in case you're
interested.

Regards,
Ivo

2014-11-14 07:38:06

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

> > > > Do you have an example client that can talk to ofonod?
> > >
> > > I have not yet played with userland stuff. You could try
> > > telepathy-ring, which integrates the ofono into the telepathy
> > > framework.
> >
> > Ok, I took a look, and telepathy-ring is not in debian, and has
> > a lot of dependencies.
> >
> > OTOH ofono seems pretty reasonable. So I played a bit, and result
> > is python/pygtk gui which can receive an sms, initiate a call, and
> > report missed call. If someone wants to play, source is at
> >
> > https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone
>
> Pavel, care to fill in the the following type patch with some
> instructions in the description now that you got it working?
>
> I did not have luck yet when I tried. I got the /dev/cmt/*
> entries after adding pm=1 param, but no luck scanning any networks.

I'm using nfsroot (no modules), .config is attached. Debian v7.7,
ofono installed.

To launch ofono, I'm using:

rmdir /dev/cmt
ln -s /sys/bus/hsi/devices/n900-modem/ /dev/cmt
killall ofonod
sleep .1
ofonod --nodetach --debug &

# enable the modem
mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Powered true
# enable modem's RF parts
mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Online true
# scan for available networks (takes some time)
mdbus2 -s org.ofono /n900_0 org.ofono.NetworkRegistration.Scan

I do have working SIM card in it. (Alternatively, ofone button
"online" can be used).

Good luck,
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


Attachments:
(No filename) (1.62 kB)
.config (83.90 kB)
Download all attachments

2014-11-14 16:53:32

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Fri, Nov 14, 2014 at 08:37:56AM +0100, Pavel Machek wrote:
> I'm using nfsroot (no modules), .config is attached. Debian v7.7,
> ofono installed.
>
> To launch ofono, I'm using:
>
> rmdir /dev/cmt
> ln -s /sys/bus/hsi/devices/n900-modem/ /dev/cmt

At least with Debian as base you can add this to your /etc/rc.local
and be happy, since the link will be created before ofono starts via
/etc/init.d/ ;)

I did not send ofono guys a patch to use
/sys/bus/hsi/devices/n900-modem/, since the kernel is supposed to
handle the PM, so there will be another, simpler interface (I plan
to use pm=2 for that).

> killall ofonod
> sleep .1
> ofonod --nodetach --debug &

or just use "/etc/init.d/ofono restart". The above is mostly useful
for getting debug output from ofono.

> [...]

The short description for .config: CONFIG_NOKIA_MODEM must not be
disabled. It should depend on everything else needed:

CONFIG_PHONET
CONFIG_HSI
CONFIG_OMAP_SSI
CONFIG_OMAP_SSI_PORT
CONFIG_SSI_PROTOCOL
CONFIG_NOKIA_MODEM


-- Sebastian


Attachments:
(No filename) (0.99 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-14 17:20:19

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Fri, Nov 14, 2014 at 09:04:23AM +0200, Ivaylo Dimitrov wrote:
> [...]
> https://gitorious.org/linux-n900/freemangordons-linux-n900/commits/30e9a5c498a89cea4c29523f69e436bf0af3c631
>
> commits 89ce13b, b81d80d, ec4d0dc, 91256e2 and 8022a6d - e29f558 (no idea
> why gitorious shows those mixed with SGX stuff, on my local tree it is
> contiguous patch series)
>
> didn't test against the current upstream, but I see no reason why those
> should not apply, build and run.

The patch looks ok. It does not cleanup the cmt-speech driver for
mainline usage, but it should work. Before adding this driver to the
mainline kernel there should be open source userspace support anyway.

Btw. I am aware that this would break existing pulse audio stuff,
but wouldn't it make sense to export a V4L2 device instead of the
custom /dev/cmt_speech ABI?

> > >About the pulseaudio stuff - we're still in process of REing it, so
> > >far there are 2 out of 3 closed Nokia modules ready
> > >(https://gitorious.org/pulseaudio-nokia), but the last one, which is
> > >the one used for voice calls is still not ready and will take it a
> > >while :).
> >
> > Ok, is there a way I could help? Pretty much everything else works with
> > opensource drivers...
> >
>
> There is, though I am not sure you'll like it much - fire up IDA and join
> the party :P. Ping me on IRC for more details in case you're interested.
>
> Regards,
> Ivo

-- Sebastian


Attachments:
(No filename) (1.40 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-14 17:34:24

by Pali Rohár

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Friday 14 November 2014 18:20:09 Sebastian Reichel wrote:
> Hi,
>
> On Fri, Nov 14, 2014 at 09:04:23AM +0200, Ivaylo Dimitrov
wrote:
> > [...]
> > https://gitorious.org/linux-n900/freemangordons-linux-n900/c
> > ommits/30e9a5c498a89cea4c29523f69e436bf0af3c631
> >
> > commits 89ce13b, b81d80d, ec4d0dc, 91256e2 and 8022a6d -
> > e29f558 (no idea why gitorious shows those mixed with SGX
> > stuff, on my local tree it is contiguous patch series)
> >
> > didn't test against the current upstream, but I see no
> > reason why those should not apply, build and run.
>
> The patch looks ok. It does not cleanup the cmt-speech driver
> for mainline usage, but it should work. Before adding this
> driver to the mainline kernel there should be open source
> userspace support anyway.
>
> Btw. I am aware that this would break existing pulse audio
> stuff, but wouldn't it make sense to export a V4L2 device
> instead of the custom /dev/cmt_speech ABI?
>

It is not good idea to break existing applications even if they
are closed... And there are some open source meego/nemo
pulseaudio modules which using cmt speech (but audio quality is
worse).

Anyway what is /dev/cmt_speech doing? If it exports gsm voice
call data, should not it have alsa snd interface?

V4L2 interface is not for video/camera/capture/tv cards?

--
Pali Rohár
[email protected]


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.

2014-11-14 19:54:52

by Ivaylo Dimitrov

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1



On 14.11.2014 19:20, Sebastian Reichel wrote:
>
> The patch looks ok. It does not cleanup the cmt-speech driver for
> mainline usage, but it should work. Before adding this driver to the
> mainline kernel there should be open source userspace support anyway.
>

I am aware of that(patch not ready), it's one of the reasons this patch
still sits on gitorious IMO.

libcmtspeechdata was opened by Nokia long ago, so I don't understand
what userspace support (for inclusion of the driver in the mainline
kernel that is) is needed. see
https://gitorious.org/meego-cellular/libcmtspeechdata/source/7f8f3ce357513e4849e1bf6d657980a514529c1a:

REed pulseaudio modules that use cmtspeech will be ready sooner than
later (I believe in 2-3 monts from now), see on gitorious how fast we
progressed with -record and -music modules. Sure, -voice module is way
more complicated, but lots of it is already opensourced, we just need to
figure out a couple of DSP algorithms(drc, agc, aec, etc) related to
call quality. But I don't think the driver should wait for those modules
to be REed, they can be used as is even now, in their closed form for
testing. Unfortunately all my spare time is dedicated to that PA stuff,
so I simply can't cleanup cmtspeech driver and send a patch for
upstreaming. (Pavel, what about you?)

> Btw. I am aware that this would break existing pulse audio stuff,
> but wouldn't it make sense to export a V4L2 device instead of the
> custom /dev/cmt_speech ABI?
>

Nokia PA guys did a great job integrating lots of things related to
audio and honestly, I don't see a reason why should we reinvent the
wheel. There is lot more behind the scenes than simple PCM streaming
(like audio policies and routing, sideband audio, speakers protection,
etc) and reiplementing all this using different API wouldn't worth it IMO.

Not to say that I agree with Pali's reply that working userspace should
not be broken just for the sake of it.

Ivo

2014-11-14 21:14:43

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi!

On Fri 2014-11-14 21:54:42, Ivaylo Dimitrov wrote:
> On 14.11.2014 19:20, Sebastian Reichel wrote:
> >
> >The patch looks ok. It does not cleanup the cmt-speech driver for
> >mainline usage, but it should work. Before adding this driver to the
> >mainline kernel there should be open source userspace support anyway.
> >
>
> I am aware of that(patch not ready), it's one of the reasons this patch
> still sits on gitorious IMO.
>
> libcmtspeechdata was opened by Nokia long ago, so I don't understand what
> userspace support (for inclusion of the driver in the mainline kernel that
> is) is needed. see https://gitorious.org/meego-cellular/libcmtspeechdata/source/7f8f3ce357513e4849e1bf6d657980a514529c1a:
>
> REed pulseaudio modules that use cmtspeech will be ready sooner than later
> (I believe in 2-3 monts from now), see on gitorious how fast we progressed
> with -record and -music modules. Sure, -voice module is way more
> complicated, but lots of it is already opensourced, we just need to figure
> out a couple of DSP algorithms(drc, agc, aec, etc) related to call quality.
> But I don't think the driver should wait for those modules to be REed, they
> can be used as is even now, in their closed form for testing. Unfortunately
> all my spare time is dedicated to that PA stuff, so I simply can't cleanup
> cmtspeech driver and send a patch for upstreaming. (Pavel, what
>about you?)

Hey, I can try.

But there are two things I'd like to understand, first:

a) how did Mer people solve this? Or did they just ship nokia
binaries?

b) do we really need those DSP algorithms? Can we just take data from
microphone and send it down the GSM line, and take data from GSM line
and put it to the speaker? If it will not work in the speakerphone
mode, I can live with that... It should somehow work in normal-phone
mode, and be definitely feasible with wired handsfree, no?

Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-14 21:57:58

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Fri, Nov 14, 2014 at 09:54:42PM +0200, Ivaylo Dimitrov wrote:
> On 14.11.2014 19:20, Sebastian Reichel wrote:
> >The patch looks ok. It does not cleanup the cmt-speech driver for
> >mainline usage, but it should work. Before adding this driver to the
> >mainline kernel there should be open source userspace support anyway.
>
> I am aware of that(patch not ready), it's one of the reasons this
> patch still sits on gitorious IMO.
>
> libcmtspeechdata was opened by Nokia long ago, so I don't understand what
> userspace support (for inclusion of the driver in the mainline kernel that
> is) is needed. see https://gitorious.org/meego-cellular/libcmtspeechdata/source/7f8f3ce357513e4849e1bf6d657980a514529c1a:

ah cool. I assumed, that userland stuff is mostly closed.

> REed pulseaudio modules that use cmtspeech will be ready sooner than later
> (I believe in 2-3 monts from now), see on gitorious how fast we progressed
> with -record and -music modules. Sure, -voice module is way more
> complicated, but lots of it is already opensourced, we just need to figure
> out a couple of DSP algorithms(drc, agc, aec, etc) related to call quality.
> But I don't think the driver should wait for those modules to be REed, they
> can be used as is even now, in their closed form for testing.

https://gitorious.org/pulseaudio-modules-nemo/jusas-tanuk2-mer-packaging/source/6ed34611b49c99b007f614d9dff4d58369876345:
https://github.com/nemomobile/pulseaudio-module-cmtspeech-n9xx/commits/master

It seems there is already cmtspeech code for pulseaudio?

> Unfortunately all my spare time is dedicated to that PA stuff, so
> I simply can't cleanup cmtspeech driver and send a patch for
> upstreaming. (Pavel, what about you?)

If somebody gets audio working with your driver and documents the
steps needed in userland I will take care of upstreaming the driver.

> >Btw. I am aware that this would break existing pulse audio stuff,
> >but wouldn't it make sense to export a V4L2 device instead of the
> >custom /dev/cmt_speech ABI?
>
> Not to say that I agree with Pali's reply that working userspace should not
> be broken just for the sake of it.

Actually the mainline kernel never implemented that interface, so
there is no regression/break and I don't think introducing userspace
ABI's should be done carelessly - especially when there is also a
standardized interface.

> Nokia PA guys did a great job integrating lots of things related to audio
> and honestly, I don't see a reason why should we reinvent the wheel. There
> is lot more behind the scenes than simple PCM streaming (like audio policies
> and routing, sideband audio, speakers protection, etc) and reiplementing all
> this using different API wouldn't worth it IMO.

What has speaker protection to do with the modem interface?
Shouldn't this be two different PA modules?

-- Sebastian


Attachments:
(No filename) (2.79 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-14 22:05:35

by Sebastian Reichel

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Hi,

On Fri, Nov 14, 2014 at 06:34:18PM +0100, Pali Roh?r wrote:
> Anyway what is /dev/cmt_speech doing? If it exports gsm voice
> call data, [...]

Right.

> [...] should not it have alsa snd interface?

Sounds also like a promising standardized kernel interface.
I wonder why a custom interface has been chosen in the first
place.

> V4L2 interface is not for video/camera/capture/tv cards?

The V4L2 interface is also used for radio interfaces (e.g. the
N900's fm receiver/transmitter) and for software defined radio.

-- Sebastian


Attachments:
(No filename) (536.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-16 10:12:53

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Thu 2014-11-13 20:18:04, Aaro Koskinen wrote:
> Hi,
>
> On Thu, Nov 13, 2014 at 09:45:36AM -0800, Tony Lindgren wrote:
> > * Pavel Machek <[email protected]> [141113 08:23]:
> > > OTOH ofono seems pretty reasonable. So I played a bit, and result
> > > is python/pygtk gui which can receive an sms, initiate a call, and
> > > report missed call. If someone wants to play, source is at
> > >
> > > https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone
> >
> > Pavel, care to fill in the the following type patch with some
> > instructions in the description now that you got it working?
>
> Could we even have some "permanent" instructions under Documentation/?

Something like this?

commit 375d8d9f17433ade6afae91d4f34e170f0af04c4
Author: Pavel <[email protected]>
Date: Sun Nov 16 11:10:59 2014 +0100

Add basic documentation for n900 testing.

Signed-off-by: Pavel Machek <[email protected]>

diff --git a/Documentation/cellphones.txt b/Documentation/cellphones.txt
new file mode 100644
index 0000000..d7e8e7a
--- /dev/null
+++ b/Documentation/cellphones.txt
@@ -0,0 +1,90 @@
+Running Linux on Cellphones
+===========================
+
+At this moment (2014), there are no cellphones completely supported by
+mainline kernel. Another problem is lack of hackable userspace to run
+on cellphone, even when kernel support is available.
+
+Openmoko was first phone running Linux with X. GSM support there was
+based on freesmartphone.org daemons.
+
+Sony has project to merge kernel support for Xperia Z1.
+
+Nokia N900
+----------
+
+Nokia N900 orignally shipped with Maemo-based userland, which is close
+enough to GNU/X/apt based Linux; key components communicate using dbus
+and application can be written in pygtk. Kernel patches were
+relatively clean, and the core stuff is merged, unfortunately there's
+quite a lot of non-core stuff and pieces of userland are closed
+source; including some critical support such as bridge between CPU and
+modem for voice calls.
+
+Unfortunately, that means that kernel development is hard, because it
+is non-trivial to test all the various devices in the phone due to
+lack of suitable userspace and userspace development is hard, because
+there's no suitable kernel to work with.
+
+Here are instructions for getting usable userspace for kernel testing,
+and suggestions for some tests. Setting up nfsroot (needs non-mainline
+patch) is strongly recommended for development.
+
+I'm using Debian 7 for testing/development. It works well including
+touchscreen and X support, as of 3.18-rc1. Instructions are here:
+
+https://wiki.debian.org/n900-wheezy-armhf
+https://wiki.debian.org/MaemoAndSqueeze
+
+Following packages are useful on N900:
+
+libts-bin evtest ntpdate module-init-tools udev netbase ifupdown openssh-server
+locales whiptail less mpg123 mplayer ofono gcc strace mdbus2
+
+This calibrates display to usable state on recent kernel and Debian 7:
+
+DISPLAY=:0.0 xinput --set-prop --type=float 8 115 1.10 0.00 -0.05 0.00 1.18 -0.10 0.00 0.00 1.00
+DISPLAY=:0.0 xinput --set-prop --type=int 8 249 0 1
+
+# Test vibrations
+echo 5 | fftest /dev/input/event2
+
+# Test LEDs
+VAL=30
+echo $VAL > lp5523\:kb1/brightness
+echo $VAL > lp5523\:kb1/brightness
+echo $VAL > lp5523\:kb2/brightness
+echo $VAL > lp5523\:kb3/brightness
+echo $VAL > lp5523\:kb4/brightness
+echo $VAL > lp5523\:kb5/brightness
+echo $VAL > lp5523\:kb6/brightness
+echo $VAL > lp5523\:r/brightness
+echo $VAL > lp5523\:g/brightness
+echo $VAL > lp5523\:b/brightness
+echo 100 > /sys/class/backlight/acx565akm/brightness
+echo mem > /sys/power/state
+
+# Display battery/charging state
+cd /sys/bus/i2c/drivers/bq27x00-battery/2-0055/power_supply/bq27200-0
+grep -r . .
+
+# Start up ofono in debug mode
+rmdir /dev/cmt
+ln -s /sys/bus/hsi/devices/n900-modem/ /dev/cmt
+killall ofonod
+sleep .1
+ofonod --nodetach --debug &
+
+# Test modem works
+# enable the modem
+mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Powered true
+# enable modem's RF parts
+mdbus2 -s org.ofono /n900_0 org.ofono.Modem.SetProperty Online true
+# scan for available networks (takes some time)
+mdbus2 -s org.ofono /n900_0 org.ofono.NetworkRegistration.Scan
+
+
+ Good luck!
+
+ Pavel
+


--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-16 12:30:08

by Robert Jarzmik

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Pavel Machek <[email protected]> writes:

> On Thu 2014-11-13 20:18:04, Aaro Koskinen wrote:
>> Hi,
>>
>> On Thu, Nov 13, 2014 at 09:45:36AM -0800, Tony Lindgren wrote:
>> > * Pavel Machek <[email protected]> [141113 08:23]:
>> > > OTOH ofono seems pretty reasonable. So I played a bit, and result
>> > > is python/pygtk gui which can receive an sms, initiate a call, and
>> > > report missed call. If someone wants to play, source is at
>> > >
>> > > https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone
>> >
>> > Pavel, care to fill in the the following type patch with some
>> > instructions in the description now that you got it working?
>>
>> Could we even have some "permanent" instructions under Documentation/?
>
> Something like this?
>
> commit 375d8d9f17433ade6afae91d4f34e170f0af04c4
> Author: Pavel <[email protected]>
> Date: Sun Nov 16 11:10:59 2014 +0100
>
> Add basic documentation for n900 testing.
>
> Signed-off-by: Pavel Machek <[email protected]>
>
> diff --git a/Documentation/cellphones.txt b/Documentation/cellphones.txt
> new file mode 100644
> index 0000000..d7e8e7a
> --- /dev/null
> +++ b/Documentation/cellphones.txt
> @@ -0,0 +1,90 @@
> +Running Linux on Cellphones
> +===========================
> +
> +At this moment (2014), there are no cellphones completely supported by
> +mainline kernel. Another problem is lack of hackable userspace to run
> +on cellphone, even when kernel support is available.
Hi Pavel,

There is the Mitac Mio A701. Very old but still it is there, with the kernel
part maintained.

Userspace was based on QTopia in 2008. I don't maintain that part anymore
though.

The GSM part relies on a simple ttyS device (modem has its internal flash), no
real data at that time, or rather 2G only, but the 07.10 mux support was never
included in Qtopia ...

Cheers.

--
Robert

2014-11-18 07:42:59

by Pavel Machek

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

On Sun 2014-11-16 13:29:50, Robert Jarzmik wrote:
> Pavel Machek <[email protected]> writes:
>
> > On Thu 2014-11-13 20:18:04, Aaro Koskinen wrote:
> >> Hi,
> >>
> >> On Thu, Nov 13, 2014 at 09:45:36AM -0800, Tony Lindgren wrote:
> >> > * Pavel Machek <[email protected]> [141113 08:23]:
> >> > > OTOH ofono seems pretty reasonable. So I played a bit, and result
> >> > > is python/pygtk gui which can receive an sms, initiate a call, and
> >> > > report missed call. If someone wants to play, source is at
> >> > >
> >> > > https://gitorious.org/tui/tui/source/b6141107e9341a1412720aed4b0d09143dfa2f4e:ofone
> >> >
> >> > Pavel, care to fill in the the following type patch with some
> >> > instructions in the description now that you got it working?
> >>
> >> Could we even have some "permanent" instructions under Documentation/?
> >
> > Something like this?
> >
> > commit 375d8d9f17433ade6afae91d4f34e170f0af04c4
> > Author: Pavel <[email protected]>
> > Date: Sun Nov 16 11:10:59 2014 +0100
> >
> > Add basic documentation for n900 testing.
> >
> > Signed-off-by: Pavel Machek <[email protected]>
> >
> > diff --git a/Documentation/cellphones.txt b/Documentation/cellphones.txt
> > new file mode 100644
> > index 0000000..d7e8e7a
> > --- /dev/null
> > +++ b/Documentation/cellphones.txt
> > @@ -0,0 +1,90 @@
> > +Running Linux on Cellphones
> > +===========================
> > +
> > +At this moment (2014), there are no cellphones completely supported by
> > +mainline kernel. Another problem is lack of hackable userspace to run
> > +on cellphone, even when kernel support is available.
> Hi Pavel,
>
> There is the Mitac Mio A701. Very old but still it is there, with the kernel
> part maintained.
>
> Userspace was based on QTopia in 2008. I don't maintain that part anymore
> though.
>
> The GSM part relies on a simple ttyS device (modem has its internal flash), no
> real data at that time, or rather 2G only, but the 07.10 mux support was never
> included in Qtopia ...

Thanks for the info.

I added

"
+Mainline has support for Mitac Mio A701, but that having only 64MiB
+RAM, QTopia is the software to use there.
"
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-19 19:02:01

by Robert Jarzmik

[permalink] [raw]
Subject: Re: N900 modem support in 3.18-rc1

Pavel Machek <[email protected]> writes:

> Thanks for the info.
>
> I added
>
> "
> +Mainline has support for Mitac Mio A701, but that having only 64MiB
> +RAM, QTopia is the software to use there.
> "

Thanks Pavel, that looks good.

Cheers.

--
Robert

2014-11-20 10:13:26

by Pavel Machek

[permalink] [raw]
Subject: voice calls on N900 working (off-line) was Re: N900 modem support in 3.18-rc1

Hi!

> > REed pulseaudio modules that use cmtspeech will be ready sooner than later
> > (I believe in 2-3 monts from now), see on gitorious how fast we progressed
> > with -record and -music modules. Sure, -voice module is way more
> > complicated, but lots of it is already opensourced, we just need to figure
> > out a couple of DSP algorithms(drc, agc, aec, etc) related to call quality.
> > But I don't think the driver should wait for those modules to be REed, they
> > can be used as is even now, in their closed form for testing.
>
> https://gitorious.org/pulseaudio-modules-nemo/jusas-tanuk2-mer-packaging/source/6ed34611b49c99b007f614d9dff4d58369876345:
> https://github.com/nemomobile/pulseaudio-module-cmtspeech-n9xx/commits/master
>
> It seems there is already cmtspeech code for pulseaudio?

Yes, and it works; but see below.

> > Unfortunately all my spare time is dedicated to that PA stuff, so
> > I simply can't cleanup cmtspeech driver and send a patch for
> > upstreaming. (Pavel, what about you?)
>
> If somebody gets audio working with your driver and documents the
> steps needed in userland I will take care of upstreaming the driver.

I got it to work.

Ok, so realtime audio does not work due to some pulseaudio problems,
but I was able to record a (silent) call and then replay it with

pacat --rate 4000 ../../../pulseaudio2.raw

on my PC. I have yet to do some testing on the microphone side.

I'm using Debian 7 as a a base, and I suggest nfsroot.

It seems that libcmtspeechdata + pulseaudio-module-cmtspeech-n9xx is
enough to get calls to work. Now. I could not get configure on these
packages to work, so I hard-coded build scripts (mkit). You'll need to
symlink resulting .so to pulseaudio directory (see
/my/pulseaudio-module-cmtspeech-n9xx/src/cmtspeech/mkit). I leave binaries in,
since this is non-trivial to compile. Some memory allocation stuff was
missing. I faked it; it seems it is not needed in the first call.

untar in the root directory of n900. Reset n900, no need to log in
into console, connect using ssh -X root@n900.

Then go to /my/tui/ofone. Run "./run" -- that should start
pulseaudio. Run "./ofone", hit "lowlevel: online", hit "contacts",
enter phone number you want to call, hit the number, it should start
dialing.

Wait a while, hit "lowlevel: hangup".

Now you should have:

/my/pulseaudio2.raw

you can play with pacat above, and /my/pulseaudio.log.*, which
contains stuff that needs to be fixed.

I've put the archive at

http://atrey.karlin.mff.cuni.cz/~pavel/outgoing/n900-my.tgz

Have fun!

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-20 10:17:23

by Pavel Machek

[permalink] [raw]
Subject: Re: voice calls on N900 working (off-line) was Re: N900 modem support in 3.18-rc1

Hi!

> Ok, so realtime audio does not work due to some pulseaudio problems,
> but I was able to record a (silent) call and then replay it with
>
> pacat --rate 4000 ../../../pulseaudio2.raw
>
> on my PC. I have yet to do some testing on the microphone side.

Did someone get pulseaudio to work on n900?

It somehow works for me, but not enough to actually produce sound.

root@n900:/my# pacat /my/pulseaudio2.raw
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
root@n900:/my# pacmd
Welcome to PulseAudio! Use "help" for usage information.
>>> list-modules
22 module(s) loaded.
index: 0
name: <module-device-restore>
argument: <>
used: -1
load once: yes
...

mpg123 actually works ok after adjusting the mixers.

Any ideas?

Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2014-11-25 23:22:01

by Pavel Machek

[permalink] [raw]
Subject: GPRS data on N900 working was Re: N900 modem support in 3.18-rc1

Hi!

> Then go to /my/tui/ofone. Run "./run" -- that should start
> pulseaudio. Run "./ofone", hit "lowlevel: online", hit "contacts",
> enter phone number you want to call, hit the number, it should start
> dialing.
>
> Wait a while, hit "lowlevel: hangup".

I played a bit more, and now ofone can connect to GPRS. You'll need
version from git, see

https://gitorious.org/tui/tui/source/dff269a7ba419f573de5b90e8eea58227de8a9e6:ofone

Good luck,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2015-02-11 18:32:32

by Pavel Machek

[permalink] [raw]
Subject: Voice calls working on N900 (*) (was Re: N900 modem support in 3.18-rc1)

Hi!

(*) for low values of working.

Ok, so I got voice on n900 to work on 3.19-n900 tree.. Quality of incoming
voice is reasonable, quality of outgoing voice not so, I was told.

So, you need patched kernel (pali's n900 tree) ofono etc, plus I'm
using ofone python script to control the modem, plus you need
libcmtspeechdata. I have this version:

commit 7f8f3ce357513e4849e1bf6d657980a514529c1a
Author: Kai Vehmanen <[email protected]>
Date: Tue Mar 8 13:46:48 2011 +0200

cmtspeech_msgs: fix compiler warning

Add parenthesis to make the code more readable and to kill a
compiler
warning.

Signed-off-by: Kai Vehmanen <[email protected]>

Plus, apply the patch below. I could not get configure (etc) to work
for me, so I build it by hand. cmtspeech_ofono_test can then be used
to route the voice calls (if you feed it with audio data, see the
"run" script).

What is missing:

* right setup of mixers. (I was actually running audio data to my
desktop for some tests). What commandline tools can be used to set up
mixers? I'm using "alsamixer", but it has text ui...

* passing audio data using pipes is really a hack... and periodically
discarding audio data is certainly not a good idea.

Good luck,
Pavel

diff --git a/mkit b/mkit
new file mode 100755
index 0000000..6fbd216
--- /dev/null
+++ b/mkit
@@ -0,0 +1,15 @@
+build_lib () {
+for a in test_cmtspeech test_cmtspeech_msgs test_ring; do
+ echo $a
+# gcc cmtspeech_backend_common.c cmtspeech_msgs.c cmtspeech_nokiamodem.c sal_debug.c $a.c -I. -lrt -o $a
+done
+
+for a in cmtspeech_backend_common cmtspeech_msgs cmtspeech_nokiamodem sal_debug; do
+ gcc -fPIC $a.c -c -I. -o $a.o
+done
+ar rcs libcmtspeech.a cmtspeech_backend_common.o cmtspeech_msgs.o cmtspeech_nokiamodem.o sal_debug.o
+}
+
+# build_lib
+gcc -I . -I /usr/include/dbus-1.0/ -I /usr/lib/arm-linux-gnueabi/dbus-1.0/include/ utils/cmtspeech_ofono_test.c -lpthread -lrt libcmtspeech.a /usr/lib/arm-linux-gnueabi/libdbus-1.a -o cmtspeech_ofono_test
+
diff --git a/run b/run
new file mode 100755
index 0000000..8cb1f9a
--- /dev/null
+++ b/run
@@ -0,0 +1,2 @@
+#!/bin/bash
+parec --rate=4000 --latency-msec=100 | ./cmtspeech_ofono_test -a -v | pacat --rate=4000 --latency-msec=100
diff --git a/utils/cmtspeech_ofono_test.c b/utils/cmtspeech_ofono_test.c
index 4a6f080..ffb323f 100644
--- a/utils/cmtspeech_ofono_test.c
+++ b/utils/cmtspeech_ofono_test.c
@@ -48,6 +48,9 @@
#include <cmtspeech.h>
#include <dbus/dbus.h>

+#include <unistd.h>
+#include <fcntl.h>
+
struct test_ctx {
DBusConnection* dbus_conn;
int dbus_fd;
@@ -55,6 +58,9 @@ struct test_ctx {
bool call_server_status;
int verbose;
cmtspeech_t *cmtspeech;
+ int source_fd;
+ int sink_fd;
+ int data_through;
};

#define PREFIX "cmtspeech_ofono_test: "
@@ -75,7 +81,7 @@ static dbus_bool_t priv_add_cb(DBusWatch *watch, void *data)
ctx->dbus_fd = fd;
ctx->dbus_watch = watch;

- DEBUG(printf(PREFIX "priv_add_cb: socket %d, watch %p (tracking %p).\n",
+ DEBUG(fprintf(stderr, PREFIX "priv_add_cb: socket %d, watch %p (tracking %p).\n",
fd, watch, ctx->dbus_watch));

return TRUE;
@@ -85,7 +91,7 @@ static void priv_remove_cb(DBusWatch *watch, void *data)
{
struct test_ctx *ctx = (struct test_ctx*)data;

- DEBUG(printf(PREFIX "priv_remove_cb: (%p).\n", (void*)watch));
+ DEBUG(fprintf(stderr, PREFIX "priv_remove_cb: (%p).\n", (void*)watch));

if (ctx->dbus_watch == watch) {
ctx->dbus_watch = NULL;
@@ -99,7 +105,7 @@ static void priv_toggled_cb(DBusWatch *watch, void *data)
dbus_bool_t enabled =
dbus_watch_get_enabled(watch);

- DEBUG(printf(PREFIX "priv_toggled_cb: (%p) enabled=%d.\n", (void*)watch, enabled));
+ DEBUG(fprintf(stderr, PREFIX "priv_toggled_cb: (%p) enabled=%d.\n", (void*)watch, enabled));

if (ctx->dbus_watch == watch) {
if (enabled == TRUE)
@@ -132,7 +138,7 @@ DBusConnection *test_dbus_make_connection(struct test_ctx *ctx, DBusBusType dbus

conn = dbus_bus_get(dbus_type, &dbus_error);
if (dbus_error_is_set(&dbus_error) != TRUE) {
- DEBUG(printf(PREFIX "Connection established to DBus (%d).\n", (int)dbus_type));
+ DEBUG(fprintf(stderr, PREFIX "Connection established to DBus (%d).\n", (int)dbus_type));
}
else {
fprintf(stderr, PREFIX "ERROR: unable to connect to DBus\n");
@@ -184,6 +190,24 @@ static void test_dbus_release(struct test_ctx *ctx)
}
}

+static void flush_input(struct test_ctx *ctx)
+{
+ char scratch[10240];
+ int total = 0;
+
+ fprintf(stderr, "Flushing input...\n");
+ if (!ctx->sink_fd)
+ return;
+ while(1) {
+ int num;
+ num = read(ctx->source_fd, scratch, 10240);
+ if (num == -1)
+ break;
+ total += num;
+ }
+ fprintf(stderr, "Flushing input (%d)\n", total);
+}
+
static bool test_handle_dbus_ofono(struct test_ctx *ctx, DBusMessage *msg)
{
const char* property = NULL;
@@ -194,7 +218,7 @@ static bool test_handle_dbus_ofono(struct test_ctx *ctx, DBusMessage *msg)
dbus_message_get_args(msg, &dbus_error,
DBUS_TYPE_STRING, &property,
DBUS_TYPE_INVALID);
- DEBUG(printf(PREFIX "received ofono AudioSettings change, params name='%s'\n",
+ DEBUG(fprintf(stderr, PREFIX "received ofono AudioSettings change, params name='%s'\n",
property));
if (strcmp(property, "Active") == 0) {
DBusMessageIter i;
@@ -213,7 +237,11 @@ static bool test_handle_dbus_ofono(struct test_ctx *ctx, DBusMessage *msg)
dbus_message_iter_get_basic(&j, &state);

if (state != old_state) {
- INFO(printf(PREFIX "org.ofono.AudioSettings.Active to %d.\n", state));
+ INFO(fprintf(stderr, PREFIX "org.ofono.AudioSettings.Active to %d.\n", state));
+ if (state == 1) {
+ flush_input(ctx);
+ }
+
cmtspeech_state_change_call_status(ctx->cmtspeech, state);
ctx->call_server_status = state;
}
@@ -238,14 +266,14 @@ static int test_handle_dbus_message(struct test_ctx *ctx, DBusMessage *msg)
int res = 0;
const char* dbusif = dbus_message_get_interface(msg);

- DEBUG(printf(PREFIX "got message to if:%s, member:%s.\n",
+ DEBUG(fprintf(stderr, PREFIX "got message to if:%s, member:%s.\n",
dbusif, dbus_message_get_member(msg)));

if (strstr(dbusif, "org.ofono.")) {
test_handle_dbus_ofono(ctx, msg);
}
else
- INFO(printf(PREFIX "unknown/ignored signal: if=%s, member=%s.\n",
+ INFO(fprintf(stderr, PREFIX "unknown/ignored signal: if=%s, member=%s.\n",
dbusif, dbus_message_get_member(msg)));

return res;
@@ -280,6 +308,7 @@ static struct option const opt_tbl[] =
{
{"verbose", 0, NULL, 'v'},
{"help", 0, NULL, 'h'},
+ {"audio", 0, NULL, 'a'},
{NULL, 0, NULL, 0}
};

@@ -297,13 +326,24 @@ static void priv_parse_options(struct test_ctx *ctx, int argc, char *argv[])

assert(ctx);

- while (res = getopt_long(argc, argv, "hv", opt_tbl, &opt_index), res != -1) {
+ while (res = getopt_long(argc, argv, "hva", opt_tbl, &opt_index), res != -1) {
switch (res)
{

case 'v':
++ctx->verbose;
- printf(PREFIX "Increasing verbosity to %d.\n", ctx->verbose);
+ fprintf(stderr, PREFIX "Increasing verbosity to %d.\n", ctx->verbose);
+ break;
+
+ case 'a':
+ fprintf(stderr, "Enabling audio path\n");
+ ctx->source_fd = 0;
+ ctx->sink_fd = 1;
+ ctx->data_through = 0;
+ {
+ int flags = fcntl(ctx->source_fd, F_GETFL, 0);
+ fcntl(ctx->source_fd, F_SETFL, flags | O_NONBLOCK);
+ }
break;

case 'h':
@@ -317,16 +357,43 @@ static void priv_parse_options(struct test_ctx *ctx, int argc, char *argv[])
static void test_handle_cmtspeech_data(struct test_ctx *ctx)
{
cmtspeech_buffer_t *dlbuf, *ulbuf;
+ char scratch[10240];
int res = cmtspeech_dl_buffer_acquire(ctx->cmtspeech, &dlbuf);
if (res == 0) {
- DEBUG(printf(PREFIX "Received a DL packet (%u bytes).\n", dlbuf->count));
+ DEBUG(fprintf(stderr, PREFIX "Received a DL packet (%u bytes).\n", dlbuf->count));
if (cmtspeech_protocol_state(ctx->cmtspeech) ==
CMTSPEECH_STATE_ACTIVE_DLUL) {
res = cmtspeech_ul_buffer_acquire(ctx->cmtspeech, &ulbuf);
if (res == 0) {
if (ulbuf->pcount >= dlbuf->pcount) {
- DEBUG(printf(PREFIX "Looping DL packet to UL (%u payload bytes).\n", dlbuf->pcount));
- memcpy(ulbuf->payload, dlbuf->payload, dlbuf->pcount);
+ if (ctx->sink_fd) {
+ int num;
+
+ memset(ulbuf->payload, 0, ulbuf->pcount);
+ num = read(ctx->source_fd, ulbuf->payload, ulbuf->pcount);
+ if (num != dlbuf->pcount) {
+ fprintf(stderr, "Not enough data on input (%d/%d)\n", num, dlbuf->pcount);
+ }
+ ctx->data_through += ulbuf->pcount;
+
+ if (ctx->data_through > 100000) {
+ ctx->data_through = 0;
+ fprintf(stderr, "Draining input\n");
+ while(1) {
+ num = read(ctx->source_fd, scratch, 10240);
+ fprintf(stderr, "Too much data on input (%d)\n", num);
+ if (num == -1)
+ break;
+ if (num < 320)
+ fprintf(stderr, "Too little to drain (%d)\n", num);
+ }
+ }
+
+ write(ctx->sink_fd, dlbuf->payload, dlbuf->pcount);
+ } else {
+ DEBUG(fprintf(stderr, PREFIX "Looping DL packet to UL (%u payload bytes).\n", dlbuf->pcount));
+ memcpy(ulbuf->payload, dlbuf->payload, dlbuf->pcount);
+ }
}
cmtspeech_ul_buffer_release(ctx->cmtspeech, ulbuf);
}
@@ -341,7 +408,7 @@ static int test_handle_cmtspeech_control(struct test_ctx *ctx)
int state_tr = CMTSPEECH_TR_INVALID;

cmtspeech_read_event(ctx->cmtspeech, &cmtevent);
- DEBUG(printf(PREFIX "read cmtspeech event %d.\n", cmtevent.msg_type));
+ DEBUG(fprintf(stderr, PREFIX "read cmtspeech event %d.\n", cmtevent.msg_type));

state_tr = cmtspeech_event_to_state_transition(ctx->cmtspeech, &cmtevent);

@@ -399,7 +466,7 @@ static int test_mainloop(struct test_ctx *ctx)

pollres = poll(fds, count, -1);

- DEBUG(printf("poll returned %d (count:%d, cmt:%02X, dbus:%02X)\n",
+ DEBUG(fprintf(stderr, "poll returned %d (count:%d, cmt:%02X, dbus:%02X)\n",
pollres, count, fds[cmt].revents, fds[dbus].revents));

if (pollres > 0) {
@@ -454,6 +521,7 @@ int main(int argc, char *argv[])
struct test_ctx *ctx = &ctx0;
int res = 0;

+ fprintf(stderr, "NFS sucks, version 0.0.1\n");
priv_setup_signals();

ctx->dbus_conn = NULL;
@@ -480,14 +548,14 @@ int main(int argc, char *argv[])
return -1;
}

- INFO(printf(PREFIX "Setup succesful, entering mainloop.\n"));
+ INFO(fprintf(stderr, PREFIX "Setup succesful, entering mainloop.\n"));

res = test_mainloop(ctx);

cmtspeech_close(ctx->cmtspeech);
test_dbus_release(ctx);

- INFO(printf(PREFIX "Completed, exiting (%d).\n", res));
+ INFO(fprintf(stderr, PREFIX "Completed, exiting (%d).\n", res));

return res;
}

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2015-02-11 20:56:58

by Pavel Machek

[permalink] [raw]
Subject: Re: Voice calls working on N900 (*) (was Re: N900 modem support in 3.18-rc1)

Hi!

> (*) for low values of working.
>
> Ok, so I got voice on n900 to work on 3.19-n900 tree.. Quality of incoming
> voice is reasonable, quality of outgoing voice not so, I was told.
>
> So, you need patched kernel (pali's n900 tree) ofono etc, plus I'm
> using ofone python script to control the modem, plus you need
> libcmtspeechdata. I have this version:

I put libcmtspeechdata at gitorious:

[email protected]:libcmtspeechdata/libcmtspeechdata.git

ofone control scripts are at:

[email protected]:tui/tui.git

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html