{"id":293,"date":"2014-11-19T16:08:38","date_gmt":"2014-11-20T00:08:38","guid":{"rendered":"http:\/\/blog.danielparnell.com\/?p=293"},"modified":"2014-11-19T16:08:38","modified_gmt":"2014-11-20T00:08:38","slug":"more-drobopro-fs-fun","status":"publish","type":"post","link":"https:\/\/blog.danielparnell.com\/?p=293","title":{"rendered":"More DroboPro FS fun"},"content":{"rendered":"<p>I&#8217;ve been playing around with my old DroboPro and in the process managed to frag the uBoot config rendering the unit basically useless as the vxWorks side didn&#8217;t boot the special disk applications required for correction function. \u00c2\u00a0Fortunately I have another Drobo, in this case a Drobo FS. \u00c2\u00a0I was able to disassemble that (I didn&#8217;t even break the waranty void sticker) and gain access to the serial ports on the main board. \u00c2\u00a0From there I was able to read the Drobo FS uBoot config and use that to guess what the values needed to be for the DroboPro. \u00c2\u00a0After doing this the vxWorks side started working again \ud83d\ude42<\/p>\n<p>I also figured out what is up with the Drobo dashboard app. \u00c2\u00a0It definitely uses the serial number reported by the Drobo to determine the type unit it is talking to. \u00c2\u00a0It turns out the device type is the 5th from last digit, so if your serial number is TDBxxx7xxxx you have a Drobo FS for example.<\/p>\n<pre>0 = \"Drobo\"\r\n1 = \"Drobo S\"\r\n2 = \"Drobo 5D\"\r\n3 = \"Drobo Mini\"\r\n4 = \"DroboPro\"\r\n5 = \"B800i\"\r\n6 = \"DroboElite\"\r\n7 = \"Drobo FS\"\r\n8 = \"Drobo 5N\"\r\n9 = \"B800fs\"\r\nA = \"DroboPro FS\"\r\nB = \"B1200i\"\r\n<\/pre>\n<p>So, how do I go about changing the serial number reported by the firmware? \u00c2\u00a0After a bit of messing around in the uBoot environment I discovered the <code>printenv<\/code> command. \u00c2\u00a0This shows all the environment variables. \u00c2\u00a0It is then possible to track down the variable containing the serial number and change it to the desired value. \u00c2\u00a0Using the <code>saveenv<\/code> command is not enough however, it is necessary to call another custom command <code>updateFlashToken<\/code> to have the vxWorks side of things take notice of the new value.<\/p>\n<p>The thing I did wrong was try out another of the custom commands <code>tdsetup<\/code>. \u00c2\u00a0Don&#8217;t make the same mistake I made as it will frag all of the custom set up and leave you with a boat anchor. \u00c2\u00a0I was just lucky enough to have another one to examine to get the config back \ud83d\ude42 \u00c2\u00a0I think I need to see if I can find a way to reload the firmware again as it appears I may have damaged something else as it is still not showing up quite right in the Drobo dashboard, but at least it is back to running the file server and so on \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been playing around with my old DroboPro and in the process managed to frag the uBoot config rendering the unit basically useless as the vxWorks side didn&#8217;t boot the special disk applications required for correction function. \u00c2\u00a0Fortunately I have another Drobo, in this case a Drobo FS. \u00c2\u00a0I was able to disassemble that (I &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.danielparnell.com\/?p=293\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;More DroboPro FS fun&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35,41],"tags":[40,39,64,63],"class_list":["post-293","post","type-post","status-publish","format-standard","hentry","category-hardware","category-reverse-engeneering","tag-drobo","tag-drobopro","tag-firmware","tag-hacking","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p561S3-4J","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=293"}],"version-history":[{"count":1,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/293\/revisions"}],"predecessor-version":[{"id":294,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/293\/revisions\/294"}],"wp:attachment":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}