Building an Internet Radio on the Freescale I MX31PDK With
Total Page:16
File Type:pdf, Size:1020Kb
Building an Internet Radio on the Freescale i. MX31PDK with LinuxLink 303.0 Webinar Series Session 2 Building a custom internet radio GUI on GTK+ with Glade for the i.MX31PDK We will start our webinar in few minutes. Thank you for your patience www.timesys.com ©2009 TimeSys Corp. 2 Series Overview Session 1 – recorded, available on the website Assembling a small footprint Linux platform for the i.MX31PDK https://linuxlink.timesys.com/dev_center/freescaleimx31_user Session 2 – today Building a custom internet radio GUI on GTK+ with Glade for the i.MX31PDK Session 3 – March 30, 2009 11.30am EST Adding audio codecs and a wireless technologies i.e. WIFI subsystem on the i.MX31PDK Session 4 – April 13, 2009 11.30am EST System debugging and testing with the i.MX31PDK www.timesys.com ©2009 TimeSys Corp. 3 Agenda – Session 2 Recap of what we have done so far Install Glade development tools on the host Develop a simple InternetRadio GUI • Create 2 panel application • Generate Code • Test Locally Add code to launch a playb ack applicati on i.e. MMlplayer and a Browse application i.e. Midori Implement application requirements • Add needed features to the RFS • Reconfigure Linux kernel www.timesys.com ©2009 TimeSys Corp. What we have accomplished 4 Built a starting point with Online Factory • Experiment on day one with a pre-built starting point Modified Linux kernel using desktop tools • Optimized for footprint • OiidOptimized for fast boot Altered root filesystem • Removed unneeded startup scripts Deployed the system on target’s NAND flash • Transferred and flashed images via TFTP • Configured bootloader for autoboot www.timesys.com ©2009 TimeSys Corp. Glade tools 5 Installation • Fedora Ubuntu yum install glade2 apt-cache search glade2 apt-get install [pkg1, pkg2, …] Run # glade-2 www.timesys.com ©2009 TimeSys Corp. Application 6 Create the following components Remember to define meaningful names • Variables • Callback functions NOTE: Do not modifyyy files that say “DO NOT EDIT THIS FILE – it is generated by Glade” until you are ready to customize. Keep modifications in separate files. www.timesys.com ©2009 TimeSys Corp. Application 7 Compilation • Host (initial GUI testing) #sh autogen.sh #make • Target (Cross-Compiled) #expor t PATH=<pa th to your too lhilchain>:$PATH #cross_configure #cross_make NOTE: In both cases binaries will be created in the src subdirectory Define/implement functions for • Callback functions for all buttons • init_list() – to initialize lists • add_to_list() – adding individual items • populate_favorites_list() – fill the favorites list with stations • start__pymplayer() – multimedia ppylayer • start_web_browser() www.timesys.com ©2009 TimeSys Corp. Platform adjustments 8 Linux kernel • Reconfigure the Linux kernel – Enable verbose output (printk) – Enable frame buffer, audio and other multimedia options Root filesystem • Add the following packages to the RFS definition – Multimedia: alsa-utils libtheora libXcursor Application: fbset lib555 • bash font-alias matchbox-keyboard • bzip2 • dbus-glib font-bitstream-75dpi matchbox-panel matchbox-theme-sato font-cursor-misc matchbox-window-manager-2 Development: font-micro-misc midori • libpthread-stubs font-misc-misc MPlayer package vorbis-tools libglade Networking: WebKit • openssh libgpelaunch xinit libgpewidget xorg-server www.timesys.com ©2009 TimeSys Corp. Browsing the kernel sources 9 GIT is … part of the update service • Git is an open source, distributed version control system currently used by a number of projects including: – Kernel.org – X.org – Perl – Android • Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities • Branc hin g and mergin g are ftfast and easy to do Timesys GIT • Provides code for a number of Freescale i.MX platforms iildincluding: ¾ i.MX27 LITE ¾i.MX31 LITE ¾ i.MX27ADS ¾i.MX31 ADS ¾i.MX31 PDK https://linuxlink.timesys.com/git?repo=linux-2.6-mx.git READ more on the GIT update service here: https://linuxlink.timesys.com/docs/wiki/engineering/HOWTO_Use_git www.timesys.com ©2009 TimeSys Corp. Deployment 10 We’ll use TFTP service to transfer images to the target • Runs typically as xinetd process • Disa ble d when newly ins ta lle d. Mo dify /e tc/ x ine td.d/tft pd Flashing procedure RedBoot> fis erase –f 0x100000 –l 0xff00000 RedBoot> fis init RedBoot> ffifconfig >>fis load kernel; exec –c “noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2” RedBoot> load –r –b 0x100000 zImage-mx31 RedBoot> fis create –f 0x100000 kernel RedBoot> load –r –b 0x100000 rootfs.jffs2 RedBoot> fis create –f 0x 600000 root RedBoot> reset www.timesys.com ©2009 TimeSys Corp. What we have accomplished 11 We have installed Glade tools for GUI development Deve lope d a simp le GUI base d applica tion with three major features: • Multimedia playback (ogg/vorbis) • Read RSS feeds (code to be added next time) • Internet Browsing (midori browser) Modified Linux kernel using desktop tools • Enable all needed for Internet Radio peripherals Altered root filesystem • Added packages needed for our Internet Radio application Deployed the system on target’s NAND flash • Transferred and flashed images via TFTP • Configured bootloader for autoboot www.timesys.com ©2009 TimeSys Corp. Next Time 12 Session #3 is scheduled for Monday, March 30th at 11.30am EST Subject: Adding audio codecs and a wireless technologies i.e . WIFI subsystem on the i.MX31PDK • Add XML reader for RSS feeds • Patch midori web browser to launch directly a playback application • Work with LTIB provided Linux kernel • Enable WIFI connectivity using onboard CSR chip • Add codec packages for additional media formats • Make our device autoboot into Internet Radio application www.timesys.com ©2009 TimeSys Corp. 13 How Do I Learn More? Go to www.timesys.com to learn more • Webinars • LinuxLink Radio Podcasts • Request a Free Factory Test Drive Schedule a more detailed introduction/training session • WebEx • Face-to-face www.timesys.com ©2009 TimeSys Corp..