Jesse Gilles
Forum Replies Created
-
AuthorPosts
-
Jesse GillesBlocked
No, the only way to load code when the unit is in that state is to use SAM-BA with the serial debug port or the USB device port.
You don’t need to perform the resistor short though because there is no boot code in the NAND, so it the unit is staying in RomBOOT mode on its own.
Jesse
Jesse GillesBlockedHi Greg,
> If I flash the kernel but not the root filesystem, I won’t lose any of the files I have stored on the device, but if I flash the root filesystem I’ll lose any saved files, right?
Correct, flashing the linux kernel does not touch the root filesystem at all. If you flash the root filesystem, it will replace the entire filesystem, so any changes will be lost. If you need to store files and have them persist after flashing the root filesystem, they should either be put into your filesystem image, stored on the SD card, or if they are small, they can be stored in /var/config, which is a separate partition on the NAND flash.
> Is there any way to download a new file to the filesystem as part of the flashing process?
No, not as part of the flashing process itself. If you have an application/files that you want to be flashed in, you will need to write a bitbake recipe to package it and include in a custom image recipe. There are some basic examples on this site as to how to do that.
> Also, how much space is available in the root filesystem, if we’re not using an SD card?
The root filesystem partition is rather large, it’s about 230MB in total size. To see how much space is available, run ‘df -h’ on the unit and will print out the size and free space for all partitions.
> Does it depend on how much space is taken up by the kernel image, such that we’ll have less space in the root filesystem the more packages we include in the kernel?
No, the linux kernel image is stored in a separate partition in the flash. You will most likely not need to change anything with the kernel itself, unless you need to enable certain drivers that are not included by default or make custom patches. The linux kernel itself is only about 2MB.
Hope that helps,
JesseJesse GillesBlockedHi Greg,
Yes, both curl and libcurl are available in CoreCDP. If you are writing a C/C++ application, then libcurl is a good choice. We use it for development here at Multi-Tech and it works quite well.
Yes, you should be able to do it on the OCG-E. You will just need to build and link your application using the CoreCDP toolchain (see documentation on this site for toolchain location) and make sure you have a ppp connection dialed before making HTTP requests.
Jesse
Jesse GillesBlockedGlad to hear. I can add those modules to the sample images for future releases if they are required for Device::SerialPort to work.
Jesse
Jesse GillesBlockedYeah, I think extracting it in a case insensitive file system could definitely cause problems. Perhaps sticking with 10.04 on Parallels and extracting the tarball inside Linux is your next best step.
Jesse
Jesse GillesBlockedYou’re certainly running into more trouble than average. 🙂 It looks like you are doing everything right to me.
I have no idea why, but perhaps Parallels is causing some issues? Or extracting the tar on the Mac filesystem instead of in Linux.
We tested the build system on Ubuntu 10.04 on actual hardware and we’ve also tested it using Virtualbox on Windows and Linux host machines.
I guess I would suggest trying Virtualbox and downloading/extracting the tar inside the VM. Extract it to something with a shorter path like $HOME/corecdp-2.2.2.
Jesse
Jesse GillesBlockedIf you are building an image and flashing, then you would add the following to your image recipe:
IMAGE_INSTALL += "perl-module-fcntl"
If you want to just copy over the package and install it, it is likely built already. Bitbake can be confusing in that it separates the concept of recipes and packages and the behavior depends on how the recipes are written. One recipe can produce multiple packages that you can’t build directly but can be added to an image by name. So if you run
bitbake perl
it will produce all theperl-module-*
packages automatically and runningbitbake perl-module-fcntl
will give you an error. The only way that I have found to really know this information is to look at the recipes themselves to see what packages they produce.Since you already built perl, you should find the module packages in:
build/tmp/deploy/eglibc/ipk/armv5te/
Then you can scp over the .ipk file and use
opkg install
to install it on the device.Jesse
Jesse GillesBlockedNot exactly sure what would cause that…did you install all the needed ubuntu packages?
If not, from the top of your corecdp directory, you can run the following:
sudo ./multitech/contrib/install-deps/install-debian-ubuntu-deps.sh
Then rm -rf build/tmp and try again.
Jesse
Jesse GillesBlockedIt looks like the fcntl perl module isn’t installed in the image. Try adding “perl-module-fcntl” to your image and re-flashing or copy over the package built by bitbake and install it with opkg.
If you want to see what other perl module packages are available, look at the recipes in openembedded/recipes/perl. You can add all available perl modules by adding “perl-modules” to your image, though this will increase the size of your image, so it may be better to add them on an as-needed basis.
Jesse
November 4, 2013 at 3:46 pm in reply to: bitbake gdbserver fails — Patch kill_arm_map_symbols.patch does not apply #4750Jesse GillesBlockedAh, have you updated any of the .inc files as well? They must have changed more than just the tarball name apparently.
November 4, 2013 at 10:33 am in reply to: bitbake gdbserver fails — Patch kill_arm_map_symbols.patch does not apply #4747Jesse GillesBlockedIt looks like the gdb 7.2a tarball still unpacks to a ‘gdb-7.2’ subdirectory, so the recipe probably can’t find the unpacked source code because it is expecting it to be named ‘gdb-7.2a’.
Try putting the following in your gdbserver_7.2a.bb recipe (and any others):
S = "${WORKDIR}/gdb-7.2"
Jesse
Jesse GillesBlockedHi Istvan,
The serial port is generally used for doing Serial to IP communication — it can pass data between the serial port and a TCP/UDP socket that you configure.
To access the radio from a PC, there is a feature labeled “Telnet Radio Access”. If you turn this on, you can make a telnet/socket connection to the MTR and it will allow you to communicate directly with the radio.
If you do need to use the serial port to access the radio, you can combine the two features and configure the Serial-IP feature to connect to the IP and port for the Telnet Radio Access feature.
Jesse
Jesse GillesBlockedWhoops — “pppd call cdma” is correct, not “dial”. Setting the port should not be necessary since the default port is set correctly for the radio type via udev rules.
Jesse
Jesse GillesBlockedThere should be a peers file named “cdma” that is already in the default image. It will likely work without any modifications. Try:
pppd dial cdma
Jesse
Jesse GillesBlockedHi guys,
There will be a CoreCDP release coming that will support 12.04 LTS, but I don’t have a release date to share yet. I would recommend sticking with 10.04 LTS until it gets released.
You won’t ever lose complete access to the Ubuntu package archives for 10.04 — they move them to another server eventually and you can just change your APT sources. The desktop expiration just means you lose security updates for the desktop packages. You are certainly free to build on 10.04 Server if it makes you more comfortable from a security standpoint.
Jesse
Jesse GillesBlockedThese issues come up sometimes because the original source download gets repackaged and uploaded, causing the checksum to mismatch. Building from the tarball avoids these types of download issues because the tarball includes all source downloads needed in the “sources” subdir.
Also, the tarball includes a copy of the git repository.
Jesse
Jesse GillesBlockedYou can wipe all files in /var/config and then it will put everything back to defaults after reboot. It will still ensure that the files it is managing are links to files in /var/config.
rm -rf /var/config/*
rebootJuly 22, 2013 at 12:53 pm in reply to: OCG overwriting changes in /etc/ppp/options upon reboot #4592Jesse GillesBlockedPhil,
Are you possibly removing /etc/ppp/options and recreating it? It is normally a soft link to /var/config/ppp/options. The start up scripts will check that /etc/ppp/options is a link to /var/config and if it isn’t, it will remove it and relink to /var/config. This is done so that PPP settings (and user/password, network settings) can be preserved when flashing the root filesystem.
Jesse
Jesse GillesBlockedHi Mike,
The USB device port on the OCG acts as a serial COM port by default (using USB gadget). It is available on the OCG side as /dev/ttyGS0 — by default the firmware runs a getty (login terminal) on it. If you disable the getty terminal, then you can have your software use /dev/ttyGS0 on the OCG and it will show up as serial port on the attached PC.
Read the “Accessing Hardware Interfaces” page for your device, and you should find a section called USB Device.
Jesse
Jesse GillesBlockedStore location “ME” is the default, but doesn’t work for all radios. For the H5, try changing the “ME” locations to “SM”.
Regarding the port, you can use either — if you want a ppp link up at the same time, then you just have to make sure you’re not using the same port for both purposes.
Jesse GillesBlockedIf you are fine with asynchronous writes, then you can check the mount options and make sure that the “sync” option is not set.
Jesse
Jesse GillesBlockedMulti-Tech doesn’t provide any video display hardware and the OCG has not been tested with any video display.
You would need to source a 3rd party external component that has an interface supported by the OCG hardware (USB most likely), make sure there is linux driver support for it, and then develop and test your solution.
Jesse GillesBlockedCoreCDP has Qt recipes available, so you can certainly run Qt apps on your OCG. There is no built-in video output device though, so you would have to add external hardware for doing that.
Jesse GillesBlocked> Sorry I was not specific enough. Late Night. I am using 3 pin debug Cable to connect to the unit. I am also using USB to serial to make the connection.
To flash the kernel and rootfs via u-boot, you need to have an Ethernet connection to a TFTP server that is hosting the files. You do need the 3-pin debug connection to control u-boot and initiate the flashing, but the file transfer of occurs over TFTP and Ethernet.
Jesse GillesBlockedmacb0: Starting autonegotiation…
macb0: Autonegotiation timed out (status=0x7849)
macb0: link down (status: 0x7849)
If the autonegotiation is timing out, then no Ethernet link is being detected at all.
Perhaps a bad Ethernet cable? If the unit is properly connected to an Ethernet switch, it should get a successful link, regardless of any other settings.
Jesse GillesBlockedYou can perform a hardware reset of the modem using the mts-io module.
This page has the documentation links per model:
http://www.multitech.net/developer/products/multiconnect-ocg/applications/mts-io/
The command you want is:
mts-io-sysfs store radio-reset 0
Jesse GillesBlockedBecause the EV2 radio only has one port that accepts AT commands, you can’t have a PPP connection up and issue commands at the same time.
You could have a script that reads this information from the radio on boot and saves it for later use since the information is static. Then you can read the saved information later while the PPP link is active.
The only other option is the EEPROM, which Bryan mentioned.
Thanks,
Jesse
Jesse GillesBlockedI also just pushed a change to the git repository that includes this driver (and some others).
Jesse GillesBlockedThe MCS7830 driver isn’t built by default, but it is available.
To get it, you’ll need to edit the kernel config and enable the driver, then re-build and flash your unit.
Edit multitech/recipes/linux/linux-2.6.35/mtcdp/defconfig and change
# CONFIG_USB_NET_MCS7830 is not set
to
# CONFIG_USB_NET_MCS7830=m
Then to rebuild the kernel and build a new image:
bitbake linux -c clean
bitbake corecdp-full-image
OR
bitbake corecdp-base-imageJesse GillesBlockedIf you are running Ubuntu on your desktop, there is a nice helper program you can run:
ssh-copy-id root@192.168.2.1
Assuming default IP address. That also assumes you already have a key generated.
If you aren’t using Ubuntu or another Linux distro that has ssh-copy-id, the public key goes in /home/root/.ssh/authorized_keys on the device.
Make sure the .ssh dir and the authorized_keys file are only accessible by the root user.
-
AuthorPosts