TQ335X开发板内核3.17.2移植和busybox移植

硬件平台:TQ335X_BOARD_V2.1

软件环境:VMWARE10+UBUNTU14.04

KERNEL:3.17.2

Busybox:1.20

参考

http://blog.csdn.net/girlkoo/article/details/41223733

http://blog.csdn.net/girlkoo/article/details/8719828

一、内核移植

老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。

我使用的内核是linux-3.17.2版本,下面开始编译内核。

(1) 解压内核

[php] view
plain
 copy

  1. tar jxf linux-3.17.2.tar.bz2

(2)配置linux内核,由于am335x在内核中都归为omap2系列,故可以使用如下命令:

[cpp] view
plain
 copy

  1. make ARCH=arm omap2plus_defconfig

(3)编译内核:

[cpp] view
plain
 copy

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

我的linux工具链前缀是arm-linux-gnueabihf-,这个需要根据自己的实际的工具链情况进行替换。

(4)编译dtb:

[cpp] view
plain
 copy

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-evm.dtb

(5)制作启动盘:

将SD格式化为FAT系统,将MLO、u-boot.img拷贝到根目录下。

在根目录下创建boot目录,将编译好的zImage和am335x-evm.dtb拷贝到该目录下。

二、busybox制作ramdisk文件系统

(1)创建根文件系统目录结构,可以使用如下脚本:

[html] view
plain
 copy

  1. #!/bin/sh
  2. echo "------Create rootfs directons start...--------"
  3. mkdir rootfs
  4. cd rootfs
  5. echo "--------Create root,dev....----------"
  6. mkdir root dev etc boot tmp var sys proc lib mnt home usr
  7. mkdir etc/init.d etc/rc.d etc/sysconfig
  8. mkdir usr/sbin usr/bin usr/lib usr/modules
  9. echo "make node in dev/console dev/null"
  10. sudo mknod -m 600 dev/console c 5 1
  11. sudo mknod -m 600 dev/null  c 1 3
  12. mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
  13. mkdir var/lib var/lock var/run var/tmp
  14. chmod 1777 tmp
  15. chmod 1777 var/tmp
  16. echo "-------make direction done---------"

在这里我将脚本命名为mkrootfs.sh,接下来给脚本加可执行权限(即chmod a+x mkrootfs)并运行脚本。我的脚本是在~/work目录下运行的,所以我的根文件系统的根目录为~/work/rootfs,后面均以该目录为例阐述。

(2)编译Busybox

到Busybox下载最新版的Busybox源码,我是用的是1.20.0版本,下载完后解压并进入busybox目录,首先是配置busybox

[html] view
plain
 copy

  1. make menuconfig

配置菜单跟配置内核时的差不多,依次进入Busybox Settings => Build Options => Cross Compiler prefix (NEW),设置为编译器的前缀,我的是arm-linux-。网上有些朋友还推荐选择Busybox Settings => Build Options => Build BusyBox as a static binary (no
shared libs),但是如果我们正确拷贝编译器了运行库的话,不设置也可以。现在可以编译Busybox了,执行

[html] view
plain
 copy

  1. make

编译过程很顺利,我这里没有遇到任何错误,接下来将编译好的Busybox安装到~/work/rootfs就可以了,执行

[html] view
plain
 copy

  1. make CONFIG_PREFIX=~/work/rootfs install

(3)构建etc目录

在etc目录下创建Inittab文件,内容如下

[html] view
plain
 copy

  1. ::sysinit:/etc/init.d/rcS
  2. console::askfirst:-/bin/sh
  3. ::restart:/sbin/init
  4. ::ctrlaltdel:/sbin/reboot
  5. ::shutdown:/bin/umount -a -r
  6. ::shutdown:/sbin/swapoff -a

在etc/init.d/目录下创建rcS文件,内容如下

