etc:users:jcmvbkbc:linux-xtensa:esp32s3
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
etc:users:jcmvbkbc:linux-xtensa:esp32s3 [2024/01/19 15:54] – update dependency versions jcmvbkbc | etc:users:jcmvbkbc:linux-xtensa:esp32s3 [2024/06/09 05:06] (current) – update bootloader instructions to wifi-enabled version jcmvbkbc | ||
---|---|---|---|
Line 4: | Line 4: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
* https:// | * https:// | ||
Scripts with all steps below: https:// | Scripts with all steps below: https:// | ||
+ | |||
+ | ===== Details ===== | ||
+ | |||
+ | * [[.: | ||
+ | * [[.: | ||
+ | * [[.: | ||
+ | * [[.: | ||
+ | * [[.: | ||
===== Things that work ===== | ===== Things that work ===== | ||
- | * WiFi. Use the script that builds firmware based on esp-hosted. | + | * WiFi. Use the script that builds firmware based on esp-hosted. |
* Writing to FLASH and using ESP FLASH partition table. Driver based on linux IPC sends FLASH-related requests to the firmware. Default configuration has an etc partition that is flashed with /etc file system and mounted at boot time. The file system is writable and it can be used to store things like wpa_supplicant.conf, | * Writing to FLASH and using ESP FLASH partition table. Driver based on linux IPC sends FLASH-related requests to the firmware. Default configuration has an etc partition that is flashed with /etc file system and mounted at boot time. The file system is writable and it can be used to store things like wpa_supplicant.conf, | ||
* USB serial. It is visible as the / | * USB serial. It is visible as the / | ||
Line 24: | Line 32: | ||
* ssh server and ssh client. There' | * ssh server and ssh client. There' | ||
* mounting NFS shares. | * mounting NFS shares. | ||
- | * running executable code from outside the rootfs, e.g. from /etc or from NFS mounts. | + | * running executable code from outside the rootfs, e.g. from /etc or from NFS mounts. |
- | * passing command line from bootloader to the kernel. Bootloader reads the file / | + | * passing command line from bootloader to the kernel. Bootloader reads the file / |
* strace (a one-line fix is needed for the mainline strace to correctly handle the initial exec). | * strace (a one-line fix is needed for the mainline strace to correctly handle the initial exec). | ||
* perf stat (heavy patching is needed to build it for nommu). -D1 is needed to properly enable events (perf relies on ability to run code after the fork but before the exec in the child process to manage events on systems with mmu, -D1 looks like a good workaround for nommu case). | * perf stat (heavy patching is needed to build it for nommu). -D1 is needed to properly enable events (perf relies on ability to run code after the fork but before the exec in the child process to manage events on systems with mmu, -D1 looks like a good workaround for nommu case). | ||
* c++ exceptions, c cleanup routines, forced stack unwinding, unwinding over signal frames. | * c++ exceptions, c cleanup routines, forced stack unwinding, unwinding over signal frames. | ||
+ | * TLS and NPTL. Some corner cases still need attention though. | ||
===== Things that don't work ===== | ===== Things that don't work ===== | ||
- | * about 290 failing tests in the gcc testsuite, | + | * 193 failing tests in the gcc testsuite, |
- | * NPTL. Not yet. Need to define relevant TLS relocations, | + | |
* mmap with MAP_FIXED flag. By design of the nommu linux, but it seems to me that it doesn' | * mmap with MAP_FIXED flag. By design of the nommu linux, but it seems to me that it doesn' | ||
* tcpdump and libpcap in general. It tries to mmap the packet socket and it's missing a few things (mm/nommu.c doesn' | * tcpdump and libpcap in general. It tries to mmap the packet socket and it's missing a few things (mm/nommu.c doesn' | ||
Line 67: | Line 75: | ||
$ CT_PREFIX=`pwd`/ | $ CT_PREFIX=`pwd`/ | ||
$ popd | $ popd | ||
- | </ | ||
- | |||
- | It doesn' | ||
- | < | ||
- | ... | ||
- | [INFO ] Installing final gcc compiler: done in 572.47s (at 29:47) | ||
- | [INFO ] ================================================================= | ||
- | [INFO ] Checking dynamic linker symlinks | ||
- | [EXTRA] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | [ERROR] | ||
- | ... | ||
</ | </ | ||
Line 96: | Line 80: | ||
< | < | ||
- | $ git clone https:// | + | $ git clone https:// |
$ nice make -C buildroot O=`pwd`/ | $ nice make -C buildroot O=`pwd`/ | ||
$ buildroot/ | $ buildroot/ | ||
Line 107: | Line 91: | ||
< | < | ||
- | $ git clone https:// | + | $ git clone https:// |
- | $ pushd esp-idf | + | $ pushd esp-hosted/ |
+ | $ cmake . | ||
+ | $ cd esp-idf | ||
$ . export.sh | $ . export.sh | ||
- | $ cd examples/get-started/ | + | $ cd ../network_adapter |
$ idf.py set-target esp32s3 | $ idf.py set-target esp32s3 | ||
$ cp sdkconfig.defaults.esp32s3 sdkconfig | $ cp sdkconfig.defaults.esp32s3 sdkconfig |
etc/users/jcmvbkbc/linux-xtensa/esp32s3.1705668889.txt.gz · Last modified: 2024/01/19 15:54 by jcmvbkbc