1. 程式人生 > >S5PV210開發 -- 通過 SD 卡燒寫

S5PV210開發 -- 通過 SD 卡燒寫

上文 燒寫/啟動模式 提到使用 SD 卡啟動。那麼接下來看看怎麼做。

一、首先備份

一開始購買的開發板是 Android 系統的,將撥碼開關調到 SD 啟動模式下。按POWER按鈕,備份一份在 SecureCRT 下檢視的啟動資訊。

U-Boot 1.3.4-dirty (May 21 2016 - 18:17:00) for x210


CPU:  [email protected](OK)
        APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
        MPLL = 667MHz, EPLL = 96MHz
                       HclkDsys = 166MHz, PclkDsys = 83MHz
                       HclkPsys = 133MHz, PclkPsys = 66MHz
                       SCLKA2M  = 200MHz
Serial = CLKUART 
Board:   X210
DRAM:    512 MB
Flash:   8 MB
SD/MMC:  3776MB
*** Warning - using default environment

In:      serial
Out:     serial
Err:     serial
[LEFT UP] boot mode
checking mode for fastboot ...
Hit any key to stop autoboot:  0 
reading kernel.. 1073, 8192 
MMC read: dev # 0, block # 1073, count 8192 ...8192 blocks read: OK
completed
reading RFS.. 9265, 6144 
MMC read: dev # 0, block # 9265, count 6144 ...6144 blocks read: OK
completed
Boot with zImage
get_format
-------- 0 --------
Wrong Ramdisk Image Format

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.8 (
[email protected]
) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #49 PREEMPT Tue Mar 22 19:35:49 CST 2016 CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine: X210 Ignoring unrecognised tag 0x41001099 Memory policy: ECC disabled, Data cache writeback CPU S5PV210/S5PC110 (id 0x43110220) S3C24XX Clocks, Copyright 2004 Simtec Electronics S5PV210: PLL settings, A=1000000000, M=667000000, E=96000000 V=54000000 S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000 HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000 sclk_dmc: source is sclk_a2m (0), rate is 200000000 sclk_onenand: source is hclk_psys (0), rate is 66700000 uclk1: source is mout_mpll (6), rate is 66700000 uclk1: source is mout_mpll (6), rate is 66700000 uclk1: source is mout_mpll (6), rate is 66700000 uclk1: source is mout_mpll (6), rate is 66700000 sclk_mixer: source is sclk_dac (0), rate is 24000000 sclk_fimc: source is ext_xtal (0), rate is 24000000 sclk_fimc: source is ext_xtal (0), rate is 24000000 sclk_fimc: source is ext_xtal (0), rate is 24000000 sclk_cam0: source is xusbxti (1), rate is 12000000 sclk_cam1: source is ext_xtal (0), rate is 12000000 sclk_fimd: source is ext_xtal (0), rate is 24000000 sclk_mmc: source is mout_mpll (6), rate is 47642857 sclk_mmc: source is mout_epll (7), rate is 96000000 sclk_mmc: source is mout_mpll (6), rate is 47642857 sclk_mmc: source is mout_epll (7), rate is 96000000 sclk_mfc: source is sclk_a2m (0), rate is 200000000 sclk_g2d: source is sclk_a2m (0), rate is 200000000 sclk_g3d: source is sclk_a2m (0), rate is 100000000 sclk_csis: source is ext_xtal (0), rate is 24000000 sclk_spi: source is ext_xtal (0), rate is 24000000 sclk_spi: source is ext_xtal (0), rate is 24000000 sclk_pwi: source is ext_xtal (0), rate is 24000000 sclk_pwm: source is ext_xtal (0), rate is 24000000 s5p: 37748736 bytes system memory reserved for mfc at 0x3dc00000, 0-bank base(0x3dc00000) s5p: 37748736 bytes system memory reserved for mfc at 0x4dbf5000, 1-bank base(0x4dbf5000) s5p: 25165824 bytes system memory reserved for fimc0 at 0x4c3f5000, 1-bank base(0x4c3f5000) s5p: 10137600 bytes system memory reserved for fimc1 at 0x4ba4a000, 1-bank base(0x4ba4a000) s5p: 6291456 bytes system memory reserved for fimc2 at 0x4b44a000, 1-bank base(0x4b44a000) s5p: 25165824 bytes system memory reserved for jpeg at 0x3c400000, 0-bank base(0x3c400000) s5p: 12288000 bytes system memory reserved for fimd at 0x4a892000, 1-bank base(0x4a892000) s5p: 1843200 bytes system memory reserved for pmem_gpu1 at 0x3c23e000, 0-bank base(0x3c23e000) s5p: 8388608 bytes system memory reserved for g2d at 0x3ba3e000, 0-bank base(0x3ba3e000) Built 1 zonelists in Zone order, mobility grouping on. Total pages: 89819 Kernel command line: console=ttySAC2,115200 PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 186MB 168MB 0MB = 354MB total Memory: 350232k/511148k available, 13140k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xff000000 - 0xffe00000 ( 14 MB) vmalloc : 0xe0800000 - 0xfd000000 ( 456 MB) lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .init : 0xc0008000 - 0xc0079000 ( 452 kB) .text : 0xc0079000 - 0xc06cf6c0 (6490 kB) .data : 0xc06d0000 - 0xc0719900 ( 295 kB) .bss : 0xc0719924 - 0xc085a250 (1283 kB) SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Preemptible hierarchical RCU implementation. NR_IRQS:208 VIC @fd000000: id 0x00041192, vendor 0x41 VIC @fd010000: id 0x00041192, vendor 0x41 VIC @fd020000: id 0x00041192, vendor 0x41 VIC @fd030000: id 0x00041192, vendor 0x41 mult[140737] max_delta_ns[2937815369] min_delta_ns[30517] rate[32768] HZ[200] Console: colour dummy device 80x30 Calibrating delay loop... 992.87 BogoMIPS (lpj=2482176) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 Initializing cgroup subsys debug Initializing cgroup subsys cpuacct Initializing cgroup subsys freezer CPU: Testing write buffer coherency: ok print_constraints: dummy: NET: Registered protocol family 16 S3C Power Management, Copyright 2004 Simtec Electronics pmstats at 00000000 pmem_start is 0x0 ---pmem_start is 0x4a892000 Open OV2655 camema sensor smdkc110_setup_clocks: sclk_mmc: source is mout_mpll, rate is 47642857 S5PV210: Initializing architecture s3c-adc s5pv210-adc: attached adc driver s3c24xx-pwm s3c24xx-pwm.0: tin at 66700000, tdiv at 66700000, tin=divclk, base 0 print_constraints: pd_tv_supply: 5000 mV normal print_constraints: pd_lcd_supply: 5000 mV normal print_constraints: pd_g3d_supply: 5000 mV normal print_constraints: pd_mfc_supply: 5000 mV normal print_constraints: pd_audio_supply: 5000 mV normal print_constraints: pd_cam_supply: 5000 mV normal bio: create slab <bio-0> at 0 print_constraints: B_PWR_5V: 5000 mV SCSI subsystem initialized 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 43 KHz s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter s3c-i2c s3c2440-i2c.1: slave address 0x10 s3c-i2c s3c2440-i2c.1: bus frequency set to 65 KHz s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter s3c-i2c s3c2440-i2c.2: slave address 0x10 s3c-i2c s3c2440-i2c.2: bus frequency set to 65 KHz machine_constraints_voltage: VALIVE_1.1V: failed to apply 1100000uV constraint (NULL device *): regulator init failed s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter Advanced Linux Sound Architecture Driver Version 1.0.24. cfg80211: Calling CRDA to update world regulatory domain Switching to clocksource clock_source_systimer Switched to NOHz mode on CPU #0 NET: Registered protocol family 2 IP route cache hash table entries: 4096 (order: 2, 16384 bytes) TCP established hash table entries: 16384 (order: 5, 131072 bytes) TCP bind hash table entries: 16384 (order: 6, 327680 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP reno registered UDP hash table entries: 256 (order: 1, 12288 bytes) UDP-Lite hash table entries: 256 (order: 1, 12288 bytes) NET: Registered protocol family 1 PMU: registered new PMU device of type 0 input: s3c-button as /devices/virtual/input/input0 s3c button Initialized!! Loaded driver for PL330 DMAC-0 s3c-pl330 DBUFF-64x8bytes Num_Chans-8 Num_Peri-2 Num_Events-32 Loaded driver for PL330 DMAC-1 s3c-pl330 DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 Loaded driver for PL330 DMAC-2 s3c-pl330 DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 ashmem: initialized NTFS driver 2.1.30 [Flags: R/O]. ROMFS MTD (C) 2007 Red Hat, Inc. yaffs: yaffs built Jan 18 2016 11:34:32 Installing. msgmni has been set to 684 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) start plist test end plist test win->id=2, pmem_start=0x4af9a000 s3cfb s3cfb: [fb2] dma: 0x4af9a000, cpu: 0xe1000000, size: 0x004b0000 FIMD src sclk = 166750000 s3cfb s3cfb: registered successfully Start display and show logo s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 16) is a S3C6400/10 s5pv210-uart.1: ttySAC1 at MMIO 0xe2900400 (irq = 20) is a S3C6400/10 s5pv210-uart.2: ttySAC2 at MMIO 0xe2900800 (irq = 24) is a S3C6400/10 console [ttySAC2] enabled s5pv210-uart.3: ttySAC3 at MMIO 0xe2900c00 (irq = 28) is a S3C6400/10 x210 led driver Initial GSensor Driver input: gsensor as /devices/virtual/input/input1 gsensor's ID: 0x01 Found Gsensor hardware i2c-core: driver [gsensor-iic] using legacy suspend method i2c-core: driver [gsensor-iic] using legacy resume method PA FB = 0x4AF9A000, bits per pixel = 32 screen width=1024 height=600 va=0xdaf9a000 pa=0x4af9a000 xres_virtual = 1024, yres_virtual = 1200, xoffset = 0, yoffset = 0 fb_size=4915200 Back frameBuffer[0].VAddr=db1f2000 PAddr=4b1f2000 size=2457600 brd: module loaded loop: module loaded S3C NAND Driver, (c) 2008 Samsung Electronics Unknown NAND Device. 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, V1.31 eth0: dm9000b at e083c000,e083e004 IRQ 42 MAC: 00:09:c0:ff:ec:48 (platform data) usbcore: registered new interface driver catc catc: v2.8:CATC EL1210A NetMate USB Ethernet driver usbcore: registered new interface driver kaweth pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver usbcore: registered new interface driver pegasus rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver usbcore: registered new interface driver rtl8150 usbcore: registered new interface driver asix usbcore: registered new interface driver cdc_ether usbcore: registered new interface driver dm9601 usbcore: registered new interface driver smsc75xx usbcore: registered new interface driver smsc95xx usbcore: registered new interface driver net1080 usbcore: registered new interface driver cdc_subset usbcore: registered new interface driver zaurus cdc_ncm: 04-Aug-2011 usbcore: registered new interface driver cdc_ncm ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver failed to find udc vcc source Failed to power up USB s5p-ehci s5p-ehci: S5P EHCI Host Controller s5p-ehci s5p-ehci: new USB bus registered, assigned bus number 1 s5p-ehci s5p-ehci: irq 87, io mem 0xec200000 s5p-ehci s5p-ehci: USB 0.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver failed to find udc vcc source Failed to power up USB s5p-ohci s5p-ohci: EXYNOS OHCI Host Controller s5p-ohci s5p-ohci: new USB bus registered, assigned bus number 2 s5p-ohci s5p-ohci: irq 87, io mem 0xec300000 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected usbcore: registered new interface driver cdc_acm cdc_acm: 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 s3c-udc : S3C HS USB Device Controller Driver, (c) 2008-2009 Samsung Electronics s3c-udc : version 15 March 2009 (DMA Mode) android_usb gadget: Mass Storage Function, version: 2009/09/11 android_usb gadget: Number of LUNs=1 lun0: LUN: removable file: (no medium) android_usb gadget: android_usb ready failed to find udc vcc source Failed to power up USB Registered gadget driver 'android_usb' mousedev: PS/2 mouse device common for all mice cal_x_max=800,cal_y_max=480 samsung-ts s3c64xx-ts: driver attached, registering input device input: s3c_ts as /devices/virtual/input/input2 ==kzalloc success= usb 1-1: new high speed USB device number 2 using s5p-ehci hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected =============gsl_load_fw end============== [GSLX680] Enter gslX680_ts_init input: gslX680 as /devices/platform/s3c2440-i2c.1/i2c-1/1-0040/input/input3 i2c-core: driver [gslX680] using legacy suspend method i2c-core: driver [gslX680] using legacy resume method ==gsl_ts_init== ret=0 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 driver lirc_dev: IR Remote Control driver registered, major 251 IR NEC protocol handler initialized IR RC5(x) protocol handler initialized IR RC6 protocol handler initialized IR JVC protocol handler initialized IR Sony protocol handler initialized IR RC5 (streamzap) protocol handler initialized IR LIRC bridge handler initialized Linux video capture interface: v2.00 mfc_init: <6>S5PC110 MFC Driver, (c) 2009 Samsung Electronics S3C JPEG Driver, (c) 2007 Samsung Electronics JPEG driver for S5PV210 i2c i2c-1: attached s5p_ddc into i2c adapter successfully S5PC11X HPD Driver, (c) 2010 Samsung Electronics S5PC11X CEC Driver, (c) 2010 Samsung Electronics S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133400000 Hz) s3c-sdhci s3c-sdhci.0: clock source 2: sclk_mmc (47642857 Hz) mmc0: no vmmc regulator found mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc (133400000 Hz) s3c-sdhci s3c-sdhci.1: clock source 2: sclk_mmc (96000000 Hz) mmc1: no vmmc regulator found mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA s3c-sdhci s3c-sdhci.2: clock source 0: hsmmc (133400000 Hz) s3c-sdhci s3c-sdhci.2: clock source 2: sclk_mmc (47642857 Hz) mmc2: no vmmc regulator found mmc2: SDHCI controller on samsung-hsmmc [s3c-sdhci.2] using ADMA s3c-sdhci s3c-sdhci.3: clock source 0: hsmmc (133400000 Hz) s3c-sdhci s3c-sdhci.3: clock source 2: sclk_mmc (96000000 Hz) mmc3: no vmmc regulator found mmc3: SDHCI controller on samsung-hsmmc [s3c-sdhci.3] using ADMA usbcore: registered new interface driver usbhid usbhid: USB HID core driver logger: created 256K log 'log_main' logger: created 256K log 'log_events' logger: created 256K log 'log_radio' logger: created 256K log 'log_system' mmc0: new high speed MMC card at address 0001 mmcblk0: mmc0:0001 004GE0 3.68 GiB mmcblk0boot0: mmc0:0001 004GE0 partition 1 2.00 MiB mmcblk0boot1: mmc0:0001 004GE0 partition 2 2.00 MiB Error: Driver 'samsung-audio' is already registered, aborting... wm8978 probe mmcblk0: p1 p2 p3 p4 mmcblk0boot1: unknown partition table mmcblk0boot0: unknown partition table mmc2: new high speed SDHC card at address 2151 mmcblk1: mmc2:2151 APPSD 7.61 GiB mmcblk1: p1 asoc: wm8978_codec <-> samsung-i2s.0 mapping ok asoc: wm8978_codec <-> samsung-i2s.0 mapping ok ALSA device list: #0: smdk Netfilter messages via NETLINK v0.30. NF_TPROXY: Transparent proxy support initialized, version 4.1.0 NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd. ip_tables: (C) 2000-2006 Netfilter Core Team TCP cubic registered NET: Registered protocol family 10 ip6_tables: (C) 2000-2006 Netfilter Core Team IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 NET: Registered protocol family 15 lib80211: common routines for IEEE802.11 drivers VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2 regulator_init_complete: pd_cam_supply: incomplete constraints, leaving on regulator_init_complete: pd_mfc_supply: incomplete constraints, leaving on regulator_init_complete: pd_tv_supply: incomplete constraints, leaving on s3c-rtc s3c64xx-rtc: setting system clock to 2000-01-01 00:02:18 UTC (946684938) FIMC0 registered successfully FIMC1 registered successfully FIMC2 registered successfully S5PC1XX TVOUT Driver, (c) 2009 Samsung Electronics s5p-tvout s5p-tvout: hpd status is cable removed Warning: unable to open an initial console. Freeing init memory: 452K init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead. init: cannot open '/initlogo.rle' EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) EXT4-fs (mmcblk0p4): warning: checktime reached, running e2fsck is recommended EXT4-fs (mmcblk0p4): 1 orphan inode deleted EXT4-fs (mmcblk0p4): recovery complete EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null) EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommended EXT4-fs (mmcblk0p3): recovery complete EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null) EXT4-fs (mmcblk0p1): VFS: Can't find ext4 filesystem init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery' android_usb: already disabled adb_open mtp_bind_config adb_bind_config android_work: did not send uevent (0 0 (null)) / # PVR_K:(Warning): SysFinalise: Version string: SGX540 S5PC110 [543, drivers/gpu/pvr/s5pc110/sysconfig.c] win->id=0, pmem_start=0x4a892000 s3cfb s3cfb: [fb0] dma: 0x4a892000, cpu: 0xe3000000, size: 0x00708000 s3cfb s3cfb: [fb1] dma: 0x47000000, cpu: 0xff800000, size: 0x004b0000 init: start ~~~~~~~~ bootanim warning: `zygote' uses 32-bit capabilities (legacy support in use) request_suspend_state: wakeup (3->0) at 22488732379 (2000-01-01 00:02:34.326583204 UTC) dm9000 dm9000: eth0: link down ADDRCONF(NETDEV_UP): eth0: link is not ready init: start ~~~~~~~~ dhcpcd_eth0:-h android-dde77fb426e13260 eth0 ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1 acc_open acc_release RTL871X: rtl8188eu driver version=v4.1.5_7309.20130425 RTL871X: build time: Jan 7 2014 11:30:45 usbcore: registered new interface driver rtl8188eu init: start ~~~~~~~~ dhcpcd_eth0:-h android-dde77fb426e13260 eth0 RTL871X: +rtw_drv_halt usbcore: deregistering interface driver rtl8188eu RTL871X: -rtw_drv_halt / # ls acct ext_sd sbin cache init sdcard config init.goldfish.rc sys d init.rc system data init.x210.rc ueventd.goldfish.rc default.prop init.x210.usb.rc ueventd.rc dev mnt ueventd.x210.rc etc proc vendor ========================================================================== U-Boot 1.3.4-dirty (May 21 2016 - 18:17:00) for x210 CPU:
[email protected]
(OK) APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz MPLL = 667MHz, EPLL = 96MHz HclkDsys = 166MHz, PclkDsys = 83MHz HclkPsys = 133MHz, PclkPsys = 66MHz SCLKA2M = 200MHz Serial = CLKUART Board: X210 DRAM: 512 MB Flash: 8 MB SD/MMC: 3776MB *** Warning - using default environment In: serial Out: serial Err: serial [LEFT UP] boot mode checking mode for fastboot ... Hit any key to stop autoboot: 0 x210 # print bootcmd=movi read kernel 30008000; movi read rootfs 30B00000 300000; bootm 30008000 30B00000 mtdpart=80000 400000 3000000 bootdelay=3 baudrate=115200 ethaddr=00:40:5c:26:0a:5b ipaddr=192.168.1.88 serverip=192.168.1.102 gatewayip=192.168.0.1 netmask=255.255.0.0 Environment size: 261/16380 bytes

二、破壞iNand中的bootloader以從SD2啟動

注意,如果此時將SD卡拔出,重新啟動,開發板還是可以進入系統的。說明此時bootloader是從 iNand 啟動的了。預設 CPU 會首先從 iNand 啟動,如果 iNand 沒有資料,才會從 SD2 啟動。但是你想象一下,剛買的未燒寫程式的開發板。該如何燒寫呢?為了演示所以我們需要先將 iNand 中的 bootloader 破壞掉。破壞開發板 android 平臺下的 bootloader,從 SD2 啟動開發板
進入 android 系統控制檯,執行如下指令:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
為了確保執行資料有效,再執行 sync 同步一下,即可破壞掉前一個塊的資料。
同理,如果是破壞開發板 linux 平臺下的 bootloader,從 SD2 啟動開發板
進入 linux 系統控制檯,執行如下指令:
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
為了確保執行資料有效,再執行 sync 同步一下,即可破壞掉前一個塊的資料。

三、分析

現在好了,開發板無法啟動了... 再次上電出現錯誤 SD checksum Error通過SD卡燒寫,有兩種方式:第一種,在Windows下 使用 x210_Fusing_Tool.exe 燒寫 uboot.bin第二種,在Linux下 使用指令 sudo ./sd_fusing.sh /dev/sdb 燒寫 uboot.bin甭管那種把,先把 SD 格式化了再說。

四、Windows 下燒寫

首先將第一種在Windows下燒寫,使用工具 第一種 x210_Fusing_Tool.exe將 SD 插入PC 格式化完後,開啟 x210_Fusing_Tool.exe 軟體。確認一下 SD/MMC Drive 是不是你的SD卡可移動磁碟;Browse 選擇你要燒寫的 uboot.bin;點選 Add,在PATH下面會出現相應的地址,記得在其前面打對勾;點選 START 等待一會彈出如下視窗,則燒寫 uboot.bin 完成。

五、Linux 下燒寫

(1)首先是需要重新給 SD 分割槽

在Ubuntu下,插入SD卡,檢視裝置節點 cat /proc/partitions
使用 fdisk /dev/sdb 命令刪除原來所有分割槽, sdb 為系統為 SD 卡分配的裝置節點。

輸入 d,表示刪除分割槽,輸入 w 表示儲存已經修改的分割槽資訊。至此,原/dev/sdb1 被刪除。撥掉 SD 卡,再插入 PC 機上,查詢裝置節點 cat /proc/partitions

注意必須撥掉後再插入,否則仍然會提示存在/dev/sdb1 節點,會造成出錯。
然後使用 gparted 工具給 SD 卡預留 256M 空間,用於存放 uboot 映像。Ubuntu上安裝 gparted,使用指令 sudo apt-get install gparted 即可使用方法:輸入 gparted /dev/sdb 進入如下介面。點選 Partition->New
出現如下介面,在Free space preceding 處填寫 256;File system 處選擇 fat32;點選 Add
然後再點選對勾,即應用全部操作,然後根據提示點選,到此完成SD卡的分割槽。

(2)燒寫 uboot 

一開始如果你沒有編譯uboot的話,我先提供一個。 注意,這裡面的 uboot.bin 有Linux和Android系統之分的。不能用Linux系統的uboot 燒寫android的核心的,這一點要搞清楚的。然後執行 ./sd_fusing.sh /dev/sdb
到此 Linux下 燒寫 uboot.bin 完成!

六、利用 fastboot 更新

將 SD 卡插入開發板,撥碼開關選擇 SD/MMC 啟動模式,連線 USB OTG 口到 PC 機。在 SecureCRT 連線成功。可以進入 uboot。
執行 fastboot 指令,彈出介面如下:

然後利用 fastboot 燒寫,但是理想很很豐滿,顯示很骨感。其中執行 fastboot指令時,出現一個問題:waiting for device經查詢是因為沒有 fastboot 所需要的驅動 Android 1.0
更新驅動,驅動檔案有提供的,所在位置是:
注意,最好該路徑沒有中文。我吃過這種虧。但是又出現問題了,顯示錯誤 檔案的雜湊值不在指定的目錄檔案中。
解決方法 :1、找到WIN10的設定,點選“設定
2、點選最後一個“更新和回覆”,然後點選“恢復
3、點選“恢復”之後,在右邊點選高階啟動下面的“重新啟動”,此時電腦會重新啟動,如果有其他重要程式在跑,請慎重
4、重啟之後會出現幾個選項,點選選項“疑難解答
5、然後點選“高階”,啟動設定,重啟
6、這會重啟之後就跳出一個列表,其中有安全模式等選項,也包括這裡我們關心的“禁止強制驅動程式簽名
7、選擇“禁用強制驅動程式簽名”,對應哪個數字就按那個數字(按 F7),之後電腦會重新啟動。
8、重啟之後,驅動就可以成功安裝。若有提示點選繼續安裝即可。

