Samsung Nexus S (samsung-crespo)

From postmarketOS
Jump to navigation Jump to search
Samsung (Google) Nexus S
200px
CHANGE_ME
Manufacturer Samsung (Google)
Name Nexus S
Codename samsung-crespo
Released 2010
Category testing
Original software Android 2.3
postmarketOS kernel 3.0.101
Hardware
Chipset Exynos 3 Single 3110
CPU 1.0 GHz Hummingbird
GPU PowerVR SGX540
Display 480x800 Super AMOLED
Storage 16 GB
Memory 512 MB
Architecture armv7
Features
USB Networking
Works
Flashing
Partial
Touchscreen
Works
Display
Works
WiFi
Works
Xwayland
FDE
Mainline
Broken
Battery
3D Acceleration
Accelerometer
Audio
Works
Bluetooth
Broken
Camera
Broken
GPS
Broken
Mobile data
Broken
SMS
Broken
Calls
Broken
USB OTG



Contributors

  • joeblos

Maintainer(s)

Users owning this device


How to enter flash mode

Hold volup+power to power up in bootloader/fastboot mode.

Installation

The Nexus S fastboot flasher mode cannot be used to flash the system (rootfs) image, for two reasons:

  • There is a size limit of ~340MB (RAM limitation I assume)
  • The system image generated is rejected by the bootloader (bad magic number error)

So we can use the recovery zip flashing method, except for the boot.img (kernel+initramfs) as the pmos install script fails to correctly find the boot partition.

Thus, we use fastboot to flash the boot.img, and use recovery zip to flash the rootfs.

Here are the instructions:

  1. Get a recent TWRP. v2.8.7.0 is known to work. (CyanogenRecovery does not work)
  1. Setup your pmos environment
$ pmbootstrap init
  1. Generate the initramfs
$ pmbootstrap initfs build
  1. Generate the recovery zip without boot partition
$ pmbootstrap install --android-recovery-zip --recovery-no-kernel
  1. Put the device in fastboot mode, by holding volume_up+power for a few seconds
  2. Flash the boot partition
$ pmbootstrap flasher flash_kernel
  1. Reboot the device in recovery (i.e: TWRP, see above) and enable "ADB Sideload"
  2. Until this commit is not merged, the following temp fix is required:
    1. Patch the recovery zip
$ find -name "pmos-samsung-crespo.zip"
path/to/pmos-samsung-crespo.zip
$ cp path/to/pmos-samsung-crespo.zip pmos-samsung-crespo.zip
$ wget https://gitlab.com/joeblos/postmarketos-android-recovery-installer/-/commit/10c161770923649552f29348ea35ff1fa1fcf513.diff -O p1.path
$ unzip pmos-samsung-crespo.zip chroot/bin/pmos_install_functions
$ patch pmos_install_functions p1.patch
$ zip -r pmos-samsung-crespo.zip chroot/bin/pmos_install_functions
    1. Manually sideload the edited recovery zip
$ adb sideload pmos-samsung-crespo.zip
  1. Done!

Audio

Install alsamixer and a music player:

$ apk add alsa-utils
$ apk add cmus # a console player, only to show music playback works

Open alsamixer, navigate to "Playback Path", change it to `RCV` or `SPK` (`HP` for headphones). Open cmus, add your music, start playback (see cmus manual on how).


See also