Site Tools


Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
samsung-i9100

This is an old revision of the document!


<code bash> pacman -S arm-none-eabi-gcc uboot-tools git clone https://github.com/Sekilsgs2/i9100_kernel_mainline_port.git cd i9100_kernel_mainline_port export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make i9100_defconfig make -j6 sh mk.sh sh mod.sh # heimdall flash –KERNEL boot.img </code>

<code bash> git clone git:git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git cd linux-stable git checkout tags/5.4.5 wget "https://raw.githubusercontent.com/Sekilsgs2/i9100_kernel_mainline_port/6c02dad36b8a76a6f50d26ff1b9abb0d30aacbc9/arch/arm/configs/i9100_defconfig" -O arch/arm/configs/i9100_defconfig wget "https://raw.githubusercontent.com/Sekilsgs2/i9100_kernel_mainline_port/master/arch/arm/boot/dts/exynos4210-i9100.dts" -O arch/arm/boot/dts/exynos4210-i9100.dts wget "https://raw.githubusercontent.com/Sekilsgs2/i9100_kernel_mainline_port/master/arch/arm/boot/dts/exynos4210.dtsi" -O arch/arm/boot/dts/exynos4210.dtsi # patch file arch/arm/boot/dts/Makefile export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make i9100_defconfig make -j6 make dtbs cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4210-i9100.dtb > zimage mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n Linux-android-sucks -d zimage boot.img make modules_install INSTALL_MOD_PATH=../ </code> * archlinuxarm https://archlinuxarm.org/forum/viewtopic.php?f=27&t=5284 * https://github.com/Sekilsgs2/i9100_kernel_mainline_port/issues/1 postmarketos binaries chroot <code> gio: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-armhf.so.1, stripped </code> archlinuxarm binary http://os.archlinuxarm.org/os/ArchLinuxARM-odroid-x-latest.tar.gz <code> gio: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=6c5eae3cb78debe406df57f20e99c2462f764c85, for GNU/Linux 3.2.0, stripped </code> * rootfs armv7? <code bash> pacman -U dtc-1.4.1-1-x86_64.pkg.tar.xz # downgrade to older version pacman -S gcc-arm-none-eabi-bin-49 git clone https://github.com/Sekilsgs2/i9100-uboot.git git clone https://github.com/Sekilsgs2/toolchain_for_old_uboot.git cd i9100-uboot export PATH="/usr/local/arm/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH" # set -gx PATH /usr/local/arm/gcc-arm-none-eabi-4_9-2015q3/bin $PATH export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make galaxys2_config make galaxys2 # heimdall flash –kernel u-boot.bin </code> * bug report using mainline kernel galaxy s2 https://github.com/Sekilsgs2/i9100_kernel_mainline_port/issues/1#issuecomment-565706956 * xda post mainline kernel samsun s2 https://forum.xda-developers.com/galaxy-s2/general/port-run-mainline-linux-kernel-t3901190 * uboot 9100 sources * https://github.com/Talustus/i9100-uboot * https://github.com/astarasikov <code bash> heimdall flash –KERNEL u-boot.bin heimdall flash –RECOVERY uImage </code> <code> Well, to boot the custom kernel, you need to put it to the "/sdcard/boot/vmlinux.uimg", not to the external sd card. The rootfs should be put to the second partition of the external microSD (mmcblk1p2), but you can recompile the kernel and put any cmline there. </code> convert zImage into uImage <code bash> mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n Linux-android-sucks -d zImage uImage </code> u-boot trats https://forum.xda-developers.com/galaxy-s2/general/boot-sources-i9100-t1694523 <code bash> git clone git:git.denx.de/u-boot.git cd u-boot export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make trats_config make all </code> ===== legacy uboot (working) =====

 pacman -U dtc-1.4.1-1-x86_64.pkg.tar.xz # downgrade to older version pacman -S gcc-arm-none-eabi-bin-49 git clone https://github.com/Sekilsgs2/i9100-uboot.git git clone https://github.com/Sekilsgs2/toolchain_for_old_uboot.git cd i9100-uboot export PATH="/usr/local/arm/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH" # set -gx PATH /usr/local/arm/gcc-arm-none-eabi-4_9-2015q3/bin $PATH export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make galaxys2_config make galaxys2 heimdall flash --KERNEL u-boot.bin 

legacy kernel 4.2 (partially working)

