PlayStation3 Document

From 흡혈양파의 인터넷工房
Revision as of 06:54, 3 April 2013 by Onionmixer (talk | contribs) (참고문서 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
PlayStation3에 BSD를 설치하기위한 삽질문서들


초기상황

  1. ps3중고를 fat모델로 구매를 했는데 펌웨어가 로게로 4.31상태였음. 그런데 wikipedia를 찾아보니 linux 또는 BSD를 설치하기위해서는 펌웨어가 3.15까지는 내려가야 정상. 그래서 펌웨럴르 내리기위해 이런저런 자료를 찾은결과 방법을 대략 발견했지만 아직 진행증.
  2. 4.31은 스푸핑이고 현시점은 4.30이 핵펌 최고버전 이라는 urdandy님의 말씀(2013년2월26일현재)


작업진행

진행방법::4.31 to 3.55

  1. FAT32로 포맷된 200M 이상의 USB를 준비한다. linux에서는 mkfs.msdos -F 32 /dev/XXX 로 format을 할 수 있다
  2. 일단 4.25 to 3.55 펌웨어 파일을 구한다. 구한다음. USB메모리에 복사한다. 경로는 /PS3/UPDATE/PSUPDAT.PUP (물론 맨 뒤쪽은 펌웨어 파일이름이다)
  3. PS3의 XMB > 설정 > 시스템 업데이트 에서 펌웨어를 업데이트 한다
  4. 적용을 하고나면 아마.............도 qa를 설치할 수 있는 환경이 될거라 생각한다. 그럼 toogle_qa.pkg 파일을 USB메모리의 root에 넣고 ps3에 꼽은다음 설치한다. 설치후 실행은 기본.
  5. toogle_qa를 설치한다음 활성화가 잘 되었다면 XMB > 설정 > 네트워크 설정 으로 가서 아래의 키 조합을 동시에 입력한다
    L1 + L2 + L3 (press left stick) + R1 + R2 + dpad_down
  6. 키입력 후 네트워크 설정 아래쪽에 Edy VIewer, Debug Settings, INstall Package Files 라는 3개가 더 생긴다면 성공.
  7. 이후 3.55 정펌 또는 그에 준하는 원하는 펌웨어를 2번에서 했던 방법대로 USB에 넣어놓는다
  8. 재부팅하고 펌웨어 버전을 확인한다. 3.55가 되어있으면 성공,


지금와서 생각해보건데 로게로 + QA mode가 된 순간부터 그냥 됐어야 하는게 아닌가 싶다.


진행방법::3.15 kmeaw에서 linux설치::실패(원인불명)

  1. 왜인지는 모르겠는데 kmeaw를 설치했을때 버전정보에 3.55만 뜬다. 그래도 3.15로 잘 내려감.
  2. QA mode는 한번 켜면 계속 켜지는듯. (출처는 감추는게 예의?)
  3. 이렇게 3.15까지 펌웨어를 내렸는데 80040205 에러가 나오면서 otheros installer구동실패. 종류별로 돌려가면서 해봐도 안됨


진행방법::4.30 리벅( http://rebug.me )펌웨어

  1. 정펌 3.35가 들어가있는 PS3를 준비한다
  2. REBUG_4.30.1_PS3UPDAT.PUP 대략 이런이름의 펌웨어를 찾는다
  3. 펌웨파 파일을 USB메모리에 복사한다. 경로는 /PS3/UPDATE/PSUPDAT.PUP
  4. XMB상에서 update를 시도하고 리부팅 (안되면 복구모드)
  5. 부팅한다음 펌웨어 버전을 확인. 4.30이면 일단 정상
  6. 이후 XMB > 게임 > PackageManager > Install Package Files > PS3 HardDisk > REBUG-TOOLBOX-02.01.00.pkg 파일을 설치한다
  7. 설치후 XMB > 게임 > Rebug Toolbox > System mode 에서 REBUG mode로 전환한다. 이후 재시작
  8. 재시작한다음 버전을 확인해서 펌웨어 버전이 4.31로 나오면 성공. 다만 spoofing이니 속지는 말도록 하자.


진행방법::4.30 rebug의 OtherOS++을 이용한 FreeBSD의 설치

  1. 자신의 PS3가 NAND인지 NOR인지 여기 에서 확인한다. 그후 내 기종에 맞는 이미지를 선택.
    • NOR :: dtbImage.ps3.bin
    • NAND :: dtbImage.ps3.bin.minimal
    • 실제 넣는 파일이름은 dtbImage.ps3.bin 이 되어야 한다.
  2. XMB > rebug toolbox > Utilities > RESIZE VFLASH/NAND REGIONS 적용
  3. XMB > rebug toolbox > Utilities > InstallPetitboot 로 설치한다.
  4. 일단 본인은 정확한 방법을 몰랐기때문에 이런저런 방법들을 통해서 3.15까지 내려가서 하드의 파티션을 다시 잡고 그대로 아무것도 손대지않고 바로 리벅 4.30으로 펌웨어 업데이트 했음.
  5. FreeBSD 9.0 CD를 꼽는다.
  6. XMB > rebug toolbox > System > Boot Other OS > All lv1 으로 부팅한다.
  7. 부팅하면 CD에 있는 boot관련 파일들을 인식해서 petitboot의 menu로 띄운다
  8. FreeBSD로 부팅할 수 있는 menu를 누르고 부팅을 시작한다
  9. 현재 사용할 수 있는 mode가 480i 또는 480p만 되기때문에 관련된 환경을 미리 만들어놓아야 한다.
  10. petitboot에서 set mode로 바꿀 수 있는거같은데... 본인은 실패
  11. 부팅되는 과정에서 아마도 root를 mount하지 못하고 이런 prompt가 나오게 될거다(FreeBSD 9.0기준)
    mountroot>
    
  12. 이상황에서 Enter키를 치면 db> 라는 prompt가 나온다. 쓰는법은 여기를 참고. 이 문서에서는 이 부분은 이이상 언급하지 않는다
  13. 아까의 mountroot> 상에서 ? 를 누르면 현재의 kernel에서 인식할 수 있는 boot device의 종류가 나온다.
  14. 확인후 다음과같이 입력하면 아마도 cdrom으로 부팅이 가능하게 된다.
    mountroot> cd9660:/dev/cd0
    

    대략 뜻은 cd9660파일시스과 /dev/cd0라는 device를 대상으로 root를 mount해서 이후과정을 진행한다. 정도 되겠다. 아마도 별다른 문제가 없으면 FreeBSD의 installer를 볼 수 있다.
  15. 첫화면에서 installer, shell, liveCD 정도를 선택하라고 하는데 shell로 나가야 한다. 왜냐하면 왜인지는 모르겠지만 dhcp로 internet을 못잡기때문이다. (본인은 유선으로 진행하고있다)
  16. shell에 들어가서 아래와같이 타이핑한다. 물론 ifconfig을 한번쳐서 현재 내 network device이름정도를 미리 확인하는건 기본예의.
    ifconfig glc0 inet 당신이사용할PS3의IP netmask 당신이사용할PS3의IP의NETMASK
    route add default 당신의gateweayIP
    
  17. 당신이 원하는곳에 ping을 날려보고 network이 정상이라고 판단되면 exit를 타이핑해서 shell작업을 종료하고 installer로 돌아가면 된다.
  18. 이후는 FreeBSD의 설치매뉴얼을 참고해서 설치를 진행하면 된다. 참고로 본인은 180G SSD를 ps3의 하드로 꼽았고 PS3의 영역을 10G만 할당했다. 고로 나머지 영역에 FreeBSD의 영역을 만들어서 설치할 수 있었다. 다만 아직 boot loader를 심지못했기때문에 cdrom에 들어있는 boot loader를 usb에 일단 심어서 cdrom이 없이도 부팅할 수 있게 처리했다
  19. 이유는 정확하게 모르겠지만 boot loader가 로딩되면 FreeBSD가 설치된 root partition을 알아서 찾고 부팅한다.


이 모든작업에 대한 결과로 볼 수 있는 uname -a의 결과는 다음과 같다

FreeBSD  9.0-RELEASE FreeBSD 9.0-RELEASE #0: Wed Jan  4 02:45:59 UTC 2012     root@anacreon.physics.wisc.edu:/usr/obj/usr/src/sys/GENERIC64  powerpc


뒤처리:usb메모리나cdrom을 사용하지않고 booting하는법

  1. XMB에서 멀티맨을 설치한다
  2. 멀티맨을 이용해서 usb 메모리의 파일을 복사한다. flash 에 넣어도 상관은없는데 문제는 가끔 부팅에 실패한다. 이유는 잘 모르겠음. 2G짜리 하드에 복사하면 bsd의 file system이 깨지는듯하다.
  3. 리벅에서 로딩을 진행한다
  4. usb 메모리나 cdrom을 꼽지않으면 loader.ps3 가 로딩되는 메뉴가 자동으로 생기지 않는다.
  5. 키보드로 "o"(영문자 "Oh") 를 눌러서 새로 menu를 추가한다. 위치는 다음과같다
    /tmp/petitboot/mnt/ps3vflashd/boot/loader.ps3
    
  6. 제대로 로딩이 안되는거같다면 Esc 를 눌러서 console 로 간다음 /tmp/petitboot/mnt 로 간다음 find 명령어로 loader.ps3 파일을 찾는다
  7. 이후 부팅할때마다 해줘야한다-아직은 방법을 못찾았음


참고정보

OtherOS++관련정보


Playstation3에서 OtherOS를 사용하는 방법


Petitboot사용법


FreeBSD 9에서의 OtherOS지원정보(기본)


reActPSN

PS2 클래식 게임 구동 reActPSN

http://www.finalfantasia.com/board/view.aspx?id=psbbs&rno=35586&page=2&f=c&k=%B8%AE%B9%F7

  • 결과적으로 이놈은 PSN 인증무력화. 고로 딱히 이경우에 의미는 없다. 참고는 여기


동글관련작업

  1. 참고1의 link에 가서 일단 하드웨어 동글을 찾는다. 호환되는놈을 찾아야 의미가 있다.
  2. 참고1의 link에서 해당 보드에 해당되는 Hex파일을 다운로드 받는다
  3. windows의 경우에는 atmel의 홈페이지에서 Flip을 받아서 해당되는 보드에 맞는 Hex파일을 보드로 넣는다.
  4. linux의 경우는 avrdude를 설치하고 인터넷의 사용법대로 진행을 한다.
    // 보드인식테스트
    avrdube -P /dev/xxxx -p m32u4 -c stk500
    // write hex code
    avrdube -P /dev/xxxx -p m32u4 -c stk500 -e -U flash:w:hex_filename
    
  5. 이후 ps3에 꼽아서 동글을 이용한 hack을 진행한다


복구(리커버리)모드 진입방법

ps3에서 복구모드는 팩토리모드가 아니다. 고로 들어가는 방법을 정확하게 숙지해놓으면 나중에 덜 헤메지 않을까...

ps3의 펌웨어가 2.50 이상에서만 가능합니다.

  1. 전원이 꺼진 상태에서 전원 버튼을 계속 누르고 있습니다.
  2. 계속 누르고있으면 전원이 꺼집니다.
  3. 다시 전원버튼을 누르면 곧 또 한번의 삐 소리가 나며 계속 누르고 있습니다.
  4. 곧 두번의 삐삐 소리가 연속해서 나면 버튼을 놓습니다.

그러면 "컨트롤러를 USB 케이블로 연결한 후 PS 버튼을 눌러 주십시오." 라는 메세지가 나오며 그대로 하면 복구 메뉴가 나옵니다.


참고문서


IBM cell processer 프로그래밍(번역문서)