labs.beatcraft.com kernel update †On gumstix-oe, currently we can choose kernel version 2.6.21, 2.6.22 and 2.6.24. Setting up microSD boot environment †When upgrade kernel, prepare new userland for upgrade kernel. Setting up gumstix build environment †This section describes setting up procedure of build environment for bc9 (gumstix).
However, we build microSD boot image instead of built-in Frash ROM boot image. We suppose that following operation executes by "beat" account on Ubuntu 8.04LTS. Adjusting sh †On Ubuntu, /bin/sh is symlink to dash, not to bash and sometime this cause problem. $ sudo dpkg-reconfigure dash Choose "no" when you asked that setting up /bin/sh to symlink of dash. Instlation of required applications †Install bitbake required applications as follows: $ sudo apt-get install build-essential help2man diffstat texi2html texinfo libncurses5-dev cvs gawk ¥ python-dev python-pysqlite2 python-psyco ckermit lrzsz subversion Checking out gumstix-oe †$ mkdir ~/gumstix $ cd ~/gumstix $ svn co https://gumstix.svn.sourceforge.net/svnroot/gumstix/trunk gumstix-oe Setting shell environment variables †If you prefer to setting up permanently, do as follows. $ cat gumstix-oe/extras/profile >> ~/.bashrc or if you prefer to setting up temporally, do as follows, $ . ~/gumstix/gumstix-oe/extras/profile or $ source ~/gumstix/gumstix-oe/extras/profile Setting source code caching directories †Gumstix-oe is designed to download source codes during build procedures. $ svn diff build/conf/site.conf Index: build/conf/site.conf =================================================================== --- build/conf/site.conf (revision 318) +++ build/conf/site.conf (working copy) @@ -1,5 +1,6 @@ # specifies where BitBake should place the downloaded sources -DL_DIR = "/usr/share/sources" +DL_DIR = "/home/beat/gumstix/sources" # specifies where BitBake should create its temporary files TMPDIR = ${GUMSTIXTOP}/tmp Adjusting build setting †To utilize PXA270 effectively, edit as follows: $ svn diff com.gumstix.collection/conf/machine/include/tune-iwmmxt.inc Index: com.gumstix.collection/conf/machine/include/tune-iwmmxt.inc =================================================================== --- com.gumstix.collection/conf/machine/include/tune-iwmmxt.inc (revision 318) +++ com.gumstix.collection/conf/machine/include/tune-iwmmxt.inc (working copy) @@ -1,6 +1,9 @@ # Configurations for the Intel PXA27x Appications Processor Family. # Please use tune-xscale for PXA255/PXA26x based processors. -TARGET_CC_ARCH = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt" +FEED_ARCH = "iwmmxt" +TARGET_CC_ARCH = "-march=iwmmxt -mtune=iwmmxt" +TARGET_CC_KERNEL_ARCH = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH = "iwmmxt" PACKAGE_EXTRA_ARCHS += "iwmmxt" Kernel maximum size limitation doesn't need for microSD bootable image. So increase kernel size. $ svn diff com.gumstix.collection/conf/machine/include/gumstix.inc Index: com.gumstix.collection/conf/machine/include/gumstix.inc =================================================================== --- com.gumstix.collection/conf/machine/include/gumstix.inc (revision 318) +++ com.gumstix.collection/conf/machine/include/gumstix.inc (working copy) @@ -10,6 +10,7 @@ KERNEL_IMAGETYPE = "uImage" RDEPENDS_kernel-base = "" -KERNEL_IMAGE_MAXSIZE = "1048577" +KERNEL_IMAGE_MAXSIZE = "2197154" // incleased for mmcboot UBOOT_ENTRYPOINT = "a0008000" @@ -35,7 +35,7 @@ PREFERRED_PROVIDER_bluez-utils-dbus = "bluez-utils" PREFERRED_PROVIDER_gsmd="libgsmd" -PREFERRED_VERSION_gumstix-kernel = "2.6.21" +PREFERRED_VERSION_gumstix-kernel = "2.6.24" PREFERRED_VERSION_udev = "118" PREFERRED_VERSION_gnuplot = "4.0.0" PREFERRED_VERSION_dropbear = "0.47" To generate microSD bootable image, acivate mmcboot setting. $ svn diff com.gumstix.collection/conf/machine/gumstix-custom-verdex.conf Index: com.gumstix.collection/conf/machine/gumstix-custom-verdex.conf =================================================================== --- com.gumstix.collection/conf/machine/gumstix-custom-verdex.conf (revision 318) +++ com.gumstix.collection/conf/machine/gumstix-custom-verdex.conf (working copy) @@ -5,12 +5,12 @@ MACHINE_FEATURES += "verdex" MACHINE_FEATURES += "iwmmxt" require conf/machine/include/gumstix.inc -require conf/machine/include/tune-xscale.inc +require conf/machine/include/tune-iwmmxt.inc # # Your flash size = Total flash (in MB) - 1 (for linux kernel partition) -ROOT_FLASH_SIZE = "15" -#ROOT_FLASH_SIZE = "31" +#ROOT_FLASH_SIZE = "15" +ROOT_FLASH_SIZE = "31" # # Enable use of virtual terminal for LCD on tty1 if USE_VT = "1" @@ -28,7 +28,7 @@ #MACHINE_FEATURES += "spi" MACHINE_FEATURES += "serial" -MACHINE_FEATURES += "bluetooth" +#MACHINE_FEATURES += "bluetooth" MACHINE_FEATURES += "sound" # if you enable robostix you will need to disable both "lcd" and "touchscreen" features @@ -51,7 +51,7 @@ MACHINE_FEATURES += "fat" # enable one of the following if you want to target build for uimage/rootfs on mmc/microSD or CF -#MACHINE_FEATURES += "mmcroot" +MACHINE_FEATURES += "mmcroot" #MACHINE_FEATURES += "cfroot" # Module for gumstix expansion board wifistix is known to become build error. $ svn diff com.gumstix.collection/packages/tasks/task-base-gumstix.bb Index: com.gumstix.collection/packages/tasks/task-base-gumstix.bb =================================================================== --- com.gumstix.collection/packages/tasks/task-base-gumstix.bb (revision 318) +++ com.gumstix.collection/packages/tasks/task-base-gumstix.bb (working copy) @@ -201,7 +201,6 @@ RDEPENDS_task-base-gumstix-wifi = "¥ task-base-gumstix-pcmcia ¥ - wifistix-modules ¥ wireless-tools ¥ wpa-supplicant ¥ " In above modification we change FEED_ARCH from armv5te to iwmmxt. Build †Build kernel, kernel modules, userland by following command.~ Build is starting from arm cross-toolchain and it takes few hours or almost a half day to finish. $ bitbake gumstix-directfb-image When build was successfully finished, following files should be generated. $ ls -al tmp/deploy/glibc/images/gumstix-custom-verdex/ Total 21780 drwxr-xr-x 2 beat beat 4096 2009-06-23 00:01 . drwxr-xr-x 3 beat beat 4096 2009-06-22 22:58 .. -rw-r--r-- 1 beat beat 10402796 2009-06-23 00:01 Angstrom-gumstix-directfb-image-glibc-ipk-2007.9-test-20090622-gumstix-custom-verdex.rootfs.jffs2 -rw-rw-r-- 1 beat beat 8713428 2009-06-23 00:01 Angstrom-gumstix-directfb-image-glibc-ipk-2007.9-test-20090622-gumstix-custom-verdex.rootfs.tar.gz lrwxrwxrwx 1 beat beat 97 2009-06-23 00:01 gumstix-directfb-image-gumstix-custom-verdex.jffs2 -> Angstrom-gumstix-directfb-image-glibc-ipk-2007.9-test-20090622-gumstix-custom-verdex.rootfs.jffs2 lrwxrwxrwx 1 beat beat 98 2009-06-23 00:01 gumstix-directfb-image-gumstix-custom-verdex.tar.gz -> Angstrom-gumstix-directfb-image-glibc-ipk-2007.9-test-20090622-gumstix-custom-verdex.rootfs.tar.gz -rw-rw-r-- 1 beat beat 1929321 2009-06-22 22:58 modules-2.6.24-r1-gumstix-custom-verdex.tgz -rw-r--r-- 1 beat beat 1191276 2009-06-22 22:58 uImage-2.6.24-r1-gumstix-custom-verdex.bin Formatting microSD †In order to make microSD bootable and layout kernel and userland on it, make two partitions and format it. $ sudo cp ~/gumstix/gumstix-oe/extras/mmc-root/gumstix-factory.script /media/disk/ $ sudo cp ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/uImage-2.6.24-r1-gumstix-custom-verdex.bin /media/disk/uimage $ sudo tar -C /media/disk-1/ -xvfz ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/gumstix-directfb-image-gumstix-custom-verdex.tar.gz $ sudo tar -C /media/disk-1/ -xvfz ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/modules-2.6.24-r1-gumstix-custom-verdex.tgz Booting from microSD †Insert ready microSD into bc9's microSD slot, connect serial cable to PC and power on. $ depmod $ vi /etc/modules/pxafb write only pxafb and save. $ vi /etc/modules/fbcon write only fbcon and save. $ update-modules Then prompt appear on LCD and pxa frame buffer activated after second time boot. by Satoshi OTSUKA
|