davilla / atvusb-creator

Automatically exported from code.google.com/p/atvusb-creator
27 stars 53 forks source link

atvDNSDaemon failure at boot up - cannot factory restore #506

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Turned off successfully hacked ATV (moving) (old ver. b10) 
2. Turned on ATV at new house - now see bootup code after initial apple logo
3. Code runs through multiple attempts to initiate network connections and 
fails after 10 
attempts
4.  ATV unresponsive and no additional activity after 10 attempts with multiple 
errors
5.  Multiple attempts to force factory restore at bootup with remote, including 
unpairing remote
6.  Attempt to repatch ATV with b13 - errors during patch
7.  Continued errors at bootup (atvMod.dropbear, DNSDaemon, DSNSecrets)
8.  Continued inability to factory restore

What is the expected output? What do you see instead?
Expect to get to factory restore option, instead, ATV boots to apple then crash 
code

What version of the product are you using? On what operating system?
ATV 3.01 (original 1.0 box)
initial USB-creator Mac ver. b10, retried with ver. b13

Please provide any additional information below.

I did, on two occasions successfully get to the factory restore page, but after 
running diagnostics, 
ATV booted as normal.  But each time I turned off the ATV (once by unplugging, 
once by NitoTV 
shutdown function) I get the error log - so now I just want to start fresh with 
a factory restore.

I have also tried to force a factory restore after booting with the patchstick 
but no go.  I have 
verified the remote is still working (tested with Frontrow on my Mac) and it is 
the same remote 
I've been using with this ATV.

Have also tried to SSH in via ethernet and wireless network on several 
occasions and during 
several points along my attempts but Mac is unable to resolve host 
appletv.local 

Almost all web research I've done suggests the 'force factory restore at 
bootup' method is the way 
to go, but I just can't get there.

Am happy to provide any additional information required/requested.  Am 
currently moving a 
family of 4 from Europe to US so may not respond for a couple of days at a time,

Thanks for any assistance,
adam

Original issue reported on code.google.com by akrisc...@gmail.com on 29 Mar 2010 at 12:15

GoogleCodeExporter commented 9 years ago
Thank you for providing such a verbose explanation of your problem. 

It seems like your Apple TV has experienced some corruption. I think that if 
your 
getting multiple problems booting, you'd best start off fresh with a restore.

There are two ways you can repair your Apple TV:

1. Try holding Menu and - keys for 6 seconds on boot, this will hopefully force 
the 
recovery menu for you and you should be able to select the restore option. This 
might not fix your problem though.
2. Alternatively, make a rebuild USB stick. This is basically a patchstick, but 
you 
use rebuild.sh instead of patchstick.sh. This script will format your HDD and 
restore core files to it, rather than installing software like a patchstick. 

Nab that from here:

http://code.google.com/p/atvusb-creator/source/browse/trunk/atvusb-
creator/payloads/rebuild/rebuild.sh

On the payloads partition, create a folder called rebuild, inside put the 
following:

OS.dmg - any fw file (3.0.2 would be easiest to obtain -- 
http://mesu.apple.com/data/OS/061-7495.20100210.TAVfr/2Z694-6013-013.dmg)

boot.efi - nab this from the DMG

com.Apple.Boot.plist - same

mach_kernel.prelink - same

BootLogo.png - same (unless you want to change)

Note: If atvDNSDaemon is not running - it is not possible to resolve 
appletv.local, 
try the IP address instead.

Good luck and if you have any questions ask, 
see http://code.google.com/p/atv-bootloader for more info

:)

Original comment by Sam.Nazarko on 29 Mar 2010 at 8:31

GoogleCodeExporter commented 9 years ago
Sam,

Thanks for the help -its exactly what I needed.  I've followed your directions 
but before I plug in my rebuild-
stick I wanted to verify I've done everything correctly.  I started with a 4 GB 
patchstick already created with 
atvusb-creator-1.0.b13.  The patchstick created with that program has 2 
partitions, 1 called "disk2s2" which is 
26.10MB.  The 2nd partition is called "patchstick" that is 3.63GB.  All the 
files I copied while following your 
instructions were placed in the "patchstick" partition.  All files were copied 
using Finder.  the dmg file was 
opened using DiskImageMounter.app

1.  Renamed patchstick.sh to patchstick.sh.old - this was so that the 
patchstick script would not run when 
plugged into the ATV.
2.  Copied rebuild.sh to the root of the patchstick partition
3.  Created a folder called "rebuild" inside the payloads folder 
(Patchstick\payloads\rebuild)
4.  Downloaded and opened 2Z694-6013-013.dmg
5.  Copied mach_kernel.prelink from the dmg's root (OSBoot) into the created 
"rebuild" folder
6.  Copied boot.efi, com.Apple.Boot.plist and BootLogo.png from 
OSBoot\System\Library\CoreServices inside 
2Z694-6013-013.dmg to the "rebuild" folder (boot.efi show's as "locked" in OS 
X's Finder)
7.  Renamed 2Z694-6013-013.dmg to "OS.dmg" and copied it to rebuild folder.

So now, the "Patchstick" has the following in its root/mountpoint
1.  Patchstick.sh.old
2.  Rebuild.sh
3.  Payloads folder

Inside payloads folder is the following
1.  patchstick folder (this contains everything put in it by the ATV-USB-Creator
2.  Rebuild folder

Rebuild folder contains
1.  boot.efi (this file shows as "locked" by OS X's Finder)
2.  BootLogo.png
3.  com.Apple.Boot.plist
4.  mach_kernel.prelink
5.  OS.dmg (renamed from 2Z694-6013-013.dmg)

Questions:
1.  I noted that you mentioned a "payloads partition" and wasn't sure if this 
meant I needed the payload files 
in a separate partition from the rebuild script or that I just needed to rename 
the partition from "patchstick" to 
"rebuild"  The script seems to be looking for "rootfs\payloads\rebuild"  How 
should I format/partition the 
thumbdrive?

2.  You mention I need a file called "OS.dmg"  I assume that this is just 
2Z694-6013-013.dmg renamed to 
OS.dmg as I did.  Don't know what "fw file" means.

3.  Is the fact that boot.efi is locked going to cause me any problems?  Finder 
shows that the file is read only

4.  I've attached the rebuild.sh script for good measure.

Again, many many thanks,
adam

Original comment by akrisc...@gmail.com on 1 Apr 2010 at 2:22

Attachments:

GoogleCodeExporter commented 9 years ago
Well done, you've put the files in the right places. Yes you rename the 
firmware 
file to OS.dmg, that's it.

Fire it up, tell us how it goes.

Regards payloads partition, I meant the partition in which payloads reside.

Best way to see if it works is trying it :)

Original comment by Sam.Nazarko on 1 Apr 2010 at 6:53

GoogleCodeExporter commented 9 years ago
Alright - seems to have worked in some respects but not in others.  
Unfortunately, not in the way that means 
my ATV is back up and running.  Here's what happened.

Tried rebuild-stick as described above but after rebuild-stick booted it 
started looking for patchstick.sh which 
it couldn't find (as I had renamed it to patchstick.sh.old).

I assume that the ATV-USB-Creator boots the linux environment and then a batch 
file tells it to run the 
patchstick script.  I looked at creating a bootable patchstick from your 
website but it looks like I need to create 
it using a linux system which I don't have.  

So, instead I renamed "rebuild.sh" to "patchstick.sh" and reinserted the 
thumbdrive - the script (rebuild 
renamed as patchstick) apparently ran properly with no errors.

Unfortunately the ATV will not boot into recovery mode.  I can tell that the 
ATV is responding to the Menu+"-" 
because the TV shows no connection until I lift my fingers from the remote.   
However it just shows the Apple 
logo and thats about it.

2 things of note

1.  When linux boot environment shows errors when trying to assign USB (IRQs?).
2.  The bootlogo isn't displaying properly - like saving an image with 
transparency into a format that doesn't 
recognize transparency - the logo is not enclosed in a square.

Any thoughts?

adam

Original comment by akrisc...@gmail.com on 1 Apr 2010 at 2:50

GoogleCodeExporter commented 9 years ago
"now" enclosed in a square (not "not" enclosed in a square)

Original comment by akrisc...@gmail.com on 1 Apr 2010 at 5:23

GoogleCodeExporter commented 9 years ago
It is necessary to rename rebuild.sh to patchstick.sh, unless you edit the 
bootloader. 

As for your errors,that is normal, by "the script ran properly", it rebuilt 
everything, wiped the partitions etc? One important thing is that after this 
process 
takes place the OsBoot is blank, and you have to Factory Restore which takes 
the 
fresh image from recovery and loads it. This gets all the necessary files 
kickstarted again.

Did you try a new bootlogo other than default BootLogo.png?

Original comment by Sam.Nazarko on 2 Apr 2010 at 12:48

GoogleCodeExporter commented 9 years ago
Ran/attempted to run factory restory (menu+"-" for >6 secs) but seems stuck at 
Apple logo.  Never came up 
with the language prompt or the prompt for restart, diagnosis or factory 
restore.  Let it sit on the apple logo 
for about 30 minutes before unplugging, replugging and them attempting factory 
restore again - with same 
result.

used default bootlogo.png

Good news is that I no longer get the code showing all the DNSDaemon errors, 
bad news, only see logo and 
nothing else.

is there any additional info I can give to help pinpoint the problem or is 
there something I should try next?

Again, many, many thanks
adam

Original comment by akrisc...@gmail.com on 2 Apr 2010 at 12:54

GoogleCodeExporter commented 9 years ago
You could try running telnetd (easiest way is running a patchstick without a 
patchstick.sh), aTV then forces the load of telnetd. But you'd be on your own 
here, 
you can look at the atv-bootloader project for this. There are some gparted 
tips.

Original comment by Sam.Nazarko on 2 Apr 2010 at 2:37

GoogleCodeExporter commented 9 years ago
To Sam.Nazarko
Same story with me. I'm stuck with an "inverse Apple logo" (black apple inside 
white
square) after running your patchstick. Maybe try with lower version of OS? 

Original comment by zin...@gmail.com on 9 Apr 2010 at 7:22

GoogleCodeExporter commented 9 years ago
OS? 
Patchstick version? 
What payloads did you try to load?

Have you tried forcing a recovery with Menu and - buttons? 

Please be as verbose as possible.

Sorry I need more info to help. 

Original comment by Sam.Nazarko on 11 Apr 2010 at 10:48

GoogleCodeExporter commented 9 years ago
Sam, 
sure:
MacOS 10.6.3
Apple TV with 3.x version. (the last available one)
Patchstick was created with atvusb-creator-1.0.b13.
I installed NitoTV and I tried to connect it over AFP to my NAS. System 
informed me
that I should install Smart Installer first. I did it but without success - I 
was not
able to mount volume via AFP. Tried to install Smart Installer second time and 
then
system hanged out. After reset I went into endless booting loop with blinking 
Apple
logo on screen. System resets in the middle of booting procedure. Pressing Menu 
–
button leaded to reboot. I was not able to get to menu with language.
I installed patchstick again; it went smoothly thru installation but same staff 
after
rebooting.
I built "rebuild" patchstick according to your advise with 2Z694-6013-013.dmg 
image.
System managed to boot from it. It installed everything without errors and 
formatted
disk.
After reboot I got "inversed" Apple logo on screen and system stopped (in fact 
yellow
led is blinking like disk is processing some operations). Forcing recovery with 
Menu
and - leads to reboot and once again Apple logo and system stops without 
passing to
language menu.
I tried also to use old payload - 1.0 - with a same result.
So no chance to do Factory Reset

Original comment by johan.ko...@gmail.com on 12 Apr 2010 at 1:13

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Okay,

Tried rebuilding again? Make sure it's set up right for your drive - the 
default 
rebuild.sh is for the official Fujitsu brand 40GB disk. It won't work for a 
160GB or 
custom size. Even other 40GB disks might not work if the size is slightly 
different. 
Can you confirm HDD size?

Original comment by Sam.Nazarko on 12 Apr 2010 at 2:49

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
It is 160GB..... 
So what to do now ???

Original comment by johan.ko...@gmail.com on 12 Apr 2010 at 5:27

GoogleCodeExporter commented 9 years ago
That's why the script failed. You used the wrong offsets. Use these: 

Number  Start     End         Size        File system  Name Flags 
 1      40s       69671s      69632s      fat32        primary boot 
 2      69672s    888823s     819152s     hfs+         primary atvrecv 
 3      888824s   2732015s    1843192s    hfs+ primary 
 4      2732016s  312319663s  309587648s  hfs+ primary

.. to change the offsets in rebuild.sh

Original comment by Sam.Nazarko on 13 Apr 2010 at 7:25

GoogleCodeExporter commented 9 years ago
Sorry to intrude on the thread, but I am having the same exact issue. I have a 
160GB
drive and have reached the point where the inverted Apple appears and stays 
there,
everything else up to then worked perfectly. 

Pardon the ignorance as I'm not much of a programmer, exactly what do I need to
change in the script so that the offsets are correct for a 160GB drive? Could 
you
give me an example? May be a stupid thing to ask, but thanks in advance!

Original comment by chazbu...@gmail.com on 14 Apr 2010 at 5:44

GoogleCodeExporter commented 9 years ago
Sam,
Do you mean to change below part of the script ?
----------------------------------------------------------
echo "        * Wiping paritition table on /dev/sda ..."
        dd if=/dev/zero of=/dev/sda bs=4096 count=1M
        # create the GPT format
        parted -s /dev/sda mklabel gpt
        echo "        * Creating EFI partition /dev/sda1"
        parted -s /dev/sda mkpart primary fat32 40s 69671s
        parted -s /dev/sda set 1 boot on
        echo "        * Creating Recovery partition /dev/sda2"
        parted -s /dev/sda mkpart primary HFS 69672s 888823s
        parted -s /dev/sda set 2 atvrecv on
        echo "        * Creating OSBoot partition /dev/sda3"
        parted -s /dev/sda mkpart primary HFS 888824s 2732015s
        echo "        * Creating Media partition /dev/sda4"
        parted -s /dev/sda mkpart primary HFS 2732016s ${SECTORS}s
        echo "        * Creating file systems on all 4 partitions..."
--------------------------------------------------------------------

All lines look the same as numbers you showed, only:
---------------------------------------------------------------------
 parted -s /dev/sda mkpart primary HFS 2732016s ${SECTORS}s
---------------------------------------------------------------------
doesn't have 312319663s at the end.

Should be something changed in :
-------------------------------------------------------------
 DISKSIZE=`parted -s /dev/sda unit s print | grep Disk | awk '{print $3}' | sed s/s//` 
    # subtract 262145 from this
    let SECTORS=${DISKSIZE}-262145
-----------------------------------------------------------------
?

What and how to change in the script?

Original comment by zin...@gmail.com on 14 Apr 2010 at 6:49

GoogleCodeExporter commented 9 years ago
The end needs to be bigger (312319663) - bigger media partition. I suspect the 
end 
at the moment is wrong running parted because the drive was formatted for a 
40GB 
layout (you ran rebuild.sh previously). Give that a whir-round and see how it 
rolls 
out for you.

Original comment by Sam.Nazarko on 14 Apr 2010 at 6:57

GoogleCodeExporter commented 9 years ago
Hello again-

I changed the script as follows with no luck, still stuck at the boot logo-

done
    DISKSIZE=`parted -s /dev/sda unit s print | grep Disk | awk '{print $3}' | sed s/s//`
    # subtract 262145 from this
    let SECTORS=${DISKSIZE}-262145
    if [ "${DISKSIZE}" -gt "${SECTORS}" ]; then
        echo "        * WARNING:  YOUR APPLE TV HARD DISK WILL BE ERASED IN 30
SECONDS. TO ABORT, UNPLUG THE POWER CABLE AND THEN REMOVE THE USB STICK."
        sleep 30
        echo "        * Wiping paritition table on /dev/sda ..."
        dd if=/dev/zero of=/dev/sda bs=4096 count=1M
        # create the GPT format
        parted -s /dev/sda mklabel gpt
        echo "        * Creating EFI partition /dev/sda1"
        parted -s /dev/sda mkpart primary fat32 40s 69671s
        parted -s /dev/sda set 1 boot on
        echo "        * Creating Recovery partition /dev/sda2"
        parted -s /dev/sda mkpart primary HFS 69672s 888823s
        parted -s /dev/sda set 2 atvrecv on
        echo "        * Creating OSBoot partition /dev/sda3"
        parted -s /dev/sda mkpart primary HFS 888824s 2732015s
        echo "        * Creating Media partition /dev/sda4"
        parted -s /dev/sda mkpart primary HFS 2732016s 312319663s
        echo "        * Creating file systems on all 4 partitions..."
        # make file systems for the four partitions

Any ideas as to what to try next? Thanks.

Original comment by chazbu...@gmail.com on 15 Apr 2010 at 4:41

GoogleCodeExporter commented 9 years ago
When you ran the script what was the output?

Original comment by Sam.Nazarko on 15 Apr 2010 at 5:07

GoogleCodeExporter commented 9 years ago
Hi,
Exactly the same issues as chazburge had. Installation went smoothly. It created
partitions 
/dev/sda2 400MB
/dev/sda3 900MB with 8192k journal
/dev/sda4 148GB with 16384k journal

and boot process stops at Apple logo.
No errors at all.
I used OS.dmg from patchstick creator. All files unpacked from it.

Original comment by zin...@gmail.com on 17 Apr 2010 at 9:56

Attachments:

GoogleCodeExporter commented 9 years ago
Looks like the drives may have issues.

You should connect it to a Mac/PC and see if you can recreate the partitions 
from 
there, you should check the integrity of the disk too, and make sure it is not 
damaged.

The drive may have lived past its time. You could try swap in another ATA 2.5" 
drive, recommended models here:

http://wiki.awkwardtv.org/wiki/Prepare_a_Hard_Drive#Compatible_Drives

Original comment by Sam.Nazarko on 19 Apr 2010 at 6:37

GoogleCodeExporter commented 9 years ago
For what it's worth-After a bit more digging, I was able to get my ATV back up 
and
running after following the instructions posted here:

http://www.hackint0sh.org/f98/43979-3.htm

Hope This Helps!

Original comment by chazbu...@gmail.com on 19 Apr 2010 at 7:12

GoogleCodeExporter commented 9 years ago
Forgot to mention, I didn't use the ATV update dmg that they link to on the 
above
post. Instead, I found a copy of ATV OS v1.0 and used that and then ran 
recovery and
downloaded the update once it was back to factory condition. 

Original comment by chazbu...@gmail.com on 19 Apr 2010 at 7:22

GoogleCodeExporter commented 9 years ago
chazburge, it worked for me too.
Many thanks for your help :)
To Sam.Nazarko - could you please check what is different from your "rebuild"
patchstick in the solution presented in 
http://www.hackint0sh.org/f98/43979-3.htm ?
They are using your scripts and content of a patchstick and it works for 160GB 
disks.

Original comment by zin...@gmail.com on 20 Apr 2010 at 5:22

GoogleCodeExporter commented 9 years ago
It's pretty much the same method. They use a firmware file and a couple of 
other 
bits to restore the recovery partition. The only difference is that there 
script 
only rebuilds the recovery partition, but rebuild.sh builds all partitions 
again 
(EFI, Recovery, OSBoot and rest media)

Original comment by Sam.Nazarko on 20 Apr 2010 at 6:35

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
com.apple.Boot.plist needs to be edited as detailed in the document linked at 
hackint0sh.org:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Background Color</key>
        <integer>0</integer>
        <key>Boot Fail Logo</key>
        <string></string>
        <key>Boot Logo</key>
        <string>BootLogo.png</string>
        <key>Kernel</key>
        <string>mach_kernel</string>
        <key>Kernel Cache</key>
        <string>mach_kernel.prelink</string>
        <key>Kernel Flags</key>
        <string>rp=file:///OS.dmg</string>
</dict>
</plist>

Original comment by sc...@dier.name on 19 Nov 2010 at 6:56