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:50] ounsatnprime_161_akaiforce [2023/11/22 17:09] (current) ounsatn
Line 34: Line 34:
 You can copy this new file ( 512 mb ) on your SD card.  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
 +4
 +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/EngineDjAKF2.JPG}}
prime_161_akaiforce.1694011808.txt.gz · Last modified: 2023/09/06 16:50 by ounsatn

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki