Building for BeagleBone

From eLinux.org
Revision as of 15:07, 16 November 2014 by Tanure (talk | contribs) (Test your new Kernel)
Jump to: navigation, search

Arm Compiler

Setting up cross-compile environment is the first and necessary step.

Linaro Toolchain

Linaro is an open organization focused on improving Linux on ARM. Toolchain Working Group provides the preferred community toolchain.

Arch Linux : gcc-linaro-arm-linux-gnueabihf

Distro provided

The easier way is install the default compiler provided by your distribution.

Ubuntu : gcc-arm-linux-gnueabi

Arch Linux : arm-linux-gnueabi-gcc

  • Tip: Do a alias in your environment, where N is the number of processors cores plus one:
$ alias armmake='make -jN ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- '

crosstool-NG

crosstool-NG aims at building toolchains. So, by this way you will build your own cross-compiler, but this requires that you choose an operation system and LibC. Therefore we will build a cross-compiler for Linux/gLibc.

U-Boot

Mainline U-boot

You can use the mainline u-boot for beaglebone.

Get:

$ git clone git://git.denx.de/u-boot.git

Clean:

$ armmake distclean

Configure for BeagleBone:

$ armmake am335x_evm_config

Build:

$ armmake

Test your new U-Boot

You need a microSd card with 2Gb or more. In order to make U-Boot work you will need to create the first partion as FAT32 LBA, bootable, with something like 64 Megabytes.
This command wipes everything from your sdcard and creates that partition.

$ echo -e "o\nn\np\n1\n\n+64M\na\n1\nt\nc\nw\n" | sudo fdisk /dev/MYDISK ; sudo fdisk /dev/MYDISK -l

This comand should print something like:

Disk /dev/sdb: 7948 MB, 7948206080 bytes
16 heads, 4 sectors/track, 242560 cylinders, total 15523840 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
Disk identifier: 0x1c524301
    Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048      133119       65536    c  W95 FAT32 (LBA)

The U-Boot compilation generated two files, MLO and uboot.img. Mount the partition that you just created and copy FIRST the MLO file to partition. Then copy the u-boot.img.

$ sudo mount /dev/MYDISK /mnt
$ sudo cp MLO /mnt
$ sudo cp u-boot.img
$ sudo sync
$ sudo umount  /mnt

Now with that sdcard in BeagleBone the output from serial should be:

U-Boot SPL 2014.07-rc4-00264-g23f23f2-dirty (Jul 05 2014 - 21:56:58)
reading u-boot.img
reading u-boot.img


U-Boot 2014.07-rc4-00264-g23f23f2-dirty (Jul 05 2014 - 21:56:58)

