Automotive Grade Linux is a collaborative open source project that is bringing together automakers, suppliers and technology companies to accelerate the development and adoption of a fully open software stack for the connected car. With Linux at its core, AGL is developing an open platform from the ground up that can serve as the de facto industry standard to enable rapid development of new features and technologies.
AGL demo image can only be built on a Linux development host, so either a real Linux host or a virtual machine with Linux installed in the client should be used.
Before building AGL demo image it's important to make sure the build machine has all required packages installed. Please refer to Automotive Grade Linux official documentation where examples for different host Linux distributions are provided: http://docs.automotivelinux.org/master/docs/getting_started/en/dev/reference/source-code.html
- Video output. The HSDK board does not support HDMI so a USB-to-HDMI or USB-to-DVI adapter is required for external video output to HDMI. As of today there's only one such type of devices that fully supported in the Linux kernel - those based on DisplayLink USB 2.0 chips (i.e. DL-1x5, DL-1x0). Tested adapter is Accell J131B-001B. On manufacturer's web-site: Accell J131B-001B
- Bluetooth. The HSDK board does not have onboard bluetooth adapter so a USB Bluetooth dongle is required for demonstration purposes. Tested adapter is ASUS USB-BT400. On amazon web-site: ASUS USB-BT400
- AM/FM Tuner. The AGL demo application "Radio" requires a radio receiver, which is not present on HSDK board. Tested adapter is GIGABYTE GT-U7300: On manufacturer's web-site: GT-U7300 According AGL Wiki it is recommended to use RTL-SDR dongles
- Download necessary files using repo utility
repo init -m agl-demo-2018.09.xml -u https://github.com/EvgeniiDidin/agl_manifest_synopsys
repo sync -j4
- Initialize build directory by using template files
source meta-agl/scripts/aglsetup.sh -m hsdk agl-demo agl-netboot agl-appfw-smack
- Build synopsys image (currently, the rootfs is used as initramfs)
bitbake agl-demo-platform
To run image it requires microSD-card with a capacity of at least 8 GB.
After build procedure have finished the artefacts are stored in build/tmp/deploy/images/hsdk/ directory. Deploy agl-demo-platform-hsdk.wic.xz file on microSD-card:
- On Linux hosts, use dd command as follows:
xz -cd agl-demo-platform-hsdk.wic.xz | sudo dd of=/dev/mmcblkp0 bs=4M; sync
- On Windows hosts, use "Win32 Disk Imager" utility, available here: https://sourceforge.net/projects/win32diskimager/
Once the agl-demo-platform-hsdk.ext4 file is deployed on microSD-card, just insert it in the microSD-card slot of the HSDK and reset the board. Note DIP-switch BIM should be in 1:off, 2:on state while both BMC and BCS should be in 1: on, 2:on state. In u-Boot terminal run next commands:
fatload mmc 0:1
bootm
After boot on the screen you will see next main menu:
Here 8 of 9 applications are currently working. Poi application is not working currently due to incorrect geolocation. Tapping on round buttons will start an application. Using "Home" button on the top will swith screen to main menu.The Settings application can be used to connect board via Bluetooth to smartphone and to WI-FI spot. Also it can show version info. Changing Date&Time is not changing real onboard time.
To connect HSDK board to smartphone using Bluetooth click on "Bluetooth" title. Then in the list of device click "Pair" button of the device you would like to connect, and on smartphone confirm connection. When the device is at the top of the list click "Connect" button. Under the name of the device MAC address and "Handsfree & AV Connection" title should appear.The Mixer application can change sound volume of input and output audio devices.
The Mediaplayer is an application which can play audio files from smartphone using Bluetooth connection. Connect HSDK board to smatphone using "Settings"->Bluetooth, then open audioplayer on smartphone and play audiofile.
The Phone application requires established Bluetooth connection with smartphonw. Enter the number and press button with cellphone symblol.
The Radio application requires AM/FM Tuner plugged into HSDK board. Using arrows or slider it is possible to change radio frequency.
The HVAC application is used for automotive climate control. Currently devices like ventilator or air conditioning are not supported on HSDK board. Note: read Known issues section 1
The Navigation application can simulate automotive driving on map. All movement changes are accompanied by the sound of a voice assistant. This application requires navigation data, which is not provided by AGL build system. Download navigation data from navi_data, then unpack this archive and put navi_data directory on /root partition in /home/ direcotory Usage:
- Make a log click in some place of the map (similar to finger tap).
- When a point on the map is present, click the button on the top of right corner.
- When the root is drawn, click the button from the paragraph "2" again.
The Dashboard application is a monitor of car condition. Currently no sensors are supported to demonstrate capability of this application.
- afm-util - utility, which can start application without GUI.
$ afm-util list
$ afm-util run <application_id>
- In case of multiple audio devices use pacmd and pactl commands:
$ pactl list sinks short
$ pacmd set-default-sink 1
- Bluetooth:
- Usefull link: https://wiki.automotivelinux.org/bluetooth
- To reset any know pairings just remove everything in directory /var/lib/bluetooth/{bluetooth-adapter-mac}/
- Scrolling temperature in HVAC application causes crash.
- In runtime can happen unpredictable crash (usually in first few minutes). In this case reboot the board.
- Running all 8 applications can cause lack of available RAM. Before OOM killer kill HomeScreen application check free memory using free utility. If the number of free memory is less them 10000 run:
sync; echo 1 > /proc/sys/vm/drop_caches