2026年3月27日 星期五

Raise3D 修改 root 密碼

收了一台 2017 年的 Raise3D N2 3D 印表機,拆下的主板。

原登入資訊,Poky (Yocto Project Reference Distro) 1.7 imx6qdlsolo ,在 Gemini AI 的協助引導之下,修改 root 密碼,成功進入系統。


重開後,看到 U-Boot 訊息(Hit any key to stop autoboot: 0)就代表你已經掌握了這台機器的「生殺大權」。既然不知道 Linux 層級的帳號密碼,我們可以繞過登入程序,直接從 U-Boot 進入 Single User Mode 來重設密碼。 

1. 進入 U-Boot 指令模式

將板子重啟(斷電再通電)。

在看到 Hit any key to stop autoboot 倒數到 0 之前,趕快在鍵盤按下 任意鍵(通常是 Enter 或空白鍵)。

如果成功,提示字元會變成 MX6-SabreSD>(或是類似的標籤)。

使用 printenv 列出環境變數。

----------
=> setenv mmcargs 'setenv bootargs console=${console},${baudrate} root=${mmcroot} init=/bin/sh video=mxcfb0:dev=ldb,if=RGB24,bpp=32 consoleblank=0'
=> run mmcboot
Booting from mmc ...
reading imx6q-sabresd.dtb
49185 bytes read in 20 ms (2.3 MiB/s)
Bad Linux ARM zImage magic!
==>
----------

出現 Bad Linux ARM zImage magic! 這個錯誤,通常是因為 U-Boot 在載入核心鏡像(zImage)時發生了位移或是抓錯了檔案位置。

觀察你的 printenv,這塊板子預設會先執行 loadbootscript(去讀 SD 卡或 eMMC 上的 boot.scr)。當我們手動改動 mmcargs 並執行 run mmcboot 時,可能因為環境變數中的位址(如 ${loadaddr})與實際檔案不匹配,導致 U-Boot 讀到了破碎的資料。

既然自動腳本 run mmcboot 失敗,我們改用最原始、最手動的方式來載入核心,這樣最精準。

手動啟動步驟 (Manual Boot)

-----------
=> mmc dev 2
mmc2(part 0) is current device
=> fatload mmc 2:1 ${loadaddr} zImage
reading zImage
5370320 bytes read in 143 ms (35.8 MiB/s)
=> fatload mmc 2:1 ${fdt_addr} imx6q-sabresd.dtb
reading imx6q-sabresd.dtb=> mmc dev 2
mmc2(part 0) is current device
=> fatload mmc 2:1 ${loadaddr} zImage
reading zImage
5370320 bytes read in 143 ms (35.8 MiB/s)
=> fatload mmc 2:1 ${fdt_addr} imx6q-sabresd.dtb
reading imx6q-sabresd.dtb
49185 bytes read in 19 ms (2.5 MiB/s)
=> setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw init=/bin/sh video=mxcfb0:dev=ldb,if=RGB24,bpp=32
=> bootz ${loadaddr} - ${fdt_addr}

49185 bytes read in 19 ms (2.5 MiB/s)
=> setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw init=/bin/sh video=mxcfb0:dev=ldb,if=RGB24,bpp=32
=> bootz ${loadaddr} - ${fdt_addr}
... 以下是啟動訊息 ...
Kernel image @ 0x12000000 [ 0x000000 - 0x51f1d0 ]
## Flattened Device Tree blob at 18000000
   Booting using the fdt blob at 0x18000000
   Using Device Tree in place at 18000000, end 1800f020
switch to ldo_bypass mode!

Starting kernel ...

Booting Linux on physical CPU 0x0
....
....
....
journald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk3p2): using internal journal
EXT3-fs (mmcblk3p2): recovery complete
EXT3-fs (mmcblk3p2): mounted filesystem with ordered data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 296K (80c02000 - 80c4c000)
sh: cannot set terminal process group (-1): Inappropriate
-----------

修改密碼,重新啟動。

-------------
-- 掛載文件系統為「可讀寫」
# mount -o remount,rw /
-- 修改 root 密碼
# passwd root
-- 確保資料確實寫入 eMMC
# sync
# reboot -f
-------------