[html] view
plain
 copy

  1. echo "----------mount all.........."
  2. mount -a
  3. echo "----------Starting mdev......"
  4. echo /sbin/mdev > /proc/sys/kernel/hotplug
  5. mdev -s
  6. /bin/hostname -F /etc/sysconfig/HOSTNAME

为inittab和rcS文件添加可执行权限

[html] view
plain
 copy

  1. chmod a+x inittab
  2. chmod a+x rcS

在etc目录下创建fstab文件,内容如下

[html] view
plain
 copy

  1. #evice mount-point type       option       dump   fsck   order
  2. proc /proc proc defaults 0 0
  3. none /tmp ramfs defaults 0 0
  4. mdev /dev ramfs defaults 0 0
  5. sysfs /sys sysfs defaults 0 0

在etc目录下创建profile文件,内容如下

[html] view
plain
 copy

  1. PATH=/bin:/sbin:/usr/bin:/usr/sbin
  2. export PATH
  3. #set hostname
  4. HOSTNAME=‘/bin/hostname‘
  5. export HOSTNAME
  6. # Set PS1
  7. PS1=‘[\[email protected]\h \W]\$‘
  8. export PS1

拷贝主机/etc目录下的passwd和group文件到etc目录下。

(4) 设置HOSTNAME文件

在etc/sysconfig目录下创建HOSTNAME文件,在文件中写入主机名,我这里写的是tq335x。

(5)制作ramdisk

制作ramdisk的方式很多,最方便的是使用指令genext2fs。ubuntu操作系统上可以通过apt-get工具直接安装genext2fs工具:

[cpp] view
plain
 copy

  1. sudo apt-get install genext2fs

其它操作系统也有类似的管理工具,这里就不一一列举了,下面使用genext2fs打包rootfs目录。命令如下:

[cpp] view
plain
 copy

  1. genext2fs -b 4096 -d rootfs/ ramdisk

4096可以改成2^N,建议不要太大

然后使用gzip命令压缩ramdisk:

[cpp] view
plain
 copy

  1. gzip -9 -f ramdisk

执行完成该命令后可以得到文件ramdisk.gz。

由于u-boot启动内核使用的ramdisk需要有u-boot的image头,故需要使用编译u-boot时生成的工具mkimage将ramdisk.gz制作为ramdisk.img。其中,工具mkimage位于u-boot的tools目录下,制作ramdisk.img的指令如下:

[cpp] view
plain
 copy

  1. u-boot-2015.07/tools/mkimage -A arm -O linux -T ramdisk -C none -a 0x88080000 -n "ramdisk" -d ramdisk.gz ramdisk.img

命令中mkimage前的路径根据自己实际执行的路径指定即可。

这样,就完成了u-boot可以使用的ramdisk制作,然后将ramdisk.img拷贝到SD卡的boot目录下即可。

(6)挂载ramdisk

老式的ATAGS方式启动内核时使用ATAG传递bootargs给内核,由于本文使用的dtb方式启动内核,故采取dtb的chosen方式传递bootargs给内核。

Step1: 修改内核配置

[cpp] view
plain
 copy

  1. make ARCH=arm menuconfig

进入配置项:

[cpp] view
plain
 copy

  1. Boot options  --->

按N键取消配置项:

[cpp] view
plain
 copy

  1. [ ] Use appended device tree blob to zImage (EXPERIMENTAL)

官方内核默认启用了该项配置。启用该项配置后内核兼容老式的ATAGS方式内核启动,关闭后则使用新式的dtb方式启动,故此处禁用了此项配置。

按ESC保存配置后退出menuconfig画面,重新编译内核:

[cpp] view
plain
 copy

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

Step2:添加bootargs到dtb

切换到内核目录arch/arm/boot/dts/,拷贝am335x-evm.dts为tq335x.dts:

[cpp] view
plain
 copy

  1. cp am335x-evm.dts tq335x.dts

打开tq335x.dts,在memory项后通过chosen方式添加bootargs,添加内容如下:(注意TQ335X的SRAM是512MB)

