页次: 1
bootargs=earlyprintk console=tty0 console=ttyS0,115200 panic=5 rootwait rootfstype=ext4 root=/dev/mmcblk0p2 rw rootflags=noload init=/linuxrc
nakanoyip 说:晕哥 说:console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait
试一试这组参数.
最後我加了 rootflags=noload 就沒問題了.
現在無論由 SPI Boot 還是 TF Boot 都沒問題了.
謝謝幫忙方便把具体的 bootargs 参数写出来吗?获取哪天我会碰到.
暈哥, 之前你說 audio codec 要用 tinyalsa,
我跟據 F1C600 User Manual, Page 157, Audio Codec Block Diagram , 設定 Codec.
再用 tinyplay 播放 wav 檔, 在 HPR , 和 HPL 也沒有聲音.
你有試過可以用嗎 ?
我 mixer 設定如下
# tinymix contents
Number of controls: 37
ctl type num name value
0 INT 1 dac digital volume 63 (range 0->63)
1 BOOL 1 dac: right chanel en On
2 BOOL 1 dac: left chanle en On
3 BOOL 1 dac: right analog output mixer en On
4 BOOL 1 dac: left analog output mixer en On
5 BOOL 1 dac: right mute Off
6 BOOL 1 dac: left mute Off
7 BOOL 1 hp right source select: 0-dac, 1-mixer Off
8 BOOL 1 hp left source select: 0-dac, 1-mixer Off
9 BOOL 1 dac: right mixer mute: mic Off
10 BOOL 1 dac: right mixer mute: linein Off
11 BOOL 1 dac: right mixer mute: FM Off
12 BOOL 1 dac: right mixer mute: right dac On
13 BOOL 1 dac: right mixer mute: left dac On
14 BOOL 1 head phone power On
15 BOOL 1 dac: left mixer mute: mic Off
16 BOOL 1 dac: left mixer mute: linein Off
17 BOOL 1 dac: left mixer mute: FM Off
18 BOOL 1 dac: left mixer mute: right dac On
19 BOOL 1 dac: left mixer mute: left dac On
20 BOOL 1 dac: left hpout to right hpout Off
21 BOOL 1 dac: right hpout to left hpout Off
22 INT 1 head phone volume 63 (range 0->63)
23 INT 1 MICIN GAIN control 3 (range 0->7)
24 INT 1 LINEIN GAIN control 0 (range 0->7)
25 INT 1 ADC INPUT GAIN control 3 (range 0->7)
26 INT 1 COS slop time control for Anti-pop 1 (range 0->3)
27 BOOL 1 ADC mixer mute for mic Off
28 BOOL 1 ADC mixer mute for FML Off
29 BOOL 1 ADC mixer mute for FMR Off
30 BOOL 1 ADC mixer mute for linein Off
31 BOOL 1 ADC mixer mute for left ouput Off
32 BOOL 1 ADC mixer mute for right ouput Off
33 BOOL 1 ADC PA speed select Off
34 INT 1 ADC FM volume 0 (range 0->7)
35 BOOL 1 ADC MIC Boost AMP en Off
36 INT 1 ADC MIC Boost AMP gain control 4 (range 0->7)
找到掛載的 Soundcard
# tinypcminfo
Info for card 0, device 0:PCM out:
Access: 0x000009
Format[0]: 0x000044
Format[1]: 00000000
Format Name: S16_LE, S24_LE
Subformat: 0x000001
Rate: min=8000Hz max=192000Hz
Channels: min=1 max=2
Sample bits: min=16 max=32
Period size: min=32 max=32768
Period count: min=1 max=8PCM in:
Access: 0x000009
Format[0]: 0x000044
Format[1]: 00000000
Format Name: S16_LE, S24_LE
Subformat: 0x000001
Rate: min=8000Hz max=48000Hz
Channels: min=1 max=2
Sample bits: min=16 max=32
Period size: min=32 max=32768
Period count: min=1 max=8# cat /proc/asound/cards
0 [audiocodec ]: audiocodec - audiocodec
audiocodec
現在他可以認到 TF /dev/mmcblk0p2 分區了,
我用 TF boot, 他出現掛不到 rootfs
JBD2: Unrecognised features on journal
EXT4-fs (mmcblk0p2): error loading journal
我用 spi boot 入 shell (spi root),
mount -t ext4 /dev/mmcblk0p2 /mnt/sdcard
錯誤也一樣,
用 mount -t ext4 -o rw,noload /dev/mmcblk0p2 /mnt/sdcard
才能掛起
bootargs 掛 rootfs 可以有不讀 journal 的 option 嗎 (noload) ?
TF 因為不能掛到 root, 所以 boot 不到 shell,
使用同樣的 kernel 和 dtb, 只是能用 spi 啟動到 shell, 再 mount tf,
tf 內有2 個分區, 一個是 vfat 放 zImage, dtb, boot.scr, 另一個是 ext4 放 rootfs
mtdblock0, mtdblock1, mtdblock2, mtdblock3 全都 mount 不到我用之前 @assert 的 spi image boot 起, f1c100s-480272-argb-w25q256-lvgl.bin , 同樣也是讀不到 tf
mnt >>>00:01 #mount -t fat /dev/mtdblock3 /mnt/sdcard
mount: mounting /dev/mtdblock3 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock2 /mnt/sdcard
mount: mounting /dev/mtdblock2 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock1 /mnt/sdcard
mount: mounting /dev/mtdblock1 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock0 /mnt/sdcard
mount: mounting /dev/mtdblock0 on /mnt/sdcard failed: No such devicemnt >>>00:01 #mount -t ext4 /dev/mtdblock3 /mnt/sdcard
mount: mounting /dev/mtdblock3 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock2 /mnt/sdcard
mount: mounting /dev/mtdblock2 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock1 /mnt/sdcard
mount: mounting /dev/mtdblock1 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock0 /mnt/sdcard
mount: mounting /dev/mtdblock0 on /mnt/sdcard failed: No such device晕哥 说:如果你能启动到shell,
并且rootfs是在tf卡第二个分区,
说明你的tf已经挂载上了。mtd挂载是找 /dev/mtdblockX
SPI Boot 的 rootfs 用 jffs2, 是 rw 的, 我也試過開另一個資料夾掛載也同樣失敗
ippen 说:nakanoyip 说:暈哥, 現在可以開到 Kernel 了, 但另一個問題是 TF Card 不能讀到, 所以 mount 不到 root
我在 SPI boot 或者 TF Boot, uboot 裡都可以用 mmc 0:1 去讀到 zImage 和 dtb 上 ram , 也可以 boot 到 kernel用 SPI boot 進去 spi 的 root 後, 查到 /dev 有
mtd0, mtd1, mtd2, mtd3
mtd0ro, mtd1ro, mtd2ro, mtd3ro
mtdblock0, mtdblock1, mtdblock2, mtdblock3
但全都 mount 不起, 應該是 Kernel 的問題 , 知道那裡可以修改嗎 ?spi系统启动,根文件系统是只读,有可能是这个原因导致的无法挂载
TF 因為不能掛到 root, 所以 boot 不到 shell,
使用同樣的 kernel 和 dtb, 只是能用 spi 啟動到 shell, 再 mount tf,
tf 內有2 個分區, 一個是 vfat 放 zImage, dtb, boot.scr, 另一個是 ext4 放 rootfs
mtdblock0, mtdblock1, mtdblock2, mtdblock3 全都 mount 不到
我用之前 @assert 的 spi image boot 起, f1c100s-480272-argb-w25q256-lvgl.bin , 同樣也是讀不到 tf
mnt >>>00:01 #mount -t fat /dev/mtdblock3 /mnt/sdcard
mount: mounting /dev/mtdblock3 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock2 /mnt/sdcard
mount: mounting /dev/mtdblock2 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock1 /mnt/sdcard
mount: mounting /dev/mtdblock1 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t fat /dev/mtdblock0 /mnt/sdcard
mount: mounting /dev/mtdblock0 on /mnt/sdcard failed: No such devicemnt >>>00:01 #mount -t ext4 /dev/mtdblock3 /mnt/sdcard
mount: mounting /dev/mtdblock3 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock2 /mnt/sdcard
mount: mounting /dev/mtdblock2 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock1 /mnt/sdcard
mount: mounting /dev/mtdblock1 on /mnt/sdcard failed: No such device
mnt >>>00:01 #mount -t ext4 /dev/mtdblock0 /mnt/sdcard
mount: mounting /dev/mtdblock0 on /mnt/sdcard failed: No such device
如果你能启动到shell,
并且rootfs是在tf卡第二个分区,
说明你的tf已经挂载上了。mtd挂载是找 /dev/mtdblockX
SPI Boot 的 rootfs 用 jffs2, 是 rw 的, 我也試過開另一個資料夾掛載也同樣失敗
nakanoyip 说:暈哥, 現在可以開到 Kernel 了, 但另一個問題是 TF Card 不能讀到, 所以 mount 不到 root
我在 SPI boot 或者 TF Boot, uboot 裡都可以用 mmc 0:1 去讀到 zImage 和 dtb 上 ram , 也可以 boot 到 kernel用 SPI boot 進去 spi 的 root 後, 查到 /dev 有
mtd0, mtd1, mtd2, mtd3
mtd0ro, mtd1ro, mtd2ro, mtd3ro
mtdblock0, mtdblock1, mtdblock2, mtdblock3
但全都 mount 不起, 應該是 Kernel 的問題 , 知道那裡可以修改嗎 ?晕哥 说:用spi flash启动的时候, TF卡能识别吗,读写正常吗?
你的 u-boot 是自己编译的?如果自己编译按照10楼的截图修改。
spi系统启动,根文件系统是只读,有可能是这个原因导致的无法挂载
暈哥, 現在可以開到 Kernel 了, 但另一個問題是 TF Card 不能讀到, 所以 mount 不到 root
我在 SPI boot 或者 TF Boot, uboot 裡都可以用 mmc 0:1 去讀到 zImage 和 dtb 上 ram , 也可以 boot 到 kernel
用 SPI boot 進去 spi 的 root 後, 查到 /dev 有
mtd0, mtd1, mtd2, mtd3
mtd0ro, mtd1ro, mtd2ro, mtd3ro
mtdblock0, mtdblock1, mtdblock2, mtdblock3
但全都 mount 不起, 應該是 Kernel 的問題 , 知道那裡可以修改嗎 ?
用spi flash启动的时候, TF卡能识别吗,读写正常吗?
你的 u-boot 是自己编译的?如果自己编译按照10楼的截图修改。
是的 , 上面的驗証應該是 dtb 的問題, 不是 zImage 和 bootargs 的問題
boot.scr 抄的 RAM 地址也跟 spi boot 的一樣 , 地址沒錯
mmc 中的檔案他也找到了, size 也對
reading suniv-f1c100s-licheepi-nano.dtb
8545 bytes read in 32 ms (260.7 KiB/s)
reading zImage
2521280 bytes read in 261 ms (9.2 MiB/s)
所以现在的问题是應該如何修改 sunivw1p1.dtsi 和 sunivw1p1-evb.dts, 实现kernel正确加载 TF卡了
我在 spi 能 boot 的情況下, 試過把 bootargs 的 root 和 init 刪去, 最後淨下 console , 他也能開到 kernel, 只是最後找不到 root, 那很正常,
bootargs 應該不會影響到這連 Starting Kernel 也出不來.
另外, 我在 f1c600 kernel make menuconfig 看到, 他 default 設定是讀取 uboot 的 bootargs, 所以應該是跟 boot.scr 的 ( boot.scr 也有 earlyprintk )
我想問題應該是出在 dtb 檔上, 我把 Nano_tf_800480.bin 原本的 dtb 和 rootfs 保留, 換了 boot.scr 和 f1c600 的 zImage
他也可以出到 Starting Kernel... 然後出 Unrecognized/unsupported device tree compatible list, 這也正常, zImage 要跟 dtb 要配合
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
291 bytes read in 17 ms (16.6 KiB/s)
## Executing script at 80c50000
reading suniv-f1c100s-licheepi-nano.dtb
8545 bytes read in 32 ms (260.7 KiB/s)
reading zImage
2521280 bytes read in 261 ms (9.2 MiB/s)
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 80e60000, end 80e65160 ... OKStarting kernel ...
Read dt_phys 80e60000
Read devtree c0e60000Read dt_root 0xc051f68cd00dfeed
Error: unrecognized/unsupported device tree compatible list:
[ 'licheepi,licheepi-nano' 'allwinner,suniv-f1c100s' 'allwinner,suniv' ]Available machine support:
ID (hex) NAME
ffffffff Allwinner A1X (Device Tree)
0000067f f1c100sPlease check your kernel config and/or bootloader.
有沒有頭緒 sunivw1p1.dtsi 和 sunivw1p1-evb.dts 有那些部份需要修改去支持 TF boot 嗎 ?
boot.cmd 如下 (生成 boot.scr 用)
setenv bootargs earlyprintk console=tty0 console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw
load mmc 0:1 0x80C00000 suniv-f1c100s-licheepi-nano.dtb
load mmc 0:1 0x80008000 zImage
bootz 0x80008000 - 0x80C00000
我跟據你的布局
取代了f1c100s-480272-argb-w25q256-lvgl.bin 中的 dtb 和 zImage, 保留了 uboot 和 rootfs
他看似一開始能讀到, 但去到中間就不行了 ( 下圖)
我這個是一樓的 bsp, 用 build.sh 直接做出來, 沒改源碼 , 你們有其他東西修改過嗎 ?
可以把你們現在做這 image 的 uboot, 和 kernel 源碼放出來參考下嗎 ? 我試試 build 能不能用一下.
另外留意到, Kernel 在 boot 的中途, [0.621601] , Kernel 找到4個 MTD, 所示的位置是
0x00000 - 0x80000 spl+uboot
0x80000 - 0x2e0000 kernel
0x2e0000 - 0x2f0000 script
0x400000 - 0x1000000 rootfs
跟現在放的位置都不同, 這個有什麼關系的 ?
之前主線 kernel , 需在dtb設定分區 (http://nano.lichee.pro/build_sys/build_flash.html)
現在這個 dtb 檔都找不到這分區的設定
謝謝
我把三樓和六樓的 bin , 用 hex editor 拆開, 看看想抽 dtb 出來
看來位置跟我之前用 pack_flash_img.sh 做出來的都不一樣, 想確認一下
我跟 http://nano.lichee.pro/build_sys/build_flash.html , 他有個 pack_to_flash.sh
0x0000000 - 0x0100000 uboot 1024k
0x0100000 - 0x0110000 dtb 64k
0x0110000 - 0x0510000 zImage 4096k
0x0510000 - 0x1000000 rootfs
三樓和六樓的bin,
0x0100000 找到 zImage,
0x0350000 找到 dtb
你用什麼方法 pack ? 或者有沒有具體 memory map, 我自己修改位置去 pack 再試
謝謝
建议还是按 @assert 给出那个方法,用主线u-boot, 全志官方的linux 3.4.
https://whycan.cn/t_1008.html
源码包下载地址: http://oslife.top/f1c600.tar.bz2
本站临时下载地址: f1c600.tar.bz2
那即是這個裡面的 linux-3.10 ? 還是那裡可以找到呢 ? dts 檔都是用跟 kernel 的 ?
然後改名成 suniv-f1c100s-licheepi-nano.dtb , 給 uboot 引導時用 ?
https://whycan.cn/files/members/3/QQ20180419204822.png
烧是烧完了, 两组UART0串口都没反应.
我用 PhoenixSuit 燒 sunivw1p1_linux_evb_uart0.img 進去後,
情況也是一樣, UART0 串口都沒反應, 後來怎樣解決 ?
https://whycan.cn/files/members/3/QQ20180418224402.png
源码包下载地址: http://oslife.top/f1c600.tar.bz2
本站临时下载地址: f1c600.tar.bz2测试固件下载地址: f1c100s_c600sdk_16M_micropython.7z
启动到shell时间约35秒, 尚有优化空间。感谢 @assert 网友
測試過測試固件 f1c100s_c600sdk_16M_micropython.bin 可以在 W25Q128 用後
我用這源碼抓下來, 除 compile error 的 bug 外, 源碼沒修改
./build
./build pack
最後做出來的影像檔 sunivw1p1_linux_evb_uart0.img , 有 30.5mb,
現在這個 img 太大了, 都放不入 16M 的 W25Q128 ?
怎樣可以做到 bin 呢 ?
謝謝
页次: 1