From 312587c6756a9265ef6de99962019e0eb2e3d244 Mon Sep 17 00:00:00 2001 From: Gauthier Provost Date: Fri, 13 Dec 2019 16:15:54 +0800 Subject: [PATCH] Restructure wiki to prepare for Helios64. * Move all previous info into Helios4 subfolder * Add helios64 subfolder * Update all url link Note: http server has been configure to ensure existing inbound link can still be resolved to the right page. --- docs/docs.md | 90 ------------ docs/{ => helios4}/arch.md | 12 +- docs/{ => helios4}/armbian.md | 2 +- docs/{ => helios4}/cesa.md | 14 +- docs/helios4/docs.md | 90 ++++++++++++ docs/{ => helios4}/download.md | 12 +- .../files/carrier/Helios4_Assembly_R1-1.zip | Bin .../files/carrier/Helios4_Assembly_R1-2.zip | Bin .../files/carrier/Helios4_BOM_R1-1.xls | Bin .../files/carrier/Helios4_BOM_R1-2.xls | Bin .../files/carrier/Helios4_Gerber_R1-1.zip | Bin .../files/carrier/Helios4_Gerber_R1-2.zip | Bin .../carrier/Helios4_Mechnical_Assembly.pdf | Bin .../files/carrier/Helios4_PCB_R1-1.zip | Bin .../files/carrier/Helios4_PCB_R1-2.zip | Bin .../files/carrier/Helios4_Schematics_R1-1.pdf | Bin .../files/carrier/Helios4_Schematics_R1-2.pdf | Bin .../files/carrier/Helios4_Specifications.pdf | Bin .../casing/Helios4_CaseB_r4g-assembled.skp | Bin .../files/casing/Helios4_CaseB_r4g.dxf | 0 .../files/casing/Helios4_CaseB_r4g.eps | 0 .../files/casing/Helios4_CaseB_r4g.pdf | 0 .../files/casing/Helios4_CaseB_r4g.skp | Bin .../files/casing/Helios4_CaseB_r4j.dxf | 0 .../files/casing/Helios4_CaseB_r4j.eps | 0 .../files/casing/Helios4_CaseB_r4j.pdf | 0 .../files/casing/Helios4_CaseB_r4j.skp | Bin .../files/casing/Helios4_MiniCase_r2.dxf | 0 .../files/casing/Helios4_MiniCase_r2.eps | 0 .../files/casing/Helios4_MiniCase_r2.pdf | 0 .../files/casing/Helios4_MiniCase_r2.skp | Bin .../certification/CE_DoC_Helios4_2GB_ECC.pdf | Bin .../FCC_SDoC_Helios4_2GB_ECC.pdf | Bin .../Helios4_FCC_CE_Test_Manual-v0.1.pdf | Bin .../RoHS_DoC_Helios4_2GB_ECC.pdf | Bin ...-1810-0075_Helios4_2GB_ECC_Test_Report.pdf | Bin ...-1810-0036_Helios4_2GB_ECC_Test_Report.pdf | Bin .../libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb | Bin .../cesa/openssl-add-cryptodev-support.patch | 0 .../dt-overlay/compile-dtb-lk-4.14.patch | 0 .../dt-overlay/compile-dtb-lk-4.19.patch | 0 docs/{ => helios4}/files/dt-overlay/dtc | Bin .../dt-overlay/lk4.14_armada-388-helios4.dtb | Bin 0 -> 27190 bytes .../dt-overlay/lk4.19_armada-388-helios4.dtb | Bin 0 -> 25006 bytes .../files/fan/4_Wire_PWM_Spec.pdf | Bin .../{ => helios4}/files/fan/Whee_fan_7015.pdf | Bin .../files/led/libata_leds_trigger_mvebu.patch | 0 .../files/pcn/Helios4_PCN_201904220001.pdf | Bin .../files/pcn/Helios4_PCN_201906060001.pdf | Bin .../files/power-supply/YCZX_ACDC_CE_CoC.png | Bin .../files/power-supply/YCZX_ACDC_FCC_VoC.png | Bin .../power-supply/YCZX_Schematics_12V8A.pdf | Bin .../files/sdcard/armada-388-helios4.dtb.uhs | Bin .../helios4_dtb_sd_uhs_linux_stable.patch | 0 .../files/sdcard/run_sdcard_test.sh | 0 ...microsom-schematics-simplified-rev2.00.pdf | Bin ...-microsom-schematics-simplified-rev2.1.pdf | Bin .../som/brochure_a38x_microsom_2017-09-05.pdf | Bin .../{ => helios4}/files/uboot/boot_spi_en.cmd | 0 .../{ => helios4}/files/uboot/boot_spi_en.scr | Bin .../uboot/u-boot-armbian-2013.01-spi.bin | Bin .../uboot/u-boot-armbian-2018.11-spi.bin | Bin .../u-boot-armbian-boot-script-support.patch | 0 ...mainline-armbian-boot-script-support.patch | 0 .../helios4-dts-add-wake-on-lan-support.patch | 0 ...-mvebu-gpio-add_wake_on_gpio_support.patch | 0 docs/{ => helios4}/freebsd.md | 2 +- docs/{ => helios4}/gpio.md | 28 +++- docs/{ => helios4}/hardware.md | 16 +-- docs/{ => helios4}/i2c.md | 10 +- .../img/cesa/cesa_block_diagram.png | Bin .../img/cesa/crypto_api_interfaces.png | Bin .../img/gpio/gpio_pinout_j12.png | Bin .../img/gpio/power_button_sch.png | Bin .../img/hardware/board_legend.jpg | Bin .../img/hardware/dipswitch_led_on.jpg | Bin .../img/hardware/dipswitch_modes.jpg | Bin .../img/hardware/helios4_block_diagram.jpg | Bin .../{ => helios4}/img/hardware/i2c_pinout.png | Bin .../img/hardware/reset_button.jpg | Bin .../img/hardware/soc_block_diagram.png | Bin docs/{ => helios4}/img/i2c/capture_01.png | Bin docs/{ => helios4}/img/i2c/capture_02.png | Bin docs/{ => helios4}/img/i2c/wiring_01.jpeg | Bin docs/{ => helios4}/img/i2c/wiring_02.jpeg | Bin .../img/install/armbian-config.png | Bin .../img/install/armbian-config_ip-static.png | Bin .../img/install/armbian-config_ip.png | Bin .../img/install/armbian-config_network.png | Bin .../{ => helios4}/img/install/connections.png | Bin .../img/install/console_cable.png | Bin .../img/install/etcher_flash.png | Bin .../{ => helios4}/img/install/first_login.png | Bin .../img/install/network_cable.jpg | Bin .../img/install/network_config.png | Bin docs/{ => helios4}/img/install/picocom.png | Bin .../img/install/putty_config.png | Bin .../img/install/putty_connect.png | Bin docs/{ => helios4}/img/install/putty_ssh.png | Bin .../img/install/recommended_sdcard.jpg | Bin docs/{ => helios4}/img/install/softy.png | Bin docs/{ => helios4}/img/install/ssh_login.png | Bin docs/{ => helios4}/img/intro/helios4.jpg | Bin docs/{ => helios4}/img/kit/assembly_anim1.gif | Bin docs/{ => helios4}/img/kit/assembly_anim2.gif | Bin docs/{ => helios4}/img/kit/assembly_pic1.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic10.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic11.jpg | Bin .../img/kit/assembly_pic11_help.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic12.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic13.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic14.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic15.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic16.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic17.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic18.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic19.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic2.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic20.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic21.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic22.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic23.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic24.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic25.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic26.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic27.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic28.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic29.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic3.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic30.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic31.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic32.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic33.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic34.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic35.jpg | Bin .../{ => helios4}/img/kit/assembly_pic35b.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic36.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic37.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic38.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic39.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic4.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic40.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic41.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic42.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic43.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic44.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic45.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic46.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic47.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic48.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic49.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic5.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic50.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic51.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic52.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic53.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic54.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic55.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic56.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic57.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic6.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic7.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic8.jpg | Bin docs/{ => helios4}/img/kit/assembly_pic9.jpg | Bin docs/{ => helios4}/img/kit/dipswitch_mode.jpg | Bin .../img/kit/i2c_board_pinout.jpg | Bin .../img/kit/i2c_display_pinout.png | Bin docs/{ => helios4}/img/kit/oled_set.jpg | Bin .../img/led/dipswitch_led_off.png | Bin .../{ => helios4}/img/led/gpio_pinout_j18.png | Bin .../img/led/led_expansion_wiring_diagram.png | Bin docs/{ => helios4}/img/led/led_location.png | Bin .../{ => helios4}/img/nextcloud/dashboard.png | Bin docs/{ => helios4}/img/nextcloud/login.png | Bin docs/{ => helios4}/img/omv/create_raid10.png | Bin docs/{ => helios4}/img/omv/dashboard.png | Bin docs/{ => helios4}/img/omv/disk_wipe1.png | Bin docs/{ => helios4}/img/omv/disk_wipe2.png | Bin docs/{ => helios4}/img/omv/folder_add.png | Bin docs/{ => helios4}/img/omv/folder_list.png | Bin docs/{ => helios4}/img/omv/format_process.png | Bin docs/{ => helios4}/img/omv/format_status.png | Bin docs/{ => helios4}/img/omv/format_volume.png | Bin docs/{ => helios4}/img/omv/install-1.png | Bin docs/{ => helios4}/img/omv/install-2.png | Bin docs/{ => helios4}/img/omv/install-3.png | Bin docs/{ => helios4}/img/omv/install-4.png | Bin docs/{ => helios4}/img/omv/install-5.png | Bin docs/{ => helios4}/img/omv/login.png | Bin docs/{ => helios4}/img/omv/lvm_add-lv.png | Bin docs/{ => helios4}/img/omv/lvm_add-pv.png | Bin docs/{ => helios4}/img/omv/lvm_add-vg.png | Bin docs/{ => helios4}/img/omv/lvm_lv-volumes.png | Bin docs/{ => helios4}/img/omv/mount_volume.png | Bin docs/{ => helios4}/img/omv/plugin_install.png | Bin docs/{ => helios4}/img/omv/plugin_list.png | Bin docs/{ => helios4}/img/omv/plugin_lvm.png | Bin docs/{ => helios4}/img/omv/plugin_update.png | Bin docs/{ => helios4}/img/omv/raid10_active.png | Bin docs/{ => helios4}/img/omv/save_settings.png | Bin docs/{ => helios4}/img/omv/share_add.png | Bin .../{ => helios4}/img/omv/share_anonymous.png | Bin .../img/omv/share_credential.png | Bin docs/{ => helios4}/img/omv/share_enable.png | Bin docs/{ => helios4}/img/omv/share_file.png | Bin docs/{ => helios4}/img/omv/share_list.png | Bin docs/{ => helios4}/img/omv/share_network.png | Bin docs/{ => helios4}/img/omv/syncing_raid10.png | Bin docs/{ => helios4}/img/omv/user_create.png | Bin docs/{ => helios4}/img/omv/user_group.png | Bin docs/{ => helios4}/img/omv/windows_access.png | Bin .../img/omv/windows_credential.png | Bin .../img/omv/windows_discovery.png | Bin .../img/omv/windows_netdrive.png | Bin docs/{ => helios4}/img/omv/windows_share.png | Bin docs/{ => helios4}/img/os/debian10.png | Bin docs/{ => helios4}/img/os/debian9.png | Bin docs/{ => helios4}/img/os/omv.png | Bin docs/{ => helios4}/img/os/syncloud.png | Bin docs/{ => helios4}/img/os/ubuntu.png | Bin docs/{ => helios4}/img/pwm/fan_connector.png | Bin .../img/pwm/fan_control_schematic_rev1_1.png | Bin .../img/pwm/fan_control_schematic_rev1_2.png | Bin .../img/pwm/fan_duty_cycle_formula.png | Bin .../img/pwm/fan_speed_comparison.png | Bin .../img/pwm/fan_speed_graph_type_a_fan.png | Bin .../pwm/fan_speed_graph_type_a_fan_linux.png | Bin .../img/pwm/fan_speed_graph_type_c_fan.png | Bin .../pwm/fan_speed_graph_type_c_fan_linux.png | Bin .../img/pwm/fan_type_a_curve.jpg | Bin .../img/pwm/fan_type_a_photo.jpg | Bin .../img/pwm/fan_type_b_curve.jpg | Bin .../img/pwm/fan_type_c_curve.jpg | Bin .../img/pwm/fan_type_c_photo.jpg | Bin .../img/pwm/pwm_duty_cycle_graph.png | Bin .../img/sdcard/kingston_16gb.jpg | Bin .../img/sdcard/samsung_evo_plus_32gb.jpg | Bin .../img/sdcard/sandisk_extreme_32gb.png | Bin .../img/sdcard/sandisk_extreme_pro_32gb.png | Bin .../sandisk_ultra_uhs-i_48mbps_16gb.jpg | Bin .../img/sdcard/sandisk_ultra_uhs-i_8gb.jpg | Bin ...andisk_ultra_uhs-i_for_smartphone_16gb.jpg | Bin ...andisk_ultra_uhs-i_for_smartphone_32gb.jpg | Bin .../img/sdcard/strontium_nitro_16gb.jpg | Bin .../test_result_samsung_evo_plus_32gb.png | Bin .../test_result_sandisk_extreme_32gb.png | Bin .../test_result_sandisk_extreme_pro_32gb.png | Bin .../test_result_sandisk_ultra_uhs-i_8gb.png | Bin ...andisk_ultra_uhs-i_for_smartphone_32gb.png | Bin .../test_result_strontium_nitro_16gb.png | Bin .../test_result_transcend_premium_8gb.png | Bin .../img/sdcard/toshiba_exceria_pro_16gb.jpg | Bin .../img/sdcard/transcend_premium_8gb.jpg | Bin .../img/spi/armbian_install_u-boot_menu.png | Bin ...bian_install_u-boot_write_confirmation.png | Bin .../img/spi/armbian_move_rfs_menu.png | Bin .../img/spi/dipswitch_boot_spinor.png | Bin .../{ => helios4}/img/syncloud/activation.png | Bin .../{ => helios4}/img/syncloud/add_device.png | Bin .../img/syncloud/app_installation.png | Bin docs/{ => helios4}/img/syncloud/app_store.png | Bin .../img/syncloud/applications.png | Bin docs/{ => helios4}/img/syncloud/dashboard.png | Bin .../img/syncloud/play_market.png | Bin .../img/syncloud/registration.png | Bin .../img/syncloud/storage_add.png | Bin .../img/syncloud/storage_page.png | Bin ...armbian_install_bootloader_sdcard_menu.png | Bin ...l_bootloader_sdcard_write_confirmation.png | Bin .../img/u-boot/u-boot_menuconfig_main.png | Bin docs/{ => helios4}/img/wol/schematic.png | Bin docs/{ => helios4}/install.md | 48 +++---- docs/helios4/intro.md | 72 ++++++++++ docs/{ => helios4}/kit.md | 130 +++++++++--------- docs/{ => helios4}/led.md | 12 +- docs/{ => helios4}/mdadm.md | 8 +- docs/{ => helios4}/nextcloud.md | 8 +- docs/{ => helios4}/omv.md | 90 ++++++------ docs/{ => helios4}/pwm.md | 32 ++--- docs/{ => helios4}/sdcard.md | 50 +++---- docs/{ => helios4}/spi.md | 30 ++-- docs/{ => helios4}/syncloud.md | 24 ++-- docs/{ => helios4}/uboot.md | 12 +- docs/{ => helios4}/wol.md | 12 +- docs/helios64/img/intro/helios64.jpg | Bin 0 -> 66911 bytes docs/helios64/img/intro/helios64_heatsink.jpg | Bin 0 -> 72556 bytes docs/helios64/intro.md | 7 + docs/img/favicon.png | Bin 1894 -> 606 bytes docs/img/helios4_logo.png | Bin 6225 -> 0 bytes docs/img/kobol_logo.png | Bin 0 -> 5318 bytes docs/index.md | 77 ++--------- mkdocs.yml | 64 +++++---- theme/partials/header.html | 4 +- theme/partials/nav.html | 4 +- 294 files changed, 505 insertions(+), 455 deletions(-) delete mode 100644 docs/docs.md rename docs/{ => helios4}/arch.md (86%) rename docs/{ => helios4}/armbian.md (95%) rename docs/{ => helios4}/cesa.md (95%) create mode 100644 docs/helios4/docs.md rename docs/{ => helios4}/download.md (86%) rename docs/{ => helios4}/files/carrier/Helios4_Assembly_R1-1.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_Assembly_R1-2.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_BOM_R1-1.xls (100%) rename docs/{ => helios4}/files/carrier/Helios4_BOM_R1-2.xls (100%) rename docs/{ => helios4}/files/carrier/Helios4_Gerber_R1-1.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_Gerber_R1-2.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_Mechnical_Assembly.pdf (100%) rename docs/{ => helios4}/files/carrier/Helios4_PCB_R1-1.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_PCB_R1-2.zip (100%) rename docs/{ => helios4}/files/carrier/Helios4_Schematics_R1-1.pdf (100%) rename docs/{ => helios4}/files/carrier/Helios4_Schematics_R1-2.pdf (100%) rename docs/{ => helios4}/files/carrier/Helios4_Specifications.pdf (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4g-assembled.skp (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4g.dxf (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4g.eps (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4g.pdf (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4g.skp (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4j.dxf (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4j.eps (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4j.pdf (100%) rename docs/{ => helios4}/files/casing/Helios4_CaseB_r4j.skp (100%) rename docs/{ => helios4}/files/casing/Helios4_MiniCase_r2.dxf (100%) rename docs/{ => helios4}/files/casing/Helios4_MiniCase_r2.eps (100%) rename docs/{ => helios4}/files/casing/Helios4_MiniCase_r2.pdf (100%) rename docs/{ => helios4}/files/casing/Helios4_MiniCase_r2.skp (100%) rename docs/{ => helios4}/files/certification/CE_DoC_Helios4_2GB_ECC.pdf (100%) rename docs/{ => helios4}/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf (100%) rename docs/{ => helios4}/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf (100%) rename docs/{ => helios4}/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf (100%) rename docs/{ => helios4}/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf (100%) rename docs/{ => helios4}/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf (100%) rename docs/{ => helios4}/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb (100%) rename docs/{ => helios4}/files/cesa/openssl-add-cryptodev-support.patch (100%) rename docs/{ => helios4}/files/dt-overlay/compile-dtb-lk-4.14.patch (100%) rename docs/{ => helios4}/files/dt-overlay/compile-dtb-lk-4.19.patch (100%) rename docs/{ => helios4}/files/dt-overlay/dtc (100%) create mode 100644 docs/helios4/files/dt-overlay/lk4.14_armada-388-helios4.dtb create mode 100644 docs/helios4/files/dt-overlay/lk4.19_armada-388-helios4.dtb rename docs/{ => helios4}/files/fan/4_Wire_PWM_Spec.pdf (100%) rename docs/{ => helios4}/files/fan/Whee_fan_7015.pdf (100%) rename docs/{ => helios4}/files/led/libata_leds_trigger_mvebu.patch (100%) rename docs/{ => helios4}/files/pcn/Helios4_PCN_201904220001.pdf (100%) rename docs/{ => helios4}/files/pcn/Helios4_PCN_201906060001.pdf (100%) rename docs/{ => helios4}/files/power-supply/YCZX_ACDC_CE_CoC.png (100%) rename docs/{ => helios4}/files/power-supply/YCZX_ACDC_FCC_VoC.png (100%) rename docs/{ => helios4}/files/power-supply/YCZX_Schematics_12V8A.pdf (100%) rename docs/{ => helios4}/files/sdcard/armada-388-helios4.dtb.uhs (100%) rename docs/{ => helios4}/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch (100%) rename docs/{ => helios4}/files/sdcard/run_sdcard_test.sh (100%) rename docs/{ => helios4}/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf (100%) rename docs/{ => helios4}/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf (100%) rename docs/{ => helios4}/files/som/brochure_a38x_microsom_2017-09-05.pdf (100%) rename docs/{ => helios4}/files/uboot/boot_spi_en.cmd (100%) rename docs/{ => helios4}/files/uboot/boot_spi_en.scr (100%) rename docs/{ => helios4}/files/uboot/u-boot-armbian-2013.01-spi.bin (100%) rename docs/{ => helios4}/files/uboot/u-boot-armbian-2018.11-spi.bin (100%) rename docs/{ => helios4}/files/uboot/u-boot-armbian-boot-script-support.patch (100%) rename docs/{ => helios4}/files/uboot/u-boot-mainline-armbian-boot-script-support.patch (100%) rename docs/{ => helios4}/files/wol/helios4-dts-add-wake-on-lan-support.patch (100%) rename docs/{ => helios4}/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch (100%) rename docs/{ => helios4}/freebsd.md (98%) rename docs/{ => helios4}/gpio.md (90%) rename docs/{ => helios4}/hardware.md (90%) rename docs/{ => helios4}/i2c.md (94%) rename docs/{ => helios4}/img/cesa/cesa_block_diagram.png (100%) rename docs/{ => helios4}/img/cesa/crypto_api_interfaces.png (100%) rename docs/{ => helios4}/img/gpio/gpio_pinout_j12.png (100%) rename docs/{ => helios4}/img/gpio/power_button_sch.png (100%) rename docs/{ => helios4}/img/hardware/board_legend.jpg (100%) rename docs/{ => helios4}/img/hardware/dipswitch_led_on.jpg (100%) rename docs/{ => helios4}/img/hardware/dipswitch_modes.jpg (100%) rename docs/{ => helios4}/img/hardware/helios4_block_diagram.jpg (100%) rename docs/{ => helios4}/img/hardware/i2c_pinout.png (100%) rename docs/{ => helios4}/img/hardware/reset_button.jpg (100%) rename docs/{ => helios4}/img/hardware/soc_block_diagram.png (100%) rename docs/{ => helios4}/img/i2c/capture_01.png (100%) rename docs/{ => helios4}/img/i2c/capture_02.png (100%) rename docs/{ => helios4}/img/i2c/wiring_01.jpeg (100%) rename docs/{ => helios4}/img/i2c/wiring_02.jpeg (100%) rename docs/{ => helios4}/img/install/armbian-config.png (100%) rename docs/{ => helios4}/img/install/armbian-config_ip-static.png (100%) rename docs/{ => helios4}/img/install/armbian-config_ip.png (100%) rename docs/{ => helios4}/img/install/armbian-config_network.png (100%) rename docs/{ => helios4}/img/install/connections.png (100%) rename docs/{ => helios4}/img/install/console_cable.png (100%) rename docs/{ => helios4}/img/install/etcher_flash.png (100%) rename docs/{ => helios4}/img/install/first_login.png (100%) rename docs/{ => helios4}/img/install/network_cable.jpg (100%) rename docs/{ => helios4}/img/install/network_config.png (100%) rename docs/{ => helios4}/img/install/picocom.png (100%) rename docs/{ => helios4}/img/install/putty_config.png (100%) rename docs/{ => helios4}/img/install/putty_connect.png (100%) rename docs/{ => helios4}/img/install/putty_ssh.png (100%) rename docs/{ => helios4}/img/install/recommended_sdcard.jpg (100%) rename docs/{ => helios4}/img/install/softy.png (100%) rename docs/{ => helios4}/img/install/ssh_login.png (100%) rename docs/{ => helios4}/img/intro/helios4.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_anim1.gif (100%) rename docs/{ => helios4}/img/kit/assembly_anim2.gif (100%) rename docs/{ => helios4}/img/kit/assembly_pic1.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic10.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic11.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic11_help.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic12.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic13.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic14.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic15.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic16.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic17.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic18.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic19.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic2.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic20.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic21.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic22.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic23.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic24.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic25.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic26.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic27.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic28.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic29.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic3.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic30.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic31.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic32.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic33.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic34.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic35.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic35b.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic36.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic37.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic38.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic39.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic4.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic40.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic41.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic42.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic43.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic44.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic45.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic46.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic47.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic48.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic49.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic5.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic50.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic51.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic52.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic53.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic54.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic55.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic56.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic57.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic6.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic7.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic8.jpg (100%) rename docs/{ => helios4}/img/kit/assembly_pic9.jpg (100%) rename docs/{ => helios4}/img/kit/dipswitch_mode.jpg (100%) rename docs/{ => helios4}/img/kit/i2c_board_pinout.jpg (100%) rename docs/{ => helios4}/img/kit/i2c_display_pinout.png (100%) rename docs/{ => helios4}/img/kit/oled_set.jpg (100%) rename docs/{ => helios4}/img/led/dipswitch_led_off.png (100%) rename docs/{ => helios4}/img/led/gpio_pinout_j18.png (100%) rename docs/{ => helios4}/img/led/led_expansion_wiring_diagram.png (100%) rename docs/{ => helios4}/img/led/led_location.png (100%) rename docs/{ => helios4}/img/nextcloud/dashboard.png (100%) rename docs/{ => helios4}/img/nextcloud/login.png (100%) rename docs/{ => helios4}/img/omv/create_raid10.png (100%) rename docs/{ => helios4}/img/omv/dashboard.png (100%) rename docs/{ => helios4}/img/omv/disk_wipe1.png (100%) rename docs/{ => helios4}/img/omv/disk_wipe2.png (100%) rename docs/{ => helios4}/img/omv/folder_add.png (100%) rename docs/{ => helios4}/img/omv/folder_list.png (100%) rename docs/{ => helios4}/img/omv/format_process.png (100%) rename docs/{ => helios4}/img/omv/format_status.png (100%) rename docs/{ => helios4}/img/omv/format_volume.png (100%) rename docs/{ => helios4}/img/omv/install-1.png (100%) rename docs/{ => helios4}/img/omv/install-2.png (100%) rename docs/{ => helios4}/img/omv/install-3.png (100%) rename docs/{ => helios4}/img/omv/install-4.png (100%) rename docs/{ => helios4}/img/omv/install-5.png (100%) rename docs/{ => helios4}/img/omv/login.png (100%) rename docs/{ => helios4}/img/omv/lvm_add-lv.png (100%) rename docs/{ => helios4}/img/omv/lvm_add-pv.png (100%) rename docs/{ => helios4}/img/omv/lvm_add-vg.png (100%) rename docs/{ => helios4}/img/omv/lvm_lv-volumes.png (100%) rename docs/{ => helios4}/img/omv/mount_volume.png (100%) rename docs/{ => helios4}/img/omv/plugin_install.png (100%) rename docs/{ => helios4}/img/omv/plugin_list.png (100%) rename docs/{ => helios4}/img/omv/plugin_lvm.png (100%) rename docs/{ => helios4}/img/omv/plugin_update.png (100%) rename docs/{ => helios4}/img/omv/raid10_active.png (100%) rename docs/{ => helios4}/img/omv/save_settings.png (100%) rename docs/{ => helios4}/img/omv/share_add.png (100%) rename docs/{ => helios4}/img/omv/share_anonymous.png (100%) rename docs/{ => helios4}/img/omv/share_credential.png (100%) rename docs/{ => helios4}/img/omv/share_enable.png (100%) rename docs/{ => helios4}/img/omv/share_file.png (100%) rename docs/{ => helios4}/img/omv/share_list.png (100%) rename docs/{ => helios4}/img/omv/share_network.png (100%) rename docs/{ => helios4}/img/omv/syncing_raid10.png (100%) rename docs/{ => helios4}/img/omv/user_create.png (100%) rename docs/{ => helios4}/img/omv/user_group.png (100%) rename docs/{ => helios4}/img/omv/windows_access.png (100%) rename docs/{ => helios4}/img/omv/windows_credential.png (100%) rename docs/{ => helios4}/img/omv/windows_discovery.png (100%) rename docs/{ => helios4}/img/omv/windows_netdrive.png (100%) rename docs/{ => helios4}/img/omv/windows_share.png (100%) rename docs/{ => helios4}/img/os/debian10.png (100%) rename docs/{ => helios4}/img/os/debian9.png (100%) rename docs/{ => helios4}/img/os/omv.png (100%) rename docs/{ => helios4}/img/os/syncloud.png (100%) rename docs/{ => helios4}/img/os/ubuntu.png (100%) rename docs/{ => helios4}/img/pwm/fan_connector.png (100%) rename docs/{ => helios4}/img/pwm/fan_control_schematic_rev1_1.png (100%) rename docs/{ => helios4}/img/pwm/fan_control_schematic_rev1_2.png (100%) rename docs/{ => helios4}/img/pwm/fan_duty_cycle_formula.png (100%) rename docs/{ => helios4}/img/pwm/fan_speed_comparison.png (100%) rename docs/{ => helios4}/img/pwm/fan_speed_graph_type_a_fan.png (100%) rename docs/{ => helios4}/img/pwm/fan_speed_graph_type_a_fan_linux.png (100%) rename docs/{ => helios4}/img/pwm/fan_speed_graph_type_c_fan.png (100%) rename docs/{ => helios4}/img/pwm/fan_speed_graph_type_c_fan_linux.png (100%) rename docs/{ => helios4}/img/pwm/fan_type_a_curve.jpg (100%) rename docs/{ => helios4}/img/pwm/fan_type_a_photo.jpg (100%) rename docs/{ => helios4}/img/pwm/fan_type_b_curve.jpg (100%) rename docs/{ => helios4}/img/pwm/fan_type_c_curve.jpg (100%) rename docs/{ => helios4}/img/pwm/fan_type_c_photo.jpg (100%) rename docs/{ => helios4}/img/pwm/pwm_duty_cycle_graph.png (100%) rename docs/{ => helios4}/img/sdcard/kingston_16gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/samsung_evo_plus_32gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/sandisk_extreme_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/sandisk_extreme_pro_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/strontium_nitro_16gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/test_result_samsung_evo_plus_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_sandisk_extreme_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_sandisk_extreme_pro_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_strontium_nitro_16gb.png (100%) rename docs/{ => helios4}/img/sdcard/test_result_transcend_premium_8gb.png (100%) rename docs/{ => helios4}/img/sdcard/toshiba_exceria_pro_16gb.jpg (100%) rename docs/{ => helios4}/img/sdcard/transcend_premium_8gb.jpg (100%) rename docs/{ => helios4}/img/spi/armbian_install_u-boot_menu.png (100%) rename docs/{ => helios4}/img/spi/armbian_install_u-boot_write_confirmation.png (100%) rename docs/{ => helios4}/img/spi/armbian_move_rfs_menu.png (100%) rename docs/{ => helios4}/img/spi/dipswitch_boot_spinor.png (100%) rename docs/{ => helios4}/img/syncloud/activation.png (100%) rename docs/{ => helios4}/img/syncloud/add_device.png (100%) rename docs/{ => helios4}/img/syncloud/app_installation.png (100%) rename docs/{ => helios4}/img/syncloud/app_store.png (100%) rename docs/{ => helios4}/img/syncloud/applications.png (100%) rename docs/{ => helios4}/img/syncloud/dashboard.png (100%) rename docs/{ => helios4}/img/syncloud/play_market.png (100%) rename docs/{ => helios4}/img/syncloud/registration.png (100%) rename docs/{ => helios4}/img/syncloud/storage_add.png (100%) rename docs/{ => helios4}/img/syncloud/storage_page.png (100%) rename docs/{ => helios4}/img/u-boot/armbian_install_bootloader_sdcard_menu.png (100%) rename docs/{ => helios4}/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png (100%) rename docs/{ => helios4}/img/u-boot/u-boot_menuconfig_main.png (100%) rename docs/{ => helios4}/img/wol/schematic.png (100%) rename docs/{ => helios4}/install.md (79%) create mode 100644 docs/helios4/intro.md rename docs/{ => helios4}/kit.md (65%) rename docs/{ => helios4}/led.md (92%) rename docs/{ => helios4}/mdadm.md (97%) rename docs/{ => helios4}/nextcloud.md (97%) rename docs/{ => helios4}/omv.md (80%) rename docs/{ => helios4}/pwm.md (92%) rename docs/{ => helios4}/sdcard.md (90%) rename docs/{ => helios4}/spi.md (84%) rename docs/{ => helios4}/syncloud.md (66%) rename docs/{ => helios4}/uboot.md (90%) rename docs/{ => helios4}/wol.md (91%) create mode 100644 docs/helios64/img/intro/helios64.jpg create mode 100644 docs/helios64/img/intro/helios64_heatsink.jpg create mode 100644 docs/helios64/intro.md delete mode 100644 docs/img/helios4_logo.png create mode 100644 docs/img/kobol_logo.png diff --git a/docs/docs.md b/docs/docs.md deleted file mode 100644 index c386683..0000000 --- a/docs/docs.md +++ /dev/null @@ -1,90 +0,0 @@ -disqus: - -# Helios4 Documents - -## Product Change Notification - -Doc-Type | Filename | Date | Download ----------|----------|------|--------- -PCN|Helios4 PCN 201904220001|2019-04-22|[Download](/files/pcn/Helios4_PCN_201904220001.pdf) -PCN|Helios4 PCN 201906060001|2019-06-06|[Download](/files/pcn/Helios4_PCN_201906060001.pdf) - - - -## Carrier Board - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------ -Schematics|Helios4 Simplified Schematics|rev 1.1|2018-11-07|[Download](/files/carrier/Helios4_Schematics_R1-1.pdf)|Simplified Schematics - PDF -Schematics|Helios4 Simplified Schematics|rev 1.2|2019-04-22|[Download](/files/carrier/Helios4_Schematics_R1-2.pdf)|Simplified Schematics - PDF -Specifications|Helios4 Specifications|rev 02|2017-09-20|[Download](/files/carrier/Helios4_Specifications.pdf)|Product Specifications -Mechanical|Helios4 Mechanical Assembly|rev 01|2017-08-05|[Download](/files/carrier/Helios4_Mechnical_Assembly.pdf)|Mechanical Design / Assembly -PCB Layout|Helios4 PCB Layout|rev 1.1|2018-11-07|[Download](/files/carrier/Helios4_PCB_R1-1.zip)|PCB Layout project files -PCB Layout|Helios4 PCB Layout|rev 1.2|2019-06-06|[Download](/files/carrier/Helios4_PCB_R1-2.zip)|PCB Layout project files -PCB Gerber|Helios4 PCB Gerber|rev 1.1|2018-11-07|[Download](/files/carrier/Helios4_Gerber_R1-1.zip)|PCB Gerber files -PCB Gerber|Helios4 PCB Gerber|rev 1.2|2019-06-06|[Download](/files/carrier/Helios4_Gerber_R1-2.zip)|PCB Gerber files -PCB Assembly|Helios4 PCB Assembly|rev 1.1|2018-11-07|[Download](/files/carrier/Helios4_Assembly_R1-1.zip)|PCB Assembly files -PCB Assembly|Helios4 PCB Assembly|rev 1.2|2019-06-06|[Download](/files/carrier/Helios4_Assembly_R1-2.zip)|PCB Assembly files -BOM|Helios4 Bill-Of-Material|rev 1.1|2018-11-07|[Download](/files/carrier/Helios4_BOM_R1-1.xls)|Bill-Of-Material spreadsheet -BOM|Helios4 Bill-Of-Material|rev 1.2|2019-06-06|[Download](/files/carrier/Helios4_BOM_R1-2.xls)|Bill-Of-Material spreadsheet -Software|PCB Layout Browser|rev xx|2018-11-07|[Link](https://www.mentor.com/pcb/downloads/browsers/)|Mentor PCB Layout Browser - -!!! note - The PCB layout was done with Mentor Graphic tools, therefore to open the Helios4 PCB files you will need to download the Mentor VX.2.4 Layout Browser free tool [here](https://www.mentor.com/pcb/downloads/browsers/) (available for Linux and Windows). - -## A38x MicroSoM - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------ -Brochures|a38x Brochure|rev 1.0|2017-09-05|[Download](/files/som/brochure_a38x_microsom_2017-09-05.pdf)|Official SR a38x Brochure -Schematics|A38X Simplified Schematics|rev 2.0|2015-10-28|[Download](/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf)|MicroSom A38X Simplified Schematics - PDF -Schematics|A38X Simplified Schematics|rev 2.1|2019-07-09|[Download](/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf)|MicroSom A38X Simplified Schematics - PDF -Marvell Documents|Marvell ARMADA 38x Functional Specifications|rev xx|2015-10-25|[Link](https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/)|Marvell ARMADA 38x Functional Specifications -Marvell Documents|Marvell ARMADA 38x Hardware Specifications|rev xx|2017-03-09|[Link](https://marvellcorp.wufoo.com/forms/marvell-armada-38x-hardware-specifications/)|Marvell ARMADA 38x Hardware Specifications - -For more documents on the **A38x SoM** go to [SolidRun Wiki](https://wiki.solid-run.com/doku.php?id=products:a38x:documents) - -## Casing - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------- -Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g.skp)|Case Mechanical Design - SketchUp -Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g.pdf)|Case Mechanical Design - PDF -Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g.dxf)|Case Mechanical Design - DXF -Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g.eps)|Case Mechanical Design - EPS -Mechanical|Helios4 Case B Assembled|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g-assembled.skp)|Case Mechanical Design Assembled - SketchUp -Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/files/casing/Helios4_CaseB_r4j.skp)|Case Mechanical Design - SketchUp -Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/files/casing/Helios4_CaseB_r4j.pdf)|Case Mechanical Design - PDF -Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/files/casing/Helios4_CaseB_r4j.dxf)|Case Mechanical Design - DXF -Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/files/casing/Helios4_CaseB_r4j.eps)|Case Mechanical Design - EPS -Mechanical|Helios4 Case B Assembled|rev 4g|2017-09-01|[Download](/files/casing/Helios4_CaseB_r4g-assembled.skp)|Case Mechanical Design Assembled - SketchUp -Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/files/casing/Helios4_MiniCase_r2.skp)|Case Mechanical Design - SketchUp -Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/files/casing/Helios4_MiniCase_r2.pdf)|Case Mechanical Design - PDF -Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/files/casing/Helios4_MiniCase_r2.dxf)|Case Mechanical Design - DXF -Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/files/casing/Helios4_MiniCase_r2.eps)|Case Mechanical Design - EPS - -## Power Supply - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------- -Schematics|YCZX Schematics 12V8A|rev xx|2017-11-1|[Download](/files/power-supply/YCZX_Schematics_12V8A.pdf)|AC/DC Power Adapter Schematics -Certificate|YCZX AC/DC FCC VoC|rev xx|2016-03-22|[Download](/files/power-supply/YCZX_ACDC_FCC_VoC.png)|AC/DC Power Adapter FCC Verification of Conformity -Certificate|YCZX AC/DC CE CoC|rev xx|2016-03-22|[Download](/files/power-supply/YCZX_ACDC_CE_CoC.png)|AC/DC Power Adapter CE Certificate of Compliance - -## Fan - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------- -Datasheet|7015.pdf|rev xx|01-01-2016|[Download](/files/fan/Whee_fan_7015.pdf)|Casing FAN specs - - -## Certification - -Doc-Type | Filename | Version | Date | Download | Description ----------|----------|---------|------|----------|------------- -Certification|Helios4 FCC/CE Test Manual|rev 0.1|2018-08-28|[Download](/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf)|Test Manual for FCC/CE Verification -Certification|Helios4 FCC Declaration of Conformity|rev xx|2018-10-09|[Download](/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf)|FCC SDoC Certificate -Certification|Helios4 FCC EMC Test Report|rev 0.1|2018-10-08|[Download](/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf)|EMC Lab report for FCC -Certification|Helios4 CE Declaration of Conformity|rev xx|2018-10-09|[Download](/files/certification/CE_DoC_Helios4_2GB_ECC.pdf)|CE DoC Certificate -Certification|Helios4 CE EMC Test Report|rev 0.1|2018-10-08|[Download](/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf)|EMC Lab report for CE -Certification|Helios4 RoHS Declaration of Conformity|rev xx|2018-10-09|[Download](/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf)|RoHS DoC Certificate diff --git a/docs/arch.md b/docs/helios4/arch.md similarity index 86% rename from docs/arch.md rename to docs/helios4/arch.md index da4321f..4cc7bc0 100644 --- a/docs/arch.md +++ b/docs/helios4/arch.md @@ -4,7 +4,7 @@ This document is a guide for installing Arch Linux ARM on the Helios4. ## Prerequisite -Refer to the following [section](/install/#what-you-need-before-you-start) of the Helios4 install guide. +Refer to the following [section](/helios4/install/#what-you-need-before-you-start) of the Helios4 install guide. ## Arch Linux ARM image for Helios4 @@ -51,11 +51,11 @@ Once you get an Arch Linux ARM image, follows these instructions to use it on He ### Writing image / power-up Helios4 / connecting to serial console -Follows these steps from the Helios4 [install guide](/install): +Follows these steps from the Helios4 [install guide](/helios4/install): -- [step 2](/install/#step-2-writing-an-image-to-a-microsd-card) to write the Arch Linux ARM image to a microSD card -- [step 3](/install/#step-3-power-up-helios4) to power-up Helios4 -- [step 4](/install/#step-4-connect-to-helios4-serial-console) to connect to the Helios4 serial console. +- [step 2](/helios4/install/#step-2-writing-an-image-to-a-microsd-card) to write the Arch Linux ARM image to a microSD card +- [step 3](/helios4/install/#step-3-power-up-helios4) to power-up Helios4 +- [step 4](/helios4/install/#step-4-connect-to-helios4-serial-console) to connect to the Helios4 serial console. !!! note Arch Linux ARM is configured by default to get its IP address from a DHCP server. As an alternative to **step 4**, you can connect to your router to find the IP address given to Helios4, then connect to this latter using SSH. @@ -90,7 +90,7 @@ Here are some useful links from the [Arch Linux wiki](https://wiki.archlinux.org - [dm-crypt/Device encryption](https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption). !!! note - Read the [Accelerate Disk Encryption](/cesa/#accelerate-disk-encryption) section of the Helios4 wiki before proceeding to learn how to offload disk encryption on the CESA unit. + Read the [Disk Encryption Acceleration](/helios4/cesa/#disk-encryption-acceleration) section of the Helios4 wiki before proceeding to learn how to offload disk encryption on the CESA unit. - [Nextcloud](https://wiki.archlinux.org/index.php/Nextcloud) - [NFS](https://wiki.archlinux.org/index.php/NFS) diff --git a/docs/armbian.md b/docs/helios4/armbian.md similarity index 95% rename from docs/armbian.md rename to docs/helios4/armbian.md index 6099379..652c2bf 100644 --- a/docs/armbian.md +++ b/docs/helios4/armbian.md @@ -8,7 +8,7 @@ Debian & Ubuntu based Linux for ARM based single-board computers ## Pre-built images -You can find pre-built **Armbian** images for Helios4 on our [Download](/download) page or directly on [Armbian website](https://dl.armbian.com/helios4/). +You can find pre-built **Armbian** images for Helios4 on our [Download](/helios4/download) page or directly on [Armbian website](https://dl.armbian.com/helios4/). ## How to build an image or a kernel? diff --git a/docs/cesa.md b/docs/helios4/cesa.md similarity index 95% rename from docs/cesa.md rename to docs/helios4/cesa.md index cb036f0..8e7d8ed 100644 --- a/docs/cesa.md +++ b/docs/helios4/cesa.md @@ -19,7 +19,7 @@ the internal SRAM. ### CESA Functional Block Diagram -![CESA Block Diagram](/img/cesa/cesa_block_diagram.png) +![CESA Block Diagram](/helios4/img/cesa/cesa_block_diagram.png) The above block diagram shows a single CESA unit. @@ -41,7 +41,7 @@ There are two interfaces that provide userspace access to the Crypto API : * **AF_ALG**
AF_ALG is a netlink-based interface that is implemented in Linux kernel mainline since version 2.6.38. -![Crypto API Interface](/img/cesa/crypto_api_interfaces.png) +![Crypto API Interface](/helios4/img/cesa/crypto_api_interfaces.png) ## Network Application Encryption Acceleration @@ -51,7 +51,7 @@ There are two interfaces that provide userspace access to the Crypto API : The following instructions have been written for **Debian 10 Buster** and using **AF_ALG** as the Crypto API userspace interface. -We choose **AF_ALG** for Debian 10 Buster because it doesn't require any patching or recompiling. But while [benchmark](/cesa/#https-benchmark) shows in some case throughput improvement with **AF_ALG**, the CPU load is not improved compared to **cryptodev** or 100% software encryption. This will require further investigation. +We choose **AF_ALG** for Debian 10 Buster because it doesn't require any patching or recompiling. But while [benchmark](#https-benchmark) shows in some case throughput improvement with **AF_ALG**, the CPU load is not improved compared to **cryptodev** or 100% software encryption. This will require further investigation. #### Configure OpenSSL @@ -230,10 +230,10 @@ mkdir libssl; cd libssl apt-get source libssl1.0.2 ``` -Apply the patch that you can find [here](/files/cesa/openssl-add-cryptodev-support.patch). +Apply the patch that you can find [here](/helios4/files/cesa/openssl-add-cryptodev-support.patch). ``` -wget https://wiki.kobol.io/files/cesa/openssl-add-cryptodev-support.patch +wget https://wiki.kobol.io/helios4/files/cesa/openssl-add-cryptodev-support.patch patch < openssl-add-cryptodev-support.patch openssl1.0-1.0.2*/crypto/engine/eng_cryptodev.c ``` @@ -251,7 +251,7 @@ DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -b -rfakeroot ``` !!! note - Most example online will also use the -DUSE_CRYPTODEV_DIGESTS flag. However it was proven via [benchmark](/cesa/#https-benchmark) that using the CESA engine for hashing will result in performance penalty. + Most example online will also use the -DUSE_CRYPTODEV_DIGESTS flag. However it was proven via [benchmark](#https-benchmark) that using the CESA engine for hashing will result in performance penalty. If all goes well you should see couple of .deb files. Look for the libssl .deb file and install it. @@ -262,7 +262,7 @@ sudo dpkg -i libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb ``` !!! info - A pre-build Debian libssl package (libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb) with cryptodev enable is available [here](/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb), if you want to skip the recompile step. + A pre-build Debian libssl package (libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb) with cryptodev enable is available [here](/helios4/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb), if you want to skip the recompile step. #### Apache2 diff --git a/docs/helios4/docs.md b/docs/helios4/docs.md new file mode 100644 index 0000000..8e409db --- /dev/null +++ b/docs/helios4/docs.md @@ -0,0 +1,90 @@ +disqus: + +# Helios4 Documents + +## Product Change Notification + +Doc-Type | Filename | Date | Download +---------|----------|------|--------- +PCN|Helios4 PCN 201904220001|2019-04-22|[Download](/helios4/files/pcn/Helios4_PCN_201904220001.pdf) +PCN|Helios4 PCN 201906060001|2019-06-06|[Download](/helios4/files/pcn/Helios4_PCN_201906060001.pdf) + + + +## Carrier Board + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------ +Schematics|Helios4 Simplified Schematics|rev 1.1|2018-11-07|[Download](/helios4/files/carrier/Helios4_Schematics_R1-1.pdf)|Simplified Schematics - PDF +Schematics|Helios4 Simplified Schematics|rev 1.2|2019-04-22|[Download](/helios4/files/carrier/Helios4_Schematics_R1-2.pdf)|Simplified Schematics - PDF +Specifications|Helios4 Specifications|rev 02|2017-09-20|[Download](/helios4/files/carrier/Helios4_Specifications.pdf)|Product Specifications +Mechanical|Helios4 Mechanical Assembly|rev 01|2017-08-05|[Download](/helios4/files/carrier/Helios4_Mechnical_Assembly.pdf)|Mechanical Design / Assembly +PCB Layout|Helios4 PCB Layout|rev 1.1|2018-11-07|[Download](/helios4/files/carrier/Helios4_PCB_R1-1.zip)|PCB Layout project files +PCB Layout|Helios4 PCB Layout|rev 1.2|2019-06-06|[Download](/helios4/files/carrier/Helios4_PCB_R1-2.zip)|PCB Layout project files +PCB Gerber|Helios4 PCB Gerber|rev 1.1|2018-11-07|[Download](/helios4/files/carrier/Helios4_Gerber_R1-1.zip)|PCB Gerber files +PCB Gerber|Helios4 PCB Gerber|rev 1.2|2019-06-06|[Download](/helios4/files/carrier/Helios4_Gerber_R1-2.zip)|PCB Gerber files +PCB Assembly|Helios4 PCB Assembly|rev 1.1|2018-11-07|[Download](/helios4/files/carrier/Helios4_Assembly_R1-1.zip)|PCB Assembly files +PCB Assembly|Helios4 PCB Assembly|rev 1.2|2019-06-06|[Download](/helios4/files/carrier/Helios4_Assembly_R1-2.zip)|PCB Assembly files +BOM|Helios4 Bill-Of-Material|rev 1.1|2018-11-07|[Download](/helios4/files/carrier/Helios4_BOM_R1-1.xls)|Bill-Of-Material spreadsheet +BOM|Helios4 Bill-Of-Material|rev 1.2|2019-06-06|[Download](/helios4/files/carrier/Helios4_BOM_R1-2.xls)|Bill-Of-Material spreadsheet +Software|PCB Layout Browser|rev xx|2018-11-07|[Link](https://www.mentor.com/pcb/downloads/browsers/)|Mentor PCB Layout Browser + +!!! note + The PCB layout was done with Mentor Graphic tools, therefore to open the Helios4 PCB files you will need to download the Mentor VX.2.4 Layout Browser free tool [here](https://www.mentor.com/pcb/downloads/browsers/) (available for Linux and Windows). + +## A38x MicroSoM + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------ +Brochures|a38x Brochure|rev 1.0|2017-09-05|[Download](/helios4/files/som/brochure_a38x_microsom_2017-09-05.pdf)|Official SR a38x Brochure +Schematics|A38X Simplified Schematics|rev 2.0|2015-10-28|[Download](/helios4/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf)|MicroSom A38X Simplified Schematics - PDF +Schematics|A38X Simplified Schematics|rev 2.1|2019-07-09|[Download](/helios4/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf)|MicroSom A38X Simplified Schematics - PDF +Marvell Documents|Marvell ARMADA 38x Functional Specifications|rev xx|2015-10-25|[Link](https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/)|Marvell ARMADA 38x Functional Specifications +Marvell Documents|Marvell ARMADA 38x Hardware Specifications|rev xx|2017-03-09|[Link](https://marvellcorp.wufoo.com/forms/marvell-armada-38x-hardware-specifications/)|Marvell ARMADA 38x Hardware Specifications + +For more documents on the **A38x SoM** go to [SolidRun Wiki](https://wiki.solid-run.com/doku.php?id=products:a38x:documents) + +## Casing + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------- +Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g.skp)|Case Mechanical Design - SketchUp +Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g.pdf)|Case Mechanical Design - PDF +Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g.dxf)|Case Mechanical Design - DXF +Mechanical|Helios4 Case B|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g.eps)|Case Mechanical Design - EPS +Mechanical|Helios4 Case B Assembled|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g-assembled.skp)|Case Mechanical Design Assembled - SketchUp +Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/helios4/files/casing/Helios4_CaseB_r4j.skp)|Case Mechanical Design - SketchUp +Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/helios4/files/casing/Helios4_CaseB_r4j.pdf)|Case Mechanical Design - PDF +Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/helios4/files/casing/Helios4_CaseB_r4j.dxf)|Case Mechanical Design - DXF +Mechanical|Helios4 Case B|rev 4j|2019-05-24|[Download](/helios4/files/casing/Helios4_CaseB_r4j.eps)|Case Mechanical Design - EPS +Mechanical|Helios4 Case B Assembled|rev 4g|2017-09-01|[Download](/helios4/files/casing/Helios4_CaseB_r4g-assembled.skp)|Case Mechanical Design Assembled - SketchUp +Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/helios4/files/casing/Helios4_MiniCase_r2.skp)|Case Mechanical Design - SketchUp +Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/helios4/files/casing/Helios4_MiniCase_r2.pdf)|Case Mechanical Design - PDF +Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/helios4/files/casing/Helios4_MiniCase_r2.dxf)|Case Mechanical Design - DXF +Mechanical|Helios4 Mini-Case|rev 2|2019-05-07|[Download](/helios4/files/casing/Helios4_MiniCase_r2.eps)|Case Mechanical Design - EPS + +## Power Supply + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------- +Schematics|YCZX Schematics 12V8A|rev xx|2017-11-1|[Download](/helios4/files/power-supply/YCZX_Schematics_12V8A.pdf)|AC/DC Power Adapter Schematics +Certificate|YCZX AC/DC FCC VoC|rev xx|2016-03-22|[Download](/helios4/files/power-supply/YCZX_ACDC_FCC_VoC.png)|AC/DC Power Adapter FCC Verification of Conformity +Certificate|YCZX AC/DC CE CoC|rev xx|2016-03-22|[Download](/helios4/files/power-supply/YCZX_ACDC_CE_CoC.png)|AC/DC Power Adapter CE Certificate of Compliance + +## Fan + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------- +Datasheet|7015.pdf|rev xx|01-01-2016|[Download](/helios4/files/fan/Whee_fan_7015.pdf)|Casing FAN specs + + +## Certification + +Doc-Type | Filename | Version | Date | Download | Description +---------|----------|---------|------|----------|------------- +Certification|Helios4 FCC/CE Test Manual|rev 0.1|2018-08-28|[Download](/helios4/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf)|Test Manual for FCC/CE Verification +Certification|Helios4 FCC Declaration of Conformity|rev xx|2018-10-09|[Download](/helios4/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf)|FCC SDoC Certificate +Certification|Helios4 FCC EMC Test Report|rev 0.1|2018-10-08|[Download](/helios4/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf)|EMC Lab report for FCC +Certification|Helios4 CE Declaration of Conformity|rev xx|2018-10-09|[Download](/helios4/files/certification/CE_DoC_Helios4_2GB_ECC.pdf)|CE DoC Certificate +Certification|Helios4 CE EMC Test Report|rev 0.1|2018-10-08|[Download](/helios4/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf)|EMC Lab report for CE +Certification|Helios4 RoHS Declaration of Conformity|rev xx|2018-10-09|[Download](/helios4/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf)|RoHS DoC Certificate diff --git a/docs/download.md b/docs/helios4/download.md similarity index 86% rename from docs/download.md rename to docs/helios4/download.md index 15b7064..c0df841 100644 --- a/docs/download.md +++ b/docs/helios4/download.md @@ -6,7 +6,7 @@ All the following images are generated by [Armbian](https://www.armbian.com/heli ### Debian 10 - Buster -[![Debian Stretch](/img/os/debian10.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Debian_buster_next_4.19.63.7z)
+[![Debian Stretch](/helios4/img/os/debian10.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Debian_buster_next_4.19.63.7z)
*MD5SUM : 9c48344c208dfa50b5868debe6fae629
Build date : 02/08/2019
Size : 261 MB
* @@ -17,18 +17,18 @@ Size : 261 MB
* ### Debian 9 - Stretch -[![Debian Stretch](/img/os/debian9.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Debian_stretch_default_4.14.135.7z)
+[![Debian Stretch](/helios4/img/os/debian9.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Debian_stretch_default_4.14.135.7z)
*MD5SUM : e8416b359a7620bb01b5a13c6a10612f
Build date : 02/08/2019
Size : 252 MB
* [Direct Download](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Debian_stretch_default_4.14.135.7z) !!! note - OMV4 (OpenMediaVault 4) can be installed with the **armbian-config** tool as explained [here](/omv/#install-openmediavault). + OMV4 (OpenMediaVault 4) can be installed with the **armbian-config** tool as explained [here](/helios4/omv/#install-openmediavault). ### Ubuntu 18.04 - Bionic -[![Ubuntu Bionic](/img/os/ubuntu.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Ubuntu_bionic_next_4.19.63.7z)
+[![Ubuntu Bionic](/helios4/img/os/ubuntu.png)](https://cdn.kobol.io/files/Armbian_5.91_Helios4_Ubuntu_bionic_next_4.19.63.7z)
*MD5SUM : 62983d7519f15e67355d6dd5e60ee353
Build date : 02/08/2019
Size : 192 MB
* @@ -41,13 +41,13 @@ Size : 192 MB
* **Temporary workaround :** Disable UHS option/support. - *Can be manually enable, refer to the following [page](/sdcard).* + *Can be manually enable, refer to the following [page](/helios4/sdcard).* - During SATA heavy load, accessing SPI NOR Flash will generate ATA errors. **Temporary workaround :** Disable SPI NOR flash. - *Can be manually enable, refer to the following [page](/spi).* + *Can be manually enable, refer to the following [page](/helios4/spi).* ## Image List diff --git a/docs/files/carrier/Helios4_Assembly_R1-1.zip b/docs/helios4/files/carrier/Helios4_Assembly_R1-1.zip similarity index 100% rename from docs/files/carrier/Helios4_Assembly_R1-1.zip rename to docs/helios4/files/carrier/Helios4_Assembly_R1-1.zip diff --git a/docs/files/carrier/Helios4_Assembly_R1-2.zip b/docs/helios4/files/carrier/Helios4_Assembly_R1-2.zip similarity index 100% rename from docs/files/carrier/Helios4_Assembly_R1-2.zip rename to docs/helios4/files/carrier/Helios4_Assembly_R1-2.zip diff --git a/docs/files/carrier/Helios4_BOM_R1-1.xls b/docs/helios4/files/carrier/Helios4_BOM_R1-1.xls similarity index 100% rename from docs/files/carrier/Helios4_BOM_R1-1.xls rename to docs/helios4/files/carrier/Helios4_BOM_R1-1.xls diff --git a/docs/files/carrier/Helios4_BOM_R1-2.xls b/docs/helios4/files/carrier/Helios4_BOM_R1-2.xls similarity index 100% rename from docs/files/carrier/Helios4_BOM_R1-2.xls rename to docs/helios4/files/carrier/Helios4_BOM_R1-2.xls diff --git a/docs/files/carrier/Helios4_Gerber_R1-1.zip b/docs/helios4/files/carrier/Helios4_Gerber_R1-1.zip similarity index 100% rename from docs/files/carrier/Helios4_Gerber_R1-1.zip rename to docs/helios4/files/carrier/Helios4_Gerber_R1-1.zip diff --git a/docs/files/carrier/Helios4_Gerber_R1-2.zip b/docs/helios4/files/carrier/Helios4_Gerber_R1-2.zip similarity index 100% rename from docs/files/carrier/Helios4_Gerber_R1-2.zip rename to docs/helios4/files/carrier/Helios4_Gerber_R1-2.zip diff --git a/docs/files/carrier/Helios4_Mechnical_Assembly.pdf b/docs/helios4/files/carrier/Helios4_Mechnical_Assembly.pdf similarity index 100% rename from docs/files/carrier/Helios4_Mechnical_Assembly.pdf rename to docs/helios4/files/carrier/Helios4_Mechnical_Assembly.pdf diff --git a/docs/files/carrier/Helios4_PCB_R1-1.zip b/docs/helios4/files/carrier/Helios4_PCB_R1-1.zip similarity index 100% rename from docs/files/carrier/Helios4_PCB_R1-1.zip rename to docs/helios4/files/carrier/Helios4_PCB_R1-1.zip diff --git a/docs/files/carrier/Helios4_PCB_R1-2.zip b/docs/helios4/files/carrier/Helios4_PCB_R1-2.zip similarity index 100% rename from docs/files/carrier/Helios4_PCB_R1-2.zip rename to docs/helios4/files/carrier/Helios4_PCB_R1-2.zip diff --git a/docs/files/carrier/Helios4_Schematics_R1-1.pdf b/docs/helios4/files/carrier/Helios4_Schematics_R1-1.pdf similarity index 100% rename from docs/files/carrier/Helios4_Schematics_R1-1.pdf rename to docs/helios4/files/carrier/Helios4_Schematics_R1-1.pdf diff --git a/docs/files/carrier/Helios4_Schematics_R1-2.pdf b/docs/helios4/files/carrier/Helios4_Schematics_R1-2.pdf similarity index 100% rename from docs/files/carrier/Helios4_Schematics_R1-2.pdf rename to docs/helios4/files/carrier/Helios4_Schematics_R1-2.pdf diff --git a/docs/files/carrier/Helios4_Specifications.pdf b/docs/helios4/files/carrier/Helios4_Specifications.pdf similarity index 100% rename from docs/files/carrier/Helios4_Specifications.pdf rename to docs/helios4/files/carrier/Helios4_Specifications.pdf diff --git a/docs/files/casing/Helios4_CaseB_r4g-assembled.skp b/docs/helios4/files/casing/Helios4_CaseB_r4g-assembled.skp similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4g-assembled.skp rename to docs/helios4/files/casing/Helios4_CaseB_r4g-assembled.skp diff --git a/docs/files/casing/Helios4_CaseB_r4g.dxf b/docs/helios4/files/casing/Helios4_CaseB_r4g.dxf similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4g.dxf rename to docs/helios4/files/casing/Helios4_CaseB_r4g.dxf diff --git a/docs/files/casing/Helios4_CaseB_r4g.eps b/docs/helios4/files/casing/Helios4_CaseB_r4g.eps similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4g.eps rename to docs/helios4/files/casing/Helios4_CaseB_r4g.eps diff --git a/docs/files/casing/Helios4_CaseB_r4g.pdf b/docs/helios4/files/casing/Helios4_CaseB_r4g.pdf similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4g.pdf rename to docs/helios4/files/casing/Helios4_CaseB_r4g.pdf diff --git a/docs/files/casing/Helios4_CaseB_r4g.skp b/docs/helios4/files/casing/Helios4_CaseB_r4g.skp similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4g.skp rename to docs/helios4/files/casing/Helios4_CaseB_r4g.skp diff --git a/docs/files/casing/Helios4_CaseB_r4j.dxf b/docs/helios4/files/casing/Helios4_CaseB_r4j.dxf similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4j.dxf rename to docs/helios4/files/casing/Helios4_CaseB_r4j.dxf diff --git a/docs/files/casing/Helios4_CaseB_r4j.eps b/docs/helios4/files/casing/Helios4_CaseB_r4j.eps similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4j.eps rename to docs/helios4/files/casing/Helios4_CaseB_r4j.eps diff --git a/docs/files/casing/Helios4_CaseB_r4j.pdf b/docs/helios4/files/casing/Helios4_CaseB_r4j.pdf similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4j.pdf rename to docs/helios4/files/casing/Helios4_CaseB_r4j.pdf diff --git a/docs/files/casing/Helios4_CaseB_r4j.skp b/docs/helios4/files/casing/Helios4_CaseB_r4j.skp similarity index 100% rename from docs/files/casing/Helios4_CaseB_r4j.skp rename to docs/helios4/files/casing/Helios4_CaseB_r4j.skp diff --git a/docs/files/casing/Helios4_MiniCase_r2.dxf b/docs/helios4/files/casing/Helios4_MiniCase_r2.dxf similarity index 100% rename from docs/files/casing/Helios4_MiniCase_r2.dxf rename to docs/helios4/files/casing/Helios4_MiniCase_r2.dxf diff --git a/docs/files/casing/Helios4_MiniCase_r2.eps b/docs/helios4/files/casing/Helios4_MiniCase_r2.eps similarity index 100% rename from docs/files/casing/Helios4_MiniCase_r2.eps rename to docs/helios4/files/casing/Helios4_MiniCase_r2.eps diff --git a/docs/files/casing/Helios4_MiniCase_r2.pdf b/docs/helios4/files/casing/Helios4_MiniCase_r2.pdf similarity index 100% rename from docs/files/casing/Helios4_MiniCase_r2.pdf rename to docs/helios4/files/casing/Helios4_MiniCase_r2.pdf diff --git a/docs/files/casing/Helios4_MiniCase_r2.skp b/docs/helios4/files/casing/Helios4_MiniCase_r2.skp similarity index 100% rename from docs/files/casing/Helios4_MiniCase_r2.skp rename to docs/helios4/files/casing/Helios4_MiniCase_r2.skp diff --git a/docs/files/certification/CE_DoC_Helios4_2GB_ECC.pdf b/docs/helios4/files/certification/CE_DoC_Helios4_2GB_ECC.pdf similarity index 100% rename from docs/files/certification/CE_DoC_Helios4_2GB_ECC.pdf rename to docs/helios4/files/certification/CE_DoC_Helios4_2GB_ECC.pdf diff --git a/docs/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf b/docs/helios4/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf similarity index 100% rename from docs/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf rename to docs/helios4/files/certification/FCC_SDoC_Helios4_2GB_ECC.pdf diff --git a/docs/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf b/docs/helios4/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf similarity index 100% rename from docs/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf rename to docs/helios4/files/certification/Helios4_FCC_CE_Test_Manual-v0.1.pdf diff --git a/docs/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf b/docs/helios4/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf similarity index 100% rename from docs/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf rename to docs/helios4/files/certification/RoHS_DoC_Helios4_2GB_ECC.pdf diff --git a/docs/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf b/docs/helios4/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf similarity index 100% rename from docs/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf rename to docs/helios4/files/certification/UCSCE-1810-0075_Helios4_2GB_ECC_Test_Report.pdf diff --git a/docs/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf b/docs/helios4/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf similarity index 100% rename from docs/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf rename to docs/helios4/files/certification/UCSFC-1810-0036_Helios4_2GB_ECC_Test_Report.pdf diff --git a/docs/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb b/docs/helios4/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb similarity index 100% rename from docs/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb rename to docs/helios4/files/cesa/libssl1.0.2_1.0.2s-1~deb9u1.1_armhf.deb diff --git a/docs/files/cesa/openssl-add-cryptodev-support.patch b/docs/helios4/files/cesa/openssl-add-cryptodev-support.patch similarity index 100% rename from docs/files/cesa/openssl-add-cryptodev-support.patch rename to docs/helios4/files/cesa/openssl-add-cryptodev-support.patch diff --git a/docs/files/dt-overlay/compile-dtb-lk-4.14.patch b/docs/helios4/files/dt-overlay/compile-dtb-lk-4.14.patch similarity index 100% rename from docs/files/dt-overlay/compile-dtb-lk-4.14.patch rename to docs/helios4/files/dt-overlay/compile-dtb-lk-4.14.patch diff --git a/docs/files/dt-overlay/compile-dtb-lk-4.19.patch b/docs/helios4/files/dt-overlay/compile-dtb-lk-4.19.patch similarity index 100% rename from docs/files/dt-overlay/compile-dtb-lk-4.19.patch rename to docs/helios4/files/dt-overlay/compile-dtb-lk-4.19.patch diff --git a/docs/files/dt-overlay/dtc b/docs/helios4/files/dt-overlay/dtc similarity index 100% rename from docs/files/dt-overlay/dtc rename to docs/helios4/files/dt-overlay/dtc diff --git a/docs/helios4/files/dt-overlay/lk4.14_armada-388-helios4.dtb b/docs/helios4/files/dt-overlay/lk4.14_armada-388-helios4.dtb new file mode 100644 index 0000000000000000000000000000000000000000..735df406118d0e01a84b6ebeb46c099f5e955851 GIT binary patch literal 27190 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

$t(%_Wre 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 CZn~ZT literal 0 HcmV?d00001 diff --git a/docs/helios4/files/dt-overlay/lk4.19_armada-388-helios4.dtb b/docs/helios4/files/dt-overlay/lk4.19_armada-388-helios4.dtb new file mode 100644 index 0000000000000000000000000000000000000000..b4ee2677e295735f4cde688f4656c61167f641aa GIT binary patch literal 25006 zcmcg!e~c|xU7ve*-`n>}TOU*kz9Qaj3)0se_Wsy?Z(mWkl!_G!ZKcox+I4pB?C#xn ze{tvTFCu2!fD#fy;$MiU#64frc)BKY}y&-tEv zW_Ir0-AC&rGjo1?e}BK{%$YOi%(FLr|6hV2`hy?{R)XODkKq0WoG-_D4kwN?A3*tQ zOgeKd+1w27vo_5#&Ho6}nm>c|ZTBagc0XMrC}A$*obN`%out!Qh=$#$6*X2?f_%yH zp^_>ofOfpuPm`XcNslrwq{*-yb*lH&YRmO%wFjN#DC1g+I_)S;QWg;YwK!K6(|)|z z?v0XRFY1KDWFuYN7_|G%+Dffz`6%q0kAPkBU@M?|UjeKUtyzOy0!_Mvec&iqD+OV1 z$N5MBY%Te3zGVP~yj#2!bDc2N&ee{+MKg z?;=eN&%V;;8EMGhXr=vb1$n}tbgkbX4f|cD$%my*|6JXTsM}JWK?ON$|5maCql5&H zJ=>7Gqt)F>*0w_fDVT0S;TIHit%qHYbg1I2Dfc&f@%9 ztDQz`ouq{{50(?=d7KrT^ij#`5~o$<49rROApgU9yjkc4FR>o;;F8s&CVZ*uN%deX z9M+)>PzE12zUWZd` zl*Zf5*oiAR1!Z?>Td6rQWE9Q8jGWV>cA* z?p$2j+uM^e#WQv)NsLr1E!u&H+J|{xZnYy}C=ctcex;8f`GU=p_BC6No4}mH{cHUz zks0BP@jf1$K7U|gXtz%zO<2+eozm~NlJ#i2GeTB*iA`RQe2IgHkKaoUUX8M(f@>Q8(tI{_?Bkb=a!+3i* zOnRd*9YrHM*d!0(GfKLH=2EOQ7-#dN_Clw7$@!P|K}ykIh5 zFu2T1tt!`=T_Fu z0WXT#GS!W7EV^}Dc#hG>nFPfRAgn<Q)z{Tw8R{utD|*M#2EXpfYuw8Ryy!QNN~{3jLpPob%~L>C|q~_Ic!uu58NXA z@$Fc2cC^PbD(z*7vt{x5viN-YGNon=D{X^i%G3sID?+=6!9~tD@6O2GFcORO4RbZ| zCs!L=CM+cK8zK=jM9kUfG_QAKJK{ZDWmI{n|5%>kn$|mCSS6fZl$$^}Sf+FcCUn?g zdqF}NjXBeNQGmnZmd|fThuS9K^Rz??;-F6#-`1psnW33S%fYE!G=a#Kwl-rEDJU`g zf6CHYG8Pqz%Od2m*mYT~zHFL`*tOW-;DuOf9nynurG|GjigGql`|9A5IqJ<3MPUrO@iO<6%GTcf-NvzUy>^grgxc9;45B#UYy6K%h)_f-ULUzFwlC zur~)R;V1c<&v%g@?*`S?Y`?2MLT@Ao=}14pcMVgdw8a*HKWq!UeqjXb2&+9Qdu_!K znMRkhn<68g9knqj;jL|}Zh8{;3>7&EUmz#P6GCrO=Ji8k-PrHiGCuR;{V4r8>*~|R z45O2lI$l7v_)PnC#_Z%4ERs*N4Nd6tT#tGgp4#{0iB4|PJD9#>{2q9ePHdi}FFbM| z7${rj-N1Yc2^*KHp@fKzjr+rPzh{boBDOt;JI2LNFyF-eD()PoktY08zFP=RBk$wdjqlZJi>GWFdX%mrO*vVI{B_yw9)pW(5O79SZABkw znlr{sPqW)=0V8%x_fx#)`jbz!6?}w3wa|DM?rsdPvA0qU523l)9|b~y?hOjyNO>$D z;`2#l{dXGiD|Hq5;!Z!l5^hAJc5g$a#LGwBb{N#Ng0o0QMIr@&IGd0sai-X*{Ih_e zVAf|M7vCL4F7u5gjfN1$P8t%9b}fD?eh>@P(UaCA|7mWhcJK zZsvCD)y6ok`OI>%YRDq4&E&3js?VCJZ>tZ*5310oDR-j}?a1$*Qi(flsIKVZq{p6OjhuqOn2fe;*m#Fc+2A) zV^5zm>R)~%5uSr?y4^(Y=(WpCpWwwhL36Y#$dkOtr?lUKywEOKOh7#f>BBczb`U8o zBRikgLDMhO^#QCWE#9x;WSo;f%WyAaEd2WWZJuqSXm0=0C}$sJ=@iY!l|O>|n=K5- zKu?&-rgjTuJe1!jkY=Bv`QKnA4$XfaX|_+Bmp0Z!K5HkmuxWlMv=gZo+lhSzYkfO0 z&vV)w-dh2alW*xdl;Kd!K zV}4t~sRLvg9>Nc@xG^W+_cWe-+p(OoO^B)TAES;9f-uBqU-~wjBIjOz*t|IIs0ecx zPA8|=)&S~8NJe~?n1guau@#)AXb7v*bTh+C`1Pqwtm1bC#CUgRL(6GX0RYVz|>*d;}KSO8dy8Z1pol zhOKP3EOzj9eJkpZ(p7bI4{$zqQuCAm@farIL+d793QLv zTP(q$dA2R~&9tf5H6HE{M*Sv&M#Dy6Gv5_l8`}#FIFNCWrqS7ki7i7cl<($BJ_6w& z9G+jUpP(IS3m!j;Q|(eg`WjBehJ0(~{gpOPnVHvq0`isPI7y>wz-vveA2yi}dvOB! z%Krg8@+2>7hZ#sr(KRo2=DUd4WH^eOSPH2IApWagrVYF!3_tvRdA|& zP7eBBusnndVX*$6|R|?nz5a3JOFs`1)N%@_Rw(Io%RWnWFtY}j()$VzI%W$C-B|70Pl1?rtjWuaRg7^ z<(tV;9bX1;&_?q-bFYqQsdxh)Caw04|N8IzwH4fa??b?243h@*IrRQdpWbTgVWXMF z3Ex`S4~T4B^V^L&&19u|Nm{(2UC?h*JPQqE9F)QI6*o8cke&^0ZVqriW9ugQi1G6v zPT?=#u)H}6E@u)e8Tz*aE@vlBXXdZ~goE;s_m+(8vBue!(eFGa#Rcr?`V8Xa-o61&;bCQDq-N9T0G`UK36@v{=@cn}W$E8lGjWqmWOvkstkzabz3 z!!`yz4{(DEZn}y))GK||m*3Zmyz_c7j`-{*Pt?uai~CR5`~=_4JZ4}82lz8<$n#B& z&m^@kk~3F$!3lrJ7=iLq1}!UCJ2f*h@B%~7eG5;y88Z*#6x(u5PjlS`3Tcvlk!|<9 z=LHM}n@Nw*L=T2D;HkQ}7$97ct>}C5nqV7|@#j(R$*ArZyc5WH05VO;c-7nw%SgW! z$#?_Gr^)ypz)(h!GmXM@7 zW#geS!8|RmdD{3HoNjHrM~|@dH^(}@jPk%l*>oBC1e1fJ9gZ^xJMFg=x#aW68i zb;Gs6K$`JX`E$7Z*JnA^{+QMMsCcDj#>RtovsTq5tzxsgP*>EZ zu%sdPe##PaPtuKEF3zN2zRuV6eNG~%FL7d!JcjmW(@Jm-wejJ~?4{-E} z_+=2c6Qp?%x3I6ogI~d>(SIC(N{e!8T5Usrkgv_p{2|h+JK}5RPlnK-n<^@}91!o%`2b%AL_f)nHIrRr)^--K9I=ER| zs9H#^_x*`Jcjhmilx_e}o)3^CJo{wCrK>>J9ZHV{Olv+D51DUFO~8$PkBqgi*acbN zKF9_c-)KGVL>7v7yp)*^$XNJd{}vsnl`i0MG!c6na`vEidOXDPdX#$l;g%|R&et9+X`9uA{a;7zZJ$@lBk4b*X z)B}$B7uzqKgUtJdcC>m;^a}?vgqh}-4*+KDm!*^VnM`Q?LvpbtbJv^Md2WC>Emzu%$L2qytmwn0*Qfs8n-*0XkZTgu$M>iYkCQWI?|^d!g}ALj)Mpg$(r%e9p^1 z?B!AH%P`CD(Ud{$`8?8mj^|`r-U&BbEtK<^CKuYz?1km`t=@m%eGVRR4Y?k8XVc;{ z|FD-w@l?5f0YHc4!o&^Ac}$ZFdd*&V?|beIA9|EiDys8Txjt@TadR><{TW-1wmtj% zNOOK!UQTT}bu6+k=fgw~yNC^INTtb9evYl?xh^u)QnWp@H;g5yHFD!!YW9m}ZR^rK z8^a{&-Q(>bGcb^=^c>*XpYcJ=*ta}ppWaNcAbu^0Mkuu9sGI$2zbAQ-Pj(_Ywt|aq za$~-jR=&sWRy@p;b92g*vHI03Nn&~hqrdPFU9Tkjw$sVlAX^T5%KIqCr={J#-?z?w z@zLl?5=h}SRJnbOIvVXO|zD`_`iQg9L$Kh8eis-NUlAo_HeL;Q(@(6y7}?pMjjfkNYoegQAaNpK)9p-?@&3^}a1{^>|^7F#9xV z;dd{#DY@A5{U<)$!tQmu+?h1l&(0%{)mhT$ET7r`L^*v1+MjLW&T_=QJTHC`cT4Ni zNoe6YeTdfMN(=JW`RyEe9^@y_W$M-I55m1TX`4rq$};;ufMGx8%f{!X$OgQ|$>@o0 ztBSw6n(lYk`ki!@MZyDZ>(p8Kzs%tukWdEjKJ_ZU-u~1>>u%51Nu$)dFk2_hLhH;w zc-)UdB!pRa7x=wR@G?J1SUloa2BJp@ytfzN6)tZbZ^IW{^n0h?QG}b_CNHpW1nh%H z!OEY64sRx>Zm$FG`;Wx+HYQvDP_|?uPIkX(1+ZHMu=y>xl!dT^qhKv*!p;MBrvMfk zQ}SCz#YPB%Q@=6|elfcdvkE>u$dCA+JR!aWp2c4P{%5D+XE$Gx@7=)r{8YT`CQIT$ z_ES$y#XG#AQgQ$MWVo)4QO~bT#pPTuw-Al@+!F8kqXU%$_B->2Dnm z&umDveq@{ex2br!4Tv7@|DFIh7eA-ZOvN=jpHxx$67rtDWjY>42%ba6@}7R}32=RR z$@i`k;QHee;x3&4*B@(K0`6O;;!fV&N1H8!#(R%XBWrYPJH+Mb_EZ|#O?u?L0=#r8 zo-coPLmp|6_a~;($ZozP-bLX3=2X1No9svfF>rc%zhh}&Oy)MX0ax*_9#;l`bDYKJ zSn8$tmmY2UY=K;d_9k(^kX?X6eei5P{q+L8DO-)i7Iy%*sBbIS4kYmC(@wuoz$>>k z2m2k|5*fjxjQ?7IS2#`?Z^IE>j0;cydjW248;ro-4%q)LfGyZ2BJdTw&Xx<{F{PB* zwm~~z0IV4^=Ei7~w?zmK#LL{R1w3+F8&v+e+X`THNvi+fL&^kw=PF0RkC*H_`mZ|@ z-YuaQc#Om5E)>9HNbWCbcd&~Euvm`lFDrMjMg6aVb<3&+miD_`KsUFnSYXkw&lUZ< zatynuru0_#ntp+?Q1pMw{IXrzopyP+K&ISsRwsW^U!Pl2DzJ>P4;IiJ!!G7l1sd6j z7abSRK18Vp=9uO-3h?};oP?tf3dh)Zs(VW-oeqU#YzI48hobSe=q}4QJv>hb^bd2t zT%bd4Nu$VyG5y@H6~GoOF%)?8cXOXAfX^-NYkErp1&=cQP63`g$j3|W1eUh_y#iRi z_IgXm9PAe+!n&ng0*iO;fwKlXd19XzM(C-h{fp6g+Ri5O9cxx%#>149(19 z9Ig9nzs@dTVIAg#=l(uhx0qYiIoU%ao+ecP2UX1>6aKI_exnN_A< zzXWUj_j369MN;d(pR3m|W30z~z?s=a^Fd}Y_bmpz&)leW1>aL(vop6Wjwj^xCBy8oj+-=^|fq0LI#L9SbrAyZ(j5!iM;Z+q1;XQ*mBtZ%>9cX;Z5F< z4$B{Axi<;Jc^RH(?}%D0Y*@s;T>RNM4em(WAI8RDNq76Lq!Yyb?f|=;@$b|i9ku$~ z__0GY+6*{PTa{}qu>Uc(_gbJmbS=O{NjpwfNBe^$fB^$HTu3q1FiP;>x)vDde;&ux z;K9G31q_A|zX1-TK{6a|4-->@30YS#jCvdRPqO{iW+%M|oA~_;BsSA8+r9RBo1Emo zlAQ!UaSpIgV*%Pgt+3PXCF}TzhQC(C!@`Q)VKgYJ2nKjNPOyPBY@u%)iw`?GO|3D# z{8(R(fN0UKl|Nh`CLh}74$Z($QsC`ZQ@yAQJ!O8}Gua)cKpZB?&Hjb}r4VPZJqoBD z)-rdKU?;|QitWLmvrk`y>1KO<2c75r`&H!JW9O2$gR4z*Y;)z(7`@rbUGz z8-wvGf4B{DCd@+k45k&U0&%$0S>P|H&{`t=2WCI+z)#%jZj6ebj2LtE`e7|x33q~> zZZ{5g2M`87{2L)KQ3K-m|8=+v%hg&xqfJS;HTjbQ07RLQ0*^*AwOM;}wUnWDe(PqCz_uH?d5>4Z5x7`cnZF8rO zA60tgki4io>g-1QX^4p00p>U&Ep`4%nw6G&gy7pr!p-)E>2!ilw1)PJu-@KVuz$x4 zN5l38gGTf01`-PsGq`r~IcOWdf9P)yV{{_BXmRr2Y9}qbDp+*Y{>a+qIBV>Z(wz|| zPV3{+M({vA;QvqYvRn=HZ=BVDbE2#G<$H>Fl%LXY!lxSWTGKWi;E!*svg6nMh6g`g z^RuLADmeT#DReli2sT@8b2U?kaIxh`*)k4vOs%9aQ6+MiA`!;oa)W?PqAycANGfq8 z>tle1N$M=aDw;9n%9YA+$&`)fF?^irDk9YYm>2$4+A33EXv9_v3x#Qc3=m%PP2Rk0 z#{qt}k?`*W-0Z?TUvTkDSpEgV{5wJ4Cu@_GwZ=279fKR5FW6njO=|&nkW~YYd(E|m4onL1tfU#`+7Q{W5r^XGrWbLN z*S(AKWZl63Q00d0d$J92)hwy^GUT!<3&a@+>^y3LU0%yp9?P>6v4?bBt_`{3&qQ`@ s3ZjX!piN*I!;ai#Ji~(JL3L-9-~3$$(gZMjjTf;Fq67W82+73%0l*O5`~Uy| literal 0 HcmV?d00001 diff --git a/docs/files/fan/4_Wire_PWM_Spec.pdf b/docs/helios4/files/fan/4_Wire_PWM_Spec.pdf similarity index 100% rename from docs/files/fan/4_Wire_PWM_Spec.pdf rename to docs/helios4/files/fan/4_Wire_PWM_Spec.pdf diff --git a/docs/files/fan/Whee_fan_7015.pdf b/docs/helios4/files/fan/Whee_fan_7015.pdf similarity index 100% rename from docs/files/fan/Whee_fan_7015.pdf rename to docs/helios4/files/fan/Whee_fan_7015.pdf diff --git a/docs/files/led/libata_leds_trigger_mvebu.patch b/docs/helios4/files/led/libata_leds_trigger_mvebu.patch similarity index 100% rename from docs/files/led/libata_leds_trigger_mvebu.patch rename to docs/helios4/files/led/libata_leds_trigger_mvebu.patch diff --git a/docs/files/pcn/Helios4_PCN_201904220001.pdf b/docs/helios4/files/pcn/Helios4_PCN_201904220001.pdf similarity index 100% rename from docs/files/pcn/Helios4_PCN_201904220001.pdf rename to docs/helios4/files/pcn/Helios4_PCN_201904220001.pdf diff --git a/docs/files/pcn/Helios4_PCN_201906060001.pdf b/docs/helios4/files/pcn/Helios4_PCN_201906060001.pdf similarity index 100% rename from docs/files/pcn/Helios4_PCN_201906060001.pdf rename to docs/helios4/files/pcn/Helios4_PCN_201906060001.pdf diff --git a/docs/files/power-supply/YCZX_ACDC_CE_CoC.png b/docs/helios4/files/power-supply/YCZX_ACDC_CE_CoC.png similarity index 100% rename from docs/files/power-supply/YCZX_ACDC_CE_CoC.png rename to docs/helios4/files/power-supply/YCZX_ACDC_CE_CoC.png diff --git a/docs/files/power-supply/YCZX_ACDC_FCC_VoC.png b/docs/helios4/files/power-supply/YCZX_ACDC_FCC_VoC.png similarity index 100% rename from docs/files/power-supply/YCZX_ACDC_FCC_VoC.png rename to docs/helios4/files/power-supply/YCZX_ACDC_FCC_VoC.png diff --git a/docs/files/power-supply/YCZX_Schematics_12V8A.pdf b/docs/helios4/files/power-supply/YCZX_Schematics_12V8A.pdf similarity index 100% rename from docs/files/power-supply/YCZX_Schematics_12V8A.pdf rename to docs/helios4/files/power-supply/YCZX_Schematics_12V8A.pdf diff --git a/docs/files/sdcard/armada-388-helios4.dtb.uhs b/docs/helios4/files/sdcard/armada-388-helios4.dtb.uhs similarity index 100% rename from docs/files/sdcard/armada-388-helios4.dtb.uhs rename to docs/helios4/files/sdcard/armada-388-helios4.dtb.uhs diff --git a/docs/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch b/docs/helios4/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch similarity index 100% rename from docs/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch rename to docs/helios4/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch diff --git a/docs/files/sdcard/run_sdcard_test.sh b/docs/helios4/files/sdcard/run_sdcard_test.sh similarity index 100% rename from docs/files/sdcard/run_sdcard_test.sh rename to docs/helios4/files/sdcard/run_sdcard_test.sh diff --git a/docs/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf b/docs/helios4/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf similarity index 100% rename from docs/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf rename to docs/helios4/files/som/a38x-microsom-schematics-simplified-rev2.00.pdf diff --git a/docs/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf b/docs/helios4/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf similarity index 100% rename from docs/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf rename to docs/helios4/files/som/a38x-microsom-schematics-simplified-rev2.1.pdf diff --git a/docs/files/som/brochure_a38x_microsom_2017-09-05.pdf b/docs/helios4/files/som/brochure_a38x_microsom_2017-09-05.pdf similarity index 100% rename from docs/files/som/brochure_a38x_microsom_2017-09-05.pdf rename to docs/helios4/files/som/brochure_a38x_microsom_2017-09-05.pdf diff --git a/docs/files/uboot/boot_spi_en.cmd b/docs/helios4/files/uboot/boot_spi_en.cmd similarity index 100% rename from docs/files/uboot/boot_spi_en.cmd rename to docs/helios4/files/uboot/boot_spi_en.cmd diff --git a/docs/files/uboot/boot_spi_en.scr b/docs/helios4/files/uboot/boot_spi_en.scr similarity index 100% rename from docs/files/uboot/boot_spi_en.scr rename to docs/helios4/files/uboot/boot_spi_en.scr diff --git a/docs/files/uboot/u-boot-armbian-2013.01-spi.bin b/docs/helios4/files/uboot/u-boot-armbian-2013.01-spi.bin similarity index 100% rename from docs/files/uboot/u-boot-armbian-2013.01-spi.bin rename to docs/helios4/files/uboot/u-boot-armbian-2013.01-spi.bin diff --git a/docs/files/uboot/u-boot-armbian-2018.11-spi.bin b/docs/helios4/files/uboot/u-boot-armbian-2018.11-spi.bin similarity index 100% rename from docs/files/uboot/u-boot-armbian-2018.11-spi.bin rename to docs/helios4/files/uboot/u-boot-armbian-2018.11-spi.bin diff --git a/docs/files/uboot/u-boot-armbian-boot-script-support.patch b/docs/helios4/files/uboot/u-boot-armbian-boot-script-support.patch similarity index 100% rename from docs/files/uboot/u-boot-armbian-boot-script-support.patch rename to docs/helios4/files/uboot/u-boot-armbian-boot-script-support.patch diff --git a/docs/files/uboot/u-boot-mainline-armbian-boot-script-support.patch b/docs/helios4/files/uboot/u-boot-mainline-armbian-boot-script-support.patch similarity index 100% rename from docs/files/uboot/u-boot-mainline-armbian-boot-script-support.patch rename to docs/helios4/files/uboot/u-boot-mainline-armbian-boot-script-support.patch diff --git a/docs/files/wol/helios4-dts-add-wake-on-lan-support.patch b/docs/helios4/files/wol/helios4-dts-add-wake-on-lan-support.patch similarity index 100% rename from docs/files/wol/helios4-dts-add-wake-on-lan-support.patch rename to docs/helios4/files/wol/helios4-dts-add-wake-on-lan-support.patch diff --git a/docs/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch b/docs/helios4/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch similarity index 100% rename from docs/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch rename to docs/helios4/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch diff --git a/docs/freebsd.md b/docs/helios4/freebsd.md similarity index 98% rename from docs/freebsd.md rename to docs/helios4/freebsd.md index 6577929..e4b98ce 100644 --- a/docs/freebsd.md +++ b/docs/helios4/freebsd.md @@ -43,7 +43,7 @@ pv FreeBSD-armv7-12.0-GENERIC-333641-Clearfog.img | sudo tee /dev/sdX >/dev/null In an ideal world U-Boot would already be installed in SPI flash, including the necessary patch for FreeBSD. If you happen to have such an ideal system, you may skip the next section ### Install U-Boot -Please refer to [U-boot](/uboot) for build instructions. +Please refer to [U-boot](/helios4/uboot) for build instructions. The Boot-ROM expects to find U-Boot at 512 bytes into the sdcard. Assuming your SD-Card is available at /dev/sdX, write the u-boot binary to it using dd: ```bash diff --git a/docs/gpio.md b/docs/helios4/gpio.md similarity index 90% rename from docs/gpio.md rename to docs/helios4/gpio.md index 5d737cd..4c7a05a 100644 --- a/docs/gpio.md +++ b/docs/helios4/gpio.md @@ -3,7 +3,7 @@ Helios4 provides 12 GPIOs on header J12 which can be used for user application. Those GPIOs are provided via an 16-bit IO Expander [PCA9655E](http://www.onsemi.com/PowerSolutions/product.do?id=PCA9655E) connected to I2C bus 0. -![J12 Pinout](/img/gpio/gpio_pinout_j12.png) +![J12 Pinout](/helios4/img/gpio/gpio_pinout_j12.png) ### Pinout Table @@ -136,7 +136,7 @@ echo 1 | sudo tee -a /sys/class/gpio/gpio511/value ## Use GPIO with Device Tree Overlay !!! info - Device Tree Compiler (dtc) from OS package manager usually is too old, use the one from kernel source or download binary version for Arm [here](/files/dt-overlay/dtc). + Device Tree Compiler (dtc) from OS package manager usually is too old, use the one from kernel source or download binary version for Arm [here](/helios4/files/dt-overlay/dtc). Another way to use the GPIO is by using device tree. In device tree the user accessible GPIO is labelled as [expander0](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/arm/boot/dts/armada-388-helios4.dts#n155). @@ -169,14 +169,14 @@ and save it as power-button.dts Download dtc and compile device tree with this command ``` -wget https://wiki.kobol.io/files/dt-overlay/dtc +wget https://wiki.kobol.io/helios4/files/dt-overlay/dtc chmod 755 dtc ./dtc -I dts -O dtb -o power-button.dtbo power-button.dts ``` ***Button Wiring*** -![button wiring](/img/gpio/power_button_sch.png) +![button wiring](/helios4/img/gpio/power_button_sch.png) The GPIO has internal pull up resistor, when the button is not pressed the input read as High and when the button is pressed the input read as Low, therefore we use active low flag. @@ -240,6 +240,22 @@ For more info please refer to ### Device Tree Overlay under Armbian +!!! info + Armbian older than version 5.98 is still not compiled with overlay support. Refer to instruction to [Compile Helios4 DTB with Symbol Support](#compile-helios4-dtb-with-symbol-support) or use precompiled binary. + + Armbian Default (Stretch, Linux Kernel 4.14): + + `wget https://wiki.kobol.io/files/dt-overlay/lk4.14_armada-388-helios4.dtb` + + `sudo cp lk4.14_armada-388-helios4.dtb /boot/dtb/armada-388-helios4.dtb` + + Armbian Next (Buster, Linux Kernel 4.19): + + `wget https://wiki.kobol.io/files/dt-overlay/lk4.19_armada-388-helios4.dtb` + + `sudo cp lk4.19_armada-388-helios4.dtb /boot/dtb/armada-388-helios4.dtb` + + Create */boot/overlay-user/* to store the overlay and copy the overlay to the folder ``` @@ -326,14 +342,14 @@ Download and apply kernel patch for - Linux Kernel 4.14 ``` -wget https://wiki.kobol.io/files/dt-overlay/compile-dtb-lk-4.14.patch +wget https://wiki.kobol.io/helios4/files/dt-overlay/compile-dtb-lk-4.14.patch git apply --apply compile-dtb-lk-4.14.patch ``` - Linux Kernel 4.19 ``` -wget https://wiki.kobol.io/files/dt-overlay/compile-dtb-lk-4.19.patch +wget https://wiki.kobol.io/helios4/files/dt-overlay/compile-dtb-lk-4.19.patch git apply --apply compile-dtb-lk-4.19.patch ``` diff --git a/docs/hardware.md b/docs/helios4/hardware.md similarity index 90% rename from docs/hardware.md rename to docs/helios4/hardware.md index cbddd31..bcaa665 100644 --- a/docs/hardware.md +++ b/docs/helios4/hardware.md @@ -1,14 +1,14 @@ ## Block Diagram ### Helios4 Carrier Board -![!Block Diagram](/img/hardware/helios4_block_diagram.jpg) +![!Block Diagram](/helios4/img/hardware/helios4_block_diagram.jpg) ### A388 System-On-Chip -![!Block Diagram](/img/hardware/soc_block_diagram.png) +![!Block Diagram](/helios4/img/hardware/soc_block_diagram.png) ## Connector / Interface List -![!Board Legend](/img/hardware/board_legend.jpg) +![!Board Legend](/helios4/img/hardware/board_legend.jpg) Name |Peripheral Type|Connector Type|Details -----|---------------|--------------|------- @@ -38,11 +38,11 @@ U13|SATA|SATA 3.0|Port 3 (SATA4) Helios4 supports 4 boot modes that can be chosen by using the dipswitch SW1. -![Dipswitch modes](/img/hardware/dipswitch_modes.jpg) +![Dipswitch modes](/helios4/img/hardware/dipswitch_modes.jpg) All the ready-to-use images we provide are for the **SD Card** boot mode. -Please refer to [U-boot](/uboot) section to know how to use the other modes. +Please refer to [U-boot](/helios4/uboot) section to know how to use the other modes. ## LED indicators @@ -59,13 +59,13 @@ LED8|green|Power indicator Helios4 board was designed to either use the on-board LEDs or use an expansion panel (not-available). To use the on-board LEDs insure to switch to ON the dipswitch SW2. -![Dipswitch LED](/img/hardware/dipswitch_led_on.jpg) +![Dipswitch LED](/helios4/img/hardware/dipswitch_led_on.jpg) ## Reset Button Helios4 board provides a RESET push button (U16) to hard reset the SoC (System-On-Chip). -![Reset Button](/img/hardware/reset_button.jpg) +![Reset Button](/helios4/img/hardware/reset_button.jpg) !!! Important This button only resets the SoC and not the overall board. For instance it won't reset the HDD. @@ -74,7 +74,7 @@ Helios4 board provides a RESET push button (U16) to hard reset the SoC (System-O Helios4 board exposes on header J9 the SoC I2C Bus 1. Below is the header pin-out, the little arrow on the PCB indicates the ground pin. -![I2C Pinout](/img/hardware/i2c_pinout.png) +![I2C Pinout](/helios4/img/hardware/i2c_pinout.png) ## Power Consumption diff --git a/docs/i2c.md b/docs/helios4/i2c.md similarity index 94% rename from docs/i2c.md rename to docs/helios4/i2c.md index f724975..0a2b6da 100644 --- a/docs/i2c.md +++ b/docs/helios4/i2c.md @@ -1,7 +1,7 @@ This tutorial will explain how to connect and setup an I2C OLED screen to display System Status as show in the following captures : -![system status](/img/i2c/capture_01.png) -![system time](/img/i2c/capture_02.png) +![system status](/helios4/img/i2c/capture_01.png) +![system time](/helios4/img/i2c/capture_02.png) !!! info You can find I2C OLED display on Aliexpress.com. Search for "i2c oled 1.3". @@ -11,14 +11,14 @@ This tutorial will explain how to connect and setup an I2C OLED screen to displa The I2C interface on Helios4 board is located at header **J9** which exposes the SoC I2C Bus 1. Below is the header pin-out, the little arrow on the PCB indicates the GND pin. -![I2C Pinout](/img/hardware/i2c_pinout.png) +![I2C Pinout](/helios4/img/hardware/i2c_pinout.png) You will need to use Female to Female Jumper Wire (a.k.a Dupont Cable) to connect your display to Helios4 board. Connect matching pin on each side (GND to GND, VCC to VCC, SDA to SDA, etc...). Ideally you use cables of different colors to easily check that your wiring is correct. -![oled i2c wiring](/img/i2c/wiring_01.jpeg) -![board i2c wiring](/img/i2c/wiring_02.jpeg) +![oled i2c wiring](/helios4/img/i2c/wiring_01.jpeg) +![board i2c wiring](/helios4/img/i2c/wiring_02.jpeg) ### Check I2C Communication diff --git a/docs/img/cesa/cesa_block_diagram.png b/docs/helios4/img/cesa/cesa_block_diagram.png similarity index 100% rename from docs/img/cesa/cesa_block_diagram.png rename to docs/helios4/img/cesa/cesa_block_diagram.png diff --git a/docs/img/cesa/crypto_api_interfaces.png b/docs/helios4/img/cesa/crypto_api_interfaces.png similarity index 100% rename from docs/img/cesa/crypto_api_interfaces.png rename to docs/helios4/img/cesa/crypto_api_interfaces.png diff --git a/docs/img/gpio/gpio_pinout_j12.png b/docs/helios4/img/gpio/gpio_pinout_j12.png similarity index 100% rename from docs/img/gpio/gpio_pinout_j12.png rename to docs/helios4/img/gpio/gpio_pinout_j12.png diff --git a/docs/img/gpio/power_button_sch.png b/docs/helios4/img/gpio/power_button_sch.png similarity index 100% rename from docs/img/gpio/power_button_sch.png rename to docs/helios4/img/gpio/power_button_sch.png diff --git a/docs/img/hardware/board_legend.jpg b/docs/helios4/img/hardware/board_legend.jpg similarity index 100% rename from docs/img/hardware/board_legend.jpg rename to docs/helios4/img/hardware/board_legend.jpg diff --git a/docs/img/hardware/dipswitch_led_on.jpg b/docs/helios4/img/hardware/dipswitch_led_on.jpg similarity index 100% rename from docs/img/hardware/dipswitch_led_on.jpg rename to docs/helios4/img/hardware/dipswitch_led_on.jpg diff --git a/docs/img/hardware/dipswitch_modes.jpg b/docs/helios4/img/hardware/dipswitch_modes.jpg similarity index 100% rename from docs/img/hardware/dipswitch_modes.jpg rename to docs/helios4/img/hardware/dipswitch_modes.jpg diff --git a/docs/img/hardware/helios4_block_diagram.jpg b/docs/helios4/img/hardware/helios4_block_diagram.jpg similarity index 100% rename from docs/img/hardware/helios4_block_diagram.jpg rename to docs/helios4/img/hardware/helios4_block_diagram.jpg diff --git a/docs/img/hardware/i2c_pinout.png b/docs/helios4/img/hardware/i2c_pinout.png similarity index 100% rename from docs/img/hardware/i2c_pinout.png rename to docs/helios4/img/hardware/i2c_pinout.png diff --git a/docs/img/hardware/reset_button.jpg b/docs/helios4/img/hardware/reset_button.jpg similarity index 100% rename from docs/img/hardware/reset_button.jpg rename to docs/helios4/img/hardware/reset_button.jpg diff --git a/docs/img/hardware/soc_block_diagram.png b/docs/helios4/img/hardware/soc_block_diagram.png similarity index 100% rename from docs/img/hardware/soc_block_diagram.png rename to docs/helios4/img/hardware/soc_block_diagram.png diff --git a/docs/img/i2c/capture_01.png b/docs/helios4/img/i2c/capture_01.png similarity index 100% rename from docs/img/i2c/capture_01.png rename to docs/helios4/img/i2c/capture_01.png diff --git a/docs/img/i2c/capture_02.png b/docs/helios4/img/i2c/capture_02.png similarity index 100% rename from docs/img/i2c/capture_02.png rename to docs/helios4/img/i2c/capture_02.png diff --git a/docs/img/i2c/wiring_01.jpeg b/docs/helios4/img/i2c/wiring_01.jpeg similarity index 100% rename from docs/img/i2c/wiring_01.jpeg rename to docs/helios4/img/i2c/wiring_01.jpeg diff --git a/docs/img/i2c/wiring_02.jpeg b/docs/helios4/img/i2c/wiring_02.jpeg similarity index 100% rename from docs/img/i2c/wiring_02.jpeg rename to docs/helios4/img/i2c/wiring_02.jpeg diff --git a/docs/img/install/armbian-config.png b/docs/helios4/img/install/armbian-config.png similarity index 100% rename from docs/img/install/armbian-config.png rename to docs/helios4/img/install/armbian-config.png diff --git a/docs/img/install/armbian-config_ip-static.png b/docs/helios4/img/install/armbian-config_ip-static.png similarity index 100% rename from docs/img/install/armbian-config_ip-static.png rename to docs/helios4/img/install/armbian-config_ip-static.png diff --git a/docs/img/install/armbian-config_ip.png b/docs/helios4/img/install/armbian-config_ip.png similarity index 100% rename from docs/img/install/armbian-config_ip.png rename to docs/helios4/img/install/armbian-config_ip.png diff --git a/docs/img/install/armbian-config_network.png b/docs/helios4/img/install/armbian-config_network.png similarity index 100% rename from docs/img/install/armbian-config_network.png rename to docs/helios4/img/install/armbian-config_network.png diff --git a/docs/img/install/connections.png b/docs/helios4/img/install/connections.png similarity index 100% rename from docs/img/install/connections.png rename to docs/helios4/img/install/connections.png diff --git a/docs/img/install/console_cable.png b/docs/helios4/img/install/console_cable.png similarity index 100% rename from docs/img/install/console_cable.png rename to docs/helios4/img/install/console_cable.png diff --git a/docs/img/install/etcher_flash.png b/docs/helios4/img/install/etcher_flash.png similarity index 100% rename from docs/img/install/etcher_flash.png rename to docs/helios4/img/install/etcher_flash.png diff --git a/docs/img/install/first_login.png b/docs/helios4/img/install/first_login.png similarity index 100% rename from docs/img/install/first_login.png rename to docs/helios4/img/install/first_login.png diff --git a/docs/img/install/network_cable.jpg b/docs/helios4/img/install/network_cable.jpg similarity index 100% rename from docs/img/install/network_cable.jpg rename to docs/helios4/img/install/network_cable.jpg diff --git a/docs/img/install/network_config.png b/docs/helios4/img/install/network_config.png similarity index 100% rename from docs/img/install/network_config.png rename to docs/helios4/img/install/network_config.png diff --git a/docs/img/install/picocom.png b/docs/helios4/img/install/picocom.png similarity index 100% rename from docs/img/install/picocom.png rename to docs/helios4/img/install/picocom.png diff --git a/docs/img/install/putty_config.png b/docs/helios4/img/install/putty_config.png similarity index 100% rename from docs/img/install/putty_config.png rename to docs/helios4/img/install/putty_config.png diff --git a/docs/img/install/putty_connect.png b/docs/helios4/img/install/putty_connect.png similarity index 100% rename from docs/img/install/putty_connect.png rename to docs/helios4/img/install/putty_connect.png diff --git a/docs/img/install/putty_ssh.png b/docs/helios4/img/install/putty_ssh.png similarity index 100% rename from docs/img/install/putty_ssh.png rename to docs/helios4/img/install/putty_ssh.png diff --git a/docs/img/install/recommended_sdcard.jpg b/docs/helios4/img/install/recommended_sdcard.jpg similarity index 100% rename from docs/img/install/recommended_sdcard.jpg rename to docs/helios4/img/install/recommended_sdcard.jpg diff --git a/docs/img/install/softy.png b/docs/helios4/img/install/softy.png similarity index 100% rename from docs/img/install/softy.png rename to docs/helios4/img/install/softy.png diff --git a/docs/img/install/ssh_login.png b/docs/helios4/img/install/ssh_login.png similarity index 100% rename from docs/img/install/ssh_login.png rename to docs/helios4/img/install/ssh_login.png diff --git a/docs/img/intro/helios4.jpg b/docs/helios4/img/intro/helios4.jpg similarity index 100% rename from docs/img/intro/helios4.jpg rename to docs/helios4/img/intro/helios4.jpg diff --git a/docs/img/kit/assembly_anim1.gif b/docs/helios4/img/kit/assembly_anim1.gif similarity index 100% rename from docs/img/kit/assembly_anim1.gif rename to docs/helios4/img/kit/assembly_anim1.gif diff --git a/docs/img/kit/assembly_anim2.gif b/docs/helios4/img/kit/assembly_anim2.gif similarity index 100% rename from docs/img/kit/assembly_anim2.gif rename to docs/helios4/img/kit/assembly_anim2.gif diff --git a/docs/img/kit/assembly_pic1.jpg b/docs/helios4/img/kit/assembly_pic1.jpg similarity index 100% rename from docs/img/kit/assembly_pic1.jpg rename to docs/helios4/img/kit/assembly_pic1.jpg diff --git a/docs/img/kit/assembly_pic10.jpg b/docs/helios4/img/kit/assembly_pic10.jpg similarity index 100% rename from docs/img/kit/assembly_pic10.jpg rename to docs/helios4/img/kit/assembly_pic10.jpg diff --git a/docs/img/kit/assembly_pic11.jpg b/docs/helios4/img/kit/assembly_pic11.jpg similarity index 100% rename from docs/img/kit/assembly_pic11.jpg rename to docs/helios4/img/kit/assembly_pic11.jpg diff --git a/docs/img/kit/assembly_pic11_help.jpg b/docs/helios4/img/kit/assembly_pic11_help.jpg similarity index 100% rename from docs/img/kit/assembly_pic11_help.jpg rename to docs/helios4/img/kit/assembly_pic11_help.jpg diff --git a/docs/img/kit/assembly_pic12.jpg b/docs/helios4/img/kit/assembly_pic12.jpg similarity index 100% rename from docs/img/kit/assembly_pic12.jpg rename to docs/helios4/img/kit/assembly_pic12.jpg diff --git a/docs/img/kit/assembly_pic13.jpg b/docs/helios4/img/kit/assembly_pic13.jpg similarity index 100% rename from docs/img/kit/assembly_pic13.jpg rename to docs/helios4/img/kit/assembly_pic13.jpg diff --git a/docs/img/kit/assembly_pic14.jpg b/docs/helios4/img/kit/assembly_pic14.jpg similarity index 100% rename from docs/img/kit/assembly_pic14.jpg rename to docs/helios4/img/kit/assembly_pic14.jpg diff --git a/docs/img/kit/assembly_pic15.jpg b/docs/helios4/img/kit/assembly_pic15.jpg similarity index 100% rename from docs/img/kit/assembly_pic15.jpg rename to docs/helios4/img/kit/assembly_pic15.jpg diff --git a/docs/img/kit/assembly_pic16.jpg b/docs/helios4/img/kit/assembly_pic16.jpg similarity index 100% rename from docs/img/kit/assembly_pic16.jpg rename to docs/helios4/img/kit/assembly_pic16.jpg diff --git a/docs/img/kit/assembly_pic17.jpg b/docs/helios4/img/kit/assembly_pic17.jpg similarity index 100% rename from docs/img/kit/assembly_pic17.jpg rename to docs/helios4/img/kit/assembly_pic17.jpg diff --git a/docs/img/kit/assembly_pic18.jpg b/docs/helios4/img/kit/assembly_pic18.jpg similarity index 100% rename from docs/img/kit/assembly_pic18.jpg rename to docs/helios4/img/kit/assembly_pic18.jpg diff --git a/docs/img/kit/assembly_pic19.jpg b/docs/helios4/img/kit/assembly_pic19.jpg similarity index 100% rename from docs/img/kit/assembly_pic19.jpg rename to docs/helios4/img/kit/assembly_pic19.jpg diff --git a/docs/img/kit/assembly_pic2.jpg b/docs/helios4/img/kit/assembly_pic2.jpg similarity index 100% rename from docs/img/kit/assembly_pic2.jpg rename to docs/helios4/img/kit/assembly_pic2.jpg diff --git a/docs/img/kit/assembly_pic20.jpg b/docs/helios4/img/kit/assembly_pic20.jpg similarity index 100% rename from docs/img/kit/assembly_pic20.jpg rename to docs/helios4/img/kit/assembly_pic20.jpg diff --git a/docs/img/kit/assembly_pic21.jpg b/docs/helios4/img/kit/assembly_pic21.jpg similarity index 100% rename from docs/img/kit/assembly_pic21.jpg rename to docs/helios4/img/kit/assembly_pic21.jpg diff --git a/docs/img/kit/assembly_pic22.jpg b/docs/helios4/img/kit/assembly_pic22.jpg similarity index 100% rename from docs/img/kit/assembly_pic22.jpg rename to docs/helios4/img/kit/assembly_pic22.jpg diff --git a/docs/img/kit/assembly_pic23.jpg b/docs/helios4/img/kit/assembly_pic23.jpg similarity index 100% rename from docs/img/kit/assembly_pic23.jpg rename to docs/helios4/img/kit/assembly_pic23.jpg diff --git a/docs/img/kit/assembly_pic24.jpg b/docs/helios4/img/kit/assembly_pic24.jpg similarity index 100% rename from docs/img/kit/assembly_pic24.jpg rename to docs/helios4/img/kit/assembly_pic24.jpg diff --git a/docs/img/kit/assembly_pic25.jpg b/docs/helios4/img/kit/assembly_pic25.jpg similarity index 100% rename from docs/img/kit/assembly_pic25.jpg rename to docs/helios4/img/kit/assembly_pic25.jpg diff --git a/docs/img/kit/assembly_pic26.jpg b/docs/helios4/img/kit/assembly_pic26.jpg similarity index 100% rename from docs/img/kit/assembly_pic26.jpg rename to docs/helios4/img/kit/assembly_pic26.jpg diff --git a/docs/img/kit/assembly_pic27.jpg b/docs/helios4/img/kit/assembly_pic27.jpg similarity index 100% rename from docs/img/kit/assembly_pic27.jpg rename to docs/helios4/img/kit/assembly_pic27.jpg diff --git a/docs/img/kit/assembly_pic28.jpg b/docs/helios4/img/kit/assembly_pic28.jpg similarity index 100% rename from docs/img/kit/assembly_pic28.jpg rename to docs/helios4/img/kit/assembly_pic28.jpg diff --git a/docs/img/kit/assembly_pic29.jpg b/docs/helios4/img/kit/assembly_pic29.jpg similarity index 100% rename from docs/img/kit/assembly_pic29.jpg rename to docs/helios4/img/kit/assembly_pic29.jpg diff --git a/docs/img/kit/assembly_pic3.jpg b/docs/helios4/img/kit/assembly_pic3.jpg similarity index 100% rename from docs/img/kit/assembly_pic3.jpg rename to docs/helios4/img/kit/assembly_pic3.jpg diff --git a/docs/img/kit/assembly_pic30.jpg b/docs/helios4/img/kit/assembly_pic30.jpg similarity index 100% rename from docs/img/kit/assembly_pic30.jpg rename to docs/helios4/img/kit/assembly_pic30.jpg diff --git a/docs/img/kit/assembly_pic31.jpg b/docs/helios4/img/kit/assembly_pic31.jpg similarity index 100% rename from docs/img/kit/assembly_pic31.jpg rename to docs/helios4/img/kit/assembly_pic31.jpg diff --git a/docs/img/kit/assembly_pic32.jpg b/docs/helios4/img/kit/assembly_pic32.jpg similarity index 100% rename from docs/img/kit/assembly_pic32.jpg rename to docs/helios4/img/kit/assembly_pic32.jpg diff --git a/docs/img/kit/assembly_pic33.jpg b/docs/helios4/img/kit/assembly_pic33.jpg similarity index 100% rename from docs/img/kit/assembly_pic33.jpg rename to docs/helios4/img/kit/assembly_pic33.jpg diff --git a/docs/img/kit/assembly_pic34.jpg b/docs/helios4/img/kit/assembly_pic34.jpg similarity index 100% rename from docs/img/kit/assembly_pic34.jpg rename to docs/helios4/img/kit/assembly_pic34.jpg diff --git a/docs/img/kit/assembly_pic35.jpg b/docs/helios4/img/kit/assembly_pic35.jpg similarity index 100% rename from docs/img/kit/assembly_pic35.jpg rename to docs/helios4/img/kit/assembly_pic35.jpg diff --git a/docs/img/kit/assembly_pic35b.jpg b/docs/helios4/img/kit/assembly_pic35b.jpg similarity index 100% rename from docs/img/kit/assembly_pic35b.jpg rename to docs/helios4/img/kit/assembly_pic35b.jpg diff --git a/docs/img/kit/assembly_pic36.jpg b/docs/helios4/img/kit/assembly_pic36.jpg similarity index 100% rename from docs/img/kit/assembly_pic36.jpg rename to docs/helios4/img/kit/assembly_pic36.jpg diff --git a/docs/img/kit/assembly_pic37.jpg b/docs/helios4/img/kit/assembly_pic37.jpg similarity index 100% rename from docs/img/kit/assembly_pic37.jpg rename to docs/helios4/img/kit/assembly_pic37.jpg diff --git a/docs/img/kit/assembly_pic38.jpg b/docs/helios4/img/kit/assembly_pic38.jpg similarity index 100% rename from docs/img/kit/assembly_pic38.jpg rename to docs/helios4/img/kit/assembly_pic38.jpg diff --git a/docs/img/kit/assembly_pic39.jpg b/docs/helios4/img/kit/assembly_pic39.jpg similarity index 100% rename from docs/img/kit/assembly_pic39.jpg rename to docs/helios4/img/kit/assembly_pic39.jpg diff --git a/docs/img/kit/assembly_pic4.jpg b/docs/helios4/img/kit/assembly_pic4.jpg similarity index 100% rename from docs/img/kit/assembly_pic4.jpg rename to docs/helios4/img/kit/assembly_pic4.jpg diff --git a/docs/img/kit/assembly_pic40.jpg b/docs/helios4/img/kit/assembly_pic40.jpg similarity index 100% rename from docs/img/kit/assembly_pic40.jpg rename to docs/helios4/img/kit/assembly_pic40.jpg diff --git a/docs/img/kit/assembly_pic41.jpg b/docs/helios4/img/kit/assembly_pic41.jpg similarity index 100% rename from docs/img/kit/assembly_pic41.jpg rename to docs/helios4/img/kit/assembly_pic41.jpg diff --git a/docs/img/kit/assembly_pic42.jpg b/docs/helios4/img/kit/assembly_pic42.jpg similarity index 100% rename from docs/img/kit/assembly_pic42.jpg rename to docs/helios4/img/kit/assembly_pic42.jpg diff --git a/docs/img/kit/assembly_pic43.jpg b/docs/helios4/img/kit/assembly_pic43.jpg similarity index 100% rename from docs/img/kit/assembly_pic43.jpg rename to docs/helios4/img/kit/assembly_pic43.jpg diff --git a/docs/img/kit/assembly_pic44.jpg b/docs/helios4/img/kit/assembly_pic44.jpg similarity index 100% rename from docs/img/kit/assembly_pic44.jpg rename to docs/helios4/img/kit/assembly_pic44.jpg diff --git a/docs/img/kit/assembly_pic45.jpg b/docs/helios4/img/kit/assembly_pic45.jpg similarity index 100% rename from docs/img/kit/assembly_pic45.jpg rename to docs/helios4/img/kit/assembly_pic45.jpg diff --git a/docs/img/kit/assembly_pic46.jpg b/docs/helios4/img/kit/assembly_pic46.jpg similarity index 100% rename from docs/img/kit/assembly_pic46.jpg rename to docs/helios4/img/kit/assembly_pic46.jpg diff --git a/docs/img/kit/assembly_pic47.jpg b/docs/helios4/img/kit/assembly_pic47.jpg similarity index 100% rename from docs/img/kit/assembly_pic47.jpg rename to docs/helios4/img/kit/assembly_pic47.jpg diff --git a/docs/img/kit/assembly_pic48.jpg b/docs/helios4/img/kit/assembly_pic48.jpg similarity index 100% rename from docs/img/kit/assembly_pic48.jpg rename to docs/helios4/img/kit/assembly_pic48.jpg diff --git a/docs/img/kit/assembly_pic49.jpg b/docs/helios4/img/kit/assembly_pic49.jpg similarity index 100% rename from docs/img/kit/assembly_pic49.jpg rename to docs/helios4/img/kit/assembly_pic49.jpg diff --git a/docs/img/kit/assembly_pic5.jpg b/docs/helios4/img/kit/assembly_pic5.jpg similarity index 100% rename from docs/img/kit/assembly_pic5.jpg rename to docs/helios4/img/kit/assembly_pic5.jpg diff --git a/docs/img/kit/assembly_pic50.jpg b/docs/helios4/img/kit/assembly_pic50.jpg similarity index 100% rename from docs/img/kit/assembly_pic50.jpg rename to docs/helios4/img/kit/assembly_pic50.jpg diff --git a/docs/img/kit/assembly_pic51.jpg b/docs/helios4/img/kit/assembly_pic51.jpg similarity index 100% rename from docs/img/kit/assembly_pic51.jpg rename to docs/helios4/img/kit/assembly_pic51.jpg diff --git a/docs/img/kit/assembly_pic52.jpg b/docs/helios4/img/kit/assembly_pic52.jpg similarity index 100% rename from docs/img/kit/assembly_pic52.jpg rename to docs/helios4/img/kit/assembly_pic52.jpg diff --git a/docs/img/kit/assembly_pic53.jpg b/docs/helios4/img/kit/assembly_pic53.jpg similarity index 100% rename from docs/img/kit/assembly_pic53.jpg rename to docs/helios4/img/kit/assembly_pic53.jpg diff --git a/docs/img/kit/assembly_pic54.jpg b/docs/helios4/img/kit/assembly_pic54.jpg similarity index 100% rename from docs/img/kit/assembly_pic54.jpg rename to docs/helios4/img/kit/assembly_pic54.jpg diff --git a/docs/img/kit/assembly_pic55.jpg b/docs/helios4/img/kit/assembly_pic55.jpg similarity index 100% rename from docs/img/kit/assembly_pic55.jpg rename to docs/helios4/img/kit/assembly_pic55.jpg diff --git a/docs/img/kit/assembly_pic56.jpg b/docs/helios4/img/kit/assembly_pic56.jpg similarity index 100% rename from docs/img/kit/assembly_pic56.jpg rename to docs/helios4/img/kit/assembly_pic56.jpg diff --git a/docs/img/kit/assembly_pic57.jpg b/docs/helios4/img/kit/assembly_pic57.jpg similarity index 100% rename from docs/img/kit/assembly_pic57.jpg rename to docs/helios4/img/kit/assembly_pic57.jpg diff --git a/docs/img/kit/assembly_pic6.jpg b/docs/helios4/img/kit/assembly_pic6.jpg similarity index 100% rename from docs/img/kit/assembly_pic6.jpg rename to docs/helios4/img/kit/assembly_pic6.jpg diff --git a/docs/img/kit/assembly_pic7.jpg b/docs/helios4/img/kit/assembly_pic7.jpg similarity index 100% rename from docs/img/kit/assembly_pic7.jpg rename to docs/helios4/img/kit/assembly_pic7.jpg diff --git a/docs/img/kit/assembly_pic8.jpg b/docs/helios4/img/kit/assembly_pic8.jpg similarity index 100% rename from docs/img/kit/assembly_pic8.jpg rename to docs/helios4/img/kit/assembly_pic8.jpg diff --git a/docs/img/kit/assembly_pic9.jpg b/docs/helios4/img/kit/assembly_pic9.jpg similarity index 100% rename from docs/img/kit/assembly_pic9.jpg rename to docs/helios4/img/kit/assembly_pic9.jpg diff --git a/docs/img/kit/dipswitch_mode.jpg b/docs/helios4/img/kit/dipswitch_mode.jpg similarity index 100% rename from docs/img/kit/dipswitch_mode.jpg rename to docs/helios4/img/kit/dipswitch_mode.jpg diff --git a/docs/img/kit/i2c_board_pinout.jpg b/docs/helios4/img/kit/i2c_board_pinout.jpg similarity index 100% rename from docs/img/kit/i2c_board_pinout.jpg rename to docs/helios4/img/kit/i2c_board_pinout.jpg diff --git a/docs/img/kit/i2c_display_pinout.png b/docs/helios4/img/kit/i2c_display_pinout.png similarity index 100% rename from docs/img/kit/i2c_display_pinout.png rename to docs/helios4/img/kit/i2c_display_pinout.png diff --git a/docs/img/kit/oled_set.jpg b/docs/helios4/img/kit/oled_set.jpg similarity index 100% rename from docs/img/kit/oled_set.jpg rename to docs/helios4/img/kit/oled_set.jpg diff --git a/docs/img/led/dipswitch_led_off.png b/docs/helios4/img/led/dipswitch_led_off.png similarity index 100% rename from docs/img/led/dipswitch_led_off.png rename to docs/helios4/img/led/dipswitch_led_off.png diff --git a/docs/img/led/gpio_pinout_j18.png b/docs/helios4/img/led/gpio_pinout_j18.png similarity index 100% rename from docs/img/led/gpio_pinout_j18.png rename to docs/helios4/img/led/gpio_pinout_j18.png diff --git a/docs/img/led/led_expansion_wiring_diagram.png b/docs/helios4/img/led/led_expansion_wiring_diagram.png similarity index 100% rename from docs/img/led/led_expansion_wiring_diagram.png rename to docs/helios4/img/led/led_expansion_wiring_diagram.png diff --git a/docs/img/led/led_location.png b/docs/helios4/img/led/led_location.png similarity index 100% rename from docs/img/led/led_location.png rename to docs/helios4/img/led/led_location.png diff --git a/docs/img/nextcloud/dashboard.png b/docs/helios4/img/nextcloud/dashboard.png similarity index 100% rename from docs/img/nextcloud/dashboard.png rename to docs/helios4/img/nextcloud/dashboard.png diff --git a/docs/img/nextcloud/login.png b/docs/helios4/img/nextcloud/login.png similarity index 100% rename from docs/img/nextcloud/login.png rename to docs/helios4/img/nextcloud/login.png diff --git a/docs/img/omv/create_raid10.png b/docs/helios4/img/omv/create_raid10.png similarity index 100% rename from docs/img/omv/create_raid10.png rename to docs/helios4/img/omv/create_raid10.png diff --git a/docs/img/omv/dashboard.png b/docs/helios4/img/omv/dashboard.png similarity index 100% rename from docs/img/omv/dashboard.png rename to docs/helios4/img/omv/dashboard.png diff --git a/docs/img/omv/disk_wipe1.png b/docs/helios4/img/omv/disk_wipe1.png similarity index 100% rename from docs/img/omv/disk_wipe1.png rename to docs/helios4/img/omv/disk_wipe1.png diff --git a/docs/img/omv/disk_wipe2.png b/docs/helios4/img/omv/disk_wipe2.png similarity index 100% rename from docs/img/omv/disk_wipe2.png rename to docs/helios4/img/omv/disk_wipe2.png diff --git a/docs/img/omv/folder_add.png b/docs/helios4/img/omv/folder_add.png similarity index 100% rename from docs/img/omv/folder_add.png rename to docs/helios4/img/omv/folder_add.png diff --git a/docs/img/omv/folder_list.png b/docs/helios4/img/omv/folder_list.png similarity index 100% rename from docs/img/omv/folder_list.png rename to docs/helios4/img/omv/folder_list.png diff --git a/docs/img/omv/format_process.png b/docs/helios4/img/omv/format_process.png similarity index 100% rename from docs/img/omv/format_process.png rename to docs/helios4/img/omv/format_process.png diff --git a/docs/img/omv/format_status.png b/docs/helios4/img/omv/format_status.png similarity index 100% rename from docs/img/omv/format_status.png rename to docs/helios4/img/omv/format_status.png diff --git a/docs/img/omv/format_volume.png b/docs/helios4/img/omv/format_volume.png similarity index 100% rename from docs/img/omv/format_volume.png rename to docs/helios4/img/omv/format_volume.png diff --git a/docs/img/omv/install-1.png b/docs/helios4/img/omv/install-1.png similarity index 100% rename from docs/img/omv/install-1.png rename to docs/helios4/img/omv/install-1.png diff --git a/docs/img/omv/install-2.png b/docs/helios4/img/omv/install-2.png similarity index 100% rename from docs/img/omv/install-2.png rename to docs/helios4/img/omv/install-2.png diff --git a/docs/img/omv/install-3.png b/docs/helios4/img/omv/install-3.png similarity index 100% rename from docs/img/omv/install-3.png rename to docs/helios4/img/omv/install-3.png diff --git a/docs/img/omv/install-4.png b/docs/helios4/img/omv/install-4.png similarity index 100% rename from docs/img/omv/install-4.png rename to docs/helios4/img/omv/install-4.png diff --git a/docs/img/omv/install-5.png b/docs/helios4/img/omv/install-5.png similarity index 100% rename from docs/img/omv/install-5.png rename to docs/helios4/img/omv/install-5.png diff --git a/docs/img/omv/login.png b/docs/helios4/img/omv/login.png similarity index 100% rename from docs/img/omv/login.png rename to docs/helios4/img/omv/login.png diff --git a/docs/img/omv/lvm_add-lv.png b/docs/helios4/img/omv/lvm_add-lv.png similarity index 100% rename from docs/img/omv/lvm_add-lv.png rename to docs/helios4/img/omv/lvm_add-lv.png diff --git a/docs/img/omv/lvm_add-pv.png b/docs/helios4/img/omv/lvm_add-pv.png similarity index 100% rename from docs/img/omv/lvm_add-pv.png rename to docs/helios4/img/omv/lvm_add-pv.png diff --git a/docs/img/omv/lvm_add-vg.png b/docs/helios4/img/omv/lvm_add-vg.png similarity index 100% rename from docs/img/omv/lvm_add-vg.png rename to docs/helios4/img/omv/lvm_add-vg.png diff --git a/docs/img/omv/lvm_lv-volumes.png b/docs/helios4/img/omv/lvm_lv-volumes.png similarity index 100% rename from docs/img/omv/lvm_lv-volumes.png rename to docs/helios4/img/omv/lvm_lv-volumes.png diff --git a/docs/img/omv/mount_volume.png b/docs/helios4/img/omv/mount_volume.png similarity index 100% rename from docs/img/omv/mount_volume.png rename to docs/helios4/img/omv/mount_volume.png diff --git a/docs/img/omv/plugin_install.png b/docs/helios4/img/omv/plugin_install.png similarity index 100% rename from docs/img/omv/plugin_install.png rename to docs/helios4/img/omv/plugin_install.png diff --git a/docs/img/omv/plugin_list.png b/docs/helios4/img/omv/plugin_list.png similarity index 100% rename from docs/img/omv/plugin_list.png rename to docs/helios4/img/omv/plugin_list.png diff --git a/docs/img/omv/plugin_lvm.png b/docs/helios4/img/omv/plugin_lvm.png similarity index 100% rename from docs/img/omv/plugin_lvm.png rename to docs/helios4/img/omv/plugin_lvm.png diff --git a/docs/img/omv/plugin_update.png b/docs/helios4/img/omv/plugin_update.png similarity index 100% rename from docs/img/omv/plugin_update.png rename to docs/helios4/img/omv/plugin_update.png diff --git a/docs/img/omv/raid10_active.png b/docs/helios4/img/omv/raid10_active.png similarity index 100% rename from docs/img/omv/raid10_active.png rename to docs/helios4/img/omv/raid10_active.png diff --git a/docs/img/omv/save_settings.png b/docs/helios4/img/omv/save_settings.png similarity index 100% rename from docs/img/omv/save_settings.png rename to docs/helios4/img/omv/save_settings.png diff --git a/docs/img/omv/share_add.png b/docs/helios4/img/omv/share_add.png similarity index 100% rename from docs/img/omv/share_add.png rename to docs/helios4/img/omv/share_add.png diff --git a/docs/img/omv/share_anonymous.png b/docs/helios4/img/omv/share_anonymous.png similarity index 100% rename from docs/img/omv/share_anonymous.png rename to docs/helios4/img/omv/share_anonymous.png diff --git a/docs/img/omv/share_credential.png b/docs/helios4/img/omv/share_credential.png similarity index 100% rename from docs/img/omv/share_credential.png rename to docs/helios4/img/omv/share_credential.png diff --git a/docs/img/omv/share_enable.png b/docs/helios4/img/omv/share_enable.png similarity index 100% rename from docs/img/omv/share_enable.png rename to docs/helios4/img/omv/share_enable.png diff --git a/docs/img/omv/share_file.png b/docs/helios4/img/omv/share_file.png similarity index 100% rename from docs/img/omv/share_file.png rename to docs/helios4/img/omv/share_file.png diff --git a/docs/img/omv/share_list.png b/docs/helios4/img/omv/share_list.png similarity index 100% rename from docs/img/omv/share_list.png rename to docs/helios4/img/omv/share_list.png diff --git a/docs/img/omv/share_network.png b/docs/helios4/img/omv/share_network.png similarity index 100% rename from docs/img/omv/share_network.png rename to docs/helios4/img/omv/share_network.png diff --git a/docs/img/omv/syncing_raid10.png b/docs/helios4/img/omv/syncing_raid10.png similarity index 100% rename from docs/img/omv/syncing_raid10.png rename to docs/helios4/img/omv/syncing_raid10.png diff --git a/docs/img/omv/user_create.png b/docs/helios4/img/omv/user_create.png similarity index 100% rename from docs/img/omv/user_create.png rename to docs/helios4/img/omv/user_create.png diff --git a/docs/img/omv/user_group.png b/docs/helios4/img/omv/user_group.png similarity index 100% rename from docs/img/omv/user_group.png rename to docs/helios4/img/omv/user_group.png diff --git a/docs/img/omv/windows_access.png b/docs/helios4/img/omv/windows_access.png similarity index 100% rename from docs/img/omv/windows_access.png rename to docs/helios4/img/omv/windows_access.png diff --git a/docs/img/omv/windows_credential.png b/docs/helios4/img/omv/windows_credential.png similarity index 100% rename from docs/img/omv/windows_credential.png rename to docs/helios4/img/omv/windows_credential.png diff --git a/docs/img/omv/windows_discovery.png b/docs/helios4/img/omv/windows_discovery.png similarity index 100% rename from docs/img/omv/windows_discovery.png rename to docs/helios4/img/omv/windows_discovery.png diff --git a/docs/img/omv/windows_netdrive.png b/docs/helios4/img/omv/windows_netdrive.png similarity index 100% rename from docs/img/omv/windows_netdrive.png rename to docs/helios4/img/omv/windows_netdrive.png diff --git a/docs/img/omv/windows_share.png b/docs/helios4/img/omv/windows_share.png similarity index 100% rename from docs/img/omv/windows_share.png rename to docs/helios4/img/omv/windows_share.png diff --git a/docs/img/os/debian10.png b/docs/helios4/img/os/debian10.png similarity index 100% rename from docs/img/os/debian10.png rename to docs/helios4/img/os/debian10.png diff --git a/docs/img/os/debian9.png b/docs/helios4/img/os/debian9.png similarity index 100% rename from docs/img/os/debian9.png rename to docs/helios4/img/os/debian9.png diff --git a/docs/img/os/omv.png b/docs/helios4/img/os/omv.png similarity index 100% rename from docs/img/os/omv.png rename to docs/helios4/img/os/omv.png diff --git a/docs/img/os/syncloud.png b/docs/helios4/img/os/syncloud.png similarity index 100% rename from docs/img/os/syncloud.png rename to docs/helios4/img/os/syncloud.png diff --git a/docs/img/os/ubuntu.png b/docs/helios4/img/os/ubuntu.png similarity index 100% rename from docs/img/os/ubuntu.png rename to docs/helios4/img/os/ubuntu.png diff --git a/docs/img/pwm/fan_connector.png b/docs/helios4/img/pwm/fan_connector.png similarity index 100% rename from docs/img/pwm/fan_connector.png rename to docs/helios4/img/pwm/fan_connector.png diff --git a/docs/img/pwm/fan_control_schematic_rev1_1.png b/docs/helios4/img/pwm/fan_control_schematic_rev1_1.png similarity index 100% rename from docs/img/pwm/fan_control_schematic_rev1_1.png rename to docs/helios4/img/pwm/fan_control_schematic_rev1_1.png diff --git a/docs/img/pwm/fan_control_schematic_rev1_2.png b/docs/helios4/img/pwm/fan_control_schematic_rev1_2.png similarity index 100% rename from docs/img/pwm/fan_control_schematic_rev1_2.png rename to docs/helios4/img/pwm/fan_control_schematic_rev1_2.png diff --git a/docs/img/pwm/fan_duty_cycle_formula.png b/docs/helios4/img/pwm/fan_duty_cycle_formula.png similarity index 100% rename from docs/img/pwm/fan_duty_cycle_formula.png rename to docs/helios4/img/pwm/fan_duty_cycle_formula.png diff --git a/docs/img/pwm/fan_speed_comparison.png b/docs/helios4/img/pwm/fan_speed_comparison.png similarity index 100% rename from docs/img/pwm/fan_speed_comparison.png rename to docs/helios4/img/pwm/fan_speed_comparison.png diff --git a/docs/img/pwm/fan_speed_graph_type_a_fan.png b/docs/helios4/img/pwm/fan_speed_graph_type_a_fan.png similarity index 100% rename from docs/img/pwm/fan_speed_graph_type_a_fan.png rename to docs/helios4/img/pwm/fan_speed_graph_type_a_fan.png diff --git a/docs/img/pwm/fan_speed_graph_type_a_fan_linux.png b/docs/helios4/img/pwm/fan_speed_graph_type_a_fan_linux.png similarity index 100% rename from docs/img/pwm/fan_speed_graph_type_a_fan_linux.png rename to docs/helios4/img/pwm/fan_speed_graph_type_a_fan_linux.png diff --git a/docs/img/pwm/fan_speed_graph_type_c_fan.png b/docs/helios4/img/pwm/fan_speed_graph_type_c_fan.png similarity index 100% rename from docs/img/pwm/fan_speed_graph_type_c_fan.png rename to docs/helios4/img/pwm/fan_speed_graph_type_c_fan.png diff --git a/docs/img/pwm/fan_speed_graph_type_c_fan_linux.png b/docs/helios4/img/pwm/fan_speed_graph_type_c_fan_linux.png similarity index 100% rename from docs/img/pwm/fan_speed_graph_type_c_fan_linux.png rename to docs/helios4/img/pwm/fan_speed_graph_type_c_fan_linux.png diff --git a/docs/img/pwm/fan_type_a_curve.jpg b/docs/helios4/img/pwm/fan_type_a_curve.jpg similarity index 100% rename from docs/img/pwm/fan_type_a_curve.jpg rename to docs/helios4/img/pwm/fan_type_a_curve.jpg diff --git a/docs/img/pwm/fan_type_a_photo.jpg b/docs/helios4/img/pwm/fan_type_a_photo.jpg similarity index 100% rename from docs/img/pwm/fan_type_a_photo.jpg rename to docs/helios4/img/pwm/fan_type_a_photo.jpg diff --git a/docs/img/pwm/fan_type_b_curve.jpg b/docs/helios4/img/pwm/fan_type_b_curve.jpg similarity index 100% rename from docs/img/pwm/fan_type_b_curve.jpg rename to docs/helios4/img/pwm/fan_type_b_curve.jpg diff --git a/docs/img/pwm/fan_type_c_curve.jpg b/docs/helios4/img/pwm/fan_type_c_curve.jpg similarity index 100% rename from docs/img/pwm/fan_type_c_curve.jpg rename to docs/helios4/img/pwm/fan_type_c_curve.jpg diff --git a/docs/img/pwm/fan_type_c_photo.jpg b/docs/helios4/img/pwm/fan_type_c_photo.jpg similarity index 100% rename from docs/img/pwm/fan_type_c_photo.jpg rename to docs/helios4/img/pwm/fan_type_c_photo.jpg diff --git a/docs/img/pwm/pwm_duty_cycle_graph.png b/docs/helios4/img/pwm/pwm_duty_cycle_graph.png similarity index 100% rename from docs/img/pwm/pwm_duty_cycle_graph.png rename to docs/helios4/img/pwm/pwm_duty_cycle_graph.png diff --git a/docs/img/sdcard/kingston_16gb.jpg b/docs/helios4/img/sdcard/kingston_16gb.jpg similarity index 100% rename from docs/img/sdcard/kingston_16gb.jpg rename to docs/helios4/img/sdcard/kingston_16gb.jpg diff --git a/docs/img/sdcard/samsung_evo_plus_32gb.jpg b/docs/helios4/img/sdcard/samsung_evo_plus_32gb.jpg similarity index 100% rename from docs/img/sdcard/samsung_evo_plus_32gb.jpg rename to docs/helios4/img/sdcard/samsung_evo_plus_32gb.jpg diff --git a/docs/img/sdcard/sandisk_extreme_32gb.png b/docs/helios4/img/sdcard/sandisk_extreme_32gb.png similarity index 100% rename from docs/img/sdcard/sandisk_extreme_32gb.png rename to docs/helios4/img/sdcard/sandisk_extreme_32gb.png diff --git a/docs/img/sdcard/sandisk_extreme_pro_32gb.png b/docs/helios4/img/sdcard/sandisk_extreme_pro_32gb.png similarity index 100% rename from docs/img/sdcard/sandisk_extreme_pro_32gb.png rename to docs/helios4/img/sdcard/sandisk_extreme_pro_32gb.png diff --git a/docs/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg b/docs/helios4/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg similarity index 100% rename from docs/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg rename to docs/helios4/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg diff --git a/docs/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg b/docs/helios4/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg similarity index 100% rename from docs/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg rename to docs/helios4/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg diff --git a/docs/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg b/docs/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg similarity index 100% rename from docs/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg rename to docs/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg diff --git a/docs/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg b/docs/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg similarity index 100% rename from docs/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg rename to docs/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg diff --git a/docs/img/sdcard/strontium_nitro_16gb.jpg b/docs/helios4/img/sdcard/strontium_nitro_16gb.jpg similarity index 100% rename from docs/img/sdcard/strontium_nitro_16gb.jpg rename to docs/helios4/img/sdcard/strontium_nitro_16gb.jpg diff --git a/docs/img/sdcard/test_result_samsung_evo_plus_32gb.png b/docs/helios4/img/sdcard/test_result_samsung_evo_plus_32gb.png similarity index 100% rename from docs/img/sdcard/test_result_samsung_evo_plus_32gb.png rename to docs/helios4/img/sdcard/test_result_samsung_evo_plus_32gb.png diff --git a/docs/img/sdcard/test_result_sandisk_extreme_32gb.png b/docs/helios4/img/sdcard/test_result_sandisk_extreme_32gb.png similarity index 100% rename from docs/img/sdcard/test_result_sandisk_extreme_32gb.png rename to docs/helios4/img/sdcard/test_result_sandisk_extreme_32gb.png diff --git a/docs/img/sdcard/test_result_sandisk_extreme_pro_32gb.png b/docs/helios4/img/sdcard/test_result_sandisk_extreme_pro_32gb.png similarity index 100% rename from docs/img/sdcard/test_result_sandisk_extreme_pro_32gb.png rename to docs/helios4/img/sdcard/test_result_sandisk_extreme_pro_32gb.png diff --git a/docs/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png b/docs/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png similarity index 100% rename from docs/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png rename to docs/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png diff --git a/docs/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png b/docs/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png similarity index 100% rename from docs/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png rename to docs/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png diff --git a/docs/img/sdcard/test_result_strontium_nitro_16gb.png b/docs/helios4/img/sdcard/test_result_strontium_nitro_16gb.png similarity index 100% rename from docs/img/sdcard/test_result_strontium_nitro_16gb.png rename to docs/helios4/img/sdcard/test_result_strontium_nitro_16gb.png diff --git a/docs/img/sdcard/test_result_transcend_premium_8gb.png b/docs/helios4/img/sdcard/test_result_transcend_premium_8gb.png similarity index 100% rename from docs/img/sdcard/test_result_transcend_premium_8gb.png rename to docs/helios4/img/sdcard/test_result_transcend_premium_8gb.png diff --git a/docs/img/sdcard/toshiba_exceria_pro_16gb.jpg b/docs/helios4/img/sdcard/toshiba_exceria_pro_16gb.jpg similarity index 100% rename from docs/img/sdcard/toshiba_exceria_pro_16gb.jpg rename to docs/helios4/img/sdcard/toshiba_exceria_pro_16gb.jpg diff --git a/docs/img/sdcard/transcend_premium_8gb.jpg b/docs/helios4/img/sdcard/transcend_premium_8gb.jpg similarity index 100% rename from docs/img/sdcard/transcend_premium_8gb.jpg rename to docs/helios4/img/sdcard/transcend_premium_8gb.jpg diff --git a/docs/img/spi/armbian_install_u-boot_menu.png b/docs/helios4/img/spi/armbian_install_u-boot_menu.png similarity index 100% rename from docs/img/spi/armbian_install_u-boot_menu.png rename to docs/helios4/img/spi/armbian_install_u-boot_menu.png diff --git a/docs/img/spi/armbian_install_u-boot_write_confirmation.png b/docs/helios4/img/spi/armbian_install_u-boot_write_confirmation.png similarity index 100% rename from docs/img/spi/armbian_install_u-boot_write_confirmation.png rename to docs/helios4/img/spi/armbian_install_u-boot_write_confirmation.png diff --git a/docs/img/spi/armbian_move_rfs_menu.png b/docs/helios4/img/spi/armbian_move_rfs_menu.png similarity index 100% rename from docs/img/spi/armbian_move_rfs_menu.png rename to docs/helios4/img/spi/armbian_move_rfs_menu.png diff --git a/docs/img/spi/dipswitch_boot_spinor.png b/docs/helios4/img/spi/dipswitch_boot_spinor.png similarity index 100% rename from docs/img/spi/dipswitch_boot_spinor.png rename to docs/helios4/img/spi/dipswitch_boot_spinor.png diff --git a/docs/img/syncloud/activation.png b/docs/helios4/img/syncloud/activation.png similarity index 100% rename from docs/img/syncloud/activation.png rename to docs/helios4/img/syncloud/activation.png diff --git a/docs/img/syncloud/add_device.png b/docs/helios4/img/syncloud/add_device.png similarity index 100% rename from docs/img/syncloud/add_device.png rename to docs/helios4/img/syncloud/add_device.png diff --git a/docs/img/syncloud/app_installation.png b/docs/helios4/img/syncloud/app_installation.png similarity index 100% rename from docs/img/syncloud/app_installation.png rename to docs/helios4/img/syncloud/app_installation.png diff --git a/docs/img/syncloud/app_store.png b/docs/helios4/img/syncloud/app_store.png similarity index 100% rename from docs/img/syncloud/app_store.png rename to docs/helios4/img/syncloud/app_store.png diff --git a/docs/img/syncloud/applications.png b/docs/helios4/img/syncloud/applications.png similarity index 100% rename from docs/img/syncloud/applications.png rename to docs/helios4/img/syncloud/applications.png diff --git a/docs/img/syncloud/dashboard.png b/docs/helios4/img/syncloud/dashboard.png similarity index 100% rename from docs/img/syncloud/dashboard.png rename to docs/helios4/img/syncloud/dashboard.png diff --git a/docs/img/syncloud/play_market.png b/docs/helios4/img/syncloud/play_market.png similarity index 100% rename from docs/img/syncloud/play_market.png rename to docs/helios4/img/syncloud/play_market.png diff --git a/docs/img/syncloud/registration.png b/docs/helios4/img/syncloud/registration.png similarity index 100% rename from docs/img/syncloud/registration.png rename to docs/helios4/img/syncloud/registration.png diff --git a/docs/img/syncloud/storage_add.png b/docs/helios4/img/syncloud/storage_add.png similarity index 100% rename from docs/img/syncloud/storage_add.png rename to docs/helios4/img/syncloud/storage_add.png diff --git a/docs/img/syncloud/storage_page.png b/docs/helios4/img/syncloud/storage_page.png similarity index 100% rename from docs/img/syncloud/storage_page.png rename to docs/helios4/img/syncloud/storage_page.png diff --git a/docs/img/u-boot/armbian_install_bootloader_sdcard_menu.png b/docs/helios4/img/u-boot/armbian_install_bootloader_sdcard_menu.png similarity index 100% rename from docs/img/u-boot/armbian_install_bootloader_sdcard_menu.png rename to docs/helios4/img/u-boot/armbian_install_bootloader_sdcard_menu.png diff --git a/docs/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png b/docs/helios4/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png similarity index 100% rename from docs/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png rename to docs/helios4/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png diff --git a/docs/img/u-boot/u-boot_menuconfig_main.png b/docs/helios4/img/u-boot/u-boot_menuconfig_main.png similarity index 100% rename from docs/img/u-boot/u-boot_menuconfig_main.png rename to docs/helios4/img/u-boot/u-boot_menuconfig_main.png diff --git a/docs/img/wol/schematic.png b/docs/helios4/img/wol/schematic.png similarity index 100% rename from docs/img/wol/schematic.png rename to docs/helios4/img/wol/schematic.png diff --git a/docs/install.md b/docs/helios4/install.md similarity index 79% rename from docs/install.md rename to docs/helios4/install.md index 306afba..65bf64e 100644 --- a/docs/install.md +++ b/docs/helios4/install.md @@ -1,5 +1,5 @@ !!! note - Go to [Kit Assembly](./kit) to find out how to put together your Helios4 NAS + Go to [Kit Assembly](/helios4/kit) to find out how to put together your Helios4 NAS ## **What you need before you start.** @@ -11,22 +11,22 @@ You need a microSD Card UHS-I with a minimum of 8GB. We recommend the following - Strontium Nitro MicroSD Card (16GB) - Samsung microSDHC UHS-I Card EVO Plus (32GB) -![Recommended SDcard](/img/install/recommended_sdcard.jpg) +![Recommended SDcard](/helios4/img/install/recommended_sdcard.jpg) -You might refer to the [SD Card](/sdcard/#tested-microsd-card) page to find a compatibility list of SD Card models. +You might refer to the [SD Card](/helios4/sdcard/#tested-microsd-card) page to find a compatibility list of SD Card models. **2. Micro-USB to USB cable
** -![USB cable](/img/install/console_cable.png) +![USB cable](/helios4/img/install/console_cable.png) **3. Ethernet cable (cat5/6)
** -![Network cable](/img/install/network_cable.jpg) +![Network cable](/helios4/img/install/network_cable.jpg) ## **Step 1** - Download an Helios4 image build You will need first to download a image build to write on the microSD Card. -Go to [Dowload](/download) and chose one of the latest build. +Go to [Dowload](/helios4/download) and chose one of the latest build. !!! note Images with .7z extension must be first uncompressed with 7-Zip on Windows, Keka on OS X and 7z on Linux (apt-get install p7zip-full). @@ -45,7 +45,7 @@ Etcher is a graphical SD card writing tool that works on Mac OS, Linux and Windo - Select the microSD Card you wish to write your image to. - Review your selections and click 'Flash!' to begin writing data to the microSD Card. -![Etcher](/img/install/etcher_flash.png) +![Etcher](/helios4/img/install/etcher_flash.png) ### Under Linux (via Terminal) @@ -72,7 +72,7 @@ sudo dd bs=4M if=Armbian_5.90_Helios4_Debian_buster_next_4.19.59.img of=/dev/sdX 4. You plugged-in properly the DC power connector before powering-up the AC adapter. -![Connections](/img/install/connections.png) +![Connections](/helios4/img/install/connections.png) **Now you can plug-in / power-up the AC adapter.** @@ -89,10 +89,10 @@ sudo dd bs=4M if=Armbian_5.90_Helios4_Debian_buster_next_4.19.59.img of=/dev/sdX 1. [Download PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) and install it on your computer. 2. Select connection type **serial**.
-![Putty connect](/img/install/putty_config.png) +![Putty connect](/helios4/img/install/putty_config.png) 3. Setup serial port settings (Serial line : **COM1** and Speed : **115200**), then press **'Open'**
-![Putty config](/img/install/putty_connect.png) +![Putty config](/helios4/img/install/putty_connect.png) !!! note If you computer already has a serial port then COM1 might not be the correct serial line to connect to Helios4. Check this [link](https://tnp.uservoice.com/knowledgebase/articles/172101-determining-the-com-port-of-a-usb-to-serial-adapte) to learn how to determine the right COM port. @@ -114,7 +114,7 @@ Use yum under RHEL / CentOS / Fedora Linux $ sudo picocom -b 115200 /dev/ttyUSB0 -![Picocom](/img/install/picocom.png) +![Picocom](/helios4/img/install/picocom.png) To exit picocom do **Ctrl-a** then **Ctrl-x** @@ -147,7 +147,7 @@ Password: 1234 You will be prompted to change the root password and then create a new user account. -![First Login](/img/install/first_login.png) +![First Login](/helios4/img/install/first_login.png) ## **Step 6** - Check/Set IP address @@ -159,7 +159,7 @@ By default Helios4 will try to obtain an IP address via DHCP. To figure out what ip addr show dev eth0 ``` -![Network Config](/img/install/network_config.png) +![Network Config](/helios4/img/install/network_config.png) Here the IP address of Helios4 is **10.10.10.1**. @@ -171,13 +171,13 @@ If you wish to manually configure your IP address you can use the **armbian-conf armbian-config ``` -![Armbian-config](/img/install/armbian-config.png) +![Armbian-config](/helios4/img/install/armbian-config.png) -![Armbian-config](/img/install/armbian-config_network.png) +![Armbian-config](/helios4/img/install/armbian-config_network.png) -![Armbian-config](/img/install/armbian-config_ip-static.png) +![Armbian-config](/helios4/img/install/armbian-config_ip-static.png) -![Armbian-config](/img/install/armbian-config_ip.png) +![Armbian-config](/helios4/img/install/armbian-config_ip.png) Press **ESC** till you exit armbian-config tool. @@ -193,15 +193,15 @@ sudo reboot You can now connect by SSH to your Helios4 to carry on with your configuration. -![SSH Login](/img/install/ssh_login.png) +![SSH Login](/helios4/img/install/ssh_login.png) -![Putty SSH](/img/install/putty_ssh.png) +![Putty SSH](/helios4/img/install/putty_ssh.png) ## **What to do next ?** -If you want to install OpenMediaVault, the next-gen network attached storage (NAS) software, refer to the [OMV](/omv) page. +If you want to install OpenMediaVault, the next-gen network attached storage (NAS) software, refer to the [OMV](/helios4/omv) page. -If you have assembled an OLED Display as part of your Helios4 setup, it can be the right time to set it up. Refer to the following [section](/i2c/#sys-oled-application) that will explain you how to install the **sys-oled** application which control the OLED display. +If you have assembled an OLED Display as part of your Helios4 setup, it can be the right time to set it up. Refer to the following [section](/helios4/i2c/#sys-oled-application) that will explain you how to install the **sys-oled** application which control the OLED display. For other software you can use **armbian-config** which provides an easy way to install 3rd party applications. You can also refer to our *Software* section to find tutorials that will help you to setup manually your Helios4. @@ -209,8 +209,8 @@ For other software you can use **armbian-config** which provides an easy way to sudo armbian-config ``` -![!armbian-config Main Menu](/img/omv/install-1.png) +![!armbian-config Main Menu](/helios4/img/omv/install-1.png) -![!armbian-config Software](/img/omv/install-2.png) +![!armbian-config Software](/helios4/img/omv/install-2.png) -![!armbian-config Selection](/img/install/softy.png) +![!armbian-config Selection](/helios4/img/install/softy.png) diff --git a/docs/helios4/intro.md b/docs/helios4/intro.md new file mode 100644 index 0000000..5a29286 --- /dev/null +++ b/docs/helios4/intro.md @@ -0,0 +1,72 @@ +disqus: + +# Helios4 Introduction. + +Helios4 is a powerful ARM based board specially designed for Network Attached Storage. It harnesses its processing capabilities from the **ARMADA 38x-MicroSoM** from [SolidRun](https://wiki.solid-run.com/doku.php?id=products:a38x:microsom). + + + +The **Marvell ARMADA® 388** is a robust and energy-efficient System on Chip (SoC) with a collection of high speed interfaces especially suited for headless data processing, networking and storage. This Dual-core ARM Cortex A9 CPU clocked at 1.6 Ghz, paired with 2GB of ECC memory, integrates a Cryptographic and XOR DMA engines to provide the best level of performance and reliability for NAS functionalities. + +## Overall Specifications + +|**Board Specifications**|| +|------------|-----------| +|**SoC**|| +|SoC Model|Marvell Armada 388 (88F6828)
ARM Cortex-A9| +|SoC Architecture|ARMv7 32-bit| +|CPU Frequency|Dual Core 1.6 Ghz| +|Additional Features|- RAID Acceleration Engines
- Security Acceleration Engines
- Wake-on-LAN| +|**Memory**|| +|System Memory|2GB DDR3L ECC| +|**HDD/SSD Interfaces**|| +|SATA 3.0 Ports|4| +|Max Raw Capacity|48 TB (12 TB drive x 4)| +|Max Single Volume Size|16 TB| +|**External Interfaces**|| +|GbE LAN Port|1| +|USB 3.0|2| +|microSD (SDIO 3.0)|1| +|**Developer Interfaces**|| +|GPIO|12| +|I2C|1| +|UART|1 (via onboard Micro-USB converter)| +|**Others**|| +|Boot Mode Selector|- SPI
- SD Card
- UART
- SATA| +|SPI NOR Flash|32Mbit onboard| +|PWM FAN|2| +|RTC Battery|1| +|DC input|12V / 8A| + +|**Mechanical Specifications**|| +|------------|-----------| +|Board Dimension|100mm x 100mm| +|Board Weight|120gr| +|Case Dimention (H x W x D)|182 mm x 107 mm x 210 mm| +|Case Weight (without HDD)|450gr| +|Case Material|Colored Acrylic| + +|**Software Specifications**|| +|------------|-----------| +|Operating System|Linux Debian and Ubuntu| +|Kernel Version|4.14 +|U-Boot Version|2018.11 +|Software Partners|- Armbian: Debian and Ubuntu for ARM board
- OpenMediaVault: Linux NAS turn-key solution
- Syncloud: Cloud services at your premises| + +## Where to Start ? + +Once you have received your Helios4, this wiki will run you through all the necessary steps to setup your system. + +1. [Kit Assembly](/helios4/kit) - How to put together your Helios4. + +2. [Download](/helios4/download) - Get the latest OS build to install. + +3. [Install](/helios4/install) - 1st startup and set-up instructions. + +4. [Software](/helios4/omv) - Collection of tutorials on different 3rd party applications. + +5. [Hardware](/helios4/hardware) - Understand Helios4 hardware and take advantage of all its features. + +### Armbian Support Forum + +If you are facing an issue, you can go on the **Armbian** forum to ask for some help. There is a thread dedicated to [Helios4 support](https://forum.armbian.com/topic/6033-helios4-support/). diff --git a/docs/kit.md b/docs/helios4/kit.md similarity index 65% rename from docs/kit.md rename to docs/helios4/kit.md index d2183b3..4380a39 100644 --- a/docs/kit.md +++ b/docs/helios4/kit.md @@ -7,7 +7,7 @@ * 2× Molex to dual SATA Power Cable * AC/DC Adapter (Input:100-240VAC 50/60Hz, Output: DC 12V/8A) + AC Cable -![Kit Assembly](/img/kit/assembly_pic1.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic1.jpg) Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing @@ -15,7 +15,7 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing * 4-wire dupont cable (**Length : 30cm**) * 4x clear plastic screws + nuts -![Kit Assembly](/img/kit/oled_set.jpg) +![Kit Assembly](/helios4/img/kit/oled_set.jpg) !!! note The instructions to install the OLED Display have been added to the end of this page. @@ -29,7 +29,7 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing * At least 2x HDD 3.5" * Some patience... -![Kit Assembly](/img/kit/assembly_pic2.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic2.jpg) ## Assembly quick overview @@ -40,105 +40,105 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing ## **Step 1** - Preparing acrylic plates -![Kit Assembly](/img/kit/assembly_pic3.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic3.jpg) > **Each acrylics plate is recovered with a protective layer on both sides. Peel the protective layers slowly and insure no left-over sticks to the plate.** -![Kit Assembly](/img/kit/assembly_pic4.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic4.jpg) > **Because of the die-cut intricacy of the front panel, the laser cut process might have left the scrap pieces in place. You will have to use a a tool (e.g a pen or a flat screwdriver) to push out the scrap pieces. You might have to do the same for some of the screw holes on the other plates.** !!! important This task requires the most patience. Don't rush it or you risk to damage it. -![Kit Assembly](/img/kit/assembly_pic5.jpg) -![Kit Assembly](/img/kit/assembly_pic6.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic5.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic6.jpg) > **Congratulation you have completed the most annoying part.** -![Kit Assembly](/img/kit/assembly_pic7.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic7.jpg) ## **Step 2** - HDD cage assembly > **Get the HDD screws from the screw kit.** -![Kit Assembly](/img/kit/assembly_pic8.jpg) -![Kit Assembly](/img/kit/assembly_pic9.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic8.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic9.jpg) > **Position your HDD exactly as shown below.** -![Kit Assembly](/img/kit/assembly_pic10.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic10.jpg) > **Position one of the acrylic side plate on top of your HDDs. Align the holes.** -![Kit Assembly](/img/kit/assembly_pic11.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic11.jpg) !!! important Pay attention to the orientation of the acrylic side plate. You don't want to realize too late a mistake and restart the assembly from the beginning. -![Kit Assembly](/img/kit/assembly_pic11_help.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic11_help.jpg) > **Screw the side plate to the HDDs. Don't tighten too hard.** -![Kit Assembly](/img/kit/assembly_pic12.jpg) -![Kit Assembly](/img/kit/assembly_pic13.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic12.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic13.jpg) > **Flip side the assembly.** -![Kit Assembly](/img/kit/assembly_pic14.jpg) -![Kit Assembly](/img/kit/assembly_pic15.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic14.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic15.jpg) > **Position the order acrylic side plate on top of your HDDs. Align the holes.** !!! important Pay attention to the orientation of the acrylic side plate. You don't want to realize too late a mistake and restart the assembly from the beginning. -![Kit Assembly](/img/kit/assembly_pic16.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic16.jpg) > **Screw the side plate to the HDDs. Don't tighten too hard.** -![Kit Assembly](/img/kit/assembly_pic17.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic17.jpg) > **Position the HDD cage stand-up and tighten all the screws.** !!! note The cage should sit perfectly level. If not then loose the HDDs screws a bit till it sit flat and re-tighten the screws. -![Kit Assembly](/img/kit/assembly_pic18.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic18.jpg) ## **Step 3** - Fan plate assembly > **Prepare the following items.** -![Kit Assembly](/img/kit/assembly_pic19.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic19.jpg) > **Position the fans exactly as shown below.** -![Kit Assembly](/img/kit/assembly_pic20.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic20.jpg) > **Position the acrylic fan plate on top of the fans. Align the holes.** !!! important Pay attention to the orientation of the fan plate. You don't want to realize too late a mistake and restart the assembly from the beginning. -![Kit Assembly](/img/kit/assembly_pic21.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic21.jpg) > **Screw the fan plate to the fans.
Tighten the cables to the fan plate with the provided cable zips.** -![Kit Assembly](/img/kit/assembly_pic22.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic22.jpg) > **Cut the loose parts of cable zips.** -![Kit Assembly](/img/kit/assembly_pic23.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic23.jpg) ## **Step 4** - Board plate assembly > **Prepare the following items.** -![Kit Assembly](/img/kit/assembly_pic24.jpg) -![Kit Assembly](/img/kit/assembly_pic25.jpg) -![Kit Assembly](/img/kit/assembly_pic26.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic24.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic25.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic26.jpg) > **Install the standoffs on the board plate using the 5mm long screws.** @@ -146,45 +146,45 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! note Make sure you are using the 5mm long screws and not the 4mm ones which look similar but a bit shorter. -![Kit Assembly](/img/kit/assembly_pic27.jpg) -![Kit Assembly](/img/kit/assembly_pic28.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic27.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic28.jpg) > **Position Helios4 board on the plate. Align the holes.** -![Kit Assembly](/img/kit/assembly_pic29.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic29.jpg) > **Screw Helios4 board with the 4mm long screws.** -![Kit Assembly](/img/kit/assembly_pic30.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic30.jpg) > **Check the boot mode dipswitch (SW1) is configured as follow.** -![Dipswitch](/img/kit/dipswitch_mode.jpg) +![Dipswitch](/helios4/img/kit/dipswitch_mode.jpg) -![Kit Assembly](/img/kit/assembly_pic31.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic31.jpg) > **Check the led mode dipswitch (SW2) is set to ON.** -![Kit Assembly](/img/kit/assembly_pic32.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic32.jpg) ## **Step 5** - Board cabling > **Prepare the following items.** -![Kit Assembly](/img/kit/assembly_pic33.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic33.jpg) > **Connect the SATA cables as shown below.** -![Kit Assembly](/img/kit/assembly_pic34.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic34.jpg) > **Connect the fan cables as shown below.** -![Kit Assembly](/img/kit/assembly_pic35.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic35.jpg) !!! warning Double check you properly connected the fans. Wrong insertion of the fan plugs could damage the electronic in charge of controlling the fan speed. If for some reasons you need to unplug / plug the fan later on, it must always be performed when the system is powered off. -![Kit Assembly](/img/kit/assembly_pic35b.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic35b.jpg) ## **Step 6** - Casing assembly 1/2 @@ -193,40 +193,40 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing > **Prepare and position the items as shown below.** -![Kit Assembly](/img/kit/assembly_pic36.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic36.jpg) > **Slot in the board plate into the HDD cage.** -![Kit Assembly](/img/kit/assembly_pic37.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic37.jpg) !!! note You will have to pull-up the side plate in order to slot in the board plate. -![Kit Assembly](/img/kit/assembly_anim1.gif) -![Kit Assembly](/img/kit/assembly_pic38.jpg) +![Kit Assembly](/helios4/img/kit/assembly_anim1.gif) +![Kit Assembly](/helios4/img/kit/assembly_pic38.jpg) > **Position the assembly stand-up.** -![Kit Assembly](/img/kit/assembly_pic39.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic39.jpg) > **Slide in the fan plate.** -![Kit Assembly](/img/kit/assembly_anim2.gif) +![Kit Assembly](/helios4/img/kit/assembly_anim2.gif) ## **Step 7** - HDDs cabling -![Kit Assembly](/img/kit/assembly_pic40.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic40.jpg) > **Insert the SATA cables as shown below.** -![Kit Assembly](/img/kit/assembly_pic41.jpg) -![Kit Assembly](/img/kit/assembly_pic42.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic41.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic42.jpg) ## **Step 8** - Casing assembly 2/2 > **Prepare the following items.** -![Kit Assembly](/img/kit/assembly_pic43.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic43.jpg) !!! important If you kit comes with an OLED display then skip to the following [section](#oled-display-part-b). @@ -236,11 +236,11 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! note You will have to push the HDD cables inside in order to slide in the front panel. -![Kit Assembly](/img/kit/assembly_pic44.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic44.jpg) > **Slide in top plate.** -![Kit Assembly](/img/kit/assembly_pic45.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic45.jpg) ## Optional Assembly Step @@ -253,7 +253,7 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing * 4x clear plastic screws + nuts * Front Panel -![Kit Assembly](/img/kit/assembly_pic47.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic47.jpg) > **Connect the 4-wire cable to the J9 header** @@ -261,9 +261,9 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! note The color of your jumper cable is most likely different than the one you see in these pictures. The purpose of the different colors is just to help you check your wiring is correct. **Plug in any order.** -![Kit Assembly](/img/kit/assembly_pic48.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic48.jpg) -![Kit Assembly](/img/kit/assembly_pic49.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic49.jpg) > **Assemble the OLED display to the front panel. Respect orientation.** @@ -271,14 +271,14 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! important Don't forget to remove first the protection sticker on the OLED display. -![Kit Assembly](/img/kit/assembly_pic50.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic50.jpg) -![Kit Assembly](/img/kit/assembly_pic51.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic51.jpg) !!! warning Don't tighten too much the nuts, you don't want the OLED circuit board to bend or break. -![Kit Assembly](/img/kit/assembly_pic52.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic52.jpg) **Now you can jump back to Casing Assembly [section](#step-6-casing-assembly-12).** @@ -289,15 +289,15 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! important The PIN order is different between the J9 header and the OLED header. You will need to connect each cable to match the same PIN name between the OLED header and the J9 header (GND to GND, VCC to VCC, SDA to SDA, etc...). See below the J9 and Display header pinouts. -![I2C Board Pinout](/img/kit/i2c_board_pinout.jpg) +![I2C Board Pinout](/helios4/img/kit/i2c_board_pinout.jpg) -![I2C Display Pinout](/img/kit/i2c_display_pinout.png) +![I2C Display Pinout](/helios4/img/kit/i2c_display_pinout.png) **In our current example, the correct wiring would then look like this:** -![Kit Assembly](/img/kit/assembly_pic53.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic53.jpg) -![Kit Assembly](/img/kit/assembly_pic54.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic54.jpg) !!! note The color of your jumper cable is most likely different than the one you see in these pictures. The purpose of the different colors is just to help you check your wiring is correct. @@ -307,16 +307,16 @@ Since Helios4 Batch 3 we added to the Kit an OLED Display kit containing !!! note You will have to push the HDD cables inside in order to slide in the front panel. -![Kit Assembly](/img/kit/assembly_pic55.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic55.jpg) > **Slide in top plate.** -![Kit Assembly](/img/kit/assembly_pic56.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic56.jpg) ## What to do next ? AWESOME !!! You have completed Helios4 Kit Assembly. -**Now you can jump to the [install section](/install).** +**Now you can jump to the [install section](/helios4/install).** -![Kit Assembly](/img/kit/assembly_pic57.jpg) +![Kit Assembly](/helios4/img/kit/assembly_pic57.jpg) diff --git a/docs/led.md b/docs/helios4/led.md similarity index 92% rename from docs/led.md rename to docs/helios4/led.md index 7c9956e..d444ba2 100644 --- a/docs/led.md +++ b/docs/helios4/led.md @@ -1,4 +1,4 @@ -![LED location](/img/led/led_location.png) +![LED location](/helios4/img/led/led_location.png) ## On-Board LEDs @@ -21,11 +21,11 @@ Helios4 board was designed to either use the on-board LEDs or use a custom expansion panel (not-available). If you wish to use the header, insure to switch to OFF the Dip Switch SW2. -![Dipswitch LED](/img/led/dipswitch_led_off.png) +![Dipswitch LED](/helios4/img/led/dipswitch_led_off.png) ### Pinout Table -![J18 Pinout](/img/led/gpio_pinout_j18.png) +![J18 Pinout](/helios4/img/led/gpio_pinout_j18.png) | Pin | LED number | Remarks | |-----|------------|---------| @@ -48,7 +48,7 @@ If you wish to use the header, insure to switch to OFF the Dip Switch SW2. Since the signals to control the LEDs are active low, connect the pin to LED's cathode. Below a wiring diagram example. -![Wiring Example](/img/led/led_expansion_wiring_diagram.png) +![Wiring Example](/helios4/img/led/led_expansion_wiring_diagram.png) ## LED under Linux @@ -64,7 +64,7 @@ Below a wiring diagram example. | LED7 | helios4:green:usb | usb-host | Blinking on USB activity, any port | !!! note - **ata** trigger requires additional patch to mainline kernel. The patch can be found [here](/files/led/libata_leds_trigger_mvebu.patch). **Armbian** builds are already patched, so no action is required. + **ata** trigger requires additional patch to mainline kernel. The patch can be found [here](/helios4/files/led/libata_leds_trigger_mvebu.patch). **Armbian** builds are already patched, so no action is required. The LEDs can be accessed under LEDs class in *sysfs*. @@ -162,7 +162,7 @@ echo c > /proc/sysrq-trigger #### 2. As RAID Fault Indicator -To configure the LED as RAID fault indicator, please refer to [MDADM: Configure Fault LED](/mdadm/#configure-fault-led) +To configure the LED as RAID fault indicator, please refer to [MDADM: Configure Fault LED](/helios4/mdadm/#configure-fault-led) !!! note On Armbian builds, this is the default setting for fault LED. diff --git a/docs/mdadm.md b/docs/helios4/mdadm.md similarity index 97% rename from docs/mdadm.md rename to docs/helios4/mdadm.md index 5cceca8..6b5a9f6 100644 --- a/docs/mdadm.md +++ b/docs/helios4/mdadm.md @@ -90,7 +90,7 @@ Output As you can see in the second line, the /dev/md0 device has been created with the RAID 1 configuration using the /dev/sda and /dev/sdb devices. The fourth line shows the progress of the syncing. You can continue the guide while this process completes. !!! note - If your system is configured to [display RAID fault on the LED2](/mdadm/#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. + If your system is configured to [display RAID fault on the LED2](#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. ### Create RAID 6 Array @@ -115,7 +115,7 @@ Output As you can see in the second line, the /dev/md0 device has been created with the RAID 6 configuration using the /dev/sda, /dev/sdb, /dev/sdc and /dev/sdd devices. The fourth line shows the progress of the syncing. You can continue the guide while this process completes. !!! note - If your system is configured to [display RAID fault on the LED2](/mdadm/#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. + If your system is configured to [display RAID fault on the LED2](#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. ### Create RAID 10 Array @@ -140,7 +140,7 @@ Output As you can see in the second line, the /dev/md0 device has been created with the RAID 10 configuration using the /dev/sda, /dev/sdb, /dev/sdc and /dev/sdd devices. The fourth line shows the progress of the syncing. You can continue the guide while this process completes. !!! note - If your system is configured to [display RAID fault on the LED2](/mdadm/#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. + If your system is configured to [display RAID fault on the LED2](#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. ## Create and Mount the Filesystem @@ -447,7 +447,7 @@ Ouput As we can see here the array is identified as device **md127** (/dev/md127). -Then refer to previous [section](/mdadm/#save-the-array-layout) to save the array layout in mdadm configuration and mount the file system but take in consideration that now device name is **/dev/md127** not anymore /dev/md0. +Then refer to previous [section](#save-the-array-layout) to save the array layout in mdadm configuration and mount the file system but take in consideration that now device name is **/dev/md127** not anymore /dev/md0. ## Reset Existing RAID Devices diff --git a/docs/nextcloud.md b/docs/helios4/nextcloud.md similarity index 97% rename from docs/nextcloud.md rename to docs/helios4/nextcloud.md index 2d3b92f..137a98c 100644 --- a/docs/nextcloud.md +++ b/docs/helios4/nextcloud.md @@ -4,7 +4,7 @@ In this tutorial we will install and configure Nextcloud 16 on a Debian 9 (Stret ## Step 0 - Requirements -* You should have Debian 9 (Stretch) or Debian 10 (Buster) running on your Helios4. Refer to [Install](/install) page for instructions. +* You should have Debian 9 (Stretch) or Debian 10 (Buster) running on your Helios4. Refer to [Install](/helios4/install) page for instructions. * Under Debian 9 (Stretch) you will need first to add *deb.sury.org* repo in order to get access to PHP 7.3 packages. @@ -14,7 +14,7 @@ echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sourc sudo apt-get update ``` -* You should have setup your storage. This guide will assume you have setup a RAID array mounted to **/mnt/md0**. Refer to [Mdadm](/mdadm) page for guideline on how to setup a RAID array. +* You should have setup your storage. This guide will assume you have setup a RAID array mounted to **/mnt/md0**. Refer to [Mdadm](/helios4/mdadm) page for guideline on how to setup a RAID array. ## Step 1 - Install Apache2 @@ -197,7 +197,7 @@ Edit the following section With this step the Nextcloud 16 installation is completed. You can now visit http://mysubdomain.dynu.net and login to your Nextcloud instance using the credentials used in the installation command above. -![NextCloud Login Page](/img/nextcloud/login.png) +![NextCloud Login Page](/helios4/img/nextcloud/login.png) Log in with user **admin** and the password you set up previously. @@ -264,6 +264,6 @@ Just follow the wizard as shown below: Congratulations! You have successfully enabled https://mysubdomain.dynu.net -![!NextCloud Dashboard](/img/nextcloud/dashboard.png) +![!NextCloud Dashboard](/helios4/img/nextcloud/dashboard.png) *Tuto Source: [link1](https://www.rosehosting.com/blog/how-to-install-nextcloud-13-on-debian-9/) [link2](https://help.nextcloud.com/t/resolved-nextcloud-on-debian-jessie-access-forbidden/4083/3)* diff --git a/docs/omv.md b/docs/helios4/omv.md similarity index 80% rename from docs/omv.md rename to docs/helios4/omv.md index 35663c5..123e71c 100644 --- a/docs/omv.md +++ b/docs/helios4/omv.md @@ -14,7 +14,7 @@ OpenMediaVault (OMV) is a next-gen network attached storage (NAS) software based You can easily install OMV with the **armbian-config** tool. -Connect to your Helios4 via SSH as explained [here](/install/#step-7-connect-to-helios4-via-ssh). +Connect to your Helios4 via SSH as explained [here](/helios4/install/#step-7-connect-to-helios4-via-ssh). Launch **armbian-config** and follow the steps. @@ -22,21 +22,21 @@ Launch **armbian-config** and follow the steps. sudo armbian-config ``` -![!armbian-config Main Menu](/img/omv/install-1.png) +![!armbian-config Main Menu](/helios4/img/omv/install-1.png) -![!armbian-config Software](/img/omv/install-2.png) +![!armbian-config Software](/helios4/img/omv/install-2.png) Select **OMV** and press **Install**. -![!armbian-config Selection](/img/omv/install-3.png) +![!armbian-config Selection](/helios4/img/omv/install-3.png) This is what you will see during the installation. -![!armbian-config Install](/img/omv/install-4.png) +![!armbian-config Install](/helios4/img/omv/install-4.png) When installation is completed, you should see the following menu with **Samba** and **OMV** shown as installed. -![!armbian-config Install Complete](/img/omv/install-5.png) +![!armbian-config Install Complete](/helios4/img/omv/install-5.png) Now press **ESC** till you exit armbian-config tool. @@ -50,17 +50,17 @@ sudo reboot Open your web browser and go to the one of the following addresses : * http://helios4.local
-* http://*xxx.xxx.xxx.xxx* ([How to check Helios4 IP address](/install/#step-6-checkset-ip-address)) +* http://*xxx.xxx.xxx.xxx* ([How to check Helios4 IP address](/helios4/install/#step-6-checkset-ip-address)) **Default credential :** * Username: admin * Password: openmediavault -![!OMV Login](/img/omv/login.png) +![!OMV Login](/helios4/img/omv/login.png) *Login Screen* -![!OMV Dashboard](/img/omv/dashboard.png) +![!OMV Dashboard](/helios4/img/omv/dashboard.png) *Dashboard View* ## Wipe Disk (Optional) @@ -74,11 +74,11 @@ If you are using HDDs which aren't blank or brand new you might need to wipe the !!! note HDDs are the devices starting with **/dev/sdX** -![!OMV HDD Wipe](/img/omv/disk_wipe1.png) +![!OMV HDD Wipe](/helios4/img/omv/disk_wipe1.png) > Click **Quick** wipe method. -![!OMV HDD Wipe](/img/omv/disk_wipe2.png) +![!OMV HDD Wipe](/helios4/img/omv/disk_wipe2.png) > Repeat above steps for each HDD you want to use for your RAID array. @@ -103,24 +103,24 @@ In this guide we chose to create a RAID10 with 4 HDDs for the following reasons > Give it a name and click **Create**. -![!OMV RAID 10](/img/omv/create_raid10.png) +![!OMV RAID 10](/helios4/img/omv/create_raid10.png) You can see the ongoing build / re-syncing process and get an estimated finish time. -![!OMV RAID Syncing](/img/omv/syncing_raid10.png) +![!OMV RAID Syncing](/helios4/img/omv/syncing_raid10.png) !!! important While you could carry on with some part of OMV configuration during the RAID re-syncing process, we strongly advice to let this process complete first. You should see the following in the RAID state once re-syncing is complete : **active**. !!! note - If your system is configured to [display RAID fault on the LED2](/mdadm/#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. + If your system is configured to [display RAID fault on the LED2](/helios4/mdadm/#configure-fault-led), then you should also see the red LED2 blinking while your array is (re-)syncing. -![!OMV RAID Clean](/img/omv/raid10_active.png) +![!OMV RAID Clean](/helios4/img/omv/raid10_active.png) !!! info Whenever you change some settings in OMV, the following banner will appear. You can immediately apply the configuration by clicking **Apply** or you can carry on with your configuration and apply the changes at a later stage. -![!OMV Save Settings](/img/omv/save_settings.png) +![!OMV Save Settings](/helios4/img/omv/save_settings.png) ## Install LVM Plugin @@ -128,13 +128,13 @@ To have a better control of storage partitioning we will use Linux Logical Volum > Go to **Plugins** page in *System* section. -![!Plugin List](/img/omv/plugin_list.png) +![!Plugin List](/helios4/img/omv/plugin_list.png) To get the latest plugins you will need to update the plugins database. > Click **Check** -![!Plugin Update](/img/omv/plugin_update.png) +![!Plugin Update](/helios4/img/omv/plugin_update.png) Once plugins database update is done : @@ -142,11 +142,11 @@ Once plugins database update is done : > Select openmediavault-lvm2 and click **Install**. -![!Plugin LVM](/img/omv/plugin_lvm.png) +![!Plugin LVM](/helios4/img/omv/plugin_lvm.png) > Wait till the lvm plugins install shows *Done...* then click **Close**. -![!Plugin Install](/img/omv/plugin_install.png) +![!Plugin Install](/helios4/img/omv/plugin_install.png) !!! info OMV Control Panel will reload and you should see the **Logical Volume Management** page in *Storage* section. @@ -169,7 +169,7 @@ To create a Logical Volume 3 steps are necessary : > Select the RAID array you created previously and click **Save**. -![!LVM Add Physical Volume](/img/omv/lvm_add-pv.png) +![!LVM Add Physical Volume](/helios4/img/omv/lvm_add-pv.png) > Go to *Volume groups* tab. @@ -179,7 +179,7 @@ To create a Logical Volume 3 steps are necessary : > Give it a name and click **Save**. -![!LVM Add Volume Group](/img/omv/lvm_add-vg.png) +![!LVM Add Volume Group](/helios4/img/omv/lvm_add-vg.png) > Go to *Logical volumes* tab. @@ -191,7 +191,7 @@ To create a Logical Volume 3 steps are necessary : > Give it a name and click **Save**. -![!LVM Add Logical Volume](/img/omv/lvm_add-lv.png) +![!LVM Add Logical Volume](/helios4/img/omv/lvm_add-lv.png) !!! info You can create several Logical Volumes according to your needs and the way you want to organize your data. @@ -201,7 +201,7 @@ To create a Logical Volume 3 steps are necessary : - public : to put all non-sensitive data like movie & music collections. - secure : to setup an encrypted space for sensitive data (not covered in this guide). -![!LVM Volumes](/img/omv/lvm_lv-volumes.png) +![!LVM Volumes](/helios4/img/omv/lvm_lv-volumes.png) ## Format and Mount Volume @@ -221,13 +221,13 @@ Now that your Logical Volumes are created, you need to format and mount them in !!! info While you could choose BTRFS as a copy-on-write File system (COW), we recommend to use to EXT4 unless you know how to take advantage of BTRFS features. -![!Format Volume](/img/omv/format_volume.png) +![!Format Volume](/helios4/img/omv/format_volume.png) You can see the ongoing formatting process. You don't have to wait the process to finish. > Click **Close**. -![!Format Process](/img/omv/format_process.png) +![!Format Process](/helios4/img/omv/format_process.png) You can check the status of all devices. @@ -236,11 +236,11 @@ Once formatting process is complete, device status will show *Online*. !!! info Depending on your Logical Volume size, formatting can take a while to complete. -![!Format Status](/img/omv/format_status.png) +![!Format Status](/helios4/img/omv/format_status.png) > Select device you formatted and click **Mount**. -![!Mount Volume](/img/omv/mount_volume.png) +![!Mount Volume](/helios4/img/omv/mount_volume.png) > Repeat the action for each Logical Volume you created. @@ -256,7 +256,7 @@ In this guide we will create a super user *john* that will have the write access > Select */bin/bash* for Shell (Optional). -![!User Create](/img/omv/user_create.png) +![!User Create](/helios4/img/omv/user_create.png) > Go to *Groups* tab. @@ -264,7 +264,7 @@ In this guide we will create a super user *john* that will have the write access > Click **Save**. -![!User Group](/img/omv/user_group.png) +![!User Group](/helios4/img/omv/user_group.png) ## Create Shared Folder @@ -283,13 +283,13 @@ Now you need to create Shared Folders that will be exposed through network shari !!! info You can leave the default permission. But later on you should explore how the permissions settings work and impact your Share Folders. -![!Folder Add](/img/omv/folder_add.png) +![!Folder Add](/helios4/img/omv/folder_add.png) > Repeat the action to add more Share Folders. Once done you can see the list of Share Folders you have created and under which Device / Logical Volume they are. -![!Folder List](/img/omv/folder_list.png) +![!Folder List](/helios4/img/omv/folder_list.png) ## Configure Windows Share (SMB/CIFS) @@ -299,7 +299,7 @@ We will now activate the Windows Share service (a.k.a SMB/CIFS) and enlist the S > Toggle the Enable button under *General Settings*. -![!Share Enable](/img/omv/share_enable.png) +![!Share Enable](/helios4/img/omv/share_enable.png) > Go to *Shares* tab. @@ -311,16 +311,16 @@ We will now activate the Windows Share service (a.k.a SMB/CIFS) and enlist the S > Click **Save** -![!Share Add](/img/omv/share_add.png) +![!Share Add](/helios4/img/omv/share_add.png) Once done you can see the list of active Shares. -![!Share List](/img/omv/share_list.png) +![!Share List](/helios4/img/omv/share_list.png) !!! info Don't forget to apply your settings by clicking **Apply** when the following banner appears. -![!OMV Save Settings](/img/omv/save_settings.png) +![!OMV Save Settings](/helios4/img/omv/save_settings.png) **Now you should be able to access your Share Folders from your laptop / computer connected to your Home network.** @@ -341,7 +341,7 @@ Some Linux flavors, like Ubuntu, provide File Manager that supports natively Win If your File Manager doesn't find helios4, it can be due that your laptop / computer is not on the same subnet that Helios4. Check your network configuration. -![!Share Network](/img/omv/share_network.png) +![!Share Network](/helios4/img/omv/share_network.png) > Click on one of the Share Folders (e.g movie). @@ -351,13 +351,13 @@ Some Linux flavors, like Ubuntu, provide File Manager that supports natively Win > click **Connect**. -![!Share Credential](/img/omv/share_credential.png) +![!Share Credential](/helios4/img/omv/share_credential.png) Now you should be connected to the Share Folder. Check in the side pane, you should see something like *'movie on helios4.local'* with an Eject icon. You can start copying over from your laptop / computer files in the Share Folder. -![!Share File](/img/omv/share_file.png) +![!Share File](/helios4/img/omv/share_file.png) You can also try to access as anonymous user which should allow you access the files but not to add / delete files. @@ -365,7 +365,7 @@ You can also try to access as anonymous user which should allow you access the f > Repeat above steps but this time connect as *Anonymous*. -![!Share Anonymous](/img/omv/share_anonymous.png) +![!Share Anonymous](/helios4/img/omv/share_anonymous.png) You can repeat the above steps to connect to your other Share Folders. @@ -380,7 +380,7 @@ mount -t cifs //10.10.10.1/movie /mnt -o username=anonymous > Open File Explorer. > Go to Network. -![!Windows Discovery](/img/omv/windows_discovery.png) +![!Windows Discovery](/helios4/img/omv/windows_discovery.png) !!! info If your File Manager doesn't find helios4, it can be due that your laptop / computer is not on the same subnet that Helios4. Check your network configuration. @@ -389,22 +389,22 @@ mount -t cifs //10.10.10.1/movie /mnt -o username=anonymous > Right-Click on a Share Folder and click **Map network drive...**. -![!!Windows Access](/img/omv/windows_access.png) +![!!Windows Access](/helios4/img/omv/windows_access.png) > Check *Connect using different credentials*. > Click **Finish**. -![!!Windows Drive](/img/omv/windows_netdrive.png) +![!!Windows Drive](/helios4/img/omv/windows_netdrive.png) > Enter Username and Password of the user you created previously (e.g john). > click **OK**. -![!!Windows Credential](/img/omv/windows_credential.png) +![!!Windows Credential](/helios4/img/omv/windows_credential.png) Now you should be connected to the Share Folder. Check in the side pane, you should see something like *'movie (\\\\HELIOS4)'*. -![!Windows Share](/img/omv/windows_share.png) +![!Windows Share](/helios4/img/omv/windows_share.png) You can repeat the above steps to connect to your other Share Folders. diff --git a/docs/pwm.md b/docs/helios4/pwm.md similarity index 92% rename from docs/pwm.md rename to docs/helios4/pwm.md index a478175..db54028 100644 --- a/docs/pwm.md +++ b/docs/helios4/pwm.md @@ -7,27 +7,27 @@ PWM, or pulse width modulation is a technique which allows us to adjust the aver The term *duty cycle* describes the proportion of 'on' time to the regular interval or 'period' of time; a low duty cycle corresponds to low power, because the power is off for most of the time. Duty cycle is expressed in percent, 100% being fully on. When a digital signal is on half of the time and off the other half of the time, the digital signal has a duty cycle of 50% and resembles a "square" wave. When a digital signal spends more time in the on state than the off state, it has a duty cycle of >50%. When a digital signal spends more time in the off state than the on state, it has a duty cycle of <50%. Here is a pictorial that illustrates these three scenarios: -![PWM duty cycle](/img/pwm/pwm_duty_cycle_graph.png) +![PWM duty cycle](/helios4/img/pwm/pwm_duty_cycle_graph.png) ## PWM Fan Implementation ### Type-A -![Type A Curve](/img/pwm/fan_type_a_curve.jpg) +![Type A Curve](/helios4/img/pwm/fan_type_a_curve.jpg) ### Type-B -![Type B Curve](/img/pwm/fan_type_b_curve.jpg) +![Type B Curve](/helios4/img/pwm/fan_type_b_curve.jpg) ### Type-C -![Type C Curve](/img/pwm/fan_type_c_curve.jpg) +![Type C Curve](/helios4/img/pwm/fan_type_c_curve.jpg) ## Helios4 Fan Control Schematic ### Board Rev 1.1 -![Helios4 Fan control Rev1.1](/img/pwm/fan_control_schematic_rev1_1.png) +![Helios4 Fan control Rev1.1](/helios4/img/pwm/fan_control_schematic_rev1_1.png) **Remarks** @@ -39,7 +39,7 @@ The term *duty cycle* describes the proportion of 'on' time to the regular inter ### Board Rev 1.2 -![Helios4 Fan control Rev 1.2](/img/pwm/fan_control_schematic_rev1_2.png) +![Helios4 Fan control Rev 1.2](/helios4/img/pwm/fan_control_schematic_rev1_2.png) **Remarks** @@ -51,7 +51,7 @@ The term *duty cycle* describes the proportion of 'on' time to the regular inter ## Bundled Fan -![Fan Connector](/img/pwm/fan_connector.png) +![Fan Connector](/helios4/img/pwm/fan_connector.png) Connector Pinout @@ -65,7 +65,7 @@ Connector Pinout ### Type-A Fan (Batch 1 & 3) -![Type-A Fan](/img/pwm/fan_type_a_photo.jpg) +![Type-A Fan](/helios4/img/pwm/fan_type_a_photo.jpg) Fan Specification @@ -76,14 +76,14 @@ Fan Specification | Shut off | No | | Not Supported | | Implementation Type | A | | | -![Type-A Fan Speed Graph](/img/pwm/fan_speed_graph_type_a_fan.png) +![Type-A Fan Speed Graph](/helios4/img/pwm/fan_speed_graph_type_a_fan.png) !!! info Duty cycle data is converted from Linux PWM ### Type-C Fan (Batch 2) -![Type-C Fan](/img/pwm/fan_type_c_photo.jpg) +![Type-C Fan](/helios4/img/pwm/fan_type_c_photo.jpg) Fan Specification @@ -94,14 +94,14 @@ Fan Specification | Shut off | Yes | | duty cycle <= 5.5% and restart @ duty cycle > 9% | | Implementation Type | C | | | -![Type-C Speed Graph](/img/pwm/fan_speed_graph_type_c_fan.png) +![Type-C Speed Graph](/helios4/img/pwm/fan_speed_graph_type_c_fan.png) !!! info Duty cycle data is converted from Linux PWM ### Fan Speed Comparison -![Fan Speed Graph](/img/pwm/fan_speed_comparison.png) +![Fan Speed Graph](/helios4/img/pwm/fan_speed_comparison.png) ## Helios4 Temperature Sensors @@ -123,13 +123,13 @@ Helios4 has a **Digital Temperature Sensor with 2‐wire Interface** ([NCT75 Dat Linux use 8-bit integer to represent duty cycle. PWM value 0 represent 0% duty cycle and PWM value 255 represent 100% duty cycle. -![Duty Cycle Formula](/img/pwm/fan_duty_cycle_formula.png) +![Duty Cycle Formula](/helios4/img/pwm/fan_duty_cycle_formula.png) Below graphs are bundled fan speed vs pwm value instead of duty cycle. -![Type-A Fan Speed Graph](/img/pwm/fan_speed_graph_type_a_fan_linux.png) +![Type-A Fan Speed Graph](/helios4/img/pwm/fan_speed_graph_type_a_fan_linux.png) -![Type-C Fan Speed Graph](/img/pwm/fan_speed_graph_type_c_fan_linux.png) +![Type-C Fan Speed Graph](/helios4/img/pwm/fan_speed_graph_type_c_fan_linux.png) ### Patch requirement @@ -367,7 +367,7 @@ Below is an example of device tree nodes that can be added to Helios4 device tre [Pulse-width modulation](https://en.wikipedia.org/wiki/Pulse-width_modulation) -[4-Wire Pulse Width Modulation (PWM) Controlled Fans Specification rev. 1.3](/files/fan/4_Wire_PWM_Spec.pdf) +[4-Wire Pulse Width Modulation (PWM) Controlled Fans Specification rev. 1.3](/helios4/files/fan/4_Wire_PWM_Spec.pdf) [fancontrol man page](https://linux.die.net/man/8/fancontrol) diff --git a/docs/sdcard.md b/docs/helios4/sdcard.md similarity index 90% rename from docs/sdcard.md rename to docs/helios4/sdcard.md index b0ab355..2d83cf0 100644 --- a/docs/sdcard.md +++ b/docs/helios4/sdcard.md @@ -41,12 +41,12 @@ tar Jxf /usr/src/linux-source-$(uname -r).tar.xz -C ~/src/linux ### Patching and Compilation -Download and apply [this patch](/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch) to Linux kernel source code. +Download and apply [this patch](/helios4/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch) to Linux kernel source code. ``` cd ~/src/linux -wget https://wiki.kobol.io/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch +wget https://wiki.kobol.io/helios4/files/sdcard/helios4_dtb_sd_uhs_linux_stable.patch git apply --apply --verbose helios4_dtb_sd_uhs_linux_stable.patch ``` @@ -59,7 +59,7 @@ cp arch/arm/boot/dts/armada-388-helios4.dtb armada-388-helios4.dtb.uhs ``` !!! Info - Precompiled dtb for Linux kernel 4.14 can be found [here](/files/sdcard/armada-388-helios4.dtb.uhs) + Precompiled dtb for Linux kernel 4.14 can be found [here](/helios4/files/sdcard/armada-388-helios4.dtb.uhs) Copy new dtb to /boot/dtb/, backup the original dtb and create symlink to new dtb @@ -75,7 +75,7 @@ Reboot the system. ## Recovery -If the system become unbootable after applying modified dtb, recover the system by [connecting to Helios4 serial console](/install/#step-4-connect-to-helios4-serial-console) +If the system become unbootable after applying modified dtb, recover the system by [connecting to Helios4 serial console](/helios4/install/#step-4-connect-to-helios4-serial-console) and run following commands ``` @@ -110,11 +110,11 @@ with slightly modified parameter to run the test on SD card mounted under /mnt/s iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 -f /mnt/sdcard/iozone-test.dat ``` -To automate the test, a test script named [run_sdcard_test.sh](/files/sdcard/run_sdcard_test.sh) was created. +To automate the test, a test script named [run_sdcard_test.sh](/helios4/files/sdcard/run_sdcard_test.sh) was created. ### Test Procedure -**1.** Prepare the system to boot from SPI and Rootfs located on USB drive. See [SPI (NOR Flash) page](/spi/). +**1.** Prepare the system to boot from SPI and Rootfs located on USB drive. See [SPI (NOR Flash) page](/helios4/spi/). **2.** Build and replace Helios4 dtb as instructed in [Device Tree Modification](#device-tree-modification). @@ -123,7 +123,7 @@ To automate the test, a test script named [run_sdcard_test.sh](/files/sdcard/run ``` sudo apt-get -y install iozone3 -wget https://wiki.kobol.io/files/sdcard/run_sdcard_test.sh +wget https://wiki.kobol.io/helios4/files/sdcard/run_sdcard_test.sh chmod 755 run_sdcard_test.sh ``` @@ -207,7 +207,7 @@ Below a non-exhaustive list of microSD Card models that we tested to check compa #### Kingston Mobile Card microSDHC (16GB) -![Kingston microSDHC 16GB](/img/sdcard/kingston_16gb.jpg) +![Kingston microSDHC 16GB](/helios4/img/sdcard/kingston_16gb.jpg) *Specifications* @@ -271,7 +271,7 @@ And the still did not finished the test after 8 hours. #### Samsung microSDHC UHS-I Card EVO Plus (32GB) -![Samsung EVO Plus 32GB](/img/sdcard/samsung_evo_plus_32gb.jpg) +![Samsung EVO Plus 32GB](/helios4/img/sdcard/samsung_evo_plus_32gb.jpg) *Specifications* @@ -311,13 +311,13 @@ It only changed to ultra high speed after remove and reinsert the card. If the card is used as boot/system drive, it is not allowed to be removed during runtime therefore no performance gain since the speed stays at high speed. -![!Samsung EVO Plus 32GB Test Result](/img/sdcard/test_result_samsung_evo_plus_32gb.png) +![!Samsung EVO Plus 32GB Test Result](/helios4/img/sdcard/test_result_samsung_evo_plus_32gb.png) --- #### SanDisk Extreme microSDHC UHS-I Card (32GB) -![SanDisk Extreme 32GB](/img/sdcard/sandisk_extreme_32gb.png) +![SanDisk Extreme 32GB](/helios4/img/sdcard/sandisk_extreme_32gb.png) *Specifications* @@ -349,13 +349,13 @@ mmcblk0: mmc0:aaaa SM32G 29.7 GiB ``` -![!SanDisk Extreme 32GB Test Result](/img/sdcard/test_result_sandisk_extreme_32gb.png) +![!SanDisk Extreme 32GB Test Result](/helios4/img/sdcard/test_result_sandisk_extreme_32gb.png) --- #### SanDisk Extreme PRO microSDHC UHS-I Card (32GB) -![SanDisk Extreme PRO 32GB](/img/sdcard/sandisk_extreme_pro_32gb.png) +![SanDisk Extreme PRO 32GB](/helios4/img/sdcard/sandisk_extreme_pro_32gb.png) *Specifications* @@ -387,13 +387,13 @@ mmcblk0: mmc0:e624 SP32G 29.7 GiB ``` -![!SanDisk Extreme PRO 32GB Test Result](/img/sdcard/test_result_sandisk_extreme_pro_32gb.png) +![!SanDisk Extreme PRO 32GB Test Result](/helios4/img/sdcard/test_result_sandisk_extreme_pro_32gb.png) --- #### SanDisk Ultra microSD UHS-I Card (32GB) -![SanDisk Ultra smartphone 32GB](/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg) +![SanDisk Ultra smartphone 32GB](/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_32gb.jpg) *Specifications* @@ -428,13 +428,13 @@ mmcblk0: error -84 transferring data, sector 62333824, nr 8, cmd response 0x900, Even though there are some errors, the test finished without much improvement. -![!SanDisk Ultra smartphone 32GB Test Result](/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png) +![!SanDisk Ultra smartphone 32GB Test Result](/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_for_smartphone_32gb.png) --- #### SanDisk Ultra microSD UHS-I Card (16GB) -![SanDisk Ultra smartphone 16GB](/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg) +![SanDisk Ultra smartphone 16GB](/helios4/img/sdcard/sandisk_ultra_uhs-i_for_smartphone_16gb.jpg) *Specifications* @@ -485,7 +485,7 @@ The card was not detected by Linux. #### SanDisk Ultra microSD UHS-I Card 48MBps (16GB) -![SanDisk Ultra 48MBps](/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg) +![SanDisk Ultra 48MBps](/helios4/img/sdcard/sandisk_ultra_uhs-i_48mbps_16gb.jpg) *Specifications* @@ -530,7 +530,7 @@ The card was not detected by Linux. #### SanDisk Ultra microSD UHS-I Card 30MBps (8GB) -![SanDisk Ultra 30 MBps](/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg) +![SanDisk Ultra 30 MBps](/helios4/img/sdcard/sandisk_ultra_uhs-i_8gb.jpg) *Specifications* @@ -565,13 +565,13 @@ mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card s Even though there are some errors, the test finished. Many of test cases see performance reduction. -![!SanDisk Ultra 30 MBps Test Result](/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png) +![!SanDisk Ultra 30 MBps Test Result](/helios4/img/sdcard/test_result_sandisk_ultra_uhs-i_8gb.png) --- #### Strontium Nitro MicroSD Card (16GB) -![Strontium](/img/sdcard/strontium_nitro_16gb.jpg) +![Strontium](/helios4/img/sdcard/strontium_nitro_16gb.jpg) *Specifications* @@ -607,14 +607,14 @@ mmc0: Tuning failed, falling back to fixed sampling clock Even though there are some warnings, the test finished. -![!Strontium Nitro Test Result](/img/sdcard/test_result_strontium_nitro_16gb.png) +![!Strontium Nitro Test Result](/helios4/img/sdcard/test_result_strontium_nitro_16gb.png) --- #### Toshiba MicroSD Exceria Pro (16GB) -![Toshiba Exceria Pro](/img/sdcard/toshiba_exceria_pro_16gb.jpg) +![Toshiba Exceria Pro](/helios4/img/sdcard/toshiba_exceria_pro_16gb.jpg) *Specifications* @@ -649,7 +649,7 @@ The card was not detected by Linux. #### Transcend microSDHC Premium (8GB) -![Transcend](/img/sdcard/transcend_premium_8gb.jpg) +![Transcend](/helios4/img/sdcard/transcend_premium_8gb.jpg) *Specifications* @@ -677,7 +677,7 @@ mmcblk0: mmc0:b368 USD 7.45 GiB mmcblk0: p1 ``` -![!Transcend Premium Test Result](/img/sdcard/test_result_transcend_premium_8gb.png) +![!Transcend Premium Test Result](/helios4/img/sdcard/test_result_transcend_premium_8gb.png) --- diff --git a/docs/spi.md b/docs/helios4/spi.md similarity index 84% rename from docs/spi.md rename to docs/helios4/spi.md index da965f4..046591f 100644 --- a/docs/spi.md +++ b/docs/helios4/spi.md @@ -2,14 +2,14 @@ The A388 System-On-Module used by Helios4 provides an **32 Mbit SPI NOR flash** By default, Helios4 is configured to boot from microSD card. To boot from SPI NOR flash (after [writing U-Boot into SPI NOR flash](#write-u-boot-to-spi-nor-flash)), please change Boot Mode on DIP Switch **SW1** to: -![Boot from SPI](/img/spi/dipswitch_boot_spinor.png) +![Boot from SPI](/helios4/img/spi/dipswitch_boot_spinor.png) ## Build U-Boot for SPI NOR flash -Refer to [U-Boot](/uboot) page to build the image. +Refer to [U-Boot](/helios4/uboot) page to build the image. -*A prebuilt SPI image of U-Boot for Armbian OS can be downloaded from [here (version 2013.01)](/files/uboot/u-boot-armbian-2013.01-spi.bin) or from [here (version 2018.11)](/files/uboot/u-boot-armbian-2018.11-spi.bin).* +*A prebuilt SPI image of U-Boot for Armbian OS can be downloaded from [here (version 2013.01)](/helios4/files/uboot/u-boot-armbian-2013.01-spi.bin) or from [here (version 2018.11)](/helios4/files/uboot/u-boot-armbian-2018.11-spi.bin).* ## Write U-Boot to SPI NOR flash @@ -54,14 +54,14 @@ sudo apt-get -y install linux-u-boot-helios4-next *U-Boot 2018.11* ``` -wget https://wiki.kobol.io/files/uboot/u-boot-armbian-2018.11-spi.bin +wget https://wiki.kobol.io/helios4/files/uboot/u-boot-armbian-2018.11-spi.bin sudo mv u-boot-armbian-2018.11-spi.bin /usr/lib/linux-u-boot-next-helios4_*/u-boot.flash ``` *Marvell U-Boot 2013.01* ``` -wget https://wiki.kobol.io/files/uboot/u-boot-armbian-2013.01-spi.bin +wget https://wiki.kobol.io/helios4/files/uboot/u-boot-armbian-2013.01-spi.bin sudo mv u-boot-armbian-2013.01-spi.bin /usr/lib/linux-u-boot-next-helios4_*/u-boot.flash ``` @@ -85,11 +85,11 @@ sudo nand-sata-install 6) Select option **Install/Update the bootloader on SPI Flash** -![Install Bootloader menu](/img/spi/armbian_install_u-boot_menu.png) +![Install Bootloader menu](/helios4/img/spi/armbian_install_u-boot_menu.png) And confirm the operation -![Bootloader write confirmation](/img/spi/armbian_install_u-boot_write_confirmation.png) +![Bootloader write confirmation](/helios4/img/spi/armbian_install_u-boot_write_confirmation.png) 7) If you want to take the opportunity to move your RootFS to another device, jump to this [section](#moving-rootfs-to-other-device). Otherwise you may disable spi_workaround in /boot/armbianEnv.txt @@ -97,22 +97,22 @@ And confirm the operation 8) Set DIP switches **SW1** to SPI Boot and reboot the system. -![Boot from SPI](/img/spi/dipswitch_boot_spinor.png) +![Boot from SPI](/helios4/img/spi/dipswitch_boot_spinor.png) ### Under Generic Linux !!! info - You will need to access to Helios4 via Serial Console. Please refer to [Install](/install/#step-4-connect-to-helios4-serial-console) page for instructions. + You will need to access to Helios4 via Serial Console. Please refer to [Install](/helios4/install/#step-4-connect-to-helios4-serial-console) page for instructions. 1) Upload the U-Boot SPI binary that you built to Helios4 and rename it as **u-boot-spi.bin**. -2) Download boot_spi_en.scr from [here](/files/uboot/boot_spi_en.scr) and put it to /boot/. +2) Download boot_spi_en.scr from [here](/helios4/files/uboot/boot_spi_en.scr) and put it to /boot/. ``` -sudo wget https://wiki.kobol.io/files/uboot/boot_spi_en.scr -O /boot/boot_spi_en.scr +sudo wget https://wiki.kobol.io/helios4/files/uboot/boot_spi_en.scr -O /boot/boot_spi_en.scr ``` -*Source code of boot_spi_en.scr can be found [here](/files/uboot/boot_spi_en.cmd).* +*Source code of boot_spi_en.scr can be found [here](/helios4/files/uboot/boot_spi_en.cmd).* 3) Switch to Helios4 serial console, then reboot the system @@ -147,7 +147,7 @@ sudo dd if=~/u-boot-spi.bin of=/dev/mtdblock0 7) Set DIP switches **SW1** to SPI Boot and reboot the system. -![Boot from SPI](/img/spi/dipswitch_boot_spinor.png) +![Boot from SPI](/helios4/img/spi/dipswitch_boot_spinor.png) Observe the first lines of boot message on serial console, it should display @@ -159,7 +159,7 @@ Booting from SPI flash ### Under U-Boot !!! info - You will need to access to Helios4 via Serial Console. Please refer to [Install](/install/#step-4-connect-to-helios4-serial-console) page for instructions. + You will need to access to Helios4 via Serial Console. Please refer to [Install](/helios4/install/#step-4-connect-to-helios4-serial-console) page for instructions. 1) Upload the U-Boot SPI binary to /boot folder on Helios4 and rename it as **u-boot-spi.bin**. @@ -233,7 +233,7 @@ sudo nand-sata-install 3) Select option **Boot from SPI - system on SATA, USB or NVMe** -![Move RootFS menu](/img/spi/armbian_move_rfs_menu.png) +![Move RootFS menu](/helios4/img/spi/armbian_move_rfs_menu.png) And follow the on screen instructions. diff --git a/docs/syncloud.md b/docs/helios4/syncloud.md similarity index 66% rename from docs/syncloud.md rename to docs/helios4/syncloud.md index 905637c..e389371 100644 --- a/docs/syncloud.md +++ b/docs/helios4/syncloud.md @@ -6,15 +6,15 @@ You can download latest Syncloud release for Helios4 and other devices [here](ht ## Prepare microSD Card -Refer to the [Install](/install) page for instructions on how to prepare your microSD card and how to start and connect to your Helios4. +Refer to the [Install](/helios4/install) page for instructions on how to prepare your microSD card and how to start and connect to your Helios4. ## Activate Syncloud First you will need to create an account at [syncloud.it](http://syncloud.it/register.html). -![Syncloud Registration](/img/syncloud/registration.png) +![Syncloud Registration](/helios4/img/syncloud/registration.png) -![Syncloud Add Device](/img/syncloud/add_device.png) +![Syncloud Add Device](/helios4/img/syncloud/add_device.png) Once it's done you can perform the activation of your Helios4 device by one of the following two methods: @@ -27,43 +27,43 @@ Open your browser and connect to Helios4 on port 81 (e.g http://10.10.10.1:81) Fill the form and press *Activate*. -![Syncloud Activation](/img/syncloud/activation.png) +![Syncloud Activation](/helios4/img/syncloud/activation.png) ### Via Mobile App Install Syncloud app on your smartphone and use it to find and activate your Syncloud device. Syncloud app is simple and intuitive, watch [this demo video](https://www.youtube.com/watch?v=EXJFvWeQw_s). -[![Syncloud Android](/img/syncloud/play_market.png)](https://play.google.com/store/apps/details?id=org.syncloud.android) +[![Syncloud Android](/helios4/img/syncloud/play_market.png)](https://play.google.com/store/apps/details?id=org.syncloud.android) -[![Syncloud IOS](/img/syncloud/app_store.png)](https://itunes.apple.com/app/id1031784126) +[![Syncloud IOS](/helios4/img/syncloud/app_store.png)](https://itunes.apple.com/app/id1031784126) ## Configure storage !!! note - You might want first to setup your RAID array before configuring the storage in Syncloud. Refer to the following [Mdadm](/mdadm) page for guideline on how to setup a RAID array. The credentials to connect via SSH to Helios4 are described [here](/syncloud/#additional-information). + You might want first to setup your RAID array before configuring the storage in Syncloud. Refer to the following [Mdadm](/helios4/mdadm) page for guideline on how to setup a RAID array. The credentials to connect via SSH to Helios4 are described [here](/helios4/syncloud/#additional-information). First thing you will need to do is to activate the storage you want to use. Go to *Settings > Storage* -![Syncloud Storage](/img/syncloud/storage_page.png) +![Syncloud Storage](/helios4/img/syncloud/storage_page.png) Toggle the activation switch(es) to add storage device(s). You should also press *Extend* in order to expand the main partition on your microSD card. -![Syncloud Add Storage](/img/syncloud/storage_add.png) +![Syncloud Add Storage](/helios4/img/syncloud/storage_add.png) ## Install Application Go to *App Center* and click on the application you want to install. -![Syncloud Applications](/img/syncloud/applications.png) +![Syncloud Applications](/helios4/img/syncloud/applications.png) Press *Install*. You can wait for the process to finish or go back to *App Center* in order to install another application. -![Syncloud App Install](/img/syncloud/app_installation.png) +![Syncloud App Install](/helios4/img/syncloud/app_installation.png) @@ -74,7 +74,7 @@ Installed applications will appear on the *Apps* dashboard. Simply click on an a !!! Important Default User and Password for each application will the be the one you setup in device credentials during activation. -![Syncloud Dashboard](/img/syncloud/dashboard.png) +![Syncloud Dashboard](/helios4/img/syncloud/dashboard.png) diff --git a/docs/uboot.md b/docs/helios4/uboot.md similarity index 90% rename from docs/uboot.md rename to docs/helios4/uboot.md index 7e88d49..5e916bd 100644 --- a/docs/uboot.md +++ b/docs/helios4/uboot.md @@ -73,7 +73,7 @@ make helios4_defconfig ``` !!! note - To support Armbian boot script (/boot/boot.scr), please apply [this patch](/files/uboot/u-boot-mainline-armbian-boot-script-support.patch) to U-Boot source code before + To support Armbian boot script (/boot/boot.scr), please apply [this patch](/helios4/files/uboot/u-boot-mainline-armbian-boot-script-support.patch) to U-Boot source code before *make helios4_defconfig* @@ -123,7 +123,7 @@ Launch configuration editor make menuconfig ``` -![menuconfig main](/img/u-boot/u-boot_menuconfig_main.png) +![menuconfig main](/helios4/img/u-boot/u-boot_menuconfig_main.png) After exiting the configuration editor and saving the configuration, build the image according to [SD Card image](#sd-card-image) or [SPI NOR flash image](#spi-nor-flash-image) instructions. @@ -165,7 +165,7 @@ make mrproper To compile using Ubuntu 16.04 cross compiler, please apply [this patch](https://github.com/armbian/build/blob/master/patch/u-boot/u-boot-mvebu/tools-bin_hdr-compiler-fixes.patch) to U-Boot source code. !!! note - To support Armbian boot script (/boot/boot.scr), please apply [this patch](/files/uboot/u-boot-armbian-boot-script-support.patch) to U-Boot source code. + To support Armbian boot script (/boot/boot.scr), please apply [this patch](/helios4/files/uboot/u-boot-armbian-boot-script-support.patch) to U-Boot source code. #### SD Card image @@ -230,11 +230,11 @@ sudo nand-sata-install 4) Select option **Install/Update the bootloader on SD/eMMC** -![armbian install bootloader menu](/img/u-boot/armbian_install_bootloader_sdcard_menu.png) +![armbian install bootloader menu](/helios4/img/u-boot/armbian_install_bootloader_sdcard_menu.png) 5) Confirm the operation -![armbian bootloader write confirmation](/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png) +![armbian bootloader write confirmation](/helios4/img/u-boot/armbian_install_bootloader_sdcard_write_confirmation.png) 6) Reboot the system @@ -262,4 +262,4 @@ sudo reboot ### SPI NOR Flash -Please refer to instructions in [SPI (NOR flash) page](/spi/#write-u-boot-to-spi-nor-flash). +Please refer to instructions in [SPI (NOR flash) page](/helios4/spi/#write-u-boot-to-spi-nor-flash). diff --git a/docs/wol.md b/docs/helios4/wol.md similarity index 91% rename from docs/wol.md rename to docs/helios4/wol.md index f649d77..595edb5 100644 --- a/docs/wol.md +++ b/docs/helios4/wol.md @@ -1,4 +1,4 @@ -![Ethernet PHY](/img/wol/schematic.png) +![Ethernet PHY](/helios4/img/wol/schematic.png) The Armada 388 SoC provides several trigger options from different peripherals to wake up the system out of power save modes. Some of the options are: @@ -31,7 +31,7 @@ Linux provides gpio-keys driver to handle GPIO event and can be configured as wa }; ``` -Device Tree Patch can be found [here](/files/wol/helios4-dts-add-wake-on-lan-support.patch). +Device Tree Patch can be found [here](/helios4/files/wol/helios4-dts-add-wake-on-lan-support.patch). ### Kernel @@ -88,7 +88,7 @@ This will raise following issues: To fix the issue, gpio-mvebu driver needs to be patched to implement [irq_set_wake()](https://www.kernel.org/doc/html/v4.14/core-api/genericirq.html?highlight=irq_set_wake#c.irq_chip) and only enable interrupt on GPIO defined as wakeup source. -Patch for Linux Kernel 4.14.x can be found [here](/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch) +Patch for Linux Kernel 4.14.x can be found [here](/helios4/files/wol/lk4.14-mvebu-gpio-add_wake_on_gpio_support.patch) ## Enabling WOL @@ -133,7 +133,7 @@ sudo systemctl suspend ``` !!! important - Only execute this command after enabling WOL otherwise there is a risk that Helios4 will not wake up when receiving magic packet. More explanation regarding this issue on [here](/wol/#unexpected-packet). + Only execute this command after enabling WOL otherwise there is a risk that Helios4 will not wake up when receiving magic packet. More explanation regarding this issue on [here](/helios4/wol/#unexpected-packet). ## Wake up System @@ -187,7 +187,7 @@ Measured using Sonoff POW R2 on AC side !!! note * Nominal Input Voltage: 220V * HDD: 4x WD Red 2TB (WD20EFRX) - * [I2C OLED screen](/i2c/) attached to the systems + * [I2C OLED screen](/helios4/i2c/) attached to the systems ## Issues @@ -201,6 +201,6 @@ Therefore it is advised to always enable WOL (**sudo ethtool -s eth0 wol g**) be ### Thermal -When system is put in suspend mode, the PWM feature controlling the fan speed is stopped. The fans will either spin at their lowest speed ([Batch 1 & 3 fan](/pwm/#type-a-fan-batch-1-3)) or stop spinning ([Batch 2 fan](/pwm/#type-c-fan-batch-2)). In the latest case, while it is not an issue for the SoC itself which is designed to run with passive cooling, it might have a negative impact on the HDD peripherals because the ambient temperature inside the case will rise. +When system is put in suspend mode, the PWM feature controlling the fan speed is stopped. The fans will either spin at their lowest speed ([Batch 1 & 3 fan](/helios4/pwm/#type-a-fan-batch-1-3)) or stop spinning ([Batch 2 fan](/helios4/pwm/#type-c-fan-batch-2)). In the latest case, while it is not an issue for the SoC itself which is designed to run with passive cooling, it might have a negative impact on the HDD peripherals because the ambient temperature inside the case will rise. **Therefore it is advised to ensure that when system is suspended the case ambient temperature will not exceed the operating temperature your HDDs are rated for.** diff --git a/docs/helios64/img/intro/helios64.jpg b/docs/helios64/img/intro/helios64.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a026dbc38b458207001e21c7a79099418f74b43 GIT binary patch literal 66911 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 DObXhG literal 0 HcmV?d00001 diff --git a/docs/helios64/img/intro/helios64_heatsink.jpg b/docs/helios64/img/intro/helios64_heatsink.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55c41524cefcd950e10dc8a31ba5bcc0b7d9d6b5 GIT binary patch literal 72556 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

xMVnCv^c2F1 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 NC-@Hl9`JAN{{ZYG7>@t| literal 0 HcmV?d00001 diff --git a/docs/helios64/intro.md b/docs/helios64/intro.md new file mode 100644 index 0000000..9e7f94f --- /dev/null +++ b/docs/helios64/intro.md @@ -0,0 +1,7 @@ +disqus: + +# Helios64 Introduction. + +**Coming Up Soon !** + +![Helios64](/helios64/img/intro/helios64_heatsink.jpg) diff --git a/docs/img/favicon.png b/docs/img/favicon.png index d852cda0e8739ca1c4303e2d3059c966bd28c469..9cea17f529fbc913628389668ff2f3a07959c054 100644 GIT binary patch delta 581 zcmV-L0=oU?4&DTiB!2{RLP=Bz2nYy#2xN!=000SaNLh0L00w9P00w9Q#Je-J0000P zbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$R+et)0R9J=Wl~1c_Q5eRb zy^{QyDQ0S?B)ce^WMV`HjC=rMBp*S^5FdeofguB9DI*gZ*nh>qKuLy3Mrft&jIQoJ zYoB}ecF(=%4E8g7pY^t$U%hW@ap7?Ifo~M~&Ts?305AZ41c2$Y28+dlU@!=m%LTL9 ztm#rpDfat47K;ULx7%v~cDo&=QVH2?7FMfOQ}BCTuU8BP1GL+1TrL;Y9!~8kb~qep zwOa6aJTC>m*MEAwM!8(Z`Fv*1m>u9a4$Wrs%fbP`>-C~uudALhBZ$Z25JgeptyU|{ z=X2cecTIsNlL?VX1U{ed=|!Va#9}c_r_(EU50AzkgT^z;3rw)VW*^gy`oagrHC; zD7@`<%k(ijFdmPQ$z+~&I-Lg3^N=J-*Aj}N2*2O2@JFN3=Kzz*1d=2n6bd~(K@cDa zf~N3~G@H$s1q4(^@OV5>sZ^Lz{Ear74XV|u>Y3_rkH;hO`8@jlJ}9Lx2UAMX>-A79 z7I8YAR6cuDpW@$Tv)K>`1mJW!b$v#M!vV|X^20wsGr+&r&wB?900Y1P_}_X1);yUv Tu&#?x00000NkvXXu0mjf7mou^ delta 1879 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 diff --git a/docs/img/kobol_logo.png b/docs/img/kobol_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..59172deee6632762536f660cf43289c714eb8e54 GIT binary patch literal 5318 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 Y2VOxI@((UYo&W#<07*qoM6N<$f)_bUnE(I) literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 1f8d99b..b446d94 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,76 +1,27 @@ disqus: -# Welcome to the Helios4 Wiki. +# Welcome to Kobol Wiki -Helios4 is a powerful ARM based board specially designed for Network Attached Storage. It harnesses its processing capabilities from the **ARMADA 38x-MicroSoM** from [SolidRun](https://wiki.solid-run.com/doku.php?id=products:a38x:microsom). +**Kobol** Network Attached Storage (NAS) are open source projects, therefore any technical data related to these projects will be published on this Wiki. - +Beside consolidating technical data, the purpose of this Wiki is also to provide guidelines on how to setup and manage your **Kobol** NAS. -The **Marvell ARMADA® 388** is a robust and energy-efficient System on Chip (SoC) with a collection of high speed interfaces especially suited for headless data processing, networking and storage. This Dual-core ARM Cortex A9 CPU clocked at 1.6 Ghz, paired with 2GB of ECC memory, integrates a Cryptographic and XOR DMA engines to provide the best level of performance and reliability for NAS functionalities. +Here our existing projects : -The Helios4 is an open source and open hardware project, therefore our objective is to publish any data related to the project on this Wiki. +## Helios64 -**Beside consolidating technical data, the purpose of this Wiki is also to provide guideline on how to setup your Helios4.** +[![Helios64](/helios64/img/intro/helios64.jpg)](/helios64/intro) -## Overall Specifications +* Launch Year : 2020 +* Availability : In-Production -|**Board Specifications**|| -|------------|-----------| -|**SoC**|| -|SoC Model|Marvell Armada 388 (88F6828)
ARM Cortex-A9| -|SoC Architecture|ARMv7 32-bit| -|CPU Frequency|Dual Core 1.6 Ghz| -|Additional Features|- RAID Acceleration Engines
- Security Acceleration Engines
- Wake-on-LAN| -|**Memory**|| -|System Memory|2GB DDR3L ECC| -|**HDD/SSD Interfaces**|| -|SATA 3.0 Ports|4| -|Max Raw Capacity|48 TB (12 TB drive x 4)| -|Max Single Volume Size|16 TB| -|**External Interfaces**|| -|GbE LAN Port|1| -|USB 3.0|2| -|microSD (SDIO 3.0)|1| -|**Developer Interfaces**|| -|GPIO|12| -|I2C|1| -|UART|1 (via onboard Micro-USB converter)| -|**Others**|| -|Boot Mode Selector|- SPI
- SD Card
- UART
- SATA| -|SPI NOR Flash|32Mbit onboard| -|PWM FAN|2| -|RTC Battery|1| -|DC input|12V / 8A| +**Go to [Helios64 section](/helios64/intro) for more info.** -|**Mechanical Specifications**|| -|------------|-----------| -|Board Dimension|100mm x 100mm| -|Board Weight|120gr| -|Case Dimention (H x W x D)|182 mm x 107 mm x 210 mm| -|Case Weight (without HDD)|450gr| -|Case Material|Colored Acrylic| +## Helios4 -|**Software Specifications**|| -|------------|-----------| -|Operating System|Linux Debian and Ubuntu| -|Kernel Version|4.14 -|U-Boot Version|2018.11 -|Software Partners|- Armbian: Debian and Ubuntu for ARM board
- OpenMediaVault: Linux NAS turn-key solution
- Syncloud: Cloud services at your premises| +[![Helios4](/helios4/img/intro/helios4.jpg)](/helios4/intro) -## Where to Start ? +* Launch Year : 2017 +* Availability : End-of-Life -Once you have received your Helios4, this wiki will run you through all the necessary steps to setup your system. - -1. [Kit Assembly](/kit) - How to put together your Helios4. - -2. [Download](/download) - Get the latest OS build to install. - -3. [Install](/install) - 1st startup and set-up instructions. - -4. [Software](/omv) - Collection of tutorials on different 3rd party applications. - -5. [Hardware](/hardware) - Understand Helios4 hardware and take advantage of all its features. - -### Armbian Support Forum - -If you are facing an issue, you can go on the **Armbian** forum to ask for some help. There is a thread dedicated to [Helios4 support](https://forum.armbian.com/topic/6033-helios4-support/). +**Go to [Helios4 section](/helios4/intro) for more info.** diff --git a/mkdocs.yml b/mkdocs.yml index ef221e8..5f6af3a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,11 +1,11 @@ # Project information -site_name: 'Helios4 Wiki' -site_description: 'Helios4 Wiki' +site_name: 'Kobol Wiki' +site_description: 'Kobol Wiki' site_author: 'Kobol Team' site_url: 'https://wiki.kobol.io' # Repository -repo_name: 'Helios4 GitHub Repo' +repo_name: 'Kobol GitHub Repo' repo_url: 'https://github.com/helios-4' edit_uri: '' @@ -17,7 +17,7 @@ theme: name: 'material' language: 'en' favicon: './img/favicon.png' - logo: './img/helios4_logo.png' + logo: './img/kobol_logo.png' custom_dir: 'theme' palette: primary: 'teal' @@ -31,7 +31,7 @@ theme: extra: social: - type: 'home' - link: 'https://kobol.io/helios4' + link: 'https://kobol.io' - type: 'github' link: 'https://github.com/helios-4' - type: 'facebook' @@ -66,29 +66,33 @@ markdown_extensions: # Page naming nav: -- Introduction: 'index.md' -- Kit Assembly: 'kit.md' -- Download: 'download.md' -- Install: 'install.md' -- O/S: - - Arch Linux : 'arch.md' - - Armbian : 'armbian.md' - - FreeBSD : 'freebsd.md' - - Syncloud : 'syncloud.md' - - U-Boot (bootloader) : 'uboot.md' -- Software: - - Mdadm (RAID) : 'mdadm.md' - - NextCloud : 'nextcloud.md' - - OpenMediaVault : 'omv.md' -- Hardware: - - Overview : 'hardware.md' - - CESA (HW Crypto) : 'cesa.md' - - GPIO : 'gpio.md' - - I2C (OLED) : 'i2c.md' - - LED : 'led.md' - - PWM (Fan) : 'pwm.md' - - SDIO (SD Card) : 'sdcard.md' - - SPI (NOR Flash) : 'spi.md' - - Wake-on-LAN : 'wol.md' -- Documents: 'docs.md' +- Welcome: 'index.md' +- Helios64: + - Introduction: 'helios64/intro.md' +- Helios4: + - Introduction: 'helios4/intro.md' + - Kit Assembly: 'helios4/kit.md' + - Download: 'helios4/download.md' + - Install: 'helios4/install.md' + - O/S: + - Arch Linux : 'helios4/arch.md' + - Armbian : 'helios4/armbian.md' + - FreeBSD : 'helios4/freebsd.md' + - Syncloud : 'helios4/syncloud.md' + - U-Boot (bootloader) : 'helios4/uboot.md' + - Software: + - Mdadm (RAID) : 'helios4/mdadm.md' + - NextCloud : 'helios4/nextcloud.md' + - OpenMediaVault : 'helios4/omv.md' + - Hardware: + - Overview : 'helios4/hardware.md' + - CESA (HW Crypto) : 'helios4/cesa.md' + - GPIO : 'helios4/gpio.md' + - I2C (OLED) : 'helios4/i2c.md' + - LED : 'helios4/led.md' + - PWM (Fan) : 'helios4/pwm.md' + - SDIO (SD Card) : 'helios4/sdcard.md' + - SPI (NOR Flash) : 'helios4/spi.md' + - Wake-on-LAN : 'helios4/wol.md' + - Documents: 'helios4/docs.md' - About: 'about.md' diff --git a/theme/partials/header.html b/theme/partials/header.html index 9818c1f..cf43ed4 100644 --- a/theme/partials/header.html +++ b/theme/partials/header.html @@ -35,7 +35,7 @@ {% if config.theme.logo.icon %} {{ config.theme.logo.icon }} {% else %} - + {% endif %} @@ -89,7 +89,7 @@