This is a page about TI's PandaBoard and PandaBoard ES.
Availability:
PandaBoard at Digi-Key
PandaBoard ES at Digi-Key
Basic Requirements
- ARM Cross Compiler
- Bootloader
- Das U-Boot – the Universal Boot Loader http://www.denx.de/wiki/U-Boot
- Source – http://git.denx.de/?p=u-boot.git;a=summary
- Linux Kernel
- Linus's Mainline tree: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary
- Linux omap tree: http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git
- ARM based rootfs
- Debian Squeeze: http://www.debian.org/
GCC Toolchain
Bootloader
Das U-Boot – the Universal Boot Loader http://www.denx.de/wiki/U-Boot
U-Boot Download:
Download U-Boot via git:
U-Boot Patches:
U-Boot Configure and Build:
Linux Kernel
Linux Build Script:
For Mainline v3.9.x
Run Build Script:
The kernel zImage and modules will be under the deploy directory.
Debian 7.0.0 (Wheezy) Root File System
Default User: debian
Password: temppwd
Root User: root
Root Password: root
verify the image with:
Extract Image:
Ubuntu 13.04 (Raring) Root File System
Default User: ubuntu
Password: temppwd
verify the image with:
Extract Image:
Setup SD card
For these instruction, we are assuming: DISK=/dev/mmcblk0, "sudo fdisk -l" is useful for determining the device id..
Erase SD card:
Setup Boot Partition:
Set Boot Flag
Format Boot Partition as vfat:
Setup Root File System Partition:
Format rootfs as ext4:
Mount Partitions:
Note: On most systems these partitions will be auto-mounted...
Install Bootloaders:
Copy MLO/u-boot.img to the boot partition
U-Boot user enviroment variables: uEnv.txt
Create U-Boot "uEnv.txt" boot script: (nano uEnv.txt)
Copy uEnv.txt to the boot partition:
Install Kernel and Root File System:
To help new users, since the kernel version can change on a daily basis. The kernel building scripts in this git repo will now give you a hint of what kernel version was built.
Copy and Paste that "export kernel_version=3.X.Y-Z" exactly as shown in your own build/desktop environment:
Copy Kernel zImage:
Copy Kernel dtbs (Device Tree):
Copy Root File System:
Copy Kernel modules:
Setup /etc/fstab:
Add:
Enable Networking:
Add:
Enable Serial Login:
Debian:
Add at end of file:
Ubuntu:
Add:
Add WiFi
Install Firmware:
Setup WiFi
Remove microSD card:
Comments
Comments, feedback, and questions can be sent to eewiki@digikey.com.
25 Comments
Hide/Show CommentsTirtha Ghosh
Hi Robert,
this is a great article for Pandaboard. It help me a lot for running debian on Panda (which I could not find anywhere so clean and organized).
But I have few doubts on this
1. does the kernel built from your steps is having SGX support on Pandaboard?
2. there are two different scripts called create_dsp_package.sh and create_sgx_package.sh. what are those and how to use them?
3. Also can you gimme a insight what build_deb.sh does??
Basically, I was trying running XBMC on this (using this kernel + debian wheezy) but it was saying h/w media support is not present and it was asking me to install proper drivers.
Can you please help me on this. You answers will be highly appreciated.
Thanks.
Robert Nelson
Hi Tirtha,
Regards,
Tirtha Ghosh
thanks for your quick reply.
But I guess some 3rd party support for SGX is already there on Pandaboards. I am not sure but I saw http://www.geexbox.org/ is running xbmc which requires h/w accelerator support.
Do you have any information on this? Any pointer to any patches on any kernel version, which can make SGX and/or DSP up on pandaboard?
thanks again for your concern.
Robert Nelson
Hi Tirtha,
They are using one of the linaro omap4 kernel tree's that contain extra patches for the pvr bits..
Graphics Drivers: http://git.linaro.org/gitweb?p=ubuntu/pvr-omap4.git;a=shortlog
Linaro Kernel tree: http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=summary
Regards,
Fabio M Novais
Hi Robert,
Very good your article. Excellent.
Just one thing, I wonder, with your experience, how can I find any reference to use support for SGX in PandaBoard.?
I already tried some things like (but unsuccessfully)
1) I used ( gfxsdk 4_04_00_04 ) from TI, with 2.6.37 kernel --> I compiled Kernel and gfxsdk successfully.
But when I run the linux on PandaBoard ES, it stop in "Uncompressing Linux... done, booting the kernel."
2) I used ( gfxsdk 4_04_00_04 ) from TI, with 3.5.rc7 kernel --> I compiled Kernel successfully.
But when I tried compile gfxsdk, I get the following error : error: implicit declaration of function 'cpu_is_omap3530' [-Werror=implicit-function- declaration]
3) The newest SDK ( gfxsdk 4_08_00_01 ) from TI --> don't have support to es7.x, that is used from PandaBoard.
Thank you.
Fabio
Robert Nelson
Hi Fabio,
I actually have not done much with the SGX side on the PandaBoard...
Regards,
Fabio M Novais
Robert Nelson Thanks for your quick reply.
I'll use your patch, and see if it works.
I do not know why they remove support for "es7.x" since it already existed.
Thank her help.
Fabio
Robert Nelson
Hi Fabio,
They removed es7.x because the am45xx line was removed from the Sitara Road Map (aka canned).
Background: At TI, (well till a few weeks ago) there are two main Cortex-A based product groups. Sitara Group (am37xx/am335x products) and the OMAP Group (omap4430/omap5xxx products).
These gfxsdk's (4_04_00_04/4_08_00_02) are from the Sitara group in TI. They only support their Sitara products, which currently consist of:
http://processors.wiki.ti.com/index.php/RN_4_08_00_02#Contents
If you want es7 drivers you need to talk to (now defunct) OMAP group, or companies they worked with like Canonical/Linaro who the OMAP group provided a special gfxsdk for..
Regards,
Fabio M Novais
Thank you, Robert.
With your help, it became clear to me.
Regards,
Rahul Bhansali
Hi,
I am facing one issue. After all this, My pandaboard is up and running perfect. But when i made a simple "hello world" program, compile it with arm-linux-gnueabi-gcc and try to run on board, it showing one error "-bash: No such file or directory". Even though binary was there.
Please help me on this issue.
Thanks,
Robert Nelson
Hi Rahul,
If the "binary" is actually present, then it is most likely you just have nt marked the file's execute permission bits...
After which, "./file" should now run as intended..
If this is not the case, please see: http://www.catb.org/esr/faqs/smart-questions.html#explicit and re-ask your question.
Regards,
Rahul Bhansali
Yes, I did that but problem doesn't solve.
Robert Nelson
Hi Rahul,
I'm Sorry, without more information, it's really hard to pin down what's going wrong.
But, for reference I put up a quick Hello World example using C here:
http://eewiki.net/display/linuxonarm/Using_C
Regards,
Tirtha Ghosh
Hi Rahul,
though without any further details, it is hard to tell any solution.
Once wild guess, how did u build the hello.c?? did u used bionic libc???
either you should build your source as a part of Android build else you need to include bionic headers file and standard libraries (libc, libm etc) build as part of bionic.
If you have only used like following
$ arm-linux-gnueabi-gcc -o hello hello.c
it would not work....rather you need to use
$ arm-linux-gnueabi-gcc -o hello -L<path-to-bionic-lib> -lc -I<path-to-bionic-arm-headers> hello.c
Brent Weatherall
Hello, Rahul.
I found on the PandaBoard that I needed to use a hard float linaro toolchain to get my binaries working. When I did not use Hard Float I received the same error. bash responded like the binary did not exist. Try:
gcc-linaro-arm-linux-gnueabihf-2012.08-20120827_linux
If you "apt-get install gcc g++" you can also build directly on the board.
Rahul Bhansali
Hi,
After doing all the above steps for making sd-card with boot and rootfs partition and put related images, I am facing one issue on panda board,
processing stops after this messages, "init: ureadahead main process (49) terminated with status 5", and no prints after this.
Can you please suggest on this issue.
Thanks,
Rahul Bhansali
Robert Nelson
Hi Rahul,
Please use http://pastebin.com and upload your full serial boot-log (from power on to crash), please also include your actual uEnv.txt and which kernel branch you built from.. Based on the error message, it sounds like you utilized the Ubuntu 12.10 image, so please confirm.. Did you also remember to set the serial/getty init script? Also your using the hdmi plug labeled as "dvi"?
Regards,
Rahul Bhansali
Here is the boot log,
http://pastebin.com/Sw5eKY2J
and uEnv.txt that I am using is
http://pastebin.com/VL5SD5C6
kernel branch is 3.2.34-x15
Yes I am using Ubuntu 12.10 image, and i set the getty init script and able to get login prompt but the problem is after
"init: ureadahead main process (49) terminated with status 5" message, there is no prints for 5 minutes and then after login prompt appears.
I just want to know the reason of this much wait before login prompt, Is there any way to solve it.
Robert Nelson
Hi Rahul,
So the login prompt does appear but there's a large delay?
First make sure your ethernet cable is plugged in, by default Ubuntu has a failsafe boot script that delays boot for upto 2 Minutes while it's waiting for an IP address. (This message does not show up on the serial log, it's usually only on the first console window...)
Second, Ubuntu does not really like starting without an initramfs, so once you've booted for the first time you can generate one: (It's a clsssic Chicken & Egg problem...)
Then in uEnv.txt:
Re-Comment:
Un-Comment:
Regards,
Rahul Bhansali
Hi Robert,
I followed the steps but still didn't get any success to reduce delay. Is there anything that can be try out to reduce delay before login prompt?
Thanks,
Rahul Bhansali
Robert Nelson
Hi Rahul,
If you've implemented both those steps I pointed out and are still not getting a login prompt within 10 Seconds, I'm really not sure what's going on with your image and will not be able to confirm till next Monday as I am away from my hardware. If you want a faster login now, I'd advice you to switch to the non-upstart based Debian Wheezy Image posted on this site as that still uses system V based start-up scripts.
*Update: on my PandaBoard: with Ubuntu 12.10 and 3.2.34-x15:
About 5 second delay...
Full Time log:
http://pastebin.com/wh4zdypG
Regards,
Patrick Wiesen
Hi Robert,
great work with that article here, thanks for that!
I have PandaBoard ES with Ubuntu 11.10, but i need some more kernel modules so that i need to build a new kernel with this modules (usbip). With your buildscript it was pretty easy to build the kernel and i found the 3.7.1-x5.zImage and mods in deploy folder, but i don't know what to do with them right now? Could you please help to get booted from my new kernel? Thanks and greetings from Germany
Patrick
Robert Nelson
Hi Patrick,
I just enabled and pushed out a config change with the CONFIG_USBIP_CORE module now enabled (in the past it wouldn't even build, so it had been disabled in my builds)..
https://github.com/RobertCNelson/stable-kernel/commit/9dc389b0c046e256e223695cb3a35a09dee25b41
I left the CONFIG_USBIP_DEBUG option disabled encase it just increases the amount of spam the dmesg, if you could please also test with that enabled to see how badly it spam's...
To quickly deploy the new image, you can either run my ./tools/install_image.sh script from the stable-kernel directory or copy the zImage/uImage & modules as shown later in this section http://eewiki.net/display/linuxonarm/PandaBoard?replyToComment=11665591&#PandaBoard-SetupmicroSDcard
Regards,
Ashish Chaple
Hi, Robert,
I am using Pnadaboard. I did all the steps as above but i am geting an error, which Rahul Bhansali\ also got.
I am using arm-linux-gnueabhihf- ... as the Cross compiler.
I am using ubuntu 12.10 as my file system.
2.710510] platform twl6030_usb: Driver twl6030_usb requests probe deferral
[ 3.298095] init: ureadahead main process (69) terminated with status 5
I tried what all was written in above step. But it still dint worked.
http://pastebin.com/ASbuggYt ... i have uploaded my log.
http://pastebin.com/YVRMs0Lf .. my Env.txt
Can you tell me where would i have gone wrong.
regards
Ashish Chaple
Robert Nelson
Hi Ashish,
Everything looks normal, but it looks like you mis-typed the serial parameter, as the serial login (via getty) did not appear. If you did enable serial, it's O in omap, not 0 in zero..
http://eewiki.net/display/linuxonarm/PandaBoard#PandaBoard-EnableSerialLogin%3A
Regards,