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