Jump to content

[RK3328] Scishion V88 Piano and V88 Mini III TV boxes


segv

Recommended Posts

Ayufan’s Armbian on a V88 Piano or V88 Mini III

 

These two TV boxes seem to be electrically identical except that the V88 Mini III has 2 GB RAM and 8 GB ROM whereas the V88 Piano has 4 GB RAM and 16 GB ROM.

They use the same PCB as can be seen from the photos in these FreakTab topics:-
- http://freaktab.com/forum/tv-player-support/rockchip-based-tv-players/rk3328-devices/681869-scishion-v88-piano-tv-box-rk3328-4gb-ram-16gb-rom-android-7-1-usb-3-0-fast-lan
- http://freaktab.com/forum/tv-player-support/rockchip-based-tv-players/rk3328-devices/663248-scishion-v88-mini-iii-tv-box-rk3328-2-8gb-2-4-wifi-fast-lan

 

I do not have a V88 Mini III to test but I believe that my results for the V88 Piano should also be relevant to it.

 

N.B. many sites claim that the V88 Piano has Gigabit Ethernet (1000 Mbps). It does not: it only has Fast Ethernet (100 Mbps) like the V88 Mini III.

 

One nice thing about these TV boxes is that, unlike many others, they will boot easily from a micro-SD card.
Just insert the card and power on :)

 

My aim was to have Ubuntu running with all version-specific partitions (boot and root) on a USB drive.
I wanted to keep Android in the internal eMMC so that I could dual-boot by just inserting or removing the micro-SD card.

 

I wanted to have the root partition on a USB stick for three reasons:
1) A good USB stick is faster than a micro-SD card.
2) This avoids the system writing repeatedly to the micro-SD card because, if the root partition is on the micro-SD card, after a while it gets corrupted and will no longer boot. This happened to me with both a cheap Ansonchina card and also with a Kingston card. Maybe the write timings in the micro-SD card driver are incorrect.
3) Whilst experimenting on Amlogic boxes I have fried two big micro-SD cards. I have read that others have fried cards on Rockchip boxes. Moving the rootfs to a USB stick enables me to use a smaller and cheaper card.
(I suspect that they were destroyed by over-voltage due to a badly programmed regulator. With a 5 V USB stick and a 5 V PSU there should be no risk as I don’t think the regulators used can step up the voltage.)

 

I also wanted the boot partition to be on the USB stick so that I could have several GNU/Linux distributions on different USB sticks and boot with the same unmodified micro-SD card containing just the boot loaders.

 

I have deliberately avoided the necessity to have a Linux (or even Windows) PC.

 

N.B. the Ubuntu system will not (yet) have working Wi-Fi.

 

You will need:-
- a rooted V88 Piano (mine was sold pre-rooted)
- a micro-SD card: mine was 8 GB but 4 GB should suffice
- a USB Flash Drive: I have used both 32 GB and 8 GB but 4 GB may suffice for a fairly minimal system
- a USB keyboard (and mouse if installing a desktop): I used a wireless mini-keyboard/mouse
- a wired (RJ45) Ethernet connection with DHCP and Internet access

- an HDMI display

 

WARNING: before using a /dev/ or /dev/block device verify that you are using the correct one, using dmesg for instance. Otherwise you could overwrite precious data.
However if you remove all additional USB drives the names below should be correct.

 

The login is rock64 with password rock64 which is also required for sudo.

 

First step – install Ayfan’s Ubuntu Xenial Minimal 0.5.15 on a micro-SD card and prepare 0.6.25 on a USB stick.

 

Boot Android.

 