[cpp] view
plain
 copy

  1. memory {
  2. device_type = "memory";
  3. reg = <0x80000000 0x20000000>; /* 512 MB */
  4. };
  5. chosen {
  6. bootargs = "console=ttyO0,115200n8 root=/dev/ram0";
  7. };
  8. ...

其中chosen节点是新添加的,memory节点是原有的。

接下来重新编译dtb:

[cpp] view
plain
 copy

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tq335x.dtb

将新编译得到的tq335x.dtb拷贝到SD的boot目录下。至此,准备工作就完成了,下面我们使用新制作的ramdisk.img和tq335x.dtb启动内核。

Step3:使用新制作的ramdisk.img和tq335x.dtb启动内核

将SD插到开发板上,给开发板上电(开发板切换到SD卡启动模式),可以通过按任意键打断内核启动进入u-boot命令模式(由于之前没有配置u-boot的bootcmd环境变量,而默认的u-boot环境无法启动内核,故,开发板上电后不按键的话也会进入u-boot的命令行模式)。

首先是加载内核到DRAM:

[cpp] view
plain
 copy

  1. load mmc 0 ${loadaddr} /boot/zImage

其中,${loadaddr}在u-boot的环境变量中默认指定为0x82000000,这里可以直接打数字。

然后是加载dtb到DRAM:

[cpp] view
plain
 copy

  1. load mmc 0 ${fdtaddr} /boot/tq335x.dtb

${fdtaddr}的默认值是0x88000000。

接下来加载ramdisk到DRAM:

[cpp] view
plain
 copy

  1. load mmc 0 ${rdaddr} /boot/ramdisk.img

${rdaddr}的默认值是0x88080000

最后就是将ramdisk和dtb的加载地址作为参数启动内核:

[cpp] view
plain
 copy

  1. bootz ${loadaddr} ${rdaddr} ${fdtaddr}

至此,Linux内核已经能够正常启动并进入终端模式了。

启动Log如下:

三、启动

(1)u-boot命令行启动Linux内核

[cpp] view
plain
 copy

  1. setenv bootargs ‘console=ttyO0,115200n8 root=/dev/ram0‘
  2. load mmc 0 0x82000000 /boot/zImage
  3. load mmc 0 0x88000000 /boot/tq335x.dtb
  4. load mmc 0 0x88080000 /boot/ramdisk.img
  5. bootz 0x82000000 0x88080000 0x88000000

至此,Linux内核就能启动了,看到的Log信息如下:

U-Boot 2015.07 (May 31 2016 - 20:18:36 +0800)

       Watchdog enabled
I2C:   ready
DRAM:  512 MiB
NAND:  1024 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net:   cpsw, usb_ether
Hit any key to stop autoboot:  0
WARNING: Could not determine device tree to use
Card did not respond to voltage select!
SD/MMC found on device 1
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
SD/MMC found on device 1
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Booting from nand ...

NAND read: incorrect device type in u-boot-spl-os

NAND read: incorrect device type in kernel
Bad Linux ARM zImage magic!
U-Boot# setenv bootargs 'console=ttyO0,115200n8 root=/dev/ram0';
U-Boot# load mmc 0 0x82000000 /boot/zImage;
4370192 bytes read in 242 ms (17.2 MiB/s)
U-Boot# load mmc 0 0x88000000 /boot/tq335x.dtb;
34781 bytes read in 9 ms (3.7 MiB/s)
U-Boot# load mmc 0 0x88080000 /boot/ramdisk.img;
967070 bytes read in 59 ms (15.6 MiB/s)
U-Boot# bootz 0x82000000 0x88080000 0x88000000
Kernel image @ 0x82000000 [ 0x000000 - 0x42af10 ]
## Loading init Ramdisk from Legacy Image at 88080000 ...
   Image Name:   ramdisk
   Created:      2016-05-31   8:15:53 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    967006 Bytes = 944.3 KiB
   Load Address: 88080000
   Entry Point:  88080000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8ff13000, end 8ffff15e ... OK
   Loading Device Tree to 8ff07000, end 8ff127dc ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.17.2 ([email protected]) (gcc version 4.9.3 20150413                                                                              (prerelease) (Linaro GCC 4.9-2015.05) ) #3 SMP Tue May 31 14:47:26 CST 2016
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio                                                                             n cache
[    0.000000] Machine model: TI AM335x EVM
[    0.000000] cma: Reserved 16 MiB at 9e800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000]   HighMem zone: 1048574 pages exceeds freesize 0
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (sgx neon )
[    0.000000] PERCPU: Embedded 9 pages/cpu @dfa9a000 s14336 r8192 d14336 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pag                                                                             es: 129792
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/ram0
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 483808K/523264K available (5697K kernel code, 646K rwdata                                                                             , 2208K rodata, 406K init, 8210K bss, 39456K reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc07c096c   (7907 kB)
[    0.000000]       .init : 0xc07c1000 - 0xc0826800   ( 406 kB)
[    0.000000]       .data : 0xc0828000 - 0xc08c9b08   ( 647 kB)
[    0.000000]        .bss : 0xc08c9b08 - 0xc10ce690   (8211 kB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrup                                                                             ts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000014] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 17895                                                                             6969942ns
[    0.000059] OMAP clocksource: timer1 at 24000000 Hz
[    0.000758] Console: colour dummy device 80x30
[    0.000807] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo                                                                              Molnar
[    0.000816] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000823] ... MAX_LOCK_DEPTH:          48
[    0.000830] ... MAX_LOCKDEP_KEYS:        8191
[    0.000837] ... CLASSHASH_SIZE:          4096
[    0.000844] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.000851] ... MAX_LOCKDEP_CHAINS:      65536
[    0.000859] ... CHAINHASH_SIZE:          32768
[    0.000866]  memory used by lock dependency info: 5167 kB
[    0.000873]  per task-struct memory footprint: 1152 bytes
[    0.000915] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.079099] pid_max: default: 32768 minimum: 301
[    0.079476] Security Framework initialized
[    0.079598] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.079612] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.081757] CPU: Testing write buffer coherency: ok
[    0.082896] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.083017] Setting up static identity map for 0x8056ef90 - 0x8056f000
[    0.086163] Brought up 1 CPUs
[    0.086183] SMP: Total of 1 processors activated.
[    0.086194] CPU: All CPU(s) started in SVC mode.
[    0.088748] devtmpfs: initialized
[    0.097390] VFP support v0.3: implementor 41 architecture 3 part 30 variant c                                                                              rev 3
[    0.133743] omap_hwmod: tptc0 using broken dt data from edma
[    0.134103] omap_hwmod: tptc1 using broken dt data from edma
[    0.134444] omap_hwmod: tptc2 using broken dt data from edma
[    0.142408] omap_hwmod: debugss: _wait_target_disable failed
[    0.200207] pinctrl core: initialized pinctrl subsystem
[    0.202672] regulator-dummy: no parameters
[    0.232113] NET: Registered protocol family 16
[    0.240467] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.242559] cpuidle: using governor ladder
[    0.242583] cpuidle: using governor menu
[    0.254378] OMAP GPIO hardware version 0.1
[    0.269479] omap-gpmc 50000000.gpmc: could not find pctldev for node /[email protected]                                                                             44e10800/nandflash_pins_s0, deferring probe
[    0.269521] platform 50000000.gpmc: Driver omap-gpmc requests probe deferral
[    0.274008] No ATAGs?
[    0.274038] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.316701] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[    0.318009] vbat: 5000 mV
[    0.318759] lis3_reg: no parameters
[    0.322094] SCSI subsystem initialized
[    0.322897] usbcore: registered new interface driver usbfs
[    0.323077] usbcore: registered new interface driver hub
[    0.326563] usbcore: registered new device driver usb
[    0.327392] omap_i2c 44e0b000.i2c: could not find pctldev for node /[email protected]                                                                             e10800/pinmux_i2c0_pins, deferring probe
[    0.327429] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
[    0.327484] omap_i2c 4802a000.i2c: could not find pctldev for node /[email protected]                                                                             e10800/pinmux_i2c1_pins, deferring probe
[    0.327508] platform 4802a000.i2c: Driver omap_i2c requests probe deferral
[    0.331789] Switched to clocksource timer1
[    0.477768] NET: Registered protocol family 2
[    0.479589] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.479762] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[    0.480966] TCP: Hash tables configured (established 4096 bind 4096)
[    0.481149] TCP: reno registered
[    0.481172] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.481343] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.482573] NET: Registered protocol family 1
[    0.484432] RPC: Registered named UNIX socket transport module.
[    0.484456] RPC: Registered udp transport module.
[    0.484466] RPC: Registered tcp transport module.
[    0.484475] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.485329] Trying to unpack rootfs image as initramfs...
[    0.486742] rootfs image is not initramfs (no cpio magic); looks like an init                                                                             rd
[    0.493217] Freeing initrd memory: 944K (cff13000 - cffff000)
[    0.493672] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counter                                                                             s available
[    0.497833] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.503274] VFS: Disk quotas dquot_6.5.2
[    0.503419] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.505845] NFS: Registering the id_resolver key type
[    0.506197] Key type id_resolver registered
[    0.506212] Key type id_legacy registered
[    0.506366] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.506789] msgmni has been set to 978
[    0.511532] io scheduler noop registered
[    0.511734] io scheduler deadline registered
[    0.511811] io scheduler cfq registered (default)
[    0.514067] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.517027] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.522737] omap_uart 44e09000.serial: no wakeirq for uart0
[    0.523268] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud =                                                                              3000000) is a OMAP UART0
[    1.230156] console [ttyO0] enabled
[    1.238657] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    1.267794] brd: module loaded
[    1.284974] loop: module loaded
[    1.291133] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.301020] usbcore: registered new interface driver asix
[    1.306871] usbcore: registered new interface driver ax88179_178a
[    1.313398] usbcore: registered new interface driver cdc_ether
[    1.319662] usbcore: registered new interface driver smsc95xx
[    1.325819] usbcore: registered new interface driver net1080
[    1.331884] usbcore: registered new interface driver cdc_subset
[    1.338184] usbcore: registered new interface driver zaurus
[    1.344247] usbcore: registered new interface driver cdc_ncm
[    1.351260] usbcore: registered new interface driver cdc_wdm
[    1.357423] usbcore: registered new interface driver usb-storage
[    1.363889] usbcore: registered new interface driver usbtest
[    1.380977] mousedev: PS/2 mouse device common for all mice
[    1.391413] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    1.399585] i2c /dev entries driver
[    1.403376] Driver for 1-wire Dallas network protocol.
[    1.412155] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.422003] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517
[    1.429435] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral
[    1.437514] ledtrig-cpu: registered to indicate activity on CPUs
[    1.444382] usbcore: registered new interface driver usbhid
[    1.450203] usbhid: USB HID core driver
[    1.455475] oprofile: using arm/armv7
[    1.459907] TCP: cubic registered
[    1.463448] Initializing XFRM netlink socket
[    1.468016] NET: Registered protocol family 17
[    1.472773] NET: Registered protocol family 15
[    1.477726] Key type dns_resolver registered
[    1.482395] omap_voltage_late_init: Voltage driver support not added
[    1.489047] sr_dev_init: No voltage domain specified for smartreflex0. Cannot                                                                              initialize
[    1.497525] sr_dev_init: No voltage domain specified for smartreflex1. Cannot                                                                              initialize
[    1.506994] ThumbEE CPU extension supported.
[    1.511504] Registering SWP/SWPB emulation handler
[    1.516567] SmartReflex Class3 initialized
[    1.529168] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[    1.536278] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xd3
[    1.543025] nand: AMD/Spansion S34ML08G1
[    1.547122] nand: 1024MiB, SLC, page size: 2048, OOB size: 64
[    1.553143] nand: error: CONFIG_MTD_NAND_OMAP_BCH not enabled
[    1.559226] omap2-nand: probe of omap2-nand.0 failed with error -22
[    1.676440] tps65910 0-002d: No interrupt support, no core IRQ
[    1.692216] vrtc: 1800 mV
[    1.695595] vrtc: supplied by vbat
[    1.702928] vio: at 1500 mV
[    1.706168] vio: supplied by vbat
[    1.712981] vdd_mpu: 912 <--> 1312 mV at 1325 mV
[    1.718114] vdd_mpu: supplied by vbat
[    1.725155] vdd_core: 912 <--> 1150 mV at 1137 mV
[    1.730372] vdd_core: supplied by vbat
[    1.737082] vdd3: 5000 mV
[    1.742588] vdig1: at 1800 mV
[    1.745999] vdig1: supplied by vbat
[    1.752538] vdig2: at 1800 mV
[    1.755947] vdig2: supplied by vbat
[    1.762371] vpll: at 1800 mV
[    1.765684] vpll: supplied by vbat
[    1.771963] vdac: at 1800 mV
[    1.775270] vdac: supplied by vbat
[    1.781430] vaux1: at 1800 mV
[    1.784923] vaux1: supplied by vbat
[    1.791216] vaux2: at 3300 mV
[    1.794707] vaux2: supplied by vbat
[    1.801070] vaux33: at 3300 mV
[    1.804652] vaux33: supplied by vbat
[    1.811012] vmmc: 1800 <--> 3300 mV at 3300 mV
[    1.816037] vmmc: supplied by vbat
[    1.822109] vbb: at 3000 mV
[    1.825557] vbb: supplied by vbat
[    1.830756] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.844057] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
[    1.940015] mmc0: host does not support reading read-only switch. assuming wr                                                                             ite-enable.
[    1.950860] mmc0: new high speed SDHC card at address 0007
[    1.958678] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.965135] davinci_mdio 4a101000.mdio: detected phy mask ffffffde
[    1.972834] mmcblk0: mmc0:0007 SD4GB 3.68 GiB
[    1.983712]  mmcblk0:
[    1.989130] libphy: 4a101000.mdio: probed
[    1.993465] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driv                                                                             er unknown
[    2.001862] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driv                                                                             er unknown
[    2.011389] cpsw 4a100000.ethernet: Detected MACID = c4:ed:ba:8e:5a:27
[    2.022361] input: [email protected] as /devices/[email protected]/input/input0
[    2.032621] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:0                                                                             0 UTC (946684800)
[    2.041730] sr_init: No PMIC hook to init smartreflex
[    2.047299] sr_init: platform driver register failed for SR
[    2.070807] lis3_reg: disabling
[    2.077047] RAMDISK: gzip image found at block 0
[    2.204812] VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
[    2.212638] devtmpfs: mounted
[    2.216373] Freeing unused kernel memory: 404K (c07c1000 - c0826000)
----------mount all..........
----------Starting mdev......

