text:
Bill's Blog - Tag - micro2440 2011-06-06T18:30:39+01:00 Bill urn:md5:80a7e1292443dde7677838edf317d46e Dotclear kernel panic - not syncing : VFS: unable to mount root FS on unknown-block urn:md5:d6cc5c965c0bf90da72612081ef30305 2010-06-07T23:05:00+02:00 2010-06-08T23:10:16+02:00 Bill boot from SDembeddedembedded linuxgentoojffs2kernellinuxmicro2440mini2440rootfsSD cardu-bootuboot
Been getting errors mounting your filesystems located on SD cards? Keep reading...

Please be sure to add a rootwait or bootdelay=3 to your bootargs

These allow the SD card to become available to the kernel. I've updated my posts to include this information.

I hope this solves some peoples problems.

Thanks, Bill
 Android on the Mini2440 urn:md5:ceb4ec89639239e964e9b4acdd2ec986 2010-04-02T15:50:00+02:00 2010-04-09T12:08:40+02:00 Bill androidmicro2440mini2440
I recently tried the Android image from developmentboard.net ....

I erased u-boot from the flash and installed supervivi-128 bootloader back on the board, and I uploaded the Android image and kernel. I don't know exactly how they compiled it or what they are thinking but I found it completely unusable.

As many of you know, I have the Micro2440 board with a 7 inch touch display. The Android image from developmentboard.net came with a kernel for the 7 inch display as well as the 3.5.

I assumed it would work pretty well. I don't think Android is a power hungry CPU intense OS, but when I booted it on the dev board, it was completely unusable. It was so slow that it would take almost 5 minutes before it would register that you tapped the screen.

I saw videos of Android running smoothly on a Mini2440 on youtube, and so I don't know exactly what someone did to the image on developmentbaord.net, but it doesn't work as it should. At least it didn't for me. If someone else has some better ideas or something, I'm open to suggestion.

My guess was that the NAND is just too slow on these boards and it was busy accessing it all the time. It's either that or the fact that the system doesn't have much RAM.

I've been considering Compiling Android myself from the mini2440 port, but I'm not sure that's usable yet. I was able to compile the full android source from the Android site but I don't think that will run on the board. Also, a filesystem would need to be assembled and I don't have a working knowledge yet of how Androids filesystem should look.

If someone out there has some really good detailed instructions for this, I'd really like to hear about it. Putting Android on the board would be a great start at making a really good embedded device. I think it looks better than most of the other OSes for embedded development.

UPDATE: Apr 9, 2010: Look at this link http://mini2440.spaceopera.org/site/developmentenviroment/stepbystep/index.html .. This guy shows how to get the Android image from Developmentboard.net to work from an SD card. And according to him, it's not slow at all. So there must be something else at play on my system when I attempt to run android on it. Please keep checking this guy's site. Looks promising if you're in to learning about android.
 HOWTO: Bootstrapping Gentoo on the Mini2440 urn:md5:0cd4845b1195180a4b64d20586193113 2010-02-04T14:27:00+01:00 2010-06-08T23:33:11+02:00 Bill boot from SDcompileembeddedembedded linuxgentookernellinuxmicro2440mini2440portagerootfsSD cardu-boot
I've been working on getting Gentoo running on my Micro2440 for the past couple of days. I thought I'd share with you how I got it running.

The Gentoo team have been working on some basic stage 3 tarballs for Gentoo and have gotten them working pretty well in my opinion. I'm currently running a kernel I generated with OpenEmbedded and I'm using no initramfs or initrd. I'm simply booting the kernel and pointing to my SD card where the root is.

For this tutorial, I've followed my instructions here to get my Micro2440 to boot from the SD card.

Obtaining The Stage3 Tarball

Have a look here:

http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3/armv4tl-softfloat-linux-gnueabi/

This is where the ARMV4TL stage3 tarballs are located. Download the latest one and save it to your HD.

Preparing the SD Card

If you followed my directions above for booting from SD, your SD card should be in 3 partitions. Your rootfs partition should be /dev/mmcblk0p3 and should be empty.

Create an ext3 filesystem on the 3rd partition like so:

sparky: /> mkfs.ext3 /dev/mmcblk0p3

I would recommend an ext2 filesystem over ext3 for this, but my kernel currently doesn't support ext2. If you compile that in to yours, please use that instead. It's much less harsh on the NAND on your SD Card.

Now mount your SD card's 3rd partition and extract the stage3 tarball to it and umount it.

sparky: /> mount /dev/mmcblk0p3 /mnt sparky: /> tar xzvfop /path/to/downloaded/stage3.tar.gz -C /mnt ... ... sparky: /> umount /dev/mmcblk0p3

Be sure to use the "p" command line option with tar to preserve permissions when extracting the tarball.

Now your SD card is setup. Again this assumes you followed my directions from the SD boot HOWTO and have a kernel on /dev/mmcblk0p2 ... if not, make sure you put your uImage there.

Configuring U-Boot bootargs

You'll need to temporarily modify your bootargs. So on your mini2440 or micro2440 at the u-boot prompt do this:

MINI2440# setenv bootargs console=ttySAC0,115200 mini2440=1tb init=/bin/bash \ rootfstype=ext3 root=/dev/mmcblk0p3 rw rootwait MINI2440# saveenv

Now boot your device with the SD card in the slot and assuming it works as it should, you should see a bash prompt on your display or console. PLease make sure you've added a rootwait at the end otherwise the kernel might boot and try to find the SD card before the device is visible to the kernel.

Changing The Root Password

You needed to pass the init option to the kernel because the stage3 tarball password is unknown so you need to change it. Now that you're at the prompt you can issue the command to change the passwword.

bash (unknown)# passwd root

Now you can remove the init option from the bootargs in U-Boot.

Configuring Your Network

The gentoo stage3 tarball, for whatever reason, doesn't include a dhcp client so you'll need to configure your network manually.

