PINE64

Full Version: HOW TO - install linux on emmc without etcher or USB adapter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Thought I would log a confirmation it is perfectly possible to setup a new ROCKPro64 with linux without:

1) etcher (or the Pine utility) - there is no aarch64 version of etcher which is kinda limiting for those of us already using arm systems for our daily driver!
2) I didn't order the Pine emmc/USB adapter to save money and reduce the order value/import tax hit.

The steps are pretty simple: yeah they rely on dd heavily and most of the time it works fine for me.

1) Download your image of choice, I went with bionic-minimal-rockpro64-0.7.9-1067-arm64.img.xz
2) Unzip the image,
Code:
$unxz bionic-minimal-rockpro64-0.7.9-1067-arm64.img.xz
3) Get an sdcard (pref 2GB or 4GB, see step 6 below) in your pc. Check where it is and dd the image to it. Mine was /dev/sda so
Code:
$sudo dd if=bionic-minimal-rockpro64-0.7.9-1067-arm64.img of=/dev/sda bs=4M
4) I find my 'bad dd flashes' can usually be sorted at this stage by removing and reinserting the sdcard and running fsck on the dos and linux partitions. Any problems (apart from not removed cleanly bit on dos partition) then repeat step 3 above.
5) Insert (blank/new) emmc in ROCKPro64, and sdcard, and boot. Should come up fine on the sdcard. And resize the / partition automatically.
6) As per Bullet64 instructions here, copy the image from the sdcard to the emmc. Make sure you have a small sdcard to keep the elapsed time of this step under control. And it must be smaller than the emmc else you will be in trouble.
Code:
$sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M
7) Reboot and manually resize the / partition

Code:
[email protected]:/usr/local/sbin$ sudo ./resize_rootfs.sh


Should be done. Enjoy
(07-28-2018, 02:12 AM)dukla2000 Wrote: [ -> ]Thought I would log a confirmation it is perfectly possible to setup a new ROCKPro64 with linux without:

1) etcher (or the Pine utility) - there is no aarch64 version of etcher which is kinda limiting for those of us already using arm systems for our daily driver!
2) I didn't order the Pine emmc/USB adapter to save money and reduce the order value/import tax hit.

The steps are pretty simple: yeah they rely on dd heavily and most of the time it works fine for me.

1) Download your image of choice, I went with bionic-minimal-rockpro64-0.7.9-1067-arm64.img.xz
2) Unzip the image,
Code:
$unxz bionic-minimal-rockpro64-0.7.9-1067-arm64.img.xz
3) Get an sdcard (pref 2GB or 4GB, see step 6 below) in your pc. Check where it is and dd the image to it. Mine was /dev/sda so
Code:
$sudo dd if=bionic-minimal-rockpro64-0.7.9-1067-arm64.img of=/dev/sda bs=4M
4) I find my 'bad dd flashes' can usually be sorted at this stage by removing and reinserting the sdcard and running fsck on the dos and linux partitions. Any problems (apart from not removed cleanly bit on dos partition) then repeat step 3 above.
5) Insert (blank/new) emmc in ROCKPro64, and sdcard, and boot. Should come up fine on the sdcard. And resize the / partition automatically.
6) As per Bullet64 instructions here, copy the image from the sdcard to the emmc. Make sure you have a small sdcard to keep the elapsed time of this step under control. And it must be smaller than the emmc else you will be in trouble.
Code:
$sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M
7) Reboot and manually resize the / partition

Code:
[email protected]:/usr/local/sbin$ sudo ./resize_rootfs.sh


Should be done. Enjoy

Thanks for linking to my forum.

I miss this
Code:
bs=4M

I will add this. Thank for the hint.
TOP TIP: For those of us stupid enough to corrupt the emmc just enough so it loads a kernel but wont load the rootfs!!
(e.g. install a 4.18 kernel Blush )

The 2 pin jumper next to the emmc module (unlabelled - and between emmc & SPI chip) seems to control whether the emmc is used for booting.

With a good SDcard in to boot and the "corrupt" emmc obviously a standard boot loads the kernel from the emmc and then failed to load the rootfs.

