Samsung Galaxy S III

From Linux Exynos
Jump to: navigation, search
Samsung Galaxy S III
Manufacturer Samsung
Dimensions 136.6mm x 70.6mm x 8.6 mm
Release Date May, 2012 (GT-I9300) / September, 2012 (GT-I9305)
Specifications
SoC Samsung Exynos 4412
DRAM 1 GiB (GT-I9300) / 2GiB (GT-I9305)
Power 2,100 mAh
Features
LCD 4.8" 720x1280
Input Capacitive touchscreen
Audio Wolfson WM8994/WM1511, 3.5mm TRRS
Network Broadcom BCM4334 (WiFi 802.11 b/g/n, Bluetooth 4.0), 3G, 4G (GT-I9305 only)
Storage 16/32/64 GiB (model specific), MicroSD
USB (Host/OTG) MicroUSB 2.0 Host
Camera 1.9MP 720p front camera @ 30 FPS, 8 MP 1080p rear camera @ 30 FPS
Other Maxim MAX77686 regulator/RTC/etc. combo, Maxim MAX77693 PMIC

The Galaxy S III family (GT-I9300 and GT-I9305) will be supported by v4.17 of the Linux kernel. To boot a mainline kernel you need to install a third-stage bootloader in place of the Android kernel, and then install a Linux distro along with a suitable config.ini to the USERDATA partition. A typical config.ini for booting a normal Linux distro might look something like this:

# /boot/config.ini
[global]
devices=i9300,i9305,n710x
# USERDATA partition is mounted on /mnt/root
rootdir=/mnt/root/boot
zImage=zImage
initramfs=initramfs-linux.img
dtbs=dtbs
cmdline=console=ttySAC2,115200 earlyprintk rw

[n710x]
name=Galaxy Note II
model=N7100,N7105
dtbs=exynos4412-n710x.dtb,exynos4412-midas.dtb

# N710X uses both S6EVR02 and EA8061 - bootloader passes lcd type as kernel command line
[n710x.overlay.s6evr02]
path=exynos4412-n710x-s6evr02.dtbo
mode=cmdline
key=lcdtype
# lcdtype=1 means s6evr02
value=1

[n710x.overlay.ea8061]
path=exynos4412-n710x-ea8061.dtbo
mode=cmdline
key=lcdtype
# lcdtype=0 means ea8061
value=0

[i9300]
name=Galaxy S III 3G
model=I9300
dtbs=exynos4412-i9300.dtb

[i9305]
name=Galaxy S III 4G
model=I9305
dtbs=exynos4412-i9305.dtb

Note that if no config.ini is found, the third-stage bootloader will instead expose a shell over the serial UART (accessed using a special cable) and also over a USB gadget (accessible via a normal microUSB cable). This will let you poke around inside the buildroot environment. You can manually run the bootloader executable (which parses the config file and uses kexec to load the next kernel) by executing bootloader.