Please press Enter to activate this console.
[[email protected] /]#
时间: 2024-10-12 00:50:26

TQ335X开发板内核3.17.2移植和busybox移植的相关文章

移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境的搭建. 移植以到 JZ2440 为例,使用韦老大提供的 ubuntu9.10 虚拟机作为移植环境.当然,其它虚拟机也是可以的,我同样在 ubuntu14.04 移植成功,只不过需要额外装一些库,后面我会简单提及. 此外,我尝试使用 4.3.2 版本的

[转载]嵌入式开发板-iTOP-4412开发板LCD的屏幕驱动

平台:iTOP-4412开发板 大家好今天我们来讲一下 iTOP-4412 开发板 LCD 的屏幕驱动, iTOP-4412 开发板支持 4.3 寸, 7 寸, 9.7寸的 lcd 显示屏.其中 4.3 寸屏是用的 cpu 直接出来的 RGB 信号,7 寸屏和 9.7 寸屏是用的 LVDS 信号,硬件 上 使 用 了 一 个 RGB 转 LVDS 的 芯 片 实 现 的 . 我 们 来 看 下 显 示 驱 动 , 显 示 驱 动 在 内 核 的"drivers/video/samsung&quo

开发板 3G 网卡拨号上网

注意,其中的/dev/ttyACM0 是串口设备,后面描述. /etc/ppp/chat-wcdma #!/bin/sh # # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # exec /usr/sbin/chat -v \ ECHO ON \ ABORT 'BUSY' \ ABORT 'NO ANSWER' \ ABORT