I2C:   ready
DRAM:  512 MiB
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net:   <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
** Unable to read file uEnv.txt **
** Invalid partition 2 **
switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
reading uEnv.txt
26 bytes read in 3 ms (7.8 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
** File not found /boot/zImage **
Booting from nand ...

no devices available

no devices available
Bad Linux ARM zImage magic!
U-Boot# 

If you don't see this output, but sees a bunch of "CCCCC", this could mean that the first partition doesn't have the boot flag set.

There are two problems in this output. First, you don't have a uEnv.txt, which configure the U-Boot and secondly you don't have a linux image. But first check what is the default environment from Beaglebone. Boot the u-boot and do a pr command, the output should be like this:

U-Boot# pr
arch=arm
baudrate=115200
board=am335x
board_name=A335BNLT
board_rev=0A5A
boot_fdt=try
bootargs=console=ttyO0,115200n8 quiet drm.debug=7 root=ubi0:rootfs rw ubi.mtd=7,2048 rootfstype=ubifs rootwait=1
bootcmd=run findfdt; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;run nandboot;

bootcount=1
bootdelay=1
bootdir=/boot
bootenv=uEnv.txt
bootfile=zImage
bootm_size=0x10000000
bootpart=1: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 0x100 0x100;u-boot.img.raw mmc 0x300 0x400;spl-os-args.raw mmc 0x80 0x80;spl-os-image.raw mmc 0x900 0x2000;spl-os-args fat 0 1;spl-os-image fat 0 1;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;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
dfu_alt_info_ram=kernel ram 0x80200000 0xD80000;fdt ram 0x80F80000 0x80000;ramdisk ram 0x81000000 0x4000000
eth1addr=c8:a0:30:a6:2c:6f
ethact=cpsw
ethaddr=c8:a0:30:a6:2c:6d
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtfile=am335x-boneblack.dtb
filesize=1a
findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi; if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then se
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize
kernel_addr_r=0x82000000
loadaddr=0x82000000
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}
loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
mmcboot=mmc dev ${mmcdev}; if mmc rescan; then 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;if run loadimage; then run mmcloa;
mmcdev=1
mmcloados=run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
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),1792k(u-boot),128k(u-boot-spl-os),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 ${fdtaddr} u-boot-spl-os; nand read ${loadaddr} kernel; bootz ${loadaddr} - ${fdtaddr}
nandroot=ubi0:rootfs rw ubi.mtd=7,2048
nandrootfstype=ubifs rootwait=1
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; bootz ${loadaddr} - ${fdtaddr}
nfsopts=nolock
optargs=quiet drm.debug=7
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype}
ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
ramdisk_addr_r=0x88080000
ramroot=/dev/ram0 rw
ramrootfstype=ext2
rdaddr=0x88080000
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}; bootz ${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=c8:a0:30:a6:2c:6f
vendor=ti
ver=U-Boot 2014.07-rc4-00264-g23f23f2-dirty (Jul 05 2014 - 21:56:58)

Some of these configs comes from "u-boot/include/configs/am335x_evm.h". These configs can be changed, but u-boot needs to be recompiled in order to take effect. But, the most common way is change configs in a file called uEnv.txt. This file is read in boot time, and override any configuration pre-defined in beaglebone.

This is the basic uEnv.txt that your boards needs in order to boot your kernel. Create and put this file uEnv.txt in your boot partition.

bootdir=
bootfile=zImage
fdtfile=am335x-boneblack.dtb
loadaddr=0x80007fc0
fdtaddr=0x80F80000
loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}
uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}

Kernel

Mainline Kernel

You can use the mainline linux for beaglebone.

Get:

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Clean:

$ armmake distclean

Configure for BeagleBone:

$ armmake multi_v7_defconfig

Check if two remaining configs are set:

│ Symbol: MFD_TPS65217 [=n]
│ Type  : tristate
│ Prompt: TI TPS65217 Power Management / White LED chips
│   Location:
│     -> Device Drivers
│ (1)   -> Multifunction device drivers
│   Defined at drivers/mfd/Kconfig:877
│   Depends on: HAS_IOMEM [=y] && I2C [=y]
│   Selects: MFD_CORE [=y] && REGMAP_I2C [=y]

│ Symbol: REGULATOR_TPS65217 [=n]
│ Type  : tristate
│ Prompt: TI TPS65217 Power regulators
│   Location:
│     -> Device Drivers
│ (1)   -> Voltage and Current Regulator Support (REGULATOR [=y])
│   Defined at drivers/regulator/Kconfig:554
│   Depends on: REGULATOR [=y] && MFD_TPS65217 [=y]

Build:

$ armmake

After build, there are two important files. Linux kernel at arch/arm/boot/zImage and Device Tree Blob arch/arm/boot/dts/am335x-boneblack.dtb or arch/arm/boot/dts/am335x-bone.dtb (for white). So copy that to memory card.

$ sudo cp arch/arm/boot/zImage /mnt
$ sudo cp arch/arm/boot/dts/am335x-boneblack.dtb /mnt

Test your new Kernel

