Samsung Galaxy SII (samsung-i9100)
![]() First photo ever released of postmarketOS (from the original introduction post). | |
Manufacturer | Samsung |
---|---|
Name | Galaxy S II |
Codename | i9100, d710 |
Released | 2011 |
Hardware | |
CPU | Dual-core 1.2 GHz Cortex-A9 |
GPU | Mali-400MP4 |
Display | 480x800 AMOLED |
Storage | 16/32 GB |
Memory | 1 GB RAM |
Software | |
Original software | Android 2.3.4 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | no |
Flashing |
No data |
---|---|
USB Networking |
No data |
Internal storage |
No data |
SD card |
No data |
Battery |
No data |
Screen |
No data |
Touchscreen |
No data |
Multimedia | |
3D Acceleration |
No data |
Audio |
No data |
Camera |
No data |
Camera Flash |
No data |
Connectivity | |
WiFi |
No data |
Bluetooth |
No data |
GPS |
No data |
NFC |
No data |
Modem | |
Calls |
No data |
SMS |
No data |
Mobile data |
No data |
Miscellaneous | |
FDE |
No data |
USB OTG |
No data |
HDMI/DP |
No data |
Sensors | |
Accelerometer |
No data |
Magnetometer |
No data |
Ambient Light |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Contributors
- ollieparanoid
- veggie
What works
- Installation to sdcard (
pmbootstrap install --sdcard=/dev/mmcblk...
) - Installation to device memory (partial)
- Touchscreen
- Weston (only on SD card)
- XWayland
- Wifi
What does not work
- The rest (bluetooth, making calls, ...)
- Auto resizing partitions during installation to device memory (probably)
How to enter flash mode
For i9100
- Connect a USB cable
- Make sure, the device is powered off
- Hold power + Home + volume down
- When prompted, release all buttons and press volume up
For d710
- Connect a USB cable
- Make sure, the device is powered off
- Hold power + Home + volume down
- When prompted, release all buttons and press volume up
Installation
Flashing to device memory uses drebrez's netcat method (#456).
Init pmbootstrap. Make sure to choose none for the user interface instead of weston because weston makes the image just a little bit too large for the unresized partition.
$ ./pmbootstrap.py init
Start the build process
$ ./pmbootstrap.py install
Flash postmarketOS to the device:
https://github.com/postmarketOS/pmbootstrap/issues/456
For the d710, on step 5 use /dev/mmcblk0p11 as the install partition.
On step 8, use
pv /home/user/rootfs/samsung-i9100.img | nc 172.16.42.1 60000
instead.
Step by step guide for Flashing to device memory
Please do not hesitate to remove or edit if this does not belong here or match intended wiki content. This does not bring anything new just summary.
- Build image (on your computer)
-- Install pmboostrap
$ git clone https://github.com/postmarketOS/pmbootstrap.git
-- Change working directory to the pmboostrap
$ cd pmbootstrap/
-- Configure
$ ./pmbootstrap.py init [18:27:09] Device [samsung-i9100]: samsung-i9100 [18:27:45] User interface [weston]: weston [18:28:05] Work path [/home/<USER>/.local/var/pmbootstrap]: [18:28:29] Jobs [5]: [18:28:46] Timestamp based rebuilds (y/n) [y]: [18:29:05] Extra packages [none]:
-- Prepare the installation
$ ./pmbootstrap.py install
- Flash to phone memory - This will replace (break) your current phone system! The description is using the alternative flash method because there it did not work for me with heimdall - https://github.com/Benjamin-Dobell/Heimdall/issues/418
-- Set phone to ODIN mode
1. Turn off phone 2. Connect USB cable 3. Hold VOLUME_DOWN + HOME + POWER until you get Warning!! screen 4. Push VOLUME_UP to continue to ODIN mode screen
-- Set image for NETCAT flash method
$ ./pmbootstrap.py initfs hook_add usb-shell
-- Flash Kernel and Recovery (phone will reboot to screen "boot partition not found")
$ ./pmbootstrap.py flasher flash_kernel
-- Check USB network connection to phone
ping 172.16.42.1
(if it does not ping, try replugging usb cable few times)
-- Connect to phone with telnet
$ telnet 172.16.42.1 24
-- Start netcat to listen for image (on the phone) /dev/mmcblk0p9 should be FACTORYFS partition you check by running fdisk -l /dev/mmcblk0
/ # nc -v -l -p 60000 > /dev/mmcblk0p9
-- Switch to pmboostrap chroot (on the computer in other terminal)
$ ./pmbootstrap.py chroot --suffix native
-- Install pv (in the chroot)
/ # apk add pv
-- Send image from computer to netcat (on the computer)
/ # pv /home/user/rootfs/samsung-i9100.img | nc 172.16.42.1 60000
-- Close both nc with CTRL+C when transfer finishes and reboot the phone with power button
-- Telnet to phone to enter password
$ telnet 172.16.42.1
-- Follow further instructions from telnet
Boot process
We're using the heimdall-isorec
flash method, see deviceinfo_flash_methods for more information.
Links
Photos
- Initramfs asking for the password via telnet
- Weston with various programs opened
- postmarketOS demo menu (XWayland)
- Firefox (XWayland)
- Weston-smoke demo
- Weston-smoke demo running on a d710
wifi
- Create conf for wpa_supplicant
$ wpa_passphrase "SSID" "password" > wifi
Note : If you are connecting to a hidden wireless network, make sure to add line "scan_ssid=1" after the ssid line in your generated conf file
- Connect to wifi AP
$ sudo wpa_supplicant -i wlan0 -c wifi &
- Get ip address from dhcp server (in another terminal)
$ sudo udhcpc -i wlan0
ofono
Best way seems to get Samsung IPC modem support from the patchset https://lists.ofono.org/pipermail/ofono/2012-September/013766.html (but it was not accepted) and does not build https://github.com/tssk/pmbootstrap/commits/device-samsung-i9100_modem . I would appreciate help from someone that understands C.
Second idea was to build Andoird RIL + Samsung RIL and get ofono working with ofono-ril support - https://redmine.replicant.us/projects/replicant/wiki/Samsung-RIL .
GPS
https://univers-libre.net/posts/galaxy-s2-gps-on-replicant.html
https://redmine.replicant.us/projects/replicant/wiki/GSD4t
https://github.com/mnalis/gsd4t_parser
https://redmine.replicant.us/boards/21/topics/897
Hardware specifications for i9100
SoC
Samsung Exynos 4 Dual 45 nm (GT-I9100, SHW-M250S/K/L) source
CPU
1.2 GHz dual-core ARM Cortex-A9 (GT-I9100, GT-I9105, GT-I9100G, SHW-M250S/K/L) source
GPU
ARM Mali-400 MP4 (GT-I9100, SHW-M250S/K/L) source
WiFi / Bluetooth / FM radio
Broadcom BCM4330 (SWB-B42) Bluetooth 4.0 Dual Band WLAN FM source source
Driver? - https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
Firmware? - https://packages.debian.org/sid/kernel/firmware-brcm80211
Memory
1 GB RAM source
Storage
16 GB or 32 GB flash memory source
Removable storage
microSD (up to 128 GB SDXC) source
TODO
gps, sensors, camera...