Thank You for your continued support and contributions!
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.EDIT: Some themes seem to specify functionality mapped to a "hold button", does that have a mapping yet?
Got me a surfans f20. Rockbox loaded, it boots and plays fine on everything I plugit into headphones speakers but I have a pair of speakers it just won't work with. Changed the cord several times, each time original firmware plays just fine but rockbox won't. Any ideas I am stumped.
Quote from: Oktan on May 03, 2021, 09:29:12 AMI can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.EDIT: Some themes seem to specify functionality mapped to a "hold button", does that have a mapping yet?Oktan, you might be interested in this patch that was merged the other day: Gerrit #3408.This implements Quickscreen, so to change the quick settings, hold down play on the while playing screen and then scroll left/right with the scrollwheel or up/down with the seek buttons. You can add any option in the settings to the quickscreen from the context menu when you're hovered over them in the settings (if that makes sense). I think by default it has shuffle and repeat on left and right.Otherwise, Stop was moved to holding the power button, and the hotkey (by default, this shows the playlist) can be brought up by moving the scroll wheel on the while playing screen.Sidenote, I wonder if themes which do something when the hold switch is activated generally do the same action when the softlock (press power) is activated?
Fantastic, now all we need is something like the hold button for themes that use that to show the album artwork, but I guess that's partly on the theme designers.
Quote from: Oktan on May 14, 2021, 11:30:05 AMFantastic, now all we need is something like the hold button for themes that use that to show the album artwork, but I guess that's partly on the theme designers.The theme engine already treats softlock the same as a physical lock switch, so if the theme was set up to do something when the screen is locked, then it should work as expected on the ErosQ series.
Try getting a look at the LCD controller if possible. it's a tough one to deal with if you don't know exactly what it is, especially if it does not follow the standardized MIPI DCS command numbering. It is probably attached to the LCD module (it's essentially a PHY for the panel, AIUI, so it has to be nearby).My guess is that bluetooth is underneath that silver case by the flash... it looks like there's an antenna nearby. If you're careful those cases can sometimes be peeled off and clipped back on, but sometimes they are soldered to the board. You can probably figure it out via the OF kernel, even without getting a look at it though.Unfortunately you probably need to figure out GPIOs the hard way. Buttons are easy since you can poll for them in software, but internal stuff like reset and power pins for accessory ICs are difficult without accurate source code. Since you've got the case open, some of those pins might be accessible, others probably not. You can reverse engineer the OF's kernel, since it is virtually guaranteed to follow the ingenic blob for >99% of the code, and the GPIOs will be encoded in data tables or code that you can eventually dig out if you are persistent enough.
No chance that the SoC drives the panel directly. Take look at the pinout on the ST7789V which is probably the M3K's LCD controller. The panel has 240 pins (this should be true of all 320x240 panels, I believe) and your ribbon cable is 18 pins, so there's definitely a controller present.The ST7789V is about 15.1x0.7mm... your controller is probably same or similar dimensions. Actually, looking at DSCF2985.JPG from your first batch of photos, it would likely be hidden underneath that black plastic or sticker below the panel, where the ribbon cable is going into. Personally, I'd be afraid of destroying the LCD module by peeling that off.You can pick the LCD controller initialization command table out of the kernel -- you'd likely have to do this even if you do identify the controller IC -- and the command set might give you a way to identify the controller indirectly.
For disassembling the kernel you can use Ghidra. Ghidra's quite powerful and it has analyzers and a decompiler which will do a ton of work for you, I really can't recommend it enough. You don't need to read much assembly code or understand it "by hand" in most cases, thanks to the decompiler. It occasionally breaks down, but usually that's a sign you need to provide some extra annotation manually to stop it getting confused (it isn't perfect after all). But be warned: I lost some work a handful of times to crashes/hiccups, although the project reloaded fine afterward. So you probably want to save often. Of course if you have access to any other reverse engineering tools, by all means use them. But none of the free ones I've seen are as good as Ghidra.Kernel sources and datasheets can be found here: https://github.com/YuanhuanLiang/X1000. I didn't take a close look at it but it seems right. (vitt13 posted that link on the M3K thread.) It seems the Ingenic FTP servers are no longer accessible and they've changed all the links on their main site to point to a baidu drive which apparently won't let you download unless you have an account... I think (it's all in Chinese).You can probably grab the kernel binary from the update package; otherwise you need to dump your device's NAND (a good idea anyway). Often nanddump is present on the OF's filesystem and with that you can take dumps using a script. Make sure you take normal dumps and dumps including OOB data; the OOB data will let you know if there is any ECC scheme in use.Once you get the kernel image, it is likely in xImage format, with a 32-byte header prepended to the kernel binary / decompressor stub. You can pick that apart manually if you want, but I was lazy and used 'binwalk -e' to extract the vmlinuz image automagically.When importing the vmlinuz image into a ghidra project, you should pick MIPS LE 32 bit architecture and map the base address as 0x80010000. It's possible they're using another base address, but I doubt it. (You will be able to tell if it's wrong because all the jump targets would be messed up and not pointing to proper function prologues.)I also have some notes from my own kernel disassembly which might help you in locating certain functions, platform_data structs, & other tables that'll tell you GPIOs and other useful things, but I have to clean them up first so they're intelligible. Would you be interested in them?I'm not too sure about resources on reverse engineering as such. I wasn't able to find a whole lot myself, but I have enough background knowledge of C/systems programming/low level stuff in general, that once I discovered Ghidra, I was able to make good headway on my own. With vaguely accurate source code, it wasn't too hard to piece things together, although somewhat time consuming at first due to not knowing what I'm doing.PS: porting Rockbox to the M3K was the first time I ever did anything serious with operating systems, hardware drivers, or the like; ie. beyond the level of a 'hello world' OS. It also took me about a year to piece everything together... So don't get discouraged if things are hard going at first. You just have to keep at it, and eventually things will start to make sense.Good luck!
Page created in 0.218 seconds with 20 queries.