<code bash> git clone https://github.com/Sekilsgs2/i9100_kernel_mainline_port.git cd i9100_kernel_mainline_port export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make i9100_defconfig make -j6 cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4210-i9100.dtb > zimage mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n Linux-android-sucks -d zimage boot.img make modules_install INSTALL_MOD_PATH=../ heimdall flash –RECOVERY boot.img </code>

prepare rootfs

<code bash> heimdall flash –FACTORYFS … </code>

try <code bash> "console=ttyS0,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro no_console_suspend vdaccfg=0xa000 logo=osd" </code> <code> setenv loadaddr 0x70800000 setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk0p1 ip=none rootfstype=ext4' setenv bootcmd_mmc 'run bootargs_base bootargs_mmc; mmc dev 0; mmc read ${loadaddr} 0x800 0x1800; bootm' setenv bootcmd 'run bootcmd_mmc' saveenv </code> <code> bootpart=1:1 devtype=mmc bootdir= bootfile=zImage bootpartition=mmcblk1p2 set_bootargs=setenv bootargs console=ttyO0,115200n8 root=/dev/${bootpartition} rw rootfstype=ext4 rootwait uenvcmd=run set_bootargs;run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr} </code> Next steps

<code> CONFIG_USB_ETH=y CONFIG_USB_ETH_RNDIS=y CONFIG_USB_ETH_EEM=y </code> <file - /etc/systemd/network/usb0.network> [Match] Name=usb0

[Network] DNS=192.168.2.1 IPv6PrivacyExtensions=true

[Address] Address=192.168.7.18/30

[Route] Gateway=192.168.7.17 </file>

<code bash> pacman-key –init pacman-key –populate archlinuxarm </code>

  • create package linux-firmware-samsung-i9100 or something
  • use mainline kernel supplied by archlinuxarm, using dtb kernel boot args
  • document everything we have so far
  • iwd & sshd

<code bash> systemctl enable –now iwd systemd-networkd systemd-resolved sshd ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf </code> <file - /etc/systemd/network/wlan0.network> [Match] Name=< name of your wifi interface or * for every interface >

[Network] DHCP=yes IPv6PrivacyExtensions=true </file> <code> RFKILL=y CONFIG_KEY_DH_OPERATIONS=y </code> <code bash> dd of=archlinuxarm.img bs=1 seek=10G count=0 mkfs.ext4 -F archlinuxarm.img mount archlinuxarm.img arm-chroot pacman -S qemu-arm-static systemctl start systemd-binfmt wget "http://de4.mirror.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz" bsdtar -xpf ArchLinuxARM-armv7-latest.tar.gz -C arm-chroot arch-chroot arm-chroot # pacman-key –init # pacman-key –populate archlinuxarm # pacman -Syu base-devel </code> <code bash> pacman -S phosh gnome-session gnome-shell </code>

  • check patched files by Sekilsgs2
  • as i said before: start just phoc to get that running first: e.g. phoc -E 'weston-terminal' once that works you can then start phosh from that terminal and once that works bring gnome-session into the mix. that allows us to debug all parts independently.
  • @lcd dts: flip-horizontal;, flip-vertical;

u-boot porting

instructions for archlinux <code bash> git clone https://git.project-insanity.org/onny/i9100-uboot.git pacman -U i9100-uboot/dtc-1.4.1-1-x86_64.pkg.tar.xz i9100-uboot/gcc-arm-none-eabi-bin-49-4.9_2015_q3_update-3-x86_64.pkg.tar.xz wget "https://github.com/u-boot/u-boot/archive/v2012.04.tar.gz" tar xvf v2012.04.tar.gz cd u-boot-2012.04 patch -p1 -i ../i9100-uboot/i9100-uboot-2012.04.patch patch -p1 -i ../i9100-uboot/i9100-uboot-2012.04-bootarchlinux.patch export PATH="/usr/local/arm/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH" export ARCH=arm export CROSS_COMPILE=arm-none-eabi- make galaxys2 ../i9100-uboot/flash.sh </code>

<code> boards.cfg drivers/misc/Makefile drivers/mmc/s5p_mmc.c (no file) </code> interessante datei in uboot upstream: include/configs/exynos5250-dt.h

  • modifiziert
    • galaxys2.c
    • galaxys2.h

https://github.com/u-boot/u-boot/commits/master?after=d16e18ca6c4d81ac142acd529b1acb55b0c96dfc+45035 <code> git checkout 51bdad67cb6738c5d0e78084cf3e3baa216f4d2f </code>

samsung-i9100.1632226394.txt.gz · Last modified: 2021/10/31 10:42 (external edit)