We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Atish Dhanotia • 1 year ago

this kernel image can run in qemu

Narendra Rana • 5 years ago

I followed the above steps on my ubuntu machine and i am not able to install the build modules using the command given in the shared compilation steps.

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=<path of="" the="" rfs=""> modules_install

Getting error like no rule to make target modules_install when I run this command.

Please help here.

hieu hot xac • 5 years ago

I have a beaglebone green wireless board. Uboot doesn't have a config file for this board. I stopped at this point. Could you help me ?

Siddharth • 5 years ago

A quick look suggests that you should use `am335x_evm_defconfig`.

hieu hot xac • 5 years ago

The kernel has a big update, all files in the folder arch/arm/configs/ have been changed. Can you help me again ? Thanks

Aluvala Saiteja • 6 years ago

I followed the above steps and successfully ubuntu started on beaglebone black but i am unable to find spidev in /dev/ location of file system. please look at this issue

Mani Sadhasivam • 6 years ago

Hi,

For spidev, you need to enable SPIDEV config and add relevant devicetree node in board devicetre. Below guide could be useful:

https://github.com/96boards...

Eventhough the guide is for dragonboard410c, you can easily adapt it to BBB.

G YUVARAJ • 6 years ago

Hii Mani

I followed the same steps u stated but it don't know whether its booted my custom kernel or not but am getting something like this where i am trying to login as root but keyboard is not working properly ...plz look into the issue https://uploads.disquscdn.c...

ssharma10 • 6 years ago

Hi,
I have followed the above steps but unable to boot properly . It got stuck in u-boot.img.
anyone please help me with this. I am unable to understand the reason

please find the serial logs.

U-Boot SPL 2019.01-rc2-00193-g7436f5e54d (Jan 04 2019 – 20:36:48 +0530)
Trying to boot from MMC1
Loading Environment from FAT… ** No partition table – mmc 0 **
Loading Environment from MMC… *** Warning – bad CRC, using default environment

U-Boot 2019.01-rc2-00193-g7436f5e54d (Jan 04 2019 – 20:36:48 +0530)

CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver ‘omap_hsmmc’
No match for driver ‘omap_hsmmc’
Some drivers were not found
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT… ** No partition table – mmc 0 **
Loading Environment from MMC… *** Warning – bad CRC, using default environment

not set. Validating first E-fuse MAC
Net: Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
** Unrecognized filesystem type **
** Unrecognized filesystem type **
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
54491 bytes read in 6 ms (8.7 MiB/s)
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
** Invalid partition 2 **
** Invalid partition 2 **
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1…
switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
** File not found /boot/zImage **
## Error: “bootcmd_nand0” not defined
starting USB…
USB0: Port not available.
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 50:65:83:d1:aa:9d
HOST MAC de:ad:be:af:00:00
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4

thanks in advance,

Siddharth • 6 years ago

Hi Sharma, did you get the SD formatting right? looks to be some FS corruption. Alternatively, you can try a different SD card/reader and let us know if your issue is resolved.

ssharma10 • 6 years ago

Hi Siddharth,

I am still facing the same issue. I tried with different SD card/reader also same issue observed.

Kakarla Srinivas • 7 years ago

Hi ,

I tried u-boot and kernel compilation. able to login ,but apt and dpkg is not working
Please check screenshot and provide the inputs and suggestions

Mani Sadhasivam • 7 years ago

In this post, I have used a minimal RFS. APT package manager is only available in Debian based distros. However you can also use Debian RFS instead of what I have used here.

Kakarla Srinivas • 7 years ago

apt and dpkg is not working on above kernel.
Can you suggest how to fix the is

Mani Sadhasivam • 6 years ago

I have used a minimal RFS, so there is no package manager available. But you can use a prebuilt debian/ubuntu RFS for making use of package managers.

Jelmy O S • 7 years ago

Minicom was not able to connect when I was typing sudo minicom the result was cannot open /dev/ttyACM0: No such file or directory.

Jelmy O S • 7 years ago

My beaglebone black doesn't light up the 4 led's only the power button will blink?
How to remove the contents of beaglebone black?
while I'm building the I got the subimages of core-image-minimal,MLO,u-boot instead of uimage I got zimage in ubuntu16.04?
My board doesn't boot from the s.d card?

xcvvxcvxv • 7 years ago

Good

Miguel • 7 years ago

What are the passwrd and user ??? looking inside the RFS /etc/passwd says nothing, username is root??

Thanks for the post, it is really useful :)))

BR

Migue; • 7 years ago

forget about it.... has no password and username is root
:)

Ercin • 8 years ago

Hi Mani,
Thanks for tutorial, but let me ask a question, We would like to compile 3.8 kernel for BBB with many patches as explained here http://elinux.org/Building_.... We compiled kernel as discussed in another website and go through your steps to boot our BBB but we cannot. BBB try to load SD Card (at least we guess) and USER1 led sometimes blink USER2 led blink very quicky so it means kernel is not in idle loop.

We specifically have to use Debian image as https://debian.beagleboard....

So is it possible to help us?

Mani Sadhasivam • 8 years ago

Hi Eric,