localhost.unknown.domain: ~/> export IP_ADDR=192.168.1.50 localhost.unknown.domain: ~/> export BROADCAST=192.168.1.255 localhost.unknown.domain: ~/> export NETMASK=255.255.255.0 localhost.unknown.domain: ~/> export GATEWAY=192.168.1.1 localhost.unknown.domain: ~/> export DNS1=192.168.1.1 localhost.unknown.domain: ~/> export DNS2=192.168.1.2 localhost.unknown.domain: ~/> ifconfig eth0 $(IP_ADDR) broadcast $(BROADCAST) netmask $(NETMASK) up localhost.unknown.domain: ~/> route add default gw $(GATEWAY) localhost.unknown.domain: ~/> echo nameserver $(DNS1) > /etc/resolv.conf localhost.unknown.domain: ~/> echo nameserver $(DNS2) >> /etc/resolv.conf

The above sets the IP, broadcast IP, netmask, Gateway and DNS servers as variables, and then runs ifconfig to setup the interface and route to add the route to the gateway. We then create a resolv.conf so you access the nameserver. Change the above to match whatever your network configuration is.

Syncing Portage

Now that your network is setup and you can access the net (try pinging google). Now you can sync up portage. This will take probably an hour or more.

localhost.unknown.domain: ~/> emerge --sync ... ...

By the time your 4 year old has graduated college and you're old and gray, this should be done.

Recommended First Emerges

I recommend emerging Dropbear SSH server and dhcpcd before doing anything else. When you emerge dropbear, be sure to run:

rc-update add dropbear default

This will ensure that dropbear starts during your next boot. Dhcpcd doesnt need any special configuration unless you plan to use wireless or some other stuff. By default, if eth0 isn't configured, it'll try to run whatever dhcp client is available.

++Final Thoughts++

This is a proof of concept situation. Running Gentoo on this very very slow device isn't seriously practical. Compiling anything at all, no matter how small, will takes forever. My advice would be that if you intend to do this, that you read about distcc and use another machine as the compiling machine over the network. But you'll need to read up on that yourself. That goes way way beyond the scope of this tutorial.

I hope this tutorial has helped you in some way. Please be sure to let me know of any successes or failures you might have and also if you have any suggestions for improving this. I'm always open to new ideas.

//Bill Sargent

Questions? Comments? Please visit my forum here and ask.
 HOWTO: Booting from SD card using U-Boot urn:md5:6ac329ba8666d47ee9c7824c6dfc2b08 2010-01-30T00:34:00+01:00 2010-06-08T23:34:37+02:00 Bill boot from SDcompileembeddedembedded linuxkernellinuxmicro2440mini2440openembeddedrootfsSD cardu-boot
Many many people want to know how to boot their Mini2440 or Micro2440 off of an SD card and I'm going to show you how.

For this to work, you'll need to make sure you have U-Boot up and running on your device and that when you have an SD card in the slot, and type mmc, it recognizes your card. If not, you'll need to upgrade your u-boot to the latest. You can follow my directions here to compile and flash u-boot to your device.

I'm using an 8GB SD card. I think they're pretty affordable these days to use 8 and 16GB cards. I don't see any reason to go smaller. But thats up to you. Depending on what you need, 2 and 4 might be ok

SD Card Partition Scheme

For this to work, you'll need to partition your SD card in to 3 partitions.

Partition 1: Swap Space 512MB

Partition 2: Boot Partition 20MB

Partition 3: Root Filesystem - The remainder of the free space

Since your device only has 64MB RAM, having a decent size swap partition is a good idea.

SD Card File Systems

You'll need to create file systems as follows.

Run mkswap on /dev/mmcblk0p1

Run mkfs.ext2fs on /dev/mmcblk0p2

Run mkfs.ext3fs on /dev/mmcblk0p3

Mount partitions 2 and 3 somewhere separate.

Copying uImage and and Untarring the Rootfs to the SD card

Now assuming you've successfully created a uImage kernel, and you've got a tar.gz'd root filesystem created by OpenEmbedded, you're ready for the next step. Otherwise read my entry here on getting started with OpenEmbedded.

In your openembedded build directory, theres a deploy directory called tmp/deploy/glibc/images/mini2440/ which contains your jffs images, targz images and whatever other format you asked openembedded to make in its configuration. Change to that directory now.

Copy whichever uImage you want from the above mentioned directory to where you mounted partition 2 (Your boot partition on the SD card). Rename it to uImage for making this easier.

Now while still in your images directory inside your openembedded build directory, run the following command to untar and ungzip one of the root filesystems to your SD cards ext3 partition (Partition 3)

sparky> $ tar xzvfo xorg-image-rootfs.tar.gz -C /path/to/mounted /sd/card/rootfs/partition

You should now be able to unmount both partitions.

Your SD card is finished and it's time to move on to configuring U-Boot....

Configuring U-Boot to boot the kernel and rootfs from SD Card

These are the bootarg and bootcmd environment variables you need to set on your Mini2440 or Micro2440.

MINI2440# setenv bootcmd mmcinit \; ext2load mmc 0:2 0x31000000 uImage \; bootm 0x31000000 MINI2440# saveenv

What this does is tells U-Boot to first initialize the sd card reader, use the ext2load command to load from SD card 0, Partition 2 (the boot partition) the file uImage and store it at memory location 0x31000000, and then to finally use bootm to boot from memory location 0x31000000.

Now we need to set the bootargs variable.

MINI2440# setenv bootargs console=ttySAC0,115200 mini2440=1tb \ rootfstype=ext3 root=/dev/mmcblk0p3 rw rootwait MINI2440# saveenv

This tells u-boot to pass these options on to the kernel. Most importantly here is that your root device is partition 3 on the SD card, and that your filesystem time is ext3.

UPDATE: Please make sure you've added a rootwait or bootdelay=3 to the end of your bootargs. This allows the kernel to wait for the SD card to become available/visible to the kernel.

Conclusion

That's basically it. I've read where some people needed a bootdelay on the bootargs for the kernel. I've not needed that. I followed my own instructions above and created a bootable system today so I know this works. At least for me. I'm happy to listen to anyone's success stories.

I know these HOWTOs are a bit sloppy, but the commands are all here with a little explanation in plain english as to why you're doing this. I hope it helps. Please let me know of any corrections or if you see me doing anything extremely stupid. I'm still quite new to this.

//Bill Sargent

Questions? comments? Need help? Go to my forum here, and ask.
 HOWTO: Getting Started With OpenEmbedded urn:md5:f42b5cda415003c6422445e2b303678c 2010-01-26T14:50:00+01:00 2010-06-08T23:35:33+02:00 Bill bitbakecompiledebianjffs2kernellinuxmicro2440mini2440openembeddedu-bootubuntu
This not so small tutorial is designed to give you a starting point for building root filesystems for your Micro2440 and Mini2440 boards using the OpenEmbedded development "kit". I've discussed this some in previous entries on the blog, but I think it's time I show you how to do it for yourself.

My recommendation for a host distribution for this is Debian Lenny 32bit And that i will be assuming you have it installed and working. Currently I'm testing Ubuntu 32 and 64bit, and will begin testing 64bit Debian again. I'd like to say first though, that one big problem I have with Debian at the moment is its lack of modern packages. Debian is still not up to date with Python. Openembedded makes use of Python 2.6.4, and it will build it for you and for the most part, use it, BUT if your Debian Python and the openembedded Python don't match versions, I have personally noticed problems. Whether it's really that which is the problem I don't know. Someone with greater knowledge will have to debate that. But this tutorial will prime you on the proper way to work with openembedded and the results SHOULD produce working filesystems and kernels. If they don't, it isn't because this tutorial is wrong, it's very likely something else. Please be sure to read all the logs and try to set your scrollback buffer to very very large.

First you'll need to obtain your OpenEmbedded files. Please have the following tools:

git =>126.96.36.199

bitbake =>1.8.18

bison

flex

e2fsprogs

m4

curl

ncurses libraries and development headers

zlib development libraries and headers

cvs

subversion

unzip

bzip2 and its development libraries and headers

And anything else that bitbake tells you to install when you first run it.

Obtaining Openembedded:

sparky:~ mkdir oe ; cd oe sparky:~/oe$ git clone git://repo.or.cz/openembedded/mini2440.git

Grab a cup of coffee. For me here in Sweden, this takes ages to download. Once it has finished, you'll have a directory called mini2440.

Now create a build directory and a sources directory. The build directory is where you'll always need to be to create your packages and filesystems. The sources directory is where bitbake downloads all the source tarballs etc.

sparky:~/oe$ mkdir build sparky:~/oe$ mkdir sources

Now we need to copy the sample configuration file to it's location.

sparky:~/oe$ mkdir build/conf sparky:~/oe$ cp mini2440/mini2440_local_conf_example.conf build/conf/local.conf

Next, we need to edit the configuration file you just copied and renamed. The new file is inside your build directory in a directory called conf. Edit local.conf from there and be sure you edit the following variables.

DL_DIR

BBFILES

Modify those so that the paths are correct. The DL_DIR should point to your sources directory you just created. BBFILES should point to your mini2440 directory that was created when you downloaded openembedded with Git. Just modify that one so that it's path is correct. Don't remove the tailing part.

You'll also need to remove the last line of the config file that says

# REMOVE_THIS_LINE....

Thats basically a failsafe for any idiot who tries to do this without even looking at the config file. Make sure you read the entire config file and there are a few options in there you can tweak once you know what you're doing.

The next step is to set an environment variable called BBPATH like so.

sparky:~/oe$ export BBPATH=/path/to/openembedded:/path/to/build/directory

If you're running Ubuntu, you'll need to reconfigure /bin/sh to point to /bin/bash...

sudo dpkg-reconfigure dash

Choose NO when the menu pops up. (Updated March 6, 2010)

Now you're ready to begin building. PLace yourself inside the build directory and begin by building the base tools needed for everything.

sparky:~/oe/build$ bitbake -v task-base

This will run on forever and ever and ever building things. You might as well go have dinner and watch a movie or two.

When It's done. You'll have for the most part, all the basic cross compilers, libraries and things needed to begin building images or individual packages. I suggest starting with the console-image recipe.

sparky:~/oe/build$ bitbake -v console-image

Assuming this went ok, you should now have images in the tmp/deploy/glibc/images/mini2440 directory. You'll have a uImage which is your kernel and you'll have a console-image.jffs2 that you can flash to your Micro2440 or Mini2440 board.

I'd like to remind you, that if you have a Micro2440 board with 128MB NAND, you will need to modify Openembedded a little so that it creates images for the correct Eraseblock size and page file size for your board.

You can do that by editing the file mini2440/conf/machine/mini2440.conf and find the line at the end starting with EXTRA_IMAGECMD_jffs2 and change the 0x200 in it to 0x800, and change the 16KiB to 128KiB.

Another thing I'd like to mention is that all of the above assumes that your host distribution has all the required development libraries and whatnot installed. If you get errors, you'll need to examine your scroll back and try to find exactly what the error was. Usually this will tell you if you're missing something such as zlib or unzip or whatever it might be. Also problems during compiling can be from version differences in different distributions, as well as just plain old broken ass packages in Openembedded. I'd be glad to try to help anyone who has problems.

Please respond to this entry and let me know if you've succeeded or not. I'd love to hear that I've helped at least one person ;)

As a final note: If you're experiencing problems compiling binutils-cross with errors about yylex undefined, it's because bison isn't installed. And you should have flex installed as well.

If you have any questions, or need help, please visit my forum and ask for help!
 Finally Getting Somewhere with OE and U-Boot urn:md5:fa078546e77724fd29778c0212ec83e1 2010-01-20T14:48:00+01:00 2010-02-15T12:45:23+01:00 Bill bitbakecompilejffs2kernellinuxmicro2440mini2440openembeddedrootfsu-boot
