**** BEGIN LOGGING AT Mon Mar 22 03:00:02 2010 Mar 22 11:01:42 denkenz: ping Mar 22 13:52:31 josch: pong Mar 22 14:41:33 denkenz: sry just came back from an exam :) Mar 22 14:42:23 denkenz: iirc you were the guy who proposed that you ofono guys are interested in making ofono run on whatever device we give you? Mar 22 14:42:44 i hope it was you back then in #pyneo.org :) Mar 22 14:43:44 we make ofono run on all devices Mar 22 14:44:11 it is about the samsung h1 Mar 22 14:44:28 it already runs a custom kernel and rootfs from sd Mar 22 14:44:45 However, some are easier than others, and we're not touching anything with an undocumented binary protocol (e.g. palm pre) Mar 22 14:47:00 hahaha Mar 22 14:47:09 that might actually be the case there ;) Mar 22 14:47:58 dumdum, yup :x Mar 22 14:48:03 Shrug, we're not magic pixies here, if it is undocumented there's not much we can do Mar 22 14:49:31 oh hi ius :) Mar 22 14:49:40 josch: I silently hopped in ;) Mar 22 15:33:52 denkenz: how about the n900, got any doc on the modem i could use ? :) Mar 22 15:34:59 i managed to find the complete list of messages (more complete than ofono's) on symbian's repo Mar 22 15:35:13 tck: What baseband does it use? Mar 22 15:35:38 don't really know.. its an "isi modem" Mar 22 15:35:41 how can i check? Mar 22 15:35:52 tck: Only the Nokia guys have the ISI docs and they are not making it public, even to me Mar 22 15:36:13 sucks :/ Mar 22 15:36:33 ive been reversing nokia's CSD daemo + plugins Mar 22 15:36:40 and searching through the web Mar 22 15:36:49 and i managed to get some more message ids & sublocks Mar 22 15:36:49 etc Mar 22 15:36:57 Check gnokii, it has some isi reverse engineered Mar 22 15:37:16 but i cant get NET_NEIGHBOUR_CELLS_REQ Mar 22 15:37:17 to work Mar 22 15:37:21 k thx i will Mar 22 15:39:04 tck: If you just need the neighbor cell stuff, the easier way to go is the Freerunner or MBM Mar 22 15:39:19 tck: Freerunner won't give you umts though, MBM will Mar 22 15:40:03 freerunner is openmoko right? Mar 22 15:40:08 what's MBM? Mar 22 15:40:43 MBM = Ericsson Mobile Broadband Module Mar 22 15:40:57 F3507, F3607g based cards Mar 22 15:41:19 e.g. MD300, some Dell cards, etc Mar 22 15:42:04 The docs are even mainly reverse-engineered online, check google Mar 22 15:42:15 thx alot i ll check it out asap Mar 22 16:00:02 thx denkenz, looks like MBM cards support nice at commands to get everything im after Mar 22 16:01:39 now if only i could get all that from a _phone_ and not a laptop/netbook :| Mar 22 16:02:20 denkenz: ofone currently only supports non-Qualcomm modems it seems? Mar 22 16:02:26 s/ofone/ofono Mar 22 16:11:59 tck: You can always wait until akiniemi is interested in implementing the neighbor cell stuff again Mar 22 16:12:15 tck: Until then I can't recommend anything that will work Mar 22 16:12:19 you think he will? Mar 22 16:12:34 ius: We support everything that can be reasonably supported Mar 22 16:12:53 ius: However, reverse-engineering a binary protocol is a waste of our time, we have other things to do Mar 22 16:13:33 tck: No idea, ask him Mar 22 16:13:39 from what i read / tested / etc... it would appear the modem is ignoring my requests and i need to put it in engineering / debug / whatever mode Mar 22 16:15:14 ius: Also note that Qualcomm does have AT command based modems, so your statement is not correct Mar 22 16:15:28 ius: E.g. HSO, Huawei, G1 are all Qualcomm based Mar 22 16:15:42 denkenz: asked him about my problem, he hasnt answered yet. Mar 22 16:16:00 i figured him or courmisch were the people to ask ;p Mar 22 16:16:06 from their presentation slides Mar 22 17:12:03 denkenz: Ah right, well, in this case it's a binary interface I think, so I'll just add it to my long todo :) Mar 22 17:31:40 tck: the F3507 is THE shit!! you /rly/ want that card in your laptop Mar 22 17:32:18 tck: it even offers an ethernet interface that you can start by issuing an AT command and then only do a dhcp request on and you are good to go Mar 22 17:32:44 tck: it comes with 3 serial usb devices and gps on any of those Mar 22 17:32:52 cool Mar 22 17:33:01 it's only too bad that such killer hw is not available for usb Mar 22 17:33:24 tck: read more about it in the thinkwiki Mar 22 17:33:31 dells and thinkpads come with it Mar 22 17:33:32 but thing is im trying to make a mobile based system right now Mar 22 17:33:43 i got mine on ebay for 60€ Mar 22 17:34:11 i found a page with the list of all supported at commands for it Mar 22 17:34:16 and it does look very complete Mar 22 17:34:49 http://www.natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html Mar 22 17:34:50 :) Mar 22 17:35:08 AT*E2EMM Mar 22 17:35:17 wish i had something like that for nokia Mar 22 17:35:39 exactly Mar 22 17:35:42 that card is a dream Mar 22 17:35:52 plug it in and you are good to go Mar 22 17:37:53 so you need it even if it is note directly useful for your current project ;) Mar 22 17:38:36 FYI, you can get the SE MD300 with the F3507 Mar 22 17:38:47 It doesn't have the GPS, but most of the other features are there Mar 22 17:38:55 And its just USB stick, not PCI Mar 22 17:39:03 oooh Mar 22 17:39:44 denkenz: so same features except the gps? same kernel support? Mar 22 17:40:03 yep Mar 22 17:40:15 wow nice Mar 22 17:40:17 That's what I did most of my MBM driver work on Mar 22 17:40:20 denkenz: thx for the info! Mar 22 17:40:25 So it should work out of the box with oFono Mar 22 17:46:07 thanks denkenz & josch for your answers & help, i gota go but i ll be back tomorow Mar 22 17:46:09 have fun Mar 22 22:47:45 holtmann: We need to start talking about modem emulator, whether we want it in-process, out-of-process, etc **** ENDING LOGGING AT Mon Mar 22 22:48:09 2010 **** BEGIN LOGGING AT Mon Mar 22 22:54:14 2010 **** ENDING LOGGING AT Mon Mar 22 23:25:21 2010 **** BEGIN LOGGING AT Mon Mar 22 23:44:15 2010 Mar 23 00:26:05 You mean second process that just runs the emulator? Mar 23 00:26:32 I think this depends on a little bit what hardware support we have. Mar 23 00:27:07 For example for ISI a modem emulator could be easy a different process, because how Phonet works. For AT hardware it might be actually causing issues if it is outside. Mar 23 00:53:16 holtmann: No, we have to go through oFono Mar 23 00:53:34 holtmann: The question is do we do it in ofonod process or using the DBus API + extensions Mar 23 00:53:59 My current mindset would be to do it directly in oFono. Mar 23 00:54:35 Only problem case I might see is PPP. However if we figure out on how to better use the kernel PPP, then the workload is minimal. Mar 23 00:54:56 My biggest concern there is additional vectors for attacks Mar 23 00:55:49 Let me put it this way. Lets start with it internally, but try not to integrate it to deeply. If it becomes the wrong choice we go externally. Mar 23 00:56:03 Gut feeling is we need this internally if we not wanna complicate it for us. Mar 23 01:02:18 It has to be integrated deeply Mar 23 01:02:32 holtmann: Because we'd need access to internal state, which is private today Mar 23 01:03:38 Then there you have your answer. Go internally. And only if we see problems we invent an API to run it externally. Mar 23 01:04:40 Funny thing is, we'd be mostly ok going external too, we can use the ussd api to get access to almost everything Mar 23 01:04:54 holtmann: The only thing that wouldn't work would be sms / cbs pdus Mar 23 01:05:00 hence the extensions Mar 23 01:34:46 denkenz: why bother to change parse_extended_command so heavily? Mar 23 01:37:01 at least, we should split parse_extended into two or three functions. do you want me to clone parse_basic by following your style? Mar 23 01:39:50 CC gatchat/ppp.o Mar 23 01:39:50 cc1: warnings being treated as errors Mar 23 01:39:50 gatchat/ppp.c: In function ‘ppp_recv’: Mar 23 01:39:50 gatchat/ppp.c:202: error: cast to pointer from integer of different size Mar 23 01:39:50 make[1]: *** [gatchat/ppp.o] Error 1 Mar 23 01:39:51 make: *** [all] Error 2 Mar 23 01:42:45 holtmann: can i simply cast protocol from guint16 to guint in GUINT_TO_POINTER(protocol)? Mar 23 02:03:26 zhenhua: You are running 32-bit? Mar 23 02:03:38 I am not seeing this issue. Mar 23 02:03:40 sure Mar 23 02:03:52 do you have turn on enable-maintainer-mode Mar 23 02:04:27 my option is --enable-maintainer-mode --enable-debug --disable-optimization --no-create --no-recursion Mar 23 02:04:54 I use bootstrap-configure :) Mar 23 02:05:49 heh. shall I submit a patch to fix my warning? Mar 23 02:06:19 anyway, let me rerun configure fist Mar 23 02:06:32 I am not getting this one. And it should be fine to cast the guint16 into the pointer. Mar 23 02:06:48 Use ./bootstrap-configure. Mar 23 02:07:09 sure Mar 23 02:07:13 wait a sec Mar 23 02:08:36 zhenhua: Your code was a little overly complicated and bled through some details into user-interface Mar 23 02:09:03 denkenz: but i think your code is complicated than mine.;-) Mar 23 02:09:18 zhenhua: Which distro are you using? Mar 23 02:09:24 zhenhua: Sure, but I handle tons of cases you weren't Mar 23 02:09:51 am I missed any detailed case? Mar 23 02:10:09 holtmann: i am using git tree. Mar 23 02:10:13 gcc -DHAVE_CONFIG_H -I. -I./include -I./src -I./src -I./gdbus -I./gisi -I./gatchat -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DOFONO_PLUGIN_BUILTIN -DPLUGINDIR=\""/home/zzhan17/ofono/plugins/.libs"\" -Wall -O2 -D_FORTIFY_SOURCE=2 -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align -g -MT Mar 23 02:10:20 zhenhua: So I just checked on my Fedora 12 running on a 32-bit big endian Mac mini. And I do get that warning as well. Mar 23 02:10:25 ubutun Mar 23 02:10:31 Seems that a 64-bit Linux is fine. Mar 23 02:11:47 holtmann: so what should I do or let kristen to handle it? Mar 23 02:11:55 holtmann: heh, probably the magic on glib side Mar 23 02:12:26 holtmann: Probably does a cast on 64 bit, but nothing on 32 Mar 23 02:12:50 I have fixed it now. I hate global scope variables if they are only used inside. Mar 23 02:13:10 okay Mar 23 02:13:53 denkenz: again, shall I follow your style to create parse_basic_command? Mar 23 02:13:56 zhenhua: And yes, you did miss tons of cases, e.g. multiple ?,= per command, etc Mar 23 02:14:01 zhenhua: Yes if possible Mar 23 02:14:05 Push is fixed. Check tree, it should sync in a bit. Mar 23 02:14:11 Fix is pushed ;) Mar 23 02:14:36 denkenz: one command contain multiple ?,=? Mar 23 02:14:50 can you give an example.;-) Mar 23 02:15:10 It can't, but you weren't checking the input for those cases Mar 23 02:15:44 anyway, i will first work out a version. Mar 23 02:15:52 for parse_basic_command. Mar 23 02:16:14 Not properly handling ';' inside strings, etc Mar 23 02:16:32 Take the opportunity to think like an attacker and see if there are other cases we're still missing Mar 23 02:16:39 yeah, i admit this one Mar 23 02:18:35 zhenhua: Another homework assignment, we actually can't assume the application will always return synchronously Mar 23 02:19:06 so...we need thread? Mar 23 02:19:27 zhenhua: No, no threads, use event loop Mar 23 02:20:04 zhenhua: E.g. the callback can defer returning because it is waiting for something (e.g. network) Mar 23 02:20:13 i see Mar 23 02:20:20 zhenhua: So we have to delay command processing until the callback calls send_final Mar 23 02:20:24 in at_command_notify, right Mar 23 02:20:44 Probably in many places, but start there Mar 23 02:21:03 and during that period, atserver is hang and waiting for send_final Mar 23 02:21:17 should not say hang but is waiting Mar 23 02:21:38 correct, we can continue reading the socket, but we're not processing commands Mar 23 02:21:53 and this can also happen mid-command line (e.g. using ';') Mar 23 02:22:38 yes. it would make the parser a little bit complex, need to handle it carefully Mar 23 02:22:46 So you might want to store the last command line (needed for a/ anyway) and the offset of where you are Mar 23 02:22:55 CC gatchat/ppp_cp.o Mar 23 02:22:55 cc1: warnings being treated as errors Mar 23 02:22:56 gatchat/ppp_cp.c: In function ‘verify_config_option’: Mar 23 02:22:56 gatchat/ppp_cp.c:1069: error: cast to pointer from integer of different size Mar 23 02:22:56 gatchat/ppp_cp.c: In function ‘remove_config_option’: Mar 23 02:22:56 gatchat/ppp_cp.c:1100: error: cast to pointer from integer of different size Mar 23 02:22:58 gatchat/ppp_cp.c: In function ‘pppcp_process_configure_ack’: Mar 23 02:23:00 gatchat/ppp_cp.c:1219: error: cast to pointer from integer of different size Mar 23 02:23:02 gatchat/ppp_cp.c: In function ‘pppcp_process_configure_nak’: Mar 23 02:23:04 gatchat/ppp_cp.c:1283: error: cast to pointer from integer of different size Mar 23 02:23:06 make[1]: *** [gatchat/ppp_cp.o] Error 1 Mar 23 02:23:08 Crap :( Mar 23 02:23:30 holtmann: yeah, there're other places need to cast guint8 to guint Mar 23 02:23:31 heh Mar 23 02:23:48 holtmann: That whole design needs to be rethought Mar 23 02:25:03 Or invent a better macro :P Mar 23 02:25:36 denkenz: i see you have moved some interfaces to dbus.h. any thought about how to integrate atserver with core? Mar 23 02:26:23 zhenhua: Me and holtmann still need to discuss it further, but I'm waffling between in-process with ofono (e.g. plugin) and out-of-process Mar 23 02:26:47 zhenhua: The in-process is ultimately more flexible, but requires lots of changes in the core Mar 23 02:26:48 denkenz: sure Mar 23 02:28:58 anyway, let me know if i can help. Mar 23 02:29:14 now, i still focus on stablize the atserver itself. Mar 23 02:29:54 zhenhua: Don't worry, you still have plenty to fixup, including a/ and deferred execution Mar 23 02:30:14 zhenhua: There's also command abortion too ;) Mar 23 02:30:17 i know that. Mar 23 02:30:48 if you see my mail sent last day, what do you think? Mar 23 02:31:03 follow MBM or Huawei's way? Mar 23 02:31:08 for basic commands Mar 23 02:32:18 Sounds like MBM is the better implementation Mar 23 02:32:27 And more standard-compliant Mar 23 02:33:28 So yeah, doing proper set with assumed arguments is the way to go Mar 23 02:33:59 so we will follow MBM's way. Mar 23 02:34:19 we'll follow the standard ;) Mar 23 02:34:20 Some parts of the PPP code are way to nested and complicated. I started fixing them. However this way at least we have a record of the changes. Mar 23 02:36:23 holtmann: Nod, the nested ifs are something we need to unteach everyone, I see it from lots of people :P Mar 23 02:37:02 again, we'd better to have a guideline for code style. Mar 23 02:37:25 you cann't keep this secret in your mind.;-) Mar 23 02:37:57 Not a secret when every bloody file does it this way :P Mar 23 02:38:31 how about create a wiki page in some place? Mar 23 02:38:49 If I find some time, I write a presentation with the bad examples. Mar 23 02:38:50 i can draft that. won't take much time actually Mar 23 02:39:11 holtmann: Time to activate our wiki.ofono.org ;) Mar 23 02:39:25 This is not about spelling out the coding style. It is more about getting the nasty stuff the university teaches out of the system ;) Mar 23 02:39:35 It must be learn by examples. Mar 23 02:40:26 I suggest we do put it up in a wiki too though Mar 23 02:40:34 zhenhua: However I am more than happy if you start with such a document. Also I don't want a wiki page. I want a simple text documentation inside the source tree itself. Mar 23 02:40:59 Lets have everything next to the code instead of asking people to go to a website ;) Mar 23 02:41:20 The doc in the code should also be there Mar 23 02:41:26 zhenhua: The the code should now compile again on a 32-bit system. If you find more issues, let me know. I will fix them. Mar 23 02:41:27 okay Mar 23 02:41:41 Do all three :) Mar 23 02:41:58 Maybe that will reach enough people :) Mar 23 02:42:00 holtmann: thanks. and will draft a doc inside ofono/doc. Mar 23 02:42:30 denkenz: The reason why I want text files is that we can easily publish them as HTML or on wiki. Mar 23 02:44:08 holtmann: will we support doxygen in the future? Mar 23 02:44:45 I prefer gtkdoc since it creates nice HTML pages and can create devhelp docs. Mar 23 02:44:58 However gtkdoc itself is a pretty ugly perl script. Mar 23 02:45:32 For all of you who haven't installed it, install devhelp and the glib and dbus docs packages. Then you can search the API docs offline as well. Mar 23 02:46:01 But then again, I am maybe the only person that sits in an airplane and needs access to API, because of no Internet ;) Mar 23 02:49:16 heh, let me dig out some details gtkdoc later. ;-) **** ENDING LOGGING AT Tue Mar 23 02:59:57 2010