From 0021d92faec278603ff6067b1b85245dece62273 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 11:58:56 +0100 Subject: [PATCH 1/6] Added attribution --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 631fb7f..1cecc63 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,6 @@ You can use this to flash a image **directly to eMMC**, troubleshooting a broken ## This project is built on: - [Busybox](https://busybox.net) - which is [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). +- [postmarketOS](https://postmarketos.org) scripts - which is [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). - [Pine64's kernel fork](https://gitlab.com/pine64-org/linux) - which is [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). - [U-Boot](https://github.com/u-boot/u-boot) - which has [multiple licenses](https://github.com/u-boot/u-boot/tree/master/Licenses) - -## Support -- Discord: https://discord.gg/AvtdRJ3 -- Matrix: #danctnix-portingv2:matrix.org From a94a536815cf88ce9f7168dde5f2f1f2aa2d0b90 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 12:13:57 +0100 Subject: [PATCH 2/6] Updated init scripts --- initramfs/init | 15 ++++----------- initramfs/init_functions.sh | 12 +++++------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/initramfs/init b/initramfs/init index 0246b45..282a0c8 100755 --- a/initramfs/init +++ b/initramfs/init @@ -1,8 +1,7 @@ #!/bin/sh - -################################################ -# Copyright (c) 2020 - Dreemurrs Embedded Labs # -################################################ +## Init script for JumpDrive +## Copyright (C) 2020 - postmarketOS +## Copyright (C) 2020 - Danctl12 . /init_functions.sh @@ -37,12 +36,6 @@ setup_usb_configfs start_udhcpd setup_telnetd -# We'll just give some new lines cuz why not. -printf "\n\n" - -echo "Rescue SD has initialized!" -echo "Please connect the device to your computer." -echo -echo "* Telnet: $IP (port 23)" +# ToDo: splash loop_forever diff --git a/initramfs/init_functions.sh b/initramfs/init_functions.sh index ce087dd..58bf1ae 100755 --- a/initramfs/init_functions.sh +++ b/initramfs/init_functions.sh @@ -8,9 +8,9 @@ setup_usb_configfs() { fi # Default values for USB-related deviceinfo variables - usb_idVendor="0x1F3A" - usb_idProduct="0xEFE8" - usb_serialnumber="Rescue SD Boot" + usb_idVendor="0x1209" # Generic + usb_idProduct="0x4201" # Random ID + usb_serialnumber="Jumpdrive" usb_rndis_function="rndis.usb0" usb_mass_storage_function="mass_storage.0" @@ -45,8 +45,7 @@ setup_usb_configfs() { # Make sure there is a mmcblk2 (eMMC)... if [ -z "$(ls /dev/mmcblk2)" ]; then - echo "eMMC is not found, something is horribly wrong!!" - echo "It's probably better to make Huong Tram release a new music video." + echo "/dev/mmcblk2 could not be opened, possible eMMC defect" crash_kernel fi @@ -61,8 +60,7 @@ setup_usb_configfs() { # Check if there's an USB Device Controller if [ -z "$(ls /sys/class/udc)" ]; then - echo "No USB Device Controller available, something is horribly wrong!!" - echo "Please let Danct12 know this." + echo "No USB Device Controller available" crash_kernel fi From 2b74ba81c2b4d34fa9993e4bdc073da6c46e1a66 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 15:49:12 +0100 Subject: [PATCH 3/6] New buildsystem and splash --- .gitignore | 13 ++++++ Makefile | 74 ++++++++++++++++++++++++++++++ initramfs/init | 16 +++++-- splash/jumpdrive.ppm | Bin 0 -> 3110462 bytes splash/jumpdrive.xcf | Bin 0 -> 143357 bytes src/boot.txt | 4 +- src/linux-disable_sysrq-msgs.diff | 12 ----- 7 files changed, 103 insertions(+), 16 deletions(-) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 splash/jumpdrive.ppm create mode 100644 splash/jumpdrive.xcf delete mode 100644 src/linux-disable_sysrq-msgs.diff diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7fa26ca --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +/Image.gz +/fat.img +/jumpdrive.img +/jumpdrive.img.xz +/u-boot-sunxi-with-spl.bin +/*.apk +/initramfs.gz +/initramfs.cpio +/initramfs/bin/busybox +/initramfs/splash.ppm.gz +/build +/boot.scr +/*.dtb diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2b3ce6e --- /dev/null +++ b/Makefile @@ -0,0 +1,74 @@ +CROSS_FLAGS = ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- + +all: jumpdrive.img.xz + +jumpdrive.img.xz: jumpdrive.img + xz -c jumpdrive.img > jumpdrive.img.xz + +initramfs/bin/busybox: src/busybox src/busybox_config + mkdir -p build/busybox + cp src/busybox_config build/busybox/.config + make -C src/busybox O=../../build/busybox $(CROSS_FLAGS) + cp build/busybox/busybox initramfs/bin/busybox + +initramfs/splash.ppm.gz: splash/jumpdrive.ppm + gzip < splash/jumpdrive.ppm > initramfs/splash.ppm.gz + +initramfs.cpio: initramfs/bin/busybox initramfs/init initramfs/init_functions.sh initramfs/splash.ppm.gz + cd initramfs; find . | cpio -H newc -o > ../initramfs.cpio + +initramfs.gz: initramfs.cpio + gzip < initramfs.cpio > initramfs.gz + +Image.gz: src/linux_config + mkdir -p build/linux + cp src/linux_config build/linux/.config + make -C src/linux O=../../build/linux $(CROSS_FLAGS) olddefconfig + make -C src/linux O=../../build/linux $(CROSS_FLAGS) + cp build/linux/arch/arm64/boot/Image.gz Image.gz + cp build/linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtb sun50i-a64-pinephone.dtb + +jumpdrive.img: fat.img u-boot-sunxi-with-spl.bin + rm -f jumpdrive.img + truncate --size 50M jumpdrive.img + parted -s jumpdrive.img mktable msdos + parted -s jumpdrive.img mkpart primary fat32 2048s 100% + parted -s jumpdrive.img set 1 boot on + dd if=u-boot-sunxi-with-spl.bin of=jumpdrive.img bs=8k seek=1 + dd if=fat.img of=jumpdrive.img seek=1024 bs=1k + +boot.scr: src/boot.txt + mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d src/boot.txt boot.scr + +u-boot-sunxi-with-spl.bin: + wget http://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/u-boot-pine64-2020.01-r0.apk + tar -xvf u-boot-pine64-2020.01-r0.apk usr/share/u-boot/pine64-lts/u-boot-sunxi-with-spl.bin --strip-components 4 + + +fat.img: initramfs.gz Image.gz boot.scr + rm -f fat.img + truncate --size 40M fat.img + mkfs.fat -F32 fat.img + + mcopy -i fat.img Image.gz ::Image.gz + mcopy -i fat.img sun50i-a64-pinephone.dtb ::sun50i-a64-pinephone.dtb + mcopy -i fat.img initramfs.gz ::initramfs.gz + mcopy -i fat.img boot.scr ::boot.scr + +.PHONY: clean + +clean: + rm -rf build + rm -f initramfs/bin/busybox + rm -f fat.img + rm -f jumpdrive.img + rm -f jumpdrive.img.xz + rm -f *.dtb + rm -f u-boot-pine64-2020.01-r0.apk + rm -f u-boot-sunxi-with-spl.bin + rm -f initramfs/splash.ppm.gz + rm -f initramfs/bin/busybox + rm -f initramfs.cpio + rm -f initramfs.gz + rm -f Image.gz + rm -f boot.scr diff --git a/initramfs/init b/initramfs/init index 282a0c8..ad02c4e 100755 --- a/initramfs/init +++ b/initramfs/init @@ -3,12 +3,23 @@ ## Copyright (C) 2020 - postmarketOS ## Copyright (C) 2020 - Danctl12 +echo "Welcome to JumpDrive" + . /init_functions.sh # Environment variables that we want: IP=172.16.42.1 +# Create all the symlinks to /bin/busybox +mkdir -p /usr/bin +mkdir -p /sbin +mkdir -p /usr/sbin +echo "Installing Busybox..." && /bin/busybox --install -s + # Mount things needed by this script +mkdir /proc +mkdir /sys +mkdir /etc mount -t proc proc /proc mount -t sysfs sysfs /sys @@ -22,8 +33,6 @@ mount -t devpts devpts /dev/pts # LED indicator for MMC r/w access echo mmc2 > /sys/class/leds/pinephone\:green\:user/trigger -# Create all the symlinks to /bin/busybox -echo "Installing Busybox..." && /bin/busybox --install -s # Create device nodes echo "Creating device nodes..." @@ -36,6 +45,7 @@ setup_usb_configfs start_udhcpd setup_telnetd -# ToDo: splash +gzip -c -d splash.ppm.gz > /splash.ppm +fbsplash -s /splash.ppm loop_forever diff --git a/splash/jumpdrive.ppm b/splash/jumpdrive.ppm new file mode 100644 index 0000000000000000000000000000000000000000..7ddb9b047336d016b30423a0ced0dbfaffb2b7e5 GIT binary patch literal 3110462 zcmeF)YpiTly(swk`6PVh6CVsW;R8vVd&#Angpd$A#1KPs34xpt2sSjfoPZ73;3Fy^ za=@!s5g!ooz(Eld<=`QJ;t@Q`OL+-gfi1{$BOtIh?+t9&oF2VLtSncpRcqF)IY*7E z|8HjpYuB1{JbwT2|IcBqs#*W-fBn1v^nw5V)Z_op|M&R+>jTGr`U4+2=-~hMfzyva z^%E!jKOg_VULX7~|M`ReWuFiHxBuhd51f4BY5({Ca>B>|?tk0sKY!rA{MY~bpZ{*J zz4!jR#vcL%2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 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 literal 0 HcmV?d00001 diff --git a/src/boot.txt b/src/boot.txt index 193dbed..e469ec6 100644 --- a/src/boot.txt +++ b/src/boot.txt @@ -2,10 +2,12 @@ setenv kernel_addr_z 0x44080000 setenv bootargs loglevel=0 silent console=tty0 +gpio set 114 + if load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_z} /Image.gz; then unzip ${kernel_addr_z} ${kernel_addr_r} if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} /sun50i-a64-pinephone.dtb; then - if load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /recovery.gz; then + if load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /initramfs.gz; then booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}; else booti ${kernel_addr_r} - ${fdt_addr_r}; diff --git a/src/linux-disable_sysrq-msgs.diff b/src/linux-disable_sysrq-msgs.diff deleted file mode 100644 index 899acdc..0000000 --- a/src/linux-disable_sysrq-msgs.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c -index 573b20551..42b040d16 100644 ---- a/drivers/tty/sysrq.c -+++ b/drivers/tty/sysrq.c -@@ -551,7 +551,6 @@ void __handle_sysrq(int key, bool check_mask) - * should not) and is the invoked operation enabled? - */ - if (!check_mask || sysrq_on_mask(op_p->enable_mask)) { -- pr_info("%s\n", op_p->action_msg); - console_loglevel = orig_log_level; - op_p->handler(key); - } else { From 81e7903d18efa76477fe2a1f702867321be1489a Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 15:54:16 +0100 Subject: [PATCH 4/6] Removed old build script --- build.sh | 64 -------------------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100755 build.sh diff --git a/build.sh b/build.sh deleted file mode 100755 index 0159007..0000000 --- a/build.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh - -# EDIT THIS: -export ARCH=arm64 -export CROSS_COMPILE=aarch64-linux-gnu- -IMAGE_NAME="pinephone-sdrescue.img" - -# Cleanup first -rm -rf src/busybox/out -rm -rf src/linux/out -rm -rf usr - -# Build Busybox -cd src/busybox -mkdir out -cp ../busybox_config out/.config -make O=out -j$(nproc --all) -cd ../.. - -# Build Linux Kernel -cd src/linux -mkdir out -patch -p1 -N < ../linux-disable_sysrq-msgs.diff || true -cp ../linux_config out/.config -make O=out -j$(nproc --all) -cd ../.. - -# Make initramfs -sudo cp -v src/busybox/out/busybox initramfs/bin/ -cd initramfs -find . | cpio -H newc -o > ../initramfs.cpio -cd .. -cat initramfs.cpio | gzip > recovery.gz - -# Create image -truncate --size 50M $IMAGE_NAME - -cat << EOF | fdisk pinephone-sdrescue.img -o -n -p -1 -2048 -102399 -w -EOF - -LOOP_DEVICE=$(losetup -f) -sudo losetup -P $LOOP_DEVICE $IMAGE_NAME -sudo mkfs.fat -F32 ${LOOP_DEVICE}p1 -mkdir mount -sudo mount ${LOOP_DEVICE}p1 mount -sudo cp -v src/linux/out/arch/arm64/boot/Image.gz mount -sudo cp -v src/linux/out/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtb mount -sudo cp -v recovery.gz mount -sudo mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d src/boot.txt mount/boot.scr -sudo umount mount -rm -rf mount - -wget http://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/u-boot-pine64-2020.01-r0.apk -tar xvf u-boot-pine64-2020.01-r0.apk -sudo dd if=usr/share/u-boot/pine64-lts/u-boot-sunxi-with-spl.bin of=${LOOP_DEVICE} bs=8k seek=1 - -sudo losetup -d $LOOP_DEVICE From 6911251c815e023fc5817246e5002bf649051c46 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 15:55:58 +0100 Subject: [PATCH 5/6] Updated README --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 1cecc63..e97ad65 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,13 @@ You can use this to flash a image **directly to eMMC**, troubleshooting a broken - [postmarketOS](https://postmarketos.org) scripts - which is [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). - [Pine64's kernel fork](https://gitlab.com/pine64-org/linux) - which is [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). - [U-Boot](https://github.com/u-boot/u-boot) - which has [multiple licenses](https://github.com/u-boot/u-boot/tree/master/Licenses) + +## Building + +Run `make` inside this directory and it will build jumpdrive.img.xz that can be flashed to SD. + +The dependencies are: + +- aarch64-linux-gnu- toolchain +- u-boot tools +- mtools From 7c5b66741399d310671afdbb29d092f6c96e6641 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Mon, 16 Mar 2020 15:58:12 +0100 Subject: [PATCH 6/6] Updated flashing led color --- initramfs/init | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/initramfs/init b/initramfs/init index ad02c4e..a717ff2 100755 --- a/initramfs/init +++ b/initramfs/init @@ -30,8 +30,9 @@ mount -t configfs -o nodev,noexec,nosuid configfs /config mkdir -p /dev/pts mount -t devpts devpts /dev/pts -# LED indicator for MMC r/w access +# Amber LED indicator for MMC r/w access echo mmc2 > /sys/class/leds/pinephone\:green\:user/trigger +echo mmc2 > /sys/class/leds/pinephone\:red\:user/trigger # Create device nodes