【TINY4412】LINUX移植筆記:(15)SD卡啟動Linux核心
主控端 : 虛拟機 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
。
源檔案
[email protected]:/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
分區,最簡單的辦法就是用讀卡器插到電腦端,拷貝。
燒錄u-boot
将
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 $ ]
then
echo "usage: ./mk_uboot.sh <SD Reader's device file>"
exit
fi
if [ -b $ ]
then
echo "$1 reader is identified."
else
echo "$1 is NOT identified."
exit
fi
####################################
#<verify device>
BDEV_NAME=`basename $`
BDEV_SIZE=`cat /sys/block/${BDEV_NAME}/size`
if [ ${BDEV_SIZE} -le ]; then
echo "Error: NO media found in card reader."
exit
fi
if [ ${BDEV_SIZE} -gt ]; then
echo "Error: Block device size (${BDEV_SIZE}) is too large"
exit
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=
bl2_position=
uboot_position=
tzsw_position=
#<BL1 fusing>
echo "---------------------------------------"
echo "BL1 fusing"
dd iflag=dsync oflag=dsync if=$bl1_name of=$ seek=$signed_bl1_position
#<BL2 fusing>
echo "---------------------------------------"
echo "BL2 fusing"
dd iflag=dsync oflag=dsync if=$bl2_name of=$ seek=$bl2_position
#<u-boot fusing>
echo "---------------------------------------"
echo "u-boot fusing"
dd iflag=dsync oflag=dsync if=$uboot_name of=$ seek=$uboot_position
#<TrustZone S/W fusing>
echo "---------------------------------------"
echo "TrustZone S/W fusing"
dd iflag=dsync oflag=dsync if=$tzsz_name of=$ 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
卡
[email protected]:/opt/u-boot-/sd_fuse/tiny4412/mk_uboot# fdisk -l
Disk /dev/sda: GiB, bytes, sectors
Units: sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disklabel type: dos
Disk identifier:
Device Boot Start End Sectors Size Id Type
/dev/sda1 * G Linux
/dev/sda2 M Extended
/dev/sda5 M Linux swap / Solaris
Disk /dev/sdd: GiB, bytes, sectors
Units: sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disklabel type: dos
Disk identifier:
Device Boot Start End Sectors Size Id Type
/dev/sdd1 G b W95 FAT32
/dev/sdd2 G Linux
識别為
sdd
[email protected]:/opt/u-boot-/sd_fuse/tiny4412/mk_uboot# ./mk_uboot.sh /dev/sdd
/dev/sdd reader is identified.
---------------------------------------
BL1 fusing
+ records in
+ records out
bytes ( kB, KiB) copied, s, kB/s
---------------------------------------
BL2 fusing
+ records in
+ records out
bytes ( kB, KiB) copied, s, kB/s
---------------------------------------
u-boot fusing
+ records in
+ records out
bytes ( kB, KiB) copied, s, kB/s
---------------------------------------
TrustZone S/W fusing
+ records in
+ records out
bytes ( kB, KiB) copied, s, kB/s
---------------------------------------
U-boot image is fused successfully.
Eject SD card and insert it again.
根檔案系統
流程:将
SD
卡到電腦端,通過虛拟機的
Linux
識别為裝置,然後挂載
SD
卡的
EXT4
檔案系統,将根檔案系統拷貝到該分區。
[email protected]:/opt/temp/temp# ls
rootfs.tar.gz
[email protected]:/opt/temp/temp# tar zxf rootfs.tar.gz
[email protected]:/opt/temp/temp# ls
rootfs rootfs.tar.gz
[email protected]:/opt/temp/temp# cd rootfs
[email protected]:/opt/temp/temp/rootfs# ls
bin dev etc linuxrc mnt opt proc root sbin sys tmp var
将
SD卡
插入電腦,拷貝根檔案系統到
sdd2
分區
[email protected]:/opt/temp/temp/rootfs# mount /dev/sdd2 /mnt
[email protected]:/opt/temp/temp/rootfs# cp -af * /mnt/
[email protected]:/opt/temp/temp/rootfs# cd /mnt/
[email protected]:/mnt# ls
bin dev etc linuxrc mnt opt proc root sbin sys tmp var
[email protected]:/mnt#
[email protected]:/mnt# cd ..
[email protected]:/# 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()... done
root=/dev/mmcblk0p2
:表示根檔案系統的挂載位置是
SD卡
的第
2
個分區
rootfstype=ext4
:表示分區類型是
EXT4
測試
将
SD卡
插入開發闆開機
U-Boot -gff1b95e-dirty (Aug - :: +) for TINY4412
CPU: Exynos4412 @ GHz
Model: Tiny4412 based on Exynos4412
Board: Tiny4412 based on Exynos4412
DRAM: GiB
WARNING: Caches not enabled
MMC: SAMSUNG SDHCI: , EXYNOS DWMMC:
Net: No ethernet found.
Hit any key to stop autoboot:
reading uImage
bytes read in ms ( MiB/s)
reading exynos4412-tiny4412.dtb
bytes read in ms ( MiB/s)
## Booting kernel from Legacy Image at 41000000 ...
Image Name: Linux--g16504fa-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: Bytes = MiB
Load Address:
Entry Point:
Verifying Checksum ... OK
## Flattened Device Tree blob at 42000000
Booting using the fdt blob at
Loading Kernel Image ... OK
Loading Device Tree to ff1000, end fff8f3 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ ] Booting Linux on physical CPU
[ ] Linux version -g16504fa-dirty ([email protected]) (gcc version (release) [ARM/embedded--branch revision ] (GNU Tools for ARM Embedded Processors) ) #135 SMP PREEMPT Wed Aug 2 22:23:47 CST 2017
[ ] CPU: ARMv7 Processor [c090] revision (ARMv7), cr=c5387d
[ ] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ ] OF: fdt: Machine model: FriendlyARM TINY4412 board based on Exynos4412
[ ] Memory policy: Data cache writealloc
[ ] cma: Reserved MiB at
[ ] Samsung CPU ID:
[ ] On node totalpages:
[ ] free_area_init_node: node , pgdat c0c46640, node_mem_map ef7f6000
[ ] Normal zone: pages used for memmap
[ ] Normal zone: pages reserved
[ ] Normal zone: pages, LIFO batch:
[ ] HighMem zone: pages, LIFO batch:
[ ] percpu: Embedded pages/cpu @ef78f000 s34968 r8192 d22376 u65536
[ ] pcpu-alloc: s34968 r8192 d22376 u65536 alloc=*
[ ] pcpu-alloc: [] [] [] []
[ ] Built zonelists in Zone order, mobility grouping on. Total pages:
[ ] Kernel command line: noinitrd root=/dev/mmcblk0p2 rw rootfstype=ext4 console=ttySAC0, init=/linuxrc
[ ] PID hash table entries: (order: , bytes)
[ ] Dentry cache hash table entries: (order: , bytes)
[ ] Inode-cache hash table entries: (order: , bytes)
[ ] Memory: K/K available (K kernel code, K rwdata, K rodata, K init, K bss, K reserved, K cma-reserved, K highmem)
[ ] Virtual kernel memory layout:
[ ] vector : - ( kB)
[ ] fixmap : - ( kB)
[ ] vmalloc : - ( MB)
[ ] lowmem : - ( MB)
[ ] pkmap : - ( MB)
[ ] modules : - ( MB)
[ ] .text : - ( kB)
[ ] .init : - ( kB)
[ ] .data : - ( kB)
[ ] .bss : - ( kB)
[ ] SLUB: HWalign=, Order=-, MinObjects=, CPUs=, Nodes=
[ ] Preemptible hierarchical RCU implementation.
[ ] RCU restricting CPUs from NR_CPUS= to nr_cpu_ids=
[ ] RCU: Adjusting geometry for rcu_fanout_leaf=, nr_cpu_ids=
[ ] NR_IRQS: nr_irqs:
[ ] L2C: platform modifies aux control register: ->
[ ] L2C: platform provided aux values permit register corruption.
[ ] L2C: DT/platform modifies aux control register: ->
[ ] L2C- enabling early BRESP for Cortex-A9
[ ] L2C-: enabling full line of zeros but not enabled in Cortex-A9
[ ] L2C- dynamic clock gating enabled, standby mode enabled
[ ] L2C- cache controller enabled, ways, kB
[ ] L2C-: CACHE_ID , AUX_CTRL
[ ] Exynos4x12 clocks: sclk_apll = , sclk_mpll =
[ ] sclk_epll = , sclk_vpll = , arm_clk =
[ ] Switching to timer-based delay loop, resolution ns
[ ] clocksource: mct-frc: mask: max_cycles: , max_idle_ns: ns
[ ] sched_clock: bits at MHz, resolution ns, wraps every ns
[ ] Console: colour dummy device x30
[ ] Calibrating delay loop (skipped), value calculated using timer frequency.. BogoMIPS (lpj=)
[ ] pid_max: default: minimum:
[ ] Mount-cache hash table entries: (order: , bytes)
[ ] Mountpoint-cache hash table entries: (order: , bytes)
[ ] CPU: Testing write buffer coherency: ok
[ ] CPU0: thread -, cpu , socket , mpidr a00
[ ] Setting up static identity map for -
[ ] smp: Bringing up secondary CPUs ...
[ ] CPU1: thread -, cpu , socket , mpidr a01
[ ] CPU2: thread -, cpu , socket , mpidr a02
[ ] CPU3: thread -, cpu , socket , mpidr a03
[ ] smp: Brought up node, CPUs
[ ] SMP: Total of processors activated ( BogoMIPS).
[ ] CPU: All CPU(s) started in SVC mode.
[ ] devtmpfs: initialized
[ ] VFP support v0: implementor architecture part variant rev
[ ] clocksource: jiffies: mask: max_cycles: , max_idle_ns: ns
[ ] futex hash table entries: (order: , bytes)
[ ] pinctrl core: initialized pinctrl subsystem
[ ] /[email protected] has as child subdomain: /[email protected].
[ ] NET: Registered protocol family
[ ] DMA: preallocated KiB pool for atomic coherent allocations
[ ] cpuidle: using governor menu
[ ] gpio gpiochip0: (gpa0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip0 (gpa0)
[ ] gpio gpiochip1: (gpa1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip1 (gpa1)
[ ] gpio gpiochip2: (gpb): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip2 (gpb)
[ ] gpio gpiochip3: (gpc0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip3 (gpc0)
[ ] gpio gpiochip4: (gpc1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip4 (gpc1)
[ ] gpio gpiochip5: (gpd0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip5 (gpd0)
[ ] gpio gpiochip6: (gpd1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip6 (gpd1)
[ ] gpio gpiochip7: (gpf0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip7 (gpf0)
[ ] gpio gpiochip8: (gpf1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip8 (gpf1)
[ ] gpio gpiochip9: (gpf2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip9 (gpf2)
[ ] gpio gpiochip10: (gpf3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip10 (gpf3)
[ ] gpio gpiochip11: (gpj0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip11 (gpj0)
[ ] gpio gpiochip12: (gpj1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip12 (gpj1)
[ ] gpio gpiochip13: (gpk0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip13 (gpk0)
[ ] gpio gpiochip14: (gpk1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip14 (gpk1)
[ ] gpio gpiochip15: (gpk2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip15 (gpk2)
[ ] gpio gpiochip16: (gpk3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip16 (gpk3)
[ ] gpio gpiochip17: (gpl0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip17 (gpl0)
[ ] gpio gpiochip18: (gpl1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip18 (gpl1)
[ ] gpio gpiochip19: (gpl2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip19 (gpl2)
[ ] gpio gpiochip20: (gpm0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip20 (gpm0)
[ ] gpio gpiochip21: (gpm1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip21 (gpm1)
[ ] gpio gpiochip22: (gpm2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip22 (gpm2)
[ ] gpio gpiochip23: (gpm3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip23 (gpm3)
[ ] gpio gpiochip24: (gpm4): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip24 (gpm4)
[ ] gpio gpiochip25: (gpy0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip25 (gpy0)
[ ] gpio gpiochip26: (gpy1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip26 (gpy1)
[ ] gpio gpiochip27: (gpy2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip27 (gpy2)
[ ] gpio gpiochip28: (gpy3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip28 (gpy3)
[ ] gpio gpiochip29: (gpy4): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip29 (gpy4)
[ ] gpio gpiochip30: (gpy5): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip30 (gpy5)
[ ] gpio gpiochip31: (gpy6): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip31 (gpy6)
[ ] gpio gpiochip32: (gpx0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip32 (gpx0)
[ ] gpio gpiochip33: (gpx1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip33 (gpx1)
[ ] gpio gpiochip34: (gpx2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip34 (gpx2)
[ ] gpio gpiochip35: (gpx3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip35 (gpx3)
[ ] gpio gpiochip36: (gpz): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip36 (gpz)
[ ] gpio gpiochip37: (gpv0): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip37 (gpv0)
[ ] gpio gpiochip38: (gpv1): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip38 (gpv1)
[ ] gpio gpiochip39: (gpv2): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip39 (gpv2)
[ ] gpio gpiochip40: (gpv3): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip40 (gpv3)
[ ] gpio gpiochip41: (gpv4): added GPIO chardev (:)
[ ] gpiochip_setup_dev: registered GPIOs to on device: gpiochip41 (gpv4)
[ ] SCSI subsystem initialized
[ ] usbcore: registered new interface driver usbfs
[ ] usbcore: registered new interface driver hub
[ ] usbcore: registered new device driver usb
[ ] media: Linux media interface: v0
[ ] Linux video capture interface: v2
[ ] Advanced Linux Sound Architecture Driver Initialized.
[ ] clocksource: Switched to clocksource mct-frc
[ ] missing cooling_device property
[ ] failed to build thermal zone cpu-thermal: -
[ ] NET: Registered protocol family
[ ] TCP established hash table entries: (order: , bytes)
[ ] TCP bind hash table entries: (order: , bytes)
[ ] TCP: Hash tables configured (established bind )
[ ] UDP hash table entries: (order: , bytes)
[ ] UDP-Lite hash table entries: (order: , bytes)
[ ] NET: Registered protocol family
[ ] RPC: Registered named UNIX socket transport module.
[ ] RPC: Registered udp transport module.
[ ] RPC: Registered tcp transport module.
[ ] RPC: Registered tcp NFSv4 backchannel transport module.
[ ] audit: initializing netlink subsys (disabled)
[ ] audit: type= audit(:): state=initialized audit_enabled= res=
[ ] workingset: timestamp_bits= max_order= bucket_order=
[ ] NFS: Registering the id_resolver key type
[ ] Key type id_resolver registered
[ ] Key type id_legacy registered
[ ] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ ] romfs: ROMFS MTD (C) Red Hat, Inc.
[ ] bounce: pool size: pages
[ ] Block layer SCSI generic (bsg) driver version loaded (major )
[ ] io scheduler noop registered
[ ] io scheduler deadline registered
[ ] io scheduler cfq registered (default)
[ ] io scheduler mq-deadline registered
[ ] io scheduler kyber registered
[ ] samsung-usb2-phy b0000.exynos-usbphy: b0000.exynos-usbphy supply vbus not found, using dummy regulator
[ ] dma-pl330 pdma: Loaded driver for PL330 DMAC-
[ ] dma-pl330 pdma: DBUFF-x4bytes Num_Chans- Num_Peri- Num_Events-
[ ] dma-pl330 pdma: Loaded driver for PL330 DMAC-
[ ] dma-pl330 pdma: DBUFF-x4bytes Num_Chans- Num_Peri- Num_Events-
[ ] dma-pl330 mdma: Loaded driver for PL330 DMAC-
[ ] dma-pl330 mdma: DBUFF-x8bytes Num_Chans- Num_Peri- Num_Events-
[ ] Serial: / driver, ports, IRQ sharing disabled
[ ] serial: ttySAC0 at MMIO (irq = , base_baud = ) is a S3C6400/
[ ] console [ttySAC0] enabled
[ ] serial: ttySAC1 at MMIO (irq = , base_baud = ) is a S3C6400/
[ ] serial: ttySAC2 at MMIO (irq = , base_baud = ) is a S3C6400/
[ ] serial: ttySAC3 at MMIO (irq = , base_baud = ) is a S3C6400/
[ ] brd: module loaded
[ ] loop: module loaded
[ ] libphy: Fixed MDIO Bus: probed
[ ] usbcore: registered new interface driver cdc_ether
[ ] usbcore: registered new interface driver dm9601
[ ] usbcore: registered new interface driver net1080
[ ] usbcore: registered new interface driver cdc_subset
[ ] usbcore: registered new interface driver zaurus
[ ] usbcore: registered new interface driver cdc_ncm
[ ] dwc2 hsotg: hsotg supply vusb_d not found, using dummy regulator
[ ] dwc2 hsotg: hsotg supply vusb_a not found, using dummy regulator
[ ] dwc2 hsotg: dwc2_check_params: Invalid parameter g_np_tx_fifo_size=
[ ] dwc2 hsotg: EPs: , dedicated fifos, entries in SPRAM
[ ] dwc2 hsotg: DWC OTG Controller
[ ] dwc2 hsotg: new USB bus registered, assigned bus number
[ ] dwc2 hsotg: irq , io mem
[ ] usb usb1: New USB device found, idVendor=d6b, idProduct=
[ ] usb usb1: New USB device strings: Mfr=, Product=, SerialNumber=
[ ] usb usb1: Product: DWC OTG Controller
[ ] usb usb1: Manufacturer: Linux -g16504fa-dirty dwc2_hsotg
[ ] usb usb1: SerialNumber: hsotg
[ ] hub -:: USB hub found
[ ] hub -:: port detected
[ ] ehci_hcd: USB 'Enhanced' Host Controller (EHCI) Driver
[ ] ehci-exynos: EHCI EXYNOS driver
[ ] of_get_named_gpiod_flags: can't parse 'samsung,vbus-gpio' property of node '/ehci@[]'
[ ] exynos-ehci ehci: EHCI Host Controller
[ ] exynos-ehci ehci: new USB bus registered, assigned bus number
[ ] exynos-ehci ehci: irq , io mem
[ ] exynos-ehci ehci: USB started, EHCI
[ ] usb usb2: New USB device found, idVendor=d6b, idProduct=
[ ] usb usb2: New USB device strings: Mfr=, Product=, SerialNumber=
[ ] usb usb2: Product: EHCI Host Controller
[ ] usb usb2: Manufacturer: Linux -g16504fa-dirty ehci_hcd
[ ] usb usb2: SerialNumber: ehci
[ ] hub -:: USB hub found
[ ] hub -:: ports detected
[ ] usbcore: registered new interface driver usb-storage
[ ] of_get_named_gpiod_flags: can't parse 'intn-gpios' property of node '/usb-hub[]'
[ ] of_get_named_gpiod_flags: can't parse 'connect-gpios' property of node '/usb-hub[]'
[ ] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/usb-hub[0]' - status ()
[ ] USB4604 usb-hub: switched to HUB mode
[ ] USB4604 usb-hub: USB4604_probe: probed in hub mode
[ ] s3c-rtc rtc: failed to find rtc source clock
[ ] s3c-rtc: probe of rtc failed with error -
[ ] i2c /dev entries driver
[ ] s3c2410-wdt watchdog: watchdog inactive, reset disabled, irq disabled
[ ] device-mapper: ioctl: -ioctl (--) initialised: [email protected]
[ ] sdhci: Secure Digital Host Controller Interface driver
[ ] sdhci: Copyright(c) Pierre Ossman
[ ] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/sdhci@[]'
[ ] s3c-sdhci sdhci: clock source : mmc_busclk ( Hz)
[ ] s3c-sdhci sdhci: GPIO lookup for consumer cd
[ ] s3c-sdhci sdhci: using device tree for GPIO lookup
[ ] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/sdhci@[]'
[ ] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/sdhci@[]'
[ ] s3c-sdhci sdhci: using lookup tables for GPIO lookup
[ ] s3c-sdhci sdhci: lookup for GPIO cd failed
[ ] s3c-sdhci sdhci: GPIO lookup for consumer wp
[ ] s3c-sdhci sdhci: using device tree for GPIO lookup
[ ] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/sdhci@[]'
[ ] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/sdhci@[]'
[ ] s3c-sdhci sdhci: using lookup tables for GPIO lookup
[ ] s3c-sdhci sdhci: lookup for GPIO wp failed
[ ] mmc0: SDHCI controller on samsung-hsmmc [sdhci] using ADMA
[ ] Synopsys Designware Multimedia Card Interface Driver
[ ] dwmmc_exynos mmc: IDMAC supports -bit address mode.
[ ] dwmmc_exynos mmc: Using internal DMA controller.
[ ] dwmmc_exynos mmc: Version ID is a
[ ] dwmmc_exynos mmc: DW MMC controller at irq , bit host data width, deep fifo
[ ] dwmmc_exynos mmc: GPIO lookup for consumer cd
[ ] dwmmc_exynos mmc: using device tree for GPIO lookup
[ ] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/mmc@[]'
[ ] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/mmc@[]'
[ ] dwmmc_exynos mmc: using lookup tables for GPIO lookup
[ ] dwmmc_exynos mmc: lookup for GPIO cd failed
[ ] dwmmc_exynos mmc: GPIO lookup for consumer wp
[ ] dwmmc_exynos mmc: using device tree for GPIO lookup
[ ] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/mmc@[]'
[ ] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/mmc@[]'
[ ] dwmmc_exynos mmc: using lookup tables for GPIO lookup
[ ] dwmmc_exynos mmc: lookup for GPIO wp failed
[ ] mmc_host mmc1: card is polling.
[ ] usb -: new high-speed USB device number using exynos-ehci
[ ] mmc0: new high speed SDHC card at address
[ ] mmcblk0: mmc0: SD16G GiB
[ ] mmcblk0: p1 p2
[ ] mmc_host mmc1: Bus speed (slot ) = Hz (slot req Hz, actual HZ div = )
[ ] dwmmc_exynos mmc: slots initialized
[ ] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led1[0]' - status ()
[ ] no flags found for gpios
[ ] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status ()
[ ] no flags found for gpios
[ ] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led3[0]' - status ()
[ ] no flags found for gpios
[ ] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led4[0]' - status ()
[ ] no flags found for gpios
[ ] s5p-secss sss: s5p-sss driver registered
[ ] usbcore: registered new interface driver usbhid
[ ] usbhid: USB HID core driver
[ ] NET: Registered protocol family
[ ] Segment Routing with IPv6
[ ] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ ] NET: Registered protocol family
[ ] NET: Registered protocol family
[ ] Key type dns_resolver registered
[ ] Registering SWP/SWPB emulation handler
[ ] hctosys: unable to open rtc device (rtc0)
[ ] ALSA device list:
[ ] No soundcards found.
[ ] mmc_host mmc1: Bus speed (slot ) = Hz (slot req Hz, actual HZ div = )
[ ] mmc1: new DDR MMC card at address
[ ] mmcblk1: mmc1: YMD3R GiB
[ ] mmcblk1boot0: mmc1: YMD3R partition MiB
[ ] mmcblk1boot1: mmc1: YMD3R partition MiB
[ ] mmcblk1rpmb: mmc1: YMD3R partition KiB
[ ] mmcblk1: p1 p2 p3 p4
[ ] usb -: New USB device found, idVendor=, idProduct=
[ ] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ ] hub -:: USB hub found
[ ] hub -:: ports detected
[ ] usb -: new high-speed USB device number using exynos-ehci
[ ] usb -: config interface altsetting endpoint has an invalid bInterval , changing to
[ ] usb -: New USB device found, idVendor=a46, idProduct=
[ ] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ ] dm9601 -: eth0: register 'dm9601' at usb-ehci-, Davicom DM96xx USB / Ethernet, ::ff:ff::
[ ] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ ] VFS: Mounted root (ext4 filesystem) on device :
[ ] devtmpfs: mounted
[ ] Freeing unused kernel memory: K
[ ] random: fast init done
[ ] usb -: new high-speed USB device number using exynos-ehci
[ ] usb -: New USB device found, idVendor=, idProduct=
[ ] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ ] usb -: 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!
[[email protected]:~]# ls
bin etc mnt proc sbin tmp
dev linuxrc opt root sys var
這樣,就搞定了,把這張
SD
卡插到其他開發闆也可以自動加載
Linxu
核心。