Rockbox Development > New Ports

Sandisk Sansa Connect

<< < (9/9)

Maybe this is stupid question but why don't you run rockbox as an app? With native rb you loose network connectivity right?


--- Quote from: wodz on November 14, 2011, 04:39:20 PM ---Maybe this is stupid question but why don't you run rockbox as an app? With native rb you loose network connectivity right?

--- End quote ---

Quite a few kernel modules are closed-source (this includes DSP. AIC3X is handled in binary, non-free, library). Moreover I am not interested in setting up obsolete toolchain just to build binaries that can be run on the target. I am not interested in updating the Linux distribution that is being run there.
Well, network subsystem could be added to Rockbox at some point in the future, I think. Anyway, at current point you don't loose anything, as OF doesn't allow you to connect (without workarounds; and you have to downgrade OF to have network support at all) to the network.

Reviving the thread as OF bootloader contains arbitrary code execution vulnerability. The exploit is available at Rockbox bootloader can be installed using only Open-Source tools (no need to rely on any official firmware packages).

Hi all,

I bought a Sansa Connect recently. After softbricking it almost immediately, I restored the original firmware (OF) to version (latest from SanDisk), and installed Rockbox version a4e422db9e-211113 (latest commit as of writing this). All using desowin's zsitool, of course.

Issues I've come across:

* I had to compile the bootloader (commit a4e422db9e) myself, as I don't see it anywhere on the site nor in the auto-built Maybe that's good though, since this port isn't quite finished. Or I just missed it in the ZIP...
* I can't figure out how to boot into the original firmware (OF). The SansaConnect wiki page states that holding the "PREV" button on boot will allow the user to do so, but either I can't find that button, or it simply isn't working. (Every button works in the OF, from when I was last able to test.)
* .
* This may be related to the above - it seems the keymap is very wrong. What works:
*     Power button. I can press it to boot the device (probably not related to Rockbox) and hold it down to power off the device. I can also use it to exit some menus; mostly in the "Debug" submenu.
*     Hold switch. It works as expected, turning off the backlight (and LCD after a second or two) and the buttons when turned ON (hold), and vice versa when turned OFF (unhold).
*     Scrollwheel. Works like an iPod, except it physically rotates instead of swiping your finger across the surface. However, see below...
*     Select button. Does as you would expect.
*     Back button (left of scrollwheel). I can use it to go up within most menus and rewind music.
*     Forward button (right of scrollwheel). I can use it to fast-forward music.
*     Home button (top of scrollwheel). It shows the current playlist when in the "Now Playing" menu, so I'm assuming it's working as the hotkey.
*     Play/Pause button (bottom of scrollwheel). It exits the "Now Playing" menu. See below...
* .
* What *doesn't* work:
*     Scrollwheel - When scrolling in one direction, the selection will occasionally change in the *opposite* direction - e.g., if I'm scrolling to the left, the selection will occasionally go down. This usually only lasts for a single menu option, as in the selection will change in the usual direction after moving backwards once (it's almost unnoticeable when scrolling quickly).
*     Scrollwheel - After mounting the device on a computer via USB, then ejecting it and removing the cable (returning to the Rockbox menu), the scrollwheel will cease to function until any button is pressed, e.g. the select button or the back button. Even the Volume buttons work to fix the scrollwheel!?
*     Play/Pause button - it exits the "Now Playing" menu. On the main menu, it opens the "Shuffle / Repeat" menu. It doesn't play nor pause music. So I can't listen to music. See below as well...
*     Volume buttons - they don't do anything, as far as I can tell.
*     "Left" and "Right" buttons (under the screen) - they also do not do anything.
* .
* Rather than just the Play/Pause button, playback may be broken entirely, as none of the music I select from the "Files" menu starts automatically (tested with FLACs and MP3s).
* The battery reports being 40% charged when, in the OF, the battery is at 100%. I'm trying to calibrate it now to see if that fixes it, though I'm having some trouble as I'm not sure how to keep the player on without being able to play music.
* Occasionally, the player will suddenly power off, before the "Idle Timeout" is exceeded. Though I may be wrong; it could be that I simply hadn't noticed the timeout had been exceeded.
BTW, it's neat that I can edit the files on the (normally inaccessible) internal flash via Rockbox. I edited some files to see if I could re-enable Wi-Fi functionality, but haven't been able to reboot into the OF to test it since installing Rockbox...

