PORTING GNU/LINUX TO Xbox Milosch Meriac -

Similar documents
Embedded Real-Time Linux for Cable Robot Control

OM-Cube Project. Contents. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 1. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 2

TQ2440 Development Platform Manual

Embedded Linux system development training 5-day session

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

Arch Linux Grub You Need To Load The Kernel First

First Steps. esom/sk4 esom/3517 Embedded Linux Starter Kit

3.3 WinCE System Installation

January 28 29, 2014San Jose. Engineering Workshop

First Steps. DNP/SK18 Embedded Linux Starter Kit

User Mode Linux. An Introduction to UML William Stearns ISTS/Dartmouth College

Lab Install Windows 8

Manually Install Windows Updates Xp From Usb

Manual Install Ubuntu Server From Usb Drive

Linux on Sony VAIO mini-howto

Linux+ Guide to Linux Certification, Third Edition. Chapter 6 Advanced Installation

Linux with Biology in IT

The Right Approach to Minimal Boot Times

minit Felix von Leitner September 2004 minit

Debian Linux Manual 32 Bit I386 Dvd Iso Image

BOGART SE 11 (v11.0a) RELEASE NOTES

DNP/2110 Linux Starter Kit: First Steps

Apache Manually Install Ubuntu From Usb

Android System Development Training 4-day session

How To Install Custom Firmware On Macbook Air Without A Dvd Drive

Parts of the Computer System. Parts of the Computer System. Parts of the Computer System. Essential Computer Hardware. Information Processing Cycle

INTRODUCTION TO LINUX

Yocto Project and OpenEmbedded training 3-day session

Memory Study Material

CST8177 Linux II. Linux Boot Process

How To Manually Install Software In Linux Mint 14 Cinnamon From Usb

UNIX, GNU/Linux and simple tools for data manipulation

First Steps. esom/sk5 esom/3517 Embedded Linux Starter Kit

How To Install Windows Updates 8 From Usb

Apache Manually Install Ubuntu From Usb

Module 4 Chapter 5 Using Software

Introduction p. 1 Why Linux? p. 2 Embedded Linux Today p. 3 Open Source and the GPL p. 3 Free Versus Freedom p. 4 Standards and Relevant Bodies p.

Linux Porting onto a Digital Camera

Guest Operating System Installation Guide. February 25, 2008

D1S - Embedded Linux with Ac6 System Workbench

Installation of Fedora 12 with CD

Flash Drive Won T Mount Windows 7 Won't Recognize

Guest Operating System Installation Guide. March 14, 2008

Running server systems in virtual environments is a popular approach, but the technology offers benefits to

Linux+ Guide to Linux Certification, Third Edition. Chapter 2 Linux Installation and Usage

CPU6901. PCI-104 ARM9 CPU Card. Software Manual (V1.0) 健昇科技股份有限公司 JS AUTOMATION CORP.

Adding hardware support to Buildroot

Linux Terminal Server Project

How To Install Java Manually Linux Mint 14 >>>CLICK HERE<<<

The blob bootloader. The blob bootloader. Thomas Petazzoni Free Electrons

How I survived to a SoC with a terrible Linux BSP

Boot Process in details for (X86) Computers

Petitboot - A kexec based bootloader. Geoff Levand - Linux Plumbers Conference 2012 August 29-31, San Diego, CA

D-TACQ 2G Programmer's Guide

Celeron EPIC Computer with GUI and Dual Ethernet SBC4685

Guest Operating System Installation Guide. May 28, 2008

Linux FastBoot. Reducing Embedded Linux Boot Times. Embedded World Conference 2012

Introduction to Embedded Bootloader. Intel SSG/SSD/UEFI

Windows Media Player Manual Update Xp Dvd Decoder

Solutions for the Intel Platform Innovation Framework for EFI July 26, Slide 1

Creating WinSystems ELS 2.0

Window Media Player Manual Update Xp Dvd Decoder

HARDWARE AND OPERATING SYSTEMS

Comparison on BIOS between UEFI and Legacy

Flash Drive Won T Mount Windows 7 Won T Recognize

Support Notes for Red Hat Enterprise Linux ES v.4.6 for HP Integrity Servers

OpenEmbedded in the Real World

Update on boot time reduction techniques

How To Install Custom Firmware On Macbook Pro From Usb

Alpine Linux Documentation

IPBRICK Installation Manual

Spring 2017 :: CSE 506. Device Programming. Nima Honarmand

ACER INC. VERITON M200 QUICK SPEC

