prime_161_akaiforce
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| prime_161_akaiforce [2023/09/06 16:44] – ounsatn | prime_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 | + | 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 |
| https:// | https:// | ||
| 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:// | ||
| + | It will give you something like this : | ||
| + | {{http:// | ||
| + | |||
| + | |||
| + | Then : | ||
| + | Go to position 2B94 and remove everything upper the string : | ||
| {{http:// | {{http:// | ||
| - | {{http:// | ||
| - | {{http:// | ||
| - | {{http:// | ||
| - | {{http:// | ||
| - | {{http:// | + | {{http:// |
| + | |||
| + | 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:// | ||
| + | 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 : / | ||
| + | |||
| + | < | ||
| + | |||
| + | It will create a file which size is 800 mb. | ||
| + | to give Ext4 FS type to our file, issue this comand : | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | Create a folder named overlay on your media card ( eg : / | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | Mount the created filesystem file ( lower-fs.img) on overlay folder : | ||
| + | < | ||
| + | |||
| + | |||
| + | Go to your overlay folder : | ||
| + | < | ||
| + | |||
| + | |||
| + | And create the following folder : | ||
| + | |||
| + | < | ||
| + | mkdir overlayupper | ||
| + | mkdir overlaywork | ||
| + | |||
| + | ls => lost+found overlayupper overlaywork | ||
| + | |||
| + | </ | ||
| + | |||
| + | 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. | ||
| + | |||
| + | < | ||
| + | # pwd | ||
| + | / | ||
| + | |||
| + | # 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 / | ||
| + | |||
| + | # mount PRIMEGO-2.1.2-Update / | ||
| + | |||
| + | # cd / | ||
| + | |||
| + | -- Here you see the content of the rootfs, mounted on / | ||
| + | # 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 | ||
| + | |||
| + | </ | ||
| + | |||
| + | copy files : | ||
| + | |||
| + | < | ||
| + | # cp -a Engine/ / | ||
| + | # cp -a SoundSwitch/ | ||
| + | # cp -a qt / | ||
| + | </ | ||
| + | |||
| + | |||
| + | Some extra/new libs are required : | ||
| + | < | ||
| + | # cp -a lib/ | ||
| + | # cp -a lib/libicu* / | ||
| + | |||
| + | </ | ||
| + | |||
| + | 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 : | ||
| + | |||
| + | < | ||
| + | mount -t overlay -o | ||
| + | rw, | ||
| + | ia/ | ||
| + | </ | ||
| + | |||
| + | And when you go to /usr , Taddaaaa! you have your content : | ||
| + | |||
| + | < | ||
| + | # cd /usr | ||
| + | |||
| + | # ls | ||
| + | Engine SoundSwitch bin etc lib lib32 libexec | ||
| + | qt sbin share | ||
| + | |||
| + | </ | ||
| + | |||
| + | Once done, before running Engine you have to EXPORT some var : | ||
| + | |||
| + | < | ||
| + | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/ | ||
| + | export AIR_SCREEN_ROTATION=-90 | ||
| + | </ | ||
| + | |||
| + | |||
| + | And to spoof product-code, | ||
| + | to do this do a copy of the real file : | ||
| + | |||
| + | < | ||
| + | eg : copy "/ | ||
| + | |||
| + | </ | ||
| + | |||
| + | Then edit the file : | ||
| + | < | ||
| + | vi "/ | ||
| + | </ | ||
| + | |||
| + | 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 : | ||
| + | < | ||
| + | mount -o bind "/ | ||
| + | </ | ||
| + | |||
| + | And rename the file / | ||
| + | < | ||
| + | eg : mv / | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | __**/!\ : before running prime , rename / | ||
| + | to do this : | ||
| + | < | ||
| + | mount remount / -o rw, | ||
| + | mv / | ||
| + | </ | ||
| + | |||
| + | 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 : | ||
| + | / | ||
| + | |||
| + | And then to run Prime | ||
| + | Issue the command ( in / | ||
| + | < | ||
| + | |||
| + | |||
| + | |||
| + | # ./Engine | ||
| + | </ | ||
| + | |||
| + | In the starting log you' | ||
| + | |||
| + | < | ||
| + | in the log we see the model and assignment files : | ||
| + | QCommandLineParser: | ||
| + | DenonDJ "PRIME GO 2.1.2 eaf7ec4c8" | ||
| + | QCommandLineParser: | ||
| + | FORCING SWAP INTERVAL = 1 | ||
| + | FORCING SWAP INTERVAL = 1 | ||
| + | air.assignments.deviceadapter: | ||
| + | air.assignments.deviceadapter: | ||
| + | air.assignments.deviceadapter: | ||
| + | air.assignments.deviceadapter: | ||
| + | qml: Sending Initilization Message Akai Pro AMX | ||
| + | qml: Sending initialization message for PRIME GO ... | ||
| + | qml: Initialization phase ended | ||
| + | qml: Query absolute position controls | ||
| + | </ | ||
| + | |||
| + | So the Next step to use prime is to create/ | ||
| + | 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. | ||
| + | |||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | Now i'm only using private files and it's working well. | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | Private files are used to map Led / Pad colors output</ | ||
| + | |||
| + | {{http:// | ||
| + | {{http:// | ||
| + | |||
prime_161_akaiforce.1694011464.txt.gz · Last modified: 2023/09/06 16:44 by ounsatn