After what seems like forever, trying to resolve a problem getting consistently working images and kernels, I've finally figured out the problem.

The problem was with me not reading directions properly. But I'm not all to blame, you assume certain things sometimes that should in all rights, be ok to assume, but end up just being wrong.

I've learned as of writing this that the current Openembedded project doesn't work as is from their own website. You need a "special" version by the guy I mentioned in a previous post named buserror. Here are the links for his stuff...

http://bliterness.blogspot.com/ - His blog

http://code.google.com/p/mini2440/ ... - His Google code page.

http://repo.or.cz/w/openembedded/mi... - Git repository for the modified Openembedded

http://repo.or.cz/w/u-boot-openmoko... - Git repository for u-boot

You'll need to read over the blog, and google code pages thoroughly. It's full of information that's very very easy to overlook and isn't very well laid out. You'll have to use the openembedded from his git repo above otherwise you'll end up with weird stuff. The part above about me not being fully responsible for the failures I've had in making working images consistently, well my assumptions came from there being actual Mini2440 support in the main Openembedded project. So being new to this, I assumed that meant it worked and was tested. Obviously not. And again we come back to that same old thing of half written, half maintained, mostly broken crap that Linux consists of and how it just goes to prove that you get better software from commercial companies than from groups of people in open source projects where nobody seems to worth together smoothly to actually FINISH a product that works in the end.

You'll need to modify Buserror's code a little in openembedded. If you've looked at the tree layout for the real openembedded and the tree that is Buserror's.... They look different. I'm assuming this is an older version of Openembedded that he's based his mods on.

You'll need to edit:

base/conf/machine/mini2440.conf

and change the following line

EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --squash -s 0x200 -n -e 16KiB"

to this:

EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --squash -s 0x800 -n -e 128KiB"

This changes how the images are made with mkfs.jffs2 ... If you have a micro2440 SDK board with 128MB NAND, your erase block size is 128k and your sector size or page size is 2048bytes (2k, or 0x800 in hex)

Now you should be able to bitbake all you want. It should be known that it is very important that when you're using the NAND on your board, that your erase size and sector size are correct in the jffs2 image otherwise you'll end up with a screen full of errors, and your system won't boot. If your system does some how make it through the error and boot you could have dataloss, or it could take several minutes to get through those warnings and errors making your device slower. You must know your erase and sector size. U-Boot has a nifty command for helping with that.

In U-Boot type:

MINI2440 # nand info

And it'll report the sector size and the block size.

So, to summarize... you need to get most of your stuff from Buserror in order for things to work. He has a lot of work to do before it's perfect but he seems to be the only person actually smart enough and English speaking enough, to sit down and work on it. It's also a good idea to come back here often and check things. I'm trying really hard to keep everything I'm doing posted here so others who might be new to this type of thing, don't run in to the same problems I've had.
 HOWTO: Using U-Boot urn:md5:e24abeb52bced4091d9e89fa6f78a366 2010-01-17T17:35:00+01:00 2010-06-08T23:36:44+02:00 Bill jffs2kernelmicro2440mini2440rootfsSD cardu-boot
Well you finally have a working U-boot bootloader on your Mini2440 or Micro2440, well here are the instructions for actually flashing kernel images and root filesystems using it...

These instructions assume that you've got a working U-Boot and that you've managed to compile a kernel for U-Boot (uImage), and that you've created a jffs2 filesystem image for your device.

Loading your Kernel Image from the SD Reader:

Step 1: Initialize the SD reader on your device by issuing the mmc command.

MINI2440 # mmc trying to detect SD Card... Manufacturer: 0x03, OEM "SD" Product name: "SD08G", revision 8.0 Serial number: 4392543921 Manufacturing date: 7/2008 CRC: 0x6, b0 = 1 READ_BL_LEN=15, C_SIZE_MULT=0, C_SIZE=365 size = 0 SD Card detected RCA: 0xd555 type: SDHC MINI2440 #

Step 2: Load in to ram, the kernel image from the SD card using the fatload command.

MINI2440 # fatload mmc 0:1 0x32000000 uImage.bin reading uImage.bin

This loads the file uImage from the mmc (SD) Device 0, on parition 1 in to the ram at memory location 0x32000000 (6 zeros)

Step 3: Erase the kernel partition and write the kernel in memory to the kernel partition.

MINI2440# nand erase kernel Erasing....... MINI2440# nand write.e 0x32000000 kernel

This writes using ecc blocks ( the .e part) the kernel that's located in 0x32000000 to the kernel partition.

Loading your Root Filesystem Image from the SD Reader:

Step 1: Initialize the SD reader as we did in step 1 above.

Step 2: Use the fatload command as we did above to load your root filesystem image in to ram.

Step 3: Erase the rootfs partition and write the image you loaded in ram, to NAND.

MINI2440# nand erase rootfs MINI2440# nand write.jffs2 0x32000000 rootfs $(filesize)

This writes a jffs2 filesystem to the rootfs partition. For this command you need to pass the file size of the image in hex, but fortunately u-boot is some what smart here, and has provided us a variable that contains the file size of the last file transferred to ram. So you just use $(filesize) as the size at the end and it knows what to do.

Before you can boot this, you need to set some environment variables in U-Boot.

Setting the Environment Variables for booting

Step 1: Set the bootcmd variable to tell U-Boot what type of kernel image you have and what partition its on.

MINI2440# setenv bootcmd nboot.e kernel \; bootm MINI2440# saveenv

This tells u-boot to read the kernel using ecc blocks from the kernel partition and to use bootm as the type of image (uImage) and saves the environment variables.

Step 2: Set the bootargs variable to tell u-boot what to pass to the kernel command line.

MINI2440# setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=1tb rootwait MINI2440# saveenv

This tells u-boot to tell the kernel that you're booting from mtdblock3 (rootfs partition), your filesystem is jffs2, your console is ttySA0 at 115200 baud, and the last argument tells the kernel what size display you have. 1tb is for the 7" display, and 0tb is for the 3.5" display.

Now assuming everything worked as it should, you can reset your board and it should begin booting linux.

//Bill Sargent

Questions? Comments? Please visit my forum and ask!
 Openembedded and Bitbake Stupidity and Odd results from Openembedded urn:md5:225f9a172d4c6f6a565dd1e8f1fcca89 2010-01-17T17:10:00+01:00 2010-01-17T17:10:45+01:00 Bill bitbakeembeddedgnomelinuxmaemomicro2440mini2440openembeddedu-boot
If I live to be 100, I'll never understand why Linux programmers think the way they do...

Since obtaining my Micro2440 board, I've been using OpenEmbedded to create kernels and root filesystems for u-boot. I don't understand why there is a need for 5 million tiny files called recipes. I mean, I understand what they are trying to do, but having to load almost 8000 tiny files each time you go to build something is incredibly STUPID. It's the same with Portage in Gentoo. Zillions of tiny little files that have to be synced up when you update portage. It's crazy retard thinking. I personally don't like the idea of having millions of files like that on the system, but if I were to do something like that, I'd build a master index of them basically compiling them in to a large database that can be easily accessed and then when it needs updating, you run a program to rebuild that index.

For what I do, I don't have a need to rebuild that stupid cache and read all those files in each time I want to compile a single thing in to an ipkg file. I'm not modifying the the .bb recipes so theres no need. People who do that a lot, well they should have to manually rebuild a cache or index each time.

Bitbake is crap, however... So far Openembedded and Bitbake are the only things that have produced runnable images for me. My attempts to use Buildroot have so far failed with strange compiling errors and missing files. Now Openembedded is missing a lot of things too. Try building maemo, or a maemo image. Go ahead. The recipes are there, so you assume it will work, right? Nope. Missing packages. And nobody at all on the net seems to talk about it or care. Try building the Gnome task. More missing packages.

Without going off on a total rant, I just want to make it known that I'm not a total newbie to Linux. I've been using Linux since the early 90s. I've used it heavily in my business reselling servers and setting up web hosting. So I've been around the block when it comes to Linux. And it's been my experience over the years that most things that have anything to do with Linux are half done, mostly broken, and largely disappointing. You get your hopes up about something just to have a bunch of dimwitted teenage programmers who seem to run the Linux community, crush your hopes. And not being a C programmer myself, I can't fix or even contribute. It pains me!

I hope to soon write some documentation on here about Openembedded but currently I'm in a testing phase with it. I'm having some odd results. I can build a base console image and flash it and it works. But I can build the same image 2 or 3 times and try to flash it, and each time it'll either work or it wont. The problem centers around the root filesystem not being recognized. I get errors about Magic something or other not found at the right spot. I thought it was my eraseblock size and I corrected that (Which I will later document) in the openembedded code for the mini2440 since it's assuming we all have 512byte page size and 16k eraseblock (sector size as reported by u-boot). But it's still randomly working. My current attempt was to ditch 64bit Debian and move to i386 to see if that makes a difference. I know that GCC can be extremely fragile. But I'm also investigating the possibility that U-Boot could be the culprit as I'm also having trouble with kernels. Some kernels will work, some are being reported as Invalid format for bootm.

I'll be posting more here soon about my results.
 HOWTO: Compiling and Flashing U-Boot onto Mini2440 urn:md5:075511288ca55b861586eac2d55abfae 2010-01-16T13:41:00+01:00 2010-06-08T23:37:36+02:00 Bill compilemicro2440mini2440u-boot
The bootloader that comes factory installed on the Micro2440 and the Mini2440 board is called Supervivi. I don't personally like it. It has very limited support and requires a YAFFS filesystem for the root filesystem. So when I bought my board I began to immediately search out an alternative. The bootloader by choice, it seems, is a modified version of U-Boot with modifications for the Mini2440 board's hardware

The code is maintained by a guy named buserror. I'll provide his information at the end of this howto.

At the time of writing this, I had some issues with getting Buserror's U-Boot working correctly.

The code that is in his git repository, doesn't run from RAM without a modification to the source. So here are the instructions that I gathered for altering and compiling it, and getting it going on the Mini2440 and Micro2440 board.

For this to work, I'm going to assume that you have a crosscompiler set up. Later on, I will probably write an entry here about setting that up, but not now. I'm also assuming you have git installed.

Step 1: Get the source

mkdir uboot ; cd uboot git clone git://repo.or.cz/u-boot-openmoko/mini2440.git

Step 2: Set your cross compiler prefix so you don't end up compiling this for x86.

export CROSS_COMPILE=arm-none-linux-gnueabi-

Step 3: Modify the source to disable CONFIG_USE_IRQ. Open include/configs/mini2440.h.

#define USE_920T_MMU //#define CONFIG_USE_IRQ 1 /* Needed for USB device! */

Disabling this obviously disables the use of USB During boot. You can fix this by reflashing a normal copy of u-boot from within u-boot once this is up and running. In the above example, I commented it out but you can probably just change the 1 to a 0.

Step 4: Make and compile.

 cd ../../ make mini2440_config make

Assuming this all compiles correctly, you will have a u-boot.bin file in your directory now as well as a 2k and 16k block size bin file. Those two are for flashing inside of U-Boot. The normal .bin is for flashing from ram from within supervivi.

Step 5: Flashing u-boot to the mini2440. In this example, we'll be using DMW for Windows to transfer the binary over to the board with the supplied USB cable.

5a. Set boot switch to NOR.

5b. When supervivi pops up, hit q for supervivi shell.

5c. Load the image in to ram at 0x32000000 (6 zeros) memory location.

 shell> load ram 0x32000000 <uboot bin size in bytes> u-boot

5d. Use DNW to transfer the u-boot.bin from your computer to the board.

5e. Execute the loaded bin file you loaded in to RAM.

shell> go 0x32000000