U-Boot SPL 2014.10-00573-g11ada92 (Nov 08 2014 - 20:01:26) reading args<br> spl_load_image_fat_os: error reading image args, err - -1 reading u-boot.img reading u-boot.img U-Boot 2014.10-00573-g11ada92 (Nov 08 2014 - 20:01:26)<br> Watchdog enabled<br> I2C: ready<br> DRAM: 512 MiB<br> NAND: 0 MiB<br> MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1<br> *** Error - No Valid Environment Area found<br> *** Warning - bad CRC, using default environment<br> Net: <ethaddr> not set. Validating first E-fuse MAC<br> cpsw, usb_ether<br> Hit any key to stop autoboot: 0 <br> switch to partitions #0, OK<br> mmc0 is current device<br> SD/MMC found on device 0<br> reading boot.scr<br> ** Unable to read file boot.scr **<br> reading uEnv.txt<br> 416 bytes read in 4 ms (101.6 KiB/s)<br> Loaded environment from uEnv.txt<br> Importing environment from mmc ...<br> Running uenvcmd ...<br> reading zImage<br> 5277928 bytes read in 302 ms (16.7 MiB/s)<br> reading am335x-boneblack.dtb<br> 29478 bytes read in 8 ms (3.5 MiB/s)<br> Kernel image @ 0x80006fc0 [0x000000 - 0x5088e8 ]<br> ## Flattened Device Tree blob at 80f80000<br> Booting using the fdt blob at 0x80f80000<br> Loading Device Tree to 8fff5000, end 8ffff325 ... OK<br> <br> Starting kernel ...<br>


