Audizine - An Automotive Enthusiast Community

Results 1 to 9 of 9

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    Unblocking Nav Database Access Following Updates on MMI 3G/3G+ Systems

    As delivered from the factory, MMI 3G (High) and Plus systems navigation databases are activated with an FSC file specific to the database release stored in /mnt/efs-persist/FSC. When an end-user updates the navigation database without completing the SVM - Activation process with ODIS and information obtained from the purchased nav database activation document, further access to the navigation database will be blocked by the system. A work-around to unblock access to the navigation database following an update is to terminate system process vdev-logvolmgr shortly after it starts and creates regular file /mnt/lvm/acios_db.ini in the QNX filesystem, as described by Keldo in early 2016. This work-around essentially disables the normal navigation database activation process used by Harman-Becker on their MMI3G systems.

    A common approach used by so-called "activator" SD card scripts is to start a background sub-shell at system startup that waits for the appearance of regular file /mnt/lvm/acios_db.ini and terminates process vdev-logvolmgr after a brief wait. The shell commands for the background sub-shell are included commonly in a (new) wrapper shell script that starts process mme-becker, as defined in mmelauncher.cfg.

    Objections I have to this approach are that (1) it adds a new, unnecessary shell script (mme-becker.sh) to launch the background sub-shell and then start the actual mme-becker process; and (2) possible variations in mmelauncher.cfg files across generations (High / Plus), platforms, and regions implies that "sed" must be used to edit the file so that the new wrapper script is called (rather than calling mme-becker, directly). I believe this approach was used for the work-around because an early method of accessing internet data through the internal WLAN device used wrapper script mme-becker.sh to force the DHCP client to start on interface uap0 (due to required access to certain HDD mounts not available earlier in the QNX boot process).

    A simpler approach to disabling the normal nav database activation process is to add the background sub-shell commands to an existing shell script that is called by system process srv-starter-QNX as defined by /etc/mmi3g-srv-starter.cfg, since the commands used by the sub-shell are stored in flash memory and available immediately. Inspection of /etc/mmi3g-srv-starter.cfg shows that shell script /usr/bin/manage_cd.sh is called relatively early in the boot process on both 3G High and Plus systems. The purpose of the script is to provide interface /dev/shmem/CD0_STARTED :
    Code:
    #!/bin/ksh
    for i in 1 2 3 4
    do
       mount -t udf -r -o format=udf:joliet:iso9660e:iso9660:audio,case=asis /dev/cd0 /fs/cd0
       mount_ret=$?
       if test $mount_ret -eq 0; then
          touch /dev/shmem/CD0_STARTED
          echo cd0 mounted after $i try
          break
       fi
    done
    if test $mount_ret -ne 0; then echo cd0 mount failed!; fi
    Minimally, the commands for the background sub-shell can be appended to manage_cd.sh simply with:
    Code:
    mount -uw /mnt/efs-system
    echo "(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev-logvolmgr) &" >> /mnt/efs-system/usr/bin/manage_cd.sh
    Practically, installation of the "patch" should confirm that the patch has not been applied already:
    Code:
    mount -uw /mnt/efs-system
    if test -z "$(grep 'acios_db.ini' /mnt/efs-system/usr/bin/manage_cd.sh)"
    then
        echo "/usr/apps/benchmark/TimeLogger 'Starting NAVDB patch'" >> /mnt/efs-system/usr/bin/manage_cd.sh
        echo "(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev-logvolmgr) &" >> /mnt/efs-system/usr/bin/manage_cd.sh
    else
        echo "NAVDB patch already applied !"
    fi
    Backing out of the "patch" is simple enough with "sed", but is not likely needed as long as access to the navigation database is needed (i.e., to use the Navigation functions of the MMI 3G system).

    A ZIP archive of a MMI QNX shell script to patch manage_cd.sh (and to remove the old mme-becker.sh patch) is posted in my GitHub repository HERE. --g
    Last edited by DrGER; 05-22-2023 at 07:23 AM.
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


    © 2001-2025 Audizine, Audizine.com, and Driverzines.com
    Audizine is an independently owned and operated automotive enthusiast community and news website.
    Audi and the Audi logo(s) are copyright/trademark Audi AG. Audizine is not endorsed by or affiliated with Audi AG.