Tuesday, June 30, 2009
Monday, June 29, 2009
perl $DSPLINK/config/bin/dsplinkcfg.pl \
for uClibc toolchain
perl $(DSPLINK)/config/bin/dsplinkcfg.pl --platform=DM357 --nodsp=1 --dspcfg_0=DM357GEMSHMEM \ --dspos_0=DSPBIOS5XX --gppos=MVL5U --comps=ponslrm --legacy=1
Sunday, June 28, 2009
Why is FFmpeg from the repository so limited?
Legal reasons. Some software is limited due to geographical differences in software patents, legal restrictions on free speech, and restrictions on certain technologies. Ubuntu sidesteps these legal restrictions by not including some restricted packages by default. Users must install these packages on their own. See Restricted Formats Ubuntu Community Documentation and FFmpeg License and Legal Considerations for more details.
How do I fix FFmpeg?
There are several options:
A. Compile FFmpeg yourselfA. Compiling FFmpeg yourself (for all Ubuntu versions)
B. Install the "unstripped" libraries from the repository
C. Install the ubuntu-restricted-extras package
D. Install FFmpeg from Medibuntu
The official FFmpeg answer is to compile it yourself, giving you the power to get what you want with the benefits of the most recent FFmpeg revision. This is an excellent solution and is explained here:
HOWTO: Install and use the latest FFmpeg and x264
However, this isn't for everyone, especially beginners. Sometimes you want an official package that works right now; with a minimum of fuss. Off to the other options...
B. Installing the "unstripped" libraries from the repository
This is the easiest option for Intrepid and Jaunty users and is not available for prior Ubuntu versions. FFmpeg from the repository does not include many restricted encoders, formats, and codecs including: h261, h263, h263p, aac (libfaac), mp3 (libmp3lame), h264 (libx264), xvid (libxvid), mpeg2video, mpeg4, msmpeg4, msmpeg4v1, and msmpeg4v2. You can fix this by installing the "unstripped" FFmpeg libraries that will enable these restricted encoders. Open up Terminal (Applications -> Accessories -> Terminal) and enter:
Ubuntu Jaunty Jackalope 9.04
sudo apt-get install ffmpeg libavcodec-unstripped-52
sudo apt-get install ffmpeg libavcodec-unstripped-51
C. Installing the ubuntu-restricted-extras package
Another option for Jaunty and Ibex is to install the ubuntu-restricted-extras package. This is a metapackage, which means that it will install multiple packages including the "unstripped" FFmpeg libraries. This is a sledgehammer approach, especially if you are bandwidth limited, and will install a large amount of other packages that you may not want. To install this package, open up Terminal (Applications -> Accessories -> Terminal) and enter:
sudo apt-get install ffmpeg ubuntu-restricted-extras
This option is only available for Ubuntu Hardy Heron 8.04 and Ubuntu Gutsy Gibbon 7.10. Medibuntu is a third-party repository that contains a number of packages that are unable to be included in the official Ubuntu repositories. To install FFmpeg from Medibuntu open Terminal (Applications -> Accessories -> Terminal) and run the following:
sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list; sudo apt-get -q update; sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring; sudo apt-get -q update
sudo apt-get install ffmpeg
Here's an example to encode a mp3 file:
ffmpeg -i inputfile.mp4 -acodec libmp3lame -ab 128k outputfile.mp3
B. Uninstalling the "unstripped" libraries
sudo apt-get remove ffmpeg libavcodec-unstripped-5*
sudo apt-get remove ubuntu-restricted-extras
sudo apt-get autoremove ffmpeg medibuntu-keyring; sudo rm /etc/apt/sources.list.d/medibuntu.list; sudo apt-get update
The root filesystem is a basic set of packages needed to provide a usable login environment around a kernel and kernel modules. The rootfs must be extensible to a full system so normal packaging tools need to be supported. See also Emdebian website.
The main Debian root filesystem is based on 'Essential' - a collection of packages that contain: Essential: yes in debian/control and although small in Debian terms, it is still much too large for Emdebian.
This page concentrates on how to use the emdebian-rootfs package to build an Emdebian root filesystem for your device and describes how to customize your package set for your needs.
In order to be able to build an embedded Linux system, obviously you need:
The GNU cross-development tools installed on your host machine (presumably a Linux PC machine).
Your target system will need to have these different pieces of software:
Firmware (or boot loader), such as u-boot, redboot or a BIOS: you can these choose to boot from Flash, network (tftp), or disk;
Kernel (linux): the kernel must be compiled with support for your board (cpu and peripherals);
Root file system (contains the C/C++ libraries, the shell, etc.).
If your board comes with a ‘good’ firmware, you might not need at all a JTAG programmer. Using the firmware, you might be able to program the flash with the kernel and/or the root filesystem. Both u-boot and redboot let you do this, assuming they have the drive for the Flash you are using.
(1) Format SD card at Host
Insert SD card to SD slot of the host
$ sudo apt-get install gparted
$ sudo gparted
/dev/sdc1 : fat32 : /media/disk-1 : 62.72 MB
/dev/sdc2 : ext3 : /media/disk-2 : 1.80 GB
(2) Download prebuilt Linux kernel and install it to the fat32 partition of SD card
Get stable version: 2.6.29-oer34
$ wget http://www.rcn-ee.com/deb/kernel/beagle/lenny/v2.6.29-58cf2f1-oer34/uImage
$ copy uImage /media/disk-1
$ sudo umount /media/disk-1
(3) Make Ubuntu Root File System on the ext3 partition of SD card
$ sudo apt-get install qemu
$ wget http://ports.ubuntu.com/pool/main/d/debootstap/debootstrap_1.0.13~jaunty1_all.deb
$ sudo dpkg -i debootstrap_1.0.13~jaunty1_all.deb
$ wget http://people.ubuntu.com/~ogra/arm/build-arm-rootfs
$ sudo chmod +x build-arm-rootfs
$ sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password passwd --imagesize 2G --seed gcc,make,usbutils
$ sudo tar xfp armel-rootfs-
$ cd /media/disk-2
$ sudo vi etc/event.d/ttyS2
start on runlevel 2
start on runlevel 3
stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6
exec /sbin/getty -L 115200 ttyS2
$ cd ..
$ sudo umount /media/disk-2
(4) U-Boot setting and boot Linux at Beagle Board console (U-Boot Reference)
Insert SD card to SD slot of Beagle Board
U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
DRAM: 128 MB
NAND: 256 MiB
Audio Tone on Speakers ... complete
Hit any key to stop autoboot:
OMAP3 beagleboard.org # setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
OMAP3 beagleboard.org # setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 rw'
OMAP3 beagleboard.org # saveenv
OMAP3 beagleboard.org # boot
reading uImage ...
1. Pop in the Live CD, boot from it until you reach the desktop.
2. Open a terminal window or switch to a tty.
3. Type "grub"
4. Type "root (hd0,6)", or whatever your harddisk + boot partition numbers are (my /boot is at /dev/sda7, which translates to hd0,6 for grub).
5. Type "setup (hd0)", ot whatever your harddisk nr is.
6. Quit grub by typing "quit".
2. Go through all the process until you reech "[!!!] Disk Partition"
3. Select Manual Partition
4. Mount your appropriate linux partions
5. DO NOT FORMAT THEM.
6. Finish the manual partition
7. Say "Yes" when it asks you to save the changes
8. It will give you errors saying that "the system couldn't install ....." after that
9. Ignore them, keep select "continue" until you get back to the Ubuntu installation menu
10. Jump to "Install Grub ...."
11. Once it is finished, just restart your computer