Brandon Pedersen
Forum Replies Created
-
AuthorPosts
-
Brandon PedersenParticipant
I realized this could have possibly been because I installed a newer version of berkeley db…not really sure but I just edited the recipe and commented out the section where it adds that user to the sasl db…not sure what that is for anyway.
Brandon PedersenParticipantOK, looks like it was our fault. We had the unit connected to a power supply that would reset itself when it detected the LAN link go down…this was left over from an old setup and just swapped that out and we are fine…sorry for the false alarm 🙂
Brandon PedersenParticipantThe bad part about this is the unit is installed at a remote location so I can’t access the debug port. I can’t turn off the ppp link because I would lose remote access. The ppp link is up all the time and when my program is running it is heavily used, but I have turned my program off and it still resets. I just received another unit at home and I will see if I can reproduce it on this unit as well.
Brandon PedersenParticipanttraacerlinkd is my custom python service. The process didn’t crash, I had it running for at least 24 hours (constantly pumping data) and it ran just fine. I am not sure when these messages started showing in the log, I have made several changes to the program, using different libraries…and also switching to 2.0.2 from 1.1.1. I just happened to check the log after all these changes to make sure no under-the-cover errors were happening and saw this. I guess I will need to figure out which library is causing this.
Right now I know I am using 2 modules that have C bindings which I suspect are probably causing this. One is the pybsddb (Berkeley DB) bindings from here http://www.jcea.es/programacion/pybsddb.htm (the built-in version that ships with Python doesn’t work since Berkeley DB on 2.0.2 is 5.x). The other is some Qpid messaging bindings (http://qpid.apache.org) that are generated using Swig.
If I happen to figure out which component is causing these messages, is there anything I can do to fix it? I am comfortable creating patches and everything but I am not too familiar with the low-level C stuff and wouldn’t know what to look for in the code.
I was also looking at a document here http://netwinder.osuosl.org/users/b/brianbr/public_html/alignment.html that says there should be an option that tells the kernel to fix the alignment but not log the message but not sure how to do that, any ideas?
Brandon PedersenParticipantOK, I did get it to work…not sure what happened but my change to the defconfig wasn’t there (in the source defconfig, and in the built version)…went back and added it back in and now it is working
thanks
Brandon PedersenParticipantOK, I created a swap partition on the sd card and tried using it but I get:
# swapon /dev/mmcblk0p2
swapon: /dev/mmcblk0p2: Function not implemented
It appears swap functionality is not enabled in the kernel. So I edited openembedded/recipes/linux/linux-2.6.32/mtcdp/defconfig and added:
CONFIG_SWAP=y
I then did ‘bitbake linux’ (after upping the revision number) and the built my image. After flashing I get the same error message though. I think I missed a step somewhere…how do I pick up changes to the kernel config and re-build it?
Brandon PedersenParticipantThat is a good question 🙂 I realized after posting this that I actually don’t really need to format it during the upgrade since I will just do it once and it will be done. I was just thinking in terms of deployment, it would be easier to just do the flash and be done with it rather than logging it, formatting it, and then upgrading, but you are right I don’t want to re-format it during every upgrade after that.
Brandon PedersenParticipantOK, so I think I have it working well enough. I created a watchdog script and added it to cron and with my addition to the gsm connect script I think it will work OK.
You are right about the generated data, I just set it to run once every 10 minutes and only does a one byte ping so it shouldn’t be too bad.
Brandon PedersenParticipantI forgot to mention, I modified the gsm script on the connect line to add echo ‘AT!RESET’ > /dev/ttyUSB4, so:
connect ‘echo “AT!RESET” > /dev/ttyUSB4; /usr/sbin/chat -v -t 90 -f /etc/ppp/peers/gsm_chat’
And that appears to help my original situation, but I am still worried that if for some reason the remote peer doesn’t respond properly the connection will fail and I will have no way of communicating with the device…maybe I should go with your suggestion from the other post and create a ppp connection watchdog script and setup cron to run that.
Brandon PedersenParticipantUgh, this is driving me nuts!
Yes, this behavior is consistent. I am not sure if there is a difference if I wait longer….I may have waited at most 5 minutes between trying to reconnect like this, maybe…I will try to wait for longer and see if that helps.
I forgot about the mts-io stuff, I was just referring to ppp releasing the modem.
I tried to reset the radio by doing echo 0 > /sys/devices/platform/mtcdp/radio-reset and then fired up the connection but then I got some error during the chat script trying to connect, I may have needed to wait a little longer there.
Maybe there is something wrong with the chat script…I didn’t change it much from the default, just changed the APN.
I just want to get a reliable connection running that will always be started when the device boots and will automatically retry if there is a failure. I tried adding the ‘persist’ option to the gsm script but if the modem didn’t get hung up or reset properly or if there was some other error connecting it doesn’t retry and leaves ppp hanging around doing nothing.
Brandon PedersenParticipantFYI, if anyone runs into this, I created a classes folder inside the user-collection folder, copied the update-rc.d.bbclass, into there and renamed it, modifed the DEPENDS and RDEPENDS lines to use += (remove the _append parts) and inherited that class instead. Also had to modify env-oe.sh to add the user-collection folder to BBPATH so that the bbclass file is picked up.
Brandon PedersenParticipantLooks like you include statement might be wrong. You are including “modbus/modbus.h” but your recipe copies modbus.h to the working directory so the include should just be “modbus.h”
September 27, 2011 at 4:14 am in reply to: Request for suggestion regarding Modbus Communication #3347Brandon PedersenParticipantSorry, I don’t really do too much C programming so including the library in your code is up to you. I would just develop it locally on your machine including the libraries as needed. Then make sure you are using automake tools to build your project, then you can create a really simple recipe for building your code on the platform as outlined here: http://www.multitech.net/developer/products/cellular-development-platform/development/writing-bitbake-recipes/
To make your recipe complete you will need to add DEPENDS += ” libmodbus ” to the recipe to ensure libmodbus is compiled prior to building your code and when you install your code on the CDP it will automatically require the libmodbus package to be installed as well.
If you just want to quickly install libmodbus on your CDP then after you have built libmodbus (or any new package), follow the steps outlined on this page to grab the package from your development machine: http://www.multitech.net/developer/products/cellular-development-platform/development/setting-up-a-package-feed/
The only thing I would change in that link is the yellow section, you don’t need to include the package in an image and build it, you can simply run ‘bitbake package-index’ and it will update the available packages
Brandon PedersenParticipantFor the next release, as a community member I would appreciate seeing as much of the development as possible in the open — in the public repository. I don’t see much happening at present on git.multitech.net.
I agree, that would be nice…I was weary of development on this platform going stale. Good to hear it is still being worked on.
September 16, 2011 at 1:12 am in reply to: Request for suggestion regarding Modbus Communication #3344Brandon PedersenParticipantThe checksum error does not have to do with libmodbus. It has to do with the recipe. The latest version of bitbake handles checksums in the recipe differently than what we use for core CDP.
Modify the recipe and on the SRC_URI line add “;name=libmodbus” so the line will look like:
SRC_URI = “http://github.com/downloads/stephane/libmodbus/libmodbus-${PV}.tar.gz;name=libmodbus”
On the lines like SRC_URI[md5sum] = “…” change it to SRC_URI[libmodbus.md5sum] = “…”. Do this for both the md5sum and the sha256sum.
Hope that helps
Brandon PedersenParticipantThanks for that…although it doesn’t quite work. I had another look at the command line options and it should actually be this:
mts-id-eeprom –in-file /sys/devices/platform/i2c-gpio/i2c-0/0-0056/eeprom
Although, I think I will probably just use python and use struct to read out the bits I need like the c code for mts-id-eeprom does.
Brandon PedersenParticipantAwesome, that worked, thank you!
Brandon PedersenParticipantOh!!! I get what you were saying now….OK I will give that a shot tonight…just misread what you wrote before
Brandon PedersenParticipantSo this feature is in bitbake, not openembedded so your cdp tree doesn’t affect this
Bitbake 1.10.1 (from release notes, this is the version of bitbake required) does not include this feature….it may be in the recipe but it does not work. I have tried this by adding:
SRC_URI[md5sum] = “xxxx”
SRC_URI[sha256sum] = “xxxx”
to my recipes but still got errors saying there is no checksum defined.
The patch/commit that added this functionality is here http://cgit.openembedded.org/cgit.cgi/bitbake/commit/?id=ce6071c64dd98aada6649fa7811fdc6f92b6f654
This commit was added to bitbake version 1.11.0 but since we are using 1.10.1, it is not possible to do this…this is why I am wondering if a newer version, like the latest 1.13.2 version would work OK
-
AuthorPosts