Sorry for the late reply...

I have no experience in building 3.8 kernel for BBB. But it should be possible. I think starting from 3.8x BBB defconfig has DT support enabled. In that case, link you mentioned does not mention anything about loading dtb file but they were compiling the kernel with 'dtbs' command, which looks strange to me. Also, that guide is pretty much outdated I guess.

So, I'd suggest you to use https://github.com/beaglebo... and switch to 3.8 branch then follow the steps mentioned here to compile and deploy kernel.

Hope this helps!

jagadeesh • 8 years ago

actually i connected my BBB via USB-OTG cable.After the board get completley booted up,using minicom i opened /dev/ttyACM0 to interact with BBB.Now my question is i want to see the bootlog also through the same interface(USB-OTG cable).what should i can do for this.please anyone help me.

Mani Sadhasivam • 8 years ago

How about using 'dmesg' command?

Ramakrishna Chintha • 8 years ago

Retry time exceeded; starting again
ethernet@4a100000 Waiting for PHY auto negotiation to complete......... TIMEOU!
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17
BOOTP broadcast 18
BOOTP broadcast 19
BOOTP broadcast 20
BOOTP broadcast 21
BOOTP broadcast 22
BOOTP broadcast 23
BOOTP broadcast 24
BOOTP broadcast 25
BOOTP broadcast 26
BOOTP broadcast 27
BOOTP broadcast 28
BOOTP broadcast 29

Retry time exceeded; starting again
=>
please help me this error

Mani Sadhasivam • 8 years ago

Please disconnect ethernet cable if you have connected during boot. Since we are not enabling network boot here it might be waiting for data.

durgesh • 8 years ago

Dear Mani,
i'm using 3.8 kernel for my BBB. i found the rootfs of debian 8 (wget -c https://rcn-ee.com/rootfs/e... at https://eewiki.net/display/... . Now when i use this rootfs should i copy all my mudules to this file system or use existing one.

Jerry Lian • 8 years ago

Hi, Mani:

Thanks for your explanation to my previous post!
Now I am confused with your steps:
* When we clone the Linux-kernel from Github
----- I check the folder size of "Linux": 585 MB
* And I check the resulting SD-card:
----- BOOT partition: 8.8 MB (three files: uImage, am335x-boneblack.dtb, uEnv.txt)
----- RFS partition: 76.8 MB (RFS downloaded: 4.5 MB + kernel-module: 72 MB)

So my confusions (forgive me as I am newbie to Linux):
* If the resulting SD-card ~= 86 MB, why do we start from big-kernel (585 MB)?
* If I want all resources as exactly in original image shipped from manufacturer,
Can I find those resources in the big-kernel (585 MB)?

Thanks!

Jerry

Siddharth • 8 years ago

Jerry, As Mani suggested, the final image is a compiled binary while the source tree is plain test (well, sort of). The point that I would like to add is that the git versioning system itself accounts for a significant portion of the size. Since you cloned instead of tar-balling you have historical data included in that directory as well.

Generally, if you don't plan on making upstream commits, you can git checkout a stable branch and then remove the `.git` directory from the top level of the cloned repository to get an idea of the source tree size alone.

Mani Sadhasivam • 8 years ago

Hello Jerry,

First of all there is a difference between the compressed image and source code. The kernel image what you're getting after build (uImage) is in a compressed state, so it would be less in size. The entire linux kernel is big chunk of code and most of the time you don't need all of the resources.

But when you compare the vendor image like debian image, almost 90% of size is consumed by the RFS. It contains all the application stuffs like library, daemons, modules etc...

Still you're confused, just uncompress the image which you've downloaded from Beaglebone black site and you can see the difference.

-Mani

Jerry Lian • 8 years ago

Hi, Mani:

Thanks for you explanation to my previous post!
Now I am confused with your steps :
* When we clone the kernel: https://github.com/beaglebo...
----- I check the size of folder "linux": 585 MB
* And I check the files on SD card:
----- BOOT partition: 8.8 MB (three files: uImage, am335x-boneblack.dtb, uEnv.txt)
----- RFS partition: 76.8 MB (RFS downloaded: 4.5 MB + Kernel-module: 72 MB)

So my confusions (forgive me as I am newbie to Linux):
* If the resulting SD-card < 100 MB, why do we start from the big-kernel: 585 MB?
* If I want all resources in original image shipped from manufacturer,
Can I find these resources in the big-kernel (585 MB) ?

Thanks!

Jerry

Jerry Lian • 8 years ago

Hi, Mani:

