User Tools

Site Tools


computing:beaglebone

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
computing:beaglebone [2018/05/18 07:31] – created oemb1905computing:beaglebone [2023/02/27 00:54] (current) oemb1905
Line 1: Line 1:
 +-------------------------------------------
 +  * **beagleboneblack** 
 +  * **Jonathan Haack**
 +  * **Haack's Networking**
 +  * **netcmnd@jonathanhaack.com** 
  
- 
-------------------------------------------- 
-#**Beagle Bone Black w/ Debian** 
 ------------------------------------------- -------------------------------------------
-To locate device if auto-mounted +==Installing Debian on Beagle Boards==
-  sudo dmesg+
  
 +Insert microsd on host workstation, unmount in order to write the .img to the disk
 +
 +  sudo dmesg
   umount /dev/mmcblk0p1   umount /dev/mmcblk0p1
  
-Optional: use fdisk to remove the partition first before dding ...+Write the debian image to the SD Card using dd command
  
   sudo dd of=/dev/mmcblk0 if=/home/sexa/Downloads/bone-debian-9.2-iot-armhf-2017-10-10-4gb.img bs=1M conv=fdatasync [or && sync]   sudo dd of=/dev/mmcblk0 if=/home/sexa/Downloads/bone-debian-9.2-iot-armhf-2017-10-10-4gb.img bs=1M conv=fdatasync [or && sync]
  
-After this, pull out SD card.  Plug back in.  Locate where it mounted, prepare to edit file to allow it to run the installer upon boot.  This is located in boot/enV.txt relative to wherever the media mounted.  Eg., cd /media/sexa/rootfs/boot/+Pull out the SD card and then put back in so that it mounts read/write and then edit
  
-  cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh+  vi /media/username/rootfs/boot/uEnv.txt 
 +  cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh [uncomment this line in the config]
  
-Get out of the directory asap.  then:+Use screen and a serial usb adapter to oversee the installation since ssh will likely get broken during the post-install cleanup. 
 +The adapter's tx goes to bb's rx, and so on.  For the beaglebone black pin setup, see bit.ly/2DhU6Vx
  
-  umount /dev/mmcblk0p1+  sudo screen /dev/ttyUSB0 115200 [Example]
  
-Now that the image has been turned into an installeryou may put the microSD card into the Beagle Bone (without power).  +Once the device powers offremove the microSD card or it will flash the eMMC again and again.  Now, prepare the bb 
 +for shell access by editing your ssh config:
  
-If there is fourth pinusually reddo not use.  We only need inputoutputand ground.+  vi /etc/ssh/sshd_config  
 +  <PermitRootLogin yes> 
 + 
 +Add password for rootthen test the shell accessadd the public keysto the authorized_keys file 
 + 
 +  ssh root@xx.xx.xx.xx 
 +  ssh-copy-id root@xx.xx.xx.xx 
 +  vi /root/.ssh/authorized_keys [copy and paste the pub keys] 
 + 
 +==Clean Up Post-Install== 
 + 
 +Install deborphan in order to remove hanging dependencies from apps that we will later strip. 
 + 
 +  apt-get install screen deborphan ntp  
 + 
 +The new version has an ntp serverbut retaining here in case setting up legacy system.  Nowprepare  network interfaces: 
 + 
 +  vi /etc/network/interfaces  
 +  <uncomment these parameters> 
 +  auto eth0 
 +  iface eth0 inet dhcp 
 +  <comment out any other paramaters besides loopback> 
 + 
 +It is now time to strip the bb of the stock apps, etc If you prefer to use ssh over serial, then use screen as follows:
      
-  sudo screen <devicename> 115200 +  ssh -t root@xx.xx.xx.xx screen -DRO  
-  sudo screen /dev/ttyUSB0 115200 [Example]+ 
 +Now, let's remove the unnecessary packages (as root) - but bear in mind that these may change in future releases: 
 + 
 +  for i in c9-core-installer udhcpd chromium-codecs-ffmpeg-extra connman lximage-qt lxmenu-data pcmanfm-qt qupzilla xserver-xorg-core "light*" chromium-browser nodejs "lxqt*" xserver-common "apache2*" bluez "xfonts*" "x11-*" "x11proto-*" build-essential alsa-utils; do apt-get -y purge $i; done 
 +  apt remove --purge c9-core-installer bonescript bone101 
 + 
 +Sometimes ssh hangs at this stage, so if so, use serial. 
 + 
 +  apt-get --purge autoremove  
 +  apt-get --purge remove `deborphan` 
 + 
 +Run this last command a few times until everything is removed. 
 + 
 +  apt-get dist-upgrade 
 +  apt-get clean 
 + 
 +Change hostname, remove the splash/motd  
 + 
 +  vi /etc/hosts 
 +  vi /etc/hostname 
 +  vi /etc/issue.net to remove the goofy ssh splash
      
