The PocketBeagle is a single board PC which is different from other single board systems. Most other single board systems are based off the ARM Application (A series) chips. The Pocket Beagle has a Cortex-A8 CPU as well as an M series or Micro-controller. The Micro-controller is a Cortex-M3 processor.
The PocketBeagle board can be used as a controller for projects in which you may need it. Some projects I have seen online include Remote Control (RC) devices, gaming systems, etc.
The Beagle Board website (BeagleBoard.org) has image downloads (http://beagleboard.org/latest-images) for the PocketBeagle which includes Debian 9.5. I will show you how to update this to Debian 10 which was released July 6, 2019. Now, let’s cover the PocketBeagle hardware.
Hardware
The PocketBeagle, shown in Figure 1, is a small single-board system which contains the following:
FIGURE 1
You may be thinking that the device only has 512 MB of RAM and cannot do too much; but this is not the case. I have been very impressed with it’s capabilities. Before updating it let’s get the initial Debian system going.
Initial Setup
The PocketBeagle, like other single-board computers, uses an SD Card for its ‘hard disk’. For my setup I am using a 64 GB Class 10 SD Card.
From the website ‘http://beagleboard.org/latest-images’ you need to download the file ‘Debian 9.5 2018-10-07 4GB SD LXQT’. The image includes the LXQT desktop environment so it is easier to start up a Graphical User Interface (GUI).
Once downloaded you can ‘burn’ the image to the SD card with a program like Balena Etcher.
NOTE: For information of installing and using Etcher see the article at https://linux.org/threads/iso-file-manipulation.23269/#post-68982.
Once you have the imaged burned to the SD Card you can insert it in the PocketBeagle. Connect the micro-USB cable to the PocketBeagle and your PC. Lights should start blinking on the PocketBeagle.
Now we can look at connecting to it from another system.
Remote Connection
Connecting to the device is where the magic happens for those who do not know about an OTG USB port.
An OTG port can act as both a Host and Device. When you connect an SD Card to your PC the SD Card is a Device and the PC is a Host. If you connect a smartphone to your PC the smartphone is a Device and the PC is a Host. The Host can access the information on the Device as well as copy information to and from the Device. A system with an OTG port can act as the Host. For example, my smartphone has an OTG USB-C port. With a USB-C to USB-A female converter I can connect a keyboard or mouse to my phone and it works fine. In this case the PocketBeagle can act as a Host or Device.
What happens when you connect two Hosts together with a USB cable? In the case of the PocketBeagle you can create a Local Area Network (LAN) through the USB cable.
After the PocketBeagle is powered up there will be a solid blue light next to the letters ‘PWR’. The solid blue light show that the power is connected and the PocketBeagle is on.
On the other side of the micro-USB connector are four other lights designated as ‘USR0’, ‘USR1’, ‘USR2’ and ‘USR3’. The four lights specify the following by default:
NOTE: Make sure the cable you use is a data as well as power cable. A micro-USB cable which only supplies power will not allow you to connect to the PocketBeagle. There should be a ‘heartbeat’ light blinking (USR0).
Now we need to access the PocketBeagle. To do this you can open the attached device called ‘BEAGLEBONE’ that should appear in your file manager or your Desktop. Double-click on the file ‘START.htm’ and you should see a screen similar to Figure 2.
FIGURE 2
On the left side of the screen is a list of steps to connect the PocketBeagle. Step 1 should be green and checked as it is in Figure 2.
If you click on the box for Step 2 then you should be taken further down on the page to show a list of connections. The connections should all be shown as inactive for the time being. If you scroll down to the next Table which shows Operating Systems you can see the last line is for Linux. There is a shell script called ‘mkudevrule.sh’ which you can click on to save. Place the file where you can easily find it. Once saved you need to go to the file and right click on it then select Properties. On the Permissions tab make sure you check the box to make the file executable. Close the Properties box and then double click on the file to execute it. You should be asked to run it in a Terminal which you need to do since you will be asked to enter in the password for Root privileges. Once this is completed you need to unplug the PocketBeagle wait about 10 seconds or more and then plug it back in. Wait until the light at USR1 goes off to continue.
Once the PocketBeagle is connected, mainly for power purposes, it will boot up and create a network connection.
When connected to a Linux system the PocketBeagle will have the IP Address of 192.168.6.2. The USB port on the PC will have an IP Address of 192.168.6.1. The two devices can communicate through this connection. You can also open a web browser and go to the address 192.168.6.2 to open a page to the PocketBeagle as shown in Figure 3.
FIGURE 3
Once you are able to make these two connections then we are ready continue.
There are two ways to connect to the PocketBeagle. We will cover how to connect with a Secure Shell (SSH) and perform the upgrade to Debian 10. Once Debian 10 is installed we can perform a Virtual Network Computing (VNC) connection.
Secure Shell Connection
You can use any SSH program but I will be using Remmina for both the SSH and VNC connection.
The installation of Remmina can be found at https://linux.org/threads/virtualization-–-libvirt.4496/#post-12527.
After Remmina is installed and started you can select ‘SSH’ at the top left then press the ‘+’ button on the far left. A new window will appear to allow you to configure the connection more. For ‘Name’ type in ‘PocketBeagle-SSH’. The ‘Protocol’ should be set to SSH. For ‘Server’ enter in the IP Address of ‘192.168.6.2’. The ‘User Name’ should be ‘debian’ and the ‘Password’ should be ‘temppwd’. By setting the User Name and Password you will automatically be logged in to the PocketBeagle. The image from the BeagleBone website has a the default User Name and Password already set. You can change them if you want. Click on ‘Save and Connect’ at the bottom right corner. The next time you open Remmina the PocketBeagle settings will be saved and you can simple click on it to connect.
After connecting the first time you should be prompted to accept the Public Key. Select ‘OK’ to continue with the connection. You should only be prompted to do this whenever you start PocketBeagle with a fresh image on the SD Card.
Now that the device is booted and we are connected it is time to run the command ‘sudo /opt/scripts/tools/grow_partition.sh’. Once done you will need to reboot the PocketBeagle. Issue the command ‘sudo reboot now’. Once the PocketBeagle is running you can reconnect with SSH.
To check the space on the SD Card you can run the command ‘df’ in the SSH connection. The value will be shown for the Filesystem ‘/dev/mmcblk0p1’.
If you execute a command such as ‘sudo apt update’ through SSH you should get connection failures to the Internet. These errors are what we are going to fix so you can update the Debian 9.5 image.
The first commands you issue will be done on your Host system (the one to which the PocketBeagle is connected). You need to run ‘ifconfig’ to find the name of the virtual adapter being used to create the network connection through the USB cable. My system is shown in Figure 4. You will notice there are two connections created. One connection is for the address 192.168.6.1 and 192.168.7.1. In this case we are interested in the port for 192.168.6.1 since the PocketBeagle is 192.168.6.2. Note the name on your system for the port mine is ‘enx0479b7ecfaab’.
FIGURE 4
The following commands should be issued from the PC in a Terminal (note the name of my port should be changed to match yours that you found using ‘ifconfig’ as well as your port going to the Internet which is ‘wlo1’ on my system):
The PC system should be ready now to bridge the connection between the PocketBeagle and the Internet.
The next command needs to be run through SSH on the PocketBeagle:
You also need to edit the ‘/etc/resolv.conf’ and add the following line to it:
The Domain Name Server (DNS) is the Google server (8.8.8.8) which you can change to any other DNS Server IP Address you wish.
At this point the PocketBeagle should be able to reach the Internet. To test it you can issue the following command in the SSH Terminal:
You should get a response from the server you ping (you could use any you wish). If it does not get a response then you can ping an IP Address such as 8.8.8.8. If the IP Address works then you are fine but the nameserver is not set correctly in the ‘/etc/resolv.conf’ so try to set it again and make sure you edit the file as sudo.
NOTE: If this continuously fails then look at your network connections and remove all of the connections for Wired Ethernet. Reboot your system and try to connect the PocketBeagle again.
Updating Debian
Now that there is a direct connection to the Internet you can perform all the updates and file installations you need to perform.
Before we do anything you can issue the command ‘hostnamectl’ in the SSH Terminal and see results similar to Figure 5.
FIGURE 5
First do the following:
The upgrades most likely will take a long time. Once it is completed you can start the upgrade to Debian 10. Edit the file ‘/etc/apt/sources.list’ and change every ‘stretch’ to ‘buster’. Save the file and the perform the following again:
NOTE: Any questions that may come up about configuration file issues or the like simply accept the default option.
Once the commands are completed you can issue the command ‘hostnamectl’ and you should see similar output as in Figure 6. Be aware that the second command can take a while for the system to generate a list of files to upgrade. Since this is an upgrade from Debian 9 to 10 it can be quite a list.
FIGURE 6
If you want to update the kernel then you need to execute ‘sudo bash /opt/scripts/tools/update_kernel.sh’. Remember to reboot using the command ‘sudo reboot now’.
The PocketBeagle should now be updated to Debian 10 with a newer kernel. Now you may want to connect to it with a GUI.
Virtual Network Computing
The system does not need to updated to Debian 10 for this to work so you can perform these steps anytime.
NOTE: The PocketBeagle will also work with Remote Desktop Protocol (RDP).
VNC is already installed but you do need to activate it. To set it up you simply type in the following command in SSH mode:
You will be asked to create and verify a password for the VNC connection.
Once you have this set up you can create a connection. I will go through adding another connection in Remmina.
After Remmina is installed and started you can press the ‘+’ button on the far left. A new window will appear to allow you to configure the connection more. For ‘Name’ type in ‘PocketBeagle-VNC’. The ‘Protocol’ should be set to VNC. For ‘Server’ enter in the IP Address of ‘192.168.6.2:1’. The ‘User Name’ should be ‘debian’ and the ‘Password’ should be ‘temppwd’. By setting the User Name and Password you will automatically be logged in to the PocketBeagle. Leave the ‘Colo Depth’ as ‘256 Colors’. Click on ‘Save and Connect’ at the bottom right corner. The next time you open Remmina the ‘PocketBeagle - VNC’ settings will be saved and you can simple click on it to connect.
The GUI is LXQT and already installed and configured. You can see from Figure 7 what the screen will look like once connected.
FIGURE 7
The problem you may have guessed already. There is only 512 MB of RAM so the GUI is very slow to respond when apps are started. It may be best to work only from a command-line in SSH.
Conclusion
I think the PocketBeagle is a very interesting little board. The cost is around $25 and can be quite fun to play with to learn Linux. You could even connect it to a Windows system and use it to learn Linux without having a dedicated system for Linux. For-Do-It Yourself enthusiasts who need a small computer for a project this is very small and convenient.
I hope you have fun with one!
The PocketBeagle board can be used as a controller for projects in which you may need it. Some projects I have seen online include Remote Control (RC) devices, gaming systems, etc.
The Beagle Board website (BeagleBoard.org) has image downloads (http://beagleboard.org/latest-images) for the PocketBeagle which includes Debian 9.5. I will show you how to update this to Debian 10 which was released July 6, 2019. Now, let’s cover the PocketBeagle hardware.
Hardware
The PocketBeagle, shown in Figure 1, is a small single-board system which contains the following:
- Octavo Systems OSD3358 1GHz ARM® Cortex-A8
- ARM Cortex-M3
- 512 MB DDR3 RAM
- Integrated power management
- 2×32-bit 200-MHz programmable real-time units (PRUs)
- 3D Accelerator
- On The Go (OTG) micr-USB port
FIGURE 1
You may be thinking that the device only has 512 MB of RAM and cannot do too much; but this is not the case. I have been very impressed with it’s capabilities. Before updating it let’s get the initial Debian system going.
Initial Setup
The PocketBeagle, like other single-board computers, uses an SD Card for its ‘hard disk’. For my setup I am using a 64 GB Class 10 SD Card.
From the website ‘http://beagleboard.org/latest-images’ you need to download the file ‘Debian 9.5 2018-10-07 4GB SD LXQT’. The image includes the LXQT desktop environment so it is easier to start up a Graphical User Interface (GUI).
Once downloaded you can ‘burn’ the image to the SD card with a program like Balena Etcher.
NOTE: For information of installing and using Etcher see the article at https://linux.org/threads/iso-file-manipulation.23269/#post-68982.
Once you have the imaged burned to the SD Card you can insert it in the PocketBeagle. Connect the micro-USB cable to the PocketBeagle and your PC. Lights should start blinking on the PocketBeagle.
Now we can look at connecting to it from another system.
Remote Connection
Connecting to the device is where the magic happens for those who do not know about an OTG USB port.
An OTG port can act as both a Host and Device. When you connect an SD Card to your PC the SD Card is a Device and the PC is a Host. If you connect a smartphone to your PC the smartphone is a Device and the PC is a Host. The Host can access the information on the Device as well as copy information to and from the Device. A system with an OTG port can act as the Host. For example, my smartphone has an OTG USB-C port. With a USB-C to USB-A female converter I can connect a keyboard or mouse to my phone and it works fine. In this case the PocketBeagle can act as a Host or Device.
What happens when you connect two Hosts together with a USB cable? In the case of the PocketBeagle you can create a Local Area Network (LAN) through the USB cable.
After the PocketBeagle is powered up there will be a solid blue light next to the letters ‘PWR’. The solid blue light show that the power is connected and the PocketBeagle is on.
On the other side of the micro-USB connector are four other lights designated as ‘USR0’, ‘USR1’, ‘USR2’ and ‘USR3’. The four lights specify the following by default:
- USR0 – Flashes in a ‘heartbeat’ pattern
- USR1 – Micro SD Card access (read or write)
- USR2 – CPU Activity
- USR3 – eMMC access
NOTE: Make sure the cable you use is a data as well as power cable. A micro-USB cable which only supplies power will not allow you to connect to the PocketBeagle. There should be a ‘heartbeat’ light blinking (USR0).
Now we need to access the PocketBeagle. To do this you can open the attached device called ‘BEAGLEBONE’ that should appear in your file manager or your Desktop. Double-click on the file ‘START.htm’ and you should see a screen similar to Figure 2.
FIGURE 2
On the left side of the screen is a list of steps to connect the PocketBeagle. Step 1 should be green and checked as it is in Figure 2.
If you click on the box for Step 2 then you should be taken further down on the page to show a list of connections. The connections should all be shown as inactive for the time being. If you scroll down to the next Table which shows Operating Systems you can see the last line is for Linux. There is a shell script called ‘mkudevrule.sh’ which you can click on to save. Place the file where you can easily find it. Once saved you need to go to the file and right click on it then select Properties. On the Permissions tab make sure you check the box to make the file executable. Close the Properties box and then double click on the file to execute it. You should be asked to run it in a Terminal which you need to do since you will be asked to enter in the password for Root privileges. Once this is completed you need to unplug the PocketBeagle wait about 10 seconds or more and then plug it back in. Wait until the light at USR1 goes off to continue.
Once the PocketBeagle is connected, mainly for power purposes, it will boot up and create a network connection.
When connected to a Linux system the PocketBeagle will have the IP Address of 192.168.6.2. The USB port on the PC will have an IP Address of 192.168.6.1. The two devices can communicate through this connection. You can also open a web browser and go to the address 192.168.6.2 to open a page to the PocketBeagle as shown in Figure 3.
FIGURE 3
Once you are able to make these two connections then we are ready continue.
There are two ways to connect to the PocketBeagle. We will cover how to connect with a Secure Shell (SSH) and perform the upgrade to Debian 10. Once Debian 10 is installed we can perform a Virtual Network Computing (VNC) connection.
Secure Shell Connection
You can use any SSH program but I will be using Remmina for both the SSH and VNC connection.
The installation of Remmina can be found at https://linux.org/threads/virtualization-–-libvirt.4496/#post-12527.
After Remmina is installed and started you can select ‘SSH’ at the top left then press the ‘+’ button on the far left. A new window will appear to allow you to configure the connection more. For ‘Name’ type in ‘PocketBeagle-SSH’. The ‘Protocol’ should be set to SSH. For ‘Server’ enter in the IP Address of ‘192.168.6.2’. The ‘User Name’ should be ‘debian’ and the ‘Password’ should be ‘temppwd’. By setting the User Name and Password you will automatically be logged in to the PocketBeagle. The image from the BeagleBone website has a the default User Name and Password already set. You can change them if you want. Click on ‘Save and Connect’ at the bottom right corner. The next time you open Remmina the PocketBeagle settings will be saved and you can simple click on it to connect.
After connecting the first time you should be prompted to accept the Public Key. Select ‘OK’ to continue with the connection. You should only be prompted to do this whenever you start PocketBeagle with a fresh image on the SD Card.
Now that the device is booted and we are connected it is time to run the command ‘sudo /opt/scripts/tools/grow_partition.sh’. Once done you will need to reboot the PocketBeagle. Issue the command ‘sudo reboot now’. Once the PocketBeagle is running you can reconnect with SSH.
To check the space on the SD Card you can run the command ‘df’ in the SSH connection. The value will be shown for the Filesystem ‘/dev/mmcblk0p1’.
If you execute a command such as ‘sudo apt update’ through SSH you should get connection failures to the Internet. These errors are what we are going to fix so you can update the Debian 9.5 image.
The first commands you issue will be done on your Host system (the one to which the PocketBeagle is connected). You need to run ‘ifconfig’ to find the name of the virtual adapter being used to create the network connection through the USB cable. My system is shown in Figure 4. You will notice there are two connections created. One connection is for the address 192.168.6.1 and 192.168.7.1. In this case we are interested in the port for 192.168.6.1 since the PocketBeagle is 192.168.6.2. Note the name on your system for the port mine is ‘enx0479b7ecfaab’.
FIGURE 4
The following commands should be issued from the PC in a Terminal (note the name of my port should be changed to match yours that you found using ‘ifconfig’ as well as your port going to the Internet which is ‘wlo1’ on my system):
Code:
sudo iptables --table nat --append POSTROUTING --out-interface wlo1 -j MASQUERADE
sudo iptables --append FORWARD --in-interface enx0479b7ecfaab -j ACCEPT
The next command needs to be run through SSH on the PocketBeagle:
Code:
sudo route add default gw 192.168.6.1
Code:
nameserver 8.8.8.8
At this point the PocketBeagle should be able to reach the Internet. To test it you can issue the following command in the SSH Terminal:
Code:
ping www.linux.org
NOTE: If this continuously fails then look at your network connections and remove all of the connections for Wired Ethernet. Reboot your system and try to connect the PocketBeagle again.
Updating Debian
Now that there is a direct connection to the Internet you can perform all the updates and file installations you need to perform.
Before we do anything you can issue the command ‘hostnamectl’ in the SSH Terminal and see results similar to Figure 5.
FIGURE 5
First do the following:
Code:
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
Code:
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
Once the commands are completed you can issue the command ‘hostnamectl’ and you should see similar output as in Figure 6. Be aware that the second command can take a while for the system to generate a list of files to upgrade. Since this is an upgrade from Debian 9 to 10 it can be quite a list.
FIGURE 6
If you want to update the kernel then you need to execute ‘sudo bash /opt/scripts/tools/update_kernel.sh’. Remember to reboot using the command ‘sudo reboot now’.
The PocketBeagle should now be updated to Debian 10 with a newer kernel. Now you may want to connect to it with a GUI.
Virtual Network Computing
The system does not need to updated to Debian 10 for this to work so you can perform these steps anytime.
NOTE: The PocketBeagle will also work with Remote Desktop Protocol (RDP).
VNC is already installed but you do need to activate it. To set it up you simply type in the following command in SSH mode:
Code:
tightvncserver
Once you have this set up you can create a connection. I will go through adding another connection in Remmina.
After Remmina is installed and started you can press the ‘+’ button on the far left. A new window will appear to allow you to configure the connection more. For ‘Name’ type in ‘PocketBeagle-VNC’. The ‘Protocol’ should be set to VNC. For ‘Server’ enter in the IP Address of ‘192.168.6.2:1’. The ‘User Name’ should be ‘debian’ and the ‘Password’ should be ‘temppwd’. By setting the User Name and Password you will automatically be logged in to the PocketBeagle. Leave the ‘Colo Depth’ as ‘256 Colors’. Click on ‘Save and Connect’ at the bottom right corner. The next time you open Remmina the ‘PocketBeagle - VNC’ settings will be saved and you can simple click on it to connect.
The GUI is LXQT and already installed and configured. You can see from Figure 7 what the screen will look like once connected.
FIGURE 7
The problem you may have guessed already. There is only 512 MB of RAM so the GUI is very slow to respond when apps are started. It may be best to work only from a command-line in SSH.
Conclusion
I think the PocketBeagle is a very interesting little board. The cost is around $25 and can be quite fun to play with to learn Linux. You could even connect it to a Windows system and use it to learn Linux without having a dedicated system for Linux. For-Do-It Yourself enthusiasts who need a small computer for a project this is very small and convenient.
I hope you have fun with one!