重啟後,就可以進入了。

----------
一直出現這樣的訊息,很擾人,SSH又進不去,console 的資訊一下就被洗掉
"[NetworkCheck Task]" gateway invalid, check wifi info valid end 1
[PaintMain] network status change "eth0" false 1 "" "" "" ""

修改 /etc/rc.local,把最後一行啟動指令關掉
#/opt/Raise3D/MXCUI-start.sh
-------------

現代電腦(SSH 客戶端)認為 ssh-rsa(基於 SHA-1)已經不夠安全,所以預設停用了它;而這塊板子上的 Dropbear 版本較舊,只提供這種加密方式。

------------
從遠端登入,出現下面的錯誤

$ ssh root@192.168.66.55

Unable to negotiate with 192.168.66.55 port 22: no matching host key type found. Their offer: ssh-rsa

-- 在連線時手動允許這台機器使用舊的密鑰類型
$ ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa root@192.168.66.55
------------

猜舊密碼

-----------
whois
mkpasswd -m sha-512 raise3d -s GnmkW05B
------------

備份

備份前,先在剩餘空間塞 '0',提高壓縮率。進行全磁碟填零會消耗快閃記憶體的寫入壽命,但如果只是為了換系統前做一次性備份,那是沒問題的。塞滿後,會出現 dd: writing '/zero_file': No space left on device 是正常的,接著執行 rm 即可。

整體執行步驟如下。

--------------
-- 1. 填零(讓空白空間變好壓縮,直到出現 No space left 錯誤)
# dd if=/dev/zero of=/zero_file bs=1M

-- 2. 刪除填零檔(務必執行,否則系統會因為磁碟滿了而無法運作)
# rm /zero_file


-- 3. 開始壓縮備份到隨身碟(假設掛載在 /mnt/usb)
dd if=/dev/mmcblk0 bs=4M | gzip > /mnt/usb/n2_backup_$(date +%Y%m%d).img.gz

----------------


查看進度

Poky 1.7 內建的 dd 通常版本較舊,不支援 status=progress 參數。如果你想知道備份跑了多少,可以另開一個視窗執行下面的指令。這會每 5 秒叫 dd 在它原本的視窗印出目前的傳輸進度。

--------------
watch -n 5 kill -USR1 $(pgrep ^dd$)
----------------














2026年3月26日 星期四

3D 印表機潤滑保養整理

這是和 AI 討論後,所決定的潤滑保養方式。

針車油

這是最普遍可以買到的潤滑油。可以到中油加油站的複合商店買到,便宜又大罐。


適合清洗舊油,光軸潤滑。

二號滑脂

中油加油站的複合商店有賣,不貴,大約一百多。但不是每家都有進,要多跑幾家才能買到,我就跑了五個加油站才買到。

不要買高溫,也不要買極壓的,它的添加物,像 鉬,會造成問題。

這是普遍使用的潤滑脂,比一般的黃油稀很多。

線軌保養

線軌會生鏽,若不保養,會鏽到慘不忍睹。但那只是表面,線軌要潤滑的是滑塊內的鋼珠。

潤滑脂可由側面的孔注入,使用的 #0 潤滑脂,比較適合。但潤滑脂不是想買就有,最普遍使用,號稱萬用的二號滑脂,都不容易找到了。曾在蝦皮買過白色鋰基潤滑油,後來細看規格,才知道是 #3 潤滑脂,用了會讓線軌跑不動。

在 AI 的指導之下,使用 2號滑脂與針車油混合,調出不同黏度的滑脂。

如 脂 : 油 比例 為 8 : 2,可得到 "像軟質面霜 的 1 號脂",適合 Z 軸,或全新的線軌。

脂 : 油 比例 為 6 : 4 ,可得到 "像濃稠煉乳的 0 號脂",適合有傷痕、需翻新的 X/Y 軸。

省事的話,就用 6:4 的 0號脂吧。調法,先脂後油,先量 6g的2號脂,再加入 4g的針車油,調到完全混合。

注意,只用中油的這兩種油可以混,其他不知成份的,不要亂混。

螺桿保養

Z軸的螺桿,速度較慢,直接使用 2號脂即可。

光軸保養

使用針車油。


網誌存檔