this is my first weekly progress report for the Media Ip Streaming project. I will report everything I achieved throughout one week in this thread and update it weekly. My Mentors for the project are: rma31, henrix, pdp7 and indu. You can find a dedicated project page here: https://elinux.org/BeagleBoard/GSoC/2020_Projects/Media_IP_Streaming
Accomplishments:
Complete warmup task
Setup General Development Environment (Software and Hardware)
Evaluate existing Drivers and identify challenges for porting
this is my week 2 progress report. I was able to allready finish some milestones from this and next week so I came up with some extra tasks for this week.
Accomplishments:
Setup Beaglebone AI specific Toolchain
Evaluate if existing kernel driver needs changes for AI
Implement a base DTS for CTAG Face BBAI in arch/arm/boot/dts
Change existing DTS Pin Configurations to match BBAI pin muxing
Testing of all implemented functionality
Bug fixing of implemented functionality
Refactoring of device tree configuration, to just include base configuration in DTS
Implement Face Specific configuration as overlay for BBAI
Resolutions to blockers:
I had a blocker last week regarding the ctag face fitting on the Beaglebone AI. I was able to fix this with ordering stackable headers to allow for more room between the board and the cape
this is my week 3 progress report. I was able to allready finish some milestones from this and next week so I came up with some extra tasks for this week.
Accomplishments:
Testing of all implemented functionality
Bug fixing of implemented functionality
First evaluation of sound card performance
Overlay for BBB
Documentation of Driver Installation
Resolutions to blockers:
Fix Alsa Config
On-going blockers:
Currently audio input is not working properly. henrix thinks that alsa config is wrong
Port drivers to 5.4-rt on BBB and BBAI (Port is currently not working becuause spi bitbang drivers are not loaded)
Test audio functionality on 5.4-rt on BBB and BBAI
Submit Pull Request for 4.19-rt (BBB and BBAI)
Submit Pull Request for overlays
Resolutions to blockers:
N/A
On-going blockers:
The spi bitbang drivers dont get load on 5.4-rt. TODO: Ask pdp7 whether spi bitbang not working is a known problem on BBAI on 5.4-rt, or if this is a problem with my implementation.
Currently I am experiencing problems in porting gptp into the kernel because I was not able to find out until now on how to access the HW clock in kernel space.
Resolutions to blockers:
I will further try to implement the features and do some research. I allready wrote a mail to indu, who is familiar with ptp on linux and when I am not able to finsih until thursday, I will have to work on my schedule together with my mentors in the weekly meeting
I am still trying to implement gptp in kernel space. Currently I am not able to get timestamps from cmsghdr, because those seem to be empty.
Resolutions to blockers:
Because I invested quite some time now in gptp, I will talk to my mentors, if it is still okay to invest some time in fixing the bugs or if I shall move on and use the user space daemon
this is my final progress report. I was able to finish the project on time and filled out all required forms at Google. All information regarding the project can be found on my documentation page at: https://niklaswan.github.io/GSoC-Overview/
In the following I will give some short information on the project outcome and list some limitations of the results, further information can be found on the documentation page.
Port AVB driver stack implemented by indu for GSoC 2017 to Linux kernel 4.19-rt for BeagleBone AI [Open, Documentation]
Refactor and modularize present AVB driver architecture
Implement AVDECC protocol part of AVB to allow for device enumeration and control
Limitations of birtual ALSA AVB driver:
Audio file has to be a multiple of the ALSA period size in length
Playback of one stream with up to 8 channels
Playback between on Listener (BBB) and one Talker (BBAI)
AVDECC identification on an Apple MAC with propriatery AVB soulution of Beagleboard Device using ALSA AVB driver is not working properly (However the avbdiagnose application is able to identify the Beagleboard device)
The whole GSoC experience was a lot of fun and I learned a lot. A big thank you to the BeagleBoard.org-community which allways provided some helpfull pointers and tricks. Also a big thank you to the BeagleBoard.org GSoC team and especially to my mentors rma31, henrix, indu and pdp7.
this is my final progress report. I was able to finish the project on time and filled out all required forms at Google. All information regarding the project can be found on my documentation page at: https://niklaswan.github.io/GSoC-Overview/
In the following I will give some short information on the project outcome and list some limitations of the results, further information can be found on the documentation page.
Port AVB driver stack implemented by indu for GSoC 2017 to Linux kernel 4.19-rt for BeagleBone AI [Open, Documentation]
Refactor and modularize present AVB driver architecture
Implement AVDECC protocol part of AVB to allow for device enumeration and control
What were the blockers to making a submission to a mainline kernel mailing list? What could we have done in organizing this project to better enable an upstream submission?
Regarding blockers for submission to mainline:
For the submission of a mainline patch, the architecture of the whole implementation has to be changed. The synchronization of audio data and the gPTP layer both run in user space. The virtual driver which implements MSRP, AVTP and AVDECC protocols is running in kernel space. Thus those strong dependencies between user space and kernel space code have to be resolved. Because the driver needs gPTP running in user space to work properly.