UPDATE: After letting the player run for a while, the Volume buttons are working now?? Music starts playing automatically when selected, too! The Play/Pause button was even able to start an MP3 once, but after that reverted to its previous behavior. Apparently, the Power button can also be used to stop playing music entirely (i.e. the "square" icon instead of the pause icon). The rest of the buttons still work as stated above.
The speaker also works, which is cool!

What I haven't tested:

* The 3.5mm aux port
* Plugins, besides "oscilloscope" (to keep the screen on while calibrating battery)
* Whether if what does/doesn't work (buttons, audio playback) is retained after a reboot
Any functionality I haven't mentioned works fine, as far as I can tell - though I doubt I've tested everything.

I'll report more issues as I find / remember them, if wanted. Let me know if you all need me to do anything in particular.

One last question: when updating Rockbox, do I need to update the bootloader (flashed via zsitool) as well? Or do I just need to update the files in the .rockbox folder on the micoSD card?

EDIT: It does seem that the Sansa Connect will automatically power off, even when plugged in. Although this doesn't happen while playing music... Maybe it's the "Idle Timeout" after all.
Also, after a reboot, I'm still able to play music through the speaker! I didn't have to wait after the player booted at all.

EDIT2: I forgot to mention: the player treats every USB connection as data+power (as opposed to just power), even if it's connected to a power brick (not a computer). This causes issues with the bootloader.
When cold-booting, the device tries to connect to a non-existent computer over USB, but times out. It appears to then load the Rockbox firmware, which seems to work, but it gets stuck on the splash screen and needs to be hard-rebooted.

EDIT3: I left my Connect plugged in, charging, and playing music overnight. In the morning, I found it had powered off. Based off of Rockbox's "running time", I'm guessing it was on for only 45 minutes to an hour.
Also, when I powered it back on in the morning, I got the "Low Battery - Charging" screen (built into the ROM); force-rebooting it fixed that, and Rockbox reported the battery as being at 100%. So I guess calibrating it worked!

EDIT4: After leaving it plugged in for a few hours, the Connect reported the battery as being around 65%, despite being fully charged. I guess the calibration did NOT work.
Also, I've made some progress towards booting the OF - you have to hold the "Left" button (below the screen and above the scrollwheel) while coldbooting the player. It will then look for vmlinux.bin and initrd.bin on the SD card (not the internal storage). I tried copying the vmlinux and initrd SRR files from the "no-wifi" Sansa Connect Recovery Tool, renaming them to BIN files, but had no such luck - the bootloader would get stuck on "Loading initrd.bin".

EDIT5: I got the OF to boot!! I just had to remove SanDisk's magic (the first 16 bytes) from both vmlinux.bin and initrd.bin. Although now it's stuck on the "sansa" screen with the five colored circles; probably because I messed with the OF too much. I'll see what I can do about that, if anything...

EDIT6: Indeed, it was becuase I had edited some strings file, and the Connect didn't like that. Though I'm not sure what the root cause of the issue was; I had replaced a particular strings file in my firmware version 1.2.0 filesystem from the same file from version 1.1.2, which should've worked fine, as I could see no other significant differences between the 1.1.2 and 1.2.0 filesystems / initrds. I guess it had to do with the kernel? So strange...

I figured out the above issue by looking at the "error.txt" log file in the root of the Connect's internal filesystem, which one can access via Rockbox. It'll contain any errors the OF ran into the last time it was started.

EDIT7: By the way - after reverting the edits I made to that strings file I mentioned earlier, and changing a few other files in the internal filesystem (namely some XML files), I *was* able to enable the old Wi-Fi-oriented options on the Sansa Connect. It was even able to list available Wi-Fi networks! I didn't try connecting to any, though; I'm pretty sure that wouldn't work, anyway, due to the Connect trying to ping a no-longer-existent URL in order to verify the connection. Might be possible to change the URL it tries to connect to, though, by messing with the internal FS / initrd... not much of a point in doing so, though.
It would be much more interesting to implement Wi-Fi functionality on Rockbox, I imagine. Multiplayer DOOM when??


[0] Message Index

[*] Previous page

Go to full version