HITB Amsterdam

Uninstalling And Manually Install Vmware Tools Ubuntu Server 11.04

U-Boot Falcon Mode. Minimizing boot times using U-Boot "Falcon" mode. Stefano Babic / Wolfgang Denk. July 2012

Oxalis Getting Started

Red Hat Network Satellite 5.0.0: Virtualization Step by Step

Using BeOS to Ease the Installation, Support and Troubleshooting of Linux on Intel Desktops

Install Guide Windows 7 Usb Macbook Pro 2011 Without Cd

Platform CPU. Chipset. Memory. Expansion Slot. Graphics. Audio LAN. Rear Panel I/O. Connector. BIOS Feature. Support CD.

Installation Guide Windows 7 Usb Stick Drivers Were Found

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Disk Imaging with Knoppix

MB/ Starter Kit: First Steps

. Making the Linux Kernel better. Wolfram Sang , FOSDEM 14

PC/OS 11 LTS FAQ. By Roberto J. Dohnert Copyright 2008

Windows Xp Installation User Manually Create Bootable Usb Flash Drive

COURSE OUTLINE: A+ COMPREHENSIVE

Ftp Get Command Line Win 7 Boot Repair

Linux as primary Operating System

Modifying Windows 10 Build 1511 For Privacy And Stability

Hard Disk Organization. Vocabulary

Running a Linux-Capable Open Source Soft SoC on the Avalanche Board with MicroSemi PolarFire FPGA

Linux Files and the File System

Embedded Linux Conference Europe Sascha Hauer

Get Hardware System info on Debian Linux / How to detecting hardware and servers model on GNU / Linux

Rootless Containers with runc. Aleksa Sarai Software Engineer

Computer Technology Flash Card 2

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Transcription:

1 PORTING GNU/LINUX TO Xbox Milosch Meriac - 19C3@meriac.de

2 Who am I Milosch Meriac, freelancer focused on embedded systems reverse engineering linux and windows kernel drivers lowlevel programming / realtime

3 Which operating system for Xbox? Open/Free/Net-BSD GNU/HURD GNU/Linux Proprietary OS Windows 9x/SE/ME Windows NT/2000/XP

4 Why not MS-Windows - Battle Royale? It s nothing personal

4 Why not MS-Windows - Battle Royale? It s nothing personal High license fees

4 Why not MS-Windows - Battle Royale? It s nothing personal High license fees Not allowed to patch binaries (EULA)

4 Why not MS-Windows - Battle Royale? It s nothing personal High license fees Not allowed to patch binaries (EULA) Mostly close source

4 Why not MS-Windows - Battle Royale? It s nothing personal High license fees Not allowed to patch binaries (EULA) Mostly close source Lack of Open Source Windows Drivers, Applications and Frameworks.

5 Why Linux or: How I Learned To Stop Worrying And Love The Bomb Open Source - we need to tweak a lot liberal GNU GPL license model

5 Why Linux or: How I Learned To Stop Worrying And Love The Bomb Open Source - we need to tweak a lot liberal GNU GPL license model allows closed source kernel modules

5 Why Linux or: How I Learned To Stop Worrying And Love The Bomb Open Source - we need to tweak a lot liberal GNU GPL license model allows closed source kernel modules well-known and user-friendly (KDE3/Gnome) wide range of applications sophisticated development tools

5 Why Linux or: How I Learned To Stop Worrying And Love The Bomb Open Source - we need to tweak a lot liberal GNU GPL license model allows closed source kernel modules well-known and user-friendly (KDE3/Gnome) wide range of applications sophisticated development tools

6 we simply like it most, so we started using linux boost the spread of linux

7 The Linux Porting Process - They Who Step On Tiger s Tail In the beginning there was darkness...

8

9 then Michael Steil spoke in the darkness: Let there be light

10

11 And right away there was light, scattering the darkness and showing the infinite space. That s good! said Michael We can now run unsigned code Built Xbox Executable Binary from scratch (no XDK needed) which copied the Tux-Logo into initialized video RAM area replacing whole copyrighted microsoft code within Xbox flash was not satisfying, because of no video output

12 The Linux Porting Process - A Space Odyssey created a bootloader like GNU/GRUB or LILO

12 The Linux Porting Process - A Space Odyssey created a bootloader like GNU/GRUB or LILO minimzed side effects of the Xbox Kernel using a clean ROM-Replacement perfectly legal solution

