https://elinux.org/api.php?action=feedcontributions&user=Defiant&feedformat=atomeLinux.org - User contributions [en]2024-03-28T20:13:13ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=PandaBoard/Ubuntu_Tips&diff=271124PandaBoard/Ubuntu Tips2013-07-15T06:29:29Z<p>Defiant: Category</p>
<hr />
<div>This page contains tips for using the Pandaboard under Ubuntu 12.04 with TI OMAP Release PPA.<br />
<br />
== Enable Bluetooth ==<br />
To enable Bluetooth compile and start the UIM Program by TI<br />
<br />
<pre><br />
git clone git://gitorious.org/uim/uim.git<br />
cd uim<br />
make<br />
# start<br />
modprobe btwilink<br />
uim &<br />
# start bluetoothd<br />
</pre><br />
<br />
== No sound from analog output ==<br />
For Analog output try hw:0,8 as Alsa Device, e.g.<br />
<pre><br />
speaker-test -D hw:0,8 -c 2 -F S32_LE -r 96000 -t sine -f 440 -l 1<br />
</pre><br />
<br />
== Fix watchdog restart ==<br />
If U-Boot hangs after a Watchdog restart compile a new [[Panda_How_to_MLO_&_u-boot|Linaro U-Boot]].<br />
I have used commit 43ee87aabf17e51d35a5d82848a4052e60f2c7bb.<br />
<br />
[[Category:PandaBoard]]</div>Defianthttps://elinux.org/index.php?title=PandaBoard&diff=270782PandaBoard2013-07-14T18:37:29Z<p>Defiant: /* How To's */ Added Ubuntu_Tips</p>
<hr />
<div>The [http://www.pandaboard.org PandaBoard] is an [[OMAP4430]] ([[Cortex]]-A9) based low cost development platform.<br />
<br />
= Hardware =<br />
<br />
* OMAP4 (Cortex-A9) CPU based open development platform.<br />
** OMAP4430 Application processor<br />
** 1GB low-power DDR2<br />
** Display HDMI v1.3 Connector (Type A) to drive HD displays, DVI-D Connector (can drive a 2nd display, simultaneous display; requires HDMI to DVI-D adapter), LCD expansion header<br />
** 3.5" audio in/out and HDMI Audio out<br />
** Full size SD/MMC card<br />
** Built in 802.11 & Bluetooth v2.1+EDR<br />
** Onboard 10/100 Ethernet<br />
** Expansion: 1xUSB OTG, 2xUSB HS host ports, General purpose expansion header (I2C, GPMC, USB, MMC, DSS, ETM)<br />
** JTAG, UART/RS-232, 2 status LEDs, 1GPIO button<br />
<br />
More details can be found [http://pandaboard.org/content/platform here]<br />
<br />
* PandaBoard EA1 Front<br />
[[File:PandaBoard_front.png|320px]]<br />
<br />
A hi resolution picture of the PandaBoard EA1 front is available here: http://elinux.org/images/d/d4/Panda_front.jpg<br />
<br />
* PandaBoard EA1 Back<br />
[[File:Panda_back.jpg|240px]]<br />
<br />
= Availability =<br />
PandaBoard are in production and can be ordered from [http://pandaboard.org/content/buy Worldwide distributors]. You can also easily identify the board you have using [http://omappedia.org/wiki/PandaBoard_Revisions Board revision id]<br />
<br />
== Rev A3 ==<br />
Latest version of the board.<br />
<br />
== Rev A1/A2 ==<br />
[http://omappedia.org/wiki/PandaBoard_Revisions#Rev_A2 Details]<br />
<br />
== Rev EA1/EA2 ==<br />
These were limited number of 'Early Adopter' boards that built prior to production versions. [http://omappedia.org/wiki/PandaBoard_Revisions#Rev_EA1 more details]<br />
<br />
== Rev ES ==<br />
<br />
There is now a [http://pandaboard.org/content/pandaboard-es PandaBoard-ES] which includes an OMAP 4460 at up to 1.2GHz. Several important differences make it important (at the present time) that the MLO/u-boot/kernel be specifically crafted for the 4460. The thermal management is not in the mainline 4430 code as yet and could cause unwanted thermal problems. So BEWARE of running any code built for the non -ES PandaBoard on the -ES model.<br />
<br />
= Accessories =<br />
<br />
* [[Panda_Bamboo|Bamboo Board]]<br />
* [[BeagleBoard_Trainer|Trainer Board]]<br />
* [https://specialcomp.com/pandaboard/order.htm Acrylic case]<br />
* [http://bb-lvds.blogspot.com 10" LCD LVDS plug-and-play bundle with capacitance touchscreen and ambient light sensor]<br />
*[[File:Beadaframe.jpg|200px|thumb|BeadaFrame]][http://www.nxelec.com/products/hmi/beadaframe-pandaboard BeadaFrame] 7" LCD display kit<br />
** 7" 800x480 TFT LCD screen<br />
** PWM Backlight control<br />
** Resistive touch panel<br />
** RTC time keeper <br />
** Plastic frame<br />
<br/><br />
*[[File:IM-001a-kit1.jpg|200px|thumb|Inti Media for Pandaboard]] [http://www.inti-innovations.co.uk/products/inti-media Inti Media] an expansion board with 10" LCD - watch in action [http://www.youtube.com/watch?v=L9IN68DeEDQ here (multipoint capacitive touch screen)] or [http://www.youtube.com/watch?v=f5n0lesLyRQ here (resistive touch screen)]<br />
** 10.1 WXGA LCD with multipoint project capacitive touch panel <br />
** 10.1 WSVGA LCD with resistive touch panel<br />
** 4 additional USB ports<br />
** 5 user controlled LEDs<br />
** 5 user controlled push buttons<br />
** expansion ports with 3V3 I2C, SPI, Serial<br />
<br/><br/><br />
<br />
= Recommended Reading Material =<br />
<br />
* [[Embedded_Linux_System_Design_and_Development]]<br />
* [[Embedded_linux_primer]]<br />
* [[Building_Embedded_Linux_Systems]]<br />
* [[Essential_Linux_Device_Drivers]]<br />
* [[Linux_Device_Drivers]]<br />
<br />
= How To's =<br />
* [[Panda_How_to_build_SDR|Build SDR for Pandaboard]]<br />
* [[PandaBoard_Button|Add a GPIO Button]]<br />
* [[Panda_How_to_MLO_&_u-boot|How to build MLO and u-boot]] for the PandaBoard '''-->> Updated 7/23/2011'''<br />
* [[Panda_How_to_Barebox|How to build Barebox]] for the PandaBoard '''-->> Updated 11/12/2011'''<br />
* [[PandaBoard_ES_uboot_howto|How to build u-boot and SPL]] for PandaBoard and PandaBoard ES '''-->> Updated 12/27/2011'''<br />
* [[Panda_How_to_kernel_3_2_rel|How to build 3.2 kernel]] for the PandaBoard '''-->> Updated 2/18/2012'''<br />
* [[Panda_How_to_kernel_3_3_rcx|How to build 3.3-rcx kernel]] for the PandaBoard '''-->> Updated 2/18/2012'''<br />
* [[Panda_How_to_kernel_3_3_rel|How to build 3.3 kernel]] for the PandaBoard '''-->> Updated 3/19/2012'''<br />
* [[Panda_How_to_kernel_3_4_rel|How to build 3.4 kernel]] for the PandaBoard '''-->> NEW 6/3/2012'''<br />
* [[Panda_How_to_kernel_3_5_rcx|How to build 3.5-rcx kernel]] for the PandaBoard '''-->> Updated 7/16/2012'''<br />
* [[Panda_How_to_add_2_USBs|How to add two additional USB connections]] to the PandaBoard<br />
* [[Panda_How_to_add_Power_Switch|How to add a power switch]] to the PandaBoard '''-->> WIP'''<br />
* [[PandaBoard Power Measurements]]<br />
* [[PandaBoard/Ubuntu Tips|Miscellaneous Tips for using the Pandaboard under Ubuntu]]<br />
<br />
== Older How To's ==<br />
<br />
* [[Panda_How_to_buildroot|How to build a minimal file system using buildroot]] for the PandaBoard<br />
* [[Panda_How_to_kernel|How to build a kernel using the buildroot toolchain from above]] for the PandaBoard<br />
* [[Panda_How_to_kernel_new|How to build 2.6.38-rcx kernels]] for the PandaBoard '''-->> Updated 3/15/2011'''<br />
* [[Panda_How_to_kernel_2_6_38|How to build 2.6.38 kernel]] for the PandaBoard '''-->> Updated 3/16/2011'''<br />
* [[Panda_How_to_kernel_2_6_39|How to build 2.6.39-rcx kernel]] for the PandaBoard '''-->> Updated 5/12/2011'''<br />
* [[Panda_How_to_kernel_2_6_39rel|How to build 2.6.39 kernel]] for the PandaBoard '''-->> Updated 5/27/2011'''<br />
* [[Panda_How_to_kernel_3_0_rel|How to build 3.0 kernel]] for the PandaBoard '''-->> Updated 7/29/2011'''<br />
* [[Panda_How_to_kernel_3_0_rcx|How to build 3.0-rcx kernel]] for the PandaBoard '''-->> Updated 7/11/2011'''<br />
* [[Panda_How_to_kernel_3_1_rcx|How to build 3.1-rcx kernel]] for the PandaBoard '''-->> Updated 10/5/2011'''<br />
* [[Panda_How_to_kernel_3_1_rel|How to build 3.1 kernel]] for the PandaBoard '''-->> Updated 10/31/2011'''<br />
* [[Panda_How_to_kernel_3_2_rcx|How to build 3.2-rcx kernel]] for the PandaBoard '''-->> Updated 2/18/2012'''<br />
<br />
= Community =<br />
<br />
* Website: [http://pandaboard.org http://pandaboard.org]<br />
* IRC: #pandaboard @irc.freenode.net<br />
* Mailing List: [http://groups.google.com/group/pandaboard pandaboard@googlegroups.com]<br />
* [http://www.mail-archive.com/search?a=1&l=linux-omap%40vger.kernel.org&haswords=panda&date=&order=datenewest&search=Search panda on linux-omap@vger.kernel.org]<br />
<br />
[[category:OMAP]]<br />
[[category:omap4430]]<br />
[[category:PandaBoard]]<br />
[[category:Development Boards]]</div>Defianthttps://elinux.org/index.php?title=PandaBoard/Ubuntu_Tips&diff=270776PandaBoard/Ubuntu Tips2013-07-14T18:35:16Z<p>Defiant: Initial</p>
<hr />
<div>This page contains tips for using the Pandaboard under Ubuntu 12.04 with TI OMAP Release PPA.<br />
<br />
== Enable Bluetooth ==<br />
To enable Bluetooth compile and start the UIM Program by TI<br />
<br />
<pre><br />
git clone git://gitorious.org/uim/uim.git<br />
cd uim<br />
make<br />
# start<br />
modprobe btwilink<br />
uim &<br />
# start bluetoothd<br />
</pre><br />
<br />
== No sound from analog output ==<br />
For Analog output try hw:0,8 as Alsa Device, e.g.<br />
<pre><br />
speaker-test -D hw:0,8 -c 2 -F S32_LE -r 96000 -t sine -f 440 -l 1<br />
</pre><br />
<br />
== Fix watchdog restart ==<br />
If U-Boot hangs after a Watchdog restart compile a new [[Panda_How_to_MLO_&_u-boot|Linaro U-Boot]].<br />
I have used commit 43ee87aabf17e51d35a5d82848a4052e60f2c7bb.</div>Defianthttps://elinux.org/index.php?title=RPI-Wireless-Hotspot&diff=268184RPI-Wireless-Hotspot2013-07-03T18:37:23Z<p>Defiant: /* What do you need? */ Ralink RT5372</p>
<hr />
<div>=What does it do?=<br />
<br />
This project configures your Raspberry Pi to connect to the Internet through ethernet, and share that connection over WiFi.<br />
<br />
=What do you need?=<br />
<br />
*A Raspberry Pi, model B.<br />
*A boot SD card for the Raspberry Pi.<br />
*A USB WiFi device that supports "Access Point" mode.<br />
*An Ethernet cable to connect to the local network.<br />
<br />
<br />
Please make sure you Wifi dongle supports Access Point or Master Mode<br />
*Edimax does '''NOT''' support Access Point<br />
*AirLink 101 / AWL5088 does '''NOT''' support Access Point<br />
*Ralink RT5370 and RT5372 '''DO''' support Access Point<br />
<br />
=What skill level is required?=<br />
<br />
This project does not require any coding or compilation. Very basic Linux and networking knowledge would be useful, but not essential.<br />
<br />
To edit a configuration file (for example /etc/udhcpd.conf) use the following command<br />
sudo nano /etc/udhcpd.conf<br />
You will find yourself in a simple editor. Move around using the arrow keys. To save the file press Ctrl-o. To exit press Ctrl-x.<br />
<br />
=How does it work?=<br />
The Raspberry Pi is configured as a WiFi Hotspot, just like you would see<br />
in an internet cafe. It allows you to connect to the internet over WiFi using the<br />
Raspberry Pi as the bridge to the internet.<br />
The basic steps are<br />
*Enable a WiFi Access Point and broadcast on the channel of your choice<br />
*Assign dynamic IP addresses to any device that connects to WiFi network<br />
*Join the WiFi and Ethernet networks together by using Network Address Translation<br />
<br />
=Instructions=<br />
The following steps were performed on Raspbian but should be much the same on any Debian-based distro.<br />
<br />
1. Install the necessary software.<br />
<br />
sudo apt-get install hostapd udhcpd<br />
<br />
2. Configure DHCP. Edit the file /etc/udhcpd.conf and configure it like this:<br />
<br />
start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.<br />
end 192.168.42.20<br />
interface wlan0 # The device uDHCP listens on.<br />
remaining yes<br />
opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.<br />
opt subnet 255.255.255.0<br />
opt router 192.168.42.1 # The Pi's IP address on wlan0 which we will set up shortly.<br />
opt lease 864000 # 10 day DHCP lease time in seconds<br />
<br />
Edit the file /etc/default/udhcpd and change the line:<br />
DHCPD_ENABLED="no"<br />
to<br />
#DHCPD_ENABLED="no"<br />
<br />
You will need to give the Pi a static IP address with the following command:<br />
<br />
sudo ifconfig wlan0 192.168.42.1<br />
<br />
To set this up automatically on boot, edit the file /etc/network/interfaces and replace the line "iface wlan0 inet dhcp" to:<br />
<br />
iface wlan0 inet static<br />
address 192.168.42.1<br />
netmask 255.255.255.0<br />
<br />
If the line "iface wlan0 inet dhcp" is not present, add the above lines to the bottom of the file.<br />
<br />
Change the lines (they probably won't all be next to each other):<br />
allow-hotplug wlan0<br />
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf<br />
iface default inet manual<br />
to:<br />
#allow-hotplug wlan0<br />
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf<br />
#iface default inet dhcp<br />
<br />
3. Configure HostAPD. You can create an open network, or a WPA-secured network. A secure network is recommended to prevent unauthorized use and tampering, but you can also create an open network. To create a WPA-secured network, edit the file /etc/hostapd/hostapd.conf (create it if it doesn't exist) and add the following lines:<br />
<br />
interface=wlan0<br />
driver=nl80211<br />
ssid=My_AP<br />
hw_mode=g<br />
channel=6<br />
macaddr_acl=0<br />
auth_algs=1<br />
ignore_broadcast_ssid=0<br />
wpa=2<br />
wpa_passphrase=My_Passphrase<br />
wpa_key_mgmt=WPA-PSK<br />
wpa_pairwise=TKIP<br />
rsn_pairwise=CCMP<br />
<br />
Change ssid=, channel=, and wpa_passphrase= to values of your choice. SSID is the hotspot's name which is broadcast to other devices, channel is what frequency the hotspot will run on, wpa_passphrase is the password for the wireless network. For many, many more options see the file /usr/share/doc/hostapd/examples/hostapd.conf.gz<br />
<br />
If you would like to create an open network, put the following text into /etc/hostapd/hostapd.conf:<br />
<br />
interface=wlan0<br />
ssid=My_AP<br />
hw_mode=g<br />
channel=6<br />
auth_algs=1<br />
wmm_enabled=0<br />
<br />
Change ssid= and channel= to values of your choice. Note that anyone will be able to connect to your network, which is generally not a good idea. Also, some regions will hold an access point's owner responsible for any traffic that passes though an open wireless network, regardless of who actually caused that traffic.<br />
<br />
Edit the file /etc/default/hostapd and change the line:<br />
#DAEMON_CONF=""<br />
to:<br />
DAEMON_CONF="/etc/hostapd/hostapd.conf"<br />
<br />
4. Configure NAT. NAT (Network Address Translation) is a technique that allows several devices to use a single connection to the internet. Linux supports NAT using Netfilter (also known as iptables), and if fairly easy to set up. First, edit the file /etc/sysctl.conf and add the following line to the bottom of the file:<br />
<br />
net.ipv4.ip_forward=1<br />
<br />
This will enable NAT in the kernel. Second, run the following commands:<br />
<br />
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br />
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT<br />
<br />
Your Pi is now NAT-ing. To make this permanent so you don't have to run the commands after each reboot, run the following command:<br />
<br />
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"<br />
<br />
Now edit the file /etc/network/interfaces and add the following line to the bottom of the file:<br />
<br />
up iptables-restore < /etc/iptables.ipv4.nat<br />
<br />
5. Fire it up! Run the following commands to start the access point:<br />
<br />
sudo service hostapd start<br />
sudo service udhcpd start<br />
<br />
Your Pi should now be hosting a wireless hotspot. To get the hotspot to start on boot, run these additional commands:<br />
<br />
sudo update-rc.d hostapd enable<br />
sudo update-rc.d udhcpd enable<br />
<br />
At the completion of these instructions, your Pi should be providing a wireless network and allowing other devices to connect to the Internet. From my experience, the Pi makes a decent access point, although with cheaper WiFi dongles range will be fairly limited. I haven't stress tested this setup, but it seems to work fairly well and is handy when a "real" access point isn't available. I wrote most of the instructions from memory, if you find any errors/typos I'll correct them.<br />
<br />
This tutorial originally was a post on the Raspberry Pi forum [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=36&t=19120 here], you can reply to that topic if you have issues. Thanks go to all the people who tested my tutorial on the forum, and to poing who contributed the WPA HostAPD config.<br />
<br />
<br />
'''Please make sure you Wifi dongle supports Access Point or Master Mode'''<br />
* Edimax doesn't support Access Point<br />
* AirLink 101 / AWL5088 doesn't support Access Point<br />
* Ralink RT5370 supports Access Point</div>Defianthttps://elinux.org/index.php?title=BeagleBoardDebian&diff=257588BeagleBoardDebian2013-05-27T20:36:18Z<p>Defiant: /* gst-dsp */ Beaglebone note</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
This page is about running a (ARM EABI) [http://www.debian.org/ Debian] distribution at [[BeagleBoard]]. BeagleBoard will boot the (ARM EABI) Debian distribution from [[BeagleBoard#MMC.2FSD_boot|SD card]]. Debian's NetInstall will be used to install Debian onto your Beagle.<br />
<br />
= Help =<br />
<br />
If you need any help:<br />
<br />
*Kernel related help:<br />
** [http://groups.google.com/group/beagleboard Email Beagleboard user group] *Recommended method<br />
** ''#beagle'': Beagle irc on freenode, accessible also by [http://beagleboard.org/discuss web interface] ([http://www.beagleboard.org/irclogs/index.php logs])<br />
** Kernel Tree's<br />
*** [https://github.com/RobertCNelson/stable-kernel/tree/v3.7.x Stable (3.7.x) branch]<br />
*** [https://github.com/RobertCNelson/linux-dev Development Kernel source code]<br />
<br />
*When asking for help, please provide some debugging information:<br />
** U-Boot Version installed on board<br />
** Kernel Version: uname -a<br />
** pastebin dmesg<br />
*** Copy from serial port or use "dmesg | pastebinit" (sudo apt-get install pastebinit)<br />
<br />
= Recommended Beagle Software = <br />
<br />
Mainline U-Boot:<br />
* All old Ax, Bx, Cx and Dx boards are required to upgrade to at least these U-Boot versions.<br />
* XM Boards have no NAND, so MLO/u-boot.img is always required on the first partition<br />
* Directions: [http://elinux.org/BeagleBoardUbuntu#Upgrade_X-loader_and_U-boot Upgrade X-loader and U-Boot]<br />
<br />
= Debian NetInstall = <br />
<br />
Scripts:<br />
git clone git://github.com/RobertCNelson/netinstall.git<br />
cd netinstall<br />
<br />
Device Options:<br />
BeagleBoard --uboot beagle_cx<br />
BeagleBoard xM --uboot beagle_xm<br />
BeagleBone (serial) --uboot bone-serial<br />
BeagleBone (video via cape) --uboot bone-video<br />
BeagleBone Black --dtb am335x-boneblack<br />
PandaBoard --uboot panda<br />
PandaBoard ES --uboot panda_es<br />
<br />
You will need a 1GB SD card or greater.<br />
Standard System : ~455MB<br />
+ Desktop environment (GNOME) : ~2.9GB<br />
<br />
== Debian Wheezy ==<br />
<br />
Quick Install script for "board"<br />
sudo ./mk_mmc.sh --mmc /dev/sdX --uboot "board" --distro wheezy-armhf<br />
<br />
So For the BeagleBoard xM:<br />
sudo ./mk_mmc.sh --mmc /dev/sdX --uboot beagle_xm --distro wheezy-armhf<br />
<br />
*Options:<br />
**--firmware : installs firmware<br />
**--serial-mode : debian-installer uses Serial Port<br />
<br />
= Demo Image =<br />
<br />
== Debian Wheezy snapshot ==<br />
<br />
Default username/password: <br />
*username: debian<br />
*password: temppwd<br />
<br />
Default root user/password<br />
*user: root<br />
*password: root<br />
<br />
Image Updated:<br />
*2013-05-18<br />
** Beagle/Panda/Panda ES: v3.7.10-x10 kernel<br />
** BeagleBone: v3.2.42-psp27 kernel<br />
** BeagleBone/BeagleBone Black: v3.8.13-bone18 kernel (--uboot bone_dtb)<br />
*2013-04-26<br />
** Beagle/Panda/Panda ES: v3.7.10-x10 kernel<br />
** BeagleBone: v3.2.42-psp27 kernel<br />
** BeagleBone/BeagleBone Black: v3.8.8-bone14 kernel (--uboot bone_dtb)<br />
*2013-03-28:<br />
** Beagle/Panda/Panda ES: v3.7.10-x10 kernel<br />
** Bone: v3.2.33-psp26 kernel (--uboot bone_dtb = v3.8.4-bone9)<br />
<br />
Services Active:<br />
Note: Depending on your internal network these may work out the box<br />
Apache, Port 80: http://arm/ (Bone: via usb) http://192.168.7.2<br />
SSH, Port 22: ssh ubuntu@arm (Bone: via usb) ubuntu@192.168.7.2<br />
shellinabox, Port 4200: https://arm:4200/ (Bone: via usb) https://192.168.7.2:4200<br />
Getty, Serial Port<br />
<br />
Get prebuilt image:<br />
<br />
wget http://rcn-ee.net/deb/rootfs/wheezy/debian-7.0.0-console-armhf-2013-05-18.tar.xz<br />
<br />
Verify Image with: <br />
md5sum debian-7.0.0-console-armhf-2013-05-18.tar.xz<br />
dfe308e3e534d8adef75db5308174cf6 debian-7.0.0-console-armhf-2013-05-18.tar.xz<br />
<br />
Unpack Image:<br />
tar xJf debian-7.0.0-console-armhf-2013-05-18.tar.xz<br />
cd debian-7.0.0-console-armhf-2013-05-18<br />
<br />
Install Image:<br />
<br />
Quick Install script for "board"<br />
sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot "board"<br />
<br />
"board" options: <br />
*BeagleBoard Ax/Bx - beagle_bx<br />
*BeagleBoard Cx/Dx - beagle_cx<br />
*BeagleBoard xM - beagle_xm<br />
*BeagleBone Ax - bone<br />
*BeagleBone/Black - bone_dtb<br />
*PandaBoard Ax - panda<br />
*PandaBoard ES - panda_es<br />
<br />
So For the BeagleBoard xM:<br />
sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot beagle_xm<br />
<br />
*Additional Options<br />
** --rootfs <ext4 default><br />
** --swap_file <swap file size in MB's><br />
** --addon pico <ti pico projector><br />
** --svideo-ntsc <use ntsc over dvi for video)<br />
** --svideo-pal <use pal over dvi for video)<br />
<br />
= Debian Configuration =<br />
<br />
== Serial Ports ==<br />
<br />
Wheezy<br />
<br />
edit /etc/inittab and add:<br />
T0:23:respawn:/sbin/getty -L ttyO2 115200 vt102<br />
<br />
== SGX Video Acceleration ==<br />
<br />
=== SGX armel/armhf v3.4.x+ ===<br />
* Note: This is a still a work in progress, but so far all the basic sgx demos seem to work on my Beagle xM C... Thanks to TI for the special armhf binaries!!! --[[User:RobertCNelson|RobertCNelson]] 19:48, 17 July 2012 (UTC)<br />
<br />
* Test with: Precise/12.04 armhf demo image with v3.4.5-x1, desktop was lxde via: "sudo apt-get install lxde lxde-core lxde-icon-theme"<br />
<br />
==== Re-Build Kernel and SGX Kernel Modules ====<br />
git clone git://github.com/RobertCNelson/stable-kernel.git<br />
cd stable-kernel<br />
git checkout origin/v3.7.x -b tmp<br />
./build_kernel.sh (and then follow the directions as the script runs...)<br />
<br />
Build kernel<br />
./build_kernel.sh<br />
<br />
Build SGX modules<br />
./sgx_build_modules.sh<br />
<br />
Insert SD card, make sure to modify MMC in system.sh<br />
./tools/install_image.sh<br />
<br />
Place SD card into the device and boot...<br />
cd /opt/sgx<br />
sudo tar xf GFX_4.0*_libs.tar.gz<br />
sudo ./install-sgx.sh <br />
<br />
Reboot, check modules (lsmod):<br />
Module Size Used by<br />
bufferclass_ti 5727 0 <br />
omaplfb 11512 0 <br />
pvrsrvkm 165208 2 bufferclass_ti,omaplfb<br />
<br />
Blit Test:<br />
ubuntu@omap:/usr/bin/armhf/es5.0$ ./sgx_blit_test <br />
------------------ SGX 3D Blit test -----------------<br />
----------------------- Start -----------------------<br />
Call PVRSRVConnect with a valid argument:<br />
OK<br />
Get number of devices from PVRSRVEnumerateDevices:<br />
OK<br />
.... Reported 1 devices<br />
.... Device Number | Device Type<br />
0000 | PVRSRV_DEVICE_ID_SGX<br />
Attempt to acquire device 0:<br />
OK<br />
Getting SGX Client info<br />
OK<br />
.... ui32ProcessID:1133<br />
Display Class API: enumerate devices<br />
OK<br />
PVRSRVEnumerateDeviceClass() returns 1 display device(s)<br />
OK<br />
Display Class API: open device<br />
OK<br />
Display Class API: Get display info<br />
OK<br />
.... Name:PowerVR OMAP Linux Display Driver<br />
.... MaxSwapChains:1<br />
.... MaxSwapChainBuffers:1<br />
.... MinSwapInterval:0<br />
.... MaxSwapInterval:1<br />
Display Class API: enumerate display formats<br />
OK<br />
OK<br />
.... Display format 0 - Pixelformat:1<br />
Display Class API: enumerate display dimensions<br />
OK<br />
OK<br />
.... Display dimensions 0 - ByteStride:2560 Width:1280 Height:720<br />
Attempt to create memory context for SGX:<br />
OK<br />
.... Shared heap 0 - HeapID:0x7000000 DevVAddr:0x1000 Size:0x87fe000 Attr:0x2014200<br />
.... Shared heap 1 - HeapID:0x7000001 DevVAddr:0xc800000 Size:0xfff000 Attr:0x2024200<br />
.... Shared heap 2 - HeapID:0x7000002 DevVAddr:0xe400000 Size:0x7f000 Attr:0x2024200<br />
.... Shared heap 3 - HeapID:0x7000003 DevVAddr:0xf000000 Size:0x3ff000 Attr:0x2024200<br />
.... Shared heap 4 - HeapID:0x7000004 DevVAddr:0xf400000 Size:0x4ff000 Attr:0x2014200<br />
.... Shared heap 5 - HeapID:0x7000005 DevVAddr:0xfc00000 Size:0x1ff000 Attr:0x2014200<br />
.... Shared heap 6 - HeapID:0x7000006 DevVAddr:0xdc00000 Size:0x7ff000 Attr:0x2014200<br />
.... Shared heap 7 - HeapID:0x7000007 DevVAddr:0xe800000 Size:0x7ff000 Attr:0x2014200<br />
.... Shared heap 8 - HeapID:0x7000008 DevVAddr:0xd800000 Size:0x3ff000 Attr:0x2024200<br />
.... Shared heap 9 - HeapID:0x7000009 DevVAddr:0x8800000 Size:0x0 Attr:0x2024200<br />
.... Shared heap 10 - HeapID:0x700000a DevVAddr:0x8800000 Size:0x3fff000 Attr:0x2014200<br />
Display Class API: get the system (primary) buffer<br />
OK<br />
Display Class API: map display surface to SGX<br />
OK<br />
Attempt to create transfer context for SGX:<br />
OK<br />
Do a SRCCOPY blit to the bottom right quadrant of the display:<br />
(bottom right quadrant should be red on blue background):<br />
OK<br />
OK<br />
Do a SRCCOPY blit to the top left quadrant of the display:<br />
(top left quadrant should be striped (r/g/b/w) on blue background):<br />
OK<br />
OK<br />
Do a CUSTOMSHADER blit to the top right quadrant of the display:<br />
(top right quadrant should be yellow):<br />
0xb6acd000 (host) 0xf407000 (device): Device mem for custom shader program<br />
0xb6acb000 (host) 0xf408000 (device): Device mem for texture<br />
USE custom shader program: 0x28841001.c0000000 mov.end o0, sa0<br />
OK<br />
Do a SRCCOPY blit with COLOUR DOWNSAMPLING from ARGB8888 to RGB565<br />
and then present the RGB565 to the bottom right quadrant of the screen<br />
(bottom right quadrant should be a red gradient):<br />
OK<br />
OK<br />
OK<br />
OK<br />
Free the off screen surfaces:<br />
OK<br />
OK<br />
OK<br />
OK<br />
Destroy the transfer context:<br />
OK<br />
Display Class API: unmap display surface from SGX<br />
OK<br />
Destroy Device Memory Context<br />
Display Class API: close the device<br />
OK<br />
Release SGX Client Info:<br />
OK<br />
Disconnect from services:<br />
OK<br />
------------------ SGX 3D Blit test -----------------<br />
------------------------ End ------------------------<br />
<br />
=== SGX Legacy armel only upto v3.2.x ===<br />
NOTE: this only works on BeagleBoard hardware, BeagleBone stuff is in development..<br />
<br />
Requirements: stable-kernel (the Demo Images hosted on rcn-ee.net meet this requirement)<br />
https://github.com/RobertCNelson/stable-kernel<br />
<br />
Note: Due to a bug (seems to only effect older Beagle Bx/Cx boards, use v3.0.8-x3 based kernels)<br />
https://github.com/RobertCNelson/stable-kernel/issues/8<br />
oneiric:<br />
wget http://rcn-ee.net/deb/oneiric/v3.0.8-x3/install-me.sh<br />
/bin/bash install-me.sh<br />
<br />
==== SDK unPackage Script ====<br />
<br />
Download the latest version of the "create_sgx_package.sh" script<br />
2.6.37<br />
wget https://raw.github.com/RobertCNelson/tools/master/x86/ti_omap/create_sgx_package_2.6.37.sh<br />
2.6.38->3.2.x<br />
wget https://raw.github.com/RobertCNelson/tools/master/x86/ti_omap/create_sgx_package_3.2.x.sh<br />
<br />
Make script executable<br />
chmod a+x ./create_sgx_package_*.sh<br />
<br />
Run script<br />
./create_sgx_package_*.sh<br />
<br />
After Successfully running:<br />
<br />
:~/temp$ ls<br />
create_sgx_package.sh<br />
GFX_X_XX_XX_XX_libs.tar.gz : -> Copy to Beagle (System Libs)<br />
GFX_Linux_SDK.tar.gz : -> Copy to Beagle (DEMO's)<br />
Graphics_SDK_setuplinux_X_XX_XX_XX.bin<br />
SDK<br />
SDK_BIN<br />
<br />
==== Beagle: GFX_*_libs.tar.gz ====<br />
<br />
tar xf GFX_4_00_00_01_libs.tar.gz (extracts install-SGX.sh and run-SGX.sh)<br />
./install-SGX.sh (copies necessary SGX libs and startup script)<br />
./run-SGX.sh (force run the new init script, or you can just reboot...)<br />
<br />
On successful install:<br />
Stopping PVR<br />
Starting PVR<br />
Starting SGX fixup for ES2.x (or ES3.x) (or ES5.x xM)<br />
<br />
Reboot for good measure<br />
sudo reboot<br />
<br />
==== Beagle: GFX_Linux_SDK.tar.gz ====<br />
<br />
tar xf GFX_Linux_SDK.tar.gz<br />
cd GFX_Linux_SDK<br />
tar xf OGLES.tar.gz<br />
<br />
==== Test SGX with a DEMO ====<br />
<br />
cd OGLES/SDKPackage/Binaries/CommonX11/Demos/EvilSkull<br />
./OGLESEvilSkull<br />
<br />
==== Trouble Shooting ====<br />
<br />
sudo rm /etc/powervr-esrev<br />
sudo depmod -a omaplfb<br />
sudo /etc/init.d/pvr restart<br />
<br />
== DSP ==<br />
<br />
=== gst-dsp ===<br />
*Note: This section is BeagleBoard(-xM) only since the BeagleBone (Black) doesn't have a DSP.<br />
<br />
The following Gstreamer elements will be installed:<br />
<br />
$ gst-inspect | grep dsp<br />
dvdspu: dvdspu: Sub-picture Overlay<br />
dsp: dspdummy: DSP dummy element<br />
dsp: dspvdec: DSP video decoder<br />
dsp: dspadec: DSP audio decoder<br />
dsp: dsph263enc: DSP video encoder<br />
dsp: dspmp4venc: DSP MPEG-4 video encoder<br />
dsp: dspjpegenc: DSP video encoder<br />
dsp: dsph264enc: DSP video encoder<br />
dsp: dspvpp: DSP VPP filter<br />
dsp: dspipp: DSP IPP<br />
<br />
Please note that h264 encoder (dsph264enc) will not work because of missing h264venc_sn.dll64P DSP part. [http://groups.google.com/group/omapdiscuss/msg/76d928726656c5fe According to this message], it is not available due to a licensing restriction.<br />
<br />
Requirements: Kernel built with: "CONFIG_TIDSPBRIDGE=m", for reference, here is what rcn-ee.net's image/deb's are configured for:<br />
ubuntu@arm:~$ zcat /proc/config.gz | grep TIDSP<br />
CONFIG_TIDSPBRIDGE=m<br />
CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000<br />
CONFIG_TIDSPBRIDGE_RECOVERY=y<br />
# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set<br />
# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set<br />
# CONFIG_TIDSPBRIDGE_BACKTRACE is not set<br />
<br />
On the xM: if 3.2.x is too jerky, try 3.4.x and use the create_dsp_package.sh script, as the module changed..<br />
<br />
Download the latest version of the "create_dsp_package.sh" script<br />
wget https://raw.github.com/RobertCNelson/tools/master/x86/ti_omap/create_dsp_package.sh<br />
<br />
Make script executable<br />
chmod a+x ./create_dsp_package.sh<br />
<br />
Package script:<br />
./create_dsp_package.sh<br />
<br />
Copy DSP_Install_libs.tar.gz to Beagle<br />
<br />
Setup network...<br />
<br />
Extract:<br />
ubuntu@arm:~$ tar xf DSP_Install_libs.tar.gz<br />
<br />
Install:<br />
ubuntu@arm:~$ ./install-DSP.sh<br />
<br />
What got installed:<br />
ubuntu@arm:~$ ls -lh /lib/dsp/<br />
total 7.1M<br />
-rwxr-xr-x 1 root root 1.3M Dec 3 10:56 baseimage.dof<br />
-rwxr-xr-x 1 root root 51K Dec 3 10:56 conversions.dll64P<br />
-rwxr-xr-x 1 root root 13K Dec 3 10:56 dctn_dyn.dll64P<br />
-rwxr-xr-x 1 root root 2.5M Dec 3 10:56 h264vdec_sn.dll64P<br />
-rwxr-xr-x 1 root root 481K Dec 3 10:56 jpegdec_sn.dll64P<br />
-rwxr-xr-x 1 root root 229K Dec 3 10:56 jpegenc_sn.dll64P<br />
-rwxr-xr-x 1 root root 767K Dec 3 10:56 m4venc_sn.dll64P<br />
-rwxr-xr-x 1 root root 890K Dec 3 10:56 mp4vdec_sn.dll64P<br />
-rwxr-xr-x 1 root root 707K Dec 3 10:56 mpeg4aacdec_sn.dll64P<br />
-rwxr-xr-x 1 root root 15K Dec 3 10:56 qosdyn_3430.dll64P<br />
-rwxr-xr-x 1 root root 14K Dec 3 10:56 ringio.dll64P<br />
-rwxr-xr-x 1 root root 9.1K Dec 3 10:56 TSPA_Object_Code_Software_License_Agreement.txt<br />
-rwxr-xr-x 1 root root 53K Dec 3 10:56 usn.dll64P<br />
-rwxr-xr-x 1 root root 245K Dec 3 10:56 vpp_sn.dll64P<br />
<br />
Building gst-dsp stuff:<br />
<br />
If you installed this image via the demo images or netinstall, the gst-dsp build script is installed:<br />
<br />
Update arm tools directory to the latest:<br />
ubuntu@arm:~$ cd /boot/uboot/tools/<br />
ubuntu@arm:/boot/uboot/tools$ sudo ./update.sh<br />
<br />
Otherwise, install via git:<br />
git clone git://github.com/RobertCNelson/tools.git<br />
<br />
Change to the pkgs directory<br />
ubuntu@arm:~$ cd /boot/uboot/tools/pkgs<br />
(or if just cloned)<br />
ubuntu@arm:~$ cd ~/tools/pkgs<br />
<br />
Build gst-dsp stuff..<br />
./ti-tidspbridge.sh<br />
<br />
Start dspbridge (or just reboot)<br />
sudo /etc/init.d/dsp_init start<br />
<br />
Test dspbridge<br />
sudo dsp-test<br />
<br />
Playbin:<br />
sudo gst-launch playbin2 uri=file://(file)<br />
<br />
Example: (using http://www.bigbuckbunny.org/index.php/download/ 854x480 mp4 )<br />
Note: it seems broken in Ubuntu precise armhf...<br />
<br />
sudo gst-launch playbin2 uri=file:///home/USER/big_buck_bunny_480p_surround-fix.avi<br />
<br />
== Building Kernel ==<br />
<br />
Note, this section use to have a lot of details, but maintenance of the two wiki's became a pain, so for now on we will just link to my other pages:<br />
<br />
=== Beagle/Beagle xM ===<br />
http://eewiki.net/display/linuxonarm/BeagleBoard<br />
<br />
=== BeagleBone ===<br />
http://eewiki.net/display/linuxonarm/BeagleBone<br />
<br />
=== BeagleBone Black ===<br />
http://eewiki.net/display/linuxonarm/BeagleBone+Black<br />
<br />
=== Panda/Panda ES ===<br />
http://eewiki.net/display/linuxonarm/PandaBoard<br />
<br />
= Upgrading from Debian 5 to Debian 6 =<br />
<br />
[http://www.jeremycole.com/blog/2011/03/09/beagleboard-upgrading-from-debian-5-to-debian-6/ Upgrading] from Debian 5 to Debian 6 report and tutorial.<br />
<br />
= Upgrading from Debian 6 (Squeeze) to Debian 7 (Wheezy) =<br />
<br />
Note, this only goes over "armel" -> "armel"... For users wishing to switch from "armel" -> "armhf" just re-install...<br />
<br />
sudo apt-get update ; sudo apt-get upgrade<br />
sudo sed -i -e "s/squeeze/wheezy/g" /etc/apt/sources.list<br />
sudo apt-get update ; sudo apt-get install -y apt aptitude udev dpkg<br />
sudo aptitude update ; sudo aptitude -y safe-upgrade ; sudo aptitude -y dist-upgrade</div>Defianthttps://elinux.org/index.php?title=BeagleBone_Community&diff=256238BeagleBone Community2013-05-24T15:11:36Z<p>Defiant: /* Debian */ Wheezy released</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Category: BeagleBone]]<br />
<br />
[[File:BeagleBone_256x249.jpg|320px|thumb|right|BeagleBone]]<br />
[[File:BeagleBone-Black-A5_product_detail_black_sm.jpg|320px|thumb|right|BeagleBone Black]]<br />
<br />
This page collects information about [http://beagleboard.org BeagleBoard.org]'s range of [http://beagleboard.org/bone BeagleBone] boards based on the [http://www.ti.com/am335x TI Sitara AM335x], an application processor SoC containing an [http://en.wikipedia.org/wiki/ARM_Cortex-A8 ARM Cortex-A8] core. The range currently consists of the original '''BeagleBone''' and the upgraded but lower cost '''BeagleBone Black'''.<br />
<br />
Most features are common to the two models. The differences between them are described in each section under a '''BeagleBone Black''' subheading.<br />
<br />
<br><br />
= Events =<br />
* ongoing 2009: [[BeagleBoard/contest|Beagle Sponsored Project Program]] - add a cool project and get a free BeagleBoard to realize it!<br />
<br />
= Description =<br />
The two models of BeagleBone share most features in common through employing only slightly different versions of the same TI Sitara SoC. In addition they both adhere to the same standard for expansion and interfacing through "cape" daughterboards. <br />
<br />
== BeagleBone (original) ==<br />
The '''BeagleBone''' is a low-cost, high-expansion board from the [http://beagleboard.org/ BeagleBoard] product line. It uses the [http://www.ti.com/am335x TI AM3358/9] SoC based on an [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344d/DDI0344D_cortex_a8_r2p1_trm.pdf ARM Cortex-A8] processor core using the [http://infocenter.arm.com/help/topic/com.arm.doc.subset.architecture.reference/index.html#v7AR ARMv7-A] architecture. It is similar in purpose to earlier BeagleBoards, and can be used either standalone or as a USB or Ethernet-connected expansion for a BeagleBoard or any other system. The BeagleBone is small even by BeagleBoard standards yet still provides much of the performance and capabilities of the larger BeagleBoards.<br />
<br />
BeagleBone ships with a 4GB micro-SD card preloaded with the [http://www.angstrom-distribution.org/ Angstrom] ARM Linux distribution.<br />
<br />
The board uses a [http://www.ti.com/product/tps65217b TI TPS65217B PMIC] to generate stable supply voltages regardless of input power variation. +5V DC power can be supplied to the BeagleBone through a barrel connector or from the mini-USB, both of which are located near the large RJ45 Ethernet connector.<br />
<br />
The mini-USB type-A OTG/device '''client-mode''' socket is multi-functional. In addition to providing an alternative source of power, it gives access to an on-board front-end two-port USB client-side hub. (This is not related to the separate '''host-mode''' USB socket described later). One port of the hub goes directly to the '''USB0''' port of the TI AM3358/9 SoC, while the other port connects to a dual-port [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H] USB-to-serial converter to provide board-to-external-host serial communications and/or JTAG debugging. The BeagleBone's Linux serial console is available through this USB serial connection.<br />
<br />
The SoC's '''USB0''' connection to the front-end hub works in one of two modes, and you can toggle between them at any time: it either presents the SD card as a mountable USB storage device to the host, or it provides an [http://www.linux-usb.org/usbnet/ Ethernet-over-USB] networking interface which yields a simple method of quick-start. The Ethernet-over-USB facility is additional to the BeagleBone's normal 10/100 Ethernet interface, which is directly implemented in the SoC rather than hanging off USB as in some other designs. Full IPv4 and IPv6 networking is provided by the supplied Linux system out of the box.<br />
<br />
In addition to the USB OTG Device or '''client-mode''' facilities already described, BeagleBone also provides one '''host-mode''' USB type-A socket on the other end of the board. This is driven from the '''USB1''' connection on the AM3358/9 SoC, and provides access to USB host peripherals such as mice, keyboards, storage, and wifi or Bluetooth dongles, or a USB hub for further expansion.<br />
<br />
== BeagleBone Black ==<br />
On 23rd April 2013, Beagleboard officially announced '''[http://beagleboard.org/Products/BeagleBone%20Black BeagleBone Black]''' at a price approximately half that of the original BeagleBone.<br />
<br />
The new board's most important new features include a AM3359 SoC upgraded to 1GHz, doubling of memory to 512MB, use of faster DDR3 memory in contrast to the DDR2 of the original BeagleBone, and a new HDMI audio/visual output. (The original BeagleBone required an additional cape daughterboard for graphic output).<br />
<br />
= Specifications =<br />
The two boards are very similar in those features provided directly by the SoC. Despite the original BeagleBone being specified as using "AM3358/9", in practice most boards are believed to have shipped with the AM3359 generic part. BeagleBone Black has therefore upgraded only the specific device selected from the AM3359 range, and hence the differences are few. In contrast, the boards have significantly different designs but a high degree of compatibility.<br />
== BeagleBone ==<br />
* Up to 720 MHz superscalar ARM Cortex-A8 AM3358/9<br />
* 256 MB DDR2 RAM<br />
* 10/100 Ethernet RJ45 socket, IPv4 and IPv6 networking<br />
* MicroSD slot and 4GB microSD card supplied<br />
* Preloaded with Angstrom ARM Linux Distribution<br />
* Single USB 2.0 type A host port<br />
* Dual USB hub on USB 2.0 type mini-A OTG device port<br />
* On-board USB-to-serial/JTAG over one shared USB device port<br />
* Storage-over-USB or Ethernet-over-USB on other USB device port<br />
* Extensive I/O: 2 I2C, 5 UART, SPI, CAN, 66 GPIO, 8 PWM, 8 ADC<br />
* +5V DC power from barrel connector or USB device port<br />
* Power consumption of 300-500mA at 5V<br />
* Two 46-pin 3.3-V peripheral headers with multiplexed LCD signals<br />
* Board size: 3.4" × 2.1" (86.4mm x 53.3mm) -- fits in an Altoid tin<br />
<br />
== BeagleBone Black (differences) ==<br />
* 1 GHz superscalar ARM Cortex-A8 AM3359<br />
* 512 MB DDR3 RAM<br />
* On-board 2 GB eMMC flash, preloaded with Angstrom ARM Linux Distribution<br />
* MicroSD slot for additional user data or operating systems (no card supplied)<br />
* USB 2.0 type A host port<br />
* Dedicated single mini-USB 2.0 client port (no additional 2-port hub)<br />
* New micro-HDMI audio/visual output<br />
* USB-to-serial and USB-to-JTAG interfaces removed (available on expansion headers)<br />
* Power expansion header for backlight removed, battery charging moved onto pads<br />
* Lower power consumption of 210-460 mA at 5V<br />
<br />
= Expansion Connectors =<br />
The BeagleBone provides two 46-pin dual-row expansion connectors "'''P9'''" and "'''P8'''" which are also known as "'''Expansion A'''" and "'''Expansion B'''", respectively. The location and pinout of these connectors is illustrated below (click tables to enlarge). All signals on expansion headers are 3.3V except where indicated otherwise.<br />
<br />
=== P9 and P8 - Each 2x23 pins ===<br />
[[File:BeagleBone_P9_256x256.jpg|256px|left|top|border|P9 Header|link=File:BeagleBone_p9_pinout.jpg]]<br />
[[File:BeagleBone_P9_P8_256x256.jpg|256px|top|border|BeagleBone P9 + P8|link=File:BeagleBone_P9_P8_512x512.jpg]]<br />
[[File:BeagleBone_P8_256x256.jpg|256px|top|border|P8 Header|link=File:BeagleBone_p8_pinout.jpg]]<br />
<p><br><br />
In addition to the two large headers above, a small 10-pin dual-row connector provides "'''P6'''" provides a "'''PMIC Expansion'''" that brings out some additional signals from the TPS65217B Power Management IC, using the following pinout:<br />
<br />
=== P6 - 2x5 pins''' ===<br />
[[File:BeagleBone_P6_464x222.jpg|464px|left|middle|border|P6 MPIC Expansion Header]]<br />
<br />
'''NB. P6 is not available on BeagleBone Black'''<br />
<br />
'''IMPORTANT'''<br />
<br />
This diagram of P6 provides an '''UNDERSIDE PINOUT''' view.<br />
<br />
It is therefore ''' ''laterally inverted'' ''' relative to the photograph.<br />
<br />
To obtain the top-side pinout that corresponds to the physical orientation shown in the photograph, swap the two rows of pins so that odd-numbered pins are on the left of even-numbered pins.<br style="clear: both" /><br />
<br />
= Expansion Boards and Accessories =<br />
<br />
== Capes ==<br />
A '''BeagleBone Cape''' is an expansion board which can be plugged into the BeagleBone's two 46-pin dual-row '''Expansion Headers''' and which in turns provides similar headers onto which further capes can be stacked. Up to four capes at a time can be stacked on top of a BeagleBone. An expansion board which can be fitted only at the top of a stack of capes (usually for physical reasons) is a special case of "cape", but this usage is common for display expansion boards such as LCDs (see next section).<br />
<br />
Capes are required to provide a 32Kbyte I2C-addressed EEPROM which holds board information such as board name, serial number and revision, although this is typically omitted on simple prototyping capes. Capes are also expected to provide a 2-position DIP switch to select their address in the stack, although this too is often omitted in prototyping capes.<br />
<br />
The [https://docs.google.com/spreadsheet/ccc?key=0AtD7XdBlve3HdDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc&hl=en_US#gid=0 Capes Registry] seeks to index all existing capes and cape concepts, including private projects. A [https://docs.google.com/spreadsheet/viewform?formkey=dDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc6MQ registration page] is available to help add capes to the list.<br />
<br />
This section lists only those capes which are available commercially or which are close to a production release, as well as open hardware designs.<br />
<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_DVID CircuitCo BeagleBone DVI-D cape]<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_Breadboard CircuitCo BeagleBone Breadboard cape]<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_Breakout CircuitCo BeagleBone Breakout cape]<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_CANBus CircuitCo BeagleBone CANBus cape]<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_RS232 CircuitCo BeagleBone RS232 cape]<br />
* [http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_Battery CircuitCo BeagleBone Battery cape]<br />
* [http://www.adafruit.com/products/572 Adafruit Proto Cape kit for BeagleBone]<br />
* [http://www.towertech.it/en/products/hardware/tt3201-can-cape/ TowerTech TT3201 Multi-Channel CAN Cape]<br />
* [https://specialcomp.com/beaglebone/BeagleBone_FPGA.html Special Computing Spartan-3A FPGA cape for BeagleBone] -- in development<br />
* [http://syntheticlifeforms.net/?p=43 Thinking Machines LCD-IO Expansion Cape] -- in development<br />
* [https://github.com/piranha32/FlyingBone Open Source BeagleBone Prototyping Board] -- piranha32 GitHub repository<br />
* [http://www.armkits.com/product/beaglebone-hdmicape.asp Embest BeagleBone HDMI cape]<br />
* [[BeagleBone 6502 RemoteProc cape]] -- in development<br />
<br />
== LCD Displays and Other Expansions ==<br />
LCD displays for the BeagleBone are typically implemented as capes which plug in as the ''' ''top board'' ''' in a stack of capes, for reasons of visibility. Such displays are often larger than the BeagleBone itself, so the normal physical relationship in which a daughterboard is smaller than its host board is inverted. In this arrangement it is the expansion board that provides the physical support for the BeagleBone.<br />
<br />
* [[File:Beaglebone.jpg|320px|thumb|BeadaFrame]][http://www.nxelec.com/products/hmi/beadaframe-beaglebone NAXING Electronics BeadaFrame] with BeagleBone companion board<br />
:Expanded Hardware Features:<br />
:* 7" 800x480 TFT LCD screen<br />
:* PWM Backlight control<br />
:* Resistive touch panel<br />
:* Plastic frame<br />
:* 256MB Nand flash(K9F2G08)<br />
:* RS232 serial ports(UART1 w/ CTS&RTS)<br />
:* Stereo audio out<br />
:* Micro-phone in<br />
:* 6 x USER buttons<br />
:* PWM Beeper<br />
:* RTC with Battery(DS1302)<br />
<br />
* [http://beagleboardtoys.info/index.php?title=BeagleBone_LCD3 CircuitCo BeagleBone LCD3 cape and LCD display]<br />
: 3.5" TFT LCD screen, resolution 320x240, 4-wire resistive touchscreen, seven buttons at finger-friendly positions. <br />
* [http://beagleboardtoys.info/index.php?title=BeagleBone_LCD4 CircuitCo BeagleBone LCD4 cape and LCD display]<br />
: 4" TFT LCD screen, resolution 480x272, 4-wire resistive touchscreen, seven buttons at finger-friendly positions. <br />
* [http://beagleboardtoys.info/index.php?title=BeagleBone_LCD7 CircuitCo BeagleBone LCD7 cape and LCD display]<br />
: 7" TFT LCD screen, resolution 800x480, 4-wire resistive touchscreen, rear mount for BeagleBone and capes.<br />
<br />
== Cases ==<br />
* [http://www.adafruit.com/products/699 Adafruit Bone Box - Enclosure for Beagle Bone]<br />
* [http://www.skpang.co.uk/catalog/acrylic-cover-for-beaglebone-p-1076.html SK Pang Acrylic Cover for BeagleBone]<br />
* [http://specialcomp.com/beagleboard/BB-Bone-assy2_l.jpg Special Computing Bone Acrylic Case]<br />
* [http://www.thingiverse.com/thing:19153 canadaduane's 3D-printable BeagleBone Case design]<br />
* [http://www.thingiverse.com/thing:16195 NinjaBlock's 3D-printable Beaglebone front panel design]<br />
* [http://www.thingiverse.com/thing:20122 builttospec's laser-cut design for BeagleBone Enclosure with DVI Cape]<br />
* [http://www.built-to-spec.com/blog/2012/03/01/beaglebone-case-update-and-new-kits-page/ Built to Spec BeagleBone Case Update], and [http://builttospecstore.storenvy.com/products/225603-beaglebone-enclosure final product]<br />
<br />
= BeagleBone Operating Systems =<br />
BeagleBone's default operating system is [http://www.angstrom-distribution.org/ Angstrom], which ships with the board. This section provides basic information on Angstrom and other operating systems commonly used on BeagleBone. This information may help in making a preliminary choice, but full details should be obtained from the home sites.<br />
<br />
=== Angstrom ===<br />
* Home site: http://www.angstrom-distribution.org/<br />
* Mailing lists: [http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel angstrom-distro-devel] and [http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-users angstrom-distro-users]<br />
* IRC channel: irc://irc.freenode.net/#angstrom<br />
Ångström was started by a small group of people who worked on the OpenEmbedded, OpenZaurus and OpenSimpad projects to unify their effort to make a stable and user-friendly distribution for embedded devices like handhelds, set top boxes and network-attached storage devices.<br />
Ångström can scale down to devices with only 4MB of flash storage.<br />
<br />
The Angstrom community does not provide a forum, [http://www.angstrom-distribution.org/contact intentionally].<br />
<br />
Angstrom uses [http://www.busybox.net/ Busybox] for many key utilities, which has both pros and cons. Advantages include requiring less storage space and a smaller memory footprint for many common utilities, which also improves system startup time and performance. The main disadvantages stem from those utilities not mirroring exactly their full-size counterparts. These differences can be annoying if one is used to standard behavior, and may also break shell scripts that rely on portable functionality.<br />
<br />
Angstrom uses [http://connman.net/ connman] for network connection management, but no documentation is available for this currently. Also, man(1) and man pages are not provided by default, nor debugging utilities like strace(1) and tcpdump(1). Getting started may therefore present difficulties, depending on experience.<br />
<br />
=== Debian ===<br />
* See [[BeagleBoardDebian]]<br />
* Home site: [http://wiki.debian.org/ArmEabiPort http://wiki.debian.org/ArmEabiPort]<br />
* Mailing list: http://lists.debian.org/debian-arm/<br />
* IRC channel: irc://irc.debian.org/debian-arm<br />
The ARM EABI port is the default port of the standard Debian distribution of Linux for the ARM architecture ("armel").<br />
EABI ("Embedded ABI") is actually a family of ABIs, and one of the "subABIs" is the GNU EABI for Linux which is used for this port.<br />
Starting with Debian 7.0 (Wheezy) there is a port targeted at newer (armv7 with fpu) hardware with another ABI ("armhf").<br />
<br />
The [http://www.debian.org/intro/about Debian Project] is strongly committed to software freedom, and has a long pedigree and a good reputation.<br />
<br />
=== Ubuntu ===<br />
* See [[BeagleBoardUbuntu]]<br />
* Home site: https://wiki.ubuntu.com/ARM<br />
* IRC channel: irc://irc.freenode.net/#ubuntu-arm<br />
The vision for Ubuntu is part social and part economic: free software, available free of charge to everybody on the same terms, and funded through a portfolio of services provided by Canonical.<br />
<br />
The first version of Ubuntu was based on the GNOME desktop, but has since added a KDE edition, Kubuntu, and a server edition. All of the editions of Ubuntu share common infrastructure and software. In recent years, special emphasis has been placed on netbooks for lightweight, connected, mobile computing, and on the cloud as a new architecture for data centres.<br />
<br />
=== Fedora ===<br />
* See [[BeagleBoardFedora]].<br />
* Home site: http://fedoraproject.org/wiki/Architectures/ARM<br />
* Mailing list: http://lists.fedoraproject.org/pipermail/arm/<br />
* IRC channel: irc://irc.freenode.net/#fedora-arm<br />
The Fedora Project is sponsored by Red Hat, which invests in its infrastructure and resources to encourage collaboration and incubate innovative new technologies. Some of these technologies may later be integrated into Red Hat products. They are developed in Fedora and produced under a free and open source license from inception, so other free software communities and projects are free to study, adopt, and modify them.<br />
<br />
Red Hat has been a major player since the earliest days of Linux distributions, and has earned a good reputation for solidity which continues in Fedora. The Fedora ARM initiative is very active (see mailing list).<br />
<br />
=== ArchLinux ===<br />
* Home site: http://archlinuxarm.org/platforms/armv7/beaglebone<br />
* Source repository: https://github.com/archlinuxarm/PKGBUILDs<br />
* IRC channel: irc://irc.freenode.net/#archlinux-arm<br />
Arch Linux for BeagleBone is a version of the Arch Linux ARM distribution. This carries forward the Arch Linux philosophy of simplicity and user-centrism, targeting and accommodating ''competent'' Linux users by giving them complete control and responsibility over the system. Instructions are provided to assist in navigating the nuances of installation on the varied ARM platforms; however, the system itself will offer little assistance to the user.<br />
<br />
The entire distribution is on a rolling-release cycle that can be updated daily through small packages instead of huge updates on a defined release schedule. Most packages are unmodified from what the upstream developer originally released.<br />
<br />
=== Gentoo ===<br />
* Home site: http://dev.gentoo.org/~armin76/arm/beaglebone/install.xml<br />
* IRC channel: irc://irc.freenode.net/#gentoo-embedded<br />
Gentoo is a source-based '' '''meta'''-distribution'' of Linux. Instead of distributing a standard system image built with predefined options, Gentoo gives each user the means to create their own customized system that doesn't contain unused bloat and with minimum dependencies. Upgrades are incremental and under user control, so a Gentoo system is normally always up-to-date and wholesale upgrades are avoided.<br />
<br />
Being a source-based system, the downside of Gentoo for low-power ARM systems is very long install times for large applications. Cross-compilation on x86 machines and [http://www.gentoo.org/doc/en/distcc.xml distcc] can overcome this problem, but they add complexity.<br />
<br />
=== Sabayon ===<br />
* Home site: [http://wiki.sabayon.org/index.php?title=Hitchhikers_Guide_to_the_BeagleBone_%28and_ARMv7a%29 wiki.sabayon.org/Hitchhikers Guide to the BeagleBone]<br />
* IRC channel: irc://irc.freenode.net/#sabayon<br />
Sabayon Linux uses the mechanisms of Gentoo to create a pre-configured Linux distribution that can be installed as rapidly as a normal binary distribution, but still retains the benefits of Gentoo's source-based package management. Sabayon on Intel/AMD also provides the Entropy binary package management system, which could in principle greatly ease installation of packages on resource-constrained embedded Linux devices, but this is not yet available for ARM.<br />
<br />
Although it is still early days for Sabayon on ARM (and hence on BeagleBone), there is regular progress reported on [http://lxnay.wordpress.com/2012/ lxnay's blog], and contributions from the community would probably accelerate the work.<br />
<br />
=== Buildroot ===<br />
* Home site: http://www.zoobab.com/beaglebone<br />
* Buildroot project site: http://buildroot.uclibc.org/<br />
Buildroot is a set of Makefiles and patches that makes it easy to generate a complete embedded Linux system. Buildroot can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. Buildroot is useful mainly for people working with small or embedded systems, using various CPU architectures (x86, ARM, MIPS, PowerPC, etc.) : it automates the building process of your embedded system and eases the cross-compilation process.<br />
<br />
The resulting root filesystem is mounted read-only, but other filesystems can be mounted read/write for persistence. Although user accounts can be created, in practice almost everything is done as root. Buildroot uses no package manager. Instead, package selection is managed through '''make menuconfig'''.<br />
<br />
=== Nerves Erlang/OTP ===<br />
* Home site: http://nerves-project.org/<br />
* Source repository: https://github.com/nerves-project/bbone-erlang-buildroot<br />
* Erlang project site: http://www.erlang.org/<br />
Erlang is a programming language used to build massively scalable soft realtime systems with high availability requirements (5-9’s). Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.<br />
<br />
OTP is a set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.<br />
<br />
The Nerves project provides an embedded Linux-based environment for running Erlang and an easy-to-use API to access common I/O interfaces, based on '''Buildroot''' (see above). If you are interested in running an Erlang node on a low power ARM-based board such as BeagleBone, this project can get you started.<br />
<br />
= Board recovery =<br />
* See [http://elinux.org/BeagleBoardRecovery#USB_recovery BeagleBoardRecovery] ''--- (*) Check applicability''<br />
<br />
= Software Development =<br />
Software development on the BeagleBone is normally no different to any other Linux platform, and typically varies with language and with the IDE used, if any. This section deals only with development issues that are specific to BeagleBone, or mostly so.<br />
<br />
=== Cloud9 IDE and Bonescript ===<br />
''..... description here .....''<br />
* Source repository: https://github.com/jadonk/bonescript<br />
* Language documentation: http://nodejs.org/<br />
<br />
=== BeagleBone JTAG Debugging ===<br />
''..... description here .....''<br />
<br />
===Using Netbeans to remotely compile and debug C/C++===<br />
<br />
When developing c/c++ on a linux desktop, a toolchain is available for cross-compiling the code for arm. However no such toolchain is readily available for windows. Netbeans can be used to write the code on your desktop, save it in a location accessible to the beagle, and then automatically compile it on the beagle itself using ssh and the built in compiler on the beaglebone's OS.<br />
<br />
Netbeans can also use GDB for remote debugging over ssh.<br />
<br />
Requirements:<br />
<br />
* Set up a samba / smb network share through which code can be shared between both desktop and beagle<br />
* Give netbeans the SSh login details of the beagle<br />
* Give netbeans the path mapping so it can translate between the desktop code folder and beagle code folder<br />
* Setup only takes a few minutes.<br />
<br />
====More info====<br />
<br />
* Download Netbeans (Windows/Linux/OS-X/Solaris): http://www.netbeans.org/<br />
* Example tutorial on setting this up: http://mechomaniac.com/BeagleboardDevelopmentWithNetbeans<br />
<br />
<br />
= Kernel =<br />
<br />
=== Getting the Right Kernel ===<br />
The modern BeagleBone kernels are Maintained by Koen Kooi and are available on the 3.8 branch at https://github.com/beagleboard/kernel/tree/3.8 . This repo contains a set of patches and a script which downloads a mainline kernel and then patches it appropriately. Exact steps for building it are in the README.<br />
<br />
=== Device Tree ===<br />
The 3.5 and newer BeagleBone kernels make use of [[Device_Trees|Device Trees]]. A Device Tree is a text file which describes the layout of a machine, commonly the combination of a system-on-chip (SoC) and a board, so that the kernel can know at what addresses and on which buses hardware is located. The BeagleBone kernels make use of an extension called [[Capemgr|Capemgr]] which allows dynamic loading and unloading of device tree fragments both at compile time and from userspace post-boot.<br />
<br />
= FAQ =<br />
<br />
For BeagleBoard frequently asked questions (FAQ) see [[BeagleBoardFAQ|community FAQ]] and "official" [http://beagleboard.org/support/faq BeagleBoard.org FAQ].<br />
<br />
= Links =<br />
== Home site and Community ==<br />
* [http://beagleboard.org/ beagleboard.org] -- home for BeagleBoard and BeagleBone products<br />
* [http://beagleboard.org/Products/BeagleBone%20Black BeagleBone Black] -- manufacturer's page for the second BeagleBone board<br />
* irc://irc.freenode.net/#beagle -- official combined IRC channel<br />
* [http://beagleboard.org/discuss Google Groups forums/mailing list] -- [https://groups.google.com/forum/?fromgroups#!forum/beagleboard English], [http://groups.google.com/group/pandabeagle-jp Japan], [http://groups.google.com/group/beagleboard-brasil Brasil], [https://groups.google.com/group/beagle-board-turkiye Turkey]<br />
* [http://beagleboard.org/project BeagleBoard and BeagleBone projects list]<br />
* [https://docs.google.com/spreadsheet/ccc?key=0AtD7XdBlve3HdDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc&hl=en_US#gid=0 Capes Registry] and its [https://docs.google.com/spreadsheet/viewform?formkey=dDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc6MQ registration page]<br />
* [http://www.adafruit.com/blog/category/beaglebone/ BeagleBone articles at Adafruit blog] -- products, projects and tutorials<br />
* Use [http://www.google.de/ Google] to search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''<br />
* [https://www.linux.com/news/embedded-mobile/mobile-linux/715298-45-beaglebone-black-keeps-eyes-on-raspberry-pi Linux.com report on BeagleBone Black] -- with words from beagleBoard.org's cofounder Jason Kridner<br />
* [https://github.com/selsinork/beaglebone-black-pinmux github.com/selsinork/beaglebone-black-pinmux] -- pinmux data for BeagleBone Black, including extraction scripts<br />
* [http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2 Element 14 knode blog: Working with the PRU-ICSS] -- detailed tutorial on starting with the PRU on BBB<br />
<br />
== Tutorials and Videos ==<br />
* [http://beagleboard.org/static/bonescript/bone101/index.html ''BeagleBone: BeagleBoard-101 Intro''] -- slides (turn off Javascript for single page)<br />
* [http://www.youtube.com/watch?v=EEnOWR-GXjk ''BeagleBone Intro''], video by Jason Kridner, Texas Instruments<br />
* [http://www.youtube.com/watch?v=Y0uqRVxismQ ''How-To: Get Started with the BeagleBone''], video by Matt Richardson, MakeMagazine<br />
* [http://www.youtube.com/watch?v=z6b4zlh0IrE ''The Beaglebone - Unboxing, Introduction Tutorial and First Example''], video by Derek Molloy, DCU/EE<br />
* [http://www.youtube.com/watch?v=vFv_-ykLppo ''Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux Development using Eclipse''], video by Derek Molloy, DCU/EE<br />
* [http://www.youtube.com/watch?v=SaIpz00lE84 ''Beaglebone: GPIO Programming on ARM Embedded Linux''], video by Derek Molloy, DCU/EE<br />
* [https://gist.github.com/4013192 ''C code for GPIO polling''], sample code by Andrew Montag<br />
* [http://borderhack.com/?p=1062 First steps with the Beaglebone], introductory HOWTO by octavio at borderhack<br />
* [http://learn.adafruit.com/beaglebone Adafruit Learning System - BeagleBone] -- web page<br />
<br />
== Manuals and resources ==<br />
* [http://beagleboard.org/static/beaglebone/a3/Docs/Hardware/BONE_SRM.pdf BeagleBone System Reference Manual (rev. A3_1.0)]<br />
* [http://www.ti.com/am335x Texas Instruments - Sitara AM335x ARM Cortex-A8 Microprocessor overview]<br />
* [http://www.ti.com/product/am3359 Texas Instruments - AM3359 Sitara ARM Cortex-A8 Microprocessor full documentation]<br />
* [http://infocenter.arm.com/help/topic/com.arm.doc.subset.architecture.reference/index.html#v7AR ARM/ARMv7-AR Architecture] -- ARM Cortex-A8 architecture overview<br />
* [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344d/DDI0344D_cortex_a8_r2p1_trm.pdf ARM Cortex-A8 Technical Reference Manual r2p1]<br />
* [http://www.arm.com/support/university/development-platforms/cortex-a8-development-platforms.php ARM Cortex-A Development Platforms] -- ARM page on Beagle boards<br />
* [http://www.ti.com/product/tps65217b TI TPS65217 Power Management IC], [http://www.ti.com/lit/ds/symlink/tps65217.pdf TPS65217 PMIC datasheet]<br />
* [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H Hi-Speed Dual USB UART/FIFO IC overview], [http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf FT2232H datasheet]<br />
* [http://www.linux-usb.org/gadget/index.html Linux-USB Gadget API Framework] and [http://www.linux-usb.org/gadget/h2-otg.html USB OTG], and [http://forums.gentoo.org/viewtopic-t-843255.html kernel config] -- Ethernet-over-USB<br />
<br />
== Translations ==<br />
* 한국어:[[KR:BeagleBone]]<br />
<br />
== Errata ==<br />
<br />
= Subpages =<br />
<splist<br />
parent=<br />
showparent=no<br />
sort=desc<br />
sortby=title<br />
liststyle=ordered<br />
showpath=no<br />
kidsonly=no<br />
debug=0<br />
/></div>Defianthttps://elinux.org/index.php?title=Panda_How_to_MLO_%26_u-boot&diff=93974Panda How to MLO & u-boot2012-01-31T07:57:14Z<p>Defiant: Some clarifications</p>
<hr />
<div>== Introduction ==<br />
A Panda board does not have any onboard flash, where many other development or evaluation boards<br />
keep their bootloader. Rather, code onboard the board (presumably in ROM) reads the second-stage<br />
bootloaders from the MMC (SD card).<br />
<br />
The first-stage bootloader runs directly on the board from power-up. I don't know the<br />
name of this bootloader. This bootloader initializes a minimal amount of CPU and board hardware,<br />
then accesses the first partition of the SD card (which must be in FAT format), and loads<br />
a file called "MLO", and executes it. "MLO" is the second-stage bootloader.<br />
<br />
The second-stage bootloader can apparently be one of either the X-loader or SPL.<br />
This bootloader apparently also just reads the first partition of the SD card, and<br />
loads a file called "u-boot.bin", and executes it. "u-boot.bin" is the third-stage bootloader.<br />
<br />
The third-stage bootloader is U-boot, which is a popular bootloader for many different<br />
embedded boards and products. This bootloader has lots of different features, including<br />
an interactive shell, variables, ability to access the SD card and show its contents, etc.<br />
What happens next depends on the version of U-boot you have for the Panda board, and how<br />
it is configured. In a very simple configuration, U-Boot will look for the file "uImage"<br />
in the root of the first partition of the SD card (which, again, must be formatted as a FAT<br />
partition), and execute that. This is the Linux kernel. U-Boot passes the kernel a<br />
command line argument. Depending on how the kernel is configured it may accept the command<br />
line from U-Boot, or use one that was compiled into it when it was built.<br />
<br />
Newer kernels require that you use a recent MLO (SPL) and u-boot.<br />
Note: New u-boot with SPL replaces x-loader which you might find in other howtos.<br />
<br />
You can build these from source, or try to find binaries. One issue with the binary route is that you might want to alter the kernel command line embedded inside u-boot. Such as for experimenting with different partition formats, or different filesystem types (ext3 vs ext2), etc. Of course you could stop the autoboot and type it in yourself, but we will build from source. An even better solution is to use a boot.scr file to send parameters to u-boot, it's easy to create, see below. <br />
<br />
For this How-to, we will use the Code Sourcery G++ version arm-2009q3. It should already be installed on your system. MLO, u-boot and kernels have also been successfully built with arm-2010q1.<br />
<br />
You can get u-boot from either linaro or mainline. The linaro tree usually has the latest patches.<br />
<br />
Note: This is for Pandaboard, not Pandaboard ES.<br />
If you have a Pandaboard ES try [[PandaBoard_ES_uboot_howto]] instead.<br />
<br />
== u-boot (linaro) ==<br />
First, let's get the u-boot source code and build it.<br />
<br />
git clone git://git.linaro.org/boot/u-boot-linaro-stable.git<br />
<br />
cd to the u-boot-linaro-stable directory and checkout tag 2011.11.2<br />
<br />
cd u-boot-linaro-stable<br />
git checkout 2011.11.2<br />
<br />
Next, select the panda config. Make sure your cross compiler is in your $PATH:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap4_panda_config<br />
<br />
Change ttyS2 to ttyO2 in the u-boot kernel command line in: u-boot/include/configs/omap4_panda.h<br />
<br />
Now compile U-boot:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
This should produce the files MLO and u-boot.img in the u-boot directory.<br />
Copy both files to your sd card, you now should be able to boot.<br />
<br />
== u-boot (mainline) ==<br />
<br />
Same as above but clone from denx.de:<br />
<br />
git clone git://git.denx.de/u-boot.git<br />
<br />
And checkout tag v2011.09:<br />
<br />
git checkout v2011.09<br />
<br />
You now should be able to boot.<br />
<br />
Note: Tag v2011.09 from mainline might fail to boot on some Pandaboard revisions, see http://lists.denx.de/pipermail/u-boot/2011-October/104842.html<br />
If this Image fails, you can try the Linaro version from above instead.<br />
<br />
=== boot.scr ===<br />
<br />
This is optional, do this if you want to change Linux Bootargs or U-Boot settings without recompiling.<br />
<br />
Copy the following code to boot_mmc.txt<br />
setenv bootargs 'root=/dev/mmcblk0p2 rw rootwait rootfstype=ext3 console=ttyO2,115200n8 vram=16M'<br />
fatload mmc 0 82000000 uImage<br />
bootm 82000000<br />
<br />
Then run the following command from in same directory that you created boot_mmc.txt:<br />
<br />
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Panda SD Boot" -d boot_mmc.txt boot.scr<br />
<br />
This will produce a boot.scr file.<br />
<br />
Edit the boot_mmc.txt file to suit your needs and re-run the mkimage command to generate a new boot.scr,<br />
put it into the vfat partition along with MLO and uboot.bin.<br />
<br />
== Creating a working SD card ==<br />
<br />
Use this script to prepare an SD card with the small vfat partition and the larger ext2/3 partition<br />
(it has been posted many places, I take no credit for it btw, the card needs to be larger than 64Mbytes since this original script <br />
wants to make a 64Mbyte vfat partition) You may need to be root for some of the following operations. For the feint of heart,<br />
you can use sudo instead in the right places. <br />
<br />
#!/bin/sh<br />
if [ ! "$1" = "/dev/sda" ] ; then<br />
DRIVE=$1<br />
if [ -b "$DRIVE" ] ; then<br />
dd if=/dev/zero of=$DRIVE bs=1024 count=1024<br />
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`<br />
echo DISK SIZE - $SIZE bytes<br />
CYLINDERS=`echo $SIZE/255/63/512 | bc`<br />
echo CYLINDERS - $CYLINDERS<br />
{<br />
echo ,9,0x0C,*<br />
echo ,,,-<br />
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE<br />
mkfs.vfat -F 32 -n "boot" ${DRIVE}1<br />
mke2fs -j -L "rootfs" ${DRIVE}2<br />
fi <br />
fi<br />
<br />
<br />
If you have trouble with the pandaboards ROM CODE not liking your vfat partition check it out with this program.<br />
<br />
Thanks go to mru and av500 who have gone a long way to dispell the cargo-cult fokelore surrounding the ROM CODE.<br />
<br />
<br />
#include <stdio.h><br />
#include <sys/types.h><br />
#include <unistd.h><br />
#include <sys/types.h><br />
#include <sys/stat.h><br />
#include <fcntl.h><br />
<br />
int main( int argc, char **argv )<br />
{<br />
if ( argc < 2 ) {<br />
printf("check /dev/sdX you must be root too \n");<br />
return 1;<br />
}<br />
int fd = open( argv[1], O_RDONLY );<br />
<br />
lseek( fd, 0 + 446 + 8, SEEK_SET );<br />
<br />
int start;<br />
int num_mbr;<br />
read( fd, &start, 4 );<br />
read( fd, &num_mbr, 4 );<br />
<br />
int num_bpb = 0;<br />
<br />
lseek( fd, start * 512 + 0x13, SEEK_SET );<br />
read( fd, &num_bpb, 2 );<br />
<br />
if( num_bpb == 0 ) {<br />
lseek( fd, start * 512 + 0x20, SEEK_SET );<br />
read( fd, &num_bpb, 4 );<br />
}<br />
<br />
printf( "start: %d mbr: %d bpb: %d -> %s\n", <br />
start, num_mbr, num_bpb, <br />
num_mbr == num_bpb ? "PASS" : "FAIL!" );<br />
<br />
return num_mbr == num_bpb;<br />
<br />
<br />
<br />
Save the above text as sdtest.c and compile it with: <br />
gcc sdtest.c -o sdtest<br />
<br />
I run it on the desktop that setup my sd card, if it reports failure then something went wrong with the setup script.<br />
<br />
No clue as to how to fix it (yet).<br />
<br />
More to come....<br />
<br />
[[Category:PandaBoard]]</div>Defianthttps://elinux.org/index.php?title=PandaBoard_ES_uboot_howto&diff=93968PandaBoard ES uboot howto2012-01-31T07:47:50Z<p>Defiant: Added Panda Category this page may easier be found.</p>
<hr />
<div>== Getting the Source ==<br />
<br />
To get the source code for U-Boot, clone a copy of the Linaro U-Boot stable tree:<br />
<br />
<pre><br />
mkdir pandaboard-es<br />
cd pandaboard-es<br />
git clone git://git.linaro.org/boot/u-boot-linaro-stable.git<br />
cd u-boot-linaro-stable<br />
git checkout -b pandaboard-es origin/Linaro-u-boot-2011.12<br />
</pre><br />
<br />
As of 12/18/2011, the master branch tagged Linaro-u-boot-2011.12 produces a working MLO/U-Boot pair which will boot both Panda and Panda-ES boards. Previously, the Panda EA1 with rev ES2.0 silicon would not boot.<br />
<br />
== Configure and Compile ==<br />
<br />
To configure and compile U-Boot for PandaBoard ES do the following:<br />
<br />
<pre><br />
export CROSS_COMPILE=arm-none-linux-gnueabi-<br />
make omap4_panda_config<br />
make<br />
</pre><br />
<br />
Note:<br />
This assumes that you are using and have installed the CodeSourcery 2011.03-41 for ARM GNU/Linux toolchain.<br />
If you are using a different toolchain, make sure to adjust the CROSS_COMPILE variable accordingly. <br />
<br />
Using "Sourcery CodeBench Lite 2011.09-70 for ARM GNU/Linux" generates a compiler error, as does using the toolchain that comes with Ubuntu's <tt>gcc-arm-linux-gnueabi</tt> package as follows:<br />
<br />
<pre><br />
... snip ...<br />
arm-linux-gnueabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ <br />
-DCONFIG_SYS_TEXT_BASE=0x80E80000 -DCONFIG_SPL_TEXT_BASE=0x40303080 <br />
-I/home/rpjday/panda/uboot/u-boot-linaro-stable/include -fno-builtin <br />
-ffreestanding -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.6.1/include <br />
-pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 <br />
-Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security <br />
-o clocks.o clocks.c -c<br />
clocks.c: In function ‘enable_non_essential_clocks’:<br />
clocks.c:420:13: internal compiler error: in decode_addr_const, at varasm.c:2638<br />
Please submit a full bug report,<br />
with preprocessed source if appropriate.<br />
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.<br />
Preprocessed source stored into /tmp/ccE2XxKg.out file, please attach this to your bugreport.<br />
</pre><br />
<br />
At the present time, this seems to be a problem with gcc 4.6.1.<br />
<br />
GNU gcc 4.6.2 appears to have a fix for this issue. Stay tuned for a How-to on how to build a gcc 4.6.x toolchain that will properly compile u-boot.<br />
<br />
<br />
== Copy Files ==<br />
<br />
Copy the MLO and U-Boot images to the boot partition of your mounted SD card:<br />
<br />
<pre><br />
cp MLO /media/boot<br />
cp u-boot.img /media/boot<br />
sync<br />
</pre><br />
<br />
Make sure you unmount your SD card prior to removing it from the host PC.<br />
<br />
[[Category:PandaBoard]]</div>Defianthttps://elinux.org/index.php?title=Panda_How_to_MLO_%26_u-boot&diff=78260Panda How to MLO & u-boot2011-12-06T21:18:08Z<p>Defiant: /* Introduction */ note x-loader -> spl</p>
<hr />
<div>== Introduction ==<br />
Newer kernels require that you use a recent MLO (SPL) and u-boot.<br />
Note: New u-boot with SPL replaces x-loader which you might find in other howtos.<br />
<br />
You can build these from source, or try to find binaries. One issue with the binary route is that you might want to alter the kernel command line embedded inside u-boot. Such as for experimenting with different partition formats, or different filesystem types (ext3 vs ext2), etc. Of course you could stop the autoboot and type it in yourself, but we will build from source. An even better solution is to use a boot.scr file to send parameters to u-boot, it's easy to create, see below. <br />
<br />
For this How-to, we will use the Code Sourcery G++ version arm-2009q3. It should already be installed on your system. MLO, u-boot and kernels have also been successfully built with arm-2010q1.<br />
<br />
You can get u-boot from either linaro or mainline. The linaro tree usually has the latest patches.<br />
<br />
== u-boot (linaro) ==<br />
First, let's get the u-boot source code and build it.<br />
<br />
git clone git://git.linaro.org/boot/u-boot-linaro-stable.git<br />
<br />
cd to the u-boot-linaro-stable directory and checkout tag 2011.11.2<br />
<br />
cd u-boot-linaro-stable<br />
git checkout 2011.11.2<br />
<br />
Next, select the panda config. Make sure your cross compiler is in your $PATH:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap4_panda_config<br />
<br />
Change ttyS2 to ttyO2 in the u-boot kernel command line in: u-boot/include/configs/omap4_panda.h<br />
<br />
Now compile U-boot:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
This should produce the files MLO and u-boot.img in the u-boot directory. Copy both files to your sd card.<br />
<br />
== u-boot (mainline) ==<br />
<br />
Same as above but clone from denx.de:<br />
<br />
git clone git://git.denx.de/u-boot.git<br />
<br />
And checkout tag v2011.09:<br />
<br />
git checkout v2011.09<br />
<br />
Note: Tag v2011.09 from mainline might fail on some Pandaboard revisions, see http://lists.denx.de/pipermail/u-boot/2011-October/104842.html<br />
You can use Linaro instead.<br />
<br />
=== boot.scr ===<br />
<br />
Copy the following code to boot_mmc.txt<br />
setenv bootargs 'root=/dev/mmcblk0p2 rw rootwait rootfstype=ext3 console=ttyO2,115200n8 vram=16M'<br />
fatload mmc 0 82000000 uImage<br />
bootm 82000000<br />
<br />
Then run the following command from in same directory that you created boot_mmc.txt:<br />
<br />
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Panda SD Boot" -d boot_mmc.txt boot.scr<br />
<br />
This will produce a boot.scr file.<br />
<br />
Edit the boot_mmc.txt file to suit your needs and re-run the mkimage command to generate a new boot.scr,<br />
put it into the vfat partition along with MLO and uboot.bin.<br />
<br />
== Creating a working SD card ==<br />
<br />
Use this script to prepare an SD card with the small vfat partition and the larger ext2/3 partition<br />
(it has been posted many places, I take no credit for it btw, the card needs to be larger than 64Mbytes since this original script <br />
wants to make a 64Mbyte vfat partition) You may need to be root for some of the following operations. For the feint of heart,<br />
you can use sudo instead in the right places. <br />
<br />
#!/bin/sh<br />
if [ ! "$1" = "/dev/sda" ] ; then<br />
DRIVE=$1<br />
if [ -b "$DRIVE" ] ; then<br />
dd if=/dev/zero of=$DRIVE bs=1024 count=1024<br />
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`<br />
echo DISK SIZE - $SIZE bytes<br />
CYLINDERS=`echo $SIZE/255/63/512 | bc`<br />
echo CYLINDERS - $CYLINDERS<br />
{<br />
echo ,9,0x0C,*<br />
echo ,,,-<br />
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE<br />
mkfs.vfat -F 32 -n "boot" ${DRIVE}1<br />
mke2fs -j -L "rootfs" ${DRIVE}2<br />
fi <br />
fi<br />
<br />
<br />
If you have trouble with the pandaboards ROM CODE not liking your vfat partition check it out with this program.<br />
<br />
Thanks go to mru and av500 who have gone a long way to dispell the cargo-cult fokelore surrounding the ROM CODE.<br />
<br />
<br />
#include <stdio.h><br />
#include <sys/types.h><br />
#include <unistd.h><br />
#include <sys/types.h><br />
#include <sys/stat.h><br />
#include <fcntl.h><br />
<br />
int main( int argc, char **argv )<br />
{<br />
if ( argc < 2 ) {<br />
printf("check /dev/sdX you must be root too \n");<br />
return 1;<br />
}<br />
int fd = open( argv[1], O_RDONLY );<br />
<br />
lseek( fd, 0 + 446 + 8, SEEK_SET );<br />
<br />
int start;<br />
int num_mbr;<br />
read( fd, &start, 4 );<br />
read( fd, &num_mbr, 4 );<br />
<br />
int num_bpb = 0;<br />
<br />
lseek( fd, start * 512 + 0x13, SEEK_SET );<br />
read( fd, &num_bpb, 2 );<br />
<br />
if( num_bpb == 0 ) {<br />
lseek( fd, start * 512 + 0x20, SEEK_SET );<br />
read( fd, &num_bpb, 4 );<br />
}<br />
<br />
printf( "start: %d mbr: %d bpb: %d -> %s\n", <br />
start, num_mbr, num_bpb, <br />
num_mbr == num_bpb ? "PASS" : "FAIL!" );<br />
<br />
return num_mbr == num_bpb;<br />
<br />
<br />
<br />
Save the above text as sdtest.c and compile it with: <br />
gcc sdtest.c -o sdtest<br />
<br />
I run it on the desktop that setup my sd card, if it reports failure then something went wrong with the setup script.<br />
<br />
No clue as to how to fix it (yet).<br />
<br />
More to come....<br />
<br />
[[Category:PandaBoard]]</div>Defianthttps://elinux.org/index.php?title=Panda_How_to_MLO_%26_u-boot&diff=78236Panda How to MLO & u-boot2011-12-06T20:21:21Z<p>Defiant: Update to u-boot+spl</p>
<hr />
<div>== Introduction ==<br />
Newer kernels require that you use a recent MLO (SPL) and u-boot.<br />
<br />
You can build these from source, or try to find binaries. One issue with the binary route is that you might want to alter the kernel command line embedded inside u-boot. Such as for experimenting with different partition formats, or different filesystem types (ext3 vs ext2), etc. Of course you could stop the autoboot and type it in yourself, but we will build from source. An even better solution is to use a boot.scr file to send parameters to u-boot, it's easy to create, see below. <br />
<br />
For this How-to, we will use the Code Sourcery G++ version arm-2009q3. It should already be installed on your system. MLO, u-boot and kernels have also been successfully built with arm-2010q1.<br />
<br />
You can get u-boot from either linaro or mainline. The linaro tree usually has the latest patches.<br />
<br />
== u-boot (linaro) ==<br />
First, let's get the u-boot source code and build it.<br />
<br />
git clone git://git.linaro.org/boot/u-boot-linaro-stable.git<br />
<br />
cd to the u-boot-linaro-stable directory and checkout tag 2011.11.2<br />
<br />
cd u-boot-linaro-stable<br />
git checkout 2011.11.2<br />
<br />
Next, select the panda config. Make sure your cross compiler is in your $PATH:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap4_panda_config<br />
<br />
Change ttyS2 to ttyO2 in the u-boot kernel command line in: u-boot/include/configs/omap4_panda.h<br />
<br />
Now compile U-boot:<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
This should produce the files MLO and u-boot.img in the u-boot directory. Copy both files to your sd card.<br />
<br />
== u-boot (mainline) ==<br />
<br />
Same as above but clone from denx.de:<br />
<br />
git clone git://git.denx.de/u-boot.git<br />
<br />
And checkout tag v2011.09:<br />
<br />
git checkout v2011.09<br />
<br />
Note: Tag v2011.09 from mainline might fail on some Pandaboard revisions, see http://lists.denx.de/pipermail/u-boot/2011-October/104842.html<br />
You can use Linaro instead.<br />
<br />
=== boot.scr ===<br />
<br />
Copy the following code to boot_mmc.txt<br />
setenv bootargs 'root=/dev/mmcblk0p2 rw rootwait rootfstype=ext3 console=ttyO2,115200n8 vram=16M'<br />
fatload mmc 0 82000000 uImage<br />
bootm 82000000<br />
<br />
Then run the following command from in same directory that you created boot_mmc.txt:<br />
<br />
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Panda SD Boot" -d boot_mmc.txt boot.scr<br />
<br />
This will produce a boot.scr file.<br />
<br />
Edit the boot_mmc.txt file to suit your needs and re-run the mkimage command to generate a new boot.scr,<br />
put it into the vfat partition along with MLO and uboot.bin.<br />
<br />
== Creating a working SD card ==<br />
<br />
Use this script to prepare an SD card with the small vfat partition and the larger ext2/3 partition<br />
(it has been posted many places, I take no credit for it btw, the card needs to be larger than 64Mbytes since this original script <br />
wants to make a 64Mbyte vfat partition) You may need to be root for some of the following operations. For the feint of heart,<br />
you can use sudo instead in the right places. <br />
<br />
#!/bin/sh<br />
if [ ! "$1" = "/dev/sda" ] ; then<br />
DRIVE=$1<br />
if [ -b "$DRIVE" ] ; then<br />
dd if=/dev/zero of=$DRIVE bs=1024 count=1024<br />
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`<br />
echo DISK SIZE - $SIZE bytes<br />
CYLINDERS=`echo $SIZE/255/63/512 | bc`<br />
echo CYLINDERS - $CYLINDERS<br />
{<br />
echo ,9,0x0C,*<br />
echo ,,,-<br />
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE<br />
mkfs.vfat -F 32 -n "boot" ${DRIVE}1<br />
mke2fs -j -L "rootfs" ${DRIVE}2<br />
fi <br />
fi<br />
<br />
<br />
If you have trouble with the pandaboards ROM CODE not liking your vfat partition check it out with this program.<br />
<br />
Thanks go to mru and av500 who have gone a long way to dispell the cargo-cult fokelore surrounding the ROM CODE.<br />
<br />
<br />
#include <stdio.h><br />
#include <sys/types.h><br />
#include <unistd.h><br />
#include <sys/types.h><br />
#include <sys/stat.h><br />
#include <fcntl.h><br />
<br />
int main( int argc, char **argv )<br />
{<br />
if ( argc < 2 ) {<br />
printf("check /dev/sdX you must be root too \n");<br />
return 1;<br />
}<br />
int fd = open( argv[1], O_RDONLY );<br />
<br />
lseek( fd, 0 + 446 + 8, SEEK_SET );<br />
<br />
int start;<br />
int num_mbr;<br />
read( fd, &start, 4 );<br />
read( fd, &num_mbr, 4 );<br />
<br />
int num_bpb = 0;<br />
<br />
lseek( fd, start * 512 + 0x13, SEEK_SET );<br />
read( fd, &num_bpb, 2 );<br />
<br />
if( num_bpb == 0 ) {<br />
lseek( fd, start * 512 + 0x20, SEEK_SET );<br />
read( fd, &num_bpb, 4 );<br />
}<br />
<br />
printf( "start: %d mbr: %d bpb: %d -> %s\n", <br />
start, num_mbr, num_bpb, <br />
num_mbr == num_bpb ? "PASS" : "FAIL!" );<br />
<br />
return num_mbr == num_bpb;<br />
<br />
<br />
<br />
Save the above text as sdtest.c and compile it with: <br />
gcc sdtest.c -o sdtest<br />
<br />
I run it on the desktop that setup my sd card, if it reports failure then something went wrong with the setup script.<br />
<br />
No clue as to how to fix it (yet).<br />
<br />
More to come....<br />
<br />
[[Category:PandaBoard]]</div>Defiant