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

From eLinux.org
Jump to: navigation, search
Line 72: Line 72:
 
                 Host Name          BBB
 
                 Host Name          BBB
 
                     Edit  
 
                     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
 
* Wireless Configurations
Line 91: Line 99:
 
Configure the USR Leds on the board. Their frequency and events.  
 
Configure the USR Leds on the board. Their frequency and events.  
  
* Display Options
+
=== Display Options ===
 +
 
 
* Resolution
 
* Resolution
Enable configuration of HDMI/DVI if the board supports  
+
Enable configuration of HDMI/DVI if the board supports it
# Interfacing Options
+
 
# Camera
+
=== Interfacing Options ===
# SSH
+
* Cape Configurations
# SPI
+
If a beagle board and its associated cape needs a configuration , this can be configured here easily.
# I2C
+
 
# Overlay File System
+
* Camera
# Fan
+
Enable any standard camera interface and additional configurations
# Remote GPIO
+
 
# Timezone
+
* SSH
# Keyboard
+
Configure ssh , enable / disable and setup password
# Network Proxy Settings
+
 
# Expand Filesystem
+
* SPI and I2C
# Update
+
Enable/disable SPI and I2C interfaces and automatic loading of the SPI / I2C kernel modules if there are any existing.
# About
+
 
* Cape Specific Configurations
 
 
* USB Gadget configurations
 
* USB Gadget configurations
* Device Tree Add-ons/Overlays
+
Configures usb cdc-acm-ecm gadget using libusbgx in the back end.
 +
 
 
* Provide an easy interface to add overlays to device trees
 
* Provide an easy interface to add overlays to device trees
 
For example -  
 
For example -  
Line 121: Line 130:
 
           Add Property
 
           Add Property
 
           Add register address
 
           Add register address
Allows setting of the wireless LAN SSID and passphrase.
 
 
 
Specifiy the audio output destination.
 
 
 
 
The default user on Raspberry Pi OS is pi with the password raspberry. You can change that here. Read about other users.
 
 
 
 
Set the visible name for this Pi on a network.
 
 
 
From this submenu you can select whether to boot to console or desktop and whether you need to log in or not. If you select automatic login, you will be logged in as the pi user.
 
 
 
Use this option to wait for a network connection before letting boot proceed.
 
 
 
Enable or disable the splash screen displayed at boot time
 
 
 
If the model of Pi permits it, you can change the behaviour of the power LED using this option.
 
 
 
 
 
Define the default HDMI/DVI video resolution to use when the system boots without a TV or monitor being connected. This can have an effect on RealVNC if the VNC option is enabled.
 
 
 
Underscan
 
Old TV sets had a significant variation in the size of the picture they produced; some had cabinets that overlapped the screen. TV pictures were therefore given a black border so that none of the picture was lost; this is called overscan. Modern TVs and monitors don't need the border, and the signal doesn't allow for it. If the initial text shown on the screen disappears off the edge, you need to enable overscan to bring the border back.
 
 
Any changes will take effect after a reboot. You can have greater control over the settings by editing config.txt.
 
 
On some displays, particularly monitors, disabling overscan will make the picture fill the whole screen and correct the resolution. For other displays, it may be necessary to leave overscan enabled and adjust its values.
 
 
 
Pixel Doubling
 
Enable/disable 2x2 pixel mapping.
 
 
Composite Video
 
On the Raspberry Pi4, enable composite video. On models prior to the Raspberry Pi4, composite video is enabled by default so this option is not displayed.
 
 
Screen Blanking
 
Enable or disable screen blanking.
 
 
 
Interfacing Options
 
In this submenu there are the following options to enable/disable: Camera, SSH, VNC, SPI, I2C, Serial, 1-wire, and Remote GPIO.
 
 
 
 
Enable/disable the CSI camera interface.
 
 
 
 
Enable/disable remote command line access to your Pi using SSH.
 
 
SSH allows you to remotely access the command line of the Raspberry Pi from another computer. SSH is disabled by default. Read more about using SSH on the SSH documentation page. If connecting your Pi directly to a public network, you should not enable SSH unless you have set up secure passwords for all users.
 
 
 
VNC
 
Enable/disable the RealVNC virtual network computing server.
 
 
 
 
Enable/disable SPI interfaces and automatic loading of the SPI kernel module, needed for products such as PiFace.
 
 
 
 
Enable/disable I2C interfaces and automatic loading of the I2C kernel module.
 
 
 
Serial
 
Enable/disable shell and kernel messages on the serial connection.
 
 
 