12 The Linux Porting Process - A Space Odyssey created a bootloader like GNU/GRUB or LILO minimzed side effects of the Xbox Kernel using a clean ROM-Replacement perfectly legal solution to prevent 16-Bit fiddeling we skipped realmode initialization of kernel

13 Our first replacement ROM - Dark Star we see...

14

15 Nothing to see - The Emperor s New Clothes Linux boots, but we see nothing no video output at all, because there were neither BIOS routines for screen setup, nor a VGA BIOS

16 Our second step used Andy Greens filtror device as a simple kernel debug console a bidirectional memory buffer allowed us to exhange data with the Xbox device is being polled by the linux kernel and the client computer device allowed us to see the kernel messages on a terminal

a dirty hooking-the-kernel-kprintf-routines-hack shows us the first hello world -lifesigns of the kernel 17

17 a dirty hooking-the-kernel-kprintf-routines-hack shows us the first hello world -lifesigns of the kernel was really dirty, unstable and passive

17 a dirty hooking-the-kernel-kprintf-routines-hack shows us the first hello world -lifesigns of the kernel was really dirty, unstable and passive wrote a console kernel driver especially for the filtror device the new driver allowed us to see the all boot messages

17 a dirty hooking-the-kernel-kprintf-routines-hack shows us the first hello world -lifesigns of the kernel was really dirty, unstable and passive wrote a console kernel driver especially for the filtror device the new driver allowed us to see the all boot messages after fixing some nvidia PCI Chipset bugs and mainly minor Xbox-specific problems - Linux is booting cleanly!

18 Things started to roll - Odyssey two we created a Linux distribution from scratch

18 Things started to roll - Odyssey two we created a Linux distribution from scratch used busybox the Swiss Army Knife of Embedded Linux

18 Things started to roll - Odyssey two we created a Linux distribution from scratch used busybox the Swiss Army Knife of Embedded Linux busybox running on top of uclib, a C library for embedded systems powerful embedded linux system bzip2 ed kernel and the gzip ed initial ramdisk fits perfectly into one megabyte Xbox-Flash

18 Things started to roll - Odyssey two we created a Linux distribution from scratch used busybox the Swiss Army Knife of Embedded Linux busybox running on top of uclib, a C library for embedded systems powerful embedded linux system bzip2 ed kernel and the gzip ed initial ramdisk fits perfectly into one megabyte Xbox-Flash

19 filtror console driver gave us access to linux console on Xbox everything is working fine managed to get the closed source nvidia network drivers working inside the Xbox Linux environment

20 Our first Release Linux boots into a network-enabled state running a web server and telnet daemon although there is no audio or video output and input device connectivity yet, users have full control on the Xbox through the network Xbox based internet servers appear on the internet

21 developers worldwide are now able to add more features ability to mount NFS shares includes large number of linux command line tools soundcard enabled - mp3players appeared the embedded webserver provides detailed information about the Xbox

Figure 1: The Embedded Webserver 22

Figure 2: System information provided by CGI script 23

Figure 3: Xbox Team Information 24

25 Within few days the count of developers grew enormously The next steps of the team included: added USB interface for mouse and keyboard support added FatX-Filesystem support added added support for Xbox-Controller created a ROM-Image which can be operated by USB- Keyboard on Xbox

26 ROM image was becoming too tight we created a Xbox Executable Bootloader for booting Linux from CD-RW or DVD this enables us to access initialized video RAM

26 ROM image was becoming too tight we created a Xbox Executable Bootloader for booting Linux from CD-RW or DVD this enables us to access initialized video RAM enabled the framebuffer console driver by adding a Xbox framebuffer interface description to the kernel.

Figure 4: Xbox Linux v0.2 TV screenshot 27

28 XWindows up and running! XServer 4.x is running Xbox can be used used as XTerminal The first DivX films with sound are running smooth on Xbox Linux

29 Interesting Links http://xbox-linux.sourceforge.net/ The Xbox Linux Project http://www.busybox.net/ The Swiss Army Knife of Embedded Linux http://tinylogin.busybox.net/ The worlds smallest login/passwd/getty/etc http://www.uclibc.org/

30 uclibc - a C library for embedded systems http://www.linuxfromscratch.org/ Linux From Scratch http://www.boa.org/ Boa Web Server http://www.acme.com/software/thttpd/ thttpd - tiny/turbo/throttling HTTP server http://www.pengutronix.de/software/utelnetd en.html A small Telnet daemon

Figure 5: The porting of major distributions like Debian, SuSE and Mandrake has begun 31