5.7.11

Seagate Dockstar - Accessible serial and JTAG port

Even though usually the Dockstar is accessible via ssh or web interface with OpenWRT, sometimes the onboard pin header comes handy either for using the serial console or for resurrecting a bricked device with JTAG. Therefore it is useful to have the pin header accessible even when the casing is closed. This is not an easy task to make in a nice way due to the clean and elegant look of the device. Previously this has been done by others with connecting only the serial port pins above one USB port, but I managed with all of the 10 pins as shown below. Be sure to have some 2 row 2.0 mm pitch receptors and headers before beginning this hack!
Also note that the warranty for the device will be void after such modification, therefore only do it if you 100% sure what you are doing!

First, I soldered a 10-wire ribbon cable between a 2x5 and a 2x7 receptor (both 2 mm pitch). The latter is important to be 2x7, as it will hold itself mechanically with the first and last unoccupied row (see picture on the right). The wire should not be longer than 8 cm, and should be connected in 90 degree to the 2x5 receptor. The point is that by connecting all the corresponding pins, all pins will be accessible from outside with the same wiring scheme as on the onboard header! It is also a good idea to have pin#1 marked with some paint (I used silver marker here).

As there are some openings on the upper casing, one of them has to be made a little bit bigger, so that the connector will fit in. In my opinion, these holes are merely for design and are not necessary for proper ventilation. Therefore it is appropriate to have them used for our purposes, as this will make virtually no damage on the elegant look of the device. 


First the upper casing has to be removed, as shown in my earlier post. Then the metal shielding has to be cut and removed to some extent as shown in the photo on the left. As it is apparent, I chose the side with the reset button, where there is enough space for an additional connector. The unnecessary plastic can easily be removed with a small rasp. First, remove the plastic between the two ventilation holes. Then an additional 3 mm has to be removed from the top as well in order to have the connector fitted above the PCB. It should be checked with both the connector and PCB in place if they indeed fit and if the casing can be closed. If so, then the glue the connector to its place. For this purpose I used a two component epoxy, but other glues that are strong enough can be used as well. 

Be extremely careful however as the glue can go into the holes of the receptor rendering it unusable afterwards! Here the additional two rows of the connector (one at the top and one at the bottom) provides additional strength so that it will not break out. Then the only thing remains is to attach the other end to the PCB, carefully close the casing and test the serial or JTAG connection!

2.7.11

Kernel BUG at kernel/timer.c:681 and broken ext4

I just ran into a mysterious issue with a Virtualbox virtual machine running linux kernel 2.6.37-rc1 (although this might not be kernel specific). After a power outage, reboot always ended with a kernel panic with the following message (among a rather long screen dump):

Clocksource tsc unstable (delta = 784015673 ns)
---[ end trace a732f57055898f20 ]---
Switching to clocksource acpi_pm
Kernel panic - not syncing: Attempted to kill init!

[...]

kernel BUG at kernel/timer.c:681!
invalid opcode: 0000 [#1]
last sysfs file:
CPU0
Modules linked in:

[...]

First, I found many forum posts stating that tsc clocksource has to be replaced with acpi_pm (or something else) already in GRUB, but this didn't help. Then I figured that in recovery mode, having fsck to repair the root filesystem, puts it back to normal. So: even though it does not seem to be related, a broken filesystem can cause the kernel panic above!