【Android 系統開發】 編譯 Android檔案系統 u-boot 核心 並燒寫到 OK-6410A 開發板上
本篇文章中用到的工具原始碼下載 :
-- 光碟所含內容 : Android 引導 u-boot 原始碼, Android 核心 原始碼, Android 系統原始碼, 交叉編譯工具鏈;
各項操作說明 :
-- 編譯環境 : 編譯原始碼 (u-boot, 核心, Android 系統) 是在 Ubuntu 12.04.4 LTS 作業系統上進行的;
-- 燒寫環境 : 將編譯的映象燒寫到 ok-6410A 開發板的操作實在 windows xp 上進行的;
一. 環境準備
root 使用者登陸 : 由於進行嵌入式開發, root 許可權在任何時候都需要使用, Ubuntu 系統直接使用 root 使用者登陸介面;
軟體版本 :
-- 虛擬機器 : VMware10, 注意一定要用 10版本的, VM8版本的 vmware-tools 安裝不上;
-- 作業系統 : Ubuntu 12.04.4 LTS 32位, 這裡使用 32 位作業系統 編譯 Android 的 2.3.4 原始碼;
-- 嵌入式開發板 : arm11 S3C6410 飛凌ok-6410A 256M 記憶體 1G NandFlash ;
1. Ubuntu 12.04.4 安裝 vmware-tools
(1) 新增國內源
源內容 :
#臺灣源 deb http://tw.archive.ubuntu.com/ubuntu/ precise main universe restricted multiverse deb-src http://tw.archive.ubuntu.com/ubuntu/ precise main universe restricted multiverse deb http://tw.archive.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted deb-src http://tw.archive.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted deb http://tw.archive.ubuntu.com/ubuntu/ precise-updates universe main multiverse restricted deb-src http://tw.archive.ubuntu.com/ubuntu/ precise-updates universe main multiverse restricted #網易源(速度很快) deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted #電子科技大學 deb http://ubuntu.uestc.edu.cn/ubuntu/ precise main restricted universe multiverse deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-security main restricted universe multiverse deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise main restricted universe multiverse deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-security main restricted universe multiverse deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse #北京理工大學 deb http://mirror.bjtu.edu.cn/ubuntu/ precise main multiverse restricted universe deb http://mirror.bjtu.edu.cn/ubuntu/ precise-backports main multiverse restricted universe deb http://mirror.bjtu.edu.cn/ubuntu/ precise-proposed main multiverse restricted universe deb http://mirror.bjtu.edu.cn/ubuntu/ precise-security main multiverse restricted universe deb http://mirror.bjtu.edu.cn/ubuntu/ precise-updates main multiverse restricted universe deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise main multiverse restricted universe deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-backports main multiverse restricted universe deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-proposed main multiverse restricted universe deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-security main multiverse restricted universe deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-updates main multiverse restricted universe
新增源操作 :
-- 源位置 : /etc/apt/sources.list;
-- 新增源 : 使用 gedit /etc/apt/sources.list 命令, 將上面的源新增進入;
-- 更新源 : 使用 apt-get update 命令更新源資訊;
(2) 安裝 build-essential
安裝 build-essential 包命令 : apt-get install build-essential;
-- 注意 : 一定要新增上面的源之後才能安裝, 否則會報錯;
(3) 安裝 linux-header 包
安裝流程 :
-- 檢視 Ubuntu 版本 : uname -a 命令;
[email protected] :~# uname -a
Linux ubuntu 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:42:40 UTC 2014 i686 i686 i386 GNU/Linux
-- 安裝 linux-headers : 安裝命令 apt-get install linux-headers-3.11.0-15-generic , 這裡 Ubuntu 預設已經安裝好了;[email protected]:~# apt-get install linux-headers-3.11.0-15-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.11.0-15-generic is already the newest version.
linux-headers-3.11.0-15-generic set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 241 not upgraded.
(4) 安裝 vmware-tools
載入 vmware-tools 映象 :
-- 選擇選單 : 選單 --> 虛擬機器 --> 安裝 VMware-tools 選項, 之後 vmware-tools 的光碟映象會掛在到 Ubuntu 虛擬機器系統上;
-- 開啟光碟 : 檢視光碟中的內容, 注意 一定要使用 VMwareTools 9.6.2 的版本, 之前的 8 版本的工具安裝很麻煩;
-- 安裝 vmware-tools : 將光碟中的 VMwareTools-9.6.2-1688356.tar.gz 檔案解壓, 解壓後的目錄 vmware-tools-distrib, 進入該目錄執行該目錄下的 vmware-install.pl 檔案, 使用 ./vmware-install.pl 命令, 一路回車, 即可完成安裝;
(5) 設定共享目錄
選擇 設定 選項, 設定共享目錄 : 注意, 該操作一定要在關閉 作業系統後執行;
開啟虛擬機器中的作業系統 : 共享目錄就會出現在 Ubuntu 系統的 /mnt/hgfs/ 目錄下;
拷貝原始碼和編譯器到 Ubuntu 上 : 將 Android 核心 框架 u-boot 原始碼, 編譯器, 交叉編譯器 拷貝到共享檔案中, 此時我們就可以在 Ubuntu 中看到這些檔案了;
-- Android 原始碼 : android2.3.4_32bit-2012-10-11.tar.gz, 這是 Android 2.3.4 的原始碼;
-- Bootloader 原始碼 : uboot1.1.6-2012-10-11.tar.gz, u-boot 原始碼, 用於引導 Android 作業系統;
-- Android 核心原始碼 : android2.3_kernel_v3.00-2014-06-12.tar.gz, Android 2.3.4 對應的核心原始碼;
-- x86 平臺編譯器 : arm-linux-gcc-4.3.2.tgz, 用於編譯在 x86 平臺執行的程式或庫檔案;
-- 交叉編譯工具鏈 : arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2, 用於在 Linux x86 平臺編譯 arm 平臺執行的檔案或庫;
2. 安裝交叉編譯器
(1) 檢視編譯器的目錄結構
先在本地解壓編譯器檢視其目錄結構 :
-- arm-linux-gcc-4.3.2.tgz 編譯器 : 位置 /usr/local/arm/4.3.2/ 目錄下;
[email protected]:~/develop/ok6410/usr/local/arm/4.3.2/bin# ls
arm-linux-addr2line arm-linux-gprof arm-none-linux-gnueabi-ar arm-none-linux-gnueabi-ld
arm-linux-ar arm-linux-ld arm-none-linux-gnueabi-as arm-none-linux-gnueabi-nm
arm-linux-as arm-linux-nm arm-none-linux-gnueabi-c++ arm-none-linux-gnueabi-objcopy
arm-linux-c++ arm-linux-objcopy arm-none-linux-gnueabi-c++filt arm-none-linux-gnueabi-objdump
arm-linux-c++filt arm-linux-objdump arm-none-linux-gnueabi-cpp arm-none-linux-gnueabi-ranlib
arm-linux-cpp arm-linux-ranlib arm-none-linux-gnueabi-g++ arm-none-linux-gnueabi-readelf
arm-linux-g++ arm-linux-readelf arm-none-linux-gnueabi-gcc arm-none-linux-gnueabi-size
arm-linux-gcc arm-linux-size arm-none-linux-gnueabi-gcc-4.3.2 arm-none-linux-gnueabi-sprite
arm-linux-gcc-4.3.2 arm-linux-sprite arm-none-linux-gnueabi-gcov arm-none-linux-gnueabi-strings
arm-linux-gcov arm-linux-strings arm-none-linux-gnueabi-gdb arm-none-linux-gnueabi-strip
arm-linux-gdb arm-linux-strip arm-none-linux-gnueabi-gdbtui
arm-linux-gdbtui arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-gprof
-- arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 編譯器 : 位置 /usr/local/arm/arm-none-linux-gnueabi/ 目錄下;
[email protected]:~/develop/ok6410/usr/local/arm/arm-none-linux-gnueabi/bin# ls
arm-none-linux-gnueabi arm-none-linux-gnueabi-cpp arm-none-linux-gnueabi-gdbtui arm-none-linux-gnueabi-ranlib
arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-g++ arm-none-linux-gnueabi-gprof arm-none-linux-gnueabi-readelf
arm-none-linux-gnueabi-ar arm-none-linux-gnueabi-gcc arm-none-linux-gnueabi-ld arm-none-linux-gnueabi-size
arm-none-linux-gnueabi-as arm-none-linux-gnueabi-gcc-4.3.2 arm-none-linux-gnueabi-nm arm-none-linux-gnueabi-sprite
arm-none-linux-gnueabi-c++ arm-none-linux-gnueabi-gcov arm-none-linux-gnueabi-objcopy arm-none-linux-gnueabi-strings
arm-none-linux-gnueabi-c++filt arm-none-linux-gnueabi-gdb arm-none-linux-gnueabi-objdump arm-none-linux-gnueabi-strip
(2) 安裝編譯器
安裝編譯器命令 : 注意 使用 tar 命令, 解壓到指定路徑, 需要加上 -C 引數;
-- 安裝 arm-linux-gcc-4.3.2.tgz 編譯器 : tar -xvzf arm-linux-gcc-4.3.2.tgz -C / ;
-- 安裝 arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 編譯器 : tar -xvjf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C / ;
-- 驗證是否安裝成功 :
[email protected]:~/develop/ok6410# ls /usr/local/arm/ -l
total 8
drwxr-xr-x 7 root root 4096 Mar 25 2009 4.3.2
drwxr-xr-x 8 octopus octopus 4096 Feb 25 2009 arm-none-linux-gnueabi
編譯器軟連結 : 注意, 這裡飛凌給的編譯器的 arm-linux-gcc 是一個空白的連結, 這裡需要建立一個軟連結;
-- 檢視交叉編譯器的執行檔案 :
-rwxr-xr-x 1 root root 62 3月 25 2009 arm-linux-gcc*
-- 建立軟連結 : ln -s arm-none-linux-gnueabi-gcc arm-linux-gcc ;
lrwxrwxrwx 1 root root 26 10月 27 10:54 arm-linux-gcc -> arm-none-linux-gnueabi-gcc*
3. 安裝 libncurses5-dev 庫
安裝 libncurses5-dev 庫 : 使用 apt-get install libncurses5-dev 命令安裝;
-- 作用 : 該庫的作用是 在配置 核心 時使用 make menuconfig 命令使用;
4. 安裝 並配置 minicom
安裝 minicom : 使用 sudo apt-get install minicom 命令, 安裝 minicom 終端程式, 該程式執行的時候需要 root 許可權;
配置 minicom :
二. 編譯 Android 系統
1. 編譯 u-boot
開發板介紹 : 本人使用的開發板是 arm11 S3C6410 飛凌ok-6410A 256M 記憶體 1G NandFlash 嵌入式開發板;
(1) 解壓檔案到指定目錄
解壓檔案 : 飛凌官方已經配置好了 u-boot 的編譯環境, 並在其中指定了 交叉編譯器的位置, 這裡我們不修改內容;
-- 解壓檔案到指定目錄 : 在 根目錄 / 下建立 forlinx 目錄, 將u-boot 原始碼解壓到該目錄中;
-- 建立目錄 : mkdir forlinx 命令;
-- 拷貝檔案 : cp uboot1.1.6-2012-10-11.tar.gz /forlinx/ 命令;
-- 解壓檔案 : tar -xvzf uboot1.1.6-2012-10-11.tar.gz 命令;
-- 解壓後的目錄 :
[email protected]:/forlinx# ls
uboot1.1.6 uboot1.1.6-2012-10-11.tar.gz
(2) 配置編譯 u-boot
配置 u-boot :
-- 進入 u-boot 原始碼目錄 : cd uboot1.1.6;
-- 配置 u-boot : make forlinx_nand_ram256_config 命令;
[email protected]:/forlinx/uboot1.1.6# make forlinx_nand_ram256_config
Configuring for smdk6410 board which boot from NAND ram256 ...
編譯 u-boot :
-- 清理之前的編譯檔案 : make clean 命令;
-- 開始編譯 : make 命令;
-- 編譯檔案 : 編譯完成之後, 在 原始碼根目錄產生了 u-boot.bin 檔案;
[email protected]:/forlinx/uboot1.1.6# make
... ...
/usr/local/arm/4.3.2/bin/arm-linux-objcopy --gap-fill=0xff -O srec u-boot u-boot.srec
/usr/local/arm/4.3.2/bin/arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
/usr/local/arm/4.3.2/bin/arm-linux-objdump -d u-boot > u-boot.dis
[email protected]:/forlinx/uboot1.1.6# ls
arm_config.mk config.mk examples lib_i386 MAINTAINERS net System.map
avr32_config.mk COPYING fs lib_m68k MAKEALL nios2_config.mk temp
blackfin_config.mk cpu i386_config.mk lib_microblaze Makefile nios_config.mk tools
board CREDITS include lib_mips microblaze_config.mk post u-boot
CHANGELOG disk lib_arm lib_nios mips_config.mk ppc_config.mk u-boot.bin
CHANGELOG-before-U-Boot-1.1.5 doc lib_avr32 lib_nios2 mkconfig README u-boot.dis
Changelog_Samsung drivers lib_blackfin lib_ppc mmc.bin rtc u-boot.map
common dtt lib_generic m68k_config.mk nand_spl rules.mk u-boot.srec
2. 編譯核心
Android 核心編譯 :
-- 拷貝核心 : 將核心拷貝到 /forlinx 目錄下, 使用 cp android2.3_kernel_v3.00-2014-06-12.tar.gz /forlinx/ 命令;
-- 進入該目錄 : cd /forlinx/ 命令;
-- 解壓核心 : 使用 tar -xvzf android2.3_kernel_v3.00-2014-06-12.tar.gz 命令解壓核心;
-- 配置環境變數 : export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH 命令, 也可以將該命令配置到配置檔案中去;
-- 清理垃圾 : make clean ;
-- 編譯 : make ;
-- 核心檔案 : android2.3_kernel/arch/arm/boot/zImage 檔案;
3. 編譯 Android 原始碼
(1) 安裝編譯用的庫
安裝必要的庫 : 使用
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \
g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown \
libxml2-utils xsltproc zlib1g-dev:i386 命令;
[email protected]:/mnt/hgfs/shrewdFilesWithUbuntu# cd
[email protected]:~# sudo apt-get install git-core gnupg flex bison gperf build-essential \
> zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
> libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \
> g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown \
> libxml2-utils xsltproc zlib1g-dev:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
libncurses5-dev is already the newest version.
zip is already the newest version.
zip set to manually installed.
... ...
Setting up openjdk-6-jre-lib (6b33-1.13.5-1ubuntu0.12.04) ...
Setting up libatk-wrapper-java-jni (0.30.4-0ubuntu2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
[email protected]:~#
(2) 修改一些配置
修改程式碼配置 : 如果使用 Ubuntu 12.04 作業系統編譯原始碼, 需要修改下面兩個配置;
-- build/core/combo/HOST_linux-x86.mk : 將 HOST_GLOBAL_CFLAGS+=-D_FORTIFY_SOURCE=0 修改為 HOST_GLOBAL_CFLAGS+=-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 ;
-- frameworks/base/libs/utils/Android.mk : 將 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) 修改為 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive ;
(3) 編譯原始碼
編譯原始碼 :
-- 清除編譯資訊 : make clean ;
[email protected]:/forlinx/android2.3.4_32bit# make clean
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.4
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GRJ06D
============================================
Checking build tools versions...
Entire build directory removed.
-- 編譯原始碼 : ./build-android ;[email protected]:/forlinx/android2.3.4_32bit# ./build-android
including device/htc/passion/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.4
TARGET_PRODUCT=OK6410
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=GRJ06D
============================================
Checking build tools versions...
... ...
Generated: (out/target/product/OK6410/android-info.txt)
Target system fs image: out/target/product/OK6410/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/OK6410/system.img
Target ram disk: out/target/product/OK6410/ramdisk.img
Target userdata fs image: out/target/product/OK6410/userdata.img
Installed file list: out/target/product/OK6410/installed-files.txt
(4) 製作檔案系統
製作檔案系統 : 根目錄下提供了製作檔案系統的指令碼, make-rootfs-nand2g, 執行這個指令碼即可製作根檔案系統;
-- 命令 : 進入 Android 原始碼根目錄, 執行 ./make-rootfs-nand2g 命令, 之後在根目錄生成 rootfs.yaffs2 就是製作的根檔案系統;
-- 注意 : 一定要區分這兩個指令碼, make-rootfs-nand256m 用於製作 128M 記憶體 256 M NandFlash 的開發板的檔案系統, make-rootfs-nand2g 用於製作 256M 記憶體 2G NandFlash 開發板的檔案系統;
[email protected]:/forlinx/android2.3.4_32bit# ls
bionic cts external libcore make-rootfs-nand2g ndk Readme vendor
bootable dalvik frameworks Makefile make-rootfs-nand2g~ out sdk
build development hardware make-rootfs-nand256m mkyaffs2image-nand256m packages setenv
build-android device jdk1.6.0_23 make-rootfs-nand256m~ mkyaffs2image-nand2g prebuilt system
[email protected]:/forlinx/android2.3.4_32bit# ./make-rootfs-nand256m
Generating rootfs for Android......done
Create device file......done
Install prebuilt packages......done
Install firmware for 3G ......done
Install ppp for 3G...done
Install usb_modeswitch.d for 3G...done
Install Dialup for 3G...done
Install ForlinxLED permissions fileInstall Apps filemkyaffs2image: image building tool for YAFFS2 built Nov 24 2011
Processing directory rootfs_dir into image file rootfs.yaffs2
... ...
bject 1457, rootfs_dir/system/bin/sdcard is a file, 5 data chunks written
Object 1458, rootfs_dir/system/bin/dumpstate is a file, 17 data chunks written
Object 1459, rootfs_dir/system/bin/bootanimation is a file, 12 data chunks written
Object 1460, rootfs_dir/system/bin/Looper_test is a file, 35 data chunks written
Object 1461, rootfs_dir/system/bin/ioctl is a symlink to "toolbox"
Object 1462, rootfs_dir/system/bin/dvz is a file, 3 data chunks written
Object 1463, rootfs_dir/forlinx.rc is a file, 1 data chunks written
Operation complete.
2414 objects in 63 directories
35361 NAND pages
...done
...done
[email protected]:/forlinx/android2.3.4_32bit# ls
bionic cts external libcore make-rootfs-nand2g ndk Readme setenv
bootable dalvik frameworks Makefile make-rootfs-nand2g~ out rootfs_dir system
build development hardware make-rootfs-nand256m mkyaffs2image-nand256m packages rootfs.yaffs2 vendor
build-android device jdk1.6.0_23 make-rootfs-nand256m~ mkyaffs2image-nand2g prebuilt sdk
三. 燒寫 Android 系統到 ok-6410 開發板上
1. 製作一鍵燒寫 SD 卡
(1) 格式化 U 盤
(2) 將 mmc.bin 燒寫到 sd 卡中
燒寫 sd 卡 : 開啟 飛凌 官方提供的 SD 卡燒寫工具 SD_Writer.exe ;
-- 設定開發板型別 : 這裡使用的是 ok-6410 開發板, 在 Board Model 選擇 6410;
-- 選擇碟符 : 點選 右上角 Scan 按鈕, 就會自動將 SD 卡掃描出來;
-- SD Type : 選擇 Auto 型別;
-- 設定作業系統型別 : OS Type 設定為 Linux||Android ;
-- 點選 program : 會彈出 對話方塊, 點選確認即可;
-- 拷貝引導 核心 檔案系統到 sd 卡中 : 將 上面編譯的 u-boot.bin (bootloader) , zImage (Android 核心映象) , rootfs.yaffs2 (Android 檔案系統) 拷貝到 SD 卡中;
2. 擦除 Eboot (該步驟之後迴歸 Ubuntu 系統操作)
(1) 擦除原因
擦除 NandFlash 必要性 :
-- 預裝 WinCE 系統 : 開發板出廠預設燒寫的是 WinCE 系統;
-- WinCE 約定 : WinCE 在燒寫時將 NandFlash 前 4 個塊都標記為壞塊, 在燒寫 Android 或者 Linux 系統的時候需要將 這 4 個壞塊恢復過來;
(2) 擦除過程
Eboot 擦除 NandFlash 過程 :
-- 連線開發板 : 使用 USB 轉串列埠線連線開發板 與 電腦;
-- 執行 minicom 程式 : 使用 sudo minicom 執行 終端程式;
-- 進入 Eboot 狀態 : 在開機後, 不停的按 空格鍵, 要在 1 秒之內按下, 否則就會錯過機會, 文件上坑爹居然寫 5 秒;
Initiating image launch in 2 seconds.
Ethernet Boot Loader Configuration:
0) IP address: 0.0.0.0
1) Subnet mask: 255.255.255.0
2) DHCP: Disabled
3) Boot delay: 2 seconds
4) Reset to factory default configuration
5) Startup image: LAUNCH EXISTING
6) Program disk image into SmartMedia card: Enabled
7) Program DM9000A MAC address (00:00:00:00:00:00)
8) KITL Configuration: DISABLED
9) Format Boot Media for BinFS
A) Erase All Blocks
B) Mark Bad Block at Reserved Block
C) Clean Boot Option: FALSE
D) Download image now
E) Erase Reserved Block
F) Low-level format the Smart Media card
L) LAUNCH existing Boot Media image
R) Read Configuration
S) Lcd Resolution select(480x272)
U) DOWNLOAD image now(USB)
W) Write Configuration Right Now
Enter your selection:
-- 選擇 A : 在鍵盤中輸入 "A" , 即可完成 擦除 NandFlash 工作;Uboot 擦除 NandFlash 過程 :
-- 進入 Uboot 狀態 : 選擇 SD 卡啟動, 使用上面燒寫好的 SD 卡啟動, 啟動後 立即按 空格鍵, 即可進入 Uboot 狀態;
U-Boot 1.1.6 (Oct 9 2012 - 13:20:58) for SMDK6410
****************************************
** u-boot 1.1.6 **
** Updated for OK6410 TE6410 Board **
** Version (2012-09-23) **
** OEM: Forlinx Embedded **
** Web: http://www.witech.com.cn **
****************************************
CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 256 MB
Flash: 0 kB
NandFlash Information:
Nandflash:ChipType= SLC ChipName=MT29F16G08ABACAWP
No No Calc pagesize, blocksize, erasesize, use ids table .............
NandFlash:name=NAND 2GiB 1,8V 8-bit,id=38, pagesize=4096 ,chipsize=1024 MB,erasesize=524288 oobsize=128
NandFlash Size is 1024 MB
SD/MMC: SD 2.0 / Manufacturer: 0x1B,OEM: "SM/00000",REV: 1.0,S/N: -1320320343,DATE: 2008/3
MMC/SD size: 971 MiB
Freq = 25MHz
In: serial
Out: lcd
Err: lcd
Hit any key to stop autoboot: 0
###################### User Menu for OK6410#####################
[1] Format the nand flash
[2] Burn image from SD card
[3] Burn image from USB
[4] Reboot the u-boot
[5] Exit to command line
-----------------------------Select---------------------------------
Enter your Selection:
-- 輸入 1 : 然後會提示一次 輸入 y 回車即可;Enter your Selection:1
NAND scrub: device 0 whole chip
Warning: scrub option will erase all factory set bad blocks!
There is no reliable way to recover them.
Use this command only for testing purposes if you
are sure of what you are doing!
Really scrub this NAND flash? <y/N>
Erasing at 0x3ff80000 -- 100% complete.
Scanning device for bad blocks
OK
3. 向 NandFlash 中燒寫 Android 系統
SD 卡啟動後會自動向 NandFlash 中燒寫系統 : 下面是 燒寫的過程 ;
U-Boot 1.1.6 (Oct 9 2012 - 13:20:58) for SMDK6410
****************************************
** u-boot 1.1.6 **
** Updated for OK6410 TE6410 Board **
** Version (2012-09-23) **
** OEM: Forlinx Embedded **
** Web: http://www.witech.com.cn **
****************************************
CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 256 MB
Flash: 0 kB
NandFlash Information:
Nandflash:ChipType= SLC ChipName=MT29F16G08ABACAWP
No No Calc pagesize, blocksize, erasesize, use ids table .............
NandFlash:name=NAND 2GiB 1,8V 8-bit,id=38, pagesize=4096 ,chipsize=1024 MB,erasesize=524288 oobsize=128
NandFlash Size is 1024 MB
SD/MMC: SD 2.0 / Manufacturer: 0x1B,OEM: "SM/00000",REV: 1.0,S/N: -1320320343,DATE: 2008/3
MMC/SD size: 971 MiB
Freq = 25MHz
In: serial
Out: lcd
Err: lcd
Hit any key to stop autoboot: 0
NAND erase: device 0 whole chip
Erasing at 0x3ff80000 -- 100% complete.
OK
reading u-boot.bin
212992 bytes read
NAND write: device 0 offset 0x0, size 0x200000
1032192 bytes written: OK
reading zImage
4204072 bytes read
NAND write: device 0 offset 0x200000, size 0x500000
Writing data at 0x6ff000 -- 100% complete.
5242880 bytes written: OK
reading rootfs.yaffs2
78397440 bytes read
NAND write: device 0 offset 0x700000, size 0x4ac4000
Writing data at 0x4f7f000 -- 100% complete.
78397440 bytes written: OK
4. 啟動 Android 系統
啟動系統 : 關閉開發板電源, 這時可以將 SD 卡拔掉, 切換成 NandFlash 啟動, 接通電源;
-- 注意 : Android 系統啟動比較慢, 大概 5 ~ 10分鐘, 要有耐心;
-- 啟動過程 : 中間會有一次校準 螢幕的過程;
U-Boot 1.1.6 (Oct 9 2012 - 13:22:32) for SMDK6410
****************************************
** u-boot 1.1.6 **
** Updated for OK6410 TE6410 Board **
** Version (2012-09-23) **
** OEM: Forlinx Embedded **
** Web: http://www.witech.com.cn **
****************************************
CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 256 MB
Flash: 0 kB
NAND: 1024 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x200000, size 0x500000
5242880 bytes read: OK
Boot with zImage
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.36 ([email protected]) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #624 PREEMPT Tue Jun 3 11:45:02 CST 2014
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
camera: no parent clock specified
S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is epll (1), rate is 24000000
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 24000000
mmc_bus: source is mout_epll (0), rate is 24000000
mmc_bus: source is mout_epll (0), rate is 24000000
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is dout_mpll (1), rate is 66500000
spi-bus: source is mout_epll (0), rate is 24000000
spi-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
irda-bus: source is mout_epll (0), rate is 24000000
camera: no parent clock specified
s3c64xx: 10485760 bytes SDRAM reserved for fimc at 0x5f5f9000
s3c64xx: 8388608 bytes SDRAM reserved for pp at 0x5edf9000
s3c64xx: 8388608 bytes SDRAM reserved for tv at 0x5e5f9000
s3c64xx: 6291456 bytes SDRAM reserved for mfc at 0x5dff9000
s3c64xx: 4194304 bytes SDRAM reserved for jpeg at 0x5dbf9000
s3c64xx: 8388608 bytes SDRAM reserved for cmm at 0x5d3f9000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: root=/dev/mtdblock2 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 205464k/205464k available, 56680k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xff600000 - 0xffe00000 ( 8 MB)
vmalloc : 0xd0800000 - 0xe0000000 ( 248 MB)
lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0033000 ( 172 kB)
.text : 0xc0033000 - 0xc07a2000 (7612 kB)
.data : 0xc07ce000 - 0xc0834560 ( 410 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:246
VIC @f4000000: id 0x00041192, vendor 0x41
VIC @f4010000: id 0x00041192, vendor 0x41
High resolution timer: rate = 66500000, HZ = 100
Console: colour dummy device 80x30
console [ttySAC0] enabled
Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
NET: Registered protocol family 16
hw perfevents: enabled with v6 PMU driver, 3 counters available
s3c64xx_dma_init: Registering DMA channels
s3c64xx_dma_init1: registering DMA 0 (d0808100)
s3c64xx_dma_init1: registering DMA 1 (d0808120)
s3c64xx_dma_init1: registering DMA 2 (d0808140)
s3c64xx_dma_init1: registering DMA 3 (d0808160)
s3c64xx_dma_init1: registering DMA 4 (d0808180)
s3c64xx_dma_init1: registering DMA 5 (d08081a0)
s3c64xx_dma_init1: registering DMA 6 (d08081c0)
s3c64xx_dma_init1: registering DMA 7 (d08081e0)
PL080: IRQ 73, at d0808000
s3c64xx_dma_init1: registering DMA 8 (d080c100)
s3c64xx_dma_init1: registering DMA 9 (d080c120)
s3c64xx_dma_init1: registering DMA 10 (d080c140)
s3c64xx_dma_init1: registering DMA 11 (d080c160)
s3c64xx_dma_init1: registering DMA 12 (d080c180)
s3c64xx_dma_init1: registering DMA 13 (d080c1a0)
s3c64xx_dma_init1: registering DMA 14 (d080c1c0)
s3c64xx_dma_init1: registering DMA 15 (d080c1e0)
PL080: IRQ 74, at d080c000
S3C6410: Initialising architecture
bio: create slab <bio-0> at 0
SCSI subsystem initialized
------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:99 gpio_ensure_requested+0x50/0x19c()
autorequest GPIO-24
Modules linked in:
[<c0039d38>] (unwind_backtrace+0x0/0xf8) from [<c0053c88>] (warn_slowpath_common+0x4c/0x64)
[<c0053c88>] (warn_slowpath_common+0x4c/0x64) from [<c0053d34>] (warn_slowpath_fmt+0x30/0x40)
[<c0053d34>] (warn_slowpath_fmt+0x30/0x40) from [<c0223570>] (gpio_ensure_requested+0x50/0x19c)
[<c0223570>] (gpio_ensure_requested+0x50/0x19c) from [<c0223864>] (gpio_direction_output+0xac/0x13c)
[<c0223864>] (gpio_direction_output+0xac/0x13c) from [<c0289dec>] (s3c64xx_spi_setup+0x144/0x268)
[<c0289dec>] (s3c64xx_spi_setup+0x144/0x268) from [<c0288088>] (spi_setup+0x40/0xf0)
[<c0288088>] (spi_setup+0x40/0xf0) from [<c0288910>] (spi_add_device+0x98/0x15c)
[<c0288910>] (spi_add_device+0x98/0x15c) from [<c0288a48>] (spi_new_device+0x74/0xac)
[<c0288a48>] (spi_new_device+0x74/0xac) from [<c0288b90>] (spi_register_master+0x110/0x190)
[<c0288b90>] (spi_register_master+0x110/0x190) from [<c001fd84>] (s3c64xx_spi_probe+0x378/0x488)
[<c001fd84>] (s3c64xx_spi_probe+0x378/0x488) from [<c025924c>] (platform_drv_probe+0x18/0x1c)
[<c025924c>] (platform_drv_probe+0x18/0x1c) from [<c025806c>] (driver_probe_device+0x78/0x198)
[<c025806c>] (driver_probe_device+0x78/0x198) from [<c0258218>] (__driver_attach+0x8c/0x90)
[<c0258218>] (__driver_attach+0x8c/0x90) from [<c025782c>] (bus_for_each_dev+0x60/0x8c)
[<c025782c>] (bus_for_each_dev+0x60/0x8c) from [<c025714c>] (bus_add_driver+0x208/0x2e4)
[<c025714c>] (bus_add_driver+0x208/0x2e4) from [<c0258494>] (driver_register+0x6c/0x154)
[<c0258494>] (driver_register+0x6c/0x154) from [<c025966c>] (platform_driver_probe+0x18/0x9c)
[<c025966c>] (platform_driver_probe+0x18/0x9c) from [<c0033380>] (do_one_initcall+0x30/0x1a0)
[<c0033380>] (do_one_initcall+0x30/0x1a0) from [<c0008418>] (kernel_init+0xa8/0x160)
[<c0008418>] (kernel_init+0xa8/0x160) from [<c0034aa8>] (kernel_thread_exit+0x0/0x8)
---[ end trace da227214a82491b7 ]---
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c-i2c s3c2440-i2c.0: slave address 0x10
s3c-i2c s3c2440-i2c.0: bus frequency set to 64 KHz
s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
Advanced Linux Sound Architecture Driver Version 1.0.23.
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource clock_source_timer2
Switched to NOHz mode on CPU #0
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
ashmem: initialized
Installing knfsd (copyright (C) 1996 [email protected]).
msgmni has been set to 401
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: LTE480WV will be initialized
Window[0] - FB1: map_video_memory: clear ff600000:0007f800
FB1: map_video_memory: dma=5cd80000 cpu=ff600000 size=0007f800
Window[0] - FB2: map_video_memory: clear ff63fc00:0003fc00
FB2: map_video_memory: dma=5cdbfc00 cpu=ff63fc00 size=0003fc00
Console: switching to colour frame buffer device 60x34
fb0: s3cfb frame buffer device
Window[1] - FB1: map_video_memory: clear ff700000:0007f800
FB1: map_video_memory: dma=5ce00000 cpu=ff700000 size=0007f800
Window[1] - FB2: map_video_memory: clear ff73fc00:0003fc00
FB2: map_video_memory: dma=5ce3fc00 cpu=ff73fc00 size=0003fc00
fb1: s3cfb frame buffer device
Window[2] - FB1: map_video_memory: clear ff680000:0003fc00
FB1: map_video_memory: dma=5ce80000 cpu=ff680000 size=0003fc00
fb2: s3cfb frame buffer device
jkq debug VIDCON0 is 353
@@@@@@@@@@@@@@@@@@@@@@@@@@
leds initialized
@@@@@@@@@@@@@@@@@@@@@@@@@@
pwm initialized
adc herr
adc initialized
seg initialized
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.2: s3c2410_serial2 at MMIO 0x7f005800 (irq = 24) is a S3C6400/10
s3c6400-uart.3: s3c2410_serial3 at MMIO 0x7f005c00 (irq = 28) is a S3C6400/10
pmem: 1 init
S3C NAND Driver, (c) 2008 Samsung Electronics
forlinx************Nandflash:ChipType= SLC ChipName=MT29F8G08ABABAWP
S3C NAND Driver is using hardware ECC.
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x38 (Micron NAND 2GiB 1,8V 8-bit)
Creating 4 MTD partitions on "NAND 2GiB 1,8V 8-bit":
0x000000000000-0x000000200000 : "Bootloader"
0x000000200000-0x000000700000 : "Kernel"
0x000000700000-0x00000cf00000 : "User"
0x00000cf00000-0x000040000000 : "File System"
CAN device driver interface
mcp251x spi1.0: MCP251x didn't enter in conf mode after reset
mcp251x spi1.0: Probe failed
mcp251x spi1.0: probe failed
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
dm9000 Ethernet Driver, V2.6.31
[dm9] dm9000_probe ndev->irq=6c
[dm9].1 read id 0x01010101
dm9000 dm9000.0: read wrong id 0x01010101
[dm9].2 read id 0x90000a46
[dm9000 Ethernet Driver, V2.6.31]: KV= 2.6.36 !!
[dm9000 Ethernet Driver, V2.6.31]: ChipID= 0x90000a46 !!
[DM9000]dm9000 revision 0x19
eth0: dm9000a at d0832000,d0c00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
rtw driver version=v3.4.4_4749.20121105
Build at: Jun 3 2014 09:04:49
##########rtw_suspend_lock_init ###########
usbcore: registered new interface driver rtl8192cu
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
usbcore: registered new interface driver rt73usb
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.36 ohci_hcd
usb usb1: SerialNumber: s3c24xx
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
s3c-hsotg s3c-hsotg: regs d0840000, irq 90
s3c-hsotg s3c-hsotg: s3c_hsotg_corereset: reset failed, GRSTCTL=80000001
s3c-hsotg s3c-hsotg: GRXFSIZ=0x00001800, GNPTXFSIZ=0x18001800
s3c-hsotg s3c-hsotg: shared fifos
s3c-hsotg s3c-hsotg: DCFG=0x00200000, DCTL=0x00000002, DIEPMSK=0000000f
s3c-hsotg s3c-hsotg: GAHBCFG=0x00000000, 0x44=0x00000000
s3c-hsotg s3c-hsotg: GRXFSIZ=0x00000800, GNPTXFSIZ=0x04000800
s3c-hsotg s3c-hsotg: DPTx[1] FSize=768, StAddr=0x00000f00
s3c-hsotg s3c-hsotg: DPTx[2] FSize=768, StAddr=0x00001200
s3c-hsotg s3c-hsotg: DPTx[3] FSize=768, StAddr=0x00001500
s3c-hsotg s3c-hsotg: DPTx[4] FSize=768, StAddr=0x00001800
s3c-hsotg s3c-hsotg: DPTx[5] FSize=768, StAddr=0x00001b00
s3c-hsotg s3c-hsotg: DPTx[6] FSize=768, StAddr=0x00001e00
s3c-hsotg s3c-hsotg: DPTx[7] FSize=768, StAddr=0x00002100
s3c-hsotg s3c-hsotg: DPTx[8] FSize=768, StAddr=0x00002400
s3c-hsotg s3c-hsotg: DPTx[9] FSize=768, StAddr=0x00002700
s3c-hsotg s3c-hsotg: DPTx[10] FSize=768, StAddr=0x00002a00
s3c-hsotg s3c-hsotg: DPTx[11] FSize=768, StAddr=0x00002d00
s3c-hsotg s3c-hsotg: DPTx[12] FSize=768, StAddr=0x00003000
s3c-hsotg s3c-hsotg: DPTx[13] FSize=768, StAddr=0x00003300
s3c-hsotg s3c-hsotg: DPTx[14] FSize=768, StAddr=0x00003600
s3c-hsotg s3c-hsotg: DPTx[15] FSize=768, StAddr=0x00003900
s3c-hsotg s3c-hsotg: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep6-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep6-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep7-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep7-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep8-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep8-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep9-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep9-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep10-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep10-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep11-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep11-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep12-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep12-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep13-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep13-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep14-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: ep14-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x00000000
s3c-hsotg s3c-hsotg: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8
android init
android_probe pdata: c07d52a8
android_bind
android_usb gadget: android_usb ready
s3c-hsotg s3c-hsotg: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x00008000
s3c-hsotg s3c-hsotg: DCTL=0x00000002
s3c-hsotg s3c-hsotg: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x80008000
s3c-hsotg s3c-hsotg: S3C_GINTSTS_USBSusp
s3c-hsotg s3c-hsotg: s3c_hsotg_irq: USBRst
s3c-hsotg s3c-hsotg: bound driver android_usb
f_adb init
android_register_function adb
f_mass_storage init
android_register_function usb_mass_storage
android_usb gadget: invalid number of LUNs: 0
adb_bind_config
mice: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
S3C Touchscreen driver, (c) 2008 Samsung Electronics
s3c-ts.c SCREEN_X=480 SCREEN_Y=272
Unexpected
S3C TouchScreen got loaded successfully : 12 bits
input: S3C TouchScreen as /devices/virtual/input/input1
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
using rtc device, s3c, for alarms
s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc0
i2c /dev entries d