User Tools

Site Tools


prime_161_akaiforce

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
prime_161_akaiforce [2023/09/06 16:44] ounsatnprime_161_akaiforce [2023/11/22 17:09] (current) ounsatn
Line 1: Line 1:
 This page is building...  This page is building... 
 +
 To Create Prime image for Akai force you can follow this procedure.  To Create Prime image for Akai force you can follow this procedure. 
-It's working on release 1.61 and 2.12 ( on 2.12 you have to copy more required files ) +It's working on release 2.1.2.
  
-Go to Engine Prime Download and get firmware 1.61 :+Go to Engine Prime Download and get firmware 2.1.:
  
 https://enginedj.com/downloads https://enginedj.com/downloads
Line 13: Line 14:
  
 With Hex Editor ,( i'am using HXD) , search for Hex Value : FD 37 7A 58 5A  With Hex Editor ,( i'am using HXD) , search for Hex Value : FD 37 7A 58 5A 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexSearch.JPG}}
    
 +It will give you something like this : 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexEdit.JPG}}
 +
 +
 +Then : 
 +Go to position 2B94 and remove everything upper the string : 
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexSearchResult.JPG}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexSearchResult.JPG}}
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexSearch.JPG?200x50}} 
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexEditSuppr.JPG?200x50}} 
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/EngineDjAKF2.JPG?200x50}} 
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/EngineDjAKF.JPG?200x50}} 
  
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/7zExtract.JPG?200x50}}+{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/HexEditSuppr.JPG}} 
 + 
 +Then save the file and quit Hex Editor. 
 +Next go to file folder where you saved the .img.  
 +With 7zip, click the file and choose Extract Here :  
 + 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/7zExtract.JPG}} 
 +The will extract the Filesystem image which is approx 512 mb.  
 +You can copy this new file ( 512 mb ) on your SD card.  
 + 
 + 
 +Then we are going to a create filesystem overlay which will contain our files.  
 +On you media card location ( eg : /media/02EB-7AEF/ ) use the following command to create a new filesystem file.  
 + 
 +<code> dd if=/dev/zero of=lower-fs.img bs=4096 count=204800 </code> 
 + 
 +It will create a file which size is 800 mb. 
 +to give Ext4 FS type to our file, issue this comand : 
 + 
 +<code> mkfs -t ext4 lower-fs.img </code>  
 + 
 + 
 +Create a folder named overlay on your media card ( eg : /media/02EB-7AEF/overlay).  
 + 
 +<code> mkdir /media/02EB-7AEF/overlay </code>  
 + 
 + 
 +Mount the created filesystem file ( lower-fs.img) on overlay folder :  
 +<code> mount lower-fs.img overlay </code>  
 + 
 + 
 +Go to your overlay folder :  
 +<code> cd overlay </code> 
 + 
 + 
 +And create the following folder :  
 + 
 +<code> 
 +mkdir overlayupper 
 +mkdir overlaywork 
 + 
 +ls => lost+found overlayupper overlaywork 
 + 
 +</code> 
 + 
 +Then we have to populate our overlayupper folder with the content of the denon firmware.  
 +You can view the 512 Mb file from denon with 7zip, and extract / transfert files.  
 +Another way is to mount the 512Mb file in another folder, and to copy files from there. That's i will do.  
 + 
 +I put the 512Mb file in a folder named SC5 on my media card :  
 + 
 + 
 +02EB-7AEF is the name of my SD, it will be another on your side.  
 + 
 +<code> 
 +# pwd 
 +/media/02EB-7AEF/SC5 
 + 
 +# ls -al 
 +
 +total 512256 
 +drwxr-xr-x 2 root root 131072 Mar 24 14:45 . 
 +drwxr-xr-x 60 root root 131072 Mar 24 14:36 .. 
 +-rwxr-xr-x 1 root root 524288000 Mar 24 13:53 PRIMEGO-2.1.2-Update 
 + 
 +# mkdir /media/02EB-7AEF/PRIMEGOIMGFILE 
 + 
 +# mount PRIMEGO-2.1.2-Update /media/02EB-7AEF/PRIMEGOIMGFILE 
 + 
 +# cd /media/02EB-7AEF/PRIMEGOIMGFILE 
 + 
 +-- Here you see the content of the rootfs, mounted on /media/02EB-7AEF/PRIMEGOIMGFILE 
 +# ls 
 +bin dev home lib32 lost+found mnt proc  
 +run srv tmp var 
 +boot etc lib linuxrc media opt root  
 +sbin sys usr 
 + 
 +# cd usr 
 + 
 +# ls 
 +Engine bin lib libexec qt share 
 +SoundSwitch etc lib32 mkspecs sbin 
 + 
 +</code> 
 + 
 +copy files :  
 + 
 +<code> 
 +# cp -a Engine/ /media/02EB-7AEF/overlay/overlayupper/ 
 +# cp -a SoundSwitch/ /media/02EB-7AEF/overlay/overlayupper/ 
 +# cp -a qt /media/02EB-7AEF/overlay/overlayupper/ 
 +</code> 
 + 
 + 
 +Some extra/new libs are required :  
 +<code> 
 +# cp -a lib/libboost* /media/02EB-7AEF/overlay/overlayupper/lib/ 
 +# cp -a lib/libicu* /media/02EB-7AEF/overlay/overlayupper/lib/ 
 + 
 +</code> 
 + 
 +All this files are put in the lower-fs.img file.  
 + 
 +Then we will use the magical trick of the overlay to map what we have in overlayupper on /usr :  
 +to do that i do :  
 + 
 +<code> 
 +mount -t overlay -o  
 +rw,relatime,lowerdir=/usr,upperdir=/media/02EB-7AEF/overlay/overlayupper,workdir=/med 
 +ia/02EB-7AEF/overlay/overlaywork overlay /usr 
 +</code> 
 + 
 +And when you go to /usr , Taddaaaa! you have your content : 
 + 
 +<code> 
 +# cd /usr 
 + 
 +# ls 
 +Engine SoundSwitch bin etc lib lib32 libexec  
 +qt sbin share 
 + 
 +</code> 
 + 
 +Once done, before running Engine you have to EXPORT some var :  
 + 
 +<code> 
 +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/qt/lib 
 +export AIR_SCREEN_ROTATION=-90 
 +</code> 
 + 
 + 
 +And to spoof product-code, you have to bind a file with new product code. 
 +to do this do a copy of the real file : 
 + 
 +<code> 
 +eg : copy "/sys/firmware/devicetree/base/inmusic,product-code" "/media/02EB-7AEF/inmusic,product-code" 
 + 
 +</code> 
 + 
 +Then edit the file : 
 +<code> 
 +vi "/media/02EB-7AEF/inmusic,product-code"  
 +</code> 
 + 
 +Change ADA2 or what you have by JP11 for the prime GO ( Shift + R on vi to replace )  
 +Dont remove the ending ^@  
 + 
 +Then mount the file like this :  
 +<code>  
 +mount -o bind "/media/02EB-7AEF/inmusic,product-code" "/sys/firmware/devicetree/base/inmusic,product-code" 
 +</code> 
 + 
 +And rename the file /usr/Engine/Content/KnownDevices.vfsb to anything else :  
 +<code> 
 +eg : mv /usr/Engine/Content/KnownDevices.vfsb /usr/Engine/Content/KnownDevices.bak 
 +</code> 
 + 
 + 
 + 
 +__**/!\ : before running prime , rename /usr/bin/dfu-util to dfu-utill.**__ 
 +to do this :  
 +<code> 
 +mount remount / -o rw,remount 
 +mv /usr/bin/dfu-util /usr/bin/dfu-utill 
 +</code> 
 + 
 +Otherwise Prime may try to update STM32 firmware in dfu mode.  
 + 
 + 
 +Now you can run prime, however like this , there is no mapping done to use it.  
 + 
 +Some examples of assignments files are available in the folder :  
 +/usr/Engine/AssignmentFiles/PresetAssignmentFiles/ 
 + 
 +And then to run Prime  
 +Issue the command ( in /usr/Engine) 
 +<code> 
 + 
 + 
 + 
 +# ./Engine 
 +</code> 
 + 
 +In the starting log you'lle see :  
 + 
 +<code> 
 +in the log we see the model and assignment files :  
 +QCommandLineParser: option not defined: "configuration" 
 +DenonDJ "PRIME GO 2.1.2 eaf7ec4c8" starting up 
 +QCommandLineParser: option not defined: "cleanupQSettings" 
 +FORCING SWAP INTERVAL = 1 
 +FORCING SWAP INTERVAL = 1 
 +air.assignments.deviceadapter: Could not find file: "Akai_Pro_Force_Public_Assignments.qml" 
 +air.assignments.deviceadapter: Could not find file: "Akai_Pro_Force_Public_Device.qml" 
 +air.assignments.deviceadapter: Could not find file: "Akai_Pro_Force_MIDI_Port_Assignments.qml" 
 +air.assignments.deviceadapter: Could not find file: "Akai_Pro_Force_MIDI_Port_Device.qml" 
 +qml: Sending Initilization Message Akai Pro AMX 
 +qml: Sending initialization message for PRIME GO ... 
 +qml: Initialization phase ended 
 +qml: Query absolute position controls 
 +</code> 
 + 
 +So the Next step to use prime is to create/configure qml files used by Prime to map buttons and led.  
 +On Akai force you can make 4 qml in relation with audio interface. 
 +I was not able to verify if public qml file are working because on my first try i had these 4 files. 
 + 
 +"Akai_Pro_Force_Public_Assignments.qml" 
 +"Akai_Pro_Force_Public_Device.qml" 
 +"Akai_Pro_Force_Private_Assignments.qml" 
 +"Akai_Pro_Force_Private_Device.qml" 
 + 
 +Now i'm only using private files and it's working well.  
 + 
 + 
 + 
 +<del>Public files are used to map inputs, 
 +Private files are used to map Led / Pad colors output</del> 
 + 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/EngineDjAKF2.JPG}} 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/EngineDjAKF.JPG}} 
 + 
  
  
prime_161_akaiforce.1694011464.txt.gz · Last modified: 2023/09/06 16:44 by ounsatn

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki