Difference between revisions of "BeagleBoard/GSoC/2021 Proposal/beagle config"

From eLinux.org
Jump to: navigation, search
Line 2: Line 2:
  
 
* Student: [https://elinux.org/User:Satacker Shreyas Atre]
 
* Student: [https://elinux.org/User:Satacker Shreyas Atre]
* Mentors: Not Assigned
+
* Mentors: Kumar Abhishek (IRC: Abhishek_ )
 
* Code: [N/A]
 
* Code: [N/A]
 
* Proposal : https://elinux.org/index.php?title=BeagleBoard/GSoC/2021_Proposal/beagle_config
 
* Proposal : https://elinux.org/index.php?title=BeagleBoard/GSoC/2021_Proposal/beagle_config
Line 24: Line 24:
 
* Typical work hours : 10AM - 7PM Indian Standard Time
 
* Typical work hours : 10AM - 7PM Indian Standard Time
 
* Experience :  
 
* Experience :  
* [https://github.com/SAtacker/pid-tuning-gui/tree/satacker/cpp_port Qt Embedded] is my Graphing Qt application as well as for sending data to esp32 microcontroller using Boost.ASIO as Netowrking stack  
+
* [https://github.com/SAtacker/pid-tuning-gui/tree/satacker/cpp_port PID-Tuning-GUI] is my Graphing Qt application as well as for sending data to esp32 microcontroller using Boost.ASIO as Netowrking stack in order to configure the Proportional-Integral-Derivative (PID) Controller.
 
* [https://github.com/SAtacker/kernel_learn kernel learn] is a repo I had created for kernel learning purpose in which I had learned several Kernel development Basics .
 
* [https://github.com/SAtacker/kernel_learn kernel learn] is a repo I had created for kernel learning purpose in which I had learned several Kernel development Basics .
 
* I have realised the beauty of embedded systems after working on esp32 dev board and reading [http://exploringbeaglebone.com/ Exploring Linux with Beaglebone by  Derek Molloy] while in [https://www.sravjti.in/ Society of Robotics and Automation] as a core team member.  
 
* I have realised the beauty of embedded systems after working on esp32 dev board and reading [http://exploringbeaglebone.com/ Exploring Linux with Beaglebone by  Derek Molloy] while in [https://www.sravjti.in/ Society of Robotics and Automation] as a core team member.  
Line 38: Line 38:
 
* Enabling the PRU and loading the firmware is much daunting and unless anybody goes through their usage Documentations it will be difficult.  
 
* Enabling the PRU and loading the firmware is much daunting and unless anybody goes through their usage Documentations it will be difficult.  
 
* Not only does it makes beagle devices more friendly but provides an edge to beagleboard over other similar platforms.
 
* Not only does it makes beagle devices more friendly but provides an edge to beagleboard over other similar platforms.
* Hence I propose *beagle-config* which is a terminal based UI application that brings down the steep curve and enables anybody to config their beagle device as they wish.
+
* Hence '''I propose beagle-config''' which is a terminal based UI application that brings down the steep curve and enables anybody to config their beagle device as they wish.
 
* Also while configuring sometimes if the script has hard coded values it makes difficult for the user to go back to default configurations. With beagle-config that won't be a problem anymore
 
* Also while configuring sometimes if the script has hard coded values it makes difficult for the user to go back to default configurations. With beagle-config that won't be a problem anymore
 
* '''Goal''' : Beagle-Config aims to provide the functionality to make the most common low level configuration changes in beagle devices easily and providing a terminal UI to do the same.
 
* '''Goal''' : Beagle-Config aims to provide the functionality to make the most common low level configuration changes in beagle devices easily and providing a terminal UI to do the same.
Line 180: Line 180:
 
| 28/06/2021 || Milestone #3 ||  
 
| 28/06/2021 || Milestone #3 ||  
 
* Integrate libusbgx for providing gadget schemes
 
* Integrate libusbgx for providing gadget schemes
* Add
+
* Use or implement similar functionality as in gadget tools
 
# USB gadget
 
# USB gadget
 
# boot  
 
# boot  
Line 193: Line 193:
 
| 17/07/2021 || Milestone #5 ||  
 
| 17/07/2021 || Milestone #5 ||  
 
* Add  
 
* Add  
# Sensor
+
# Sensors
 
# Audio  
 
# Audio  
 
# Display  
 
# Display  
Line 220: Line 220:
 
* Document If anything remaining
 
* Document If anything remaining
 
* Add final About page
 
* Add final About page
 +
* Distribute a debian package
 
|-
 
|-
 
| 24/08/2021 || Milestone #10 ||  
 
| 24/08/2021 || Milestone #10 ||  

Revision as of 07:35, 29 March 2021

Proposal for Beagle Config Terminal UI

Status

  • Pre-application phase

Proposal

  • Completed "Hello Wolrd" of cross compilation mentioned in the requirements list.
  • Sent a PR to the mentioned upstream #145

About You

About Your Project

  • Project name: Beagle Config

Description

  • As we all know , nearly all of the user operations in Linux can be done using shell commands , scripts and Linux Userspace Api for advanced users. But all that being said for an average user and sometimes in production these steps can be repetitive and time consuming. For example- Simply sharing network i.e. editing iptables and enabling packet forwarding with Pocketbeagle is an uphill task without a script provided. However running scripts could be dangerous. Even adding a USB gadget without rcn-ee's boot script is definitely difficult.
  • Enabling the PRU and loading the firmware is much daunting and unless anybody goes through their usage Documentations it will be difficult.
  • Not only does it makes beagle devices more friendly but provides an edge to beagleboard over other similar platforms.
  • Hence I propose beagle-config which is a terminal based UI application that brings down the steep curve and enables anybody to config their beagle device as they wish.
  • Also while configuring sometimes if the script has hard coded values it makes difficult for the user to go back to default configurations. With beagle-config that won't be a problem anymore
  • Goal : Beagle-Config aims to provide the functionality to make the most common low level configuration changes in beagle devices easily and providing a terminal UI to do the same.

Implementation Details

  • Here are few details of the beagle-config which will use bash, C/C++ as back end for low level access to linux's userspace api and FTXUI for frontend.

System Options

The system options sub menu allows you to make configuration changes to various parts of the boot, login and networking process, along with some other system level changes.

  • PRU enable/disable

This will enable hobbyists to enable / disable their PRUs if they want to test their PRU code in c or in simppru . Example -

               PRU Conf
                       PRU 1 Enable Disable
                       PRU 2 Enable Disable
  • GPIO configuration

Enabling a GPIO pin for input/output Example -

                GPIO 18 -
                       Enable Disable Set Value
  • Internet Sharing and Client Configurations

Enables users to share their host internet within a click Example -

               Host 
                   Host A
                       Enable Internet
                       Advanced
                               Set IP gateway
                       Return to Defaults
               Host Name           BBB
                   Edit 
               Country Code       <Select Menu>
  • eMMC stats

Enables users to extend the sd card partition size if avaible Example -

              eMMC Storage        Total 52 %
                   Free            --------
                   Extend          --------
  • Wireless Configurations

For wireless enabled devices like beaglebone black wireless configuring Access Point names , mDNS configurations, etc

  • Sensor Configurations

If beagle bone has onboard sensors then enabling them , viewing stats like charging status, battery status , power consumption, etc.

  • Audio Configurations

If beagle supports audio on board Specify Audio Output

  • Password

Configure passwords along with addition of users, groups

  • Boot / Auto login

We can configure whether to boot in desktop mode or using just console enabled. Add option to login automatically.

  • User LED

Configure the USR Leds on the board. Their frequency and events.

Display Options

  • Resolution

Enable configuration of HDMI/DVI if the board supports it

Interfacing Options

  • Cape Configurations

If a beagle board and its associated cape needs a configuration , this can be configured here easily.

  • Camera

Enable any standard camera interface and additional configurations

  • SSH

Configure ssh , enable / disable and setup password

  • SPI and I2C

Enable/disable SPI and I2C interfaces and automatic loading of the SPI / I2C kernel modules if there are any existing.

  • USB Gadget configurations

Configures usb cdc-acm-ecm gadget using libusbgx in the back end.

  • Provide an easy interface to add overlays to device trees

For example -

   Select Node - 
      Select Property
            Edit Property
  Add Node -
      Add Alias
          Add Address
          Add Property
          Add register address
  • Overlay File System

Enable or disable a read-only file system

  • Timezone

Select your local time zone, starting with the region, e.g. India, then selecting a city, e.g. Mumbai. Type a letter to skip down the list to that point in the alphabet.

  • Keyboard

Configures Keyboard layout

  • Update

Update Beagle-Config

  • About

Show strings, license, author , version name and kernel version

Timeline

Date Status Details
13/04/2021 to 17/05/2021 Application Review Period Right After submitting the application I will go through rigorous set of reference materials
  • Fix my bricked pocketbeagle by debugging using UART output
  • Go through FTXUI documentations
  • Resource for Shell scripting revision
17/05/2021 to 07/06/2021 Community Bonding
  • Complete College exams , vivas, practicals and stuff
  • Make sure that stuff for project is available
  • Coding Begins
14/06/2021 Milestone #1
  • Introductory Video
  • Implement a basic TUI with basic operations like USR LED enable, disable, frequency
  • Add
  1. Wireless
  2. ssh
  3. timezone

configurations

21/06/2021 Milestone #2
  • Add
  1. PRU
  2. GPIO
  3. eMMC resizer and stats

configurations

28/06/2021 Milestone #3
  • Integrate libusbgx for providing gadget schemes
  • Use or implement similar functionality as in gadget tools
  1. USB gadget
  2. boot
  3. sensor

configurations

05/07/2021 - 10/07/2021 Milestone #4
  • Eliminate the boot scripts for usb-gadget configuration
  • Review the configurations for errors
  • Documentation for everything till now
17/07/2021 Milestone #5
  • Add
  1. Sensors
  2. Audio
  3. Display

configurations

24/07/2021 Milestone #6
  • Add
  1. Cape
  2. Wireless
  3. File System

configurations

31/07/2021 - 03/07/2021 Milestone #7
  • Documentation of everything till now
  • Brief overview and discussion with mentor
  • Bring in required changes
10/08/2021 Milestone #8
  • Provide an easy interface to add overlays to device trees
  • Compile with other latest kernels
  • Test the kernel modules and Verify the functionality
17/08/2021 Milestone #9
  • Add additional configurations for updates
  • Document If anything remaining
  • Add final About page
  • Distribute a debian package
24/08/2021 Milestone #10
  • Submit final work product and final mentor evaluation
  • Completion of youtube video
31/08/2021 Milestone #11 Completion of GSoC

Benefit

Quotes