Difference between revisions of "Samsung Galaxy SIII LTE (samsung-i9305)"
KurtisHanna (talk | contribs) (added lima on mainline info) |
m (→See also: Device was renamed in pmaports!1634) |
||
(29 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox device | {{Infobox device | ||
| manufacturer = Samsung | | manufacturer = Samsung | ||
− | | name = Galaxy | + | | name = Galaxy S III |
− | | codename = samsung-i9305 | + | | codename = samsung-i9300, samsung-i9305 |
| image = File:Samsung-i9300-galaxy-s-iii-ofic.jpg | | image = File:Samsung-i9300-galaxy-s-iii-ofic.jpg | ||
− | | imagecaption = Samsung Galaxy SIII | + | | imagecaption = Samsung Galaxy SIII |
| releaseyear = 2012 | | releaseyear = 2012 | ||
| originalsoftware = Android 4.1.1 | | originalsoftware = Android 4.1.1 | ||
Line 13: | Line 13: | ||
| display = 720x1280 Super AMOLED | | display = 720x1280 Super AMOLED | ||
| memory = 2 GB | | memory = 2 GB | ||
− | | architecture = | + | | architecture = armv7 |
+ | <!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --> | ||
| status_usbnet = Y | | status_usbnet = Y | ||
− | | status_flashing = | + | | status_flashing = N |
| status_touch = Y | | status_touch = Y | ||
| status_screen = Y | | status_screen = Y | ||
Line 21: | Line 22: | ||
| status_xwayland = Y | | status_xwayland = Y | ||
| status_fde = Y | | status_fde = Y | ||
− | | status_mainline = | + | | status_mainline = Y |
| status_battery = | | status_battery = | ||
| status_3d = | | status_3d = | ||
Line 32: | Line 33: | ||
| status_sms = | | status_sms = | ||
| status_calls = | | status_calls = | ||
+ | | status = | ||
| booting = yes | | booting = yes | ||
}} | }} | ||
− | '''So far, what works for samsung-i9305 (Galaxy SIII LTE version) also works for the samsung-i9300 (Galaxy SIII international GSM version without LTE). | + | '''So far, what works for samsung-i9305 (Galaxy SIII LTE version) also works for the samsung-i9300 (Galaxy SIII international GSM version without LTE) and samsung-shv-e210s (a Korean variant). (None of these SIII models should be confused with the North American SIII models, which require OS builds.)''' |
== Contributors == | == Contributors == | ||
+ | * Thiagaoplusplus | ||
* tyxieblub | * tyxieblub | ||
+ | * colaur | ||
− | == | + | == Users owning this device == |
− | + | {{Device owners}} | |
− | |||
== How to enter flash mode == | == How to enter flash mode == | ||
Line 58: | Line 61: | ||
4. Push VOLUME_UP to continue to ODIN mode screen | 4. Push VOLUME_UP to continue to ODIN mode screen | ||
− | + | <source lang="bash"> | |
− | + | # Ready the build | |
+ | pmbootstrap init (weston or xfce4 should do) | ||
+ | |||
+ | # Install rootfs to Micro SD Card | ||
+ | pmbootstrap install --sdcard=/dev/mmcblk0/1/2/3 # (will depend on where your Micro SD Card is mounted) | ||
+ | |||
+ | # Put the i9305 / i9300 into odin mode with the steps above and flash the kernel (to boot from the Micro SD Card) | ||
+ | pmbootstrap flasher flash_kernel # (in odin mode) | ||
+ | |||
+ | # and it should reboot automatically | ||
+ | </source> | ||
+ | |||
+ | ==Installing with downstream kernel== | ||
+ | |||
+ | <source lang="bash"> | ||
+ | #FIRST PMBOOTSTRAP INSTALL | ||
+ | mkdir ~/code | ||
+ | cd ~/code | ||
+ | git clone https://gitlab.com/postmarketOS/pmbootstrap.git | ||
+ | |||
+ | #CONFIG PMBOOTSTRAP | ||
+ | alias pmbootstrap=~/code/pmbootstrap/pmbootstrap.py | ||
+ | pmbootstrap init | ||
+ | #work path default | ||
+ | #samsung | ||
+ | #i9305 | ||
+ | #n | ||
+ | #wathever | ||
+ | #weston | ||
+ | #n | ||
+ | #none | ||
+ | #y | ||
+ | #samsung-i9305 | ||
+ | #y | ||
+ | |||
+ | #FOR DEBUGGING (NOT REQUIRED) | ||
+ | pmbootstrap initfs hook_add debug-shell | ||
+ | #Check log with 'tail -f ~/.local/var/pmbootstrap/log.txt' | ||
+ | |||
+ | #CREATE RECOVERY ZIP (for flashing with TWRP) | ||
+ | pmbootstrap install --no-fde --android-recovery-zip | ||
+ | |||
+ | #COPY ON SDCARD | ||
+ | cp ~/.local/var/pmbootstrap/chroot_buildroot_armhf/var/lib/postmarketos-android-recovery-installer/pmos-samsung-i9305.zip /media/computer/sdcard/ | ||
+ | #Insert sdcard in phone | ||
+ | #Reboot on recovery with up+home+power | ||
+ | #Install from zip | ||
+ | #Reboot | ||
+ | |||
+ | #IF BOOT STANDBY (DEBUG) | ||
+ | #Connect with USB cable | ||
+ | telnet 172.16.42.1 | ||
+ | pmos_continue_boot | ||
+ | </source> | ||
+ | |||
+ | |||
== Wifi == | == Wifi == | ||
Line 65: | Line 123: | ||
To get the wifi working, you'll need to modify the wpa_supplicant configuration. If this is not done, wpa_supplicant starts with -ip2p0 which is not supported on our device. | To get the wifi working, you'll need to modify the wpa_supplicant configuration. If this is not done, wpa_supplicant starts with -ip2p0 which is not supported on our device. | ||
− | $ echo 'wpa_supplicant_args=" | + | $ echo 'wpa_supplicant_args="-Dwext"' | sudo tee /etc/conf.d/wpa_supplicant |
− | |||
− | |||
− | + | You can use either Network manager or networking and wpa_supplicant. Network manager is recommend in most cases as it handles reconnection. | |
− | + | ||
− | + | === Network Manager === | |
− | |||
− | + | Ensure the networkmanger service is running | |
− | + | $ sudo rc-status | grep 'networkmanager' | |
− | |||
− | + | if it not visible, try to start the service: | |
− | $ sudo rc-service | + | $ sudo rc-service networkmanager start |
− | |||
Search for available WiFi networks and connect to network | Search for available WiFi networks and connect to network | ||
$ sudo nmcli device wifi list ifname wlan0 | $ sudo nmcli device wifi list ifname wlan0 | ||
− | $ sudo nmcli | + | $ sudo nmcli --ask dev wifi connect SSID |
+ | |||
+ | Reboot and you should be connected. | ||
+ | |||
+ | === Networking and wpa_supplicant === | ||
+ | |||
+ | You will need to manually configure the interfaces by creating <source>/etc/network/interfaces</source> e.g., | ||
+ | |||
+ | $ sudo vi /etc/network/interfaces | ||
− | + | <pre> | |
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | auto wlan0 | ||
+ | iface wlan0 inet dhcp | ||
+ | </pre> | ||
− | + | Save changes and add networking to start with system | |
− | |||
− | |||
− | + | $ sudo rc-update add networking | |
− | + | Add WiFi network information | |
$ wpa_passphrase YOUR_SSID YOUR_PASSPHRASE | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf | $ wpa_passphrase YOUR_SSID YOUR_PASSPHRASE | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf | ||
+ | |||
+ | Restart services | ||
+ | |||
$ sudo rc-service wpa_supplicant restart | $ sudo rc-service wpa_supplicant restart | ||
− | + | $ sudo rc-service networking start | |
== Mainline Kernel == | == Mainline Kernel == | ||
Line 120: | Line 187: | ||
Replicant and LineageOS successfully got the Lima driver for Mesa working on Mali when using mainline linux: [http://www.belg.in/replicant_9.webm video] [https://github.com/CustomROMs/android_local_manifests_i9300/issues/1#issuecomment-532308101 success announcement] | Replicant and LineageOS successfully got the Lima driver for Mesa working on Mali when using mainline linux: [http://www.belg.in/replicant_9.webm video] [https://github.com/CustomROMs/android_local_manifests_i9300/issues/1#issuecomment-532308101 success announcement] | ||
+ | |||
+ | Replicant currently supports this device [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS3I9300 in 6.0] and is doing a lot of research in order to get it running with [https://redmine.replicant.us/projects/replicant/wiki/Upstream a mainline kernel with a mainline bootloader] for Replicant 9. [https://redmine.replicant.us/projects/replicant/wiki/Exynos4Bootrom More bootloader research is here.] | ||
+ | |||
+ | [https://github.com/xboot/xboot/tree/b71fe8174882277897649bfe2177bf3ca300af69/src/arch/arm32/mach-exynos4412 xboot] might be a completely free bootloader option. Looks to have zero proprietary blobs. | ||
+ | |||
+ | |||
+ | == See also == | ||
+ | * {{wikipedia|Samsung_Galaxy_S_III|Wikipedia}} | ||
+ | * {{Device package|samsung-i9300}} | ||
+ | * {{Kernel package|samsung-i9300}} | ||
+ | |||
+ | |||
+ | ===Install with mainline kernel (WIP, not functional yet) === | ||
+ | |||
+ | <source lang="bash"> | ||
+ | #Export image files in ~/.local/var/pmbootstrap/chroot_rootfs_samsung-i9305/boot/ | ||
+ | pmbootstrap export | ||
+ | |||
+ | #5,3M -rw-r--r-- 1 root root 5,3M déc. 22 20:31 boot.img-samsung-i9305 (initramfs + vmlinuz) | ||
+ | #1,3M -rw-r--r-- 1 root root 1,3M déc. 22 20:31 initramfs-samsung-i9305 | ||
+ | #6,1M -rw-r--r-- 1 root root 6,1M déc. 22 20:31 initramfs-samsung-i9305-extra | ||
+ | #4,1M -rw-r--r-- 1 root root 4,1M nov. 5 17:30 vmlinuz-samsung-i9305 | ||
+ | |||
+ | #Get linux-next | ||
+ | cd ~/code | ||
+ | # Case 1 : first checkout | ||
+ | git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux | ||
+ | cd linux/ | ||
+ | git fetch origin | ||
+ | git reset --hard origin/master | ||
+ | # Case 2 : update | ||
+ | cd linux/ | ||
+ | git checkout master | ||
+ | git pull | ||
+ | |||
+ | #Prepare compile with i9305 defconfig in ~/code/linux/arch/arm/configs | ||
+ | source ~/code/pmbootstrap/helpers/envkernel.sh | ||
+ | make exynos_defconfig | ||
+ | #DTS : Note that ~/code/linux/arch/arm/boot/dts/exynos4412-i9305.dts already exists and should work | ||
+ | #Makefile in ~/code/linux/arch/arm/boot/dts/ already contains this DTS | ||
+ | |||
+ | #Kernel compilation | ||
+ | make -j5 | ||
+ | |||
+ | #Prepare shell | ||
+ | <code> | ||
+ | pmbootstrap chroot -- apk add abootimg android-tools mkbootimg dtbtool findutils | ||
+ | export DEVICE="$(pmbootstrap config device)" | ||
+ | export WORK="$(pmbootstrap config work)" | ||
+ | export TEMP="$WORK/chroot_native/tmp/mainline/" | ||
+ | mkdir -p "$TEMP" | ||
+ | |||
+ | #Patch boot image | ||
+ | cd ~/code/linux/.output/arch/arm/boot | ||
+ | cat zImage dts/exynos4412-i9305.dtb > "$TEMP"/zImage-dtb | ||
+ | cp "/tmp/postmarketOS-export/boot.img-$DEVICE" "$TEMP/boot.img" | ||
+ | pmbootstrap chroot | ||
+ | abootimg -u /tmp/mainline/boot.img -k /tmp/mainline/zImage-dtb -c bootsize=8955904 | ||
+ | exit | ||
+ | |||
+ | #Flash with Heimdall - WARNING - NOT FUNCTIONNAL YET | ||
+ | # enter download mode with down+home+power | ||
+ | # Connect usb | ||
+ | # click 'up' | ||
+ | heimdall detect | ||
+ | heimdall flash --BOOT ~/.local/var/pmbootstrap/chroot_native/tmp/mainline/boot.img | ||
+ | </source> |
Latest revision as of 16:07, 19 December 2020
USB Networking |
Works |
---|---|
Flashing |
Broken |
Touchscreen |
Works |
Display |
Works |
WiFi |
Works |
Xwayland |
Works |
FDE |
Works |
Mainline |
Works |
Battery | |
3D Acceleration | |
Accelerometer | |
Audio | |
Bluetooth | |
Camera | |
GPS | |
Mobile data | |
SMS | |
Calls | |
USB OTG | |
So far, what works for samsung-i9305 (Galaxy SIII LTE version) also works for the samsung-i9300 (Galaxy SIII international GSM version without LTE) and samsung-shv-e210s (a Korean variant). (None of these SIII models should be confused with the North American SIII models, which require OS builds.)
Contributors
- Thiagaoplusplus
- tyxieblub
- colaur
Users owning this device
- Arthurlutz (Notes: /e/ 0.11 (android 7 pie))
- Cick0 (Notes: GT-i9300)
- Eloy
- EnderNightLord (Notes: i9300 1gb ram)
- Illen (Notes: is a GT-i9300. Battery is broken, works on charger.)
- Mossroy (Notes: sometimes used : It can not be flashed easily. Seems to have a hardware issue with current consumption, even with a new battery)
- Neilvandyke (Notes: has GT-i9300)
- Newbyte (Notes: i9300)
How to enter flash mode
- Hold power + Home + volume down
- When prompted, release all buttons and press volume up
Installation
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
# Ready the build
pmbootstrap init (weston or xfce4 should do)
# Install rootfs to Micro SD Card
pmbootstrap install --sdcard=/dev/mmcblk0/1/2/3 # (will depend on where your Micro SD Card is mounted)
# Put the i9305 / i9300 into odin mode with the steps above and flash the kernel (to boot from the Micro SD Card)
pmbootstrap flasher flash_kernel # (in odin mode)
# and it should reboot automatically
Installing with downstream kernel
#FIRST PMBOOTSTRAP INSTALL
mkdir ~/code
cd ~/code
git clone https://gitlab.com/postmarketOS/pmbootstrap.git
#CONFIG PMBOOTSTRAP
alias pmbootstrap=~/code/pmbootstrap/pmbootstrap.py
pmbootstrap init
#work path default
#samsung
#i9305
#n
#wathever
#weston
#n
#none
#y
#samsung-i9305
#y
#FOR DEBUGGING (NOT REQUIRED)
pmbootstrap initfs hook_add debug-shell
#Check log with 'tail -f ~/.local/var/pmbootstrap/log.txt'
#CREATE RECOVERY ZIP (for flashing with TWRP)
pmbootstrap install --no-fde --android-recovery-zip
#COPY ON SDCARD
cp ~/.local/var/pmbootstrap/chroot_buildroot_armhf/var/lib/postmarketos-android-recovery-installer/pmos-samsung-i9305.zip /media/computer/sdcard/
#Insert sdcard in phone
#Reboot on recovery with up+home+power
#Install from zip
#Reboot
#IF BOOT STANDBY (DEBUG)
#Connect with USB cable
telnet 172.16.42.1
pmos_continue_boot
Wifi
To get the wifi working, you'll need to modify the wpa_supplicant configuration. If this is not done, wpa_supplicant starts with -ip2p0 which is not supported on our device.
$ echo 'wpa_supplicant_args="-Dwext"' | sudo tee /etc/conf.d/wpa_supplicant
You can use either Network manager or networking and wpa_supplicant. Network manager is recommend in most cases as it handles reconnection.
Network Manager
Ensure the networkmanger service is running
$ sudo rc-status | grep 'networkmanager'
if it not visible, try to start the service:
$ sudo rc-service networkmanager start
Search for available WiFi networks and connect to network
$ sudo nmcli device wifi list ifname wlan0 $ sudo nmcli --ask dev wifi connect SSID
Reboot and you should be connected.
Networking and wpa_supplicant
You will need to manually configure the interfaces by creating
/etc/network/interfaces
e.g.,
$ sudo vi /etc/network/interfaces
auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp
Save changes and add networking to start with system
$ sudo rc-update add networking
Add WiFi network information
$ wpa_passphrase YOUR_SSID YOUR_PASSPHRASE | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
Restart services
$ sudo rc-service wpa_supplicant restart $ sudo rc-service networking start
Mainline Kernel
The mainline kernel now has some support for the Samsung Galaxy SIII LTE (i9305):
Upstream dts: exynos4412-i9305.dts
Upstream status: Midas on Mainline.
Note that a patch is required to make it work with the stock samsung bootloader.
forkbomb from LineageOS got mainline u-boot running on this device: [1]
Replicant has this device booting with mainline Linux and almost mainline U-Boot with only the need for a few patches on top and would like to collaborate with us [2]
The Qualcomm Gobi MDM9615 Modem seems to have mainline kernel support as well: [3]
Replicant and LineageOS successfully got the Lima driver for Mesa working on Mali when using mainline linux: video success announcement
Replicant currently supports this device in 6.0 and is doing a lot of research in order to get it running with a mainline kernel with a mainline bootloader for Replicant 9. More bootloader research is here.
xboot might be a completely free bootloader option. Looks to have zero proprietary blobs.
See also
Install with mainline kernel (WIP, not functional yet)
#Export image files in ~/.local/var/pmbootstrap/chroot_rootfs_samsung-i9305/boot/
pmbootstrap export
#5,3M -rw-r--r-- 1 root root 5,3M déc. 22 20:31 boot.img-samsung-i9305 (initramfs + vmlinuz)
#1,3M -rw-r--r-- 1 root root 1,3M déc. 22 20:31 initramfs-samsung-i9305
#6,1M -rw-r--r-- 1 root root 6,1M déc. 22 20:31 initramfs-samsung-i9305-extra
#4,1M -rw-r--r-- 1 root root 4,1M nov. 5 17:30 vmlinuz-samsung-i9305
#Get linux-next
cd ~/code
# Case 1 : first checkout
git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux
cd linux/
git fetch origin
git reset --hard origin/master
# Case 2 : update
cd linux/
git checkout master
git pull
#Prepare compile with i9305 defconfig in ~/code/linux/arch/arm/configs
source ~/code/pmbootstrap/helpers/envkernel.sh
make exynos_defconfig
#DTS : Note that ~/code/linux/arch/arm/boot/dts/exynos4412-i9305.dts already exists and should work
#Makefile in ~/code/linux/arch/arm/boot/dts/ already contains this DTS
#Kernel compilation
make -j5
#Prepare shell
<code>
pmbootstrap chroot -- apk add abootimg android-tools mkbootimg dtbtool findutils
export DEVICE="$(pmbootstrap config device)"
export WORK="$(pmbootstrap config work)"
export TEMP="$WORK/chroot_native/tmp/mainline/"
mkdir -p "$TEMP"
#Patch boot image
cd ~/code/linux/.output/arch/arm/boot
cat zImage dts/exynos4412-i9305.dtb > "$TEMP"/zImage-dtb
cp "/tmp/postmarketOS-export/boot.img-$DEVICE" "$TEMP/boot.img"
pmbootstrap chroot
abootimg -u /tmp/mainline/boot.img -k /tmp/mainline/zImage-dtb -c bootsize=8955904
exit
#Flash with Heimdall - WARNING - NOT FUNCTIONNAL YET
# enter download mode with down+home+power
# Connect usb
# click 'up'
heimdall detect
heimdall flash --BOOT ~/.local/var/pmbootstrap/chroot_native/tmp/mainline/boot.img