Tool/software:
Hi Folks -
We are using Code Composer Studio 20.2.0 to build our MSP430 project. I recently discovered the documentation on building projects from the command line, and it's been great for our team to be able to quickly run builds without starting up the IDE. As a next step, I'm trying to get the CCS build tools installed inside a Docker container image so we can run these builds from our CI/CD pipeline.
Doing some research around the forums, I've discovered the options to run the installer from the command line in unattended mode. This is the current command we are working with:
CCS_20.2.0.00012_linux/ccs_setup_20.2.0.00012.run \ --unattendedmodeui none --mode unattended --prefix /opt/ti/ccs --enable-components PF_MSP430,PF_MSP432
The install is failing on one of the components that appears to require access to udev:
Script output: Problem running post-install step. Installation may not complete correctly Error running /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh --install: cp: cannot create regular file '/etc/udev/rules.d/71-bh-permissions.rules': No such file or directory
The purpose of this container is only to build the code, so we do not need any components related to JTAG or device debugging, but I cannot figure out how to disable them during the install. Does anyone have experience with setting up this version inside a Docker container for CI builds?
Our container image is currently based on Ubuntu 24.04.
Full component install log attached:
Log started 06/26/2025 at 01:58:37
Preferred installation mode : unattended
Trying to init installer in mode unattended
Mode unattended successfully initialized
[01:58:37] DEBUG: Backing up USCIF.OUT
Preparing to Install
Preparing to Install
Directory already exists: /opt/ti/ccs/ccs/ccs_base
Directory already exists: /opt/ti/ccs/ccs/ccs_base/emulation
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Bh560v2
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Bh560v2/firmware
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Docs
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/uscif
Unpacking files
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/BH-SLA-01.rtf
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/BH-SLA-01.txt
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/BH560v2-Config.ico
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/blackhawk.ico
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/ReadMe.txt
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Bh560v2/firmware/ReadMe.txt
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Docs/ReadMe.htm
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/Bh560v2Config.properties
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/logo.jpg
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/Bh560v2Config.jar
Directory already exists: /opt/ti/ccs/ccs/ccs_base
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/uscif
Directory already exists: /opt/ti/ccs/ccs/ccs_base/emulation
Directory already exists: /opt/ti/ccs/ccs/ccs_base/emulation/drivers
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/targetdb
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers
Directory already exists: /opt/ti/ccs/ccs/ccs_base/common/uscif
Directory already exists: /opt/ti/ccs/ccs/ccs_base/emulation
Directory already exists: /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install
Creating directory /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Utility
Unpacking files
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh510usb_server
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560eth_server
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/libbhemuapi.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhcmapi.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemu28x.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemu55x.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemu6400_11.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexm.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexm0.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemuicepick_c.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemuicepick_d.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560v2u_server
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-LAN560_20pin_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-LAN560_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB2000_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB510L_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB510W_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560bp_20pin_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560bp_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560m_20pin_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560m_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560_20pin_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-USB560_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-XDS560v2-LAN_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-XDS560v2-USB_Connection.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/connections/BH-XDS560v2-USB_Mezzanine.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510arm11.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510arm7.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510arm9.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510arp32.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c28x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c55x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c646x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c64xp.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c64x_11.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c669x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c66xx.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c674x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510c6x.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cla.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cla1.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexA.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexA15.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexA7.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexA9.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexM.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexM0.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cortexR.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510csstm.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cs_child.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510cs_dap.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510dap_pc.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510etb11.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510etbcs.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510icepick_c.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510icepick_d.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iLF.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iME.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_arp32.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_calc5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_ecd5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_ilf5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_ime5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_ipe5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510iva2_mc5.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/targetdb/drivers/bhemu510pru.xml
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh510w-wifi.cfg
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560v2-dbgjtag.sh
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560v2-help.sh
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/Bh560v2Config_start.sh
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/BH560v2-Config.PNG
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/BH560v2-Help.PNG
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/71-bh-permissions.rules
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Utility/ReadMe.txt
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/BhEthStatus
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bhnetcfg
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560eth_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560ubp_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560usbm_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560usb_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560usb_server
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/libbh560v2e_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/libbh560v2u_io.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/libbhemujscl.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/libxds560v1_ecom.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemu6000.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemu6400_plus.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemuarm7.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemuarm9.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexa.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexa15.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexa7.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexa9.so
Unpacking /opt/ti/ccs/ccs/ccs_base/emulation/drivers/libbhemucortexr.so
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560eth.out
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560ubp.out
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560usb.out
Unpacking /opt/ti/ccs/ccs/ccs_base/common/uscif/bh560usbm.out
[01:58:37] DEBUG_x64: Changing File Permissions 755 (common/uscif, emulation/drivers, emulation/Blackhawk/Install)
LINUX
[01:58:37] DEBUG: USCIF.OUT exists or BHUSCIF.OUT does not exist.
[01:58:37] DEBUG: Cleaning Up BHUSCIF.OUT
Creating Uninstaller
Creating uninstaller 25%
Creating uninstaller 50%
Creating uninstaller 75%
Creating uninstaller 100%
Installation completed
LINUX
[01:58:38] DEBUG: Changing File Permissions 755 (uninstallers: /opt/ti/ccs/ccs/uninstallers/{uninstall_bh_emupack})
[01:58:38] DEBUG: Changing File Permissions 666 (log file: /tmp/bitrock_installer.log)
[01:58:38] DEBUG: Running script to install device driver RULES file.
Executing /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh --install
Script exit code: 1
Script output:
ERROR: failed to copy /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/71-bh-permissions.rules to /etc/udev/rules.d/71-bh-permissions.rules
Script stderr:
cp: cannot create regular file '/etc/udev/rules.d/71-bh-permissions.rules': No such file or directory
Error running /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh --install: cp: cannot create regular file '/etc/udev/rules.d/71-bh-permissions.rules': No such file or directory
Problem running post-install step. Installation may not complete correctly
Error running /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh --install: cp: cannot create regular file '/etc/udev/rules.d/71-bh-permissions.rules': No such file or directory
Problem running post-install step. Installation may not complete correctly
Error running /opt/ti/ccs/ccs/ccs_base/emulation/Blackhawk/Install/bh_driver_install.sh --install: cp: cannot create regular file '/etc/udev/rules.d/71-bh-permissions.rules': No such file or directory
Log finished 06/26/2025 at 01:58:38