宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64
目标板[底板]: Tiny4412SDK - 1506
目标板[核心板]: Tiny4412 - 1412
LINUX内核: 4.12.0
交叉编译器: gcc-arm-none-eabi-5_4-2016q3
日期: 2017-8-5 11:39:53
作者: SY
本节的目的就是要制作一张SD
卡,用来启动U-BOOT
、LINUX
、挂载根文件系统
,SD
至少包含一个FAT32
分区用于移动、替换、保存源文件。 还有一个EXT4
分区用于加载放置根文件系统
。
思路:在Linux
中,使用脚本mk_uboot.sh
源文件,启动u-boot
,u-boot
启动后通过bootcmd
自动加载linux内核
和设备树
。内核启动后自动加载根文件系统
运行 linux
。
root@ubuntu:/opt/temp/temp# ls
E4412_N.bl1.bin exynos4412-tiny4412.dtb tiny4412-spl.bin
E4412_tzsw.bin rootfs.tar.gz u-boot.bin uImage
将exynos4412-tiny4412.dtb
uImage
存储到SD卡
的FAT32
分区,最简单的办法就是用读卡器插到电脑端,拷贝。
将E4412_N.bl1.bin
tiny4412-spl.bin
u-boot.bin
E4412_tzsw.bin
烧录到SD卡
的指定位置,写一个脚本mk_uboot.sh
执行烧录:
#
# Copyright (C) 2011 Samsung Electronics Co., Ltd.
# http://www.samsung.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
####################################
if [ -z $1 ]
then
echo "usage: ./mk_uboot.sh <SD Reader's device file>"
exit 0
fi
if [ -b $1 ]
then
echo "$1 reader is identified."
else
echo "$1 is NOT identified."
exit 0
fi
####################################
#<verify device>
BDEV_NAME=`basename $1`
BDEV_SIZE=`cat /sys/block/${BDEV_NAME}/size`
if [ ${BDEV_SIZE} -le 0 ]; then
echo "Error: NO media found in card reader."
exit 1
fi
if [ ${BDEV_SIZE} -gt 32000000 ]; then
echo "Error: Block device size (${BDEV_SIZE}) is too large"
exit 1
fi
####################################
# fusing file
bl1_name="E4412_N.bl1.bin"
bl2_name="tiny4412-spl.bin"
uboot_name="u-boot.bin"
tzsz_name="E4412_tzsw.bin"
####################################
# fusing images
signed_bl1_position=1
bl2_position=17
uboot_position=49
tzsw_position=2097
#<BL1 fusing>
echo "---------------------------------------"
echo "BL1 fusing"
dd iflag=dsync oflag=dsync if=$bl1_name of=$1 seek=$signed_bl1_position
#<BL2 fusing>
echo "---------------------------------------"
echo "BL2 fusing"
dd iflag=dsync oflag=dsync if=$bl2_name of=$1 seek=$bl2_position
#<u-boot fusing>
echo "---------------------------------------"
echo "u-boot fusing"
dd iflag=dsync oflag=dsync if=$uboot_name of=$1 seek=$uboot_position
#<TrustZone S/W fusing>
echo "---------------------------------------"
echo "TrustZone S/W fusing"
dd iflag=dsync oflag=dsync if=$tzsz_name of=$1 seek=$tzsw_position
#<flush to disk>
sync
####################################
#<Message Display>
echo "---------------------------------------"
echo "U-boot image is fused successfully."
echo "Eject SD card and insert it again."
插入SD
卡
root@ubuntu:/opt/u-boot-2017.03/sd_fuse/tiny4412/mk_uboot# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0f0ec6f5
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 39845887 39843840 19G 83 Linux
/dev/sda2 39847934 41940991 2093058 1022M 5 Extended
/dev/sda5 39847936 41940991 2093056 1022M 82 Linux swap / Solaris
Disk /dev/sdd: 14.5 GiB, 15544090624 bytes, 30359552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x500a0dff
Device Boot Start End Sectors Size Id Type
/dev/sdd1 2048 2099199 2097152 1G b W95 FAT32
/dev/sdd2 2099200 30359551 28260352 13.5G 83 Linux
识别为sdd
root@ubuntu:/opt/u-boot-2017.03/sd_fuse/tiny4412/mk_uboot# ./mk_uboot.sh /dev/sdd
/dev/sdd reader is identified.
---------------------------------------
BL1 fusing
16+0 records in
16+0 records out
8192 bytes (8.2 kB, 8.0 KiB) copied, 0.107848 s, 76.0 kB/s
---------------------------------------
BL2 fusing
32+0 records in
32+0 records out
16384 bytes (16 kB, 16 KiB) copied, 0.193574 s, 84.6 kB/s
---------------------------------------
u-boot fusing
932+1 records in
932+1 records out
477329 bytes (477 kB, 466 KiB) copied, 3.39375 s, 141 kB/s
---------------------------------------
TrustZone S/W fusing
184+0 records in
184+0 records out
94208 bytes (94 kB, 92 KiB) copied, 0.777557 s, 121 kB/s
---------------------------------------
U-boot image is fused successfully.
Eject SD card and insert it again.
流程:将 SD
卡到电脑端,通过虚拟机的 Linux
识别为设备,然后挂载 SD
卡的 EXT4
文件系统,将根文件系统拷贝到该分区。
root@ubuntu:/opt/temp/temp# ls
rootfs.tar.gz
root@ubuntu:/opt/temp/temp# tar zxf rootfs.tar.gz
root@ubuntu:/opt/temp/temp# ls
rootfs rootfs.tar.gz
root@ubuntu:/opt/temp/temp# cd rootfs
root@ubuntu:/opt/temp/temp/rootfs# ls
bin dev etc linuxrc mnt opt proc root sbin sys tmp var
将SD卡
插入电脑,拷贝根文件系统到sdd2
分区
root@ubuntu:/opt/temp/temp/rootfs# mount /dev/sdd2 /mnt
root@ubuntu:/opt/temp/temp/rootfs# cp -af * /mnt/
root@ubuntu:/opt/temp/temp/rootfs# cd /mnt/
root@ubuntu:/mnt# ls
bin dev etc linuxrc mnt opt proc root sbin sys tmp var
root@ubuntu:/mnt#
root@ubuntu:/mnt# cd ..
root@ubuntu:/# umount /mnt/
TINY4412 # setenv bootargs noinitrd root=/dev/mmcblk0p2 rw rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc
TINY4412 # setenv bootcmd fatload mmc 2:1 0x41000000 uImage\; fatload mmc 2:1 0x42000000 exynos4412-tiny4412.dtb\; bootm 0x41000000 - 0x42000000
TINY4412 # saveenv
Saving Environment to MMC...
Writing to MMC(2)... done
root=/dev/mmcblk0p2
:表示根文件系统的挂载位置是SD卡
的第2
个分区
rootfstype=ext4
:表示分区类型是EXT4
将SD卡
插入开发板开机
U-Boot 2017.03-gff1b95e-dirty (Aug 05 2017 - 16:38:36 +0800) for TINY4412
CPU: Exynos4412 @ 1.4 GHz
Model: Tiny4412 based on Exynos4412
Board: Tiny4412 based on Exynos4412
DRAM: 1 GiB
WARNING: Caches not enabled
MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 4
Net: No ethernet found.
Hit any key to stop autoboot: 0
reading uImage
4824448 bytes read in 180 ms (25.6 MiB/s)
reading exynos4412-tiny4412.dtb
47348 bytes read in 17 ms (2.7 MiB/s)
## Booting kernel from Legacy Image at 41000000 ...
Image Name: Linux-4.12.0-g16504fa-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4824384 Bytes = 4.6 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 42000000
Booting using the fdt blob at 0x42000000
Loading Kernel Image ... OK
Loading Device Tree to 4fff1000, end 4ffff8f3 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0xa00
[ 0.000000] Linux version 4.12.0-g16504fa-dirty (root@ubuntu) (gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors) ) #135 SMP PREEMPT Wed Aug 2 22:23:47 CST 2017
[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: FriendlyARM TINY4412 board based on Exynos4412
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 96 MiB at 0x7a000000
[ 0.000000] Samsung CPU ID: 0xe4412011
[ 0.000000] On node 0 totalpages: 262144
[ 0.000000] free_area_init_node: node 0, pgdat c0c46640, node_mem_map ef7f6000
[ 0.000000] Normal zone: 1536 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 196608 pages, LIFO batch:31
[ 0.000000] HighMem zone: 65536 pages, LIFO batch:15
[ 0.000000] percpu: Embedded 16 pages/cpu @ef78f000 s34968 r8192 d22376 u65536
[ 0.000000] pcpu-alloc: s34968 r8192 d22376 u65536 alloc=16*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260608
[ 0.000000] Kernel command line: noinitrd root=/dev/mmcblk0p2 rw rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 928836K/1048576K available (7168K kernel code, 330K rwdata, 2452K rodata, 1024K init, 327K bss, 21436K reserved, 98304K cma-reserved, 163840K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0800000 (8160 kB)
[ 0.000000] .init : 0xc0b00000 - 0xc0c00000 (1024 kB)
[ 0.000000] .data : 0xc0c00000 - 0xc0c52968 ( 331 kB)
[ 0.000000] .bss : 0xc0c5a0cc - 0xc0cabfe0 ( 328 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] L2C: platform modifies aux control register: 0x02070000 -> 0x3e470001
[ 0.000000] L2C: platform provided aux values permit register corruption.
[ 0.000000] L2C: DT/platform modifies aux control register: 0x02070000 -> 0x3e470001
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310: enabling full line of zeros but not enabled in Cortex-A9
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 16 ways, 1024 kB
[ 0.000000] L2C-310: CACHE_ID 0x4100c4c8, AUX_CTRL 0x4e470001
[ 0.000000] Exynos4x12 clocks: sclk_apll = 700000000, sclk_mpll = 800000000
[ 0.000000] sclk_epll = 96035156, sclk_vpll = 108035156, arm_clk = 1400000000
[ 0.000000] Switching to timer-based delay loop, resolution 41ns
[ 0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000003] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000153] Console: colour dummy device 80x30
[ 0.000167] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000176] pid_max: default: 32768 minimum: 301
[ 0.000240] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000247] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000551] CPU: Testing write buffer coherency: ok
[ 0.000746] CPU0: thread -1, cpu 0, socket 10, mpidr 80000a00
[ 0.040015] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.119994] smp: Bringing up secondary CPUs ...
[ 0.200053] CPU1: thread -1, cpu 1, socket 10, mpidr 80000a01
[ 0.280046] CPU2: thread -1, cpu 2, socket 10, mpidr 80000a02
[ 0.360044] CPU3: thread -1, cpu 3, socket 10, mpidr 80000a03
[ 0.360088] smp: Brought up 1 node, 4 CPUs
[ 0.360101] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[ 0.360106] CPU: All CPU(s) started in SVC mode.
[ 0.360640] devtmpfs: initialized
[ 0.367437] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.367597] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.367610] futex hash table entries: 1024 (order: 4, 65536 bytes)
[ 0.370540] pinctrl core: initialized pinctrl subsystem
[ 0.371056] /lcd0-power-domain@10023C80 has as child subdomain: /tv-power-domain@10023C20.
[ 0.371633] NET: Registered protocol family 16
[ 0.373038] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.374080] cpuidle: using governor menu
[ 0.380257] gpio gpiochip0: (gpa0): added GPIO chardev (254:0)
[ 0.380266] gpiochip_setup_dev: registered GPIOs 0 to 7 on device: gpiochip0 (gpa0)
[ 0.380360] gpio gpiochip1: (gpa1): added GPIO chardev (254:1)
[ 0.380367] gpiochip_setup_dev: registered GPIOs 8 to 13 on device: gpiochip1 (gpa1)
[ 0.380457] gpio gpiochip2: (gpb): added GPIO chardev (254:2)
[ 0.380464] gpiochip_setup_dev: registered GPIOs 14 to 21 on device: gpiochip2 (gpb)
[ 0.380564] gpio gpiochip3: (gpc0): added GPIO chardev (254:3)
[ 0.380572] gpiochip_setup_dev: registered GPIOs 22 to 26 on device: gpiochip3 (gpc0)
[ 0.380655] gpio gpiochip4: (gpc1): added GPIO chardev (254:4)
[ 0.380662] gpiochip_setup_dev: registered GPIOs 27 to 31 on device: gpiochip4 (gpc1)
[ 0.380739] gpio gpiochip5: (gpd0): added GPIO chardev (254:5)
[ 0.380746] gpiochip_setup_dev: registered GPIOs 32 to 35 on device: gpiochip5 (gpd0)
[ 0.380830] gpio gpiochip6: (gpd1): added GPIO chardev (254:6)
[ 0.380837] gpiochip_setup_dev: registered GPIOs 36 to 39 on device: gpiochip6 (gpd1)
[ 0.380926] gpio gpiochip7: (gpf0): added GPIO chardev (254:7)
[ 0.380933] gpiochip_setup_dev: registered GPIOs 40 to 47 on device: gpiochip7 (gpf0)
[ 0.381012] gpio gpiochip8: (gpf1): added GPIO chardev (254:8)
[ 0.381020] gpiochip_setup_dev: registered GPIOs 48 to 55 on device: gpiochip8 (gpf1)
[ 0.381104] gpio gpiochip9: (gpf2): added GPIO chardev (254:9)
[ 0.381111] gpiochip_setup_dev: registered GPIOs 56 to 63 on device: gpiochip9 (gpf2)
[ 0.381191] gpio gpiochip10: (gpf3): added GPIO chardev (254:10)
[ 0.381198] gpiochip_setup_dev: registered GPIOs 64 to 69 on device: gpiochip10 (gpf3)
[ 0.381277] gpio gpiochip11: (gpj0): added GPIO chardev (254:11)
[ 0.381284] gpiochip_setup_dev: registered GPIOs 70 to 77 on device: gpiochip11 (gpj0)
[ 0.381369] gpio gpiochip12: (gpj1): added GPIO chardev (254:12)
[ 0.381376] gpiochip_setup_dev: registered GPIOs 78 to 82 on device: gpiochip12 (gpj1)
[ 0.382100] gpio gpiochip13: (gpk0): added GPIO chardev (254:13)
[ 0.382108] gpiochip_setup_dev: registered GPIOs 83 to 89 on device: gpiochip13 (gpk0)
[ 0.382191] gpio gpiochip14: (gpk1): added GPIO chardev (254:14)
[ 0.382198] gpiochip_setup_dev: registered GPIOs 90 to 96 on device: gpiochip14 (gpk1)
[ 0.382289] gpio gpiochip15: (gpk2): added GPIO chardev (254:15)
[ 0.382297] gpiochip_setup_dev: registered GPIOs 97 to 103 on device: gpiochip15 (gpk2)
[ 0.382383] gpio gpiochip16: (gpk3): added GPIO chardev (254:16)
[ 0.382391] gpiochip_setup_dev: registered GPIOs 104 to 110 on device: gpiochip16 (gpk3)
[ 0.382471] gpio gpiochip17: (gpl0): added GPIO chardev (254:17)
[ 0.382478] gpiochip_setup_dev: registered GPIOs 111 to 117 on device: gpiochip17 (gpl0)
[ 0.382558] gpio gpiochip18: (gpl1): added GPIO chardev (254:18)
[ 0.382565] gpiochip_setup_dev: registered GPIOs 118 to 119 on device: gpiochip18 (gpl1)
[ 0.382651] gpio gpiochip19: (gpl2): added GPIO chardev (254:19)
[ 0.382658] gpiochip_setup_dev: registered GPIOs 120 to 127 on device: gpiochip19 (gpl2)
[ 0.382746] gpio gpiochip20: (gpm0): added GPIO chardev (254:20)
[ 0.382753] gpiochip_setup_dev: registered GPIOs 128 to 135 on device: gpiochip20 (gpm0)
[ 0.382835] gpio gpiochip21: (gpm1): added GPIO chardev (254:21)
[ 0.382842] gpiochip_setup_dev: registered GPIOs 136 to 142 on device: gpiochip21 (gpm1)
[ 0.382933] gpio gpiochip22: (gpm2): added GPIO chardev (254:22)
[ 0.382940] gpiochip_setup_dev: registered GPIOs 143 to 147 on device: gpiochip22 (gpm2)
[ 0.383022] gpio gpiochip23: (gpm3): added GPIO chardev (254:23)
[ 0.383029] gpiochip_setup_dev: registered GPIOs 148 to 155 on device: gpiochip23 (gpm3)
[ 0.383111] gpio gpiochip24: (gpm4): added GPIO chardev (254:24)
[ 0.383118] gpiochip_setup_dev: registered GPIOs 156 to 163 on device: gpiochip24 (gpm4)
[ 0.383210] gpio gpiochip25: (gpy0): added GPIO chardev (254:25)
[ 0.383217] gpiochip_setup_dev: registered GPIOs 164 to 169 on device: gpiochip25 (gpy0)
[ 0.383298] gpio gpiochip26: (gpy1): added GPIO chardev (254:26)
[ 0.383305] gpiochip_setup_dev: registered GPIOs 170 to 173 on device: gpiochip26 (gpy1)
[ 0.383389] gpio gpiochip27: (gpy2): added GPIO chardev (254:27)
[ 0.383396] gpiochip_setup_dev: registered GPIOs 174 to 179 on device: gpiochip27 (gpy2)
[ 0.383482] gpio gpiochip28: (gpy3): added GPIO chardev (254:28)
[ 0.383490] gpiochip_setup_dev: registered GPIOs 180 to 187 on device: gpiochip28 (gpy3)
[ 0.383578] gpio gpiochip29: (gpy4): added GPIO chardev (254:29)
[ 0.383585] gpiochip_setup_dev: registered GPIOs 188 to 195 on device: gpiochip29 (gpy4)
[ 0.383668] gpio gpiochip30: (gpy5): added GPIO chardev (254:30)
[ 0.383675] gpiochip_setup_dev: registered GPIOs 196 to 203 on device: gpiochip30 (gpy5)
[ 0.383764] gpio gpiochip31: (gpy6): added GPIO chardev (254:31)
[ 0.383771] gpiochip_setup_dev: registered GPIOs 204 to 211 on device: gpiochip31 (gpy6)
[ 0.383867] gpio gpiochip32: (gpx0): added GPIO chardev (254:32)
[ 0.383875] gpiochip_setup_dev: registered GPIOs 212 to 219 on device: gpiochip32 (gpx0)
[ 0.383960] gpio gpiochip33: (gpx1): added GPIO chardev (254:33)
[ 0.383968] gpiochip_setup_dev: registered GPIOs 220 to 227 on device: gpiochip33 (gpx1)
[ 0.384057] gpio gpiochip34: (gpx2): added GPIO chardev (254:34)
[ 0.384064] gpiochip_setup_dev: registered GPIOs 228 to 235 on device: gpiochip34 (gpx2)
[ 0.384152] gpio gpiochip35: (gpx3): added GPIO chardev (254:35)
[ 0.384160] gpiochip_setup_dev: registered GPIOs 236 to 243 on device: gpiochip35 (gpx3)
[ 0.385140] gpio gpiochip36: (gpz): added GPIO chardev (254:36)
[ 0.385147] gpiochip_setup_dev: registered GPIOs 244 to 250 on device: gpiochip36 (gpz)
[ 0.385523] gpio gpiochip37: (gpv0): added GPIO chardev (254:37)
[ 0.385530] gpiochip_setup_dev: registered GPIOs 251 to 258 on device: gpiochip37 (gpv0)
[ 0.385618] gpio gpiochip38: (gpv1): added GPIO chardev (254:38)
[ 0.385626] gpiochip_setup_dev: registered GPIOs 259 to 266 on device: gpiochip38 (gpv1)
[ 0.385729] gpio gpiochip39: (gpv2): added GPIO chardev (254:39)
[ 0.385736] gpiochip_setup_dev: registered GPIOs 267 to 274 on device: gpiochip39 (gpv2)
[ 0.385825] gpio gpiochip40: (gpv3): added GPIO chardev (254:40)
[ 0.385832] gpiochip_setup_dev: registered GPIOs 275 to 282 on device: gpiochip40 (gpv3)
[ 0.385920] gpio gpiochip41: (gpv4): added GPIO chardev (254:41)
[ 0.385928] gpiochip_setup_dev: registered GPIOs 283 to 284 on device: gpiochip41 (gpv4)
[ 0.393817] SCSI subsystem initialized
[ 0.393974] usbcore: registered new interface driver usbfs
[ 0.394010] usbcore: registered new interface driver hub
[ 0.394060] usbcore: registered new device driver usb
[ 0.394367] media: Linux media interface: v0.10
[ 0.394397] Linux video capture interface: v2.00
[ 0.394643] Advanced Linux Sound Architecture Driver Initialized.
[ 0.395334] clocksource: Switched to clocksource mct-frc
[ 0.400784] missing cooling_device property
[ 0.400793] failed to build thermal zone cpu-thermal: -2
[ 0.400854] NET: Registered protocol family 2
[ 0.401198] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.401258] TCP bind hash table entries: 8192 (order: 5, 163840 bytes)
[ 0.401376] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.401449] UDP hash table entries: 512 (order: 2, 24576 bytes)
[ 0.401478] UDP-Lite hash table entries: 512 (order: 2, 24576 bytes)
[ 0.401598] NET: Registered protocol family 1
[ 0.401858] RPC: Registered named UNIX socket transport module.
[ 0.401865] RPC: Registered udp transport module.
[ 0.401869] RPC: Registered tcp transport module.
[ 0.401874] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.402645] audit: initializing netlink subsys (disabled)
[ 0.402746] audit: type=2000 audit(0.397:1): state=initialized audit_enabled=0 res=1
[ 0.402825] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[ 0.407565] NFS: Registering the id_resolver key type
[ 0.407587] Key type id_resolver registered
[ 0.407592] Key type id_legacy registered
[ 0.407603] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.407625] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[ 0.408185] bounce: pool size: 64 pages
[ 0.408212] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[ 0.408219] io scheduler noop registered
[ 0.408224] io scheduler deadline registered
[ 0.408241] io scheduler cfq registered (default)
[ 0.408247] io scheduler mq-deadline registered
[ 0.408252] io scheduler kyber registered
[ 0.409093] samsung-usb2-phy 125b0000.exynos-usbphy: 125b0000.exynos-usbphy supply vbus not found, using dummy regulator
[ 0.412714] dma-pl330 12680000.pdma: Loaded driver for PL330 DMAC-141330
[ 0.412725] dma-pl330 12680000.pdma: DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[ 0.414431] dma-pl330 12690000.pdma: Loaded driver for PL330 DMAC-141330
[ 0.414441] dma-pl330 12690000.pdma: DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[ 0.415023] dma-pl330 12850000.mdma: Loaded driver for PL330 DMAC-141330
[ 0.415032] dma-pl330 12850000.mdma: DBUFF-64x8bytes Num_Chans-8 Num_Peri-1 Num_Events-32
[ 0.449490] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 0.450656] 13800000.serial: ttySAC0 at MMIO 0x13800000 (irq = 48, base_baud = 0) is a S3C6400/10
[ 1.755593] console [ttySAC0] enabled
[ 1.759446] 13810000.serial: ttySAC1 at MMIO 0x13810000 (irq = 49, base_baud = 0) is a S3C6400/10
[ 1.768298] 13820000.serial: ttySAC2 at MMIO 0x13820000 (irq = 50, base_baud = 0) is a S3C6400/10
[ 1.777130] 13830000.serial: ttySAC3 at MMIO 0x13830000 (irq = 51, base_baud = 0) is a S3C6400/10
[ 1.824947] brd: module loaded
[ 1.880397] loop: module loaded
[ 1.881297] libphy: Fixed MDIO Bus: probed
[ 1.881548] usbcore: registered new interface driver cdc_ether
[ 1.881625] usbcore: registered new interface driver dm9601
[ 1.881703] usbcore: registered new interface driver net1080
[ 1.882342] usbcore: registered new interface driver cdc_subset
[ 1.888278] usbcore: registered new interface driver zaurus
[ 1.893813] usbcore: registered new interface driver cdc_ncm
[ 1.899670] dwc2 12480000.hsotg: 12480000.hsotg supply vusb_d not found, using dummy regulator
[ 1.908075] dwc2 12480000.hsotg: 12480000.hsotg supply vusb_a not found, using dummy regulator
[ 2.325368] dwc2 12480000.hsotg: dwc2_check_params: Invalid parameter g_np_tx_fifo_size=1024
[ 2.325472] dwc2 12480000.hsotg: EPs: 16, dedicated fifos, 7808 entries in SPRAM
[ 2.445413] dwc2 12480000.hsotg: DWC OTG Controller
[ 2.445486] dwc2 12480000.hsotg: new USB bus registered, assigned bus number 1
[ 2.445571] dwc2 12480000.hsotg: irq 45, io mem 0x12480000
[ 2.445727] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 2.447419] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.454622] usb usb1: Product: DWC OTG Controller
[ 2.459328] usb usb1: Manufacturer: Linux 4.12.0-g16504fa-dirty dwc2_hsotg
[ 2.466179] usb usb1: SerialNumber: 12480000.hsotg
[ 2.471323] hub 1-0:1.0: USB hub found
[ 2.474689] hub 1-0:1.0: 1 port detected
[ 2.479171] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.485093] ehci-exynos: EHCI EXYNOS driver
[ 2.489355] of_get_named_gpiod_flags: can't parse 'samsung,vbus-gpio' property of node '/ehci@12580000[0]'
[ 2.499286] exynos-ehci 12580000.ehci: EHCI Host Controller
[ 2.504457] exynos-ehci 12580000.ehci: new USB bus registered, assigned bus number 2
[ 2.512325] exynos-ehci 12580000.ehci: irq 46, io mem 0x12580000
[ 2.545357] exynos-ehci 12580000.ehci: USB 2.0 started, EHCI 1.00
[ 2.545538] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 2.545606] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.545676] usb usb2: Product: EHCI Host Controller
[ 2.547967] usb usb2: Manufacturer: Linux 4.12.0-g16504fa-dirty ehci_hcd
[ 2.554650] usb usb2: SerialNumber: 12580000.ehci
[ 2.559686] hub 2-0:1.0: USB hub found
[ 2.563085] hub 2-0:1.0: 3 ports detected
[ 2.567610] usbcore: registered new interface driver usb-storage
[ 2.573199] of_get_named_gpiod_flags: can't parse 'intn-gpios' property of node '/usb-hub[0]'
[ 2.581578] of_get_named_gpiod_flags: can't parse 'connect-gpios' property of node '/usb-hub[0]'
[ 2.590435] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/usb-hub[0]' - status (0)
[ 2.605359] USB4604 usb-hub: switched to HUB mode
[ 2.605408] USB4604 usb-hub: USB4604_probe: probed in hub mode
[ 2.610682] s3c-rtc 10070000.rtc: failed to find rtc source clock
[ 2.616223] s3c-rtc: probe of 10070000.rtc failed with error -2
[ 2.622256] i2c /dev entries driver
[ 2.627285] s3c2410-wdt 10060000.watchdog: watchdog inactive, reset disabled, irq disabled
[ 2.634145] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[ 2.643728] sdhci: Secure Digital Host Controller Interface driver
[ 2.648443] sdhci: Copyright(c) Pierre Ossman
[ 2.652933] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/sdhci@12530000[0]'
[ 2.661763] s3c-sdhci 12530000.sdhci: clock source 2: mmc_busclk.2 (100000000 Hz)
[ 2.669176] s3c-sdhci 12530000.sdhci: GPIO lookup for consumer cd
[ 2.675216] s3c-sdhci 12530000.sdhci: using device tree for GPIO lookup
[ 2.681918] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/sdhci@12530000[0]'
[ 2.690767] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/sdhci@12530000[0]'
[ 2.699619] s3c-sdhci 12530000.sdhci: using lookup tables for GPIO lookup
[ 2.706389] s3c-sdhci 12530000.sdhci: lookup for GPIO cd failed
[ 2.712281] s3c-sdhci 12530000.sdhci: GPIO lookup for consumer wp
[ 2.718367] s3c-sdhci 12530000.sdhci: using device tree for GPIO lookup
[ 2.724953] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/sdhci@12530000[0]'
[ 2.733904] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/sdhci@12530000[0]'
[ 2.742757] s3c-sdhci 12530000.sdhci: using lookup tables for GPIO lookup
[ 2.749528] s3c-sdhci 12530000.sdhci: lookup for GPIO wp failed
[ 2.815394] mmc0: SDHCI controller on samsung-hsmmc [12530000.sdhci] using ADMA
[ 2.815595] Synopsys Designware Multimedia Card Interface Driver
[ 2.819298] dwmmc_exynos 12550000.mmc: IDMAC supports 32-bit address mode.
[ 2.819408] dwmmc_exynos 12550000.mmc: Using internal DMA controller.
[ 2.819685] dwmmc_exynos 12550000.mmc: Version ID is 240a
[ 2.825079] dwmmc_exynos 12550000.mmc: DW MMC controller at irq 99,32 bit host data width,128 deep fifo
[ 2.834470] dwmmc_exynos 12550000.mmc: GPIO lookup for consumer cd
[ 2.840609] dwmmc_exynos 12550000.mmc: using device tree for GPIO lookup
[ 2.847295] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/mmc@12550000[0]'
[ 2.856338] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/mmc@12550000[0]'
[ 2.865740] dwmmc_exynos 12550000.mmc: using lookup tables for GPIO lookup
[ 2.873592] dwmmc_exynos 12550000.mmc: lookup for GPIO cd failed
[ 2.877598] dwmmc_exynos 12550000.mmc: GPIO lookup for consumer wp
[ 2.883740] dwmmc_exynos 12550000.mmc: using device tree for GPIO lookup
[ 2.890437] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/mmc@12550000[0]'
[ 2.899186] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/mmc@12550000[0]'
[ 2.907864] dwmmc_exynos 12550000.mmc: using lookup tables for GPIO lookup
[ 2.914707] dwmmc_exynos 12550000.mmc: lookup for GPIO wp failed
[ 2.920745] mmc_host mmc1: card is polling.
[ 2.925359] usb 2-2: new high-speed USB device number 2 using exynos-ehci
[ 2.939422] mmc0: new high speed SDHC card at address 0007
[ 2.939794] mmcblk0: mmc0:0007 SD16G 14.5 GiB
[ 2.942576] mmcblk0: p1 p2
[ 2.945396] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 2.975398] dwmmc_exynos 12550000.mmc: 1 slots initialized
[ 2.975737] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led1[0]' - status (0)
[ 2.975838] no flags found for gpios
[ 2.975975] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status (0)
[ 2.980706] no flags found for gpios
[ 2.985374] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led3[0]' - status (0)
[ 2.995198] no flags found for gpios
[ 2.996989] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led4[0]' - status (0)
[ 3.005712] no flags found for gpios
[ 3.010246] s5p-secss 10830000.sss: s5p-sss driver registered
[ 3.015479] usbcore: registered new interface driver usbhid
[ 3.020535] usbhid: USB HID core driver
[ 3.030569] NET: Registered protocol family 10
[ 3.031222] Segment Routing with IPv6
[ 3.032444] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 3.038799] NET: Registered protocol family 17
[ 3.042746] NET: Registered protocol family 15
[ 3.047229] Key type dns_resolver registered
[ 3.051592] Registering SWP/SWPB emulation handler
[ 3.068605] hctosys: unable to open rtc device (rtc0)
[ 3.069476] ALSA device list:
[ 3.069511] No soundcards found.
[ 3.070830] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0)
[ 3.077669] mmc1: new DDR MMC card at address 0001
[ 3.082469] mmcblk1: mmc1:0001 4YMD3R 3.63 GiB
[ 3.086793] mmcblk1boot0: mmc1:0001 4YMD3R partition 1 4.00 MiB
[ 3.092626] mmcblk1boot1: mmc1:0001 4YMD3R partition 2 4.00 MiB
[ 3.098584] mmcblk1rpmb: mmc1:0001 4YMD3R partition 3 512 KiB
[ 3.104784] mmcblk1: p1 p2 p3 p4
[ 3.115969] usb 2-2: New USB device found, idVendor=0424, idProduct=4604
[ 3.116040] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.121704] hub 2-2:1.0: USB hub found
[ 3.125085] hub 2-2:1.0: 5 ports detected
[ 3.445393] usb 2-2.4: new high-speed USB device number 3 using exynos-ehci
[ 3.596199] usb 2-2.4: config 1 interface 0 altsetting 0 endpoint 0x83 has an invalid bInterval 0, changing to 7
[ 3.672700] usb 2-2.4: New USB device found, idVendor=0a46, idProduct=9621
[ 3.672847] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3.685166] dm9601 2-2.4:1.0 eth0: register 'dm9601' at usb-12580000.ehci-2.4, Davicom DM96xx USB 10/100 Ethernet, 00:00:ff:ff:00:00
[ 3.717113] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.717358] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 3.720065] devtmpfs: mounted
[ 3.724254] Freeing unused kernel memory: 1024K
[ 3.736962] random: fast init done
[ 3.785430] usb 2-2.5: new high-speed USB device number 4 using exynos-ehci
[ 3.936518] usb 2-2.5: New USB device found, idVendor=0424, idProduct=2530
[ 3.936624] usb 2-2.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 3.936724] usb 2-2.5: Product: Bridge device
mkdir: can't create directory '/mnt/disk': File exists
Try to bring eth0 interface up......[ 5.311802] dm9601 2-2.4:1.0 eth0: link down
[ 5.314859] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Done
Processing /etc/profile... Done!
[root@TINY4412:~]# ls
bin etc mnt proc sbin tmp
dev linuxrc opt root sys var
这样,就搞定了,把这张SD
卡插到其他开发板也可以自动加载Linxu
内核。