1-wire
 
Enable/disable the Dallas 1-wire interface. This is usually used for DS18B20 temperature sensors.
 
 
Enable or disable remote access to the GPIO pins.
 
 
Performance Options
 
 
Overclock
 
On some models it is possible to overclock your Raspberry Pi's CPU using this tool. The overclocking you can achieve will vary; overclocking too high may result in instability. Selecting this option shows the following warning:
 
 
Be aware that overclocking may reduce the lifetime of your Raspberry Pi. If overclocking at a certain level causes system instability, try a more modest overclock. Hold down the Shift key during boot to temporarily disable overclocking.
 
 
 
GPU Memory
 
Change the amount of memory made available to the GPU.
 
 
 
Enable or disable a read-only filesystem
 
 
Fan
 
Set the behaviour of a GPIO connected fan
 
 
 
Localisation Options
 
The localisation submenu gives you these options to choose from: keyboard layout, time zone, locale, and wireless LAN country code.
 
 
Locale
 
Select a locale, for example en_GB.UTF-8 UTF-8.
 
 
Time Zone
 
Select your local time zone, starting with the region, e.g. Europe, then selecting a city, e.g. London. Type a letter to skip down the list to that point in the alphabet.
 
 
Keyboard
 
This option opens another menu which allows you to select your keyboard layout. It will take a long time to display while it reads all the keyboard types. Changes usually take effect immediately, but may require a reboot.
 
 
WLAN Country
 
This option sets the country code for your wireless network.
 
 
 
Advanced Options
 
 
If you have installed Raspberry Pi OS using NOOBS, the filesystem will have been expanded automatically. There may be a rare occasion where this is not the case, e.g. if you have copied a smaller SD card onto a larger one. In this case, you should use this option to expand your installation to fill the whole SD card, giving you more space to use for files. You will need to reboot the Raspberry Pi to make this available. Note that there is no confirmation: selecting the option begins the partition expansion immediately.
 
 
 
GL Driver
 
Enable/disable the experimental GL desktop graphics drivers.
 
 
 
GL (Full KMS)
 
Enable/disable the experimental OpenGL Full KMS (kernel mode setting) desktop graphics driver.
 
 
 
GL (Fake KMS)
 
Enable/disable the experimental OpenGL Fake KMS desktop graphics driver.
 
 
 
Legacy
 
Enable/disable the original legacy non-GL VideoCore desktop graphics driver.
 
 
Compositor
 
Enable/Display the xcompmgr composition manager
 
 
Network Interface Names
 
Enable or disable predictable network interface names.
 
 
 
Configure the network's proxy settings.
 
 
 
On the Raspberry Pi4, you can specify whether to boot from USB or network if the SD card isn't inserted. See this page for more information.
 
  
Bootloader Version
+
* Overlay File System
On the Raspberry Pi4, you can tell the system to use the very latest boot ROM software, or default to the factory default if the latest version causes problems.
+
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.
  
Update
+
* Keyboard
Update this tool to the latest version.
+
Configures Keyboard layout
  
 +
* Update
 +
Update Beagle-Config
  
About beagle-config
+
* About
 +
Show strings, license, author , version name and kernel version
  
 
== Timeline ==
 
== Timeline ==

Revision as of 05:20, 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 udemy course which has practical implementation with device tree. Resource 1 Resource 2 Resource 3 Resource 4
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
  • Build and test the already present device tree files
  • Update as per mentioned kernel version and bindings as necessary
21/06/2021 Milestone #2
  • Build and Test A prototype of Device Tree
  • Configure kernel for configfs module
  • Build and test the kernel with minimal configfs implementation
28/06/2021 Milestone #3
  • Integrate libusbgx for providing configuration files
  • Configure USB Nodes in /config/devicetree using libusbgx
  • Test libusbgx and implement unit tests for functions
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
  • Verify the usb functions
  • Rewrite with the changes required and verify with mentor
24/07/2021 Milestone #6
  • Integrate with libusbg gadget schemes
  • Build and test functionality on all Beagle Devices
  • Implement examples for cdc-acm-ecm
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
  • Compile with other latest kernels
  • Test the kernel modules and Verify the functionality
  • Implement unit tests for the same
17/08/2021 Milestone #9
  • Add additional configurations for overlays
  • Document If anything remaining
  • If finished early solve the kernel bugs
24/08/2021 Milestone #10
  • Students submit final work product and final mentor evaluation
  • Completion of youtube video
31/08/2021 Milestone #11 Completion of GSoC

Benefit

Quotes