5f. You should now be inside u-boot at a MINI24440# prompt. Now we prepare the NAND.

MINI2440# nand scrub

5g. Create the bad block table.

MINI2440# nand createbbt

5h. Write the u-boot that we're running at 0x32000000, to the NAND.

MINI2440# nand write.e 0x32000000 0x0

5i. Partition the NAND.

MINI2440# dynpart

5j Create the dynamic environment space for u-boot.

MINI2440# dynenv set u-boot_env

5k. Save the environment to NAND.

MINI2440# saveenv

You can now set the boot switch back to NAND and reboot the system. It should pop up with U-Boot and give you a MINI2440# uboot prompt. From this point on you can do all your work inside U-boot for loading images for the kernel and for the filesystem. I would like to note though, that in the above examples, you need to know your u-boot bin file size in both bytes and in hex. You can use google to convert the file size in bytes to hex. (i.e. "233907 to hex" in the google search box). I recommend trying to run u-boot without the source modification first before disabling IRQ because I'm guessing at some point, buserror or someone else will figure out why it won't run from RAM with that enabled. If it fails, and you can always modify the source and recompile.

I'd like to note that I collected these instructions from various sites and I've re-worded and explained them some to help. I hope that this helps you.

Here are some useful links for u-boot and other things:

http://bliterness.blogspot.com/ - Busseror's blog

http://code.google.com/p/mini2440/ ... - Buserror's Google code page.

http://repo.or.cz/w/openembedded/mi... - Git repository for the modified Openembedded

http://repo.or.cz/w/u-boot-openmoko... - Git repository for u-boot

UPDATE: MAY 8th, 2010: As of writing this update, the code in the git repository already has the above modification to the code. If you for any reason require USB support on your bootloader, you will need to uncomment the line that is commented out above and recompile.

UPDATE MAY 31st, 2010: There have been some problems with the current repository code and it won't run from RAM for some devices. So here's a quick workaround.

1. Switch the system to NOR and boot with supervivi.

2. hit v in supervivi

3. i uploaded the u-boot.bin file

4. switch the system to NAND and boot up with u-boot. You'll get some errors.

5. Run nand scrubs and createbbt

6. switch back to NOR

7. hit v again and upload U-boot since you just erased it.

8. switch back to nand and it should boot up with minimal errors using u-boot.

9. run the dynpart and dynenv and saveenv as mentioned above.

You should have a working u-boot... I'm currently getting an error about it not seeing my nand but it seems to be able to access it. Maybe you guys can let me know if you see anything wrong. I am suspecting there is a problem with the new u-boot code. Maybe buserror can shed some light on this.

//Bill Sargent

Questions? Comments? Need Help? Go to my forum and ask there.
 Welcome to my FriendlyARM Mini2440 - Micro2440 Blog urn:md5:20063d0d5658567ebc5c721d20c471b4 2010-01-16T12:09:00+01:00 2010-01-16T12:09:21+01:00 Bill embedded linuxmicro2440mini2440
I recently purchased a Micro2440 development board with 7" display. One of the things I've noticed is the lack of information, real helpful information, regarding the device. It takes a lot of digging and sifting through stuff in order to get what you need. People have placed step by step instructions up, but most of those are geared for the Mini2440 with a 3.5" display and 64MB NAND. My goal with this site is to provide information that both board owners can use, but that is meant to help those who are buying the Micro2440.

Working with this board the past couple of weeks has been both a nightmare and a lot of fun. I've not delved this deep in to something in a long time. The weeks prior to receiving my device, I worked in Gentoo preparing myself with and familiarizing myself with the aspects of Embedded development. While I've had a lot of experience with compiling (Beyond using portage in gentoo), I've never really had any experience with developing for another CPU that wasn't x86 and that didn't have a HD. There are a lot of challenges to doing this. The challenges range from bootloaders to decided on a GUI.

As of writing this, I've got nothing substantial accomplished with the dev board other than I'm able to create a filesystem image and get a command prompt. I've only once been able to get X working, and I can't remember what xorg settings I found on the net that actually worked. Again, as I've said, all these sites are geared to work on the other board with different NAND and different display and touch panel. Also a lot of these sites are in Chinese or something similar which I can't read. My goal with this dev board is to try to build a filesystem using linux that is extremely fast but has a functional GUI.

A very close friend of mine had the idea of building a kitchen cookbook using this device and I thought it was a pretty good idea. But before I can get anywhere with that, I need to learn a lot more about the device and how to get linux up and going smoothly each and every time. So far even my writing of the filesystems to the NAND product different results each time. So it's a quirky process.

On this site I'll be sharing all the information I gather, whether it is right or wrong, I'll share what works for me and you can try it on yours and let me know whether it works.

I hope you enjoy my site and I hope that it provides you with whatever you need to get your Mini2440 or Micro2440 board going without all the headaches I've had to put up with.


text:
An incredibly short-haul airline flight
The lady from crew sked (as always, courteous to a fault; unlike a few of the brethren who react, when called, like bears rousted from hibernation!) proceeds to acquaint me with the latest offerings from the New York catalog of 757/767 flying. Interestingly enough, the main offering for tomorrow is a 757 ferry flight from EWR to JFK. This brings back some long forgotten memories.

subset: commoncrawl


text:
Monday, November 12, 2007
Story Time Felts Free Story Offer
Check out my sidebar to see how you can get the free felt figures to tell the story/song of "Once There Was a Snowman."
Last month was a busy one. I beat my personal best record with my Story Time Felts business selling over $3100 in felt products in October! Now you know how my husband and I got to go to that NFL game, right?
I hope you'll sneak a peek at what we have to offer. I have the listing of our brand new LDS Deluxe Scripture Collection on my sidebar, check it out! I included a picture of the Story of Alma here. I just love Story Time Felts! My kids love it and I can't say enough good about it either. I'm really excited because right now I'm working on writing up stories for next year that will be illustrated and printed on felt. You'll have to wait and see more details about that project though, it's top secret!
Posted by Rachelle Christensen at 6:09 PM
Labels: Free Felt Story Offer
Subscribe to: Post Comments (Atom)


