2016-02-27 82 views
0

我一直在尝试使用Angstrom构建系统为B​​eagleBone Black编译内核。已经尝试了很多不同的东西,但我会想到它们中的一种,我认为它们应该最有可能起作用。Angstrom内核 - 卡在“正在启动内核...”

我已经使用准备埃图像(埃-CLOUD9-IDE-GNOME-eglibc-IPK-v2012.12-beaglebone-2013.06.20.img),然后编译的内核(http://github.com/Angstrom-distribution/setup-scripts.git - v2014.12释放)作为他们的网站介绍:

MACHINE=beagleboard ./oebb.sh config beagleboard 
MACHINE=beagleboard ./oebb.sh update 
MACHINE=beagleboard ./oebb.sh bitbake virtual/kernel 

我的想法是,我将采取的uImage并复制它,而不是原单/开机/但它得到停留在“正在内核......”。我曾尝试使用不同的dtb文件与这个内核和原来的编译。

(这是因为糟糕的控制台输出它真的坚持不)

这里是原来的/工作的内核的头:

Booting from mmc ... 
## Booting kernel from Legacy Image at 80007fc0 ... 
    Image Name: Angstrom/3.8.13/beaglebone 
    Image Type: ARM Linux Kernel Image (uncompressed) 
    Data Size: 4270776 Bytes = 4.1 MiB 
    Load Address: 80008000 
    Entry Point: 80008000 
    Verifying Checksum ... OK 
## Flattened Device Tree blob at 80f80000 
    Booting using the fdt blob at 0x80f80000 
    XIP Kernel Image ... OK 
OK 
    Using Device Tree in place at 80f80000, end 80f88e40 

Starting kernel ... 

Uncompressing Linux... done, booting the kernel. 

这里是我这卡在启动内核...

Booting from mmc ... 
## Booting kernel from Legacy Image at 80007fc0 ... 
    Image Name: Linux-3.14.20 
    Image Type: ARM Linux Kernel Image (uncompressed) 
    Data Size: 4279000 Bytes = 4.1 MiB 
    Load Address: 80008000 
    Entry Point: 80008000 
    Verifying Checksum ... OK 
## Flattened Device Tree blob at 80f80000 
    Booting using the fdt blob at 0x80f80000 
    XIP Kernel Image ... OK 
OK 
    Using Device Tree in place at 80f80000, end 80f88e40 

Starting kernel ... 

这里是从U-Boot的printenv输出

arch=arm 
baudrate=115200 
board=am335x 
board_name=A335BNLT 
board_rev=00C0 
bootcmd=gpio set 53; i2c mw 0x24 1 0x3e; run findfdt; mmc dev 0; if mmc rescan ; then echo micro SD card found;setenv mmcdev 0;else echo No micro SD card found, setting mmcdev to 1;setenv mmcdev 1;fi;setenv bootpart ${mmcdev}:2;mmc dev ${mmcdev}; if mmc rescan; then gpio set 54; echo SD/MMC found on device ${mmcdev};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;gpio set 55; if run loaduimage; then gpio set 56; run loadfdt;run mmcboot;fi;fi; 
bootdelay=1 
bootdir=/boot 
bootenv=uEnv.txt 
bootfile=uImage 
bootpart=0:2 
console=ttyO0,115200n8 
cpu=armv7 
dfu_alt_info_emmc=rawemmc mmc 0 3751936 
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw mmc 100 100;u-boot.img.raw mmc 300 3C0;u-boot.img fat 0 1;uEnv.txt fat 0 1 
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;kernel part 0 7;rootfs part 0 8 
ethact=cpsw 
ethaddr=68:c9:0b:da:22:56 
fdt_high=0xffffffff 
fdtaddr=0x80F80000 
fdtfile=am335x-boneblack.dtb 
findfdt=if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi;if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi 
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize 
kloadaddr=0x80007fc0 
loadaddr=0x80200000 
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv} 
loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile} 
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz 
loaduimage=load mmc ${bootpart} ${kloadaddr} ${bootdir}/${bootfile} 
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype} 
mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${kloadaddr} - ${fdtaddr} 
mmcdev=0 
mmcroot=/dev/mmcblk0p2 ro 
mmcrootfstype=ext4 rootwait 
mtdids=nand0=omap2-nand.0 
mtdparts=mtdparts=omap2-nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128k(SPL.backup3),1920k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs) 
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype} 
nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; bootm ${loadaddr} 
nandimgsize=0x500000 
nandroot=ubi0:rootfs rw ubi.mtd=7,2048 
nandrootfstype=ubifs rootwait=1 
nandsrcaddr=0x280000 
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp 
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootm ${loadaddr} - ${fdtaddr} 
nfsopts=nolock 
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype} 
ramboot=echo Booting from ramdisk ...; run ramargs; bootm ${loadaddr} ${rdaddr} ${fdtaddr} 
ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M 
ramrootfstype=ext2 
rdaddr=0x81000000 
rootpath=/export/rootfs 
soc=am33xx 
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype} 
spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootm ${loadaddr} 
spibusno=0 
spiimgsize=0x362000 
spiroot=/dev/mtdblock4 rw 
spirootfstype=jffs2 
spisrcaddr=0xe0000 
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off 
stderr=serial 
stdin=serial 
stdout=serial 
usbnet_devaddr=68:c9:0b:da:22:56 
vendor=ti 
ver=U-Boot 2013.04-dirty (Jun 19 2013 - 09:57:14) 
+1

什么是您的物理控制台?你怎么知道这是为你的Linux内核正确设置的? –

+0

您是否尝试过早期的printk? –

+0

@AlexHoppus是没有改变,没有额外的输出。 – user2043854

回答

0
1 : Kernel extract the physical address and link address 
2 : machine id 
#define MACH_TYPE_PERSONAL_SERVER  17 
#define MACH_TYPE_L7200    19 
#define MACH_TYPE_PLEB     20 
#define MACH_TYPE_INTEGRATOR   21 
#define MACH_TYPE_H3600    22 
#define MACH_TYPE_P720T    24 
#define MACH_TYPE_ASSABET    25 
#define MACH_TYPE_LART     27 
#define MACH_TYPE_GRAPHICSCLIENT  29 
#define MACH_TYPE_XP860    30 
#define MACH_TYPE_CERF     31 
#define MACH_TYPE_NANOENGINE   32 
#define MACH_TYPE_JORNADA720   48 
#define MACH_TYPE_EDB7211    50 
#define MACH_TYPE_PFS168    52 
3:configuration of uart 


1 : 

config NEED_MACH_MEMORY_H 
    bool 
    help 
     Select this when mach/memory.h is required to provide special 
     definitions for this platform. The need for mach/memory.h should 
     be avoided when possible. 

config PHYS_OFFSET 
    hex "Physical address of main memory" if MMU 
    depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H 
    default DRAM_BASE if !MMU 
    help 
     Please provide the physical address corresponding to the 
     location of main memory in your system. 
+0

解压缩代码没有打印出来 – leesagacious

+0

请修改以包含该答案的一个描述,以利于其他用户使用。 –