Korg Forums Forum Index Korg Forums
A forum for Korg product users and musicians around the world.
Moderated Independently.
Owned by Irish Acts Recording Studio & hosted by KORG USA
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The Kronos Inner Workings - For the brave ones ;-)
Goto page 1, 2, 3 ... 23, 24, 25  Next
 
Post new topic   This topic is locked: you cannot edit posts or make replies.    Korg Forums Forum Index -> Korg Kronos
View previous topic :: View next topic  
Author Message
roblof
Full Member


Joined: 12 Dec 2008
Posts: 102

PostPosted: Thu May 17, 2012 9:11 pm    Post subject: The Kronos Inner Workings - For the brave ones ;-) Reply with quote

Please see this thread for the initial information regarding this thread:

http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=71950
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 8:04 am    Post subject: Reply with quote

Ok, a quick background on this thread...

This is about how the Kronos works from the inside, and ideas on how to improve it's system to allow it to do more useful stuff.

We are discussing things like /etc/* on the actual Kronos itself.

From the inside, I took some pictures, not sure if you guys are interested to see them, but anyhow, the Kronos is a small Intel motherboard, with a tiny CPU, no CPU-fans there, since the Intel CPU is not expected to do much, other than mounting the filesystem and connecting to the internal controller (I like the name SHARK, call it something!)... So, it's a basic Intel Motherboard (Call it MOBO for argument sake) connected to the whole Kronos system via USB

To clear confusion, the whole Kronos (Main LCD, Sliders, Controlls, KEYs, I/O Connections, etc) are all connected via the SHARK system, these are not connected into the VGA port of the MOBO. The Original MOBO has some built-in sound-card, but this is not even used, the only item used by the MOBO is a USB-Connection into SHARK and a SATA connection into the HD for mounting the OS, Encrypted FileSystem for Shark to read from.

All ports on the MOBO (Keyboard, MOuse, Network, 1-USB, Audio, VGA) are not connected anywhere.

I am assuming that the EVA.img (and the other image) are some sort of EXT2/3 encrypted filesystem that is mounted for SHARK's use, I am getting closer to think that the Linux does not even decrypt these files nor decrypt-mount them for SHARK.

If these can be read, then the key is all there, as these are what and how the SHARK load itself up, I would also imagine that a copy of /etc would exists there for later comparison to the Linux /etc to ensure that no one tampers with the original /etc to intercept it.

Theortically, you could unplug the SHARK usb connector from the Kronos's MOBO and connect it to your own PC (in my case I am waiting for the KVM to arrive for that), and it should be able to boot up just fine from the test-PC that has a copy of the Kronos's Sata disk.

The plan now is to see what's being fed into the SHARK system via it's USB driver, I will look into that soon and understand the Protocol, once done, then I would be using the KVM switch that I am buying from eBay to fire some direct USB commands into the interface to see how it respond, once that's done, it's a better chance to understand what to do next.

The Kronos is a very nice kit, however, it's incomplete, the gyst of all this is to enhance it to make it useful, it's not intended to disrupt Korg's business in any way, With these enhancements made, it might help Korg to boost their sales of the Kronos even more!... which is the message I am trying to send, similar to jail-breaking an iPhone which is now no more than legal !.

Again, any source-code will not be shared because of that. We are just sharing what's obvious so far.

Kind Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
1jordyzzz
Platinum Member


Joined: 03 Mar 2012
Posts: 688
Location: Indonesia

PostPosted: Fri May 18, 2012 8:18 am    Post subject: Reply with quote

Hey i'm interested to see those picture...! post them...
_________________
Love my kronos 88 Very Happy
Love my yamaha psr s910 as well

Korg Kronos 88, Yamaha PSR s910, Korg C720, Yamaha DTX 520, Focusrite Scarlett 18i6, a pair of Yamaha HS80 in (soon not to be) an unproperly treated room..
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 8:30 am    Post subject: Reply with quote

Sure, no problems.

Just extracting from my camera at the moment, whilst pointing out some issues with the original design using Photoshop.

These should be posted in the next couple of hours or so.

Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
SeedyLee
Platinum Member


Joined: 13 Sep 2006
Posts: 1370
Location: Perth, Australia

PostPosted: Fri May 18, 2012 9:10 am    Post subject: Reply with quote

Heider wrote:

I am assuming that the EVA.img (and the other image) are some sort of EXT2/3 encrypted filesystem that is mounted for SHARK's use, I am getting closer to think that the Linux does not even decrypt these files nor decrypt-mount them for SHARK.


Nice work. I'm still very much of the opinion that the actual Kronos software contained within EVA.img runs natively on the x86 atom, rather than the ARM processor. The ARM processor in the Kronos is too underpowered for the sound generation and effects duties of the KRONOS, and I specifically remember an article featuring an interview with Dan Philips himself where he mentions that one of the benefits of the dual-core Atom was using one core for EXis, and the other for effects.

That was the whole design philosophy of the OASYS and KRONOS - moving away from difficult-to-program DSPs and SOCs, and using more general purpose architectures that were more powerful.

If the bulk of the system was running on the ARM/SHARK, then would it not be easier to simply have the ARM access a filesystem directly? There would be no need for a convoluted dual-architecture (ARM/x86) system, just to load an application to an ARM processor and provide basic filesystem duties. Linux has been running natively on ARM for years!

My guess is that the (relatively low-spec'd) ARM processor is responsible for all control-surface duties, as well as providing Linux with a framebuffer for the UI.

Also, if the EVA.img was been loaded into the ARM's executable memory space for execution, there would be little need for the Linux kernel to have an OMAP framebuffer driver.
_________________
Current Equipment:
Korg Kronos 2 88, Reface CS, Roland JV-1080, TE OP1, Moog Subsequent 37, Korg ARP Odyssey, Allen & Heath Zed 18, Adam F5, MOTU MIDI Express XT, Lexicon MX200 & MPX1, Yamaha QY700, Yamaha AW16G, Tascam DP008ex, Zoom H6, Organelle, Roland J6 & JU06A

Previous: Triton LE 61/Sampling/64MB/4GB SCSI, MS2000BR, Kronos 1 61, Monotribe, NanoKontrol, NanoKeys, Kaossilator II, Casio HT3000, Roland VP-03, Reface DX, Novation Mininova, MPC One
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 9:38 am    Post subject: Reply with quote

Thank you SeedyLee,

My plan for now is to run the Kronos from a VM and not make a lot of changes to the internal/original SATA disk, I can't wait for my KVM to arrive to start testing, I know it would work 100% since the only connection between SHARK/ARM and MOBO is a USB cable, which is standard anyway. Having the USB moved from MOBO into VM/Laptop should be the same if the same drivers run.

Besides, CPUs are so fast now, that it does no longer matter for Korg to use high or low level languages to come up with something

I also guess that the name OA.si and OA.rc was originally sourced from the original OAsys keyboard.

I guess the reason behind a Linux (intermediate) is to allow easy upgrades and more control/features etc, I agree with you that it's much easier than writing DSPs/E2/PLCCs etc as opposed to what Yamaha does.

I just hope that whatever in the IMG files are writing for Intel processors as this is what I am very good at. I have a strong feeling that it's a Linux mount that is called/used by SHARK to load up some files and execute into it's own frame-buffer.

We shall see hopefully.

For the record, the reason I am doing all this is:

1) The ENTER key is pretty useless when you are inside a menu, the EXIT key work, but the the ENTER key does nothing! to select an item, you have to stare at the LCD and press the ENTER on the LCD itself rather than from the keyboard.

2) Above the joystick are SW1 and SW2, also not many useful items can be linked, I would like to be able to assign SW1 to change the SCALE into a non-standard (arabic, Scottish, etc) scale by on/off SW1 or SW2. likewise, the pedal switch cannot do this neither, I don't know what were they thinking when they decided not to implement this.

3) Most importantly, and the reason why I am desperate to change the OS, is to be able to move between a set-list or Combi programs without stopping the Rhythem/Karma playback, this is crucial, and currently making the Kronos pretty useless for me in live-performance.

4) The ability to switch the output/speakers OFF whilst keeping the headphones ON. It's very annoying at the moment that I have to unplug my speakers from the mains to keep the headphone playing when I am using the keyboard at 3am or something.

4) If this is successful, and have more time, then I have a nice idea (a wish) that a set-list can be dynamic, which means that the ability to be able to program the set-lst to play the style/rhythem for some bars and then move onto the next set-list, very handy when it comes to different verses within a song. and the ability to switch between them just like an arranger keyboard, only the case here would be that the buttons on the set-list screen are programmable and text-editable. It would be great.

5) Even more nicer, (sounds impossible) the ability to make the set-list play a sequence, and move into another sequence without stopping playback.

Stopping the playback when changing an item is what's killing me about the Kronos.

If Korg can just listen and implement the above list, it would make it the best keyboard ever, and would stop people like me from trying to do these enhancements as they should work as a core of the great system.

Korg UK Support have just been bouncing me back without listening to any of the above enhancement requests.

I hope this can change, I'd do anything for the above to work, that's the reason behind the work I am doing at the moment, I hope I am making sense, yes, crazy, but hopefully making sense.

Kind Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 10:19 am    Post subject: Reply with quote

Finally, some images...

I have scaled these down from 16mp into 2mp images for easy download:

1) Original Motherboard (MOBO) pictures:






2) Pictures showing SHARK:
Front:


Back-1:


Back-2:



3) Kronos's design flow, if you mount your Kronos on a stand/wall holder facing downwards, then the weight of the Kronos would push the bottom metal bar downwards, which causes sqweeks when playing the mid-keyboard section, the fix is to put a nut+bolt into the already-drilled hole for you to make the bar stronger, see below:



4) Finally, here is the network connector, quite nicely done, I can now hook it up along with my home network to access the stuff on it later on or control some stuff on it when I managed to get into the whole OS...




I hope these are nice !...

kind Regards
Heider
[/img]
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
roblof
Full Member


Joined: 12 Dec 2008
Posts: 102

PostPosted: Fri May 18, 2012 2:14 pm    Post subject: Reply with quote

Great work guys!

Ok, I've spent a few hours trying to get a shell with a fully running system. No luck so far. The edit/reboot cycle is taking forever Crying or Very sad

Some/all of the files in /etc are checked against crc or md5-hash. I've verified that it's not a simple checksum since swap'ing two letters triggers the error message about a corrupt file system.

When you get that message the number in parenthesis is the actual return value from /bin/loadoa.

With some slight guessing, it seems that loadoa executes /bin/insmod and when it is doing a load of the /sbin/loadmod.ko this is where the file checking takes place and eventually fails.

On the interesting side is that if I start a shell right before /bin/loadoa and run it manually instead, I get a slightly different behavior where it states a different .ko file that fails to load.

Running /bin/ShowReauthScreen [n] will print different messages on the lcd.

I've also somewhat verified that the MOBO bios is the bad guy not recognizing all usb cd/dvd-units. This issue may only be resolved with a fixed bios.
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 2:38 pm    Post subject: Reply with quote

Roblof,...

You can get a shell with a smile by doing the folloiwng:

1) startup, with a connected keyboard (either from Kronos or your VM if you are doing like me)...

2) On the startup screen press SPACE. You should see the options pop-up

3) Go to the long second boot line, and then press "E" to edit it

4) Add "init=/bin/bash" to the end of the line, Press ENTER to go back into the boot options..

5) Select the line you edited, and then Press "B" to boot it.

Once that's done, you should get a shell, after that, you need to either mount manually, or run these scripts one by one.

I hope this puts a Smile on your face !

Kind Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
roblof
Full Member


Joined: 12 Dec 2008
Posts: 102

PostPosted: Fri May 18, 2012 3:55 pm    Post subject: Reply with quote

Heider wrote:
Roblof,...

You can get a shell with a smile by doing the folloiwng:
.....

Oh, I've already done that. I was documenting it in the old thread.

My problem is that I've not been able to startup the system to a fully Kronos-state. I'm obviously missing out on a step while doing all the manual stuff Confused

Have you managed to do this properly, so that the startup actually works?

When I have a working system I'm going to do a mem-dump...
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Fri May 18, 2012 5:47 pm    Post subject: Reply with quote

Hi Robolf,

Sorry took some time to come back, my kid had a swimming lesson...

Now, back to your question, the answer is "not yet"... It's too risky to start it from the Kronos' itself.

My plan (mentioned in the earlier thread), is to wait until I receive my USB-KVM switch, this will be connected to the Kronos MOBO and my laptop to chose which one connects to SHARK. I am using a VM for that which is almost ready with the changes I am making, I expect to receive the KVM hopefully either tomorrow or anytime next week. I don't think it's a good idea (yet) to start ripping the Kronos filesystem apart. Even when I already backed it all up in full.

I don't think you are doing anything wrong with the manual start, if you noticed OA.rc there is a note that says (... use this line to allow some time for the USB to ... ) I think it was somewhere under ETHERNET powerup.

Anyway, I think the problem you are having might be one of two things :

1) Most likely it's a timeout issue, whereas something is waiting and because you are human (not machine speed), you might be taking a long time to run a certain command.

2) There is somewhere in the code that is checking the filesystem or who is logged in (maybe?), and detecting that something is not right hence stopping the booting up.

To find out, if you have manual scripts, try to encapsulate them all in one big caller-script type and see if they run quite fast, would the Kronos power up normally? (you might get a screen that says "Invalid filesystem, please re-install or something from SHARK's LCD screen")...

Anyway, I hope this helps.

Good luck, I will let you know how it goes when the KVM is here. I can't wait for it...

Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
SeedyLee
Platinum Member


Joined: 13 Sep 2006
Posts: 1370
Location: Perth, Australia

PostPosted: Sat May 19, 2012 3:49 am    Post subject: Reply with quote

Personally, I have no interest in modifying the Kronos itself - I am content working with the system as designed. I've been interested purely from the perspective of better understanding what makes the Kronos tick, but I draw the line at disassembling or otherwise interfering with the unit in such a way that would void my warranty.

The understanding I have gathered so far of the Kronos' architecture has been gleaned from simply viewing the files in the software update archives, which are in no way protected or obfuscated. I think it's slightly murky territory from a software licensing sense in attempting to run the Kronos software outside of the Kronos, or otherwise reverse engineering the encrypted software, even though I think it's technically possible to achieve.

Whilst it's an interesting technical challenge - and I love a technical challenge - the last thing I want is for Korg's IP to be compromised, which could in turn affect their monumental investment in this product.

I think Korg are dedicated to continual improvements of this product, and they do implement user feedback and feature requests. Personally, I'm content waiting for Korg to implement such features, rather than hacking a fine product. But I certainly respect that others have a different view on this. I was never one to jailbreak my iPhone, for example (although I did root an Android handset once, because it was full of bugs that made it unusable and the manufacturer never released a firmware update for it. This is in stark contrast to Korg where we've had two major software updates in the space of 6 months).
_________________
Current Equipment:
Korg Kronos 2 88, Reface CS, Roland JV-1080, TE OP1, Moog Subsequent 37, Korg ARP Odyssey, Allen & Heath Zed 18, Adam F5, MOTU MIDI Express XT, Lexicon MX200 & MPX1, Yamaha QY700, Yamaha AW16G, Tascam DP008ex, Zoom H6, Organelle, Roland J6 & JU06A

Previous: Triton LE 61/Sampling/64MB/4GB SCSI, MS2000BR, Kronos 1 61, Monotribe, NanoKontrol, NanoKeys, Kaossilator II, Casio HT3000, Roland VP-03, Reface DX, Novation Mininova, MPC One
Back to top
View user's profile Send private message
1jordyzzz
Platinum Member


Joined: 03 Mar 2012
Posts: 688
Location: Indonesia

PostPosted: Sat May 19, 2012 4:20 am    Post subject: Reply with quote

wow this has become complex computer technical thread... keep on going!
@heider
thanks! nice pic! so the whole switches, screen, button, joystick, keybed is all connected from a single USB port! unbelieveble!! at least they can make use of the vga port and a few extra USB ports...
_________________
Love my kronos 88 Very Happy
Love my yamaha psr s910 as well

Korg Kronos 88, Yamaha PSR s910, Korg C720, Yamaha DTX 520, Focusrite Scarlett 18i6, a pair of Yamaha HS80 in (soon not to be) an unproperly treated room..
Back to top
View user's profile Send private message
SeedyLee
Platinum Member


Joined: 13 Sep 2006
Posts: 1370
Location: Perth, Australia

PostPosted: Sat May 19, 2012 4:29 am    Post subject: Reply with quote

Out of interest, what headers on the motherboard are connected to by the two black cables? Are they serial (RS-232), or additional USB headers?
_________________
Current Equipment:
Korg Kronos 2 88, Reface CS, Roland JV-1080, TE OP1, Moog Subsequent 37, Korg ARP Odyssey, Allen & Heath Zed 18, Adam F5, MOTU MIDI Express XT, Lexicon MX200 & MPX1, Yamaha QY700, Yamaha AW16G, Tascam DP008ex, Zoom H6, Organelle, Roland J6 & JU06A

Previous: Triton LE 61/Sampling/64MB/4GB SCSI, MS2000BR, Kronos 1 61, Monotribe, NanoKontrol, NanoKeys, Kaossilator II, Casio HT3000, Roland VP-03, Reface DX, Novation Mininova, MPC One
Back to top
View user's profile Send private message
Heider
Guest


Joined: 17 May 2012
Posts: 102
Location: Wimbledon

PostPosted: Sat May 19, 2012 10:37 am    Post subject: Reply with quote

Hi SandyLee,...

It's just one USB connection to MOBO. Full stop. That's it Smile

I am waiting for my KVM, didn't arrive today yet Sad the plan is to power up SHARK on my UBUNTU VM server, so far, all seems to be in order as the SHARK doesnt seems to mind which OS is hosting the OASYS drivers / software! I hope this gives the work another dimension for LINUX lovers, rather than trying to get the crippled OS on the Kronos to work the other way around!

Good luck, will see how it goes,...

Kind Regards
Heider
_________________
Heider Sati
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    Korg Forums Forum Index -> Korg Kronos All times are GMT
Goto page 1, 2, 3 ... 23, 24, 25  Next
Page 1 of 25

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group