在menuconfig中增加EXT4的支持(没有完成)(分色排版)

本文介绍了如何在menuconfig中启用EXT4文件系统支持的过程,并展示了编译打包后的刷机步骤及设备启动后的文件系统挂载情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

menuconfig中增加EXT4的支持(没有完成)

 

 

大文实验室/大文哥

壹捌陆捌零陆捌捌陆捌贰

wb4916 AT qq.com

完成时间:2017/7/15 17:45

版本:V1.0

 

SDK:全志R16+tina v2.1

开发板:SC3817R

 

 

1、在menuconfig中增加EXT4的支持:

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$ cp .config bak1_orig.config

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$ make menuconfig

Target Images  --->

[ ] ramdisk  ----

    *** Root filesystem archives ***

[ ] cpio.gz

[ ] tar.gz

    *** Root filesystem images ***

[ ] ext4  ----

[ ] jffs2

[*] squashfs  --->

    *** Image Options ***

(4) Boot (SD Card) filesystem partition size (in MB)

修改为:

[ ] ramdisk  ----

    *** Root filesystem archives ***

[ ] cpio.gz

[ ] tar.gz

    *** Root filesystem images ***

[*] ext4  --->

[ ] jffs2

[*] squashfs  --->

[*] GZip images (NEW)

    *** Image Options ***

(4) Boot (SD Card) filesystem partition size (in MB)

(48) Root filesystem partition size (in MB) (NEW)

[ ] Include kernel in root filesystem (NEW)  ----

 

 

 

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$ cp .config bak2+ext4.config

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$ make -j8

rootroot@cm-System-Product-Name:/home/wwt/ubuntu_tinav2.1$ pack -d

 

 

 

 

2、编译打包刷机之后:

(刷机之后,在WIN7的命令行窗口中:)

c:\>adb push linaro-ubuntu-server.img /mnt/UDISK

2393 KB/s (943718400 bytes in 385.117s)

 

 

(串口终端:)

[   22.483284] dhd_conf_set_disable_proptx: set disable_proptx 0

[   22.492060] dhd_wlfc_hostreorder_init(): successful bdcv2 tlv signaling, 64

[   22.500413] wl_android_wifi_on: Success

[   22.505873] p2p0: p2p_dev_addr=96:a1:a2:c6:49:d6

[   22.590336] dhd_open: Exit ret=0

[   27.195522] sndpcm_startup,l:1688,pa_vol:40

 

 

 

BusyBox v1.24.1 () built-in shell (ash)

 

 _____  _              __     _

|_   _||_| ___  _ _   |  |   |_| ___  _ _  _ _

  | |   _ |   ||   |  |  |__ | ||   || | ||_'_|

  | |  | || | || _ |  |_____||_||_|_||___||_,_|

  |_|  |_||_|_||_|_|  Tina is Based on OpenWrt!

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

 Tina Linux (Neptune, 57513AA3)

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

root@TinaLinux:/#

root@TinaLinux:/# df -h

Filesystem                Size      Used Available Use% Mounted on

rootfs                 1007.9M     33.3M    923.4M   3% /

/dev/root                46.5M     18.1M     28.4M  39% /rom

tmpfs                   250.0M     20.0K    250.0M   0% /tmp

/dev/by-name/rootfs_data

                       1007.9M     33.3M    923.4M   3% /overlay

overlayfs:/overlay     1007.9M     33.3M    923.4M   3% /

tmpfs                   512.0K         0    512.0K   0% /dev

/dev/mmcblk0p1            1.6G     34.4M      1.5G   2% /mnt/SDCARD

/dev/by-name/UDISK        1.6G     34.4M      1.5G   2% /mnt/UDISK

/dev/by-name/boot         4.0M      3.1M    900.0K  78% /boot

/dev/by-name/boot-res

                          8.0M     39.0K      7.9M   0% /boot-res

root@TinaLinux:/# mount

rootfs on / type rootfs (rw)

/dev/root on /rom type ext4 (rw,noatime)

proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)

/dev/by-name/rootfs_data on /overlay type ext4 (rw,relatime,data=ordered)

overlayfs:/overlay on / type overlayfs (rw,noatime,lowerdir=/,upperdir=/overlay)

tmpfs on /dev type tmpfs (rw,nosuid,relatime,size=512k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600)

/dev/mmcblk0p1 on /mnt/SDCARD type ext4 (rw,sync,relatime,data=ordered)

debugfs on /sys/kernel/debug type debugfs (rw,noatime)

/dev/by-name/UDISK on /mnt/UDISK type ext4 (rw,sync,relatime,data=ordered)

/dev/by-name/boot on /boot type vfat (ro,sync,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

/dev/by-name/boot-res on /boot-res type vfat (ro,sync,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

root@TinaLinux:/# cat /proc/partitions

major minor  #blocks  name

 

 179        0    3817472 mmcblk0

 179        1    1675264 mmcblk0p1

 179        2       1024 mmcblk0p2

 179        3          1 mmcblk0p3

 179        5       1024 mmcblk0p5

 179        6       4096 mmcblk0p6

 179        7    1048576 mmcblk0p7

 179        8    1048576 mmcblk0p8

 179        9       1024 mmcblk0p9

 179       10       1024 mmcblk0p10

 179       32       1024 mmcblk0boot1

 179       16       1024 mmcblk0boot0

root@TinaLinux:/#

 

 

 

 

root@TinaLinux:/mnt/UDISK#

root@TinaLinux:/mnt/UDISK#

root@TinaLinux:/mnt/UDISK# dd if=linaro-ubuntu-server.img of=/dev/mmcblk0p7 bs=1

M

900+0 records in

900+0 records out

root@TinaLinux:/mnt/UDISK# reboot

/bin/ash: reboot: not found

root@TinaLinux:/mnt/UDISK# reset

/bin/ash: reset: not found

root@TinaLinux:/mnt/UDISK# ?HELLO! BOOT0 is starting!

boot0 version : 4.2.0

boot0 commit : a38ad2cb703106ee3da4b579497882fdc599b5a9

 

fel_flag = 0x00000000

rtc[0] value = 0x00000000

rtc[1] value = 0x00000000

rtc[2] value = 0x00000000

rtc[3] value = 0x00000000

……

[    2.541404] =========GPS========= :gsp not used in configuration

[    2.548181] ALSA device list:

[    2.551685]   #0: audiocodec

[    2.555722] [mmc]: sdc2 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 8 timing UHS-DDR50 dt B

[    2.566920] EXT4-fs (mmcblk0p7): couldn't mount as ext3 due to feature incompatibilities

[    2.651108] EXT4-fs (mmcblk0p7): couldn't mount as ext2 due to feature incompatibilities

[    2.785331] EXT4-fs (mmcblk0p7): mounted filesystem with ordered data mode. Opts: (null)

[    2.794561] VFS: Mounted root (ext4 filesystem) on device 179:7.

[    2.801604] Freeing init memory: 164K

Mount failed for selinuxfs on /sys/fs/selinux:  No such file or directory

[    3.047895] init: plymouth-upstart-bridge main process (69) terminated with status 1

[    3.056840] init: plymouth-upstart-bridge main process ended, respawning

[    3.099949] init: plymouth-upstart-bridge main process (79) terminated with status 1

[    3.108834] init: plymouth-upstart-bridge main process ended, respawning

[    3.119887] init: ureadahead main process (72) terminated with status 5

[    3.146952] init: plymouth-upstart-bridge main process (83) terminated with status 1

[    3.155926] init: plymouth-upstart-bridge main process ended, respawning

[    4.019583] systemd-udevd[219]: inotify_add_watch(6, /dev/mmcblk0boot1, 10) failed: No such file or directory

 

 

<think>我们正在讨论如何在ESP32的menuconfig中配置启用深度睡眠唤醒功能。根据用户之前的提问,我们知道ESP32-C3和ESP32-WROOM在深度睡眠唤醒上存在差异,但配置步骤类似。以下步骤基于ESP-IDF开发框架,使用`idf.py menuconfig`命令进行配置。 步骤分解: 1. 打开配置菜单:在项目目录下运行`idf.py menuconfig`。 2. 导航到深度睡眠唤醒配置选项:根据引用[1]和[3]的提示,配置路径通常位于: - Component config → ESP32-specific (或ESP32-C3 Specific/ESP32-S3 Specific等) → Deep sleep wakeup 3. 启用所需的唤醒源:例如EXT0(单个GPIO引脚唤醒)、EXT1(多个GPIO引脚组合唤醒)、定时器唤醒等。 具体步骤: 步骤1:进入配置界面 ```bash cd /path/to/your/project idf.py set-target esp32 # 选择目标芯片,例如esp32, esp32s3, esp32c3等 idf.py menuconfig ``` 步骤2:导航至深度睡眠唤醒配置 使用方向键导航: - 首先进入 `Component config` - 然后选择芯片特定的选项(如 `ESP32-specific` 或 `ESP32-C3 Specific`) - 再选择 `Deep sleep wakeup` 子菜单 步骤3:启用唤醒源 在 `Deep sleep wakeup` 菜单中,可以看到以下选项(可能因芯片型号不同而略有差异): - [ ] Enable EXT0 wakeup (using single GPIO) - [ ] Enable EXT1 wakeup (using multiple GPIOs) - [ ] Enable timer wakeup - [ ] Enable touchpad wakeup - [ ] Enable ULP wakeup 使用空格键选择需要启用的唤醒源(出现`[*]`表示启用)。 步骤4:配置唤醒源参数(如果需要) 例如,如果启用了EXT0或EXT1,可能需要进一步配置: - 对于EXT0:需要指定唤醒引脚和电平(在代码中配置,不在menuconfig中)。 - 对于EXT1:需要配置唤醒引脚的组合方式(任意一个引脚触发还是所有引脚同时满足条件)。 步骤5:保存并退出 按 `S` 保存配置,然后按 `Esc` 或选择退出直到退出menuconfig。 注意:这些配置选项会生成相应的宏定义(如`CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND`),在代码中可以通过`#ifdef`来使用。 代码示例(在应用代码中设置EXT0唤醒): ```c // 设置GPIO2作为唤醒源,高电平唤醒 esp_sleep_enable_ext0_wakeup(GPIO_NUM_2, 1); ``` 验证:编译并烧录固件 ```bash idf.py build idf.py -p PORT flash monitor ``` 引用说明: - 引用[1]提到深度睡眠唤醒存根,说明ESP32支持在深度睡眠唤醒时立即运行一段代码,这可以在menuconfig中配置。 - 引用[3]展示了使用menuconfig的一般步骤,包括设置目标芯片和配置选项。 注意事项: - 不同型号的ESP32(如ESP32, ESP32-S3, ESP32-C3)的配置菜单可能略有不同,请根据实际芯片选择。 - 唤醒源(如GPIO)必须是RTC GPIO(对于ESP32-C3,只有GPIO0-5是RTC GPIO)。 如果在配置过程中遇到问题,可以检查以下方面: - 目标芯片是否正确设置(`idf.py set-target`)。 - 芯片是否支持所选唤醒源(如ESP32-C3不支持所有GPIO作为唤醒源)。 相关问题: 1. 如何为ESP32-S3配置深度睡眠唤醒? 2. 在深度睡眠唤醒存根中可以做哪些操作? 3. 如何解决ESP32深度睡眠唤醒后复位的问题? 4. 如何测量ESP32在不同睡眠模式下的电流消耗? 引用标记: - 步骤参考了引用[1]和引用[3]的配置方法[^1][^3]。</think>### 在 ESP32 menuconfig 中启用深度睡眠唤醒功能的步骤 以下是配置 ESP32 深度睡眠唤醒功能的具体操作流程(基于 ESP-IDF 框架): #### 步骤 1:进入 menuconfig 配置界面 ```bash # 在项目目录中执行: idf.py menuconfig ``` #### 步骤 2:导航至深度睡眠配置菜单 使用键盘方向键导航: 1. 进入 `Component config` → 2. 选择芯片特定配置(根据您的芯片型号): - ESP32: `ESP32-specific` - ESP32-C3: `ESP32-C3 Specific` - ESP32-S3: `ESP32-S3 Specific` 3. 进入 `Deep sleep wakeup` 子菜单 #### 步骤 3:启用唤醒源 在 `Deep sleep wakeup` 菜单中启用所需唤醒源: ```menuconfig [*] Enable EXT0 wakeup (using single GPIO) # GPIO引脚唤醒 [*] Enable EXT1 wakeup (using multiple GPIOs) # 多引脚组合唤醒 [*] Enable timer wakeup # 定时器唤醒 [*] Enable UART wakeup # UART唤醒(仅限light sleep) [*] Enable touchpad wakeup # 触摸传感器唤醒 ``` #### 步骤 4:配置唤醒参数(可选) 对于特定唤醒源可进行高级配置: 1. **EXT1 唤醒模式**: ``` [*] Wakeup level (High) # 选择高电平/低电平触发 ``` 2. **ULP 唤醒**(超低功耗协处理器): ``` [*] Enable ULP wakeup ``` #### 步骤 5:保存并退出 1. 按 `S` 保存配置 2. 按 `Enter` 确认文件名 3. 按 `Esc` 退出 menuconfig #### 步骤 6:在代码中使用唤醒功能 配置完成后,在应用代码中启用具体唤醒源: ```c // 启用GPIO唤醒 (EXT0) esp_sleep_enable_ext0_wakeup(GPIO_NUM_2, 1); // 引脚2,高电平触发 // 启用定时器唤醒 (10秒) esp_sleep_enable_timer_wakeup(10 * 1000000); // 进入深度睡眠 esp_deep_sleep_start(); ``` #### 验证配置: 1. 检查 `sdkconfig` 文件确认配置生效: ```ini CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 ``` 2. 读取唤醒原因: ```c esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause(); if (cause == ESP_SLEEP_WAKEUP_EXT0) { printf("GPIO唤醒\n"); } ``` > **重要提示**: > 1. 不同芯片型号支持的唤醒源不同(如 ESP32-C3 仅支持 GPIO0-5) > 2. 深度睡眠时仅 RTC 外设和 ULP 协处理器保持供电 > 3. 唤醒后程序从 `app_main()` 重新开始执行[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值