I installed and used Google Chrome for the following downloads because, with the stock Lightning browser, I couldn’t see when the download had finished.
(The busybox wget can't be used because it doesn’t support https.)

 

Open https://github.com/ayufan-rock64/linux-build/releases/tag/0.5.15 in the browser.
Download xenial-minimal-rock64-0.5.15-136-arm64.img.xz

 

If you wish to pass directly to Ubuntu Bionic you could use the Bionic 0.6.25 image instead of Xenial below.
However this may make it more difficult to update U-Boot later as I think a Xenial environment is expected to compile it.

Open https://github.com/ayufan-rock64/linux-build/releases/tag/0.6.25 in the browser.
Download xenial-minimal-rock64-0.6.25-193-arm64.img.xz


Insert the micro-SD card and the USB stick.

N.B. all existing files on both will be destroyed.

You will be asked how to use the USB stick: choose "removable storage" and "cancel" if asked whether to format it.

 

Execute the following actions and commands (in the text following the $ or #).

 

Install and start ConnectBot.

 

Open a local shell.

Become root.
$ su

 

Enter the directory where browsers save downloaded files.
# cd /sdcard/Download

 

Decompress the files.
# busybox xz -d xenial-minimal-rock64-0.5.15-136-arm64.img.xz
# busybox xz -d xenial-minimal-rock64-0.6.25-193-arm64.img.xz

 

Write the 0.6.25 image to the USB stick.
# dd if=xenial-minimal-rock64-0.6.25-193-arm64.img of=/dev/block/sda bs=1048576

 

Write the 0.5.15 image to the micro-SD card.
# dd if=xenial-minimal-rock64-0.5.15-136-arm64.img of=/dev/block/mmcblk1 bs=1048576

 

Ensure everything is written.
# sync

 

Power off the box.


Second step – boot Ayfan’s Ubuntu Xenial Minimal 0.5.15 and prepare the switch to 0.6.25 on the USB stick.

 

Insert the micro-SD card.
Boot and login (rock64/rock64).

 

Become root.
$ sudo -s

 

Remove partitions 6 (boot) and 7 (root) from the micro-SD card so that U-Boot and Linux will use the ones on the USB stick next time.
Luckily this only deletes their entries so Linux can continue to use them until they are unmounted.
Reply "Yes" and "Ignore" to the warnings.
# parted /dev/mmcblk1
rm 6
rm 7
q

 

# poweroff


Third step - boot Ayfan’s Ubuntu Xenial Minimal 0.6.25 from the boot and root partitions on the USB stick and prepare to update to a recent version.

 

Insert the USB stick in the middle USB slot and insert the micro-SD card.
Boot and login.
$ sudo -s

 

This DHCP configuration will be necessary for Bionic.
# cd /etc/network/interfaces.d
# sed s/eth0/eth1/ eth0 > eth1

 

At the time of writing there are only pre-release versions of 0.6.x but Ayufan has promised an official release shortly after the official release of Bionic due on 24th April.
If, in addition to Ubuntu updates,  you want to update to Auyufan's pre-release versions with an added risk of instability then:
# vi /etc/apt/sources.list.d/ayufan-rock64.list
Uncomment the last line

 

# apt update

 

The following lines are necessary if you update to a more recent Ayufan version which will disable eth1:

This is needed to re-enable eth1:
# apt install device-tree-compiler

Make rc.local enable eth1 which is disabled in recent versions and disable eth0 which is not used on the V88 Piano:

# vi /etc/rc.local
Add these two lines just before the last line (exit 0):
enable_dtoverlay eth1 ethernet@ff550000 okay
enable_dtoverlay eth0 ethernet@ff540000 disabled

 

# apt dist-upgrade -y

 

If you want a Mate desktop you can:
# install_desktop.sh mate

 

This gave me an error which I corrected with:
# apt -f install

 

If you wish you can also upgrade from Xenial to Bionic with do-release-upgrade.

 

# reboot

 

You should now be running an up-to-date version with the boot and root partitions on the USB stick.


The next step will be to compile and install a more recent U-Boot supporting the USB 3.0 port correctly.

To be continued...


The procedure above may seem convoluted so here are some additional explanations.

0.5.15 is used for its boot loaders as it is the latest version which will boot directly from a micro-SD card. Unfortunately it does not have working Ethernet and its U-Boot will not load correctly from the USB 3.0 slot.
0.6.25 is used because it has working Ethernet to install device-tree-compiler which is needed to re-enable eth1 on recent versions.

Edited by segv
Complete rewrite and subsequent corrections and clarifications
Link to comment
Share on other sites

Starting from 0.6.27 ayufan has disabled eth1 in his Rock64 images, so internal Ethernet no longer works on the V88 Piano.

 

Thanks to Igor and Xalius I found that this command will re-enable it on the running kernel: "sudo enable_dtoverlay eth1 ethernet@ff550000 okay"

Update:

I think the best solution is to add "enable_dtoverlay eth1 ethernet@ff550000 okay" to /etc/rc.local

I also added "enable_dtoverlay eth0 ethernet@ff540000 disabled" to disable the Gigabit interface which is not used on these boxes.

 

Before upgrading to >= 0.6.27 do a "sudo apt-get install device-tree-compiler" while you still have Ethernet as the enable_dtoverlay script needs it.

Edited by segv
Update
Link to comment
Share on other sites

Thank you Segv for the info.  Are you running the Piano headless?  I'd like to run Kodi on the box and also have it running a NFS and SMB server as well.  Just curious if audio and video are working under Armbian.

Link to comment
Share on other sites

On 11/04/2018 at 5:33 PM, rob0809 said:

Thank you Segv for the info.  Are you running the Piano headless?  I'd like to run Kodi on the box and also have it running a NFS and SMB server as well.  Just curious if audio and video are working under Armbian.

 

I have mainly been running it headless recently.

(Note that the minimal versions also have a console display on HDMI which I sometimes use.)

 

I have tried the Mate desktop from time to time but I have generally had some stability problems with it.

 

Concerning video:  I have only tried YouTube videos which are fluid but with some freezes.

The freezes were fairly frequent on some versions but I think recent versions may be better.

 

I have never tried audio: my HDMI monitor doesn't have audio and I haven't tried the S/PDIF.

 

I am also very interested in running Kodi but I haven't tried it.

Indeed my ultimate aim is to use it as a general purpose TV box with a Ubuntu desktop including Kodi and Tvheadend for DVB.

 

 

Link to comment
Share on other sites

Quote

N.B. many sites claim that the V88 Piano has Gigabit Ethernet (1000 Mbps). It does not: it only has Fast Ethernet (100 Mbps) like the V88 Mini III.

well thx for the update on that one, i can remove it from my list, i'm quite amazed that so few rk3328 boxes actually include Gbe..

 

Anyways, could you elaborate on that "enable_dtoverlay" script you are using, i do see a dtoverlay tool implemented on rpi images but can't find where it was imported through a script, thx.

i installed armbian (4.4.138) on my z28 pro and would very much like to use that to try and troubleshoot the missing bluetooth device.

 

Link to comment
Share on other sites

On 7/18/2018 at 11:22 AM, mdel said:

Anyways, could you elaborate on that "enable_dtoverlay" script you are using, i do see a dtoverlay tool implemented on rpi images but can't find where it was imported through a script, thx.

i installed armbian (4.4.138) on my z28 pro and would very much like to use that to try and troubleshoot the missing bluetooth device.

 

I am away on holiday at the moment but I shall post ayufan's enable_dtoverlay script when I return.

However IIRC it requires a kernel with device tree overlays enabled.

Link to comment
Share on other sites

On 7/21/2018 at 5:36 PM, segv said:

 

thx i don't know why i didn't find it..

the script tests if the kernel supports dt overlay and apparently my armbian kernel does :

if [[ ! -d /sys/kernel/config/device-tree/overlays ]]; then
  echo "Your kernel does not support CONFIG_OF_OVERLAY."
  exit 1
fi

i'll read the rpi documentation on the subject and test that.

 

i'm wondering if it's a proper way to completely disable a hardware device or not, for example i'd like to get rid of the wifi/bt module on my headless z28pro.

Link to comment
Share on other sites

For the z28pro:

 

If you want to disable WLAN and BT and you want to to do it in the DTS,  you only need to disable SDMMC0 (not SDMMC0EXT).

 

A while ago I played a little bit with the device tree overlays on my z28 pro and used the script from ayufan. If I remember right, I needed a newer version of the device tree compiler. But it worked.

 

Another way to deactivate WLAN is to blacklist the r8822bs driver or you can use "sudo rfkill block wlan (or bluetooth or all)". I expect, that you cannot unblock bluetooth with rfkill (reboot needed).

Link to comment
Share on other sites

i though BT was managed by another uart port, the SDIO bus should only concern the wifi sdio 4bit interface of the module, i'll test that once i have a working BT image.

thx for the additional info

Link to comment
Share on other sites

BT is connected as HCI-UART via ttyS2 and thatswhy it conflicts with the external serial console.  You can not have both (i think).

 

When I was preparing the BT-packages, i wondered if it makes sense to only activate the BT-device, when the user has already installed the bluez package (for instance via armbian-config).  This should be easy to implement and the „average“ user will probably install the bluetooth package that way. 

For server-only users BT will be useless,in most scenarios but at the moment they get the device activated and lose the external serial port.

 

What do you think?

Link to comment
Share on other sites

hard to say really, it's probably never graceful to force disable existing hardware, unless you can activate it manually through commands.

 

i would assume BT to be "not so important" for headless servers, now since the debug serial console requires some hardware hacking (opening the box & soldering), you can't really argue that it should be the preferred hardware port..

 

in my opinion, the best solution would be to have it enabled by default with the option to disable it after boot (permanently or not).
if the enable_dtoverlay script can be used in armbian then it could be included and a simple command script added to rc.local or somewhere to enable / disable hardware devices.

i haven't checked if armbian-config has command a line mode, it probably has, then i could be enough for what we want to do.

 

but as i was wondering above, it would also be nice to know if there's a preferred "cleaner/safer" way to disable hardware, through dt overlays after boot, or through software commands (rfkill and so on) or if it doesn't matter..

Link to comment
Share on other sites

Yes, that is pretty much what has also crossed my mind.

 

My best guess regarding disabling Wifi/BT: rfkill. 

Or the other way around, if not for what else is rfkill for? It is the only purpose of the program I know.

Link to comment
Share on other sites

Escuse me (i have V88 mini 3 , 2G ram 8 emc ) , i don't want to use usb stick , only sd.

i try Download

xenial-minimal-rock64-0.5.15-136-arm64.img.xz

and it's booting well on sd.

I try lot of other img without sucess

We need absolutly an usb stick for newer img ?

Link to comment
Share on other sites

when i make :

# parted /dev/mmcblk1
rm 6
rm 7
q

# poweroff


Third step - boot Ayfan’s Ubuntu Xenial Minimal 0.6.25 from the boot and root partitions on the USB stick and prepare to update to a recent version.

Insert the USB stick in the middle USB slot and insert the micro-SD card.

 

The device don't boot ( i see a led flashing on usb stick and after stop)

Link to comment
Share on other sites

i make the list boot sd ok :

xenial-minimal-rock64-0.5.7-101-arm64.img.xz

xenial-minimal-rock64-0.5.15-136-arm64.img.xz

and after it's stop, so i understand it's :

0.6.0: Use SPL/TPL instead of Rockchip's loaders (supports flashing and booting from SPI),

Ok , so i try to find if i cand write it with a spi device

Link to comment
Share on other sites

The 0.6.x images will not boot from a micro-SD card.

If you want to run 0.6.x from a micro-SD card you need to take partitions 1 to 5 from 0.5.15 and only partitions 6 and 7 from 0.6.x.

However I do not recommend this as I found that the micro-SD card soon gets corrupted and will no longer boot. See my remarks in my first post.

However it is possible that whatever caused this data corruption has been corrected in later 0.6.x images.

Link to comment
Share on other sites

ok i understand but with my device , i try with usb stick after delete partiton 6 and 7 (with your exact procedure ) but it don't boot ... ( i try 2 usb stick)

 

So it can be my 2 usb stkick ?

Do you knwo how to write flash directly  ?

Link to comment
Share on other sites

4 minutes ago, martos said:

Find solution :

write in usb stick:

bionic-minimal-rock64-0.7.9-1067-arm64.img.xz

boot on sd with partion  6 and 7 deleted

 

And ... Boot ok in 18.04.1 LTS

Great!

I have never tried any of the 0.7.x versions.

It is good to know that they work too.

But I don't understand why 0.6.x versions didn't work for you.

Link to comment
Share on other sites

try with new usb stick , it's very better

What i tested :

Don't put the USB stick in the USB 3 ( blue ) : it 's not work in this position.

when boot in usb stick:

enable_dtoverlay eth1 ethernet@ff550000 okay

after

ifconfig eth1 up && dhclient

test with ifconfig , now you see interface eth1 with your dhcp propertie ...

 

Link to comment
Share on other sites

17 hours ago, martos said:

Don't put the USB stick in the USB 3 ( blue ) : it 's not work in this position.

when boot in usb stick:

enable_dtoverlay eth1 ethernet@ff550000 okay

after

ifconfig eth1 up && dhclient

test with ifconfig , now you see interface eth1 with your dhcp propertie ...

 

Thank you, this confirms what I wrote in my first post.

However the solutions I proposed enable eth1 and DHCP automatically and avoid having to issue commands manually at each reboot.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines