Difference between revisions of "BeagleBoardDebian"

From eLinux.org
Jump to: navigation, search
(better picture.)
 
(545 intermediate revisions by 31 users not shown)
Line 1: Line 1:
 
[[Category: Linux]]
 
[[Category: Linux]]
 
[[Category: OMAP]]
 
[[Category: OMAP]]
 +
[[Category:Development Boards]]
 +
[[Category: BeagleBoard]]
 +
This page is about running a (ARM EABIhf) [https://www.debian.org/ Debian] distribution at [[BeagleBoard]]. BeagleBoard will boot the (ARM EABIhf) Debian distribution from [[BeagleBoard#MMC.2FSD_boot|SD card]]. Debian's NetInstall will be used to install Debian onto your Beagle.
  
This page is about running a (ARM EABI) [http://www.debian.org/ Debian] distribution at [[BeagleBoard]]. BeagleBoard will boot the (ARM EABI) Debian distribution from [[BeagleBoard#MMC.2FSD_boot|SD card]]. To prepare the SD card and install (ARM EABI) Debian on it, [http://bellard.org/qemu/ QEMU] on host PC will be used, following Aurélien Jarno's excellent [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine] howto.
+
Note: Original Beagleboards work with the Debian Console image booted via holding user button down. Last tested 05/2020. Ref: https://github.com/beagleboard/Latest-Images/issues/48
  
= QEMU =
+
= Help =
  
Install QEMU on your host PC. This assumes that your host PC is running Debian as well. If not, install QEMU the way your host PC distribution uses.
+
If you need any help:
apt-get install qemu
 
Note: If your debian armel image crashes while fscking the partition, rebuild qemu from trunk.
 
  
==Format SD Card==
+
*Kernel related help:
 +
** [https://groups.google.com/group/beagleboard Email Beagleboard user group] *Recommended method
 +
** ''#beagle'': Beagle irc on freenode, accessible also by [http://beagleboard.org/discuss web interface] ([http://www.beagleboard.org/irclogs/index.php logs])
 +
** Kernel Trees
 +
*** [https://github.com/RobertCNelson/armv7-multiplatform/ v5.4.x kernel branch]
 +
*** [https://github.com/RobertCNelson/bb-kernel/ BeagleBone]
 +
*** [https://github.com/RobertCNelson/linux-dev Development Kernel source code]
 +
 
 +
*When asking for help, please provide some debugging information:
 +
** U-Boot Version installed on board
 +
** Kernel Version: uname -a
 +
** pastebin dmesg
 +
*** Copy from serial port or use "dmesg | pastebinit" (sudo apt-get install pastebinit)
 +
 
 +
= Official BeagleBoard.org Images for shipping with BeagleBone Black =
 +
* http://beagleboard.org/source
 +
 
 +
= Recommended Beagle Software =  
 +
 
 +
Mainline U-Boot:
 +
* All old Ax, Bx, Cx and Dx boards are required to upgrade to at least these U-Boot versions.
 +
* XM Boards have no NAND, so MLO/u-boot.img is always required on the first partition
 +
* Directions: [http://elinux.org/BeagleBoardUbuntu#Upgrade_X-loader_and_U-boot Upgrade X-loader and U-Boot]
 +
 
 +
= Debian NetInstall =
 +
 
 +
Scripts:
 +
git clone https://github.com/RobertCNelson/netinstall.git
 +
cd netinstall
 +
 
 +
Device Options:
 +
BeagleBoard --dtb omap3-beagle
 +
BeagleBoard-xM --dtb omap3-beagle-xm
 +
BeagleBoard-X15 --dtb am57xx-beagle-x15
 +
BeagleBone (serial) --dtb am335x-bone-serial
 +
BeagleBone (video via cape) --dtb am335x-bone-video
 +
BeagleBone Black --dtb am335x-boneblack
 +
PandaBoard (A1->A3) --dtb omap4-panda
 +
PandaBoard (A4->Ax) --dtb omap4-panda-a4
 +
PandaBoard ES  --dtb omap4-panda-es
  
 
You will need a 1GB SD card or greater.
 
You will need a 1GB SD card or greater.
 
  Standard System : ~455MB
 
  Standard System : ~455MB
+ Desktop environment (GNOME) : ~2.9GB
 
  
Currently (Aug 15, 2008) ext2load doesn't seem to work in the current u-boot beagle board git repo. For the moment follow the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat LinuxBootDisk guide] to setup a 50-100MB FAT partition on your SD Card to use u-boot's fatload.
+
== Debian 10 (buster) ==
 +
 
 +
Quick Install script for "board"
 +
sudo ./mk_mmc.sh --mmc /dev/sdX --dtb "board" --distro stretch
 +
 
 +
So For the BeagleBoard xM:
 +
sudo ./mk_mmc.sh --mmc /dev/sdX --dtb omap3-beagle-xm --distro stretch
 +
 
 +
*Options:
 +
**--firmware : installs firmware
 +
**--serial-mode : debian-installer uses Serial Port
 +
 
 +
= Demo Image =
 +
 
 +
* '''Advanced Users only''': BeagleBoard xM: Kernel source, used in these demo images: https://github.com/RobertCNelson/armv7-multiplatform
 +
git clone https://github.com/RobertCNelson/armv7-multiplatform.git
 +
cd armv7-multiplatform
 +
git checkout origin/v5.4.x -b tmp
 +
./build_kernel.sh
 +
* '''Advanced Users only''': BeagleBone/BeagleBone Black/PocketBeagle:  Kernel v4.19.x source, used in these demo images: https://github.com/RobertCNelson/ti-linux-kernel-dev/tree/ti-linux-4.19.y
 +
git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
 +
cd ti-linux-kernel-dev
 +
git checkout origin/ti-linux-4.19.y -b tmp
 +
./build_kernel.sh
 +
 
 +
== Debian (buster) ==
 +
 
 +
Default username/password:
 +
*username: debian
 +
*password: temppwd
 +
 
 +
Image Updated:
 +
*2020-03-12
 +
** BeagleBoard xM: v5.4.24-armv7-x20 kernel
 +
** All BeagleBone Variants and PocketBeagle: v4.19.94-ti-r36 kernel
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
 +
*2019-04-10
 +
** BeagleBoard xM: v4.19.31-armv7-x31 kernel
 +
** All BeagleBone Variants and PocketBeagle: v4.14.108-ti-r104 kernel
 +
** BeagleBoard-X15: v4.14.108-ti-r104 kernel
 +
*2018-12-10
 +
** BeagleBoard xM: v4.19.8-armv7-x11 kernel
 +
** All BeagleBone Variants and PocketBeagle: v4.14.79-ti-r84 kernel
 +
** BeagleBoard-X15: v4.14.79-ti-r84 kernel
 +
 
 +
Services Active:
 +
Note: Depending on your internal network these may work out of the box
 +
Apache, Port 80: http://arm.local/ (Bone: via usb) (Windows/Linux) http://192.168.7.2, (Mac/Linux) http://192.168.6.2
 +
SSH, Port 22: ssh debian@arm.local (Bone: via usb) (Windows/Linux) debian@192.168.7.2, (Mac/Linux) debian@192.168.6.2
 +
Getty, Serial Port
 +
 
 +
Default user: debian pass: temppwd
 +
 
 +
Get prebuilt image:
 +
wget https://rcn-ee.com/rootfs/2020-03-12/elinux/debian-10.3-console-armhf-2020-03-12.tar.xz
  
Using fdisk and dosfstools on your SD card "/dev/sdX" or use fdisk -l to find device name.
+
Verify Image with:
 +
sha256sum debian-10.3-console-armhf-2020-03-12.tar.xz
 +
b6f1ca53d67554d0381ca59fe9ecd50b5013a073abd2b2e133aa8be1784cdbc6  debian-10.3-console-armhf-2020-03-12.tar.xz
  
  fdisk /dev/sdX
+
Unpack Image:
 +
  tar xf debian-10.3-console-armhf-2020-03-12.tar.xz
 +
cd debian-10.3-console-armhf-2020-03-12
  
Delete all partitions and create a new 50MB FAT partition for uImage
+
If you don't know the location of your SD card:
 +
sudo ./setup_sdcard.sh --probe-mmc
  
  Disk /dev/sdX: 2038 MB, 2038431744 bytes
+
You should see something like:
255 heads, 63 sectors/track, 247 cylinders
+
 
Units = cylinders of 16065 * 512 = 8225280 bytes
+
  Are you sure? I don't see [/dev/idontknow], here is what I do see...
Disk identifier: 0x0008e471
 
 
   
 
   
  Device Boot      Start        End      Blocks  Id System
+
  fdisk -l:
 +
Disk /dev/sda: 500.1 GB, 500107862016 bytes '''<- x86 Root Drive'''
 +
Disk /dev/sdd: 3957 MB, 3957325824 bytes '''<- MMC/SD card'''
 
   
 
   
  Command (m for help): n
+
  lsblk:
  Command action
+
  NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   e   extended
+
sda      8:0   0 465.8G  0 disk
   p   primary partition (1-4)
+
├─sda1   8:1    0 446.9G  0 part /  '''<- x86 Root Partition'''
  p
+
├─sda2  8:2    0    1K  0 part
  Partition number (1-4): 1
+
└─sda5  8:5   0  18.9G  0 part [SWAP]
  First cylinder (1-247, default 1):  
+
sdd      8:48   1   3.7G  0 disk
  Using default value 1
+
  ├─sdd1  8:49  1    64M  0 part
  Last cylinder or +size or +sizeM or +sizeK (1-247, default 247): +50M
+
  └─sdd2  8:50  1   3.6G  0 part
   
+
 
  Command (m for help): t
+
* In this example, we can see via mount, '''/dev/sda1''' is the x86 rootfs, therefore '''/dev/sdd''' is the other drive in the system, which is the MMC/SD card that was inserted and should be used by ./setup_sdcard.sh...
Selected partition 1
+
 
  Hex code (type L to list codes): c
+
Install Image:
  Changed system type of partition 1 to c (W95 FAT32 (LBA))
+
 
   
+
Quick install script for [board]
  Command (m for help): a
+
sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb board
  Partition number (1-4): 1
+
 
   
+
board options:
  Command (m for help): w
+
*BeagleBoard Ax/Bx/Cx/Dx          - omap3-beagle
  The partition table has been altered!
+
*BeagleBoard xM                  - omap3-beagle-xm
   
+
*All BeagleBone Variants          - beaglebone
  Calling ioctl() to re-read partition table.
+
*OMAP5432 uEVM                    - omap5-uevm
 +
*BeagleBoard-X15 (BeagleBone AI) - am57xx-beagle-x15
 +
 
 +
So for the BeagleBoard xM:
 +
  sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb omap3-beagle-xm
 +
 
 +
Advanced: Build Image:
 +
 
 +
git clone https://github.com/RobertCNelson/omap-image-builder.git
 +
cd omap-image-builder
 +
  git checkout v2020.03 -b tmp
 +
 
 +
Stable:
 +
 
 +
  ./RootStock-NG.sh -c rcn-ee_console_debian_buster_armhf
 +
 
 +
= Flasher =
 +
 
 +
== eMMC: All BeagleBone Variants with eMMC ==
 +
 
 +
This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io  First press and hold the boot select button (next to the microSD card), then apply power. On boot-up the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the Ethernet jack. Progress is reported on both the serial debug and HDMI connectors, once completed all 4 LED's should be full ON.  Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.
 +
 
 +
Script for reference: (this is the script that writes to the eMMC)
 +
https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh
 +
 
 +
This script will only take about 5-6 Minutes after power on.
 +
 
 +
Notes:
 +
* If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
 +
* If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.
 +
 
 +
User: debian
 +
pass: temppwd
 +
 
 +
Image Updated:
 +
*2020-03-12
 +
** All BeagleBone Variants with eMMC: v4.19.94-ti-r36 kernel
 +
*2019-04-10
 +
** All BeagleBone Variants with eMMC: v4.14.108-ti-r104 kernel
 +
*2018-12-10
 +
** All BeagleBone Variants with eMMC: v4.14.79-ti-r84 kernel
 +
 
 +
Get prebuilt image:
 +
wget https://rcn-ee.com/rootfs/2020-03-12/flasher/bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Verify Image with:
 +
  sha256sum bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb*
 +
12a449c3426d811765e8ef0236ae3ddc74fc645a482640984435452929ebf55d  bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Windows/Mac/Linux gui
 +
  http://etcher.io
 +
 
 +
Linux: (dd)
 +
xzcat bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX
 +
 
 +
== eMMC: BeagleBoard-X15 and BeagleBone AI ==
 +
 
 +
This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io First press and hold the boot select button (next to the microSD card), then apply power. On boot-up the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the Ethernet jack. Progress is reported on both the serial debug and HDMI connectors, once completed all 4 LED's should be full ON.  Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.
 +
 
 +
Script for reference: (this is the script that writes to the eMMC)
 +
  https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh
 +
 
 +
This script will only take about 5-6 Minutes after power on.
 +
 
 +
Notes:
 +
* If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
 +
* If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.
 +
 
 +
User: debian
 +
pass: temppwd
 +
 
 +
Image Updated:
 +
*2020-03-12
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
 +
*2019-04-10
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.14.108-ti-r104 kernel
 +
*2018-12-10
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.14.79-ti-r84 kernel
 +
 
 +
Get prebuilt image:
 +
  wget https://rcn-ee.com/rootfs/2020-03-12/flasher/am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Verify Image with:
 +
  sha256sum am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb*
 +
b2d4600cfbeaad90e9d634f8f9671be1223d235e6581aac82897d3f28076d338  am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Windows/Mac/Linux gui
 +
http://etcher.io
 +
 
 +
Linux: (dd)
 +
  xzcat am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX
 +
 
 +
= raw microSD img =
 +
 
 +
== BeagleBoard xM ==
 +
 
 +
This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io
 +
 
 +
User: debian
 +
pass: temppwd
 +
 
 +
Auto partition resize:
 +
  cd /opt/scripts/tools
 +
git pull
 +
./grow_partition.sh
 +
  sudo reboot
 +
 
 +
Image Updated:
 +
*2020-03-12
 +
** BeagleBoard xM: v5.4.24-armv7-x20 kernel
 +
*2019-04-10
 +
** BeagleBoard xM: v4.19.31-armv7-x31 kernel
 +
*2018-12-10
 +
** BeagleBoard xM: v4.19.8-armv7-x11 kernel
 +
 
 +
Get prebuilt image:
 +
  wget https://rcn-ee.com/rootfs/2020-03-12/microsd/bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Verify Image with:
 +
  sha256sum bbxm-debian-10.3-console-armhf-2020-03-12-2gb*
 +
  864cd6a45179e87c68087150597e18a1c12c81621da7735ee8d5c35094423845  bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
 +
 
 +
Windows/Mac/Linux gui
 +
http://etcher.io
  
Format the 1st partition with dosfstools
+
Linux: (dd)
 +
xzcat bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX
  
  mkfs.msdos -F 32 /dev/sdX1
+
== All BeagleBone Variants and PocketBeagle==
  
For reference, a 2GB sd card will look like this:
+
This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io
  
Disk /dev/sdb: 2038 MB, 2038431744 bytes
+
User: debian
255 heads, 63 sectors/track, 247 cylinders
+
pass: temppwd
Units = cylinders of 16065 * 512 = 8225280 bytes
 
Disk identifier: 0x0008e471
 
 
  Device Boot      Start        End      Blocks  Id  System
 
/dev/sdb1  *          1          7      56196    c  W95 FAT32 (LBA)
 
  
NOTE: For some reason, on my 256 MB SD card, I had to have End >= 5 AND odd for /dev/sde1 (ie. 6 did not work)
+
Auto partition resize:
 +
cd /opt/scripts/tools
 +
git pull
 +
./grow_partition.sh
 +
sudo reboot
  
==Preparation==
+
Image Updated:
 +
*2020-03-12
 +
** All BeagleBone Variants and PocketBeagle: v4.19.94-ti-r36 kernel
 +
*2019-04-10
 +
** All BeagleBone Variants and PocketBeagle: v4.14.108-ti-r104 kernel
 +
*2018-12-10
 +
** All BeagleBone Variants and PocketBeagle: v4.14.79-ti-r84 kernel
  
Create a working directory to keep your files organized.
+
Get prebuilt image:
 +
wget https://rcn-ee.com/rootfs/2020-03-12/microsd/bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
  
  mkdir debian-armel
+
Verify Image with:
cd debian-armel/
+
  sha256sum bone-debian-10.3-console-armhf-2020-03-12-2gb*
wget ftp://ftp.us.debian.org/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/initrd.gz
+
  6d898c473edc8a50597ed7da8342c899d88e07b8a6b4c7c143257e947cb5f52d  bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
  wget ftp://ftp.us.debian.org/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.24-1-versatile
 
  
==Install Debian==
+
Windows/Mac/Linux gui
 +
http://etcher.io
  
To install (ARM EABI) Debian inside QEMU:
+
Linux: (dd)
 +
xzcat bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX
  
sudo qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.24-1-versatile -initrd initrd.gz -m 256 -hda /dev/sdX -append "root=/dev/ram mem=256M"
+
== BeagleBoard-X15 and BeagleBone AI==
Note: root/sudo access is required to access /dev/sde directly & verify /dev/sdX with fdisk -l
 
  
Partition disks, default settings should work for most: Guided - use the largest continuous free space
+
This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io
  
[[Image:Beagleboarddebian-partitiondisk.png]]
+
User: debian
 +
pass: temppwd
  
==Running Debian==
+
Auto partition resize:
 +
cd /opt/scripts/tools
 +
git pull
 +
./grow_partition.sh
 +
sudo reboot
  
sudo qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.24-1-versatile -m 256 -hda /dev/sde -append "root=/dev/sda2 mem=256M"
+
Image Updated:
 +
*2020-03-12
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
 +
*2019-04-10
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.14.108-ti-r104 kernel
 +
*2018-12-10
 +
** BeagleBoard-X15 (and BeagleBone AI): v4.14.79-ti-r84 kernel
  
Note: Time will be incorrect.  
+
Get prebuilt image:
 +
wget https://rcn-ee.com/rootfs/2020-03-12/microsd/am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
  
login as root, change password
+
Verify Image with:
  apt-get install ntpdate
+
  sha256sum am57xx-debian-10.3-console-armhf-2020-03-12-2gb*
  ntpdate pool.ntp.org
+
  24bfaeac8d90ebd36790ba4c04a4117fe8c2e7aa28de5d1ff0a5ab164e32bb90 am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz
  reboot.. relogin change password...
 
  
Install default deb packages for linux-image & linux-headers
+
Windows/Mac/Linux gui
+
  http://etcher.io
wget http://www.rcn-ee.com/code/beagle/debian/lenny/2.6.26-omap1-oer61-test/linux-headers-2.6.26-omap1-oer61_2.6.26-omap1-oer61-10.00.Custom_armel.deb
 
  wget http://www.rcn-ee.com/code/beagle/debian/lenny/2.6.26-omap1-oer61-test/linux-image-2.6.26-omap1-oer61_2.6.26-omap1-oer61-10.00.Custom_armel.deb
 
sudo dpkg -i *.deb
 
  
Stop QEMU and remount SD card to copy uImage to FAT partition:
+
Linux: (dd)
 +
xzcat am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX
  
cd /media/disk-1/
 
wget http://www.rcn-ee.com/code/beagle/debian/lenny/2.6.26-omap1-oer61-test/uImage
 
  
=Beagleboard=
+
= Debian Configuration =
  
Insert SD Card and power up Beagleboard.
+
==Install Latest Kernel Image==
  
==Boot==
+
General apt syntax for searching and installing a specific kernel:
 +
sudo apt-get update
 +
sudo apt-cache search linux-image | grep <branch>
 +
sudo apt-get install linux-image-<specific version>
 +
sudo reboot
  
Using a serial program, stop u-boot and add these commands:
+
Latest kernel script
 +
cd /opt/scripts/tools/
 +
git pull
 +
sudo ./update_kernel.sh <OPTIONS>
  
  setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
+
== 4.19.x-ti ==
  setenv bootargs 'console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 rw rootdelay=5 nohz=off'
+
  beagleboard.org patchset: https://github.com/beagleboard/linux/tree/4.19
boot
+
  Based on: http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=shortlog;h=refs/heads/ti-linux-4.19.y
  
To force the Beagleboard to always boot the sd card image:
+
4.19.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15
 +
--ti-channel --lts-4_19
  
  setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
+
  4.19.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15 + RT
setenv bootargs 'console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 rw rootdelay=5 nohz=off'
+
  --ti-rt-channel --lts-4_19
saveenv
 
  boot
 
  
Note: 'rootwait' only works with newer kernels, for 2.6.22.18-omap3 use 'rootdelay=5', otherwise this error:
+
== Mainline (4.19.x lts) ==
VFS: Cannot open root device "mmcblk0p2" or unknown-block(2,0)
 
Please append a correct "root=" boot option; here are the available partitions:
 
1f00        512 mtdblock01f00        512 mtdblock0 (driver?)
 
1f01      1920 mtdblock11f01      1920 mtdblock1 (driver?)
 
1f02        128 mtdblock21f02        128 mtdblock2 (driver?)
 
1f03      5120 mtdblock31f03      5120 mtdblock3 (driver?)
 
1f04    254464 mtdblock41f04    254464 mtdblock4 (driver?)
 
  
 +
4.19.x BeagleBone/BeagleBone Black
 +
--bone-kernel --lts-4_19
  
==Debian on Beagleboard==
+
4.19.x BeagleBone/BeagleBone Black + RT
 +
--bone-rt-kernel --lts-4_19
  
Debian on BeagleBoard uses the following configuration:
+
== Debian 9: stretch ==
 +
sudo apt-get install linux-image-armmp
  
* Console log = Serial Terminal
+
Reboot with your new Kernel Image.
* User Console = HDMI port + usb (keyboard, mouse, etc)
 
  
===Xorg===
+
== Xorg Drivers ==
Modify /etc/X11/xorg.conf
 
Section "Device"
 
Identifier "Configured Video Device"
 
Option "UseFBDev" "true"
 
Driver "fbdev"
 
EndSection
 
  
[[Image:Beagleboarddebian-GNOME.jpg]]
+
Script:
 +
cd /opt/scripts/tools/
 +
git pull
  
Note: fbdev is very *slow* since the arm core is currently processing the screen...
+
BeagleBoard/PandaBoard:
 +
cd /opt/scripts/tools/graphics/
 +
./ti-omapdrm.sh
  
=Current Issues=
+
BeagleBone/BeagleBone Black:
 +
cd /opt/scripts/tools/graphics/
 +
./ti-tilcdc.sh
  
#Swap disabled: change /dev/hda5 -> /dev/mmcblk0p5 in /etc/fstab (artifact of qemu install to /dev/hdaX)
+
== SGX Drivers ==
#RTC seems to be not enabled: use ntpdate when ethernet works, or issue date MMDDHHMMYYYY
 
  
=Building a Native Debian Kernel with QEMU=
+
=== SGX BeagleBone/BeagleBone Black ===
  
==Install Dependencies==
+
[[BeagleBoneBlack/SGX_%2B_Qt_EGLFS_%2B_Weston|A page is dedicated for the installation and use of the graphics accelerator]].
 
apt-get install git-core kernel-package fakeroot build-essential curl libncurses-dev
 
  
==u-boot==
+
= Building Kernel =
  
wget -nc http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz
+
Note, this section use to have a lot of details, but maintenance of the two wiki's became a pain, so for now on we will just link to my other pages:
tar -xf u-boot_beagle_revb.tar.gz
 
cd u-boot/
 
make CROSS_COMPILE= distclean
 
make CROSS_COMPILE= omap3530beagle_config
 
make CROSS_COMPILE= tools
 
  
Add /tools/ to $PATH
+
== Beagle/Beagle xM ==
  PATH=/home/<user>/u-boot/tools:"${PATH}"
+
  http://eewiki.net/display/linuxonarm/BeagleBoard
  
==Linux Kernel==
+
== BeagleBone ==
 +
http://eewiki.net/display/linuxonarm/BeagleBone
  
  git clone git://git2.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
+
== BeagleBone Black ==
cd linux-omap-2.6/
+
  http://eewiki.net/display/linuxonarm/BeagleBone+Black
git checkout -b beagle <tag>
 
  
Patch Kernel as you see fit
+
== Panda/Panda ES ==
  patch -p1 < ../patches/*.patch
+
  http://eewiki.net/display/linuxonarm/PandaBoard
  
Setup Kernel .config
+
= Upgrading from Debian 5 to Debian 6 =
make CROSS_COMPILE= distclean
 
make CROSS_COMPILE= omap3_beagle_defconfig
 
  
Create Debian linux-image* & linux-headers* Package
+
[http://www.jeremycole.com/blog/2011/03/09/beagleboard-upgrading-from-debian-5-to-debian-6/ Upgrading] from Debian 5 to Debian 6 report and tutorial.
make-kpkg --cross_compile - clean
 
CONCURRENCY_LEVEL=1 fakeroot make-kpkg --cross_compile - --initrd kernel_image kernel_headers
 
  
Create U-boot uImage
+
= Upgrading from Debian 6 (Squeeze) to Debian 7 (Wheezy) =
make CROSS_COMPILE= uImage
 
  
Issues:
+
Note, this only goes over "armel" -> "armel"... For users wishing to switch from "armel" -> "armhf" just re-install...
Debian's gcc-4.3 will fail to build a bootable uImage, so use gcc-4.2 as gcc thru 'update-alternatives'
 
  
==Successfully Built Images==
+
sudo apt-get update ; sudo apt-get upgrade
[http://www.rcn-ee.com/code/beagle/debian/lenny/ Example Debian Lenny Kernel Images]
+
sudo sed -i -e "s/squeeze/wheezy/g" /etc/apt/sources.list
 +
sudo apt-get update ; sudo apt-get install -y apt aptitude udev dpkg
 +
sudo aptitude update ; sudo aptitude -y safe-upgrade ; sudo aptitude -y dist-upgrade

Latest revision as of 22:01, 29 May 2020

This page is about running a (ARM EABIhf) Debian distribution at BeagleBoard. BeagleBoard will boot the (ARM EABIhf) Debian distribution from SD card. Debian's NetInstall will be used to install Debian onto your Beagle.

Note: Original Beagleboards work with the Debian Console image booted via holding user button down. Last tested 05/2020. Ref: https://github.com/beagleboard/Latest-Images/issues/48

Help

If you need any help:

  • When asking for help, please provide some debugging information:
    • U-Boot Version installed on board
    • Kernel Version: uname -a
    • pastebin dmesg
      • Copy from serial port or use "dmesg | pastebinit" (sudo apt-get install pastebinit)

Official BeagleBoard.org Images for shipping with BeagleBone Black

Recommended Beagle Software

Mainline U-Boot:

  • All old Ax, Bx, Cx and Dx boards are required to upgrade to at least these U-Boot versions.
  • XM Boards have no NAND, so MLO/u-boot.img is always required on the first partition
  • Directions: Upgrade X-loader and U-Boot

Debian NetInstall

Scripts:

git clone https://github.com/RobertCNelson/netinstall.git
cd netinstall

Device Options:

BeagleBoard --dtb omap3-beagle
BeagleBoard-xM --dtb omap3-beagle-xm
BeagleBoard-X15 --dtb am57xx-beagle-x15
BeagleBone (serial) --dtb am335x-bone-serial
BeagleBone (video via cape) --dtb am335x-bone-video
BeagleBone Black --dtb am335x-boneblack
PandaBoard (A1->A3) --dtb omap4-panda
PandaBoard (A4->Ax) --dtb omap4-panda-a4
PandaBoard ES  --dtb omap4-panda-es

You will need a 1GB SD card or greater.

Standard System : ~455MB

Debian 10 (buster)

Quick Install script for "board"

sudo ./mk_mmc.sh --mmc /dev/sdX --dtb "board" --distro stretch

So For the BeagleBoard xM:

sudo ./mk_mmc.sh --mmc /dev/sdX --dtb omap3-beagle-xm --distro stretch
  • Options:
    • --firmware : installs firmware
    • --serial-mode : debian-installer uses Serial Port

Demo Image

git clone https://github.com/RobertCNelson/armv7-multiplatform.git
cd armv7-multiplatform
git checkout origin/v5.4.x -b tmp
./build_kernel.sh
git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
cd ti-linux-kernel-dev
git checkout origin/ti-linux-4.19.y -b tmp
./build_kernel.sh

Debian (buster)

Default username/password:

  • username: debian
  • password: temppwd

Image Updated:

  • 2020-03-12
    • BeagleBoard xM: v5.4.24-armv7-x20 kernel
    • All BeagleBone Variants and PocketBeagle: v4.19.94-ti-r36 kernel
    • BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
  • 2019-04-10
    • BeagleBoard xM: v4.19.31-armv7-x31 kernel
    • All BeagleBone Variants and PocketBeagle: v4.14.108-ti-r104 kernel
    • BeagleBoard-X15: v4.14.108-ti-r104 kernel
  • 2018-12-10
    • BeagleBoard xM: v4.19.8-armv7-x11 kernel
    • All BeagleBone Variants and PocketBeagle: v4.14.79-ti-r84 kernel
    • BeagleBoard-X15: v4.14.79-ti-r84 kernel

Services Active:

Note: Depending on your internal network these may work out of the box
Apache, Port 80: http://arm.local/ (Bone: via usb) (Windows/Linux) http://192.168.7.2, (Mac/Linux) http://192.168.6.2
SSH, Port 22: ssh debian@arm.local (Bone: via usb) (Windows/Linux) debian@192.168.7.2, (Mac/Linux) debian@192.168.6.2
Getty, Serial Port

Default user: debian pass: temppwd

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/elinux/debian-10.3-console-armhf-2020-03-12.tar.xz

Verify Image with:

sha256sum debian-10.3-console-armhf-2020-03-12.tar.xz
b6f1ca53d67554d0381ca59fe9ecd50b5013a073abd2b2e133aa8be1784cdbc6  debian-10.3-console-armhf-2020-03-12.tar.xz

Unpack Image:

tar xf debian-10.3-console-armhf-2020-03-12.tar.xz
cd debian-10.3-console-armhf-2020-03-12

If you don't know the location of your SD card:

sudo ./setup_sdcard.sh --probe-mmc

You should see something like:

Are you sure? I don't see [/dev/idontknow], here is what I do see...

fdisk -l:
Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive
Disk /dev/sdd: 3957 MB, 3957325824 bytes <- MMC/SD card

lsblk:
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0 446.9G  0 part /  <- x86 Root Partition
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0  18.9G  0 part [SWAP]
sdd      8:48   1   3.7G  0 disk 
├─sdd1   8:49   1    64M  0 part 
└─sdd2   8:50   1   3.6G  0 part 
  • In this example, we can see via mount, /dev/sda1 is the x86 rootfs, therefore /dev/sdd is the other drive in the system, which is the MMC/SD card that was inserted and should be used by ./setup_sdcard.sh...

Install Image:

Quick install script for [board]

sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb board

board options:

  • BeagleBoard Ax/Bx/Cx/Dx - omap3-beagle
  • BeagleBoard xM - omap3-beagle-xm
  • All BeagleBone Variants - beaglebone
  • OMAP5432 uEVM - omap5-uevm
  • BeagleBoard-X15 (BeagleBone AI) - am57xx-beagle-x15

So for the BeagleBoard xM:

sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb omap3-beagle-xm

Advanced: Build Image:

git clone https://github.com/RobertCNelson/omap-image-builder.git
cd omap-image-builder
git checkout v2020.03 -b tmp

Stable:

./RootStock-NG.sh -c rcn-ee_console_debian_buster_armhf

Flasher

eMMC: All BeagleBone Variants with eMMC

This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io First press and hold the boot select button (next to the microSD card), then apply power. On boot-up the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the Ethernet jack. Progress is reported on both the serial debug and HDMI connectors, once completed all 4 LED's should be full ON. Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.

Script for reference: (this is the script that writes to the eMMC)

https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh

This script will only take about 5-6 Minutes after power on.

Notes:

  • If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
  • If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.

User: debian pass: temppwd

Image Updated:

  • 2020-03-12
    • All BeagleBone Variants with eMMC: v4.19.94-ti-r36 kernel
  • 2019-04-10
    • All BeagleBone Variants with eMMC: v4.14.108-ti-r104 kernel
  • 2018-12-10
    • All BeagleBone Variants with eMMC: v4.14.79-ti-r84 kernel

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/flasher/bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Verify Image with:

sha256sum bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb*
12a449c3426d811765e8ef0236ae3ddc74fc645a482640984435452929ebf55d  bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Windows/Mac/Linux gui

http://etcher.io

Linux: (dd)

xzcat bone-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX

eMMC: BeagleBoard-X15 and BeagleBone AI

This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io First press and hold the boot select button (next to the microSD card), then apply power. On boot-up the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the Ethernet jack. Progress is reported on both the serial debug and HDMI connectors, once completed all 4 LED's should be full ON. Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.

Script for reference: (this is the script that writes to the eMMC)

https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh

This script will only take about 5-6 Minutes after power on.

Notes:

  • If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
  • If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.

User: debian pass: temppwd

Image Updated:

  • 2020-03-12
    • BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
  • 2019-04-10
    • BeagleBoard-X15 (and BeagleBone AI): v4.14.108-ti-r104 kernel
  • 2018-12-10
    • BeagleBoard-X15 (and BeagleBone AI): v4.14.79-ti-r84 kernel

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/flasher/am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Verify Image with:

sha256sum am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb*
b2d4600cfbeaad90e9d634f8f9671be1223d235e6581aac82897d3f28076d338  am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Windows/Mac/Linux gui

http://etcher.io

Linux: (dd)

xzcat am57xx-eMMC-flasher-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX

raw microSD img

BeagleBoard xM

This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize:

cd /opt/scripts/tools
git pull
./grow_partition.sh
sudo reboot

Image Updated:

  • 2020-03-12
    • BeagleBoard xM: v5.4.24-armv7-x20 kernel
  • 2019-04-10
    • BeagleBoard xM: v4.19.31-armv7-x31 kernel
  • 2018-12-10
    • BeagleBoard xM: v4.19.8-armv7-x11 kernel

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/microsd/bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Verify Image with:

sha256sum bbxm-debian-10.3-console-armhf-2020-03-12-2gb*
864cd6a45179e87c68087150597e18a1c12c81621da7735ee8d5c35094423845  bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Windows/Mac/Linux gui

http://etcher.io

Linux: (dd)

xzcat bbxm-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX

All BeagleBone Variants and PocketBeagle

This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize:

cd /opt/scripts/tools
git pull
./grow_partition.sh
sudo reboot

Image Updated:

  • 2020-03-12
    • All BeagleBone Variants and PocketBeagle: v4.19.94-ti-r36 kernel
  • 2019-04-10
    • All BeagleBone Variants and PocketBeagle: v4.14.108-ti-r104 kernel
  • 2018-12-10
    • All BeagleBone Variants and PocketBeagle: v4.14.79-ti-r84 kernel

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/microsd/bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Verify Image with:

sha256sum bone-debian-10.3-console-armhf-2020-03-12-2gb*
6d898c473edc8a50597ed7da8342c899d88e07b8a6b4c7c143257e947cb5f52d  bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Windows/Mac/Linux gui

http://etcher.io

Linux: (dd)

xzcat bone-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX

BeagleBoard-X15 and BeagleBone AI

This image can be written to a 2GB (or larger) microSD card, via 'dd' on Linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize:

cd /opt/scripts/tools
git pull
./grow_partition.sh
sudo reboot

Image Updated:

  • 2020-03-12
    • BeagleBoard-X15 (and BeagleBone AI): v4.19.94-ti-r36 kernel
  • 2019-04-10
    • BeagleBoard-X15 (and BeagleBone AI): v4.14.108-ti-r104 kernel
  • 2018-12-10
    • BeagleBoard-X15 (and BeagleBone AI): v4.14.79-ti-r84 kernel

Get prebuilt image:

wget https://rcn-ee.com/rootfs/2020-03-12/microsd/am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Verify Image with:

sha256sum am57xx-debian-10.3-console-armhf-2020-03-12-2gb*
24bfaeac8d90ebd36790ba4c04a4117fe8c2e7aa28de5d1ff0a5ab164e32bb90  am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz

Windows/Mac/Linux gui

http://etcher.io

Linux: (dd)

xzcat am57xx-debian-10.3-console-armhf-2020-03-12-2gb.img.xz | sudo dd of=/dev/sdX


Debian Configuration

Install Latest Kernel Image

General apt syntax for searching and installing a specific kernel:

sudo apt-get update
sudo apt-cache search linux-image | grep <branch>
sudo apt-get install linux-image-<specific version>
sudo reboot

Latest kernel script

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh <OPTIONS>

4.19.x-ti

beagleboard.org patchset: https://github.com/beagleboard/linux/tree/4.19
Based on: http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=shortlog;h=refs/heads/ti-linux-4.19.y
4.19.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15
--ti-channel --lts-4_19
4.19.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15 + RT
--ti-rt-channel --lts-4_19

Mainline (4.19.x lts)

4.19.x BeagleBone/BeagleBone Black
--bone-kernel --lts-4_19
4.19.x BeagleBone/BeagleBone Black + RT
--bone-rt-kernel --lts-4_19

Debian 9: stretch

sudo apt-get install linux-image-armmp

Reboot with your new Kernel Image.

Xorg Drivers

Script:

cd /opt/scripts/tools/
git pull

BeagleBoard/PandaBoard:

cd /opt/scripts/tools/graphics/
./ti-omapdrm.sh

BeagleBone/BeagleBone Black:

cd /opt/scripts/tools/graphics/
./ti-tilcdc.sh

SGX Drivers

SGX BeagleBone/BeagleBone Black

A page is dedicated for the installation and use of the graphics accelerator.

Building Kernel

Note, this section use to have a lot of details, but maintenance of the two wiki's became a pain, so for now on we will just link to my other pages:

Beagle/Beagle xM

http://eewiki.net/display/linuxonarm/BeagleBoard

BeagleBone

http://eewiki.net/display/linuxonarm/BeagleBone

BeagleBone Black

http://eewiki.net/display/linuxonarm/BeagleBone+Black

Panda/Panda ES

http://eewiki.net/display/linuxonarm/PandaBoard

Upgrading from Debian 5 to Debian 6

Upgrading from Debian 5 to Debian 6 report and tutorial.

Upgrading from Debian 6 (Squeeze) to Debian 7 (Wheezy)

Note, this only goes over "armel" -> "armel"... For users wishing to switch from "armel" -> "armhf" just re-install...

sudo apt-get update ; sudo apt-get upgrade
sudo sed -i -e "s/squeeze/wheezy/g" /etc/apt/sources.list
sudo apt-get update ; sudo apt-get install -y apt aptitude udev dpkg
sudo aptitude update ; sudo aptitude -y safe-upgrade ; sudo aptitude -y dist-upgrade