MichaIng / DietPi

Lightweight justice for your single-board computer!
https://dietpi.com/
GNU General Public License v2.0
4.9k stars 499 forks source link

Image | NanoPC T4 #1829

Closed Fourdee closed 6 years ago

Fourdee commented 6 years ago

Many thanks to FriendlyElec for sending us sample dev boards!

http://www.friendlyarm.com/index.php?route=product/product&product_id=225 image

carlosedp commented 6 years ago

In theory it should, at least the feature CONFIG_BLK_DEV_NVME=y to support it is enabled on the Kernel (I don't have a M.2 drive to test). Check on yours with:

sudo modprobe configs
zcat /proc/config.gz|grep NVME

The drive is supposed to be on /dev/nvme*. Does lspci or lsblk shows it?

sergiud commented 6 years ago

$ zcat /proc/config.gz | grep NVME gives:

CONFIG_BLK_DEV_NVME=y
CONFIG_NVMEM=y

There are no /dev/nvme* devices though. lspci output is empty.

alex-savin commented 6 years ago

@sergiud same here SSD was not detected

sergiud commented 6 years ago

@alex-savin Thanks for the info. Which SSD have you tested?

By the way, FriendlyElec distros also do not detect my WD Green M.2 2280 SSD.

Fourdee commented 6 years ago

@alex-savin @sergiud @carlosedp

Hi guys,

I've sent an email to FriendlyElec, with link to this ticket, hopefully they can provide some assistance.

Unfortunately, I also lack any .M2 drives, unable to test. However, its on my shopping list.

Fourdee commented 6 years ago

Hi all,

Friendlyelec mentions that only NVME based SSD's (eg: PCI-e. Not SATA) are supported on the hardware.

This is confirmed (@MichaIng finally treated myself to one!!!) image

Hardware limited write speed on NanoPC-T4/RK (using 970 EVO) image

MichaIng commented 6 years ago

@Fourdee Great, I just updated the fs expansion script as I found that indeed the partitions on NVMe drives follow naming scheme: https://github.com/Fourdee/DietPi/commit/eae7af9d50775d833c2c672a344f364df1b02ae5 /dev/nvme[0-9]n[0-9]p[0-9]

First integer might be controller number, second drive number and only third is partition number.

Could you confirm that in your case there is no partition table on the drive? We would need to fix drive manager then to handle this correctly.

Fourdee commented 6 years ago

@MichaIng

Moved reply to: https://github.com/Fourdee/DietPi/issues/2102#issuecomment-426380222

rolandoman commented 6 years ago

Has anyone succeeded in getting the two MIPI-CSI2 cameras working with DietPi on the NanoPC-T4? I have an application that requires stereo vision, and I don't want to move to Android. If anyone can point me in the right direction it would be much appreciated. I have played around with the vendor build from friendlyarm but their debian and ubuntu releases do not support the cameras. Thanks in advance!!

dagamboa commented 6 years ago

I just received my board today, for updating the kernel and such we need to use the rockchip tools? Or as usual using the dietpi software?

Fourdee commented 6 years ago

@LieDanG

Our current image uses a modified kernel of FriendlyARM, provided and maintained by @carlosedp. It includes additions such as CIFS and NFS support.

If @carlosedp can provide an updated kernel, we will update the image. Kernel updates will require a fresh image write.

carlosedp commented 6 years ago

Hey @Fourdee I've compiled the last Rockchip Kernel version 4.4.154 and uploaded it to: https://we.tl/t-241Gjd7EJN

I've built for the NanoPC-T4 and the Firefly RK3399 (they are named accordingly). Can you replace the files on the packageds here and https://github.com/Fourdee/DietPi/issues/1986 ? Just remember to rename the files to match the AndroidFlashTool config.

The modules are there too.

Thanks!

dagamboa commented 6 years ago

I'll wait for the updated image, I tried flashing the current one but I only get a localhost login and can't get past of it, the friendlydesktop image boots fine so I'm not sure what's happening

Fourdee commented 6 years ago

Unable to dump rootfs from device after update. Start is 0x000B2000, fails everytime, even on para dump 0 - 2 http://chinagadgetsreviews.blogspot.com/2014/09/download-androidtool-v21.html

So, need to PREP, then:


Manpages / Docs

Global - Files

MS Windows specific

RSYNC_RUN_OPTIONS_BACKUP="-aH --info=name0 --info=progress2 --delete --delete-excluded --exclude-from=$FP_FILTER_INCLUDE_EXCLUDE"

mkdir -p /mnt/dietpi-backup

apt-get clean

rsync $RSYNC_RUN_OPTIONS_BACKUP / /mnt/dietpi-backup/

tar -zcvf /root/rootfs.tar.gz /mnt/dietpi-backup

echo 1 > /DietPi/dietpi/.install_stage echo 1 > /DietPi/dietpi/.update_stage

Samba server

dietpi-software install 96

mv /root/*.tar.gz /mnt/dietpi_userdata/

-------

Copy to z83 for extraction to rootfs.img.iso

-------

Fourdee commented 6 years ago

@carlosedp

Legend, thanks for updating the kernel for NanoPC-T4. I've updated the image and works a charm: https://dietpi.com/downloads/images/DietPi_NanoPCT4-ARMv8-Stretch.7z

IvanCaregnato commented 6 years ago

Hi guys, any chance to get Kodi available on it?

sergiud commented 6 years ago

@IvanCaregnato I second that. However, this will require working GPU acceleration.

As a side note, I'm not able to run Kodi on FriendlyElec's stock Ubuntu flavored (Bionic) distribution. Kodi stutters heavily. Might be a GPU driver issue though.

IvanCaregnato commented 6 years ago

yes I've sadly noticed that...even on the "not update" RKMC is pretty unusable

pshempel commented 6 years ago

This does not provide a serial console to login, it does give output, but no input. It just does } ] as an output once the login screen comes up. Logging into the console, you get kicked out when logging in with root and dietpi Also after looking at the source of this, who thought that putting into shadow the password for dietpi as plain text dietpi would work? The issue with the login is not only on this hardware I have put this onto another odroid as well and serial console does the same thing. Not sure if anyone even tests that from what I can see. So this is not a usable system at all as No networking - this system comes up with no network. It errors out during boot

Fourdee commented 5 years ago

@pshempel

Hi,

Serial console is disabled after initial boot up. You can override this by setting CONFIG_SERIAL_CONSOLE_ENABLE=1 in /boot/dietpi.txt before 1st run of the device.

Logging into the console, you get kicked out when logging in with root and dietpi

This does not occur in our local testing, possible a bad image write, insufficient PSU?

Also after looking at the source of this, who thought that putting into shadow the password for dietpi as plain text dietpi would work?

AUTO_SETUP_GLOBAL_PASSWORD= in dietpi.txt is an automation option. After 1st run setup, the plain password is removed, then stored with SHA encryption on rootfs.

No networking - this system comes up with no network. It errors out during boot

I suspect a bad image write or failing PSU/SD card.

For us to assist you further, please state:

pshempel commented 5 years ago

I am using the onboard 16G MMC. I have installed Armbian and I have no problems with that working. I would prefer Dietpi as it usually has better support for the hardware. BTW, this is on of two of these devices that have the same issues.

Hi,

Serial console is disabled after initial boot up. You can override this by setting CONFIG_SERIAL_CONSOLE_ENABLE=1 in /boot/dietpi.txt before 1st run of the device.

Logging into the console, you get kicked out when logging in with root and dietpi

This does not occur in our local testing, possible a bad image write, insufficient PSU?

The PSU are both the models sent with the device 12V DC 5 amp

Also after looking at the source of this, who thought that putting into shadow the password for dietpi as plain text dietpi would work?

AUTO_SETUP_GLOBAL_PASSWORD= in dietpi.txt is an automation option. After 1st run setup, the plain password is removed, then stored with SHA encryption on rootfs.

No networking - this system comes up with no network. It errors out during boot

I suspect a bad image write or failing PSU/SD card.

For us to assist you further, please state:

  • PSU (make,model,voltage,amp)
  • SD card used

No sdcard

Nothing attached to it except serial. Serial does work for the input on the system as I can stop the boot and work from there. The only thing that does not work is the login. And that as I stated seems to be an issue with all of the systems that I have used. The odroid and both of these. The serial console is working but the login does not.

On the odroid it does the same thing, you can type your login info but never lets you login. I have verified that secuertty is configured correctly. The only thing different is on this image it just sets there kicking out the strange symbols

] ]

                                       ]

                                                   ]

And it continues on like that.

The and how do you edit the boot settings in the emmc ? That is one thing I don't understand, I have booted off of the sdcard and looked at the partitions and none of them seem to be ext[234] formats.

--

Fourdee commented 5 years ago

@pshempel

The only thing different is on this image it just sets there kicking out the strange symbols

Yep, the serial connection is a "strange" baud rate 1500000, check below: https://github.com/Fourdee/DietPi/issues/1519#issuecomment-368251442

The and how do you edit the boot settings in the emmc ?

You'll need to extract the image with RK tools, mount to loopback and modify the file, then re-pack with RK tools.

I have booted off of the sdcard and looked at the partitions and none of them seem to be ext[234] formats.

EMMC partitions may not show up when using SD, due to boot method of device.


REF: https://github.com/Fourdee/DietPi/issues/2313

ramgopalkota commented 5 years ago

In NanoPC-T4, I have connected XPG SX6000 Lite SSD (PCIe Based) SSD but lspci is empty and also I did not find any driver /dev/nvme. How to debug the NVMe based SSDs being detected or not ? Is Samsung 970 EVO is only supported ?

Datasheet of XPG SX6000 Lite.. http://www.xpg.com/us/feature/597

MichaIng commented 5 years ago

@ramgopalkota Hmm, not sure if M.2 Gen3x4 requires some special support, but I suggest this is all backwards compatible. I don't have much experience with neither M.2 nor NVMe in general.

However as a general debug I suggest you check:

dmesg
journalctl

Ah and there seems to be a kernel module, perhaps on T4 this is not baked into the kernel but needs to be enabled:

modinfo nvme
lsmod

EDIT: Expanded above posts on this topic and found: https://github.com/MichaIng/DietPi/issues/1829#issuecomment-422564060

ramgopalkota commented 5 years ago

Thanks for prompt reply. I do see some voltage/power failed logs in boot log. Is there anything I need to do in dts file ?? Or is it related to my power supply ? I am using 12V/4A supply.

root@DietPi:~# journalctl | grep -i pci
                                   PCI I/O : 0xffffffbffee00000 - 0xffffffbfffe00000   (    16 MB)
Jun 26 19:43:28 DietPi kernel: PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
Jun 26 19:43:28 DietPi kernel: PCI: CLS 0 bytes, default 64
Jun 26 19:43:28 DietPi kernel: phy phy-pcie-phy.5: Looking up phy-supply from device tree
Jun 26 19:43:28 DietPi kernel: phy phy-pcie-phy.5: Looking up phy-supply property in node /pcie-phy failed
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: GPIO lookup for consumer ep
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: using device tree for GPIO lookup
Jun 26 19:43:28 DietPi kernel: of_get_named_gpiod_flags: parsed 'ep-gpios' property of node '/pcie@f8000000[0]' - status (0)
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply from device tree
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie3v3-supply property in node /pcie@f8000000 failed
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: no vpcie3v3 regulator found
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply from device tree
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie1v8-supply property in node /pcie@f8000000 failed
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: no vpcie1v8 regulator found
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply from device tree
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: Looking up vpcie0v9-supply property in node /pcie@f8000000 failed
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: no vpcie0v9 regulator found
Jun 26 19:43:28 DietPi kernel: rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
Jun 26 19:43:28 DietPi kernel: rockchip-pcie: probe of f8000000.pcie failed with error -110
Jun 26 19:43:28 DietPi kernel: ehci-pci: EHCI PCI platform driver

"find /lib/modules -name nvme" returns nothing.

root@DietPi:~# zcat /proc/config.gz | grep NVME
CONFIG_BLK_DEV_NVME=y
CONFIG_NVMEM=y
ramgopalkota commented 5 years ago

I dumped the DTS by using dts compiler (dts command) dtc -I fs -O dts /sys/firmware/devicetree/base and I am attaching the output. I did not find vcc3v3-pcie-regulator ... Is there a new dts file which I need to use.

dts-file.txt

MichaIng commented 5 years ago

@ramgopalkota Okay the Looking up vpcie... no regulartor found errors seam to be normal on RK3399 boards, influding Firefly and RockPro64 from what I found, without affecting drives: https://forum.pine64.org/showthread.php?tid=6449

Yours is different from rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout! on.

Now found: https://github.com/rockchip-linux/kernel/issues/116 The workaround, to add a 1s delay between training and bus scanning, has been implemented into current Ayufan kernel release: https://github.com/ayufan-rock64/linux-kernel/commit/3cde5c624c9c39aa03251a55c2d26a48b5bdca5b

No idea how the FriendlyARM implements the kernel and which one is based on, to be true, also I can't check our image due to the special eMMC build.

Can you check if/which kernel deb packages are installed? dpkg -l linux-*

@Fourdee Btw the libmali packages are available for arm64 as well since some months: https://github.com/rockchip-linux/rk-rootfs-build/tree/master/packages/arm64/libmali

ramgopalkota commented 5 years ago

Hi I have also posted to friendlyarm forum but no one replied.

I am currently using diet-pi .7z . I will be trying friendlyarm image over the weekend to see if it makes any difference.

I did not do till now since both kernel versions are same.

Can you tell me what needs to be added to cmdline ? Is there any file in diet-pi to set cmdline

MichaIng commented 5 years ago

@ramgopalkota There is nothing you can do with the cmdline as long as the patch by nuumio (added to Ayufan kernel) is not implemented. If it is implemented, then you don't need to adjust cmdline since the default setting should work well then.

The base kernel version is the same on all images, but it's the customisation done here and there that makes the difference. Jep testing the official FriendlyARM image is a least worth a try.

Are there kernel deb packages installed on your image? dpkg -l linux-*

ramgopalkota commented 5 years ago

ii linux-base 4.5 all Linux image base package un linux-initramfs-tool (no description available) un linux-kernel-headers (no description available) ii linux-libc-dev:arm64 4.9.168-1+deb9u3 arm64 Linux support headers for userspace development

exside commented 5 years ago

@Fourdee

Hi and thanks for your work on the NanoPC T4 image!

I saw here https://dietpi.com/phpbb/viewtopic.php?p=16308#p16308 that technically the wireguard "package" should be available from DietPi 6.20, but was unable to find it in the installable software because it seems disabled:

$ dietpi-software list | grep disabled

gives back

id 172 | =0 | wireguard: an extremely simple yet fast and modern vpn | disabled for nanopc t4 (aarch64) | https://dietpi.com/phpbb/viewtopic.php?p=16308#p16308

I assume it is because wireguard as a kernel module kinda depends on the friendlyarm kernel this dietpi distro is based on? Is that correct and are there any plans to enable wireguard for NanoPC T4?

thanks for a quick feedback!

MichaIng commented 5 years ago

@exside Most importantly the kernel headers/sources are required to build the WireGuard kernel module and I am not sure currently how the kernel is implemented on this T4 image.

As from @ramgopalkota post above (sorry for missing answer), what does this show:

apt show linux-kernel-headers
ls -l /etc/apt/sources.list.d

I plan to create a new set of NanoPi/PC NEO4/M4/T4 + M4v2 images based on current Armbian kernel/firmware, where installing headers is easy, hence WireGuard should be able to be easily implemented. But first v6.27 will be released as it contains a bunch of bug fixes that I don't want to miss on any new image.

FusionPlmH commented 4 years ago

@exside Most importantly the kernel headers/sources are required to build the WireGuard kernel module and I am not sure currently how the kernel is implemented on this T4 image.

As from @ramgopalkota post above (sorry for missing answer), what does this show:

apt show linux-kernel-headers
ls -l /etc/apt/sources.list.d

I plan to create a new set of NanoPi/PC NEO4/M4/T4 + M4v2 images based on current Armbian kernel/firmware, where installing headers is easy, hence WireGuard should be able to be easily implemented. But first v6.27 will be released as it contains a bunch of bug fixes that I don't want to miss on any new image.

Hope to see very soon