Jesse Gilles
Forum Replies Created
-
AuthorPosts
-
Jesse GillesBlocked
If you haven’t already, try connecting the debug serial cable and logging the output. This will show any messages from the kernel and any other messages that go to the system console.
Does the unit behave this way if you don’t have the PPP link up? When you do have the link up, is it being used heavily or is it mostly idle?
Thanks,
Jesse
Jesse GillesBlockedThere is bluetooth support available in the kernel, but it is not compiled by default. The kernel config needs to be modified to build it.
For CoreCDP 2, this is located at:
multitech/recipes/linux/linux-2.6.35/mtcdp/defconfig
Then user libraries/apps are needed. See the “bluez” recipes available in openembedded/recipes. Note that bluetooth support has not been tested yet at this point by Multi-Tech.
Jesse
Jesse GillesBlockeddo_compile () {
${CC} ${CFLAGS}${LDFLAGS} hellobrother.c -o hellobrother
}
You’re missing a space between CFLAGS and LDFLAGS on your compile line. It’s mashing the options together that get passed to gcc.
Jesse GillesBlocked> is the correct way to read this data cat /dev/ttyS3?
You should be able to read data that way, yes. You can also use ‘microcom’ — it usually works better and it is better for doing serial-specific communication because you can set baud rate, etc. The GPS transmits at 9600 baud and microcom also defaults to 9600, so you should be able to run ‘microcom /dev/ttyS3’ and see the NMEA data coming out.
> is it correct that I need to run venus-gps as a daemon in order to read the data from /dev/ttyS3?
No, you don’t need to run venus-gps at all to read GPS data from the receiver. Just open /dev/ttyS3 at 9600 baud. If you’re having issues, I would try power cycling the unit, and then running ‘microcom /dev/ttyS3’ after it boots up. This should work or something is wrong. You only need to use venus-gps if you want to change settings on the GPS receiver or if you want to send the data to a TCP/UDP socket, etc. You should only have one program at a time reading data from /dev/ttyS3 — either venus-gps or microcom, or a piece of custom software, but not more than one.
> how can I programmatically determine whether the GPS is properly initialized and has a fix?
Once you can read data from /dev/ttyS3, you can decode the NMEA data to see if the receiver has a fix or not. There is a link to a NMEA document on the References page
http://www.multitech.net/developer/products/multiconnect-ocg/references/
General info on talking to the receiver:
http://www.multitech.net/developer/products/multiconnect-ocg/applications/venus-gps-receiver/
> how can I see if the GPS has a fix (e.g. via a LED?)
There is an LED on the GPS board that shows when it has a fix, but you have to remove the case to see it. You’ll be able to see which board it is by looking at where the GPS antenna cable is connected. The LED flashes when it has a fix and it’s solid when it does not.
Jesse GillesBlockedAh, yes, it looks like php is being compiled with sqlite3 support, just not the PDO extension. Sorry for the confusion from my previous posts. You should be able to use the sqlite3 specific extension, just not the generic PDO extension.
http://php.net/manual/en/book.sqlite3.php
Jesse
Jesse GillesBlockedHow frequently are you seeing the trap warning? I see the timestamps are close together…how many msgs per second? Also, does it do this the entire time the program is running or just once in a while?
Jesse GillesBlockedIf the alignment warnings don’t end up causing any issues, which they may not, you can disable the warning as such:
echo 2 > /proc/cpu/alignment
Here is more info on the setting
http://www.kernel.org/doc/Documentation/arm/mem_alignment
Fixing the alignment issue yourself may or may not be simple, but if you’re not too familiar with C debugging, it will be more difficult. It’s probably easier to report the issue to the project authors. Let me know if you narrow it down.
Jesse GillesBlockedWhat is “traacerlinkd”? I can’t find any reference to it anywhere.
The log messages means that the kernel detected a mis-aligned memory access by that particular process and it tries to fix it if possible. If the process doesn’t crash then it may not cause any noticeable problems, but it is generally indicative of an alignment bug.
Jesse GillesBlockedThe php recipe is on git.multitech.net. There may be some compatibility issues with using that recipe with CoreCDP 1.x, yes — this is due to changes in OpenEmbedded and Bitbake. You are free to try it out and see what happens.
To try compiling with sqlite, you would have to add sqlite to the DEPENDS variable and edit the EXTRA_OECONF to build with sqlite instead of without. This might take some research and you’ll need to be familiar with configuring and compiling php to get it working.
I may try to expand the recipe to add sqlite support in the future if I have time, but this would only get tested against CoreCDP 2.x.
Jesse GillesBlockedAlso, php isn’t compiled with sqlite support by default — the recipe would need to be modified to change that and see if it builds.
Jesse GillesBlockedCoreCDP 2.0.2 was just released and includes php 5.3.6. You could give that a try if you wish, but it is a major new release and you’ll have to rebuild everything in a new directory.
Jesse GillesBlockedGood deal, glad you got it working.
Jesse GillesBlockedI think the reason your “md5sum test” test didn’t work was because vi didn’t create an empty file on the MTCDP. When I try it, the file is 1 byte instead of 0 (on my Ubuntu box).
The md5sums should most definitely match or they aren’t the same 🙂
Jesse GillesBlockedUsing SCP is also reliable for doing file transfers. Or putting the SD card in a card reader attached to your PC.
Jesse GillesBlockedInput file is not page-aligned. Use the padding option.
Data was only partially written due to errorThat was the error returned from trying to flash from the SD card. There has to be something different between the two files. Did you compare sizes, checksums etc? Seems like the image file on the SD card is bad.
Jesse GillesBlockedHm, no that is odd. You’re certain it’s the same rootfs in both scenarios (check file size, checksum, etc)?
When you do the flashing from SD card, do you see any errors on the debug serial port?
Jesse GillesBlockedYou can do this, but the only reason really would be to save some space. You can select between the VMs on the fly when you run java on the device. Even if cacao is installed, zero is still the default VM when you run java. Run ‘java -help’ to see the list of options. You can run ‘java -zero’ or ‘java -cacao’.
Jesse GillesBlockedIt’s a little confusing, but a bitbake recipe can provide multiple packages. The nfs-utils recipe provides both the nfs-utils and the nfs-utils-client package. When you bitbake nfs-utils, it should give you an nfs-utils-client package in your deploy dir. Or, if you build a custom image, just add “nfs-utils-client” to IMAGE_INSTALL.
Jesse GillesBlockedThe default preference of 0.9.8m was just set by Angstrom+OpenEmbedded which CoreCDP is based on. Because it was the default, it was tested and verified to build and work. You are certainly welcome to try any newer OpenSSL release. Sometimes its as easy as copying an old recipe and updating the version number and SRC_URI — it just depends on the situation.
Jesse GillesBlockedIt is technically possible, but repartitioning the NAND flash requires changing the flash layout in the kernel, re-flashing the device with the new addresses, etc.
It would be much easier for you to do the same thing using the SD card. You can partition the SD card however you want and even use Linux filesystems (ext3) if you want. Then you can mount the partition(s) wherever on your unit or just use sub-directories in /media/card instead.
Is the reason for wanting a different partition so that you can prevent losing the information if the rootfs is flashed?
Jesse GillesBlockedHm, sounds like you did the right thing. If you modified defconfig, and then increased “PR” in the linux_2.6.32.bb and ran ‘bitbake linux’, it should have built a new kernel with your updated config.
The image should be at build/tmp/deploy/glibc/images/mtcdp/uImage-mtcdp.bin.
You can verify that your defconfig change took effect by looking in the work directory. Assuming you increased PR to ‘9’, it should be in
build/tmp/work/mtcdp-corecdp-linux-gnueabi/linux-2.6.32-r9
Jesse GillesBlocked🙂 Are you using ext3 instead of FAT for specific features (journalling, sym links, etc) or just preference? Just curious.
Jesse GillesBlockedYou can technically enable swapping, but I would definitely NOT do this with the root device (NAND flash). It will be very very slow and will wear out the flash part much faster.
You could investigate trying to use the SD card for this purpose. It will be much easier to setup and it should work just fine, but again, it will be slow (it’s no hard drive).
Jesse GillesBlockedNo — flashing the device using the SD card only flashes the NAND flash on the unit (kernel and root filesystem). It doesn’t ever change the SD card. The SD card formatting is completely up to the end user — it comes pre-formatted from the factory with a FAT partition on it. You can reformat it using the device itself or any Linux PC.
Out of curiosity, why would you want the SD card re-formatted as part of a flash upgrade?
Jesse GillesBlockedDid you install packages for a mysql server on the CDP?
You could also look at using sqlite3, it is much simpler, smaller and there is no server needed and hence no configuration. It has also been tested by Multi-Tech.
Jesse GillesBlockedDid you install the ‘nfs-utils-client’ package? Installing ‘nfs-utils’ doesn’t include it. Look for /sbin/mount.nfs
Jesse GillesBlockedYou need the package ‘nfs-utils-client’. Then you should be able to run:
mount -t nfs -o nfsvers=2 NFS_SERVER:NFS_PATH MNT_PATH
You can add the mount to /etc/fstab if you want it to mount on boot. The default kernel is only built with NFS v2 support, if you want to add v3 you can edit the kernel config and build a new kernel.
Jesse GillesBlockedDefinitely use the serial debug port — no, it won’t void your warranty. The port is there for development purposes and it is fully intended to be used by customers/developers.
The USB device port should also work to get a login terminal, but if you are using Windows, you need to install a driver for it. If you are using Linux, it should come up automatically as /dev/ttyACM0 (assuming you have no other CDC-ACM devices connected to your system).
Jesse GillesBlockedDoes this happen regardless of the time between the /etc/init.ppp stop and start…or does waiting for a while fix it? Just curious — I’m not sure why this is happening, it’s not something I’ve seen. Is it happening consistently?
When you refer to “resetting the modem”, are you actually resetting the modem by pulling the reset line using mts-io? Or are you just referring to ppp releasing the modem port when it’s done with it?
Jesse GillesBlockedRegarding watchdog, there is a hardware watchdog in the processor, but it is disabled by default. Enabling it requires a minor modification to the at91bootstrap code and passing the proper parameters to the linux watchdog driver (at91sam9_wdt). There is currently no support in the U-Boot version we are using the for the watchdog, however. This means anything done in U-Boot has to be done quickly before the watchdog resets (16 seconds by default).
If you are interested in this, I can provide more detailed information. The U-Boot lack of support is the biggest limitation currently. Hopefully this can be resolved in a future update.
Regarding ppp, you have two options that come to mind:
1. You can use ppp with the ‘persist’ option. This makes pppd try to keep the connection up even if it goes down periodically.
2. You can use ppp without the persist option and write your own script to act as a ppp watchdog. When the connection goes down, pppd will no longer be running. You could check for the existence of pppd and if it is down, reset the modem (if desired) and then start pppd again.
-
AuthorPosts