Rock It 《Armbian》七

查讀 GitHub

/opencv

gst_element_get_state: assertion ‘GST_IS_ELEMENT (element)’ failed

相關問題集 Issues ,沒找到有效解決問題的方法☻

谷歌篩選後,留意著這則 Q&A ︰

3.4.2 cannot open and create videos, but with 3.4.1 I can

asked Jul 10 ’18

the_phet gravatar image  the_phet 1 1 2

I am using ArchLinux. My system just got updated to OpenCV 3.4.2-1. When I try to read or create a video, it outputs this error message:

python:15977): GStreamer-CRITICAL **: 18:19:37.484: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed Unable to stop the stream: Inappropriate ioctl for device

If I downgrade Opencv to 3.4.1-3 then it works fine.

 

故興起了『降級』想法︰

Releases

wget https://github.com/opencv/opencv/archive/3.4.1.zip

不知該訝異其正常乎?

rock64@rock64:~python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39)  [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.4.1' >>> cap = cv2.VideoCapture(0) >>></pre>    <span style="color: #666699;">縱驗之以 USB Microscope ︰</span> <pre class="lang:default decode:true">rock64@rock64:~ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import cv2
>>> cap = cv2.VideoCapture(0)
>>> while(True):
...     ret, frame = cap.read()
...     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
...     cv2.imshow('frame',gray)
...     if cv2.waitKey(1) & 0xFF == ord('q'):
...         break
... 

※ 註︰

Getting Started with Videos

 

 

一日一夜 OK ,猶不安心也!

 

 

 

 

 

 

 

Rock It 《Armbian》六

雖然 ROCK64 只有 USB Camera 可用︰

 

 

既已經安裝了 OpenCV ,當然得試試看也︰

rock64@rock64:~$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.0.1-dev'
>>> camera = cv2.VideoCapture(0)

(python3:9042): GStreamer-CRITICAL **: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed
>>>

 

結果嚇一跳呦★

當真

塞翁得馬,焉知非禍耶?!

淮南子‧卷十八‧人間訓

夫禍福之轉而相生,其變難見也。 近塞上之人有善術者,馬無故亡而入胡,人皆弔之。其父曰:「此何遽不為福乎!」居數月,其馬將胡駿馬而歸,人皆賀之。其父曰:「此何遽不能為禍乎!」家富良馬,其子好騎,墮而折其髀,人皆弔之。其父曰:「此何遽不為福乎!」居一年,胡人大入塞,丁壯者引弦而戰,近塞之人,死者十九,此獨以跛之故,父子相保。故福之為禍,禍之為福,化不可極,深不可測也。

 

不過無獨有偶乎!?

/opencv

Videocapture error while reading from camera using backend (i.e. Ffmpeg, Gstreamer, Direct Show) #11806

Open
rashikcs opened this issue Jun 22, 2018
System information (version)
  • OpenCV => 4.0.0
  • Operating System / Platform => Ubutu 64bit
  • Compiler => g++ -std=c++11
Detailed description

compile with GDB.

(process:24917): GStreamer-CRITICAL **: gst_element_get_state: assertion ‘GST_IS_ELEMENT (element)’ failed
ERROR! Unable to open camera
[Thread 0x7fffc5ec2700 (LWP 24921) exited]
[Inferior 1 (process 24917) exited with code 0377]

compile the videocapture_basic.cpp file using the following command.

OPENCV_LOG_LEVEL=DEBUG OPENCV_VIDEOIO_DEBUG=1 ./output

[ INFO:0] VIDEOIO: Enabled backends(7, sorted by priority): FFMPEG(1000); GSTREAMER(990); V4L2(980); CV_IMAGES(970); CV_MJPEG(960); FIREWIRE(950); GPHOTO2(940)
[ WARN:0] VIDEOIO(createGStreamerCapture(filename)): trying …

(video_stream:17022): GStreamer-CRITICAL **: gst_element_get_state: assertion ‘GST_IS_ELEMENT (element)’ failed
[ WARN:0] VIDEOIO(createGStreamerCapture(filename)): result=(nil) isOpened=-1 …

terminate called after throwing an instance of ‘char const*’
Aborted (core dumped)

Steps to reproduce

After compiling the sample code in file opencv/samples/cpp/videocapture_basic.cpp changing line 28 and executing the output file getting the error

int apiID = cv::CAP_GSTREAMER

 

又得練功夫啦☆

 

 

 

 

 

 

 

Rock It 《Armbian》五

220px-ArthurConanDoyle_AStudyInScarlet_annual
亞瑟‧柯南‧道爾
一八八七年畢頓聖誕年刊
血字的研究
夏洛克‧福爾摩斯誕生

220px-Statue_of_Sherlock_Holmes_in_Edinburgh
最後致意,夏洛克·福爾摩斯的收場白

華生老兄!你真是多變的時代里固定不變的時刻。會刮東風的。這種風在英國還從來沒有刮過。這股風會很冷,很厲害,華生。這陣風刮來,我們好多人可能就會凋謝。但這依然是上帝的風。風暴過去後,更加純潔、更加美好、更加強大的國土將屹立在陽光之下。

Mikroskop-seibert_hg
希臘譯員

我不同意有些人把謙虛列為美德。對邏輯學家來說,一切事物應當是什麼樣就是什麼樣,對自己估價過低和誇大自己的才能一樣都是違背真理的。

歇洛克‧福爾摩斯 Sherlock Holmes 是一位由英國偵探小說家亞瑟‧柯南‧道爾 Sir Arthur Ignatius Conan Doyle 筆下所塑造的一位才華洋溢的天才偵探。福爾摩斯自稱自己是一名『諮詢偵探』,也就是說當私人 或官方偵探遇到案件困難時常會向他求教。小說裡的故事顯示他常常能夠足不出戶就立馬解決許多疑問難題,善於通過觀察、演繹、溯因推理以及犯罪科學來追根究底。據《血字研究》中華生醫生描述福爾摩斯的能力如下:

文學 ── 無
哲學 ── 無
天文學 ── 無
政治 ── 些許
植物學 ── 多種多樣。顛茄 、鴉片、毒藥等等。不知道實用園藝。
地理 ── 應用型,但不足。能一眼辨別土質。走路後,展示給我褲子上的泥土,告訴我倫敦地質的顏色和成分。
化學 ── 很多
解剖學 ── 精準,但不系統
奇情文學 ── 精通。他似乎知道各個世紀的每一個可怕的細節。
‧小提琴拉得好
‧劍術、拳擊的高手
‧對英國法典有實用知識

一九九九年底,傑勒德‧比克曼斯 Gerard Beekmans 啟始了『 Linux From Scratch雪泥鴻爪造 Linux 計畫,在『 NewsForge 』── Linux and love; the Gerard Beekmans story ──的專訪上,這麼說︰

Gerard Beekmans started Linux From Scratch, his guide to building a Linux Operating System from the bottom up, for two reasons. First, because he didn’t like the way existing distributions dictated organization and ultimately had more control over his operating system than he did. Second, because he had just moved from Holland to Toronto, Canada, to marry the woman he fell in love with online. His working papers hadn’t come through yet so he had some extra time on his hands.

網頁歡迎詞上寫到︰

Welcome to Linux From Scratch!

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

……… 《一條人跡罕至的道路??

 

Armbian 之程式庫裡沒有 Opencv cv2 的版本!想要自己編譯偏偏連 libjasper-dev 也沒有?

rock64@rock64:~apt-cache search libjasper-dev rock64@rock64:~

 

將如之何呢??只能 From Scratch 了!!

Beyond Linux® From Scratch – Version 8.0

Chapter 10. Graphics and Font Libraries

JasPer-2.0.10

Introduction to JasPer

The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the JPEG-2000 codec.

This package is known to build and work properly using an LFS-8.0 platform.

Package Information

JasPer Dependencies

Required

CMake-3.7.2

Recommended

Optional

Freeglut-3.0.0 (required for jiv), Doxygen-1.8.13 (needed for generating html documentation), and texlive-20160523b (needed to regnerate the pdf documention)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/jasper

Installation of JasPer

mkdir BUILD &&
cd    BUILD &&

cmake -DCMAKE_INSTALL_PREFIX=/usr    \
      -DCMAKE_BUILD_TYPE=Release     \
      -DCMAKE_SKIP_INSTALL_RPATH=YES \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-2.0.10 \
      ..  &&
make

To test the results, issue: make test.

Now, as the root user:

make install

 

設使我們受制於 □ ○ 官方之『發行版』,一個程式庫之有無,豈不卡住了嘛☻

wget http://www.ece.uvic.ca/~frodo/jasper/software/jasper-2.0.10.tar.gz
tar -vzxf jasper-2.0.10.tar.gz
cd jasper-2.0.10/
mkdir BUILD
cd BUILD/
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-2.0.10 ..
make
sudo make install

 

由於如何編譯網路上沒找到定論,此處採集多方說法,粹練成一爐只求先得呦☺

sudo apt-get remove x264 libx264-dev
sudo apt-get install build-essential checkinstall cmake pkg-config yasm
sudo apt-get install git gfortran
sudo apt-get install libjpeg-dev libpng-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-dev python3-pip
sudo apt-get install cython3
sudo pip3 install numpy scipy matplotlib scikit-image scikit-learn ipython

git clone https://github.com/opencv/opencv.git
cd opencv/
mkdir build
cd build/
cmake -DWITH_LIBV4L=ON -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DWITH_OPENMP=ON -DWITH_GSTREAMER=ON -DWITH_OPENCL=ON ..
make -j4
sudo make install


wget http://www.ece.uvic.ca/~frodo/jasper/software/jasper-2.0.10.tar.gz
tar -vzxf jasper-2.0.10.tar.gz
cd jasper-2.0.10/
mkdir BUILD
cd BUILD/
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-2.0.10 ..
make
sudo make install

 

※ 測試︰

rock64@rock64:~$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.0.1-dev'
>>>

 

 

 

 

 

 

 

Rock It 《Armbian》四

之前《都是檔案惹的禍?》裡,我們提過︰

在 Raspbian 的世界裡,一切都是『檔案』。這是真的嗎?從古早的 Unix 系統開始,就用著一種『統一』unified 的觀點來看待檔案。假如說 『程式』是執行檔很好了解,可是講到『硬體裝置』不過是特殊檔呢?……

就讓我們透過『 Sysfs── 是 Linux 2.6 所提供的一種『虛擬檔案系統』 VFS virtual files system 。這個檔案系統不僅可以把『裝置』 devices 和『驅動程式』 device drivers 的資訊從『核心』 kernel 內部輸出到『使用者空間』 user space ,也可以用來對裝置和驅動程式做『設定』。── 來控制『系統 ACT LED』,與 GPIO 建立聯繫』吧!

# 為什麼一定得是 root 呢?可以只用 sudo 嗎??
sudo -s

echo none > /sys/class/leds/led0/trigger
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
exit

 

Ah Ha!!這樣想要有顆『閃爍』的『小星星』,怕是不可得的了,何不閱讀《 Advanced Bash-Scripting Guide 》一下,寫個『 Shell 』程式呢??

─── 《PHYSICAL COMPUTING ︰《二》 GPIO 初探

 

承上篇,燒錄 SPI Flash 時發生的白色 LED 閃閃閃事件,使作者注意到 Armbian 開機後,只是白、紅兩個 LED 亮著,沒有任何用途耶?

rock64@rock64:~cd /sys/class/leds/ rock64@rock64:/sys/class/leds ls
input1::capslock  input1::kana     input1::scrolllock  standby-led
input1::compose   input1::numlock  power-led           usb-switch
rock64@rock64:/sys/class/leds</pre>   <pre class="lang:default decode:true">rock64@rock64:~ cat /sys/class/leds/{standby-led,power-led}/trigger
[none] rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc0 mmc1 timer oneshot heartbeat default-on 
[none] rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc0 mmc1 timer oneshot heartbeat default-on

 

由於查不到有關說明文件,故而直接考之以『電路圖』呦!

ROCK64_Schematic_v2.0_20171019.pdf

 

這時一目了然,綠色 LED 只是插了電沒的指示燈☺

sudo reboot ︰ 白亮、紅滅、綠亮

sudo poweroff ︰ 白滅、紅滅、綠亮

 

其後於 PINE64 論壇裡偶讀

LED Status Rock64

t4_4t 

Controllable LEDs are red and white LEDs
The green LED is a power supply lamp, it lights up when power is supplied.

 

Lighting can not be controlled.> flash when there is disk activity
I think that it refers to things such as “USB-HDD”, but it can not be done at present.

 

You need to add code to realize the function to the kernel.—-
With the latest Ver dts (4.4.120)
linux, default-trigger = “disk-activity”

 

It already has the above setting.But, the 4.4.xx kernel does not support this keyword(“”disk-activity”).

 

It is supported keyword  at Main-line-kernel (Ver 4.16.xx, ..)
But, this keyword is for activity of “ata-disk”.For this reason, in the current rock64, setting “disk-activity” is meaningless for any kernel.

 

只能莞爾一笑了◎

 

 

 

 

 

 

 

Rock It 《Armbian》三

因為神經網路、深度學習之訓練資料集通常硬碟需求都很大,所以想要 USB Storage 開機哩!

瀏覽 PINE64 NOOB 文件時發現

Flashing u-boot to SPI Flash

Some of PINE64 devices, such as the Rock64 and SOPine, are equipped with SPI Flash. This allows users to flash u-boot onto the SPI and boot from an external USB 2.0 or USB 3.0 SSD/HDD/thumb-drive, thereby forgoing using eMMC or an microSD card.

To find out more about which images can used in conjunction for SPI booting please see ayufan’s github.

Writing u-boot to SPI Flash can be achieved in two ways:

Using a Stand-Alone Image to Write u-boot to SPI

This may be the simplest method of flashing u-boot to SPI. Download a dedicated image labelled u-boot-flash-spi.img.xz from ayufan’s github and flash it to a micro SD card, the same you would with any OS image (to learn how to flash OS images to micro SD please following steps outlined in Section 3.

Having flashed the image follow these steps:

  • Insert the SD into the ROCK64
  • Remove all other peripherals from the board
  • Make sure that the eMMC module is disconnected from the board
  • Apply power to the ROCK64
  • Wait (few seconds) until the the LEDs on the board will blink continually
  • Power off the board.

The board is now ready to boot from USB 2.0/3.0 storage.

Using a Script on Linux OS Images

Most of recent (newer than 0.6.9) Linux OS images contain a script called rock64_write_spi_flash.sh, which is found in /usr/local/sbin directory. To run the script you will first need to flash a Linux OS image to a micro SD card (to learn how to flash OS images to micro SD please following steps outlined in Section 3). Before proceeding make sure that the eMMC module is disconnected from the board. Once you have booted into Linux on your PINE64 device all you have to do is run the aforementioned script using this command:

sudo ./rock64_write_spi_flash.sh

Once the script finishes its operation, power off your board and remove the micro SD card. The board is now ready to boot from USB 2.0/3.0 storage.

Erasing and Rewriting SPI

There are two ways of removing u-boot from SPI. You can either download u-boot-flash-spi.img.xz from ayufan’s github or use a script found on Linux OS images titled:rock64_erase_spi_flash.sh. Follow the instructions in the previous sub-sections for the chosen method of removing u-boot from SPI; the instructions are are identical, as the process of erasing u-boot is the exact opposite of flashing it.

N.B. You can also erase SPI manually”. To do so, you need to download mtd-utils. on Debian or Ubuntu follow these instructions:

sudo apt-get install mtd-utils sudo flash_eraseall /dev/mtd0

Booting an OS image from USB 2.0/3.0 Storage

To boot and OS image from USB 2.0/3.0 Storage such as a SSD/HDD or a thumbdrive you first need to have u-boot written to your SPI flash. Please follow the instructions in the previous sub-sections to learn how to write u-boot to SPI on your PINE64 device.

Once you have u-boot on your SPI, the process off booting is very similar to booting from micro SD or eMMC.

  • Download one of the supported OS images for your PINE64 device
  • Flash the OS image to your USB 2.0/USB 3.0 storage device (to learn how to flash OS images please following steps outlined in Section 3 The instructions are identical for all types of storage, including USB 2.0/USB 3.0 HDDs and thumb-drives.)
  • Insert the USB storage device with the flashed OS image into one of the USB ports on your PINE64 device
  • Apply power

If you have followed all the steps correctly, the board should boot from your USB 2.0/3.0 storage device.

 

※ 註︰Armbian Debian Stetch 裡沒有︰

/linux-buildforked from ayufan-rock64/linux-build

linux-build/u-boot-package/root/usr/local/sbin/

Type Name Latest commit message Commit time
  ..    
  rock64_erase_spi_flash.sh    
  rock64_upgrade_bootloader.sh    
  rock64_write_spi_flash.sh

 

也確定了ROCK64 4G 版子上有 (5) 128 Mb SPI Flash

 

同時仔細讀過

Boot flow

Here is a table show the detail what we may use in Rockchip platform, for 2 boot stage:

– use U-Boot SPL;

– use Rockchp idbLoader which is combinded by Rockchip ddr init bin and miniloader bin;

+--------+----------------+----------+-------------+---------+
| Boot   | Terminology #1 | Actual   | Rockchip    | Image   |
| stage  |                | program  |  Image      | Location|
| number |                | name     |   Name      | (sector)|
+--------+----------------+----------+-------------+---------+
| 1      |  Primary       | ROM code | BootRom     |         |
|        |  Program       |          |             |         |
|        |  Loader        |          |             |         |
|        |                |          |             |         |
| 2      |  Secondary     | U-Boot   |idbloader.img| 0x40    | pre-loader
|        |  Program       | TPL/SPL  |             |         |
|        |  Loader (SPL)  |          |             |         |
|        |                |          |             |         |
| 3      |  -             | U-Boot   | u-boot.itb  | 0x4000  | including u-boot and atf
|        |                |          | uboot.img   |         | only used with miniloader
|        |                |          |             |         |
|        |                | ATF/TEE  | trust.img   | 0x6000  | only used with miniloader
|        |                |          |             |         |
| 4      |  -             | kernel   | boot.img    | 0x8000  |
|        |                |          |             |         |
| 5      |  -             | rootfs   | rootfs.img  | 0x40000 |
+--------+----------------+----------+-------------+---------+

Then when we talking about boot from eMMC/SD/U-Disk/net, they are in different concept:

  • Stage 1 is always in boot rom, it loads stage 2 and may load stage 3(when SPL_BACK_TO_BROM option enabled).
  • Boot from SPI flash means firmware for stage 2 and 3(SPL and U-Boot only) in SPI flash and stage 4/5 in other place;
  • Boot from eMMC means all the firmware(including stage 2, 3, 4, 5) in eMMC;
  • Boot from SD card means all the firmware(including stage 2, 3, 4, 5) in SD card;
  • Boot from U-Disk means firmware for stage 4 and 5(not including SPL and U-Boot) in Disk, optionally only including stage 5;
  • Boot from net/tftp means firmeware for stage 4 and 5(not including SPL and U-Boot) on the network;

 

Rockchip bootflow.jpg

Boot Flow 1 is typical Rockchip boot flow with Rockchip miniloader;
Boot Flow 2 is used for most SoCs with U-Boot TPL for ddr init and SPL for trust(ATF/OP-TEE) load and run into next stage;

Note 1. If loader1 have more than 1 stage, program will back to bootrom and bootrom load and run into next stage. eg. If loader1 is tpl and spl, the bootrom will run into tpl first, tpl init ddr and back to bootrom, bootrom then load and run into spl.
Note 2. If trust is enabled, loader1 need to load both trust and u-boot, and then run into trust in secure mode(EL3 in armv8), trust do the initialize and run into U-Boot in non-secure mode(EL2 in armv8).
Note 3. For trust(in trust.img or u-boot.itb), armv7 has only one tee.bin with or without ta, armv8 has bl31.elf and option with bl32.
Note 4. In boot.img, content can be zImage and its dtb for Linux, and can optionally be grub.efi, and can be AOSP boot.img, ramdisk is option;

 

然後依言而行︰

Flashing and Erasing the SPI

Traditionally, booting Linux on the ROCK64 required an eMMC or microSD card, however it is now possible to boot withoutthose, assuming the SPI memory has been flashed. The ROCK64 contains an onboard 128Mbit SPI flash memory, which can be flashed with U-Boot in order to provide additional boot options:

  • USB2 / USB3 drive
  • PXE
  • microSD
  • eMMC

1. Write the U-Boot image

# From Linux or macOS
xz -k -d -c -v -T 3 u-boot-flash-spi.img.xz | dd of=/dev/<sdcard> bs=1M

Make sure you write to the correction location, it will destroy all data.

2. Boot the ROCK64

  • Insert the microSD card
  • Wait for it to boot. It will automatically erase the SPI memory, and flash U-Boot
  • You should see: the power LED (white LED) flicker once per second, and:
    SF: ... bytes @ 0x8000 Written: OK
    
  • Remove the microSD card

……

Boot order:

  1. SPI flash
  2. eMMC (disable with jumper)
  3. microSD
  4. USB drive
  5. PXE

───

 

幾秒後見著白色 LED 閃閃閃,卻遲遲等不到

SF: … bytes @ 0x8000 Written: OK

螢幕訊息☻

只得再讀新手文件,狐疑『閃閃閃』就是寫好了?

還好沒把 ROCK64 搞掛呦☆

rock64@rock64:~cat /proc/mtd  dev:    size   erasesize  name mtd0: 003f0000 00001000 "loader" rock64@rock64:~

 

rock64@rock64:~cat /proc/cmdline  earlycon=uart8250,mmio32,0xff130000 swiotlb=1 kpti=0 root=UUID=b5db7bf0-4670-4b75-899a-b296e72371b4 rootwait rootfstype=ext4 console=ttyS2,1500000 console=tty1 panic=10 consoleblank=0 loglevel=1 ubootpart= usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 rock64@rock64:~