-{{:computing:b1.jpg?400|}}+Edit logs and cron to limit writes 
 +   
 +  cd /var/log && rm lastlog && ln -s /dev/null lastlog 
 +  cd /etc/cron.daily && mv man-db man-db.disabled [if it exists]
  
-When working with serial connections such as the Beagle Bone Black, and otherwise, screen can be helpful.  You can leverage screen with ssh to tunnel to another hostand then pass a screen command to keep the commands you initiate persistent on the client you connected to.+To find latest writes to disk: find / -mount -newermt 14:44:00 [to see what logs are post-updatesi.e., for limiting writes to eMMC]
  
-  ssh -p ### -t user@host.com screen -DRO+Verify /etc/fstab configuration, include noatime, for example:
  
-Using screen with usb to serial adapter+  UUID=57e4a3f6-7951-40ae-ad25-b445959e1c30  /  ext4  noatime,errors=remount-ro  0  1 
 +  debugfs  /sys/kernel/debug  debugfs  defaults  0  0
  
-  sudo screen /dev/ttyUSB0 115200+#If we use an external sdcard, we are less concerned with re-writes, so enable the logs on the sdcard (create directories for each location below, mountpoints, etc.) 
 +  UUID=eb885f2f-28a4-49a6-99c9-3f8b0b7a871d /sdcard ext4 noatime,nofail,errors=remount-ro  0  2
  
-Some other common speeds are 9600576003840019200+  /sdcard/tmp           /tmp            none bind,nofail 0 0 
 +  /sdcard/var/log       /var/log        none bind,nofail 0 0 
 +  /sdcard/var/lib/mysql /var/lib/mysql  none bind,nofail 0 0  
 +  /sdcard/var/lib/cacti/ /var/lib/cacti none bind,nofail 0 0  
 +  /sdcard/var/lib/ntp    /var/lib/ntp   none bind,nofail 0 0 
 + 
 +Removing bloat update
      
 +  sudo systemctl stop cloud9.service cloud9.socket
 +  sudo systemctl disable cloud9.service cloud9.socket
 +  sudo rm -rf /var/lib/cloud9 /opt/cloud9 /etc/default/cloud9 /lib/systemd/system/cloud9.*
 +  sudo systemctl daemon-reload                  
 +  sudo systemctl stop bonescript-autorun.service bonescript.service bonescript.socket
 +  sudo systemctl disable bonescript-autorun.service bonescript.service bonescript.socket
 +  sudo rm -rf /lib/systemd/system/bonescript* /usr/local/lib/node_modules/bonescript
 +  sudo systemctl daemon-reload
 +  sudo apt remove -purge apache2* nginx*
 +  cd /opt/
 +  rm -rf *
 +  sudo apt autoremove
 +
 +Debian Bullseye sources.list
 +
 +  deb http://deb.debian.org/debian/ bullseye main contrib non-free
 +  #deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
 +  deb http://security.debian.org/debian-security bullseye-security main contrib non-free
 +  #deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
 +  deb http://deb.debian.org/debian bullseye-updates main contrib non-free
 +  #deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
 +  deb [arch=armhf] http://repos.rcn-ee.com/debian/ bullseye main
 +  #deb-src [arch=armhf] http://repos.rcn-ee.com/debian/ bullseye main
 +
 +This tutorial is a designated "Invariant Section" of the "Technotronic" section of Haack's Wiki as described on the [[https://jonathanhaack.com/dokuwiki/doku.php?id=start|Start Page]].
  
 + --- //[[jonathan@haacksnetworking.org|oemb1905]] 2023/02/26 17:52//
computing/beaglebone.1526628680.txt.gz · Last modified: 2018/11/25 01:33 (external edit)