執行 CMD 進入 fastboot 資料夾下:

此時就可以利用 fastboot 完成燒寫了:


其中fastboot的燒寫指令分Linux系統Android系統。技巧:將uboot、核心、檔案系統與fastboot放在同一目錄下可以省略它們的目錄,如此還方便一點。

《1》燒錄linux+QT

fastboot flash bootloader linuxQT/uboot_inand.bin              燒uboot
fastboot flash kernel linuxQT/zImage-qt                                 燒linuxkernel
fastboot flash system linuxQT/rootfs_qt4.ext3                        燒rootfs
uboot的引數不用特意設定(因為我們刷了專為linux+QT定製的uboot,這個uboot中估計已經預製好了所有的啟動引數)

《2》燒錄android2.3

fastboot flash bootloader android2.3/uboot.bin                燒uboot
fastboot flash kernel android2.3/zImage                             燒linuxkernel
fastboot flash system android2.3/x210.img                        燒androidrom
注意:android2.3中使用了串列埠0,所以啟動後要把串列埠插到串列埠0中,不然串列埠沒有任何啟動資訊出來。android2.3中螢幕上的logo是在左上角(也是個刷機成功的標誌)

《3》燒錄android4.0.4

fastboot flash bootloader android4.0/uboot.bin                燒uboot
fastboot flash kernel android4.0/zImage-android              燒linuxkernel
fastboot flash system android4.0/x210.img                        燒androidrom

七、啟動開發板

將 OTG 線拔出,然後將撥碼開關調到上面,即 SD/MCC 啟動模式。

OK,啟動成功!!到此燒寫完成!!