Samsung Galaxy Express SGH-I437 (samsung-expressatt): Difference between revisions
LogicalErzor (talk | contribs) No edit summary |
LogicalErzor (talk | contribs) No edit summary |
||
(21 intermediate revisions by 6 users not shown) | |||
Line 4: | Line 4: | ||
| codename = samsung-expressatt | | codename = samsung-expressatt | ||
| image = File:samsung-expressatt.jpg | | image = File:samsung-expressatt.jpg | ||
| imagecaption = Samsung Galaxy | | imagecaption = Samsung Galaxy Express SGH-I437 | ||
| releaseyear = 2012 | | releaseyear = 2012 | ||
| originalsoftware = Android 4.0 | | originalsoftware = Android | ||
| chipset = Qualcomm | | originalversion = 4.0 | ||
| extendedversion = 4.1 | |||
| chipset = Qualcomm Snapdragon S4 Plus (MSM8960) | |||
| cpu = Dual-core 1.5 GHz Krait | | cpu = Dual-core 1.5 GHz Krait | ||
| gpu = Adreno 225 | | gpu = Adreno 225 | ||
Line 14: | Line 16: | ||
| memory = 1 GB | | memory = 1 GB | ||
| architecture = armv7 | | architecture = armv7 | ||
| type = handset | |||
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --> | <!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --> | ||
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --> | | status_usbnet = Y<!-- USB networking does work? then put Y here and delete this comment --> | ||
| status_flashing = Y<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --> | | status_flashing = Y<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --> | ||
| status_touch = | | status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --> | ||
| status_screen = | | status_screen = <!-- The display is working? --> | ||
| status_wifi = <!-- Wireless network works? --> | | status_wifi = <!-- Wireless network works? --> | ||
| status_xwayland = | | status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --> | ||
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --> | | status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --> | ||
| status_mainline = Y | | status_mainline = Y | ||
Line 34: | Line 37: | ||
| status_calls = <!-- Talking to other people over the cellular network. --> | | status_calls = <!-- Talking to other people over the cellular network. --> | ||
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --> | | booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --> | ||
| pmoskernel = | | pmoskernel = 6.5_rc2 | ||
<!-- you can also use these lines if you need to: | <!-- you can also use these lines if you need to: | ||
Line 55: | Line 58: | ||
{{Device owners}} | {{Device owners}} | ||
== How to | == How to install == | ||
Start powered off. From there, hold the {{button|Volume Down}} button, {{button|Home}} button, and {{button|Power}} button. Once the phone buzzes, release the {{button|Power}} button. | Start powered off. From there, hold the {{button|Volume Down}} button, {{button|Home}} button, and {{button|Power}} button. Once the phone buzzes, release the {{button|Power}} button. | ||
There is also a way to enter Odin download mode without the 3 button combo ([https://forum.xda-developers.com/t/howto-ref-get-download-mode-without-3-button-combo-using-homemade-jig.819551/ link]). Instead of the resistor in this [https://wiki.postmarketos.org/wiki/Serial_debugging:Cable_schematics schematic] being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device. | There is also a way to enter Odin download mode without the 3 button combo ([https://forum.xda-developers.com/t/howto-ref-get-download-mode-without-3-button-combo-using-homemade-jig.819551/ link]). Instead of the resistor in this [https://wiki.postmarketos.org/wiki/Serial_debugging:Cable_schematics schematic] being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device. | ||
Once in odin mode, flash lk2nd onto the device: https://github.com/msm8916-mainline/lk2nd; | |||
currently you will have to build lk2nd and have to modify the bundle.dts where the other msm8960 devices exist just so the buttons work (Changes have been - or will soon be - submitted in a PR. Once it's merged, you don't have to do anything). | |||
Once lk2nd is built (or downloaded once the PR has been merged), simply do: | |||
heimdall flash --BOOT lk2nd-msm8960.img | |||
Building and flashing pmOS: | |||
faster mainline builds... envkernel.sh doesn't behave nice, so this is 3 separate commands. this basically tells us what configs we are missing in our device.config file in linux-next so that we can add it | |||
pmbootstrap -y zap -a && \ | |||
cd ~/linux/ && \ | |||
source ../pmbootstrap/helpers/envkernel.sh | |||
pmbootstrap checksum device-samsung-expressatt linux-next && \ | |||
pmbootstrap kconfig edit linux-next --arch armv7 && \ | |||
sudo cp ~/pmaports/cache_git/pmaports/device/testing/linux-next/config-generic-trailblazer.armv7 ~/linux/arch/arm/configs/expressatt_defconfig && \ | |||
make expressatt_defconfig && \ | |||
make -j 20 && \ | |||
pmbootstrap build --envkernel linux-next && \ | |||
deactivate | |||
sudo cp ~/linux/.output/.config .config && \ | |||
make LLVM=1 ARCH=arm -j $(nproc) savedefconfig && \ | |||
sudo cp ~/linux/defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \ | |||
echo "=======================================" && \ | |||
while IFS= read -r line; do grep -Fxq "$line" ~/linux/arch/arm/configs/qcom_defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/*.config || echo "$line"; done < ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \ | |||
echo "=======================================" && \ | |||
sudo rm ~/linux/.output/.config ~/linux/.config ~/linux/defconfig && \ | |||
pmbootstrap build --force device-samsung-expressatt && \ | |||
pmbootstrap initfs hook_add debug-shell && \ | |||
yes | pmbootstrap install && \ | |||
pmbootstrap export && \ | |||
cd /tmp/postmarketOS-export/ && \ | |||
fastboot flash userdata samsung-expressatt.img | |||
Finally remove the battery, plug it back in and watch the UART logs! The device doesn't boot to console yet, but close to it. Seems like configs are missing so I'm working to add them back in. | |||
== Mainlining blocker == | |||
main problem here is pastebin.com/qGbfFGUt | |||
small rw’s are fine, but big ones hang the system: pastebin.com/Tkx7Bw0q | |||
dont know how to debug the mmc here | |||
== UART == | |||
i have UART working. some links: | |||
# https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_S4_Plus_(MSM8960)#UART | |||
# https://wiki.postmarketos.org/wiki/Serial_debugging/Cable_schematics#Raspberry_Pi | |||
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-expressatt | |||
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/linux-postmarketos-qcom-msm8960 | |||
## https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/testing/linux-postmarketos-qcom-msm8960/config-postmarketos-qcom-msm8960.armv7#L488 | |||
# https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts | |||
== Useful Links (?) == | |||
* https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa | |||
* https://arxiv.org/abs/1707.05082 | |||
* https://www.infineon.com/dgdl/Infineon-CY7C65223D-32LTXI-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eea2d36730a | |||
* https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v21_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa | |||
* https://www.infineon.com/dgdl/Infineon-CYUSBS236_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ef8d1be0e5a | |||
== See also == | == See also == | ||
* [https://www.gsmarena.com/samsung_galaxy_express_i437-5018.php GSMArena] | * [https://www.gsmarena.com/samsung_galaxy_express_i437-5018.php GSMArena] | ||
* {{Device package|samsung-expressatt}} | * {{Device package|samsung-expressatt}} | ||
* {{Kernel package| | * {{Kernel package|postmarketos-qcom-msm8960}} | ||
* [https://wiki.postmarketos.org/wiki/MSM8960_Mainlining MSM8960 Mainlining] |
Latest revision as of 17:32, 5 February 2025
![]() Samsung Galaxy Express SGH-I437 | |
Manufacturer | Samsung |
---|---|
Name | Galaxy Express SGH-I437 |
Codename | samsung-expressatt |
Released | 2012 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon S4 Plus (MSM8960) |
CPU | Dual-core 1.5 GHz Krait |
GPU | Adreno 225 |
Display | 480x800 AMOLED |
Storage | 8 GB |
Memory | 1 GB |
Architecture | armv7 |
Software | |
Original software | Android |
Original version | 4.0 |
Extended version | 4.1 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | yes |
postmarketOS kernel | 6.5_rc2 |
Flashing |
Works |
---|---|
USB Networking |
Works |
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
LogicalErzor
Maintainer(s)
LogicalErzor
Users owning this device
How to install
Start powered off. From there, hold the
button, button, and button. Once the phone buzzes, release the button.There is also a way to enter Odin download mode without the 3 button combo (link). Instead of the resistor in this schematic being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device.
Once in odin mode, flash lk2nd onto the device: https://github.com/msm8916-mainline/lk2nd;
currently you will have to build lk2nd and have to modify the bundle.dts where the other msm8960 devices exist just so the buttons work (Changes have been - or will soon be - submitted in a PR. Once it's merged, you don't have to do anything).
Once lk2nd is built (or downloaded once the PR has been merged), simply do:
heimdall flash --BOOT lk2nd-msm8960.img
Building and flashing pmOS:
faster mainline builds... envkernel.sh doesn't behave nice, so this is 3 separate commands. this basically tells us what configs we are missing in our device.config file in linux-next so that we can add it
pmbootstrap -y zap -a && \ cd ~/linux/ && \ source ../pmbootstrap/helpers/envkernel.sh
pmbootstrap checksum device-samsung-expressatt linux-next && \ pmbootstrap kconfig edit linux-next --arch armv7 && \ sudo cp ~/pmaports/cache_git/pmaports/device/testing/linux-next/config-generic-trailblazer.armv7 ~/linux/arch/arm/configs/expressatt_defconfig && \ make expressatt_defconfig && \ make -j 20 && \ pmbootstrap build --envkernel linux-next && \ deactivate
sudo cp ~/linux/.output/.config .config && \ make LLVM=1 ARCH=arm -j $(nproc) savedefconfig && \ sudo cp ~/linux/defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \ echo "=======================================" && \ while IFS= read -r line; do grep -Fxq "$line" ~/linux/arch/arm/configs/qcom_defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/*.config || echo "$line"; done < ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \ echo "=======================================" && \ sudo rm ~/linux/.output/.config ~/linux/.config ~/linux/defconfig && \ pmbootstrap build --force device-samsung-expressatt && \ pmbootstrap initfs hook_add debug-shell && \ yes | pmbootstrap install && \ pmbootstrap export && \ cd /tmp/postmarketOS-export/ && \ fastboot flash userdata samsung-expressatt.img
Finally remove the battery, plug it back in and watch the UART logs! The device doesn't boot to console yet, but close to it. Seems like configs are missing so I'm working to add them back in.
Mainlining blocker
main problem here is pastebin.com/qGbfFGUt
small rw’s are fine, but big ones hang the system: pastebin.com/Tkx7Bw0q
dont know how to debug the mmc here
UART
i have UART working. some links:
- https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_S4_Plus_(MSM8960)#UART
- https://wiki.postmarketos.org/wiki/Serial_debugging/Cable_schematics#Raspberry_Pi
- https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-expressatt
- https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/linux-postmarketos-qcom-msm8960
- https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts
Useful Links (?)
- https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa
- https://arxiv.org/abs/1707.05082
- https://www.infineon.com/dgdl/Infineon-CY7C65223D-32LTXI-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eea2d36730a
- https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v21_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa
- https://www.infineon.com/dgdl/Infineon-CYUSBS236_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ef8d1be0e5a