[[bc10]]
- Contents
#CONTENTS

* Outline for bc10/prebuilt-20110107 [#qdcd7aa4]
>
COLOR(red){bc10/prebuilt-20110107 is based upon AOSP android-2.2_r1.1}~
~
This article provides the detail explanations of the bootable prebuilt image, android-2.2_r1.1 prebuilt image. This~
prebuilt image is basically a modified and extended version of the bootable image for [[bc10/froyo]]. The first half~
of this section shows how to build the bootable image, and the second half explains how to create a bootable SD~
card, placing the prebuilt image on a the SD card.~

>
- [[The instructions of how to create the prebuilt image]]~
This section provides the instructions of how to create an development environment for '''prebuilt-20110107''', the~
building method of '''prebuilt-20110107''', and the addition of Wifi driver for '''prebuilt-20110107'''. This explains~
how to create the prebuilt image.~
- [[The instructions of how to place the prebuilt image]]~
This section shows that how to download the image of '''prebuilt-20110107''', [[bc10-boot-sd-image-release20110107.tar.gz]]~
and how to place the images into a SD card. This section shows how to make a SD card bootable.~

* Instructions of creating prebuilt image [#ce1abbc7]
* Developing environment [#kad9d6e0]
>
To create the development environment, these three items are really critical.
- OS: Ubuntu 10.04 (32bit version)
-JAVA: java 1.5x
- Android Version: android-2.2_r1.1

** Installing packages [#hda29187]
>
Obtain the required packages from the repository of ubuntu and instal the packages.~
 $ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev \
   libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev uboot-mkimage

** java5 [#m66c007f]
>
Since Ubuntu 9.10 sun-java5-jdk, which is critical to build Android, has been removed from the repository of ubuntu.~
An old repository is temporarily added to '''/etc/apt/source.list'''.~
 $ sudo vi /etc/apt/sources.list

>
  ## respective vendors as a service to Ubuntu users.
   deb http://archive.canonical.com/ubuntu lucid partner
   deb-src http://archive.canonical.com/ubuntu lucid partner
 
   deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
   deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
   deb http://archive.ubuntu.com/ubuntu lucid-security universe
   deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
 + deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
 + deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
After adding the old repository, acquire the information of repository by applying '''apt-get update'''. Then, install~
'''sun-java5-jdk'''.~
 $ sudo apt-get update
 $ sudo apt-get install sun-java5-jdk
After completing the installation, the added repository is removed. This prevents accidentally installing old packages.~
 $ sudo vi /etc/apt/sources.list

>
  ## respective vendors as a service to Ubuntu users.
   deb http://archive.canonical.com/ubuntu lucid partner
   deb-src http://archive.canonical.com/ubuntu lucid partner
 
   deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
   deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
   deb http://archive.ubuntu.com/ubuntu lucid-security universe
   deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
 - deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
 - deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
Once again, applying '''apt-get update''', obtain the present information of the current repository and restore the~
original present depository.~
 $ sudo apt-get update    


* Obtaining Android source file [#z0b21cb1]
** Setting up repo [#pf4dd7f9]
>
Configure '''repo''' for obtaining the source code of android.
 $ cd ~
 $ mkdir bin
 $ curl http://android.git.kernel.org/repo >~/bin/repo
 $ chmod a + x ~/bin/repo

>
As using Ubuntu, once log-out and then log-in, PATH is going through '''~/bin''' automatically. Prefer to stay~
log-in, set the PATH to '''~/bin''' flowing directions shown below.~
 $ export PATH=~/bin:$PATH

** Initializing repo [#cc4bddcf]
>
Create a directory called '''bc10''' for the source file, and execute '''repo init''' to download '''android-2.2_r1.1 branch'''~
to the '''bc10''' directory.~
 $ cd~
 $ mkdir bc10
 $ cd bc10
 $ repo init -u git*//android.git.kernel.org/platform/manifest.git -b android-2.2_r1.1

** Adding local_manifest.xml [#b956a09c]
>
The source code that can be downloaded with the '''android-2.2_r1.1 tag''' does not include ALSA. To use ALSA as audio~
library, modify the '''local_manifest.xml''' for adding ALSA and its related files, and make the source code of the ALSA~
file obtainable. To obtain the files,  create a '''local_manifest.xml''' under the directory of '''bc10/.repo/''' and modify~
it as shown below.~

>
The android-2.2_r1.1 specific ALSA related files have not been tagged out yet. This time, the ALSA of '''Froy branch is used'''~
for android-2.2_r1.1.~
 $ vi .repo/local_manifest.xml

>
 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
   <project path="external/alsa-lib" name="platform/external/alsa-lib" revision="froyo"/>
   <project path="external/alsa-utils" name="platform/external/alsa-utils" revision="froyo"/>
   <project path="hardware/alsa_sound" name="platform/hardware/alsa_sound" revision="froyo"/>
 </manifest>

** repo sync [#d6c91d14]
>
After adding '''local_manifest.xml, execute '''repo sync''', and obtain the source code of android.
 $ repo sync
>
The total size of the files is from 2 to 4GB. Download time highly depends on the speed of network.  

* Applying the build configuration file of bc10 [#t2e4868d]
>
The patches and configuration files, which Optimize and build android-2.2_r1.1 for bc10, are downloaded from the~
repository of github by the command of '''git clone'''. Then apply the patches and configuration files by the command of~
'''patch_to_android-2.2_r1.1_for bc10/bc10-patch.sh'''.~
 $ cd ~
 $ git clone git://github.com/bc-dev/path_to_android-2.2_r1.1_for _bc10.git
 $ cd patch_to_amndroid-2.2_r1.1_for _bc10
There are no specific directory for the downloaded patches and configuration files, which are obtained by '''git clone''',~
but before applying these patches and files, make sure that the environment variables in '''bc10-patch.sh''' are matched with~
the PATHs of these files.~
 $ vi bc10-patch.sh

>
 ### Settings 
 ANDROID_DIR=${HOME}/bc10
 SETUP_DIR=${HOME}/patch_to_android-2.2_r1.1_for_b10
 PATCH_DIR=${SETUP_DIR}/patches-for-bc10
After checking the PATHs of the files are equal to the the environment variables in '''bc10-patch.sh''', execute '''bc10-patch.sh'''.~
 $ ./bc10-patch.sh
* Android build [#ga389d12]
>
Set up the environment for bc10
 $ cd ~/bc10
 $ source build/envsetup.sh
 $ lunch bc10-eng

>
 ============================================
 PLATFORM_VERSION_CODENAME=REL
 PLATFORM_VERSION=2.2
 TARGET_PRODUCT=bc10
 TARGET_BUILD_VARIANT=eng
 TARGET_SIMULATOR=false
 TARGET_BUILD_TYPE=release
 TARGET_BUILD_APPS=
 TARGET_ARCH=arm 
 HOST_ARCH=x86
 HOST_OS=linux
 HOST_BUILD_TYPE=release
 BUILD_ID=FRF91
 ============================================
Check the configuration of environment. Then, execute '''make'''.
 $ make 

** Crating image [#f5fad18f]
>
After build is completed, relocate the binary of '''userland''' to a bootable place.  '''mkbc10-image.sh''' is used for setting up~
'''userland'''.
 $ cd ~/patch_to_android-2.2_r1.1_for_b10
 $ ./mkbc10-image.sh
Execute commands above, '''bc10-image''' is created under the directory of '''bc/out/target/product/bc10/'''. Under the directory of~
this '''bc10-image''' '''android userland''' will be placed.~
 /home/beat/bc10/out/target/product/bc10
 mkdir android for android-rfs
 /home/beat/bc10/out/target/product/bc10
 copy android-root
 copy android-system
 change permission and owner
 [sudo] password for beat:
 $ cd ~/bc10/out/target/product/bc10
 $ ls -l

>
 -rw-r--r--  1 beat beat        7 2010-08-27 23:37 android-info.txt
 drwxrwxrwx  8 root root     4096 2010-08-30 11:34 bc10-image
 -rw-r--r--  1 beat beat     8866 2010-08-27 21:16 clean_steps.mk
 drwxr-xr-x  3 beat beat     4096 2010-08-27 21:54 data
 -rw-r--r--  1 beat beat    22869 2010-08-27 23:37 installed-files.txt
 drwxr-xr-x 13 beat beat     4096 2010-08-27 23:28 obj
 -rw-r--r--  1 beat beat      189 2010-08-27 21:16 previous_build_config.mk
 -rw-r--r--  1 beat beat   163811 2010-08-27 23:37 ramdisk.img
 drwxr-xr-x  8 beat beat     4096 2010-08-27 21:54 root
 drwxr-xr-x  4 beat beat     4096 2010-08-27 21:54 symbols
 drwxr-xr-x 11 beat beat     4096 2010-08-27 23:17 system
 -rw-------  1 beat beat 78486144 2010-08-27 23:37 system.img
 -rw-------  1 beat beat  1522752 2010-08-27 23:37 userdata.img

>
 $ cd bc10-image
 $ ls -l

>
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 data
 -rwxrwxrwx  1 root root    118 2010-08-27 21:54 default.prop
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 dev
 -rwxrwxrwx  1 root root 107440 2010-08-27 21:54 init
 -rwxrwxrwx  1 root root   1677 2010-08-27 20:53 init.goldfish.rc
 -rwxrwxrwx  1 root root    197 2010-08-24 20:58 init.omap3.rc
 -rwxrwxrwx  1 root root  13605 2010-08-24 20:58 init.rc
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 proc
 drwxrwxrwx  2 root root   4096 2010-08-27 21:54 sbin
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 sys
 drwxrwxrwx 11 root root   4096 2010-08-30 11:34 system

* Kernel build [#g973eb02]
** Configuring environment variable [#p159c559]
>
'''x-loader''', '''u-boot''', and '''kernel''' are required for booting bc10. These are built with '''toolchain''', which is distributed
with the~
source code of android. '''toolchain''' used here is located at the directory, '''prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin'''.~
The environment variable is needs to set for the cross compile as this toolchain build these files.~
 $ export PATH=/home/beat/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:${PATH}
 $ export ARCH=arm
 $ export CROSS_COMPILE=arm-eabi-

** kernel [#n70ef041]
>
 $ cd ~
 $ git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel
 $ cd bc10-rowboat-kernel/
Shift to the release branch for bc10.
 $ git checkout -t -b bc10-2.6.32 origin/bc10-2.6.32
 $ make omap3_bc10_defconfig
 $ make uImage
 $ make modules
After build is completed, '''uImage''' is created at the directory shown below.
 $ ls ~/bc10-rowboat-kernel/arch/arm/boot/
 Image  Makefile  bootp  compressed  install.sh  uImage  zImage

* Building USB Wifi (RT3070USB) driver [#w229d145]
>
To work with USB Wifi devices, a Wifi driver, '''RT3070USB''' is added. The devices listed below have been tested and confirmed that~
the devices are working appropriately.~
COLOR(red){Some devices are still underdevelopment, please do understand that the contents may change without advanced notice.}
 Maker     Serial Number     Device ID   Memo
 PLANEX    GW-USMicroN-G     2019:ED14
 Logitec   LAN-W150N/U2IPH   0789:0164
 Logitec   LAN-W150N/U2BK    0789:0168
 Buffalo   WLI-UC-GNM        0411:01a2
 Buffalo   WLI-UC-G301N      0411:016f&#12288; The performance of Baffalo WLI-UG-G301N is only confirmed as it is connected to AC powered hub.
 Buffalo   WLI-UC-GN         0411:015d
In this section, the explanation is specifically targeted at Baffalo's and Logitec's Wifi devices.

>
The driver, '''2010_0831_RT3070_Linix_STA_v2.4.01_DPO.bz2''', is downloaded from [[PALINK Web>http://www.ralinktech.com/support.php?s=2]]. The driver used here is~
a Linux driver. Also, a firmware, '''RT28xx/RT30xx''' USB series (RT2870/RT2770/RT3572/RT3070) are required. To download~
the source code and/or firmware, input user name and email address for downloading the files. Assume that the downloaded~
files are placed at the directory of '''/home/beat/'''.  '''toolchain''' used here is the same '''toolchain''' which is used for building kernel~
and  located at the directory of  '''prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin'''. The firmware is modified for bc10. '''prebuilt image'''~
does not produce any debug logs since a part of '''config.mk''', which is located at the directory of os/linux/config.mk, is set as~
'''WLAGS += -DCONFIG_STA_SUPPORT'''. As debug logs are not displayed, critical logs may be missed. Please be careful.~

>
To produce debug logs, set up the part of '''config.mk''' as '''-WFLAGS += -DCONFIG_STA_SUPPORT -DDBG''', then, rebuild~
the source file and place the file again.  During the redoing process, debug logs are output. There may be too many logs,~
and these logs make to harder to work on this process.~

>
To apply the patch, '''RT3070USB.diff''', this becomes capable of cross-compile for bc10.~
The contents of the patch  are:~
- Add the compile configuration for bc10 (platform, PATH of toolchain, and the configuration of compile frags.
- Set up the region of firmware to Japan, and change the examples of each section.
- Add USB Wifi vender ID and product ID. 
> 
#ref(2010_08131_RT3070_Linux_STA_v2.4.0.1_DPO.bz2);
#ref(2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2);
> 
#ref(RT3070USB.diff);

>
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/Makefile 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/Makefile       2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile    2011-01-12 16:46:57.732360338 +0900
 @@ -15,7 +15,8 @@ endif
  RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET) 
 
  #PLATFORM: Target platform
 -PLATFORM = PC
 +#PLATFORM = PC
 +PLATFORM = BC10
  #PLATFORM = 5VT
  #PLATFORM = IKANOS_V160
  #PLATFORM = IKANOS_V180
 @@ -147,6 +148,11 @@ LINUX_SRC_MODULE = /lib/modules/$(shell
  CROSS_COMPILE =
  endif 
 
 +ifeq ($(PLATFORM),BC10)
 +LINUX_SRC = /home/beat/prebuilt-20101227/bc10-rowboat-kernel
 +CROSS_COMPILE = /home/beat/prebuilt-20101227/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
 +endif
 +
  ifeq ($(PLATFORM),IXP)
  LINUX_SRC = /project/stable/Gmtek/snapgear-uclibc/linux-2.6.x
  CROSS_COMPILE = arm-linux-
 @@ -347,6 +353,9 @@ ifeq ($(OSABL),YES)
         cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.ko /tftpboot
  endif
  else
 +ifeq ($(PLATFORM),BC10)
 +       $(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
 +else
         cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot
  ifeq ($(OSABL),YES)
         cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.ko /tftpboot
 @@ -355,7 +364,7 @@ endif
  endif
  endif
  endif
 -
 +endif 
  
 release:
 ifeq ($(TARGET), LINUX)
 @@ -388,6 +397,9 @@ endif
         $(MAKE) -C os/linux clean
         rm -rf os/linux/Makefile
  endif
 +ifneq ($(TARGET),THREADX)
 +       $(MAKE) -C tools clean
 +endif
  ifeq ($(TARGET), UCOS)
         $(MAKE) -C os/ucos clean MODE=$(RT28xx_MODE)
  endif
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/RT2870STA.dat 2010_0831_RT3070_Lin
 ux_STA_v2.4.0.1_DPO/RT2870STA.dat
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/RT2870STA.dat  2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/RT2870STA.dat       2011-01-12 16:46:57.732360338 +0900
 @@ -1,10 +1,12 @@
  #The word of "Default" must not be removed
  Default
  CountryRegion=5
 -CountryRegionABand=7 
 -CountryCode=
 +#CountryRegionABand=7
 +#CountryCode=
 +CountryRegionABand=1
 +CountryCode=JP
  ChannelGeography=1
 -SSID=11n-AP
 +SSID=ssidname
  NetworkType=Infra
  WirelessMode=5
  Channel=0
 @@ -18,9 +20,9 @@ TxBurst=1
  PktAggregate=0
  WmmCapable=1
  AckPolicy=0;0;0;0
 -AuthMode=OPEN
 -EncrypType=NONE
 -WPAPSK=
 +AuthMode=authtype
 +EncrypType=encrptype
 +WPAPSK=passname
  DefaultKeyID=1
  Key1Type=0
  Key1Str=
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/common/rtusb_dev_id.c 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/common/rtusb_dev_id.c
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/common/rtusb_dev_id.c  2010-09-01 10:47:30.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/common/rtusb_dev_id.c       2011-01-12 16:46:57.755056649 +0900
 @@ -107,8 +107,14 @@ USB_DEVICE_ID rtusb_dev_id[] = {
         {USB_DEVICE(0x13D3,0x3321)}, /* Azurewave */
         {USB_DEVICE(0x07FA,0x7712)}, /* Edimax */
         {USB_DEVICE(0x0789,0x0166)}, /* Edimax */
 -       {USB_DEVICE(0x0DB0,0x822B)}, /* MSI 3070*/^M
 -       {USB_DEVICE(0x0DB0,0x871B)}, /* MSI 3070*/
 +       {USB_DEVICE(0x0DB0,0x822B)}, /* MSI 3070*/
 +       {USB_DEVICE(0x2019,0xED14)}, /* PLANEX*/
 +       {USB_DEVICE(0x2019,0xAB29)}, /* PLANEX*/
 +       {USB_DEVICE(0x0789,0x0164)}, /* Logitec*/
 +       {USB_DEVICE(0x0789,0x0168)}, /* Logitec*/
 +       {USB_DEVICE(0x0411,0x01a2)}, /* Buffalo*/
 +       {USB_DEVICE(0x0411,0x016f)}, /* Buffalo*/
 +       {USB_DEVICE(0x0411,0x015d)}, /* Buffalo*/
  #endif // RT3070 //
  #ifdef RT3370
         {USB_DEVICE(0x148F,0x3370)}, /* Ralink 3370 */
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/os/linux/config.mk 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/os/linux/config.mk     2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk  2011-01-12 16:46:57.765058823 +0900
 @@ -26,7 +26,7 @@ HAS_WDS=n
  HAS_APCLI=n 
 
  # Support Wpa_Supplicant
 -HAS_WPA_SUPPLICANT=n
 +HAS_WPA_SUPPLICANT=y 
 
  # Support Native WpaSupplicant for Network Maganger
  HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
 @@ -149,6 +149,7 @@ endif 
 
  ifeq ($(RT28xx_MODE),STA)
 -WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
 +#WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
 +WFLAGS += -DCONFIG_STA_SUPPORT 
 
  ifeq ($(HAS_XLINK),y)
  WFLAGS += -DXLINK_SUPPORT
 @@ -545,6 +546,10 @@ ifeq ($(PLATFORM),PC)
      endif 
  endif 
 
 +ifeq ($(PLATFORM),BC10)
 +EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -DMODILE
 +endif
 +
  #If the kernel version of RMI is newer than 2.6.27, please change "CFLAGS" to "EXTRA_FLAGS"
  ifeq ($(PLATFORM),RMI)
  EXTRA_CFLAGS := -D__KERNEL__ -DMODULE=1 -I$(LINUX_SRC)/include -I$(LINUX_SRC)/include/asm-mips/mach-generic
                  -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
                  -DCONFIG_IFX_ALG_QOS -DCONFIG_WAN_VLAN_SUPPORT -fomit-frame-pointer -DIFX_PPPOE_FRAME -G 0 -fno-pic
                  -mno-abicalls -mlong-calls -pipe -finline-limit=100000 -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float
                  -march=xlr -ffreestanding-march=xlr -Wa,--trap, -nostdinc -iwithprefix include $(WFLAGS)
 (From "EXTRA_CFLAGS := -D__KERNEL__ -DMODULE=1" to "$(WFLAGS)", this is supposed to be one line.)

>
As it is shown below, the archive is extracted, apply the patch, and executes '''make'''. After '''make''' is completed, '''rt3370sta.ko'''is~
created under the directory of '''OS/linux'''.~
 $ cd ~
 $ tar xvfj 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2
 $ patch -p0 < RT3070USB.diff
 $ cd 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/
 $ make
 $ ls  -l os/linux/rt3370sta.ko
 -rw-r--r-- 1 beat beat 10746686 2011-01-05 12:42 os/linux/rt337sta.ko


** About placing USB Wifi (RT3070USB) driver [#p0e65fb8]
>
- rt3370sta.ko~
Create the directory '''modules/''' under the directoy of '''bc10/out/target/product/bc10/bc10-image/system/lib/''', which is~
located at android userland.  '''rt3370sta.ko''' a driver file, which is crated at the process described above, is shifted to the~
directory of '''modules/'''.~

>
- RT2870STA.dat~
The wifi configuration '''RT2870STA.dat''' contains SSID, authentication types, passphrase,  and other information. This~
configuration file is put down the directory of '''bc10/out/target/product/bc10/bc10-image/system/etc/'''.~

>
- rt2870.bin~
Creating a directory '''firmware/''' under the directory of  '''bc10/out/target/product/bc10/bc10-image/system/etc/''', '''rt2870.bin'''~
a firmware and '''LICENSE.ralink-firmware.txt''' are placed inside newly created '''firmware/''' directory.~

>
To comply with '''mkbc10-image.sh''', hereafter file's owner and authority are named as '''root''' and '''777''', respectively.~
 $ sudo mkdir ~/bc10/out/target/product/bc10/bc10-image/system/lib/modules
 $ sudo mkdir -p ~/bc10/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA
 $ sudo cp -afr os/linux/rt3370sta.ko ~/bc10/out/target/product/bc10/bc10-image/system/lib/modules/
 $ sudo cp -afr RT2870STA.dat ~/bc10/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA/
 $ cd ~
 $ unzip RT2870_Firmware_V22.zip
 $ cd RT2870_Firmware_V22/
 $ sudo mkdir ~/bc10/out/target/product/bc10/bc10-image/system/etc/firmware
 $ sudo cp -afr * ~/bc10/out/target/product/bc10/bc10-image/system/etc/firmware/
 $ sudo chown -R root.root ~/bc10/out/target/product/bc10/bc10-image/system
 $ sudo chmod -R 777 ~/bc10/out/target/product/bc10/bc10-image/system

* Building  SGX SDK [#bdf55799]
>
Obtain TI Android SGX SDK as employing the same method as the process described at [[bc10/froyo]].~
~
(Caution):~
- It may take long time to download the SDK.~
- If you have already installed '''OMAP35x_Android_Graphics_SDK_3_01_00_03 for [[bc10/froyo]], you can use the same SDK.~
Make sure that the SDK is moved to the directory of '''Rules.make'''. If you download the file, please backup or remove the~
original SDK as you wish.~
- As whole kernel and/or Android userland are replaced, the whole rebuild of kernel and Android is required.~

>
 $ cd ~
 $ git clone git://gitorious.org/rowboat/ti_android_sgx_sdk.git
 $ cd ti_android_sgx_sdk/
 $ ./OMAP35x_Android_Graphics_SDK_setuplinux_3_01_00_03.bin
As working with the command line above, the location of install directory is asked. Please select the default directory of~
'''${HOME}/OMAP35x_Android_Graphics_SDK_3_01_00_03'''. '''${HOME}''' indicates the home directory, '''/home/beat'''.~

>
[[To download TI's Android SGX SDK>http://code.google.com/p/rowboat/wiki/Source#To_download_TI's_Android_SGX_SDK]]

** Changing Rules.make [#m0dd0ceb]
>
Adjust HOME, GRAPHICS_INSTALL_DIR, ANDROID_ROOT, CSTOOL_DIR, and KERNEL_INSTALL_DIR on '''Rules.make''' to each~
file PATH.~
~
(Caution):~
The '''Rules.make''' shown below is created according to the setting of the directory described at the end of the previous section.~
ANDROID_ROOT should be matched to the location of directory, which has been created at the process of '''mkbc10-image.sh'''.~

>
 $ CD ~/OMAP35X_ABDROID_Graphics_SDK_3.01_00_03

>
 --- Rules.make  2011-01-05 14:20:43.863788943 +0900
 +++ Rules.make-orig     2011-01-05 14:17:04.661291128 +0900
 @@ -4,24 +4,20 @@ PLATFORM=LinuxOMAP3 
 
  ################# FIELDS MODIFIABLE BY THE USER ###############################
  #set home area HOME (relative location for all SDK operations)
 -#HOME=INVALIDVAL
 -HOME=/home/beat/prebuilt-20101227
 +HOME=INVALIDVAL
  #Current Directory where Graphics SDK is installed
  GRAPHICS_INSTALL_DIR=$(HOME)/OMAP35x_Android_Graphics_SDK_3_01_00_03
  #Android Specific
  #Path of Android Root FS
 -#ANDROID_ROOT=$(HOME)/INVALIDVAL
 -ANDROID_ROOT=$(HOME)/bc10/out/target/product/bc10/bc10-image
 +ANDROID_ROOT=$(HOME)/INVALIDVAL
  #set toolchain root path for arm-eabi
 -#CSTOOL_DIR=INVALIDVAL
 -CSTOOL_DIR=$(HOME)/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
 +CSTOOL_DIR=INVALIDVAL
  CSTOOL_PREFIX=arm-eabi-
  CSTOOL_PATH=$(CSTOOL_DIR)/bin
  CSTOOL_LIBSTDC++_PATH=$(CSTOOL_DIR)/arm-none-linux-gnueabi/libc/usr/lib 
 
  #set the kernel installation path
 -#KERNEL_INSTALL_DIR=$(HOME)/INVALIDVAL
 -KERNEL_INSTALL_DIR=$(HOME)/bc10-rowboat-kernel
 +KERNEL_INSTALL_DIR=$(HOME)/INVALIDVAL
  TARGETFS_INSTALL_DIR=$(ANDROID_ROOT)
 
  GFX_TARGETFS_KERMOD_PATH=$(TARGETFS_INSTALL_DIR)/lib/modules/2.6.32

>
After the modifications of '''RULE.make''' is completed, '''make Install''' is executed.
 $ make
 $ make OMAP-3.x install

** u-boot [#s987acc8]
>
As '''u-boot-bc10''' is updated, boot.scr , which makes AMOLED as the default value of display device is adjusted. After~
the update is completed, the duration of waiting period at bc10's boot process is changed from 10 seconds to 2 seconds.~
 $ cd ~
 $ git clone git://gitorious.org/bc10/u-boot-bc10.git u-boot-bc10
 $ cd u-boot-bc10
 $ make mrproper
 $ make omap3_bc10_config
 $ make
The display configuration, which treats AMOLED as its default value, is written in the directory of ''' include/configs/omap3_bc10.h'''.~
This directory is located inside '''u-boot-bc10'''. Its details are shown below.
 u-boot-bc10/include/configs$ vi omap3_bc10.h
 #define CONFIG_EXTRA_ENV_SETTINGS \
         "loadaddr=0x82000000\0" \
         "usbtty=cdc_acm\0" \
         "console=ttyS2,115200n8\0" \
         "androidconsole=ttyS2\0" \
         "mem=256M\0" \
         "vram=12M\0" \
         "dvimode=1024x768MR-24@60\0" \
         "defaultdisplay=lcd\0" \
         "mmcroot=/dev/mmcblk0p2 rw\0" \
         "mmcrootfstype=ext3 rootwait\0" \
         "nandroot=/dev/mtdblock4 rw\0" \ 
Shown below, the contents are the same as ones of '''boot.scr'''.

>
 if fatload mmc 0 84000000 uImage
 then 
  echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
 fi
 echo ***** RootFS: /dev/mmcblk0p2 *****
 setenv bootargs 'mem=256M androidboot.console=ttyS2 console=tty0  
 console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait omapdss.def_disp=lcd'
 bootm 84000000
 (Caustion)From "setenv bootargs2 to "disp=lcd", this is originally written in one line. As you apply this script,
 please write in one line.

>
After the build process is completed, u-boot.bin is copied into the FAT partition. This is copied right after MOL file is copied.~
To create SD card image, please look at the section of creating SD card image, shown below.~

** x-loader [#rf50b2ac]
>
 $ cd ~
 $ git clone git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git x-load-bc10
 $ cd x-load-bc10
 $ git checkout -t -b bc10 origin/bc10
 $ make omap3530bc10_config
 $ make
The specifications and format of '''x-load.bin''' do not match with '''OMAP BootROM'''s. If '''x-load.bin''' is written into a SD card~
without modification, it does not work as a boot loader. To solve this issue, '''x-load.bin''' is needed to be modified with '''signGP'''.~
'''signGP''' can be downloaded from the address shown below.~
http://beagleboard.googlecode.com/files/signGP~
After the download is finished, execute '''sigGP''' is executed as it is defined below.~
 $ ./signGP x-load.bin
'''x-load.bin.ift''', which is created after build is completed, is needed to change its name  to '''MLO'''. '''MLO'''  should be written into the top~
of FAT partition of the SD card. The information of how to create the SD card image is available at the section below.~

>
The prebuilt image is compressed files that we have built so far.

* Order of placing prebuilt image [#e83f5540]
* prebuilt-image [#qc29f941]
>
The rebuilt image can be created as following instructions described in the first half of this section, or the image is obtained~
by downloading the prebuilt image from [[here]].~
The obtained file (created or downloaded) is placed at the HOME directory, '''/home/beat/'''.~
Extract '''bc10-boot-sd-image&#8212;release20110107.tar.gz'''~
 FAT.tar.gz
 EXT3.tar.gz
There are two archives in the file. As their names are indicated, please put these archives in FAT partition and EXT3 partition of~
the targeted SD card, respectively.~
The instructions of writing into these archives are described as it is followed.~

* Creating SD card image [#w2edef8d]
>
The creation of bootable SD card is following the instructions described in [[the section of Create bootable SD card at bc10/booting>http://labs.beatcraft.com/en/index.php?bc10%2Fbooting#mef5758b]].~
This instructions are strictly for SD card. bc10 cannot be booted from microSD card by its design. The structure of the SD card is~
described below.~
- FAT32 partition
-- X-Loader
-- U-Boot
-- Linux kernel
~
- Linux partition
-- Linux root file system

>
This working environment is expected to employ a Linux environment.
The working instruction is listed below.
+ Initialization and configuration of partitions.
+ Format file system
+ Placement of files
>
The instructions are mainly from [[LinuxBootFormat (code.google.com)]] and modified for bc10. 

** Unmounting   SD card [#hd89755f]
>
To start working on partition and formatting, unmount the SD card, first, if the SD card is mounted.
 $ df -h

>
 Filesystem            Size  Used Avail Use% Mounted on
 ...
 /dev/sdc1             400M   94M  307M  24% /media/disk
 ...

>
unmount the SD card.
 $ unmount /media/disk

** Initializing and configuring partitions [#k889b474]
>
Execute '''fdisk'''command. Its parameter is the device file of the SD card. The directory shown  below may differ, depending on your~
working environment and the location of the SD card. Please check the directory of your SD card before starting working on this task.~
 $ sudo fdisk /dev/sdc

>
 Command (m for help): [p]
 
 Disk /dev/sdc: 2021 MB, 2021654528 bytes
 255 heads, 63 sectors/track, 245 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdc1   *           1         246     1974240+   c  W95 FAT32 (LBA)
 Partition 1 has different physical/logical endings:
     phys=(244, 254, 63) logical=(245, 200, 19)
Remove all partitions
 Command (m for help): [d]
 Select partition 1
Shift into Expert Mode.
 Command (m for help): [x]
Set the number of heads to 255.
 Expert Command (m for help): [h]
 Number of heads (1-256, default xxx): [255]
Set the number of sectors to 63.
 Expert Command (m for help): [s]
 Number of sectors (1-63, default xxx): [63]
The number of cylinders is differ, and it depends on SD cards. This is how to calculate the number of cylinders. The outcome is~
truncated, do  not be rounded.
 #cylinders = FLOOR (the number of Bytes on the SD Card (from above) / 255 / 63 / 512 )
The number of cylinders for the SD card used here is calculated as described below.
 2021654528 / 255 / 63 / 512 = 245.79
 -> 245
Set the number of cylinders. For this example, the number of cylinders is 245.
 Expert Command (m for help): [c]
 Number of cyliner (1-256, default xxx): [the number obtained from the equation above]
Return to Normal Mode.
 Expert Command (m for help): [r]
Create FAT32 partition in the SD Card.
 Command (m for help): [n]
 Command action
    e   extended
    p   primary partition (1-4)
 [p]
 Partition number (1-4): [1]
 First cylinder (1-245, default 1): [(press Enter)]
 Using default value 1
 Last cylinder or +size or +sizeM or +sizeK (1-245, default 245): [+50]
 
 Command (m for help): [t]
 Selected partition 1
 Hex code (type L to list codes): [c]
 Changed system type of partition 1 to c (W95 FAT32 (LBA))
Configure boot flag in the first partition, and male it bootable.
 Command (m for help): [a]
 Partition number (1-4): [1]
Create the partition for Linux file system.
 Command (m for help): [n]
 Command action
    e   extended
    p   primary partition (1-4)
 [p]
 Partition number (1-4): [2]
 First cylinder (52-245, default 52): [(press Enter)]
 Using default value 52
 Last cylinder or +size or +sizeM or +sizeK (52-245, default 245): [(press Enter)]
 Using default value 245
Check the setting of the partitions.
 Command (m for help): [p]
 
 Disk /dev/sdc: 2021 MB, 2021654528 bytes
 255 heads, 63 sectors/track, 245 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdc1   *           1          51      409626    c  W95 FAT32 (LBA)
 /dev/sdc2              52         245     1558305   83  Linux
Save the changes in the partition table.
 Command (m for help): [w]
 The partition table has been altered!
 
 Calling ioctl() to re-read partition table.
 
 WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
 The kernel still uses the old table.
 The new table will be used at the next reboot.
 
 WARNING: If you have created or modified any DOS 6.x
 partitions, please see the fdisk manual page for additional
 information.
 Syncing disks.

** Formatting filesystem [#scd36b6a]
>
Format the FAT32 partition and the Linux partition, individually. The first line of each command, FAT32 and EXT3 indicate~
the labels of the partitions, respectively. You can replace “FAT32” and “EXT3” with the names of partitions depending on~
your preference.~

>
This is for FAT32 partition. At the end of the first line, “FAT32” indicates the name of partition, you can label the name~
whatever you like.~
 $ [sudo mkfs.msdos -F 32 /dev/sdc1 -n FAT32]
 mkfs.msdos 2.11 (12 Mar 2005)
This is for Linux partition. At the first command line, “EXT3” (the capital letters) suggest that the location of the partition~
name. It can be replaced with own partition name.~
 $ [sudo mkfs.ext3 -L EXT3 /dev/sdc2]
 mke2fs 1.40-WIP (14-Nov-2006)
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 195072 inodes, 389576 blocks
 19478 blocks (5.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=402653184
 12 block groups
 32768 blocks per group, 32768 fragments per group
 16256 inodes per group
 Superblock backups stored on blocks: 
         32768, 98304, 163840, 229376, 294912
 
 Writing inode tables: done                            
 Creating journal (8192 blocks): done
 Writing superblocks and filesystem accounting information: 

* Placing prebuilt-image file [#b0db7701]
** Putting MLO into FAT32 partition [#cad51876]
>
To place the file in FAT32 partition, there are some restrictions. Please follow the instruction carefully. The archive is~
extracted at the working environment.~
 $ [tar xvfz FAT.tar.gz]
The extracted archive contains a file.
 $ ls FAT.tar.gz
 MLO u-boot.bin uImage
Since X-Loader (MLO) is the first boot loader, there are strict order to place the file to the SD  card. Please follow the~
instructions, carefully.
- After formatting FAT32 directory, '''MLO''' is placed first.
- MLO is put at the top directory in the partition.
 $ [cp MLO /media/FAT32/]
There are no specific rules for how to put other files. Copy these files on the SD card as they are.
 $ [cp u-boot.bin boot. Scr uImage/media/FAT32]
If you have made mistakes and/or done it in wrong order, redone from the part of formatting Fat32 partition.

** Placing files into EXT3 partition [#fe82832d]
>
There are no specific restriction for placing the created files. The archive is extracted on the SD card.
 $ [sudo tar xvfz ext3.tar.gz -C /media/EXT3]

>
This is the end of transferring the prebuild image onto the SD Card.
To do '''sync''' for saving all changes, then unmount the SD card.
 $ [sudo sync]
 $ [unmount /media/EXT3]
 $ [unmount/ media/FAT32]
 

* Booting from SD card [#u8c57111]
>
To insert the prepared SD card into the SD card slot of bc10, turn on power supply. For the first time booting, DB is made for~
setting up '''SQLite''' and '''Dalvik EXecutable.dat''' is created. These newly created information is written into bootable disk.~
Thus, the first time booting takes  a lttle longer than usual.~


* Supplements [#nfa041cc]
** Key assignment [#u338fdb6]
>
There are seven buttons on the right hand side of bc10 (seven buttons on each side, and totally 14 buttons).~
As Picture a is indicated, each button has been pre-assigned for a different task. To change the program, the assignment of~
each key is also altered.~
(In the picture, the enclosure of bc10 is a prototype.)~
 1. Menu
 2. Back
 3. Home
 4. Up
 5. Left
 6. Right
 7. Down
#ref(keypad_android.jpg);

** About Android SGX [#x0dc9700]
>
As explaining at the last line of '''init.rc''',  SGX  functions remain effective. To make SGX ineffective, please comment out~
the lines of commands. As kernel and/or userland are updated or modified, not only kernel and/or userland, but also GSX are needed~
to be rebuild.~
 $ vi init.rc

>
 # Start PowerVR SGX DDK
 service pvr /system/bin/sgx/rc.pvr start

** Order of configuring bc10 Wifi [#h0e17c7a]
>
As Android is not capable of control on/off function of wifi over its GUI, apply '''insmod''' and '''netcfg''' commands to check~
the working status of wifi functionality. This wifi configuration method is only applicable the devices, which is equipped with~
'''RT3070USB''' driver.~
 Maker      Parts Number       Device ID
 PLANEX     GW-USMicroN-G      2019:ED14
 Logitec    LAN-W150N/U2IPH    0789:0164
 Logitec    LAN-W150N/U2BK     0789:0168
 Buffalo    WLI-UC-GNM         0411:01a2
 Buffalo    WLI-UC-GN          0411:015d
 Buffalo    WLI-UC-G301N       0411:016f&#12288;&#12288;&#12288;&#12288;Baffalo WLI-UG-G301N works only as it is connected to a USB AC-powered hub.

>
One of the '''RT3070USB''' devices shown in the table above is connected to bc10, and bc10 is booted. As the device is recognized,~
the serial console displays such outputs as shown below.~ 
(This is an example of connecting WLI-UC-GN)~
  ...
 usb 1-2.4: new high speed USB device using ehci-omap and address 3
 usb 1-2.4: New USB device found, idVendor=0411, idProduct=015d
 usb 1-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 usb 1-2.4: Product: 802.11 n WLAN
 usb 1-2.4: Manufacturer: Ralink
 usb 1-2.4: SerialNumber: 1.0
 ...

>
After booting is completed, execute '''insmod''' on the '''rt3370sta.ko''' file. Apply '''netcfg''' command to the device, and execute~
'''up dhcp'''. '''RT2870STA.dat''' is used for connecting to the SSID, which is specified in the '''rt3370sta.ko''' file. The following~
outputs, which are displayed in the serial console, are resulted from the connection up to '''netcfg dhcp''' connection.~
(The some parts of logs are not shown. '''RT2870STA.dat''', which is located at '''/system/lib/module is not used here.)~
 # cd /system/lib/modules
 # ls
 RT2870STA.dat  rt3370sta.ko
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 # insmod rt3070sta.ko
 ...
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0         0x00001002
 # netcfg ra0 up 
 ...
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      UP    0.0.0.0         0.0.0.0         0x00001043
 # netcfg ra0 dhcp
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      UP    192.168.13.4    255.255.255.0   0x00001043
 #  

>
'''RT2870STA.dat''' in the prebuilt image is configured in the way as it is shown below. The configuration is highly depending on~
working environment, please set up '''RT2870STA.dat''' for the working environment.~

>
An an example of connection configuration, the example below is listed in SSID (xxx-BC):~
 authentication method (AuthMode OPEN)
 encryption scheme (EncryType WEP)
 typeface of encryption key (Key1Type1 (scsii))
 and encryption key (Key1Str xxx.testessid).
~
For the farther explanations, please look at '''2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/README_STA_usb'''. 

>
- RT2870STA.dat
   ...
 SSID=ssidname
 NetworkType=Infra
 WirelessMode=5
 Channel=0
 BeaconPeriod=100
 TxPower=100
 BGProtection=0
 TxPreamble=0
 RTSThreshold=2347
 FragThreshold=2346
 TxBurst=1
 PktAggregate=0
 WmmCapable=1
 AckPolicy=0;0;0;0
 AuthMode=authmodetype
 EncrypType=encyptype
 WPAPSK=
 DefaultKeyID=1
 Key1Type=0
 Key1Str=
  ...
- An example of the connection set up
 SSID=XXX-BC
  ...
 AuthMode=OPEN
 EncrypType=WEP
 WPAPSK=
 DefaultKeyID=1
 Key1Type=1
 Key1Str=xxx.testessid
 Key2Type=0

** About USB Wifi (RT3070USB) driver [#cb2f2ec6]
>
The prebuilt image is built with '''+= -DCONFIG_STA_SUPPORT'''. Under this configuration, debug logs are not output and critical logs
are~
not obtainable. The original file is put under the directory of '''os/linux/config.mk'''. This file is configured as
'''WFLAGS += -DCONFIG_STA_SPPORT -DDBG'''~
and produces more than adequate amounts of debug logs. Since a lot of debug logs are issued, it may be difficult to work under the original setting.~
 $ vi os/linux/config.mk
 
 # config for STA mode
 
 ifeq ($(RT28xx_MODE),STA)
 WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
Also, a debugged and printed version of '''rt3370sta.ko''', '''rt3370sta.gz''' is available at the URL below. To use this file, download~
the file, and replace the original, which is located at the directory of '''/system/lib/modules/'''. The name of the original file is~
the same as new one.~

>
[[http://sourceforge.jp/projects/bc10-dev/releases/50494/]]

>
The log shown below is a real log, which is displayed on a serial console. This log is generated as '''RT3070USB is inserted~
and '''insmod rt3370sta.ko''' is executed.~
- This is a log of WFLAGS += - DCONFIG_STA_SUPPOT -DDBG
 # insmod rt3370sta.ko
 rtusb init --->
 ===>rt2870_probe()!
 --> RTMPAllocAdapterBlock 
 
 
 === pAd = d284d000, size = 503240 ===
 
 <-- RTMPAllocAdapterBlock, Status=0
 NumEndpoints=7
 BULK IN MaxPacketSize = 512
 EP address = 0x81
 BULK OUT MaxPacketSize = 512
 EP address = 0x 1
 BULK OUT MaxPacketSize = 512
 EP address = 0x 2
 BULK OUT MaxPacketSize = 512
 EP address = 0x 3
 BULK OUT MaxPacketSize = 512
 EP address = 0x 4
 BULK OUT MaxPacketSize = 512
 EP address = 0x 5
 BULK OUT MaxPacketSize = 512
 EP address = 0x 6
 STA Driver version-2.4.0.1
 NVM is EEPROM
 Allocate a net device with private data size=0!
 Allocate net device ops success!
 The name of the new ra interface is ra0...
 RtmpOSNetDevAttach()--->
 <---RtmpOSNetDevAttach(), ret=0
 <===rt2870_probe()!
 usbcore: registered new interface driver rt2870
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0          0x00001002

>
-WFLAGS += -DCONFIG_STA_SUPPORT
 # insmod rt3370sta.ko
 rtusb init --->
 usbcore: registered new interface driver rt2870
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0         0x00001002


** About boot.scr [#dbeb59a5]
>
Due to update '''u-boot-bc10''',  the initial value, which treats AMOLED as the display device, is already written under the directory of~
'''include/configs/omap3_bc10h'''. Therefore '''boot.scr''' is not included the newer version of '''u-boot-bc10'''~

>
To copy the contents of the original '''boot.scr''' to the newer '''boot.scr''', it can is possible to boot the bc10. In this case, configuration of~
'''u-boot.bin''' is written over on the configuration of '''boot.scr''', then, bc20 is booted. The script blow is used for creating a '''boot.scr''',~
which makes AMOLED the default value for display device.~
 $ cd ~
 $ vi boot.script
 
 if fatload mmc 0 84000000 uImage
 then
   echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
 fi
 echo ***** RootFS: /dev/mmcblk0p2 *****
 setenv bootargs 'mem=256M androidboot.console=ttyS2 console=tty0  
 console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait omapdss.def_disp=lcd'
 bootm 84000000
 (Caution) From setenv bootargs to disp=lcd', these are supposed to be one line.

>
 $ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ./boot.script -d ./boot.script ./boot.scr &> /dev/null

>
If DVI is selected for the initial value of display device, the last line of the code shown above will be change as '''omapdss.def_disp=dvi'''~
in boot.scr.~
The details of '''omapfb.mode''' and '''mapdss''' are listed in the file, which is located at the directory of '''kernel/Documentation/arm/OMAP/DSS in the kernel source'''

* Reference [#l51a8797]
>
- rowboat ConfigureAndBuild~
--[[http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Install_the_drivers_in_Target_filesystem]]~
- [Armadillo:06309] Re: Wifi LAN adapter which is compatible with Armadillo-440 (in Japanese)~
-- [[http://lists.atmark-techno.com/pipermail/armadillo/2010-December/006309.html]]~

* Revision History [#h1286db6]
>
2011/02/23 This article is initially uploaded.

Front page   Edit Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   RSS of recent changes