I follow all your steps, and everything seems fine. But when I boot the SD card:
* (I don't have monitor for BBB, so I connect BBB to my Windows-PC)
* (And with original image, I can connect to BBB via: 192.168.7.2)
* I can see that LEDs flashes.
* But I can NOT connect to BBB by telnet: 192.168.7.2
* And I did NOT see a BBB-drive on my Windows-PC

So a quick question:
* Will the BBB kernel built from your steps have same behaviors as original image in BBB?

Thanks!

Jerry

Mani Sadhasivam • 8 years ago

Hello Jerry,

For connecting to BBB via network you need to configure the static ip. The RFS we've used here has the minimum functionality and doesn't provide network support.

The image for BBB has almost everything configured in place but our aim is to provide the bare minimum functionality. Still if you want to have all resources, download the Ubuntu RFS instead of one suggested in this post and boot using your custom kernel.

Khadar Basha Shaik • 8 years ago

Hi Mani,

Thanks for the article.
After establishing serial connection and logging in as root@beaglebone, How can we transfer dmesg log to local host ubuntu?

Thanks,
Khadar

Mani Sadhasivam • 8 years ago

Hi Khadar,

I personally recommend rsync to transfer any files. First create a static ip for BBB-usb and then use ssh to transfer files over rsync. It is more reliable.

In a simple way, you can mount sd card and then copy the file.

Khadar Basha Shaik • 8 years ago

Hi Mani,

Do you know how can we build BBB linux kernel without device tree? If yes, can you share me the procedure?

Thanks,
Khadar

Abhilash • 8 years ago

Hi Mani , your article is great .Thanks for the article.
Where to place the u-boot files i.e MLO and u-boot.bin. Should that be placed in BOOT partition?

Mani Sadhasivam • 8 years ago

Hi Abhilash,

In this article, Uboot binaries were not taken into account. I just showed how to build Uboot for BBB. We're using existing Uboot to boot our custom kernel. However, if you wanna use your compiled Uboot you can place MLO and uboot.bin in BOOT partition

Abhilash • 8 years ago

Hi Mani,
Thnaks for the quick reply.
I was able to boot into kernel with the old u-boot present in the beaglebone black.Then i wiped eMMC content . Then i copied MLO and u-boot.bin to BOOT partition of sd card. But the board is not booting. Only 'C' appears on terminal.Are you sure we need to copy MLO and u-boot.bin to BOOT directory.

Mani Sadhasivam • 8 years ago

Yes... MLO and boot.bin should be in BOOT partition of sd card. BBB's boot ROM code will try to fetch first stage bootloader aka. MLO from any of the available options. 'ccccc' mentions that it is trying to boot from UART. If you have formatted the sd card correctly and placed the MLO in FAT32 partition (BOOT), it should have found it.

Also, you need to press boot switch(sw2) while powering up BBB. Make sure you are setting 'boot' flag for the BOOT partition in Gparted.

Abhilash • 8 years ago

Hi Mani,
I am now able to boot from the sd card. But u-boot.bin did not work.
Instead if we use u-boot.img then it would work.
I will just tell what i did so that it will help others.

In FAT32 partition i.e BOOT copy this files. Remember to mark this partition as boot.

MLO
u-boot.img

uImage
am335x-boneblack.dtb
uEnv.txt
In RFS its same as mentioned in this post.

Mani Sadhasivam • 8 years ago

Yeah... That's a typo which I didn't catch, it should be u-boot.img

Thanks,
Mani.

Yasir Awais Butt • 9 years ago

Hi there,
I am new to linux world and might sound ignorant.
I have completed all steps and have booted the board. I now want to install native gcc on BBB by compiling it on a ubuntu machine and then putting it on the custom kernel compiled using this tutorial just as an exercise. Is this possible? Also I want to add a package manager. Can someone please provide link to a similar tutorial. I am new to linux world and have been unable to find a resource.

Mani Sadhasivam • 8 years ago

Hello Yasir,

Please refer this article:

http://preshing.com/2014111...

Just change the target platform as ARM and follow the steps.

Thanks,
Mani

Microprocessor • 9 years ago

I completed all steps successfully but the board does not boot the kernel.

Mani Sadhasivam • 9 years ago

You need to hold the Boot Switch (SW2) while powering up BBB.

AndyM • 9 years ago

Was the follow up article on creating a customized RFS written?
Thanks

Yasir Awais Butt • 9 years ago

I had the same problem. Solved it. In the uEnv.txt add these lines at the top:
loadaddr=0x82000000
fdtaddr=0x88000000

You see that the we are specifying that ${loadaddr} uImage but the environment variable loadaddr is not defined. Same for fdtaddr. Still better make the simplest uEnv.txt as fol:

loadaddr=0x82000000
fdtaddr=0x88000000
console=tty0,115200n8
mmcroot=/dev/mmcblk0p2
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=ext4}

This will boot the device. See even in this case uEnv.txt will need to specify these addresses.

Mani Sadhasivam • 9 years ago

Uboot will load environment variable from Flash memory to RAM while booting. If it is unable to find valid env from flash, it will load its default environment. For checking the env variables, interrupt uboot by pressing SPACE button and type printenv. This will print all environment variables loaded into the memory.

If you are specifying loadaddr in uEnv.txt file, it will override the default value. Here, it should be defined by default so only I've referenced as ${loadaddr}. The same case applies for fdtaddr also.

Yasir Awais Butt • 9 years ago

Thanks bro for explanation. However, I did try to boot with the default values and the kernel booting stopped at Starting Kernel...
All LEDs became solid. Initially I thought it was a problem with specifying the serial port, but, after some experimentation I got to this solution. I however agree that default values should have worked. Other than that, the tutorial is perfect.