[0.000000] Booting Linux on physical CPU 0x0 [0.000000] Linux version 3.18.0-rc3-00134-gfe606df (tanure@archDesk) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #1 SMP Sat Nov 8 22:02:27 BRST 2014 [0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d [0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [0.000000] Machine model: TI AM335x BeagleBone Black [0.000000] cma: Reserved 64 MiB at 0x9b800000 [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.0 (sgx neon ) [0.000000] PERCPU: Embedded 10 pages/cpu @dfaa8000 s8512 r8192 d24256 u40960 [0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792 [0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait [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: 441088K/523264K available (6944K kernel code, 962K rwdata, 2812K rodata, 728K init, 308K bss, 82176K 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 : 0xc0208000 - 0xc0b8f364 (9757 kB) [0.000000] .init : 0xc0b90000 - 0xc0c46000 ( 728 kB) [0.000000] .data : 0xc0c46000 - 0xc0d36940 ( 963 kB) [0.000000] .bss : 0xc0d36940 - 0xc0d83b58 ( 309 kB) [0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [0.000000] Hierarchical RCU implementation. [0.000000] RCU restricting CPUs from NR_CPUS=8 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 interrupts [0.000000] OMAP clockevent source: timer2 at 24000000 Hz [0.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns [0.000029] OMAP clocksource: timer1 at 24000000 Hz [0.000207] Console: colour dummy device 80x30 [0.000239] Calibrating delay loop... 997.78 BogoMIPS (lpj=2494464) [0.059499] pid_max: default: 32768 minimum: 301 [0.059640] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [0.059650] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [0.060204] CPU: Testing write buffer coherency: ok [0.060496] CPU0: thread -1, cpu 0, socket -1, mpidr 0 [0.060587] Setting up static identity map for 0x8089b8d8 - 0x8089b970 [0.062325] Brought up 1 CPUs [0.062339] SMP: Total of 1 processors activated. [0.062347] CPU: All CPU(s) started in SVC mode. [0.062894] devtmpfs: initialized [0.063549] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 [0.072638] omap_hwmod: tptc0 using broken dt data from edma [0.072760] omap_hwmod: tptc1 using broken dt data from edma [0.072854] omap_hwmod: tptc2 using broken dt data from edma [0.077230] omap_hwmod: debugss: _wait_target_disable failed [0.135643] pinctrl core: initialized pinctrl subsystem [0.136218] regulator-dummy: no parameters [0.144695] NET: Registered protocol family 16 [0.146774] DMA: preallocated 256 KiB pool for atomic coherent allocations [0.148611] cpuidle: using governor ladder [0.148632] cpuidle: using governor menu [0.151752] OMAP GPIO hardware version 0.1 [0.159142] No ATAGs? [0.159171] hw-breakpoint: debug architecture 0x4 unsupported. [0.160068] EXYNOS: PMU not supported [0.162126] Serial: AMBA PL011 UART driver [0.179155] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver [0.179905] vmmcsd_fixed: 3300 mV [0.181779] vgaarb: loaded [0.182477] SCSI subsystem initialized [0.183181] usbcore: registered new interface driver usbfs [0.183246] usbcore: registered new interface driver hub [0.183305] usbcore: registered new device driver usb [0.183823] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, deferring probe [0.183847] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral [0.184054] Linux video capture interface: v2.00 [0.184099] pps_core: LinuxPPS API ver. 1 registered [0.184107] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [0.184132] PTP clock support registered [0.184302] EDAC MC: Ver: 3.0.0 [0.185221] Advanced Linux Sound Architecture Driver Initialized. [0.186389] Switched to clocksource timer1 [0.196088] NET: Registered protocol family 2 [0.196822] TCP established hash table entries: 4096 (order: 2, 16384 bytes) [0.196869] TCP bind hash table entries: 4096 (order: 3, 32768 bytes) [0.196928] TCP: Hash tables configured (established 4096 bind 4096) [0.196986] TCP: reno registered [0.196998] UDP hash table entries: 256 (order: 1, 8192 bytes) [0.197016] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) [0.197191] NET: Registered protocol family 1 [0.197545] RPC: Registered named UNIX socket transport module. [0.197558] RPC: Registered udp transport module. [0.197564] RPC: Registered tcp transport module. [0.197570] RPC: Registered tcp NFSv4.1 backchannel transport module. [0.198401] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available [0.200106] futex hash table entries: 256 (order: 2, 16384 bytes) [0.212019] squashfs: version 4.0 (2009/01/31) Phillip Lougher [0.212878] NFS: Registering the id_resolver key type [0.212949] Key type id_resolver registered [0.212956] Key type id_legacy registered [0.213020] msgmni has been set to 989 [0.213680] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249) [0.213700] io scheduler noop registered [0.213710] io scheduler deadline registered [0.213912] io scheduler cfq registered (default) [0.215707] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568 [0.275053] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [0.277021] Serial: IMX driver [0.277387] msm_serial: driver initialized [0.277830] omap_uart 44e09000.serial: no wakeirq for uart0 [0.277989] omap_uart 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 154, base_baud = 3000000) is a OMAP UART0 [0.930674] console [ttyO0] enabled [0.934843] STMicroelectronics ASC driver initialized [0.940827] serial: Freescale lpuart driver [0.945438] [drm] Initialized drm 1.1.0 20060810 [0.955438] loop: module loaded [0.962664] CAN device driver interface [0.967374] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.15-k [0.974792] igb: Copyright (c) 2007-2014 Intel Corporation. [0.981804] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver [0.989679] usbcore: registered new interface driver pegasus [0.995705] usbcore: registered new interface driver asix [1.001446] usbcore: registered new interface driver ax88179_178a [1.007898] usbcore: registered new interface driver cdc_ether [1.014095] usbcore: registered new interface driver smsc75xx [1.020199] usbcore: registered new interface driver smsc95xx [1.026284] usbcore: registered new interface driver net1080 [1.032287] usbcore: registered new interface driver cdc_subset [1.038556] usbcore: registered new interface driver zaurus [1.044526] usbcore: registered new interface driver cdc_ncm [1.050758] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [1.057640] ehci-pci: EHCI PCI platform driver [1.062376] ehci-platform: EHCI generic platform driver [1.068005] ehci-omap: OMAP-EHCI Host Controller driver [1.073605] ehci-orion: EHCI orion driver [1.077915] SPEAr-ehci: EHCI SPEAr driver [1.082228] tegra-ehci: Tegra EHCI driver [1.086562] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [1.093092] ohci-pci: OHCI PCI platform driver [1.097832] ohci-platform: OHCI generic platform driver [1.103434] ohci-omap3: OHCI OMAP3 driver [1.107752] SPEAr-ohci: OHCI SPEAr driver [1.112402] usbcore: registered new interface driver usb-storage [1.119963] mousedev: PS/2 mouse device common for all mice [1.128211] i2c /dev entries driver [1.132941] usbcore: registered new interface driver uvcvideo [1.139005] USB Video Class driver (1.1.1) [1.143317] gspca_main: v2.14.0 registered [1.150021] sdhci: Secure Digital Host Controller Interface driver [1.156544] sdhci: Copyright(c) Pierre Ossman [1.221808] Synopsys Designware Multimedia Card Interface Driver [1.228801] sdhci-pltfm: SDHCI platform and OF driver helper [1.236480] ledtrig-cpu: registered to indicate activity on CPUs [1.243077] usbcore: registered new interface driver usbhid [1.248946] usbhid: USB HID core driver [1.257749] TCP: cubic registered [1.261248] NET: Registered protocol family 17 [1.265981] can: controller area network core (rev 20120528 abi 9) [1.272572] NET: Registered protocol family 29 [1.277259] can: raw protocol (rev 20120528) [1.281756] can: broadcast manager protocol (rev 20120528 t) [1.287712] can: netlink gateway (rev 20130117) max_hops=1 [1.293969] Key type dns_resolver registered [1.298668] omap_voltage_late_init: Voltage driver support not added [1.306023] ThumbEE CPU extension supported. [1.310603] Registering SWP/SWPB emulation handler [1.315846] mmc0: host does not support reading read-only switch, assuming write-enable [1.327738] mmc0: new high speed SDHC card at address 1234 [1.333988] mmcblk0: mmc0:1234 SA04G 3.63 GiB [1.339608] vdds_dpr: at 1500 mV [1.343282] mmcblk0: p1 p2 [1.347910] vdd_mpu: 925 <--> 1325 mV at 1325 mV [1.356868] vdd_core: 925 <--> 1150 mV at 1125 mV [1.362896] vio,vrtc,vdds: at 1800 mV [1.367821] vdd_3v3aux: at 3300 mV [1.373372] vdd_1v8: 1800 mV [1.379306] vdd_3v3a: at 3300 mV [1.383807] tps65217 0-0024: TPS65217 ID 0xe version 1.2 [1.389485] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz [1.446448] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6 [1.452881] davinci_mdio 4a101000.mdio: detected phy mask fffffffe [1.460145] libphy: 4a101000.mdio: probed [1.464412] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown [1.473899] cpsw 4a100000.ethernet: Detected MACID = c8:a0:30:a6:2c:6d [1.482112] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [1.492748] ALSA device list: [1.495876] No soundcards found. [1.507789] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [1.516423] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [1.525636] devtmpfs: error mounting -2 [1.530467] Freeing unused kernel memory: 728K (c0b90000 - c0c46000) [1.537240] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance. [1.551022] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.18.0-rc3-00134-gfe606df #1 [1.559008] [<c02162c0>] (unwind_backtrace) from [<c0211cc4>] (show_stack+0x10/0x14) [1.567139] [<c0211cc4>] (show_stack) from [<c0896d64>] (dump_stack+0x8c/0x9c) [1.574716] [<c0896d64>] (dump_stack) from [<c08964d0>] (panic+0xa0/0x218) [1.581929] [<c08964d0>] (panic) from [<c089488c>] (cpu_die+0x0/0x80) [1.588682] [<c089488c>] (cpu_die) from [<00000000>] ( (null)) [1.594897] ---[ end Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.