However, by jumpering the 2 pins, powering on, and removing the jumper AFTER the green power LED came on AND BEFORE the white sytem LED came on I got a complete boot from the SDcard and also a kernel initialisation of the emmc card so I could see it as a device  (and repeat my step 6 above).

PS - this obviously worked for me but comes with no warranty other than if you break it you own both parts!
Well, or just boot linux, remove jumper and run `rockpro64_reset_emmc.sh` to boot-up emmc.
(07-31-2018, 04:55 AM)ayufan Wrote: [ -> ]Well, or just boot linux, remove jumper and run `rockpro64_reset_emmc.sh` to boot-up emmc.
That is interesting, what does
echo fe330000.sdhci > /sys/bus/platform/drivers/sdhci-arasan/<un>bind
actually do?

In my case everything in dmesg seemed fine till 4s then

Code:
[    4.165757] hid-generic 0003:248A:8566.0002: input: USB HID v1.11 Mouse [Telink Wireless Receiver] on usb-fe3a0000.usb-1/input1
[   64.503086] mmc1: cqhci: timeout for tag 6
[   64.503731] mmc1: cqhci: ============ CQHCI REGISTER DUMP ===========
[   64.504662] mmc1: cqhci: Caps:      0x00000000 | Version:  0x00000510
[   64.505588] mmc1: cqhci: Config:    0x00000000 | Control:  0x00000000
[   64.506512] mmc1: cqhci: Int stat:  0x00000000 | Int enab: 0x00000000
[   64.507438] mmc1: cqhci: Int sig:   0x00000000 | Int Coal: 0x00000000
[   64.508362] mmc1: cqhci: TDL base:  0x00000000 | TDL up32: 0x00000000
[   64.509286] mmc1: cqhci: Doorbell:  0x00000000 | TCN:      0x00000000
[   64.510210] mmc1: cqhci: Dev queue: 0x00000000 | Dev Pend: 0x00000000
[   64.511134] mmc1: cqhci: Task clr:  0x00000000 | SSC1:     0x00011000
[   64.512058] mmc1: cqhci: SSC2:      0x00000000 | DCMD rsp: 0x00000000
[   64.512980] mmc1: cqhci: RED mask:  0xfdf9a080 | TERRI:    0x00000000
[   64.513904] mmc1: cqhci: Resp idx:  0x00000000 | Resp arg: 0x00000000
[   64.514826] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[   64.515751] mmc1: sdhci: Sys addr:  0x00000000 | Version:  0x00001002
[   64.516675] mmc1: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[   64.517599] mmc1: sdhci: Argument:  0x00010000 | Trn mode: 0x00000010
[   64.518522] mmc1: sdhci: Present:   0x1fff0000 | Host ctl: 0x00000034
[   64.519447] mmc1: sdhci: Power:     0x0000000b | Blk gap:  0x00000080
[   64.520370] mmc1: sdhci: Wake-up:   0x00000000 | Clock:    0x00000007
[   64.521294] mmc1: sdhci: Timeout:   0x0000000e | Int stat: 0x00000000
[   64.522218] mmc1: sdhci: Int enab:  0x02ff4000 | Sig enab: 0x02ff4000
[   64.523143] mmc1: sdhci: AC12 err:  0x00000000 | Slot int: 0x00000000
[   64.524066] mmc1: sdhci: Caps:      0x44edc880 | Caps_1:   0x800020f7
[   64.524990] mmc1: sdhci: Cmd:       0x00000d1a | Max curr: 0x00000000
[   64.525913] mmc1: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x64201697
[   64.526836] mmc1: sdhci: Resp[2]:   0x4e436172 | Resp[3]:  0x00880103
[   64.527759] mmc1: sdhci: Host ctl2: 0x00000083
[   64.528406] mmc1: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x7f11c208
[   64.529326] mmc1: sdhci: ============================================
[   64.530325] mmc1: running CQE recovery
which more or less repeated every 60s. I had tried to install Linux kernel 4.18.0-rc5-1052-ayufan-gd1b8f36378ff on top of 0.7.9 bionic minimal and obviously got it wrong. But as the 4.18 kernel had a problem recognising the emmc I could not do a dpkg -r.