第五章、搭建S3C6410开发板的测试环境 读书笔记

开发板是开发和学习嵌入式技术的主要硬件设备 一.安装串口调试工具:minicom 1.检测当前系统是否支持USB转串口 lsmod | grep usbserial 2.安装minicom apt-get install minicom 3.配置minicom minicom –s 4.测试minicom minicom 二.烧写Android系统 1.使用EBoot擦除NandFlash 链接开发板和Pc机,并启动minicom.打开开发板的电源开关,出现5秒倒计时时,在Pc端按下空格键,进入

[学习嵌入式开发板]iTOP-4412实现NFS网络文件系统

本文转自迅为:http://www.topeetboard.com 学习平台:iTOP-4412开发板 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统. 我们使用的软硬件环境是:一台 PC,上面运行虚拟机 Ubuntu,iTOP-4412 开发板一块,PC 机和iTOP-4412 开发板通过网线连接到路由器上面,路由器分配的网段是 192.168.1.x 的 ip 地址,默认网关是路由器的 ip 地址,即 192.168.1.1.PC 机的 ip 地址是 192.168.

[迅为开发板资料分享]iTOP-4412开发板LCD的屏幕驱动

大家好今天我们来讲一下 iTOP-4412 开发板 LCD 的屏幕驱动, iTOP-4412 开发板支持 4.3 寸, 7 寸, 9.7寸的 lcd 显示屏.其中 4.3 寸屏是用的 cpu 直接出来的 RGB 信号,7 寸屏和 9.7 寸屏是用的 LVDS 信号,硬件 上 使 用 了 一 个 RGB 转 LVDS 的 芯 片 实 现 的 . 我 们 来 看 下 显 示 驱 动 , 显 示 驱 动 在 内 核 的"drivers/video/samsung" 目录下面, 这个驱动是三星

(转载)移植最新内核linux-3.14.6到mini2440开发板

1.建立目标平台1.1 添加机器码--LINGD2440在arch/arm/tools/mach-types 下,添加以下一行[email protected]:~/arm/linux-3.14.6$ vim arch/arm/tools/mach-types lingd2440 MACH_LINGD2440 LINGD2440 19981.2 添加平台文件--mach-lingd2440.c复制arch/arm/mach-s3c24xx目录下的 mach-smdk2440.c,命名为mach-

针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植

最近由于要做TQ2440(ARM9)开发板上的驱动实验,所以要在主机(ubuntu13.10)上针对前面的目标板上的系统内核进行交叉编译. 一,内核的交叉编译: 1.准备2.6.30.4版本的内核源码包,这个我使用的是天嵌公司提供的内核源码包linux-2.6.30.4_20121214.tar.bz2. 2.打开终端输入指令:tar vxjf linux-2.6.30.4_20121214.tar.bz2 解压内核源码包得到一个名字为opt的文件夹,然后输入指令:sudo mv opt /us

u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江 uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统. 首先我们对nandflash进行分区,规划好每个文件存放在nandflash的位置.下面是nandflash的分区: 第0分区:0x000000000000-0x000000080000为uboot区