text:
News By Tag
Industry News
News By Place
Industry News
The HPA(r) Announces the Call for Entries for The Judges Award for Creativity and Innovation
Submissions for the Creativity and Innovation Award can include content such as a unique movie, TV program or commercial; a workflow, proprietary technical development, hardware or software toolset, or a creative approach that is not eligible for consideration in other HPA Awards categories.
In addition to the Creativity and Innovation Award, the HPA Awards honor important post production categories including: Outstanding Color Grading, Editing, Sound and Visual Effects qimau for feature film, television and commercials, as well as the coveted Engineering Excellence Award.
The submission period for the Creativity and Innovation Award is May 16, 2014 through June 20, 2014. Judging is set for early August. Winners of the Creativity and Innovation Award will be announced on November 6, 2014 during the 9th Annual HPA Awards ceremony in Los Angeles, CA.
Complete rules, guidelines and entry information is available at: www.hpaawards.net.
Contact Alicia Rock at 213.614.0860 or write to email@example.com for information about sponsorship opportunities for the 2014 HPA Awards show. For more information about the HPA Awards, visit www.hpaawards.net or call 213.614.0860.
- - -
About the Hollywood Post Alliance(r)
Hollywood Post Alliance (HPA) serves the professional community of businesses and individuals who provide expertise, support, tools and the infrastructure for the creation and finishing of motion pictures, television, commercials, digital media and other dynamic media content.
About the HPA(r) Awards
The HPA Awards were created to foster awareness of post production, promote creative and technical excellence, recognize the achievements of post production talent, and build involvement in the Hollywood Post Alliance.
Media Contact
Mimi Rossi
Account Email Address Account Phone Number Disclaimer Report Abuse


text:
Brach's and bacon is what came to mind after sipping the new Starbucks Smoked Butterscotch Latte. The scent is unmistakably butterscotch, instantly reminding me of small kid time sucking on those bulk Brach's Butterscotch disks from the market. Then the depth of the smokiness follows and for some reason, I thought of bacon. There's a sort of savory/salty/bacon-y tinge that follows the sip which elevates this drink. And it's not overly sweet either, just a nice balance of flavors. Seriously, I think I found my new favorite drink while it's still on the menu.
Starbucks Smoked Butterscotch Latte First Taste


text:
Rocker Johnny Marr left his native Britain to make his debut solo album, taking inspiration from the sights and sounds of Germany instead.
The former The Smiths guitarist wanted to immerse himself in a "European atmosphere" after previously working with U.S. band Modest Mouse, so he jetted out to a studio in Berlin.
He tells Bbc 6 Music, "I needed, I wanted to get out of England, but I wanted to keep a European atmosphere. I didn't want to go to America. You need to change things up really to keep it fresh, and Berlin's got a really interesting atmosphere. So I did quite a lot of the vocals there, and some of the guitars (and) I finished off some of the lyrics there.
"I've been in an American band for quite a long time with Modest Mouse and it was important that subconsciously I felt like I was in Europe. Personally, I regard myself as a European person."
Marr's highly-anticipated solo release is due out in February (13).


text:
Hello Friends,I created my first hubpage then saved it unpublished.I can find it listed on statistics in red but can't see any edit button on my iPhone 6.Thanks for feedback.
You should ask for a refund. I've got a big green Edit button on my Android Just click on the Hub title and see if the Edit screen comes up.
Are you using an Android smartphone or tablet? I just tried on an Android smartphone it is the same Pb for me.
I was joking about the big green edit button, but I've just checked and can see the usual Edit button to the left of each hub title on both an Android tablet and phone. Both Samsung Galaxy.
That's weird maybe I don't have same android version (I have android 5 I think).But thanks, never mind, I'll use my pc but won't be able to edit on my phone.
You will not be able to edit Hubs in the mobile version of our site. Many phone browsers offer the option to view the desktop version of a website, though, where you will see the edit button as usual.
Exact same thing has happened to me and I don't have a computer to use. I have no Edit button. What now?
I think HubPages is designed to be viewer friendly on iphones but it is only made to be edited from an iPad or a computer.
Oh well once again because I am poor, I cannot succeed. Totally figures.
I would install the 'transform to android' app.
I don't see an app like that in the App Store
by Patty Inglish4 years ago
I've been getting a blank screen when I hit "edit" to update Hubs for about an hour now. Might it be a glitch, or is it me? Thanks!
by Simon Cook5 years ago
I just splurged on the Nook Tablet for my wife's birthday on the weekend and am impressed with the little gadget - does everything I need it to do and is several hundred dollars cheaper than the iPad!Once I managed to...
by Dan Harmon5 weeks ago
I've been going through all my hubs, removing the sidebars and come across a strange bug that appears to be getting worse.I open the edit screen, then edit a text capsule. Close observation tells me it is a little...
by Erick Hernandez13 months ago
Hello. My name is Erick Ivan Hernandez, but you can simply call me Ivan Hernandez. I have a bug to report. I can't see the edit button in my blogs. It's like it disappeared off the screen. Can you give me the edit...
by Dr. John Anderson2 years ago
When I save an edited a hub, the saves appear in edit mode. But, the changes do not show in the published version. This applies in both Chrome and Mozilla and is not fixed by refreshing. It appears as though the...
by Marisa Wright7 years ago
Is it just me, or has the "edit" button disappeared off the posts on the forums?I can see it on this thread, but not on any of the existing threads I've just posted on.
Copyright © 2017 HubPages Inc. and respective owners.
Other product and company names shown may be trademarks of their respective owners.
HubPages® is a registered Service Mark of HubPages, Inc.
HubPages and Hubbers (authors) may earn revenue on this page based on affiliate relationships and advertisements with partners including Amazon, Google, and others.
terms of use privacy policy (0.58 sec)


