我在脚本中使用以下命令对 eMMC 进行分区,
parted /dev/mmcblk0 --script mklabel gpt
parted /dev/mmcblk0 --script mkpart primary ext4 32MB 132MB
parted /dev/mmcblk0 --script mkpart primary ext4 233MB 433MB
parted /dev/mmcblk0 --script mkpart primary ext4 433MB 533MB
parted /dev/mmcblk0 --script mkpart primary ext4 533MB 593MB
parted /dev/mmcblk0 --script mkpart primary ext4 593MB 793MB
parted /dev/mmcblk0 --script mkpart primary ext4 793MB 3800MB
parted /dev/mmcblk0 --script align-check min 1
Run Code Online (Sandbox Code Playgroud)
创建第一个分区后,我收到以下警告
警告:生成的分区没有正确对齐以获得最佳性能。
我需要担心吗?我试过了,parted /dev/mmcblk0 --script align-check min 1
但不确定那是解决方案。任何指示?
我正在浏览此链接,同时还有其他建议吗?
编辑:只是froschutz回复的快速参考,
MiB = …
Run Code Online (Sandbox Code Playgroud) 我们有基于 BBB 的定制板,上面运行着内核 3.12。
我对 umount 和 & 同步有疑问。
假设脚本正在卸载分区,是否需要sync
在umount
完成挂起写入之前运行命令。?
我们正在使用基于 beaglebone black 的定制板,我想将一些测试结果从 SPL 写入 RAM 位置,然后读取该日志并将其发送tftpput
到主机 PC。
到目前为止,我可以tftpput
从 RAM 到主机 PC。但在更安全的方面,我想找到 SPL 和 U-Boot 都不使用的 RAM 位置。
为了找出答案,我需要有关 SPL 和 U-Boot 内存映射的建议。董事会的信息如下所示:
#bdinfo
arch_number = 0x00000E05
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000 ---> RAM Start address
-> size = 0x10000000 ---> 256 MB
eth0name = cpsw
ethaddr = 1c:ba:8c:9d:5f:f0
current eth = cpsw
ip_addr = 192.168.1.106
baudrate = 115200 bps
TLB addr = 0x8FFF0000 ---> AFA i understand its …
Run Code Online (Sandbox Code Playgroud) 我们使用基于am335x的定制板,我们有eMMC作为辅助存储设备。现在列出我们正在使用parted
实用程序的parted
分区,但在MB
而不是MiB
.
有没有办法要求parted
以MiB
单位而不是MB
单位打印分区大小?
您可以参考下面的输出,其中显示了 parted 在KB
or 中的打印尺寸,MB
但不在KiB
or 中MiB
。
# parted --list
Model: MMC MMC04G (sd/mmc)
Disk /dev/mmcblk0: 3842MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 131kB 262kB 131kB
2 262kB 393kB 131kB
3 393kB 524kB 131kB
4 524kB 1573kB 1049kB
5 1573kB 2621kB 1049kB …
Run Code Online (Sandbox Code Playgroud) 我们有基于 BBB 的定制板,带有 256MB RAM 和 4GB eMMC,
我已经使用下面的代码对其进行了分区,
parted --script -a optimal /dev/mmcblk0 \
mklabel gpt \
mkpart primary 128KiB 255KiB \
mkpart primary 256KiB 383KiB \
mkpart primary 384KiB 511KiB \
mkpart primary 1MiB 2MiB \
mkpart primary 2MiB 3MiB \
mkpart primary 3MiB 4MiB \
mkpart primary 4MiB 5MiB \
mkpart primary 5MiB 10MiB \
mkpart primary 10MiB 15MiB \
mkpart primary 15MiB 20MiB \
mkpart primary 20MiB 21MiB \
mkpart primary 21MiB 22MiB \
mkpart primary …
Run Code Online (Sandbox Code Playgroud) PC 和嵌入式 Linux 设备连接在同一个本地网络上。(我们没有 DHCP 服务器访问权限,IT 管理员可以访问)。我们也无法在嵌入式 Linux 板上调试 UART。
我们确实知道设备的 MAC-id。那么有没有办法根据MAC-id获取设备的IP呢?
注意:PC 运行的是 Windows 7。
我们有基于 beaglebone 黑色的定制板,具有 256MB RAM 和 4GB eMMC。主板运行 Linux 内核 4.9
我们遇到了一种情况,我们在其中创建了一个文件tempfs
,然后在验证之后,我们必须将它移动到 eMMC 的 ext4 分区。只归档一个certificate
在某些情况下,我们在一个目录中有多个证书,因此我们必须将整个目录从 tempfs 移动到 eMMC 上的 ext4 分区。
所以,我们所担心的问题之一是atomicity
的mv
(移动)操作。
根据rename
系统调用 Linux 手册页重命名文件是一个原子操作。
http://man7.org/linux/man-pages/man2/rename.2.html
但是我们不确定重命名操作是否涉及在两个文件系统之间移动文件,原子性仍然可用。所以问题是将文件从原子移动tmpfs
到ext4
原子吗?
显然,一种可能的解决方案是将文件保存在同一分区上的不同文件夹中(显然在同一文件系统上)并使用mv
. 对于使用以下重命名方法的目录
SRC_dir --> TMP_DEST_dir
DEST_dir --> BAK_DEST_dir
TMP_DEST_dir --> DEST_dir
delete BAK_DEST_dir
Run Code Online (Sandbox Code Playgroud)
对替代品的任何建议?
编辑
在我得到回复后,我尝试在板上遵循测试代码,
#include <stdio.h>
#include <errno.h>
int main()
{
int retcode = 0;
system("touch /tmp/rename_test");
retcode = rename("/tmp/rename_test", "/home/fs_rename_test");
if ( retcode …
Run Code Online (Sandbox Code Playgroud) 我们有包含 eMMC 的基于 bbb 的定制板。
我们创建了如下分区,
parted --script -a minimal /dev/mmcblk0 \
mklabel gpt \
mkpart primary 131072B 262143B \
mkpart primary 262144B 393215B \
mkpart primary 393216B 524287B \
mkpart primary 524288B 1572863B \
mkpart primary 1572864B 2621439B \
mkpart primary 2621440B 3145727B \
mkpart primary 3145728B 3276799B \
mkpart primary 3276800B 8519679B \
mkpart primary 8519680B 13762559B \
mkpart primary 13762560B 19005439B \
mkpart primary 19005440B 19267583B \
mkpart primary 19267584B 19529727B \
mkpart primary 19529728B 19791871B \ …
Run Code Online (Sandbox Code Playgroud)