We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.
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.
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 ?
A quick look suggests that you should use `am335x_evm_defconfig`.
The kernel has a big update, all files in the folder arch/arm/configs/ have been changed. Can you help me again ? Thanks
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
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.
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...
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,
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.
Hi Siddharth,
I am still facing the same issue. I tried with different SD card/reader also same issue observed.
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
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.
apt and dpkg is not working on above kernel.
Can you suggest how to fix the is
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.
Minicom was not able to connect when I was typing sudo minicom the result was cannot open /dev/ttyACM0: No such file or directory.
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?
Good
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
forget about it.... has no password and username is root
:)
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?
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!
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.
How about using 'dmesg' command?
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
Please disconnect ethernet cable if you have connected during boot. Since we are not enabling network boot here it might be waiting for data.
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.
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
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.
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
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
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
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.
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
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.
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
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?
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
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.
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.
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.
Yeah... That's a typo which I didn't catch, it should be u-boot.img
Thanks,
Mani.
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.
Hello Yasir,
Please refer this article:
http://preshing.com/2014111...
Just change the target platform as ARM and follow the steps.
Thanks,
Mani
I completed all steps successfully but the board does not boot the kernel.
You need to hold the Boot Switch (SW2) while powering up BBB.
Was the follow up article on creating a customized RFS written?
Thanks
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.
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.
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.
this kernel image can run in qemu