text:
Lexi Lane Alexis Diaper Bag - a stylish tote for the discriminate mom! These totes are designed with excellent quality fabrics, expert crafting, and designs that go "beyond baby". This tote features a combination of tiny gingham check with a unique children's toile print and a pink ribbon trim. It features interior bottle and organizer pockets, a removable plastic bottom, matching changing pad, and snap closure. Tote measures 17"x11.5"x5.5". $72
Personalize the bag with baby's name for a really special
gift. $10
Allow two weeks delivery for personalized items.
No gift wrap available on monogrammed bags
Click here to go back to Baby Gifts
baby gifts - newborn baby gifts - best baby gifts
|toile diaperbag - nonsense diaper bag - pink diaperbag - tres chic - sadie - faith - ava - alexis - lucas - newborn baby gifts.


text:
In Progress
Develop a Mac Application
Budget $30-250 USD
Hi. It's simple strategy game. Deadline is 3 days.
Please don't bid if you don't know about blackjack strategy game.
Awarded to:
Hi I am very experienced in Mac Game development I have completed so many games on Mac, if you want, I can show you demo Please give me detailed requirements Regards
$30 USD in 1 day
(0 Reviews)


text:
Nearest Click & Collect Stores
Timex Men's Indiglo Expedition Alarm Chronograph Watch
Mens Timex Expedition Shock watch in a multitasking design with chronograph, date function, alarm and backlight.
This watch is supplied with:
- - Official Timex presentation packaging
- - Official Timex guarantee
- - Instruction manual (where applicable)
- - 33 Reward points
This product can be shipped to:
- UK (United Kingdom)
- EU (European Union)
- View shipping destinations
- See a mistake on this page? Please let us know
Share this product
Should you find any item not to your liking, simply return the unwanted item(s) to us using the enclosed returns form and your purchase will be refunded in full. We assure you of a smooth, easy, and zero hassle returns procedure if you change your mind for any reason.
Please note that earrings and other items of body jewellery cannot be returned for refund as unwanted items in the interests of hygiene
Currently, refunds are processed in an average of 2 days after receipt (Live statistic)
FREE Click & Collect from any mainland participating partner showrooms* (excluding airports and orders paid for by PayPal or Interest Free Credit). For more information on our new Click & Collect scheme please see this link(*UK only)
Rating Breakdown (Average rating: 4.6 / 5)
|(7 reviews)
|Very good
|(2 reviews)
|(1 review)
|(0 reviews)
|(0 reviews)
Rating: Excellent (5 / 5)
The feel and fitting is good.
Watch itself was as promised only that the digital display is not as bright.Basic features 3 alarm,timer and stopwatch.Good backlight and loud alarm sound
Rating: Excellent (5 / 5)
A good watch for the outdoors, which is why I bought it, running, orienteering and cycling. Lightweight, large numericals and good illumination make it useful for those quick glances. Its robust to throw into your kit bag and looks good to wear to the office.
All I want a watch to do is to tell the time and this works fine.
Rating: Average (3 / 5)
easy you use, but sometimes hard to read time as numbers not as bright as shows in pictures shown.
Rating: Excellent (5 / 5)
Excellent watch - does exactly as it says - great value
Rating: Excellent (5 / 5)
Very happy with the watch, just what I was looking for.
Very good efficient service as well. Would happily order again from watchshop
Rating: Very good (4 / 5)
Timex T49896, is a very handsome watch , fit the wrist quite nicely. Light & comfortable to wear, Setup is nice & easy, Alarm is quite loud compared to other watches which is a plus. Build quality is very good.Indiglo function is very good. Only negative aspect of this watch is the normal display which is quite dark & difficult to see in normal indoor light fine outdoors the indiglo function does correct this.
Rating: Excellent (5 / 5)
Cool watch, very comfortable, light weight, large display.
Rating: Excellent (5 / 5)
Great value for money.
Rating: Excellent (5 / 5)
The best watch I bought
Rating: Very good (4 / 5)
Arrived on time. Well packaged. All ok
Other independent review sources for this product
As one of the largest high-quality wristwatch manufacturers in the world, a Timex watch is best known for its dependability and quality. Timex watches include pieces for the whole family, from children learning how to tell the time, to adults looking for a sophisticated timepiece for formal occasions. Digital and analogue items are available, but whatever type of watch you choose, you can be guaranteed it will keep long-lasting, accurate time. The price range varies, including everyday, easy-to-read watches, to high-quality sporting and formal-occasion watches. Cotton, leather and metallic straps are available, with the colour palette ranging from bright white and shining silver to deep greens and greys for a striking finish. Take a look at the full range of Timex watches for men, women and children, or browse Nautica watches for Italian sporting watches owned by the Timex Group.
Watch Shop is an authorised Timex stockist.
Sign up to receive email updates when new styles of Timex are added to Watch Shop!
Finance options are only available for orders to the United Kingdom in GBP


text:
Bridging Development Realities and Technological Possibilities
'Digital Democracy in India' is our ongoing attempt to examine the emergence of a new governance paradigm in the country, characterized by the rise of 'governance by networks' and 'r
The Heinrich Böll Foundation (HBF) has commissioned IT for Change to develop a paper that will critically analyse the government's Digital India programme The paper will assess the k
Open as PDF
Mathematics teaching in government high schools is challenging.
Content and pedagogy are seen as inter-twined components of
Anita Gurumurthy and Nandini Chami authored two issue papers for Association for Progressive Communication's research series on 'Internet and ICTs for social justice and development'
Paper presented at the
MHRD released a draft note on 'Public Private Partnership in school education' in October 2009.
As a part of the "Research on Open Educational Resources for Development" project, ITfC conducted an action research on a collaborative OER adoption
Our discussion paper on the issue of technology-mediated violence against women analyses the adequacy of the current legal and institutional frameworks in India and proposes alternate models that need to be debated and analysed. The paper raises a series of questions on overhauling the existing legal framework, effectively addressing intermediary liability and strengthening law enforcement and other institutional mechanisms.